Ë
    ijµt  ã                  ót  — 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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jD                  d«      Z# G d„ dejH                  «      Z%	 	 	 	 d-d„Z&e	jN                  dk(  rdZ(dZ)ndZ(dZ) G d„ dejT                  e#   «      Z+ G d„ dejX                  «      Z-	 d.	 	 	 d/d„Z.ej^                  d.d0d „«       Z0ej^                  	 d.	 	 	 	 	 d1d!„«       Z1ej^                  	 d.	 	 	 	 	 d1d"„«       Z2ej^                  	 d.	 	 	 	 	 d2d#„«       Z3 G d$„ d%«      Z4d3d4d&„Z5d5d'„Z6ejn                  d(k(  rddl8Z8ej^                  d6d)„«       Z9d7d*„Z:yddl;Z;ddl<Z<ej^                  d6d+„«       Z9d7d,„Z:y)8z¿
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ÚVc                  ó   — e Zd ZU ded<   y)Ú_BufferedTextPagerStreamz
t.BinaryIOÚbufferN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú[/var/www/html/sergio/sergio-backend/venv/lib/python3.12/site-packages/click/_termui_impl.pyr   r   $   s   … ØÔr   r   c                ó    — t        | dd «      d uS )Nr   )Úgetattr)Ústreams    r   Ú_has_binary_bufferr!   (   s   € ô
 �6˜8 TÓ*°$Ð6Ð6r   ÚntÚÚ
z[?25lz[?25h
c                  ó6  — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Ze	dd„«       Z
e	dd	„«       Ze	dd
„«       Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd d„Zdd„Zdd„Zy)!ÚProgressBarNc                óÈ  — || _         || _        || _        || _        || _        || _        |	| _        |
| _        || _        |xs d| _	        |€t        «       }|€
t        «       }|| _        || _        || _        d| _        || _        |dk(  | _        |€ddlm}  ||d«      }|dk(  rd }|€,|€t)        d«      ‚t+        j,                  dt/        |«      «      }t1        |«      | _        || _        d| _        g | _        |  |  t9        j8                  «       x| _        | _        d| _        d| _         d | _!        d| _"        d | _#        tI        | j                  «      | _%        d | _&        y )NÚ r   )Úlength_hintéÿÿÿÿziterable or length is requiredzcabc.Iterable[V]F)'Ú	fill_charÚ
empty_charÚbar_templateÚinfo_sepÚhiddenÚshow_etaÚshow_percentÚshow_posÚitem_show_funcÚlabelr	   r   ÚfileÚcolorÚupdate_min_stepsÚ_completed_intervalsÚwidthÚ	autowidthÚoperatorr)   Ú	TypeErrorÚtÚcastÚrangeÚiterÚlengthÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemr   Ú_is_attyÚ
_last_line)ÚselfÚiterablerA   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r9   r)   s                     r   Ú__init__zProgressBar.__init__9   s]  € ð& #ˆŒØ$ˆŒØ(ˆÔØ ˆŒØˆŒØ ˆŒØ(ˆÔØ ˆŒØ,ˆÔØš+ 2ˆŒ
àˆ<Ü'Ó)ˆDð ˆ|Ü“z�àˆŒ	ØˆŒ
Ø 0ˆÔØ$%ˆÔ!ØˆŒ
Ø$¨™zˆŒàˆ>Ý,á  ¨2Ó.ˆFà˜Š|Ø�ØÐØˆ~ÜÐ @ÓAÐAÜ—v‘vÐ0´%¸³-Ó@ˆHÜ&*¨8£nˆŒ	ØˆŒØˆŒØ "ˆŒÙÙÜ%)§Y¡Y£[Ð0ˆŒ
�T”]Ø$ˆŒØ#ˆŒØ%)ˆŒØ"ˆŒØ&*ˆÔÜ˜tŸy™yÓ)ˆŒØ&*ˆ�r   c                ó4   — d| _         | j                  «        | S )NT)rJ   Úrender_progress©rN   s    r   Ú	__enter__zProgressBar.__enter__€   s   € ØˆŒØ×ÑÔØˆr   c                ó$   — | j                  «        y ©N)Úrender_finish)rN   Úexc_typeÚ	exc_valueÚtbs       r   Ú__exit__zProgressBar.__exit__…   s   € ð 	×ÑÕr   c                óp   — | j                   st        d«      ‚| j                  «        | j                  «       S )Nú.You need to use progress bars in a with block.)rJ   ÚRuntimeErrorrR   Ú	generatorrS   s    r   Ú__iter__zProgressBar.__iter__�   s.   € Ø�|Š|ÜÐOÓPÐPØ×ÑÔØ�~‰~ÓÐr   c                ó*   — t        t        | «      «      S rV   )Únextr@   rS   s    r   Ú__next__zProgressBar.__next__“   s   € ô ”D˜“JÓÐr   c                ó¨   — | j                   s| j                  sy | j                  j                  t        «       | j                  j                  «        y rV   )r/   rL   r5   ÚwriteÚ	AFTER_BARÚflushrS   s    r   rW   zProgressBar.render_finish›   s0   € Ø�;Š;˜dŸmšmØØ�	‰	�‰œ	Ô"Ø�	‰	�‰Õr   c                ó„   — | j                   ryt        | j                  t        | j                  xs d«      xs dz  d«      S )Nç      ð?r   )rH   ÚminrB   ÚfloatrA   rS   s    r   ÚpctzProgressBar.pct¡   s5   € à�=Š=ØÜ�4—8‘8œu T§[¡[Ò%5°AÓ6Ò;¸!Ñ<¸cÓBÐBr   c                ó„   — | j                   syt        | j                   «      t        t        | j                   «      «      z  S ©Ng        )rC   Úsumrk   ÚlenrS   s    r   Útime_per_iterationzProgressBar.time_per_iteration§   s,   € à�xŠxØÜ�4—8‘8‹}œu¤S¨¯©£]Ó3Ñ3Ð3r   c                ó€   — | j                   �2| j                  s&| j                  | j                   | j                  z
  z  S yrn   )rA   rH   rq   rB   rS   s    r   ÚetazProgressBar.eta­   s3   € à�;‰;Ð"¨4¯=ª=Ø×*Ñ*¨d¯k©k¸D¿H¹HÑ.DÑEÐEØr   c                óä   — | j                   rdt        | j                  «      }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dkD  rdj                  |t	        d«      |||¬«      S |d›d|d›d|d›�S y	)
Né<   é   r   z#{d}{day_label} {h:02}:{m:02}:{s:02}Úd)rw   Ú	day_labelÚhÚmÚsÚ02Ú:r(   )rG   Úintrs   ÚformatÚ_)rN   r=   ÚsecondsÚminutesÚhourss        r   Ú
format_etazProgressBar.format_eta³   s¡   € Ø�>Š>Ü�D—H‘H“ˆAØ˜"‘fˆGØ�"‰HˆAØ˜"‘fˆGØ�"‰HˆAØ˜‘FˆEØ�"‰HˆAØ�1ŠuØ<×CÑCØÜ ›fØØØð Dó ð ð   ˜ 1 W¨R L°°'¸"°Ð>Ð>Ør   c                ól   — t        | j                  «      }| j                  �|d| j                  › �z  }|S )NÚ/)ÚstrrB   rA   )rN   rB   s     r   Ú
format_poszProgressBar.format_posÈ   s3   € Ü�$—(‘(‹mˆØ�;‰;Ð"Ø�Q�t—{‘{�mÐ$Ñ$ˆCØˆ
r   c                ó@   — t        | j                  dz  «      d›d�dd  S )Néd   z 4Ú%r   )r~   rl   rS   s    r   Ú
format_pctzProgressBar.format_pctÎ   s&   € Ü�d—h‘h ‘nÓ% bÐ)¨Ð+¨A¨BÐ/Ð/r   c                óF  — | j                   �Rt        | j                  | j                  z  «      }| j                  |z  }|| j
                  | j                  |z
  z  z  }|S | j                  r| j                  | j                  z  }|S t        | j
                  | j                  xs dz  «      }| j                  dk7  rU| j                  |t        t        j                  | j                  | j                  z  «      dz  dz   | j                  z  «      <   dj                  |«      }|S )Nr   r   g       @g      à?r(   )rA   r~   rl   r9   r+   r,   rH   Úlistrq   ÚmathÚcosrB   Újoin)rN   Ú
bar_lengthÚbarÚcharss       r   Ú
format_barzProgressBar.format_barÑ   s  € Ø�;‰;Ð"Ü˜TŸX™X¨¯
©
Ñ2Ó3ˆJØ—.‘. :Ñ-ˆCØ�4—?‘? d§j¡j°:Ñ&=Ñ>Ñ>ˆCð ˆ
ð �]Š]Ø—.‘. 4§:¡:Ñ-ˆCð ˆ
ô ˜Ÿ™¨D¯J©JªO¸!Ñ<Ó=ˆEØ×&Ñ&¨!Ò+ð —N‘Nð ÜÜŸ™ $§(¡(¨T×-DÑ-DÑ"DÓEÈÑKÈcÑQØŸ*™*ñ%óñð —'‘'˜%“.ˆCØˆ
r   c                óŠ  — | j                   }g }| j                  �|€| j                   }| j                  r|j                  | j	                  «       «       |r|j                  | j                  «       «       | j                  r7| j                  r+| j                  s|j                  | j                  «       «       | j                  �.| j                  | j                  «      }|�|j                  |«       | j                  | j                  | j                  «       | j                  j!                  |«      dœz  j#                  «       S )N)r4   r“   Úinfo)r1   rA   r2   Úappendrˆ   rŒ   r0   rG   rH   r„   r3   rK   r-   r4   r•   r.   r‘   Úrstrip)rN   r1   Ú	info_bitsÚ	item_infos       r   Úformat_progress_linez ProgressBar.format_progress_lineä   s  € Ø×(Ñ(ˆàˆ	Ø�;‰;Ð" |Ð';Ø#Ÿ}™}Ð,ˆLà�=Š=Ø×Ñ˜TŸ_™_Ó.Ô/ÙØ×Ñ˜TŸ_™_Ó.Ô/Ø�=Š=˜TŸ^š^°D·M²MØ×Ñ˜TŸ_™_Ó.Ô/Ø×ÑÐ*Ø×+Ñ+¨D×,=Ñ,=Ó>ˆIØÐ$Ø× Ñ  Ô+ð ×ÑàŸ™Ø—‘Ó(ØŸ™×*Ñ*¨9Ó5ññ÷ ‰&‹(ð	r   c                óX  — | j                   ry | j                  sW| j                  | j                  k7  r=| j                  | _        t	        | j                  | j
                  | j                  ¬«       y g }| j                  r©dd l}| j                  }d| _	        t        | j                  «       «      }t        d|j                  «       j                  |z
  «      }||k  rF| j                  �:|j!                  t"        «       |j!                  d| j                  z  «       || _        || _	        | j                  }| j                  �| j                  }|j!                  t"        «       | j                  «       }t        |«      }| j                  �| j                  |k  r|| _        |j!                  |«       |j!                  d||z
  z  «       dj%                  |«      }|| j                  k7  rE|| _        t	        || j
                  | j                  d¬«       | j
                  j'                  «        y y )N)r5   r6   r   Ú r(   F)r5   r6   Únl)r/   rL   rM   r4   r   r5   r6   r:   Úshutilr9   r   rœ   ÚmaxÚget_terminal_sizeÚcolumnsrI   r˜   Ú
BEFORE_BARr‘   rg   )	rN   Úbufr    Ú	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	            r   rR   zProgressBar.render_progressÿ   s£  € Ø�;Š;Øà�}Š}à�‰ $§*¡*Ò,Ø"&§*¡*�”Ü�T—Z‘Z d§i¡i°t·z±zÕBØàˆà�>Š>ÛàŸ
™
ˆIØˆDŒJÜ% d×&?Ñ&?Ó&AÓBˆNÜ˜A˜v×7Ñ7Ó9×AÑAÀNÑRÓSˆIØ˜9Ò$¨¯©Ð)CØ—
‘
œ:Ô&Ø—
‘
˜3 §¡Ñ/Ô0Ø!*�”Ø"ˆDŒJà—j‘jˆØ�>‰>Ð%ØŸ.™.ˆKà�
‰
”:ÔØ×(Ñ(Ó*ˆÜ˜D“>ˆØ�>‰>Ð! T§^¡^°hÒ%>Ø%ˆDŒNà�
‰
�4ÔØ�
‰
�3˜+¨Ñ0Ñ1Ô2Ø�w‰w�s‹|ˆð �4—?‘?Ò"Ø"ˆDŒOÜ�˜DŸI™I¨T¯Z©Z¸EÕBØ�I‰I�O‰OÕð #r   c                ó  — | xj                   |z  c_         | j                  � | j                   | j                  k\  rd| _        t        j                  «       | j                  z
  dk  ry t        j                  «       | _        | j                   r/t        j                  «       | j
                  z
  | j                   z  }n!t        j                  «       | j
                  z
  }| j                  dd  |gz   | _        | j                  d u| _        y )NTri   iúÿÿÿ)rB   rA   rH   rD   rF   rE   rC   rG   )rN   Ún_stepsÚsteps      r   Ú	make_stepzProgressBar.make_step-  s¹   € Ø�Š�GÑ�Ø�;‰;Ð" t§x¡x°4·;±;Ò'>Ø ˆDŒMä�I‰I‹K˜$Ÿ-™-Ñ'¨3Ò.ØäŸ	™	›ˆŒð
 �8Š8Ü—I‘I“K $§*¡*Ñ,°·±Ñ8‰Dä—9‘9“; §¡Ñ+ˆDà—8‘8˜B˜C�= D 6Ñ)ˆŒàŸ™¨DÐ0ˆ�r   c                óØ   — |�|| _         | xj                  |z  c_        | j                  | j                  k\  r3| j                  | j                  «       | j	                  «        d| _        yy)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   )rK   r8   r7   r¯   rR   )rN   r­   rK   s      r   ÚupdatezProgressBar.updateC  sb   € ð  Ð#Ø ,ˆDÔà×!Ò! WÑ,Õ!à×$Ñ$¨×(=Ñ(=Ò=Ø�N‰N˜4×4Ñ4Ô5Ø× Ñ Ô"Ø()ˆDÕ%ð >r   c                ó.   — d| _         d | _        d| _        y )NFT)rG   rK   rH   rS   s    r   ÚfinishzProgressBar.finish]  s   € ØˆŒØ ˆÔØˆ�r   c              #  óX  K  — | j                   st        d«      ‚| j                  s| j                  E d{  –—†  y| j                  D ]=  }|| _        | j
                  dk(  r| j                  «        |–— | j                  d«       Œ? | j                  «        | j                  «        y7 Œr­w)z¨Return a generator which yields the items added to the bar
        during construction, and updates the progress bar *after* the
        yielded block returns.
        r]   Nr   r   )	rJ   r^   rL   r@   rK   r8   rR   r±   r³   )rN   Úrvs     r   r_   zProgressBar.generatorb  s�   è ø€ ð �|Š|ÜÐOÓPÐPà�}Š}Ø—y‘y× Ñ à—i”i�Ø$&�Ô!ð
 ×,Ñ,°Ò1Ø×(Ñ(Ô*à’Ø—‘˜A•ð  ð �K‰KŒMØ× Ñ Õ"ð !ús   ‚3B*µB(¶A3B*)NÚ#rž   z%(bar)sz  FTNFNNNNr   é   )"rO   zcabc.Iterable[V] | NonerA   z
int | Noner+   r‡   r,   r‡   r-   r‡   r.   r‡   r/   Úboolr0   r¸   r1   úbool | Noner2   r¸   r3   z)t.Callable[[V | None], str | None] | Noner4   ú
str | Noner5   zt.TextIO | Noner6   r¹   r7   r~   r9   r~   ÚreturnÚNone)r»   zProgressBar[V])rX   ztype[BaseException] | NonerY   zBaseException | NonerZ   zTracebackType | Noner»   r¼   )r»   zcabc.Iterator[V])r»   r   )r»   r¼   )r»   rk   ©r»   r‡   )r­   r~   r»   r¼   rV   )r­   r~   rK   zV | Noner»   r¼   )r   r   r   rP   rT   r[   r`   rc   rW   Úpropertyrl   rq   rs   r„   rˆ   rŒ   r•   rœ   rR   r¯   r±   r³   r_   r   r   r   r&   r&   8   s¢  „ ð "ØØØ%ØØØØ$(ØØDHØ Ø $Ø!Ø !Øð#E+à)ðE+ð ðE+ð ð	E+ð
 ðE+ð ðE+ð ðE+ð ðE+ð ðE+ð "ðE+ð ðE+ð BðE+ð ðE+ð ðE+ð ðE+ð  ð!E+ð" ð#E+ð$ 
ó%E+óNð
à,ðð (ðð !ð	ð
 
óó ó óð òCó ðCð
 ò4ó ð4ð
 òó ðó
ó*ó0óó&ó6,ó\1ô,*ó4ô
#r   r&   c                  ó,   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zˆ xZS )ÚMaybeStripAnsic               ó4   •— t        ‰| �  |fi |¤Ž || _        y rV   )ÚsuperrP   r6   )rN   r    r6   ÚkwargsÚ	__class__s       €r   rP   zMaybeStripAnsi.__init__…  s   ø€ Ü‰Ñ˜Ñ* 6Ò*Øˆ�
r   c                óP   •— | j                   st        |«      }t        ‰| �  |«      S rV   )r6   r   rÂ   re   )rN   ÚtextrÄ   s     €r   re   zMaybeStripAnsi.write‰  s#   ø€ Ø�zŠzÜ˜dÓ#ˆDÜ‰w‰}˜TÓ"Ð"r   )r    zt.IO[bytes]r6   r¸   rÃ   zt.Any)rÆ   r‡   r»   r~   )r   r   r   rP   re   Ú__classcell__)rÄ   s   @r   rÀ   rÀ   „  s   ø„ õ÷#ñ #r   rÀ   c                ó  — t        «       }|€
t        «       }t        t        j                  «      rt        |«      st        || «      S t        j                  t        j                  j                  dd«      «      }|rt        rt        || «      S t        || «      S t        j                  j                  d«      dv rt        || «      S t        st        j                  j                  d«      rt        dg| «      S t        dg| «      S )z2Decide what method to use for paging through text.ÚPAGERr(   ÚTERM)ÚdumbÚemacsÚos2ÚmoreÚless)r	   r   r   ÚsysÚstdinÚ
_nullpagerÚshlexÚsplitÚosÚenvironÚgetr   Ú_tempfilepagerÚ
_pipepagerÚplatformÚ
startswith)r6   ÚstdoutÚpager_cmd_partss      r   Ú_pager_contextmanagerrÞ   �  sÍ   € ô "Ó#€Fð €~Ü“ˆä”#—)‘)Ô¤F¨6¤NÜ˜& %Ó(Ð(ô —k‘k¤"§*¡*§.¡.°¸"Ó"=Ó>€OÙÝÜ! /°5Ó9Ð9Ü˜/¨5Ó1Ð1ä	‡z�z‡~�~�fÓÐ!2Ñ2Ü˜& %Ó(Ð(Ý
Œc�l‰l×%Ñ% eÔ,Ü˜v˜h¨Ó.Ð.Ü�v�h Ó&Ð&r   c              #  óD  K  — t        | ¬«      5 \  }}} t        |«      rt        |j                  | |¬«      }n(t	        |t
        j                  «      rt        || |¬«      }	 |–— |j                  «        	 ddd«       y# |j                  «        w xY w# 1 sw Y   yxY w­w)zòContext manager.
    Yields a writable file-like object which can be used as an output pager.
    .. versionadded:: 8.4
    :param color: controls if the pager supports ANSI colors or not.  The
                  default is autodetection.
    )r6   )r6   ÚencodingN)rÞ   r!   rÀ   r   Ú
isinstancer=   ÚBinaryIOrg   )r6   r    rà   s      r   Úget_pager_filerã   ®  s�   è ø€ ô 
 UÕ	+Ñ/H°¸À%ô ˜fÔ%ä# F§M¡M¸ÈÔR‰FÜ˜¤§
¡
Ô+ä# F°%À(ÔKˆFð	ØŠLà�L‰L�N÷ 
,Ð	+øð �L‰L�Nú÷ 
,Ð	+üs5   ‚B �ABÁ!A?Á%BÁ6	B Á?BÂBÂBÂB c              #  ó>  K  — | st        «       xs
 t        «       }|ddf–— yddl}| d   }| dd }|j                  |«      }|st        «       xs
 t        «       }|ddf–— yt	        |«      j                  «       }|j                  }ddl}	t        t        j                  «      }
|€L|dk(  rGt        j                  j                  dd«      › d	j                  |«      › �}|sd
|
d<   d}n
d|v sd|v rd}|€d}|	j                  t        |«      g|z   d|	j                  |
dd¬«      }t!        j"                  t         j$                  |j&                  «      }t)        |«      }	 |||f–— 	 |j1                  «        	 	 |j3                  «        y# t*        $ r Y Œ/t,        $ r}|j/                  «        |‚d}~ww xY w# t*        $ r Y ŒKw xY w# t4        $ r Y nw xY wŒ^# 	 |j1                  «        n# t*        $ r Y nw xY w	 	 |j3                  «        w # t4        $ r Y nw xY wŒ"xY w­w)aÞ  Page through text by feeding it to another program.

    Invokes the pager via :class:`subprocess.Popen` with an ``argv`` list
    produced by :func:`shlex.split`. The command is resolved to an absolute
    path with :func:`shutil.which` as recommended by the
    :mod:`subprocess` docs for Windows compatibility.

    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.
    úutf-8FNr   r   rÏ   ÚLESSr(   rž   ú-RTÚrÚRÚreplace)ÚshellrÑ   ÚenvÚerrorsrÆ   )r	   r   r    Úwhichr   ÚabsoluteÚnameÚ
subprocessÚdictrÕ   rÖ   r×   r‘   ÚPopenr‡   ÚPIPEr=   r>   râ   rÑ   r   ÚBrokenPipeErrorÚ	ExceptionÚ	terminateÚcloseÚwaitÚKeyboardInterrupt)Ú	cmd_partsr6   rÜ   r    ÚcmdÚ
cmd_paramsÚcmd_filepathÚcmd_pathÚcmd_namerñ   rì   Ú
less_flagsÚcrÑ   rà   Úes                   r   rÙ   rÙ   Æ  sF  è ø€ ñ  Ü%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$Øãà
�A‰,€CØ˜1˜2�€Jà—<‘< Ó$€LÙÜ%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$Øô
 �LÓ!×*Ñ*Ó,€HØ�}‰}€Hãô Œr�z‰zÓ
€Cð €}˜ VÒ+ÜŸ
™
Ÿ™ v¨rÓ2Ð3°C·H±H¸ZÓ4HÐ3IÐJˆ
ÙØˆC�‰KØ‰EØ�JÑ #¨Ñ"3ØˆEà€}Øˆà×ÑÜ	ˆX‹ˆ˜*Ñ$ØØ�o‰oØØØð 	ó 	€Aô �F‰F”1—:‘:˜qŸw™wÓ'€EÜ  Ó'€Hð#Ø�X˜uÐ$Ò$ð	Ø�K‰KŒMð ðØ—‘”ð øôC ò áÜò ð
 	
�‰ŒØˆûðûô ò 	Ùð	ûô %ò Ùðúð øð	Ø�K‰K�Møô ò 	Ùð	úð ðØ—‘”ð øô %ò Ùðúð üsÌ   ‚EHÅF	 Å&F6 Å6HÅ8G ÆHÆ		F3ÆG ÆF3ÆF.Æ.F3Æ3G Æ6	GÆ?HÇGÇHÇ	GÇHÇGÇHÇHÇG(Ç'HÇ(	G4Ç1HÇ3G4Ç4HÇ9H
È	HÈ
	HÈHÈHÈHÈHc              #  óÈ  K  — | st        «       xs
 t        «       }|ddf–— yddl}ddl}| d   }|j	                  |«      }|st        «       xs
 t        «       }|ddf–— yt        |«      j                  «       }ddl}t        t        j                  «      }	|€d}|j                  dd¬«      }
	 t        j                  t        j                  |
«      |	|f–— |
j                  «        |
j!                  «        |j#                  t%        |«      |
j&                  g«       t)        j*                  |
j&                  «       y# t)        j*                  |
j&                  «       w xY w­w)a   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 resolved to an absolute path with
    :func:`shutil.which`.
    rå   FNr   Úwb)ÚmodeÚdelete)r	   r   r    rñ   rî   r   rï   Útempfiler   rÐ   rÜ   ÚNamedTemporaryFiler=   r>   râ   rg   rø   Úcallr‡   rð   rÕ   Úunlink)rû   r6   rÜ   r    rñ   rü   rþ   rÿ   r  rà   Úfs              r   rØ   rØ   .  s  è ø€ ñ Ü%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$ØãÛà
�A‰,€Cà—<‘< Ó$€LÙÜ%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$Øô
 �LÓ!×*Ñ*Ó,€Hãä ¤§¡Ó,€HØ€}Øˆð 	×#Ñ#¨°eÐ#Ó<€AðÜ�f‰f”Q—Z‘Z Ó# X¨uÐ4Ò4Ø	�‰Œ	Ø	�‰Œ	Ø�‰œ˜X›¨¯©Ð/Ô0ä
�	‰	�!—&‘&ÕøŒ�	‰	�!—&‘&Õüs   ‚B,E"Â/A/D> Ä E"Ä>!EÅE"c              #  ó8   K  — t        | «      }|€d}| ||f–— y­w)z>Simply print unformatted text.  This is the ultimate fallback.NFr   )r    r6   rà   s      r   rÒ   rÒ   a  s)   è ø€ ô
 ! Ó(€HØ€}ØˆØ
�(˜EÐ
!Ó!ùs   ‚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y)ÚEditorNc                ó<   — || _         || _        || _        || _        y rV   )Úeditorrì   Úrequire_saveÚ	extension)rN   r  rì   r  r  s        r   rP   zEditor.__init__m  s!   € ð ˆŒØˆŒØ(ˆÔØ"ˆ�r   c                óÌ   — | j                   �| j                   S dD ]'  }t        j                  j                  |«      }|sŒ%|c S  t        ryddlm} dD ]  } ||«      €Œ|c S  y)N)ÚVISUALÚEDITORÚnotepadr   )rî   )zsensible-editorÚvimÚnanoÚvi)r  rÕ   rÖ   r×   r   r    rî   )rN   Úkeyrµ   rî   r  s        r   Ú
get_editorzEditor.get_editory  sc   € Ø�;‰;Ð"Ø—;‘;ÐÛ%ˆCÜ—‘—‘ Ó$ˆBÚØ’	ð &õ Øå ã6ˆFÙ�V‹}Ñ(Ø’ð 7ð r   c                ó  — ddl }ddl}| j                  «       }d}| j                  r9t        j
                  j                  «       }|j                  | j                  «       	 |j                   |j                  |«      t        |«      z   |¬«      }|j                  «       }|dk7  r$t        t        d«      j                  |¬«      «      ‚y# t        $ r+}t        t        d«      j                  ||¬«      «      |‚d}~ww xY w)z Open files in the user's editor.r   N)Úargsrì   z{editor}: Editing failed)r  z{editor}: Editing failed: {e})r  r  )rÓ   rñ   r  rì   rÕ   rÖ   Úcopyr±   ró   rÔ   rŽ   rù   r   r€   r   ÚOSError)	rN   Ú	filenamesrÓ   rñ   r  rÖ   r  Ú	exit_coder  s	            r   Ú
edit_fileszEditor.edit_filesŠ  sî   € ãÛà—‘Ó"ˆØ)-ˆà�8Š8Ü—j‘j—o‘oÓ'ˆGØ�N‰N˜4Ÿ8™8Ô$ð	ð × Ñ Ø �U—[‘[ Ó(¬4°	«?Ñ:Øð !ó ˆAð Ÿ™›ˆIØ˜AŠ~Ü$ÜÐ0Ó1×8Ñ8ÀÐ8ÓGóð ð øô ò 	Ü ÜÐ1Ó2×9Ñ9ÀÈ1Ð9ÓMóàðûð	ús   Á!A(C
 Ã
	C>Ã&C9Ã9C>c                 ó   — y rV   r   ©rN   rÆ   s     r   ÚeditzEditor.edit¨  s   € Ø=@r   c                 ó   — y rV   r   r%  s     r   r&  zEditor.edit­  s   € Ø47r   c                ó–  — dd l }|€d}njt        |t        t        f«      r|}nQ|r|j	                  d«      s|dz  }t
        r"|j                  dd«      j                  d«      }n|j                  d«      }|j                  d| j                  ¬«      \  }}	 t        j                  |d	«      5 }|j                  |«       d d d «       t        j                  |t        j                  j                  |«      t        j                  j!                  |«      d
z
  f«       t        j                  j!                  |«      }| j#                  |f«       | j$                  r9t        j                  j!                  |«      |k(  r	 t        j&                  |«       y t)        |d«      5 }|j+                  «       }d d d «       t        |t        t        f«      rt        j&                  |«       S j-                  d«      j                  dd«      t        j&                  |«       S # 1 sw Y   �Œ]xY w# 1 sw Y   ŒyxY w# t        j&                  |«       w xY w)Nr   r   r$   z
z	utf-8-sigrå   zeditor-)ÚprefixÚsuffixr  é   Úrb)r  rá   ÚbytesÚ	bytearrayÚendswithr   rê   ÚencodeÚmkstempr  rÕ   Úfdopenre   ÚutimeÚpathÚgetatimeÚgetmtimer#  r  r  ÚopenÚreadÚdecode)	rN   rÆ   r  ÚdataÚfdrð   r  Ú	timestamprµ   s	            r   r&  zEditor.edit°  s¸  € Ûàˆ<Ø&)‰DÜ˜œu¤iÐ0Ô1Ø‰Dá˜DŸM™M¨$Ô/Ø˜‘�åØ—|‘| D¨&Ó1×8Ñ8¸ÓE‘à—{‘{ 7Ó+�à×#Ñ#¨9¸T¿^¹^Ð#ÓL‰ˆˆDð	Ü—‘˜2˜tÔ$¨Ø—‘˜”÷ %ô �H‰H�TœBŸG™G×,Ñ,¨TÓ2´B·G±G×4DÑ4DÀTÓ4JÈQÑ4NÐOÔPô Ÿ™×(Ñ(¨Ó.ˆIà�O‰O˜T˜GÔ$à× Ò ¤R§W¡W×%5Ñ%5°dÓ%;¸yÒ%HØô �I‰I�d�Oô �d˜DÔ! QØ—V‘V“X�÷ "ô ˜$¤¬	Ð 2Ô3Øô �I‰I�d�Oð —9‘9˜[Ó)×1Ñ1°&¸$Ó?ä�I‰I�d�O÷3 %Ñ$ú÷" "Ð!ûô �I‰I�d�OúsI   ÂH1 Â+HÂ=B<H1 ÆH1 ÆH%Æ-H1 Ç" H1 ÈH"ÈH1 È%H.È*H1 È1I)NNTz.txt)
r  rº   rì   zcabc.Mapping[str, str] | Noner  r¸   r  r‡   r»   r¼   r½   )r!  zcabc.Iterable[str]r»   r¼   )rÆ   zbytes | bytearrayr»   zbytes | None)rÆ   rº   r»   rº   )rÆ   zstr | bytes | bytearray | Noner»   zstr | bytes | None)	r   r   r   rP   r  r#  r=   Úoverloadr&  r   r   r   r  r  l  s|   „ ð "Ø-1Ø!Øð
#àð
#ð +ð
#ð ð	
#ð
 ð
#ð 
ó
#óó"ð< ‡Z�ZÚ@ó Ø@ð ‡Z�ZÚ7ó Ø7ô-r   r  c                ó:  — dd l }dd„}t        j                  dk(  r~dg}|r|j                  d«       |r|j                  d«       |j                   || «      «       t	        dd«      }	 |j                  ||¬	«      j                  «       |j                  «        S t        r:|r! || «      } d
d| › �g}	 |j                  |«      S 	 t        j                  | «       yt        re|r* || «      } dt        j                  j                  | «      g}n'dg}|r|j                  d«       |j                  | «       	 |j                  |«      S 	 |r*t        j                  j                   || «      «      xs d} n || «      } |j                  d| g«      }|r|j                  «       S y# |j                  «        w xY w# t        $ r Y yw xY w# t        $ r Y yw xY w# t        $ r Y yw xY w# t        $ r/ | j!                  d«      r|s|sdd l}|j	                  | «       Y yY yw xY w)Nr   c                óJ   — ddl m} | j                  d«      r || dd  «      } | S )Nr   )Úunquotezfile://é   )Úurllib.parser@  rÛ   )Úurlr@  s     r   Ú_unquote_filezopen_url.<locals>._unquote_fileã  s&   € Ý(à�>‰>˜)Ô$Ù˜#˜a˜b˜'Ó"ˆCàˆ
r   Údarwinr7  z-Wrç   z	/dev/nullÚw)ÚstderrÚexplorerz/select,é   Úcygstartz-wÚ.zxdg-open)zhttp://zhttps://r   )rC  r‡   r»   r‡   )rñ   rÐ   rÚ   r˜   r7  ró   rù   rø   r   r
  r   rÕ   Ú	startfiler
   r4  ÚdirnamerÛ   Ú
webbrowser)	rC  rù   Úlocaterñ   rD  r  Únullr  rN  s	            r   Úopen_urlrQ  à  sý  € Ûóô ‡|�|�xÒØˆxˆÙØ�K‰K˜ÔÙØ�K‰K˜ÔØ�‰‘M #Ó&Ô'Ü�K Ó%ˆð	Ø×#Ñ# D°Ð#Ó6×;Ñ;Ó=à�J‰J�LÝ	ÙÙ Ó$ˆCØ (¨3¨%Ð 0Ð1ˆDðØ!—‘ tÓ,Ð,ðÜ—‘˜SÔ!ð Ý	ÙÙ Ó$ˆCØ¤§¡§¡°Ó 4Ð5‰Dà�<ˆDÙØ—‘˜DÔ!Ø�K‰K˜Ôð	Ø—?‘? 4Ó(Ð(ð
ÙÜ—'‘'—/‘/¡-°Ó"4Ó5Ò<¸‰Cá Ó$ˆCØ×Ñ˜j¨#Ð.Ó/ˆÙØ—6‘6“8ˆOØøðM �J‰J�Lûô ò Ùðûô
 ò Ùðûô ò 	áð	ûô ò Ø�>‰>Ð1Ô2¹6É$Ûà�O‰O˜CÔ ÙÙðúsU   Á) F  Â2F5 ÃG Ä4G ÅAG" Æ F2Æ5	GÇ GÇ	GÇGÇ	GÇGÇ"3HÈHc                óx   — | dk(  r
t        «       ‚| dk(  rt        s
t        «       ‚| dk(  rt        r
t        «       ‚y y )NÚÚÚ)rú   r   ÚEOFError)Úchs    r   Ú_translate_ch_to_excrX  &  s;   € Ø	ˆV‚|ÜÓ!Ð!à	ˆV‚|�CÜ‹jÐà	ˆV‚|�Ü‹jÐð €|r   Úwin32c               #  ó   K  — d–— y ­w)Nr*   r   r   r   r   Úraw_terminalr[  4  s   è ø€ à‹ùs   ‚c                ó8  — | r<t        j                  t         j                  g t        f   t        j
                  «      }n;t        j                  t         j                  g t        f   t        j                  «      } |«       }|dv r
| |«       z  }t        |«       |S )N)Ú ô   Ã )r=   r>   ÚCallabler‡   ÚmsvcrtÚgetwcheÚgetwchrX  )r   Úfuncrµ   s      r   Úgetcharrd  8  ss   € ñ> Ü—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯~©~Ó>‰Dä—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯}©}Ó=ˆDá‹VˆàÐ!Ñ!ð ‘$“&‰LˆBä˜RÔ Øˆ	r   c               #  óª  K  — t        t        j                  «      st        d«      } | j	                  «       }n t        j                  j	                  «       }d } 	 t        j                  |«      }	 t        j                  |«       |–— t        j                  |t
        j                  |«       t        j                  j                  «        | �| j                  «        y y # t        j                  |t
        j                  |«       t        j                  j                  «        | �| j                  «        w w xY w# t
        j                  $ r Y y w xY w­w)Nz/dev/tty)r   rÐ   rÑ   r7  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINrÜ   rg   rø   Úerror)r  r;  Úold_settingss      r   r[  r[  j  sø   è ø€ ô
 ”c—i‘iÔ Ü�ZÓ ˆAØ—‘“‰Bä—‘×!Ñ!Ó#ˆBØˆAð	Ü"×,Ñ,¨RÓ0ˆLðÜ—
‘
˜2”Ø’ä×!Ñ! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à�=Ø—G‘G•Ið !øô ×!Ñ! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à�=Ø—G‘G•Ið !ûä�}‰}ò 	Ùð	üsD   ‚AEÁD: Á/C ÂAD: ÃEÃAD7Ä7D: Ä:EÅEÅEÅEc                óJ  — t        «       5 }t        j                  |d«      j                  t	        t
        j                  «      d«      }| r8t        t
        j                  «      rt
        j                  j                  |«       t        |«       |cd d d «       S # 1 sw Y   y xY w)Né    rê   )r[  rÕ   r8  r9  r   rÐ   rÑ   r   rÜ   re   rX  )r   r;  rW  s      r   rd  rd  …  sd   € ÜŒ^˜rÜ—‘˜˜R“×'Ñ'Ô(9¼#¿)¹)Ó(DÀiÓPˆBáœœsŸz™zÔ*Ü—
‘
× Ñ  Ô$ä  Ô$Ø÷ �^Š^ús   ‹BBÂB")r    zt.BinaryIO | t.TextIOr»   z%t.TypeGuard[_BufferedTextPagerStream]rV   )r6   r¹   r»   z9t.ContextManager[tuple[t.BinaryIO | t.TextIO, str, bool]])r6   r¹   r»   z!t.Generator[t.TextIO, None, None])rû   z	list[str]r6   r¹   r»   z3t.Iterator[tuple[t.BinaryIO | t.TextIO, str, bool]])r    zt.TextIOr6   r¹   r»   z&t.Iterator[tuple[t.TextIO, str, bool]])FF)rC  r‡   rù   r¸   rO  r¸   r»   r~   )rW  r‡   r»   r¼   )r»   zcabc.Iterator[int])r   r¸   r»   r‡   )=Ú__doc__Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibÚior�   rÕ   rÓ   rÐ   rD   Útypingr=   r   r€   r   Úpathlibr   Útypesr   Ú_compatr	   r
   r   r   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   ÚProtocolr   r!   rð   r¤   rf   ÚGenericr&   ÚTextIOWrapperrÀ   rÞ   Úcontextmanagerrã   rÙ   rØ   rÒ   r  rQ  rX  rÚ   r`  r[  rd  rg  ri  r   r   r   Ú<module>rƒ     s  ðñõ #å Û Û 	Û Û 	Û Û 
Û Û Ý  Ý Ý Ý å )Ý Ý &Ý Ý Ý Ý Ý &Ý à€A‡I�IˆcƒN€ô˜qŸz™zô ð7Ø!ð7à*ó7ð ‡7�7ˆd‚?Ø€JØ�Ià€JØ€IôI#�!—)‘)˜A‘,ô I#ôX
#�R×%Ñ%ô #ð ð'Øð'à>ó'ð> ×Ñóó ðð. ×Ñà/3ðdØðdØ!,ðdà8òdó ðdðN ×Ñà/3ð/Øð/Ø!,ð/à8ò/ó ð/ðd ×Ñà+/ð"Øð"Ø(ð"à+ò"ó ð"÷qñ qôhCóLð ‡<�<�7ÒÛà×Ñòó ðô,ó^ Ûà×Ñòó ðô4r   