§
    !xÅj%€  ã                  óî  — d Z ddlmZ ddlmZ ddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z!  ej"        d¦  «        Z#ej$        dk    rdZ%dZ&ndZ%dZ& G d„ dej'        e#         ¦  «        Z( G d„ d¦  «        Z)dFd „Z*	 dGdHd$„Z+ej,        dGdId&„¦   «         Z-dJd+„Z.ej,        	 dGdKd/„¦   «         Z/ej,        	 dGdKd0„¦   «         Z0ej,        	 dGdLd3„¦   «         Z1 G d4„ d5¦  «        Z2dMdNd;„Z3dOd>„Z4e
j5        d?k    rddl6Z6ej,        dPdA„¦   «         Z7dQdC„Z8dS ddl9Z9ddl:Z:ej,        dPdD„¦   «         Z7dQdE„Z8dS )Rz¿
This module contains implementations for the termui module. To keep the
import time of Click down, some infrequently used functionality is
placed in this module and only imported as needed.
é    )ÚannotationsN)Úgettext)ÚStringIO)ÚPath)ÚTracebackTypeé   )Ú_default_text_stdout)ÚCYGWIN)Úget_best_encoding)Úisatty)Ú
strip_ansi)Úterm_len)ÚWIN)ÚClickException)ÚechoÚVÚntúú
z[?25lz[?25h
c                  óø   — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEdFd%„ZdGd'„ZdHd.„ZdId0„ZdJd2„ZdKd3„Ze	dLd5„¦   «         Z
e	dLd6„¦   «         Ze	dLd7„¦   «         ZdMd8„ZdMd9„ZdMd:„ZdMd;„ZdMd<„ZdKd=„ZdNd?„ZdOdPdB„ZdKdC„ZdIdD„ZdS )QÚProgressBarNú#ú ú%(bar)sú  FTr   é   Úiterableúcabc.Iterable[V] | NoneÚlengthú
int | NoneÚ	fill_charÚstrÚ
empty_charÚbar_templateÚinfo_sepÚhiddenÚboolÚshow_etaÚshow_percentúbool | NoneÚshow_posÚitem_show_funcú)t.Callable[[V | None], str | None] | NoneÚlabelú
str | NoneÚfileút.TextIO | NoneÚcolorÚupdate_min_stepsÚintÚwidthÚreturnÚNonec                óò  — || _         || _        || _        || _        || _        || _        |	| _        |
| _        || _        |pd| _	        |€t          ¦   «         }|€t          ¦   «         }|| _        || _        || _        d| _        || _        |dk    | _        |€ddlm}  ||d¦  «        }|dk    rd }|€3|€t)          d¦  «        ‚t+          j        dt/          |¦  «        ¦  «        }t1          |¦  «        | _        || _        d| _        g | _        |  |  t9          j        ¦   «         x| _        | _        d| _        d| _         d | _!        d| _"        d | _#        tI          | j        ¦  «        | _%        d | _&        d S )NÚ r   )Úlength_hintéÿÿÿÿziterable or length is requiredzcabc.Iterable[V]F)'r!   r#   r$   r%   r&   r(   r)   r+   r,   r.   r	   r   r0   r2   r3   Ú_completed_intervalsr5   Ú	autowidthÚoperatorr:   Ú	TypeErrorÚtÚcastÚrangeÚiterr   ÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemr   Ú_is_attyÚ
_last_line)Úselfr   r   r!   r#   r$   r%   r&   r(   r)   r+   r,   r.   r0   r2   r3   r5   r:   s                     úCC:\Projects\Historical\venv\Lib\site-packages\click/_termui_impl.pyÚ__init__zProgressBar.__init__,   s‹  € ð& #ˆŒØ$ˆŒØ(ˆÔØ ˆŒØˆŒØ ˆŒØ(ˆÔØ ˆŒØ,ˆÔØ˜+ 2ˆŒ
àˆ<Ý'Ñ)Ô)ˆDð ˆ|Ý‘z”z�àˆŒ	ØˆŒ
Ø 0ˆÔØ$%ˆÔ!ØˆŒ
Ø$¨šzˆŒàˆ>Ø,Ð,Ð,Ð,Ð,Ð,à �[ ¨2Ñ.Ô.ˆFà˜Š|ˆ|Ø�ØÐØˆ~ÝÐ @ÑAÔAÐAÝ”vÐ0µ%¸±-´-Ñ@Ô@ˆHÝ&*¨8¡n¤nˆŒ	ØˆŒØˆŒØ "ˆŒØÐØÐÝ%)¤Y¡[¤[Ð0ˆŒ
�T”]Ø$ˆŒØ#ˆŒØ%)ˆŒØ"ˆŒØ&*ˆÔÝ˜tœyÑ)Ô)ˆŒØ&*ˆŒˆˆó    úProgressBar[V]c                ó<   — d| _         |                      ¦   «          | S )NT)rL   Úrender_progress©rP   s    rQ   Ú	__enter__zProgressBar.__enter__s   s    € ØˆŒØ×ÒÑÔÐØˆrS   Úexc_typeútype[BaseException] | NoneÚ	exc_valueúBaseException | NoneÚtbúTracebackType | Nonec                ó.   — |                       ¦   «          d S ©N)Úrender_finish)rP   rY   r[   r]   s       rQ   Ú__exit__zProgressBar.__exit__x   s   € ð 	×ÒÑÔÐÐÐrS   úcabc.Iterator[V]c                ó~   — | j         st          d¦  «        ‚|                      ¦   «          |                      ¦   «         S )Nú.You need to use progress bars in a with block.)rL   ÚRuntimeErrorrV   Ú	generatorrW   s    rQ   Ú__iter__zProgressBar.__iter__€   s>   € ØŒ|ð 	QÝÐOÑPÔPÐPØ×ÒÑÔÐØ�~Š~ÑÔÐrS   r   c                ó:   — t          t          | ¦  «        ¦  «        S r`   )ÚnextrC   rW   s    rQ   Ú__next__zProgressBar.__next__†   s   € õ •D˜‘J”JÑÔÐrS   c                ó  — | j         r5|                      | j         ¦  «         d| _         |                      ¦   «          | j        s| j        sd S | j                             t          ¦  «         | j                             ¦   «          d S )Nr   )	r<   Ú	make_steprV   r&   rN   r0   ÚwriteÚ	AFTER_BARÚflushrW   s    rQ   ra   zProgressBar.render_finishŽ   s‚   € ð Ô$ð 	#Ø�NŠN˜4Ô4Ñ5Ô5Ð5Ø()ˆDÔ%Ø× Ò Ñ"Ô"Ð"àŒ;ð 	˜dœmð 	ØˆFØŒ	�Š�	Ñ"Ô"Ð"ØŒ	�ŠÑÔÐÐÐrS   Úfloatc                óp   — | j         rdS t          | j        t          | j        pd¦  «        pdz  d¦  «        S )Nç      ð?r   )rJ   ÚminrD   rq   r   rW   s    rQ   ÚpctzProgressBar.pctœ   s<   € àŒ=ð 	Ø�3Ý�4”8�u T¤[Ð%5°AÑ6Ô6Ð;¸!Ñ<¸cÑBÔBÐBrS   c                ó€   — | j         sdS t          | j         ¦  «        t          t          | j         ¦  «        ¦  «        z  S ©Ng        )rE   Úsumrq   ÚlenrW   s    rQ   Útime_per_iterationzProgressBar.time_per_iteration¢   s4   € àŒxð 	Ø�3Ý�4”8‰}Œ}�u¥S¨¬¡]¤]Ñ3Ô3Ñ3Ð3rS   c                óP   — | j         �| j        s| j        | j         | j        z
  z  S dS rw   )r   rJ   rz   rD   rW   s    rQ   ÚetazProgressBar.eta¨   s-   € àŒ;Ð"¨4¬=Ð"ØÔ*¨d¬k¸D¼HÑ.DÑEÐEØˆsrS   c                óì   — | j         rlt          | j        ¦  «        }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dk    r'd                     |t	          d¦  «        |||¬¦  «        S |d›d|d›d|d›�S d	S )
Né<   é   r   z#{d}{day_label} {h:02}:{m:02}:{s:02}Úd)r€   Ú	day_labelÚhÚmÚsÚ02ú:r9   )rI   r4   r|   ÚformatÚ_)rP   r@   ÚsecondsÚminutesÚhourss        rQ   Ú
format_etazProgressBar.format_eta®   s·   € ØŒ>ð 	?Ý�D”H‘”ˆAØ˜"‘fˆGØ�"‰HˆAØ˜"‘fˆGØ�"‰HˆAØ˜‘FˆEØ�"‰HˆAØ�1ŠuˆuØ<×CÒCØÝ ™fœfØØØð Dñ ô ð ð  Ð>Ð>Ð> WÐ>Ð>Ð>°'Ð>Ð>Ð>Ð>ØˆrrS   c                óV   — t          | j        ¦  «        }| j        �|d| j        › �z  }|S )Nú/)r"   rD   r   )rP   rD   s     rQ   Ú
format_poszProgressBar.format_posÃ   s1   € Ý�$”(‰mŒmˆØŒ;Ð"ØÐ$�t”{Ð$Ð$Ñ$ˆCØˆ
rS   c                óH   — t          | j        dz  ¦  «        d›d�dd …         S )Néd   z 4ú%r   )r4   ru   rW   s    rQ   Ú
format_pctzProgressBar.format_pctÉ   s+   € Ý�d”h ‘nÑ%Ô%Ð+Ð+Ð+Ð+¨A¨B¨BÔ/Ð/rS   c                ó¾  — | j         �<t          | j        | j        z  ¦  «        }| j        |z  }|| j        | j        |z
  z  z  }n™| j        r| j        | j        z  }n‚t          | j        | j        pdz  ¦  «        }| j        dk    rD| j        |t          t          j
        | j        | j        z  ¦  «        dz  dz   | j        z  ¦  «        <   d                     |¦  «        }|S )Nr   r   g       @g      à?r9   )r   r4   ru   r5   r!   r#   rJ   Úlistrz   ÚmathÚcosrD   Újoin)rP   Ú
bar_lengthÚbarÚcharss       rQ   Ú
format_barzProgressBar.format_barÌ   sç   € ØŒ;Ð"Ý˜TœX¨¬
Ñ2Ñ3Ô3ˆJØ”. :Ñ-ˆCØ�4”? d¤j°:Ñ&=Ñ>Ñ>ˆCˆCØŒ]ð 	!Ø”. 4¤:Ñ-ˆCˆCå˜œ¨D¬J¨O¸!Ñ<Ñ=Ô=ˆEØÔ&¨!Ò+Ð+ð ”Nð ÝÝœ $¤(¨TÔ-DÑ"DÑEÔEÈÑKÈcÑQØœ*ñ%ñô ñð —'’'˜%‘.”.ˆCØˆ
rS   c                ój  — | j         }g }| j        �
|€| j         }| j        r'|                     |                      ¦   «         ¦  «         |r'|                     |                      ¦   «         ¦  «         | j        r5| j        r.| j        s'|                     |  	                    ¦   «         ¦  «         | j
        �1|  
                    | j        ¦  «        }|�|                     |¦  «         | j        | j        |                      ¦   «         | j                             |¦  «        dœz                       ¦   «         S )N)r.   rš   Úinfo)r)   r   r+   Úappendr�   r“   r(   rI   rJ   rŒ   r,   rM   r$   r.   rœ   r%   r˜   Úrstrip)rP   r)   Ú	info_bitsÚ	item_infos       rQ   Úformat_progress_linez ProgressBar.format_progress_lineß   s3  € ØÔ(ˆàˆ	ØŒ;Ð" |Ð';Ø#œ}Ð,ˆLàŒ=ð 	0Ø×Ò˜TŸ_š_Ñ.Ô.Ñ/Ô/Ð/Øð 	0Ø×Ò˜TŸ_š_Ñ.Ô.Ñ/Ô/Ð/ØŒ=ð 	0˜Tœ^ð 	0°D´Mð 	0Ø×Ò˜TŸ_š_Ñ.Ô.Ñ/Ô/Ð/ØÔÐ*Ø×+Ò+¨DÔ,=Ñ>Ô>ˆIØÐ$Ø× Ò  Ñ+Ô+Ð+ð ÔàœØ—’Ñ(Ô(Øœ×*Ò*¨9Ñ5Ô5ðð ñ÷ Š&‰(Œ(ð	rS   c                ó  — | j         rd S | j        s?| j        | j        k    r-| j        | _        t	          | j        | j        | j        ¬¦  «         d S g }| j        r¯dd l}| j	        }d| _	        t          |                      ¦   «         ¦  «        }t          d|                     ¦   «         j        |z
  ¦  «        }||k     rE| j        �>|                     t"          ¦  «         |                     d| j        z  ¦  «         || _        || _	        | j	        }| j        �| j        }|                     t"          ¦  «         |                      ¦   «         }t          |¦  «        }| j        �| j        |k     r|| _        |                     |¦  «         |                     d||z
  z  ¦  «         d                     |¦  «        }|| j        k    r?|| _        t	          || j        | j        d¬¦  «         | j                             ¦   «          d S d S )N)r0   r2   r   r   r9   F)r0   r2   Únl)r&   rN   rO   r.   r   r0   r2   r=   Úshutilr5   r   r£   ÚmaxÚget_terminal_sizeÚcolumnsrK   rŸ   Ú
BEFORE_BARr˜   rp   )	rP   Úbufr¦   Ú	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	            rQ   rV   zProgressBar.render_progressú   sí  € ØŒ;ð 	ØˆFàŒ}ð 	àŒ $¤*Ò,Ð,Ø"&¤*�”Ý�T”Z d¤i°t´zÐBÑBÔBÐBØˆFàˆàŒ>ð 	#ØˆMˆMˆMàœ
ˆIØˆDŒJÝ% d×&?Ò&?Ñ&AÔ&AÑBÔBˆNÝ˜A˜v×7Ò7Ñ9Ô9ÔAÀNÑRÑSÔSˆIØ˜9Ò$Ð$¨¬Ð)CØ—
’
�:Ñ&Ô&Ð&Ø—
’
˜3 ¤Ñ/Ñ0Ô0Ð0Ø!*�”Ø"ˆDŒJà”jˆØŒ>Ð%Øœ.ˆKà�
Š
•:ÑÔÐØ×(Ò(Ñ*Ô*ˆÝ˜D‘>”>ˆØŒ>Ð! T¤^°hÒ%>Ð%>Ø%ˆDŒNà�
Š
�4ÑÔÐØ�
Š
�3˜+¨Ñ0Ñ1Ñ2Ô2Ð2Ø�wŠw�s‰|Œ|ˆð �4”?Ò"Ð"Ø"ˆDŒOÝ�˜DœI¨T¬Z¸EÐBÑBÔBÐBØŒI�OŠOÑÔÐÐÐð #Ð"rS   Ún_stepsc                ó¬  — | xj         |z  c_         | j        �| j         | j        k    rd| _        t          j        ¦   «         | j        z
  dk     rd S t          j        ¦   «         | _        | j         r$t          j        ¦   «         | j        z
  | j         z  }nt          j        ¦   «         | j        z
  }| j        dd …         |gz   | _        | j        d u| _        d S )NTrs   iúÿÿÿ)rD   r   rJ   rF   rH   rG   rE   rI   )rP   r²   Ústeps      rQ   rm   zProgressBar.make_step(  s¼   € ØˆŒ�GÑˆŒØŒ;Ð" t¤x°4´;Ò'>Ð'>Ø ˆDŒMåŒI‰KŒK˜$œ-Ñ'¨3Ò.Ð.ØˆFåœ	™œˆŒð
 Œ8ð 	,Ý”I‘K”K $¤*Ñ,°´Ñ8ˆDˆDå”9‘;”; ¤Ñ+ˆDà”8˜B˜C˜C”= D 6Ñ)ˆŒàœ¨DÐ0ˆŒˆˆrS   rM   úV | Nonec                óÆ   — |�|| _         | xj        |z  c_        | j        | j        k    r7|                      | j        ¦  «         |                      ¦   «          d| _        dS dS )a  Update the progress bar by advancing a specified number of
        steps, and optionally set the ``current_item`` for this new
        position.

        :param n_steps: Number of steps to advance.
        :param current_item: Optional item to set as ``current_item``
            for the updated position.

        .. versionchanged:: 8.0
            Added the ``current_item`` optional parameter.

        .. versionchanged:: 8.0
            Only render when the number of steps meets the
            ``update_min_steps`` threshold.
        Nr   )rM   r<   r3   rm   rV   )rP   r²   rM   s      rQ   ÚupdatezProgressBar.update>  st   € ð  Ð#Ø ,ˆDÔàÐ!Ô! WÑ,Ð!Ô!àÔ$¨Ô(=Ò=Ð=Ø�NŠN˜4Ô4Ñ5Ô5Ð5Ø× Ò Ñ"Ô"Ð"Ø()ˆDÔ%Ð%Ð%ð >Ð=rS   c                ó0   — d| _         d | _        d| _        d S )NFT)rI   rM   rJ   rW   s    rQ   ÚfinishzProgressBar.finishX  s   € ØˆŒØ ˆÔØˆŒˆˆrS   c              #  óD  K  — | j         st          d¦  «        ‚| j        s| j        E d{V —† dS | j        D ]A}|| _        | j        dk    r|                      ¦   «          |V — |                      d¦  «         ŒB|                      ¦   «          |                      ¦   «          dS )z¨Return a generator which yields the items added to the bar
        during construction, and updates the progress bar *after* the
        yielded block returns.
        re   Nr   r   )	rL   rf   rN   rC   rM   r<   rV   r·   r¹   )rP   Úrvs     rQ   rg   zProgressBar.generator]  sÆ   è è € ð Œ|ð 	QÝÐOÑPÔPÐPàŒ}ð 	#Ø”yÐ Ð Ð Ð Ð Ð Ð Ð Ð à”ið 
ð 
�Ø$&�Ô!ð
 Ô,°Ò1Ð1Ø×(Ò(Ñ*Ô*Ð*à���Ø—’˜A‘”��à�KŠK‰MŒMˆMØ× Ò Ñ"Ô"Ð"Ð"Ð"rS   )Nr   r   r   r   FTNFNNNNr   r   )"r   r   r   r    r!   r"   r#   r"   r$   r"   r%   r"   r&   r'   r(   r'   r)   r*   r+   r'   r,   r-   r.   r/   r0   r1   r2   r*   r3   r4   r5   r4   r6   r7   )r6   rT   )rY   rZ   r[   r\   r]   r^   r6   r7   )r6   rc   )r6   r   ©r6   r7   )r6   rq   ©r6   r"   )r²   r4   r6   r7   r`   )r²   r4   rM   rµ   r6   r7   )Ú__name__Ú
__module__Ú__qualname__rR   rX   rb   rh   rk   ra   Úpropertyru   rz   r|   rŒ   r�   r“   rœ   r£   rV   rm   r·   r¹   rg   © rS   rQ   r   r   +   sø  € € € € € ð "ØØØ%ØØØØ$(ØØDHØ Ø $Ø!Ø !Øð#E+ð E+ð E+ð E+ð E+ðNð ð ð ð
ð ð ð ð ð  ð  ð  ð ð  ð  ð  ðð ð ð ð ðCð Cð Cñ „XðCð
 ð4ð 4ð 4ñ „Xð4ð
 ðð ð ñ „Xðð
ð ð ð ð*ð ð ð ð0ð 0ð 0ð 0ðð ð ð ð&ð ð ð ð6,ð ,ð ,ð ,ð\1ð 1ð 1ð 1ð,*ð *ð *ð *ð *ð4ð ð ð ð
#ð #ð #ð #ð #ð #rS   r   c                  óB   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dS )Ú_PagerWriteraL  Wrap a pager's output stream to strip ANSI styling when colors are
    disabled.

    The wrapped stream is owned by the pager strategy that produced it, so this
    wrapper never closes it: ``_pipepager`` closes its pipe to signal EOF to the
    pager process, ``_tempfilepager`` closes and removes its temporary file, and
    ``_nullpager`` leaves an external stream such as ``sys.stdout`` untouched.

    The ``color`` attribute lets :func:`click.echo` detect that ANSI stripping
    is handled here, so it doesn't strip a second time (see
    :func:`._compat.should_strip_ansi`).
    Ústreamút.TextIOr2   r'   r6   r7   c                ó"   — || _         || _        d S r`   )Ú_streamr2   )rP   rÅ   r2   s      rQ   rR   z_PagerWriter.__init__�  s   € ØˆŒØˆŒ
ˆ
ˆ
rS   Útextr"   r4   c                ób   — | j         st          |¦  «        }| j                             |¦  «        S r`   )r2   r   rÈ   rn   ©rP   rÉ   s     rQ   rn   z_PagerWriter.write‘  s/   € ØŒzð 	$Ý˜dÑ#Ô#ˆDàŒ|×!Ò! $Ñ'Ô'Ð'rS   Úlinesúcabc.Iterable[str]c                ó:   — |D ]}|                       |¦  «         Œd S r`   )rn   )rP   rÌ   r°   s      rQ   Ú
writelinesz_PagerWriter.writelines—  s0   € Øð 	ð 	ˆDØ�JŠJ�tÑÔÐÐð	ð 	rS   c                ó8   — | j                              ¦   «          d S r`   ©rÈ   rp   rW   s    rQ   rp   z_PagerWriter.flush›  s   € ØŒ×ÒÑÔÐÐÐrS   c                ó8   — | j                              ¦   «          d S r`   rÑ   rW   s    rQ   Úclosez_PagerWriter.closež  s   € ð 	Œ×ÒÑÔÐÐÐrS   Únameút.Anyc                ó,   — t          | j        |¦  «        S r`   )ÚgetattrrÈ   )rP   rÔ   s     rQ   Ú__getattr__z_PagerWriter.__getattr__£  s   € Ý�t”| TÑ*Ô*Ð*rS   N)rÅ   rÆ   r2   r'   r6   r7   )rÉ   r"   r6   r4   )rÌ   rÍ   r6   r7   r¼   )rÔ   r"   r6   rÕ   )
r¾   r¿   rÀ   Ú__doc__rR   rn   rÏ   rp   rÓ   rØ   rÂ   rS   rQ   rÄ   rÄ     s–   € € € € € ðð ðð ð ð ð(ð (ð (ð (ðð ð ð ðð ð ð ðð ð ð ð
+ð +ð +ð +ð +ð +rS   rÄ   Ú	cmd_partsú	list[str]r6   útuple[Path, list[str]] | Nonec                ó¦   — | sdS ddl }|                     | d         ¦  «        }|sdS t          |¦  «                             ¦   «         | dd…         fS )a£  Resolve a pager ``argv`` to an absolute command path and its parameters.

    The command is looked up with :func:`shutil.which`, which the
    :mod:`subprocess` docs recommend on every platform for an unqualified name:
    https://docs.python.org/3/library/subprocess.html#popen-constructor

    Returns ``None`` when there is no command to run or it is not on the path,
    leaving the caller to pick a fallback.
    Nr   r   )r¦   Úwhichr   Úabsolute)rÚ   r¦   Úcmd_filepaths      rQ   Ú_resolve_pager_commandrá   §  se   € ð ð Øˆtà€M€M€Mà—<’< 	¨!¤Ñ-Ô-€Làð Øˆtõ �ÑÔ×&Ò&Ñ(Ô(¨)°A°B°B¬-Ð7Ð7rS   r2   r*   ú.t.ContextManager[tuple[t.TextIO, bool | None]]c                óx  — t          ¦   «         }|€t          ¦   «         }t          t          j        ¦  «        rt          |¦  «        st          || ¦  «        S t          j        t          j	         
                    dd¦  «        ¦  «        }|rt          }n_t          j	         
                    d¦  «        dv rt          || ¦  «        S t          pt          j                             d¦  «        }|rdgndg}t          |¦  «        }|€t          || ¦  «        S |\  }}|rt          ||| ¦  «        S t!          ||| ¦  «        S )	z2Decide what method to use for paging through text.NÚPAGERr9   ÚTERM)ÚdumbÚemacsÚos2ÚmoreÚless)r	   r   r   ÚsysÚstdinÚ
_nullpagerÚshlexÚsplitÚosÚenvironÚgetr   ÚplatformÚ
startswithrá   Ú_tempfilepagerÚ
_pipepager)r2   ÚstdoutÚpager_cmd_partsÚuse_tempfileÚresolvedÚcmd_pathÚ
cmd_paramss          rQ   Ú_pager_contextmanagerrý   Ã  s0  € õ "Ñ#Ô#€Fð €~Ý‘”ˆå•#”)ÑÔð )¥F¨6¡N¤Nð )Ý˜& %Ñ(Ô(Ð(õ ”k¥"¤*§.¢.°¸"Ñ"=Ô"=Ñ>Ô>€Oàð 	Aõ ˆˆåŒ:�>Š>˜&Ñ!Ô!Ð%6Ð6Ð6Ý˜f eÑ,Ô,Ð,åÐ<�cœl×5Ò5°eÑ<Ô<ˆØ&2Ð@˜6˜(˜(¸¸ˆå% oÑ6Ô6€HàÐå˜& %Ñ(Ô(Ð(à#Ñ€Hˆjàð ;Ý˜h¨
°EÑ:Ô:Ð:å�h 
¨EÑ2Ô2Ð2rS   ú!t.Generator[t.TextIO, None, None]c              #  ó@  K  — t          | ¬¦  «        5 \  }} t          |t          | ¦  «        ¬¦  «        }	 t          j        t          j        |¦  «        V — |                     ¦   «          n# |                     ¦   «          w xY w	 ddd¦  «         dS # 1 swxY w Y   dS )z÷Context manager.

    Yields a writable file-like object which can be used as an output pager.

    .. versionadded:: 8.4.0

    :param color: controls if the pager supports ANSI colors or not.  The
                  default is autodetection.
    )r2   N)rý   rÄ   r'   r@   rA   ÚTextIOrp   )r2   rÅ   Úwriters      rQ   Úget_pager_filer  ð  sÚ   è è € õ 
 UÐ	+Ñ	+Ô	+ð 
©°¸õ ˜f­D°©K¬KÐ8Ñ8Ô8ˆð	Ý”&�œ 6Ñ*Ô*Ð*Ð*Ð*à�LŠL‰NŒNˆNˆNøˆF�LŠL‰NŒNˆNˆNøøøˆNð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s(   “"B¶!A,ÁBÁ,BÂBÂBÂBÚless_envr"   rü   r'   c                ó‚  — 	 t          j        | ¦  «        }n$# t          $ r |                      ¦   «         }Y nw xY w||z   }|D ]|}|                     d¦  «        r|                     ¦   «         dk    r dS Œ3|                     d¦  «        r4t          |¦  «        dk    r!d|dd…                              ¦   «         v r dS Œ}dS )	aw  Detect a raw-control-characters request in a ``less`` invocation.

    Parses the tokens of the ``LESS`` environment variable and the command
    line: only short-option clusters (``-R``, ``-rX``, ``-XrY``) and the
    ``--raw-control-chars`` long option request raw mode. Filenames and
    long-option values may carry the letter ``r`` without being such a
    request.
    z--z--raw-control-charsTú-r   ÚrNF)rî   rï   Ú
ValueErrorrô   Úcasefoldry   )r  rü   Ú
env_tokensÚtokensÚtokens        rQ   Ú_less_uses_raw_moder    së   € ð&Ý”[ Ñ*Ô*ˆ
ˆ
øÝð &ð &ð &ð —^’^Ñ%Ô%ˆ
ˆ
ˆ
ð&øøøð ˜*Ñ$€Fàð ð ˆØ×Ò˜DÑ!Ô!ð 	Ø�~Š~ÑÔÐ#8Ò8Ð8Ø�t�tð 9à×Ò˜cÑ"Ô"ð 	¥s¨5¡z¤z°A¢~ ~Ø�e˜A˜B˜B”i×(Ò(Ñ*Ô*Ð*Ð*Ø�t�tøàˆ5s   ‚ —8·8rû   r   ú(t.Iterator[tuple[t.TextIO, bool | None]]c              #  ót  K  — ddl }t          t          j        ¦  «        }| j        }t
          r|                     ¦   «         }|€D|dk    r>t          j                             dd¦  «        }t          ||¦  «        rd}n|s	|sd|d<   d}| 	                    t          | ¦  «        g|z   d|j        |d	d¬
¦  «        }t          j        t          j        |j        ¦  «        }	 ||fV — n3# t           $ r Y n't"          $ r}	|                     ¦   «          |	‚d}	~	ww xY w	 |                     ¦   «          n# t           $ r Y nw xY w	 	 |                     ¦   «          dS # t*          $ r Y nw xY wŒ(# 	 |                     ¦   «          n# t           $ r Y nw xY w	 	 |                     ¦   «          n# t*          $ r Y nw xY wŒ'w xY w)a$  Page through text by feeding it to another program.

    Invokes the pager via :class:`subprocess.Popen` with an ``argv`` list.

    Invoking a pager through this might support colors: if piping to
    ``less`` and the user hasn't decided on colors, ``LESS=-R`` is set
    automatically.
    r   Nrê   ÚLESSr9   Tú-RFÚreplace)Úshellrì   ÚenvÚerrorsrÉ   )Ú
subprocessÚdictrð   rñ   Ústemr   r  rò   r  ÚPopenr"   ÚPIPEr@   rA   r   rì   ÚBrokenPipeErrorÚ	ExceptionÚ	terminaterÓ   ÚwaitÚKeyboardInterrupt)
rû   rü   r2   r  r  Úcmd_namer  Úcrì   Úes
             rQ   rö   rö   $  s`  è è € ð ÐÐÐõ �rŒzÑ
Ô
€Cð Œ}€HÝ
ð 'ð
 ×$Ò$Ñ&Ô&ˆà€}˜ VÒ+Ð+Ý”:—>’> &¨"Ñ-Ô-ˆÝ˜x¨Ñ4Ô4ð 	ØˆEˆEØð 	 *ð 	ØˆC�‰KØˆEà×ÒÝ	ˆX‰Œˆ˜*Ñ$ØØŒoØØØð 	ñ 	ô 	€Aõ ŒF•1”8˜QœWÑ%Ô%€Eð#Ø�UˆlÐÐÐÐøÝð ð ð àˆÝð ð ð ð
 	
�Š‰ŒˆØˆøøøøðøøøð	Ø�KŠK‰MŒMˆMˆMøõ ð 	ð 	ð 	ØˆDð	øøøð	ðØ—’‘”�ð �øõ %ð ð ð Ø�ðøøøð	øð	Ø�KŠK‰MŒMˆMˆMøõ ð 	ð 	ð 	ØˆDð	øøøð	ðØ—’‘”�ð øõ %ð ð ð Ø�ðøøøð	ð 	ð 	ð 	ð 	s¢   ÃC% Ã$E' Ã%
DÃ/E' Ã1	DÃ:DÄDÄE' ÄD. Ä.
D;Ä:D;Å E Å
E#Å"E#Å'F7Å)E>Å=F7Å>
FÆF7Æ
FÆF7ÆF%Æ$F7Æ%
F2Æ/F7Æ1F2Æ2F7c              #  ó,  K  — ddl }ddl}t          t          j        ¦  «        }|                     d|dd¬¦  «        }	 t          j        t          j        |¦  «        |fV — | 	                    ¦   «          | 
                    ¦   «          |                     t          | ¦  «        g|¢|j        ‘¦  «         | 
                    ¦   «          t          j        |j        ¦  «         dS # | 
                    ¦   «          t          j        |j        ¦  «         w xY w)a8  Page through text by invoking a program on a temporary file.

    Used as the primary pager strategy on Windows (where piping to
    ``more`` adds spurious ``\r\n``), and as a fallback on other
    platforms. The command is invoked with any parameters from ``PAGER``
    followed by the temporary file name.
    r   NÚwr  F)ÚmodeÚencodingr  Údelete)r  Útempfiler   rë   r÷   ÚNamedTemporaryFiler@   rA   r   rp   rÓ   Úcallr"   rÔ   rð   Úunlink)rû   rü   r2   r  r'  r%  Úfs          rQ   rõ   rõ   {  s  è è € ð ÐÐÐØ€O€O€Oå ¥¤Ñ,Ô,€Hð 	×#Ò#Ø˜8¨I¸eð 	$ñ 	ô 	€AðÝŒf•Q”X˜qÑ!Ô! 5Ð(Ð(Ð(Ð(Ø	�Š‰	Œ	ˆ	Ø	�Š‰	Œ	ˆ	Ø�Š�˜X™œÐ<¨Ð<°Q´VÐ<Ñ=Ô=Ð=ð 	
�Š‰	Œ	ˆ	Ý
Œ	�!”&ÑÔÐÐÐøð 	
�Š‰	Œ	ˆ	Ý
Œ	�!”&ÑÔÐÐøøøs   ¾A7C$ Ã$/DrÅ   rÆ   c              #  ó   K  — | |fV — dS )a&  Simply print unformatted text. This is the ultimate fallback.

    The stream comes from elsewhere (typically ``sys.stdout``), so its lifecycle
    is left untouched: :class:`_PagerWriter` never closes what it wraps, and it
    is the only thing :func:`get_pager_file` hands to the caller.
    NrÂ   )rÅ   r2   s     rQ   rí   rí   ž  s   è è € ð �%ˆ-ÐÐÐÐÐrS   c                  ó|   — e Zd Z	 	 	 	 ddd„Zdd„Zdd„Zej        dd„¦   «         Zej        d d„¦   «         Zd!d„ZdS )"ÚEditorNTú.txtÚeditorr/   r  úcabc.Mapping[str, str] | NoneÚrequire_saver'   Ú	extensionr"   r6   r7   c                ó>   — || _         || _        || _        || _        d S r`   )r0  r  r2  r3  )rP   r0  r  r2  r3  s        rQ   rR   zEditor.__init__¬  s%   € ð ˆŒØˆŒØ(ˆÔØ"ˆŒˆˆrS   c                ó¼   — | j         �| j         S dD ]'}t          j                             |¦  «        }|r|c S Œ(t          rdS ddlm} dD ]} ||¦  «        �|c S ŒdS )N)ÚVISUALÚEDITORÚnotepadr   )rÞ   )zsensible-editorÚvimÚnanoÚvi)r0  rð   rñ   rò   r   r¦   rÞ   )rP   Úkeyr»   rÞ   r0  s        rQ   Ú
get_editorzEditor.get_editor¸  s™   € ØŒ;Ð"Ø”;ÐØ%ð 	ð 	ˆCÝ”—’ Ñ$Ô$ˆBØð Ø�	�	�	ðåð 	Ø�9à Ð Ð Ð Ð Ð à6ð 	ð 	ˆFØˆu�V‰}Œ}Ð(Ø���ð )àˆtrS   Ú	filenamesú%cabc.Iterable[str | os.PathLike[str]]c                óH  — ddl }ddl}|                      ¦   «         }d}| j        r8t          j                             ¦   «         }|                     | j        ¦  «         	 |                      |j	        |¦  «        t          |¦  «        z   |¬¦  «        }|                     ¦   «         }|dk    r0t          t          d¦  «                             |¬¦  «        ¦  «        ‚dS # t          $ r7}t          t          d¦  «                             ||¬¦  «        ¦  «        |‚d}~ww xY w)z Open files in the user's editor.r   N)Úargsr  z{editor}: Editing failed)r0  z{editor}: Editing failed: {e})r0  r!  )rî   r  r=  r  rð   rñ   Úcopyr·   r  rï   r•   r  r   rˆ   r‡   ÚOSError)	rP   r>  rî   r  r0  rñ   r   Ú	exit_coder!  s	            rQ   Ú
edit_fileszEditor.edit_filesÉ  s;  € àˆˆˆØÐÐÐà—’Ñ"Ô"ˆØ)-ˆàŒ8ð 	%Ý”j—o’oÑ'Ô'ˆGØ�NŠN˜4œ8Ñ$Ô$Ð$ð	ð × Ò Ø �U”[ Ñ(Ô(­4°	©?¬?Ñ:Øð !ñ ô ˆAð Ÿš™œˆIØ˜AŠ~ˆ~Ý$ÝÐ0Ñ1Ô1×8Ò8ÀÐ8ÑGÔGñô ð ð ˆ~øõ ð 	ð 	ð 	Ý ÝÐ1Ñ2Ô2×9Ò9ÀÈ1Ð9ÑMÔMñô àðøøøøð	øøøs   ÁA?C  Ã 
D!Ã*2DÄD!rÉ   úbytes | bytearrayúbytes | Nonec                ó   — d S r`   rÂ   rË   s     rQ   ÚeditzEditor.editç  s   € Ø=@¸SrS   c                ó   — d S r`   rÂ   rË   s     rQ   rI  zEditor.editì  s   € Ø47°CrS   ústr | bytes | bytearray | Noneústr | bytes | Nonec                óö  — dd l }|€d}n�t          |t          t          f¦  «        r|}nb|r|                     d¦  «        s|dz  }t
          r*|                     dd¦  «                             d¦  «        }n|                     d¦  «        }|                     d| j	        ¬¦  «        \  }}	 t          j        |d	¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |t          j                             |¦  «        t          j                             |¦  «        d
z
  f¦  «         t          j                             |¦  «        }|                      |f¦  «         | j        r:t          j                             |¦  «        |k    r	 t          j        |¦  «         d S t)          |d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |t          t          f¦  «        r|t          j        |¦  «         S |                     d¦  «                             dd¦  «        t          j        |¦  «         S # t          j        |¦  «         w xY w)Nr   rS   r   z
z	utf-8-sigzutf-8zeditor-)ÚprefixÚsuffixÚwbé   Úrb)r'  Ú
isinstanceÚbytesÚ	bytearrayÚendswithr   r  ÚencodeÚmkstempr3  rð   Úfdopenrn   ÚutimeÚpathÚgetatimeÚgetmtimerE  r2  r*  ÚopenÚreadÚdecode)	rP   rÉ   r'  ÚdataÚfdrÔ   r+  Ú	timestampr»   s	            rQ   rI  zEditor.editï  s¯  € Øˆˆˆàˆ<Ø&)ˆDˆDÝ˜�u¥iÐ0Ñ1Ô1ð 		,ØˆDˆDàð ˜DŸMšM¨$Ñ/Ô/ð Ø˜‘�åð ,Ø—|’| D¨&Ñ1Ô1×8Ò8¸ÑEÔE��à—{’{ 7Ñ+Ô+�à×#Ò#¨9¸T¼^Ð#ÑLÔL‰ˆˆDð	Ý”˜2˜tÑ$Ô$ð ¨Ø—’˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ŒH�T�BœG×,Ò,¨TÑ2Ô2µB´G×4DÒ4DÀTÑ4JÔ4JÈQÑ4NÐOÑPÔPÐPõ œ×(Ò(¨Ñ.Ô.ˆIà�OŠO˜T˜GÑ$Ô$Ð$àÔ ð ¥R¤W×%5Ò%5°dÑ%;Ô%;¸yÒ%HÐ%HØõ ŒI�d‰OŒOˆOˆOˆOõ �d˜DÑ!Ô!ð  QØ—V’V‘X”X�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜$¥­	Ð 2Ñ3Ô3ð Øõ ŒI�d‰OŒOˆOˆOð —9’9˜[Ñ)Ô)×1Ò1°&¸$Ñ?Ô?åŒI�d‰OŒOˆOˆOø�BŒI�d‰OŒOˆOˆOøøøsa   Â+I" Ã C"ÃI" Ã"C&Ã&I" Ã)C&Ã*B6I" Æ7I" ÇG(ÇI" Ç(G,Ç,I" Ç/G,Ç0 I" È%(I" É"I8)NNTr/  )
r0  r/   r  r1  r2  r'   r3  r"   r6   r7   r½   )r>  r?  r6   r7   )rÉ   rF  r6   rG  )rÉ   r/   r6   r/   )rÉ   rK  r6   rL  )	r¾   r¿   rÀ   rR   r=  rE  r@   ÚoverloadrI  rÂ   rS   rQ   r.  r.  «  s«   € € € € € ð "Ø-1Ø!Øð
#ð 
#ð 
#ð 
#ð 
#ðð ð ð ð"ð ð ð ð< „ZØ@Ð@Ð@ñ „ZØ@ð „ZØ7Ð7Ð7ñ „ZØ7ð-ð -ð -ð -ð -ð -rS   r.  FÚurlr  Úlocater4   c                óä  — dd l }dd„}t          j        dk    r¶dg}|r|                     d¦  «         |r|                     d	¦  «         |                      || ¦  «        ¦  «         t	          d
d¦  «        }	 |                     ||¬¦  «                             ¦   «         |                     ¦   «          S # |                     ¦   «          w xY wt          rb|r7 || ¦  «        } dd| g}	 | 	                    |¦  «        S # t          $ r Y dS w xY w	 t          j        | ¦  «         n# t          $ r Y dS w xY wdS t          r…|r- || ¦  «        } dt          j                             | ¦  «        g}n/dg}|r|                     d¦  «         |                     | ¦  «         	 | 	                    |¦  «        S # t          $ r Y dS w xY w	 |r+t          j                              || ¦  «        ¦  «        pd} n || ¦  «        } |                     d| g¦  «        }|r|                     ¦   «         S dS # t          $ r9 |                      d¦  «        r |s|sdd l}|                     | ¦  «         Y dS Y dS w xY w)Nr   re  r"   r6   c                ób   — ddl m} |                      d¦  «        r || dd …         ¦  «        } | S )Nr   )Úunquotezfile://é   )Úurllib.parseri  rô   )re  ri  s     rQ   Ú_unquote_filezopen_url.<locals>._unquote_file"  sD   € Ø(Ð(Ð(Ð(Ð(Ð(à�>Š>˜)Ñ$Ô$ð 	#Ø�'˜#˜a˜b˜bœ'Ñ"Ô"ˆCàˆ
rS   Údarwinr^  z-Wr  z	/dev/nullr#  )ÚstderrÚexplorerz/select,é   Úcygstartz-wú.zxdg-open)zhttp://zhttps://r   )re  r"   r6   r"   )r  rë   ró   rŸ   r^  r  r  rÓ   r   r)  rC  rð   Ú	startfiler
   r[  Údirnamerô   Ú
webbrowser)	re  r  rf  r  rl  rA  Únullr   ru  s	            rQ   Úopen_urlrw    s  € ØÐÐÐðð ð ð õ „|�xÒÐØˆxˆØð 	Ø�KŠK˜ÑÔÐØð 	Ø�KŠK˜ÑÔÐØ�Š�M�M #Ñ&Ô&Ñ'Ô'Ð'Ý�K Ñ%Ô%ˆð	Ø×#Ò# D°Ð#Ñ6Ô6×;Ò;Ñ=Ô=à�JŠJ‰LŒLˆLˆLøˆD�JŠJ‰LŒLˆLˆLøøøÝ	ð Øð 	Ø�- Ñ$Ô$ˆCØ 
¨CÐ0ˆDðØ!—’ tÑ,Ô,Ð,øÝð ð ð Ø�s�sðøøøðÝ”˜SÑ!Ô!Ð!Ð!øÝð ð ð Ø�s�sðøøøà�1Ý	ð Øð 	Ø�- Ñ$Ô$ˆCØ¥¤§¢°Ñ 4Ô 4Ð5ˆDˆDà�<ˆDØð "Ø—’˜DÑ!Ô!Ð!Ø�KŠK˜ÑÔÐð	Ø—?’? 4Ñ(Ô(Ð(øÝð 	ð 	ð 	à�3�3ð	øøøðØð 	%Ý”'—/’/ - -°Ñ"4Ô"4Ñ5Ô5Ð<¸ˆCˆCà�- Ñ$Ô$ˆCØ×Ò˜j¨#Ð.Ñ/Ô/ˆØð 	Ø—6’6‘8”8ˆOØˆqøÝð ð ð Ø�>Š>Ð1Ñ2Ô2ð 	¸6ð 	È$ð 	ØÐÐÐà�OŠO˜CÑ Ô Ð Ø�1�1ØˆqˆqðøøøsU   Á9(B6 Â6CÃ)C> Ã>
DÄDÄD% Ä%
D3Ä2D3ÆF3 Æ3
GÇ GÇA$H, È,<I/É.I/Úchr7   c                óž   — | dk    rt          ¦   «         ‚| dk    rt          st          ¦   «         ‚| dk    rt          rt          ¦   «         ‚d S d S )Núúú)r  r   ÚEOFError)rx  s    rQ   Ú_translate_ch_to_excr~  e  sP   € Ø	ˆV‚|€|ÝÑ!Ô!Ð!à	ˆV‚|€|�C€|Ý‰jŒjÐà	ˆV‚|€|�€|Ý‰jŒjÐð €|€|€|rS   Úwin32úcabc.Iterator[int]c               #  ó   K  — dV — d S )Nr;   rÂ   rÂ   rS   rQ   Úraw_terminalr‚  s  s   è è € àˆˆˆˆˆrS   r   c                ó8  — | r7t          j        t           j        g t          f         t          j        ¦  «        }n6t          j        t           j        g t          f         t          j        ¦  «        } |¦   «         }|dv r| |¦   «         z  }t          |¦  «         |S )N)ú õ   Ã )r@   rA   ÚCallabler"   ÚmsvcrtÚgetwcheÚgetwchr~  )r   Úfuncr»   s      rQ   Úgetcharr‹  w  s…   € ð> ð 	>Ý”6�!œ* R­ WÔ-­v¬~Ñ>Ô>ˆDˆDå”6�!œ* R­ WÔ-­v¬}Ñ=Ô=ˆDàˆT‰VŒVˆàÐ!Ð!Ð!ð �$�$‘&”&‰LˆBå˜RÑ Ô Ð Øˆ	rS   c               #  ó¬  K  — t          t          j        ¦  «        s$t          d¦  «        } |                      ¦   «         }n t          j                             ¦   «         }d } 	 t          j        |¦  «        }	 t          j        |¦  «         |V — t          j	        |t
          j
        |¦  «         t          j                             ¦   «          | �|                      ¦   «          d S d S # t          j	        |t
          j
        |¦  «         t          j                             ¦   «          | �|                      ¦   «          w w xY w# t
          j        $ r Y d S w xY w)Nz/dev/tty)r   rë   rì   r^  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINr÷   rp   rÓ   Úerror)r+  rb  Úold_settingss      rQ   r‚  r‚  ©  s6  è è € õ
 •c”iÑ Ô ð 	Ý�ZÑ Ô ˆAØ—’‘”ˆBˆBå”×!Ò!Ñ#Ô#ˆBØˆAð	Ý"Ô,¨RÑ0Ô0ˆLðÝ”
˜2‘”�Ø���åÔ! "¥gÔ&7¸ÑFÔFÐFÝ”
× Ò Ñ"Ô"Ð"à�=Ø—G’G‘I”I�I�I�Ið !�=øõ Ô! "¥gÔ&7¸ÑFÔFÐFÝ”
× Ò Ñ"Ô"Ð"à�=Ø—G’G‘I”I�I�Ið !øøøøåŒ}ð 	ð 	ð 	ØˆDˆDð	øøøs,   Á!E  Á6C& ÂAE  Ã&AD=Ä=E  Å EÅEc                óh  — t          ¦   «         5 }t          j        |d¦  «                             t	          t
          j        ¦  «        d¦  «        }| r8t          t
          j        ¦  «        rt
          j         	                    |¦  «         t          |¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S )Né    r  )r‚  rð   r_  r`  r   rë   rì   r   r÷   rn   r~  )r   rb  rx  s      rQ   r‹  r‹  Ä  s×   € Ý‰^Œ^ð 	˜rÝ”˜˜R‘”×'Ò'Õ(9½#¼)Ñ(DÔ(DÀiÑPÔPˆBàð %��sœzÑ*Ô*ð %Ý”
× Ò  Ñ$Ô$Ð$å  Ñ$Ô$Ð$Øð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �BB'Â'B+Â.B+)rÚ   rÛ   r6   rÜ   r`   )r2   r*   r6   râ   )r2   r*   r6   rþ   )r  r"   rü   rÛ   r6   r'   )rû   r   rü   rÛ   r2   r*   r6   r  )rÅ   rÆ   r2   r*   r6   r  )FF)re  r"   r  r'   rf  r'   r6   r4   )rx  r"   r6   r7   )r6   r€  )r   r'   r6   r"   );rÙ   Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibr–   rð   rî   rë   rF   Útypingr@   r   rˆ   Úior   Úpathlibr   Útypesr   Ú_compatr	   r
   r   r   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   rÔ   rª   ro   ÚGenericr   rÄ   rá   rý   Úcontextmanagerr  r  rö   rõ   rí   r.  rw  r~  ró   r‡  r‚  r‹  rŽ  r�  rÂ   rS   rQ   ú<module>r§     s  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð à€A„Iˆc�N„N€ð „7ˆd‚?€?Ø€JØ€I€Ià€JØ€IðQ#ð Q#ð Q#ð Q#ð Q#�!”)˜A”,ñ Q#ô Q#ð Q#ðh
%+ð %+ð %+ð %+ð %+ñ %+ô %+ð %+ðP8ð 8ð 8ð 8ð: ð*3ð *3ð *3ð *3ð *3ðZ Ôðð ð ð ñ Ôðð.ð ð ð ð8 Ôà@DðSð Sð Sð Sñ ÔðSðl Ôà@Dðð ð ð ñ ÔððD Ôà+/ð	ð 	ð 	ð 	ñ Ôð	ðqð qð qð qð qñ qô qð qðhCð Cð Cð Cð CðLð ð ð ð „<�7ÒÐØ€M€M€MàÔðð ð ñ Ôðð,ð ,ð ,ð ,ð ,ð ,ð^ €N€N€NØ€J€J€JàÔðð ð ñ Ôðð4ð ð ð ð ð rS   