§
    sŠtjéë  ã                  ó´  — d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZmZmZ d dlmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 erd dl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZC ddlDmEZE ddlFmGZG ddlHmIZImJZJ ddlKmLZLmMZM  e+deN¦  «        ZO e0d¦  «        ZPe"g eQf         ZR ej0        de-e!¦  «        ZS G d„ de¦  «        ZT	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d¥d¦dC„ZU G dD„ dEee!¦  «        ZV G dF„ dGe#eS         e&eS         ¦  «        ZWdHd!dd"dd#d$d%d&d'd"dIœd§dM„ZXejY        	 	 	 	 d¨ddHd!dd"dd#d$d%d&d'd"dOœd©dZ„¦   «         ZZejY        	 	 	 	 d¨ddHd!dd"dd#d$d%d&d'd"dOœdªd\„¦   «         ZZ	 	 	 	 	 d«ddHd!dd"dd#d$d%d&d'd"dOœd¬d`„ZZ G da„ dbe¦  «        Z[ G dc„ dde[¦  «        Z\ G de„ dfe[¦  «        Z] G dg„ dhe[¦  «        Z^ G di„ dje[¦  «        Z_ G dk„ dle[¦  «        Z` G dm„ dne^¦  «        Za G do„ dpe[¦  «        Zb G dq„ dre[¦  «        Zc G ds„ dte[¦  «        Zd G du„ dve[¦  «        Ze G dw„ dxe[¦  «        Zf G dy„ dze[¦  «        Zg G d{„ d|e*¦  «        Zhe G d}„ d~¦  «        ¦   «         Zi G d„ d€e?¦  «        Zjekd�k    �rŸd dllZld dlmZmdd‚lnmoZo ddƒlpmqZq dd„lrmsZs dd…lHmJZJ  esd†d‡d!¬ˆ¦  «        Zr eJd‰dŠd‹¦  «        ZHeH t                    dŒd�dŽ¦  «         d� eod�¦  «        d‘eHd’d“d”d•œd–er eqd—¦  «        g	Zud d˜lvmwZw  eweu¦  «        Zx e8d!¬™¦  «        Z7 ej e]¦   «         gej y                    ¦   «         ¢ e`¦   «         ‘R e7d"dšœŽ5 Zzez {                    d›dœ¬�¦  «        Z|ez {                    dždœ¬�¦  «        Z}ez {                    dŸd¬�¦  «        Z~ezj        sxez €                    e|d ¬¡¦  «         ez €                    e}d¢¬¡¦  «          emj�        d£¦  «          elj‚        d d¤¦  «        dk     rez ƒ                     e„ex¦  «        ¦  «         ezj        ¯xddd¦  «         dS # 1 swxY w Y   dS dS )­é    )ÚannotationsN)ÚABCÚabstractmethod©Údeque)Ú	dataclassÚfield)Ú	timedelta)Ú	RawIOBaseÚUnsupportedOperation)Úceil)Úmmap)Úlength_hint)ÚPathLikeÚstat)ÚEventÚRLockÚThread)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚBinaryIOÚCallableÚContextManagerÚDequeÚDictÚGenericÚIterableÚListÚLiteralÚ
NamedTupleÚNewTypeÚOptionalÚTextIOÚTupleÚTypeÚTypeVarÚUnion)ÚSelfé   )ÚfilesizeÚget_console)ÚConsoleÚGroupÚJustifyMethodÚRenderableType)ÚHighlighter)ÚJupyterMixin)ÚLive)ÚProgressBar)ÚSpinner)Ú	StyleType)ÚColumnÚTable)ÚTextÚTextTypeÚTaskIDÚProgressTypeÚ_Ic                  ó<   ‡ — e Zd ZdZdˆ fd„Zdd„Zdd„Zdd„Zˆ xZS )Ú_TrackThreadz)A thread to periodically update progress.Úprogressú
'Progress'Útask_idú'TaskID'Úupdate_periodÚfloatc                óª   •— || _         || _        || _        t          ¦   «         | _        d| _        t          ¦   «                              d¬¦  «         d S )Nr   T)Údaemon)r@   rB   rD   r   ÚdoneÚ	completedÚsuperÚ__init__)Úselfr@   rB   rD   Ú	__class__s       €úK/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/rich/progress.pyrK   z_TrackThread.__init__C   sL   ø€ Ø ˆŒØˆŒØ*ˆÔÝ‘G”GˆŒ	àˆŒÝ‰Œ×Ò ÐÑ%Ô%Ð%Ð%Ð%ó    ÚreturnÚNonec                óP  — | j         }| j        j        }| j        }d}| j        j        } ||¦  «        sK| j        j        j        r:| j        }||k    r ||||z
  ¦  «         |} ||¦  «        s| j        j        j        °:| j         	                    | j         | j        d¬¦  «         d S )Nr   T)rI   Úrefresh)
rB   r@   ÚadvancerD   rH   ÚwaitÚliveÚ
is_startedrI   Úupdate)rL   rB   rT   rD   Úlast_completedrU   rI   s          rN   Úrunz_TrackThread.runL   sÄ   € Ø”,ˆØ”-Ô'ˆØÔ*ˆØˆØŒyŒ~ˆØ�$�}Ñ%Ô%ð 	+¨$¬-Ô*<Ô*Gð 	+ØœˆIØ Ò*Ð*Ø�˜ ¨^Ñ!;Ñ<Ô<Ð<Ø!*�ð	 �$�}Ñ%Ô%ð 	+¨$¬-Ô*<Ô*Gð 	+ð 	Œ×Ò˜Tœ\°T´^ÈTÐÑRÔRÐRÐRÐRrO   ú'_TrackThread'c                ó.   — |                       ¦   «          | S ©N©Ústart©rL   s    rN   Ú	__enter__z_TrackThread.__enter__Z   ó   € Ø�
Š
‰ŒˆØˆrO   Úexc_typeúOptional[Type[BaseException]]Úexc_valúOptional[BaseException]Úexc_tbúOptional[TracebackType]c                ó`   — | j                              ¦   «          |                      ¦   «          d S r]   )rH   ÚsetÚjoin©rL   rc   re   rg   s       rN   Ú__exit__z_TrackThread.__exit__^   s$   € ð 	Œ	�Š‰ŒˆØ�	Š	‰ŒˆˆˆrO   )r@   rA   rB   rC   rD   rE   ©rP   rQ   )rP   r[   ©rc   rd   re   rf   rg   rh   rP   rQ   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__rK   rZ   ra   rm   Ú__classcell__©rM   s   @rN   r?   r?   @   sƒ   ø€ € € € € Ø3Ð3ð&ð &ð &ð &ð &ð &ðSð Sð Sð Sðð ð ð ðð ð ð ð ð ð ð rO   r?   ú
Working...TFé
   úbar.backúbar.completeúbar.finishedú	bar.pulseçš™™™™™¹?ÚsequenceúIterable[ProgressType]ÚdescriptionÚstrÚtotalúOptional[float]rI   ÚintÚauto_refreshÚboolÚconsoleúOptional[Console]Ú	transientÚget_timeúOptional[Callable[[], float]]Úrefresh_per_secondrE   Ústyler6   Úcomplete_styleÚfinished_styleÚpulse_stylerD   ÚdisableÚ
show_speedrP   c           
   #  óX  K  — |rt          d¦  «        gng }|                     t          |	|
||¬¦  «        t          |¬¦  «        t	          d¬¦  «        f¦  «         t          ||||||pd|dœŽ}|5  |                     | ||||¬¦  «        E d	{V —† d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
a¥  Track progress by iterating over a sequence.

    You can also track progress of an iterable, which might require that you additionally specify ``total``.

    Args:
        sequence (Iterable[ProgressType]): Values you wish to iterate over and track progress.
        description (str, optional): Description of task show next to progress bar. Defaults to "Working".
        total: (float, optional): Total number of steps. Default is len(sequence).
        completed (int, optional): Number of steps completed so far. Defaults to 0.
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.
        disable (bool, optional): Disable display of progress.
        show_speed (bool, optional): Show speed if total isn't known. Defaults to True.
    Returns:
        Iterable[ProgressType]: An iterable of the values in the sequence.

    ú([progress.description]{task.description}©rŒ   r�   rŽ   r�   )r‘   T)Úelapsed_when_finishedrw   ©r„   r†   rˆ   r‰   r‹   r�   )r�   rI   r   rD   N)Ú
TextColumnÚextendÚ	BarColumnÚTaskProgressColumnÚTimeRemainingColumnÚProgressÚtrack)r}   r   r�   rI   r„   r†   rˆ   r‰   r‹   rŒ   r�   rŽ   r�   rD   r�   r‘   Úcolumnsr@   s                     rN   r�   r�   h   sg  è è € ðX EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ¨*Ð5Ñ5Ô5Ý°dÐ;Ñ;Ô;ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð 
ð 
ð 
Ø—>’>ØØØØ#Ø'ð "ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á1!BÂB#Â&B#c                  óþ   — e Zd ZdZ	 d;d<d„Zd=d„Zd>d„Zd?d„Zd@d„Ze	dAd„¦   «         Z
dBd„ZdAd„Ze	dCd„¦   «         Ze	dCd „¦   «         ZdAd!„ZdAd"„ZdAd#„ZdDdEd&„ZdFd)„ZdDdEd*„ZdDdGd-„ZdHd.„ZdIdJd2„ZdBd3„ZdKd6„ZdLd9„Zd:S )MÚ_Readerz9A reader that tracks progress while it's being read from.TÚhandler   r@   rA   Útaskr;   Úclose_handler…   rP   rQ   c                óL   — || _         || _        || _        || _        d| _        d S ©NF)r¡   r@   r¢   r£   Ú_closed)rL   r¡   r@   r¢   r£   s        rN   rK   z_Reader.__init__¹   s,   € ð ˆŒØ ˆŒØˆŒ	Ø(ˆÔØˆŒˆˆrO   ú	'_Reader'c                ó8   — | j                              ¦   «          | S r]   )r¡   ra   r`   s    rN   ra   z_Reader.__enter__Æ   s   € ØŒ×ÒÑÔÐØˆrO   rc   rd   re   rf   rg   rh   c                ó.   — |                       ¦   «          d S r]   )Úcloserl   s       rN   rm   z_Reader.__exit__Ê   s   € ð 	�
Š
‰ŒˆˆˆrO   c                ó   — | S r]   © r`   s    rN   Ú__iter__z_Reader.__iter__Ò   s   € ØˆrO   Úbytesc                óŠ   — t          | j        ¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S ©N©rT   )Únextr¡   r@   rT   r¢   Úlen)rL   Úlines     rN   Ú__next__z_Reader.__next__Õ   s9   € Ý�D”KÑ Ô ˆØŒ×Ò˜dœiµ°T±´ÐÑ;Ô;Ð;ØˆrO   c                ó   — | j         S r]   )r¦   r`   s    rN   Úclosedz_Reader.closedÚ   s
   € àŒ|ÐrO   rƒ   c                ó4   — | j                              ¦   «         S r]   )r¡   Úfilenor`   s    rN   r¹   z_Reader.filenoÞ   ó   € ØŒ{×!Ò!Ñ#Ô#Ð#rO   c                ó4   — | j                              ¦   «         S r]   )r¡   Úisattyr`   s    rN   r¼   z_Reader.isattyá   rº   rO   r€   c                ó   — | j         j        S r]   )r¡   Úmoder`   s    rN   r¾   z_Reader.modeä   ó   € àŒ{ÔÐrO   c                ó   — | j         j        S r]   )r¡   Únamer`   s    rN   rÁ   z_Reader.nameè   r¿   rO   c                ó4   — | j                              ¦   «         S r]   )r¡   Úreadabler`   s    rN   rÃ   z_Reader.readableì   ó   € ØŒ{×#Ò#Ñ%Ô%Ð%rO   c                ó4   — | j                              ¦   «         S r]   )r¡   Úseekabler`   s    rN   rÆ   z_Reader.seekableï   rÄ   rO   c                ó   — dS r¥   r¬   r`   s    rN   Úwritablez_Reader.writableò   s   € ØˆurO   éÿÿÿÿÚsizec                ó–   — | j                              |¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S r°   )r¡   Úreadr@   rT   r¢   r³   )rL   rÊ   Úblocks      rN   rÌ   z_Reader.readõ   s?   € Ø”× Ò  Ñ&Ô&ˆØŒ×Ò˜dœiµ°U±´ÐÑ<Ô<Ð<ØˆrO   Úbú"Union[bytearray, memoryview, mmap]c                ó|   — | j                              |¦  «        }| j                             | j        |¬¦  «         |S r°   )r¡   Úreadintor@   rT   r¢   )rL   rÎ   Úns      rN   rÑ   z_Reader.readintoú   s9   € ØŒK× Ò  Ñ#Ô#ˆØŒ×Ò˜dœi°ÐÑ3Ô3Ð3ØˆrO   c                ó–   — | j                              |¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S r°   )r¡   Úreadliner@   rT   r¢   r³   )rL   rÊ   r´   s      rN   rÔ   z_Reader.readlineÿ   s?   € ØŒ{×#Ò# DÑ)Ô)ˆØŒ×Ò˜dœiµ°T±´ÐÑ;Ô;Ð;ØˆrO   ÚhintúList[bytes]c           	     ó¼   — | j                              |¦  «        }| j                             | j        t          t          t          |¦  «        ¦  «        ¬¦  «         |S r°   )r¡   Ú	readlinesr@   rT   r¢   ÚsumÚmapr³   )rL   rÕ   Úliness      rN   rØ   z_Reader.readlines  sI   € Ø”×%Ò% dÑ+Ô+ˆØŒ×Ò˜dœiµµS½¸e±_´_Ñ1EÔ1EÐÑFÔFÐFØˆrO   c                óT   — | j         r| j                             ¦   «          d| _        d S )NT)r£   r¡   rª   r¦   r`   s    rN   rª   z_Reader.close	  s,   € ØÔð 	 ØŒK×ÒÑÔÐØˆŒˆˆrO   r   ÚoffsetÚwhencec                ó~   — | j                              ||¦  «        }| j                             | j        |¬¦  «         |S )N©rI   )r¡   Úseekr@   rX   r¢   )rL   rÝ   rÞ   Úposs       rN   rá   z_Reader.seek  s;   € ØŒk×Ò˜v vÑ.Ô.ˆØŒ×Ò˜TœY°#ÐÑ6Ô6Ð6Øˆ
rO   c                ó4   — | j                              ¦   «         S r]   )r¡   Útellr`   s    rN   rä   z_Reader.tell  s   € ØŒ{×ÒÑ!Ô!Ð!rO   Úsr   c                ó    — t          d¦  «        ‚)NÚwrite©r   )rL   rå   s     rN   rç   z_Reader.write  s   € Ý" 7Ñ+Ô+Ð+rO   rÛ   úIterable[Any]c                ó    — t          d¦  «        ‚)NÚ
writelinesrè   )rL   rÛ   s     rN   rë   z_Reader.writelines  s   € Ý" <Ñ0Ô0Ð0rO   N)T)
r¡   r   r@   rA   r¢   r;   r£   r…   rP   rQ   )rP   r§   ro   )rP   r   )rP   r®   ©rP   r…   )rP   rƒ   )rP   r€   )rÉ   )rÊ   rƒ   rP   r®   )rÎ   rÏ   )rÕ   rƒ   rP   rÖ   rn   )r   )rÝ   rƒ   rÞ   rƒ   rP   rƒ   )rå   r   rP   rƒ   )rÛ   ré   rP   rQ   )rp   rq   rr   rs   rK   ra   rm   r­   rµ   Úpropertyr·   r¹   r¼   r¾   rÁ   rÃ   rÆ   rÈ   rÌ   rÑ   rÔ   rØ   rª   rá   rä   rç   rë   r¬   rO   rN   r    r    ¶   s  € € € € € ØCÐCð "ðð ð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð
 ðð ð ñ „Xðð$ð $ð $ð $ð$ð $ð $ð $ð ð ð  ð  ñ „Xð ð ð ð  ð  ñ „Xð ð&ð &ð &ð &ð&ð &ð &ð &ðð ð ð ðð ð ð ð ð
ð ð ð ð
ð ð ð ð ð
ð ð ð ð ð
ð ð ð ð
ð ð ð ð ð
"ð "ð "ð "ð,ð ,ð ,ð ,ð1ð 1ð 1ð 1ð 1ð 1rO   r    c                  ó*   — e Zd ZdZdd„Zdd	„Zdd„ZdS )Ú_ReadContextzEA utility class to handle a context for both a reader and a progress.r@   rA   Úreaderr=   rP   rQ   c                ó"   — || _         || _        d S r]   )r@   rð   )rL   r@   rð   s      rN   rK   z_ReadContext.__init__   s   € Ø ˆŒØ ˆŒˆˆrO   c                óf   — | j                              ¦   «          | j                             ¦   «         S r]   )r@   r_   rð   ra   r`   s    rN   ra   z_ReadContext.__enter__$  s*   € ØŒ×ÒÑÔÐØŒ{×$Ò$Ñ&Ô&Ð&rO   rc   rd   re   rf   rg   rh   c                óp   — | j                              ¦   «          | j                             |||¦  «         d S r]   )r@   Ústoprð   rm   rl   s       rN   rm   z_ReadContext.__exit__(  s8   € ð 	Œ×ÒÑÔÐØŒ×Ò˜X w°Ñ7Ô7Ð7Ð7Ð7rO   N)r@   rA   rð   r=   rP   rQ   )rP   r=   ro   )rp   rq   rr   rs   rK   ra   rm   r¬   rO   rN   rï   rï     sV   € € € € € ØOÐOð!ð !ð !ð !ð'ð 'ð 'ð 'ð8ð 8ð 8ð 8ð 8ð 8rO   rï   ú
Reading...)r   r„   r†   rˆ   r‰   r‹   rŒ   r�   rŽ   r�   r�   Úfiler   úContextManager[BinaryIO]c          
     ó"  — |rt          d¦  «        gng }|                     t          ||	|
|¬¦  «        t          ¦   «         t	          ¦   «         f¦  «         t          ||||||pd|dœŽ}|                     | ||¬¦  «        }t          ||¦  «        S )a  Read bytes from a file while tracking progress.

    Args:
        file (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
        total (int): Total number of bytes to read.
        description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        disable (bool, optional): Disable display of progress.
    Returns:
        ContextManager[BinaryIO]: A context manager yielding a progress reader.

    r“   r”   rw   r–   )r�   r   )r—   r˜   r™   ÚDownloadColumnr›   rœ   Ú	wrap_filerï   )rö   r�   r   r„   r†   rˆ   r‰   r‹   rŒ   r�   rŽ   r�   r�   rž   r@   rð   s                   rN   rú   rú   2  sÑ   € ðJ EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ÑÔÝÑ!Ô!ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð ×Ò ¨E¸{ÐÑKÔK€FÝ˜ &Ñ)Ô)Ð)rO   rÉ   )r�   r   r„   r†   rˆ   r‰   r‹   rŒ   r�   rŽ   r�   r�   ú"Union[str, 'PathLike[str]', bytes]r¾   ú"Union[Literal['rt'], Literal['r']]Ú	bufferingÚencodingúOptional[str]ÚerrorsÚnewlineúOptional[int]úContextManager[TextIO]c               ó   — d S r]   r¬   ©rö   r¾   rý   rþ   r   r  r�   r   r„   r†   rˆ   r‰   r‹   rŒ   r�   rŽ   r�   r�   s                     rN   Úopenr  s  ó	   € ð, 	€DrO   úLiteral['rb']c               ó   — d S r]   r¬   r  s                     rN   r  r  Œ  r  rO   Úrú1Union[Literal['rb'], Literal['rt'], Literal['r']]ú7Union[ContextManager[BinaryIO], ContextManager[TextIO]]c          
     ó,  — |rt          d¦  «        gng }|                     t          ||||¬¦  «        t          ¦   «         t	          ¦   «         f¦  «         t          |||	|
||pd|dœŽ}|                     | |||||||¬¦  «        }t          ||¦  «        S )a®  Read bytes from a file while tracking progress.

    Args:
        path (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
        mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
        buffering (int): The buffering strategy to use, see :func:`io.open`.
        encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
        errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
        newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`
        total: (int, optional): Total number of bytes to read. Must be provided if reading from a file handle. Default for a path is os.stat(file).st_size.
        description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        disable (bool, optional): Disable display of progress.
        encoding (str, optional): The encoding to use when reading in text mode.

    Returns:
        ContextManager[BinaryIO]: A context manager yielding a progress reader.

    r“   r”   rw   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„   r†   rˆ   r‰   r‹   rŒ   r�   rŽ   r�   r�   rž   r@   rð   s                        rN   r  r  ¥  sé   € ðb EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ÑÔÝÑ!Ô!ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð �]Š]ØØØØØØØØð ñ 	ô 	€Fõ ˜ &Ñ)Ô)Ð)rO   c                  óT   — e Zd ZU dZdZded<   ddd	„Zdd„Zdd„Ze	dd„¦   «         Z
dS )ÚProgressColumnz3Base class for a widget to use in progress display.Nr‚   Úmax_refreshÚtable_columnúOptional[Column]rP   rQ   c                ó0   — || _         i | _        d | _        d S r]   )Ú_table_columnÚ_renderable_cacheÚ_update_time)rL   r  s     rN   rK   zProgressColumn.__init__   s    € Ø)ˆÔØMOˆÔØ-1ˆÔÐÐrO   r7   c                ó,   — | j         pt          ¦   «         S )z.Get a table column, used to build tasks table.)r  r7   r`   s    rN   Úget_table_columnzProgressColumn.get_table_column  s   € àÔ!Ð-¥V¡X¤XÐ-rO   r¢   ú'Task'r0   c                ó  — |                      ¦   «         }| j        �>|j        s7	 | j        |j                 \  }}|| j        z   |k    r|S n# t
          $ r Y nw xY w|                      |¦  «        }||f| j        |j        <   |S )a  Called by the Progress object to return a renderable for the given task.

        Args:
            task (Task): An object containing information regarding the task.

        Returns:
            RenderableType: Anything renderable (including str).
        )r‰   r  rI   r  ÚidÚKeyErrorÚrender)rL   r¢   Úcurrent_timeÚ	timestampÚ
renderables        rN   Ú__call__zProgressColumn.__call__	  s©   € ð —}’}‘”ˆØÔÐ'°´Ð'ð&Ø(,Ô(>¸t¼wÔ(GÑ%�	˜:ð ˜tÔ/Ñ/°,Ò>Ð>Ø%Ð%ð ?øõ ð ð ð Ø�ðøøøð —[’[ Ñ&Ô&ˆ
Ø+7¸Ð*DˆÔ˜tœwÑ'ØÐs   ¤A
 Á

AÁAc                ó   — dS )z"Should return a renderable object.Nr¬   ©rL   r¢   s     rN   r  zProgressColumn.render   s   € € € rO   r]   )r  r  rP   rQ   )rP   r7   ©r¢   r  rP   r0   )rp   rq   rr   rs   r  Ú__annotations__rK   r  r!  r   r  r¬   rO   rN   r  r  û  sŽ   € € € € € € Ø=Ð=à#'€KÐ'Ð'Ð'Ñ'ð2ð 2ð 2ð 2ð 2ð
.ð .ð .ð .ðð ð ð ð. ð1ð 1ð 1ñ „^ð1ð 1ð 1rO   r  c                  ó6   ‡ — e Zd ZdZ	 dddœdˆ fd	„Zdd„Zˆ xZS )ÚRenderableColumnz�A column to insert an arbitrary column.

    Args:
        renderable (RenderableType, optional): Any renderable. Defaults to empty string.
    Ú N©r  r   r0   r  r  c               óZ   •— || _         t          ¦   «                              |¬¦  «         d S ©Nr)  )r   rJ   rK   )rL   r   r  rM   s      €rN   rK   zRenderableColumn.__init__,  s-   ø€ ð %ˆŒÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r¢   r  rP   c                ó   — | j         S r]   )r   r#  s     rN   r  zRenderableColumn.render2  s
   € ØŒÐrO   )r(  )r   r0   r  r  r$  ©rp   rq   rr   rs   rK   r  rt   ru   s   @rN   r'  r'  %  sr   ø€ € € € € ðð ð ,.ð4ØSWð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ðð ð ð ð ð ð ð rO   r'  c                  óF   ‡ — e Zd ZdZ	 	 	 	 	 ddˆ fd„Z	 	 ddd„Zdd„Zˆ xZS )ÚSpinnerColumna‰  A column with a 'spinner' animation.

    Args:
        spinner_name (str, optional): Name of spinner animation. Defaults to "dots".
        style (StyleType, optional): Style of spinner. Defaults to "progress.spinner".
        speed (float, optional): Speed factor of spinner. Defaults to 1.0.
        finished_text (TextType, optional): Text used when task is finished. Defaults to " ".
    Údotsúprogress.spinnerç      ð?ú NÚspinner_namer€   rŒ   úOptional[StyleType]ÚspeedrE   Úfinished_textr:   r  r  c                óÚ   •— t          |||¬¦  «        | _        t          |t          ¦  «        rt	          j        |¦  «        n|| _        t          ¦   «                              |¬¦  «         d S )N©rŒ   r6  r)  )	r5   ÚspinnerÚ
isinstancer€   r9   Úfrom_markupr7  rJ   rK   )rL   r4  rŒ   r6  r7  r  rM   s         €rN   rK   zSpinnerColumn.__init__@  sm   ø€ õ ˜|°5ÀÐFÑFÔFˆŒõ ˜-­Ñ-Ô-ð�DÔ˜]Ñ+Ô+Ð+àð 	Ôõ
 	‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   Úspinner_stylerP   rQ   c                ó4   — t          |||¬¦  «        | _        dS )a-  Set a new spinner.

        Args:
            spinner_name (str): Spinner name, see python -m rich.spinner.
            spinner_style (Optional[StyleType], optional): Spinner style. Defaults to "progress.spinner".
            speed (float, optional): Speed factor of spinner. Defaults to 1.0.
        r9  N)r5   r:  )rL   r4  r=  r6  s       rN   Úset_spinnerzSpinnerColumn.set_spinnerP  s   € õ ˜|°=ÈÐNÑNÔNˆŒˆˆrO   r¢   r  r0   c                óz   — |j         r| j        n+| j                             |                     ¦   «         ¦  «        }|S r]   )Úfinishedr7  r:  r  r‰   )rL   r¢   Útexts      rN   r  zSpinnerColumn.render_  s=   € ð Œ}ð6ˆDÔÐà”×$Ò$ T§]¢]¡_¤_Ñ5Ô5ð 	ð
 ˆrO   )r0  r1  r2  r3  N)
r4  r€   rŒ   r5  r6  rE   r7  r:   r  r  )r1  r2  )r4  r€   r=  r5  r6  rE   rP   rQ   r$  )rp   rq   rr   rs   rK   r?  r  rt   ru   s   @rN   r/  r/  6  s˜   ø€ € € € € ðð ð #Ø%7ØØ"%Ø)-ð4ð 4ð 4ð 4ð 4ð 4ð 4ð& .@Øð	Oð Oð Oð Oð Oðð ð ð ð ð ð ð rO   r/  c                  ó8   ‡ — e Zd ZdZ	 	 	 	 	 ddˆ fd„Zdd„Zˆ xZS )r—   zA column containing text.ÚnoneÚleftTNÚtext_formatr€   rŒ   r6   Újustifyr/   Úmarkupr…   ÚhighlighterúOptional[Highlighter]r  r  rP   rQ   c                ó²   •— || _         || _        || _        || _        || _        t          ¦   «                              |pt          d¬¦  «        ¬¦  «         d S )NT©Úno_wrapr)  )rF  rG  rŒ   rH  rI  rJ   rK   r7   )rL   rF  rŒ   rG  rH  rI  r  rM   s          €rN   rK   zTextColumn.__init__k  s[   ø€ ð 'ˆÔØ&-ˆŒØˆŒ
ØˆŒØ&ˆÔÝ‰Œ×Ò lÐ&JµfÀTÐ6JÑ6JÔ6JÐÑKÔKÐKÐKÐKrO   r¢   r  r9   c                ó  — | j                              |¬¦  «        }| j        r"t          j        || j        | j        ¬¦  «        }nt          || j        | j        ¬¦  «        }| j        r| j                             |¦  «         |S ©N©r¢   )rŒ   rG  )	rF  ÚformatrH  r9   r<  rŒ   rG  rI  Ú	highlight)rL   r¢   Ú_textrB  s       rN   r  zTextColumn.render{  s‚   € ØÔ ×'Ò'¨TÐ'Ñ2Ô2ˆØŒ;ð 	GÝÔ# E°´ÀTÄ\ÐRÑRÔRˆDˆDå˜ T¤Z¸¼ÐFÑFÔFˆDØÔð 	-ØÔ×&Ò& tÑ,Ô,Ð,ØˆrO   )rD  rE  TNN)rF  r€   rŒ   r6   rG  r/   rH  r…   rI  rJ  r  r  rP   rQ   ©r¢   r  rP   r9   r-  ru   s   @rN   r—   r—   h  st   ø€ € € € € Ø#Ð#ð
 "Ø!'ØØ-1Ø)-ðLð Lð Lð Lð Lð Lð Lð ð ð ð ð ð ð ð rO   r—   c                  ó:   ‡ — e Zd ZdZ	 	 	 	 	 	 ddˆ fd„Zdd„Zˆ xZS )r™   a  Renders a visual progress bar.

    Args:
        bar_width (Optional[int], optional): Width of bar or None for full width. Defaults to 40.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
    é(   rx   ry   rz   r{   NÚ	bar_widthr  rŒ   r6   r�   rŽ   r�   r  r  rP   rQ   c                ó’   •— || _         || _        || _        || _        || _        t          ¦   «                              |¬¦  «         d S r+  )rW  rŒ   r�   rŽ   r�   rJ   rK   )rL   rW  rŒ   r�   rŽ   r�   r  rM   s          €rN   rK   zBarColumn.__init__‘  sL   ø€ ð #ˆŒØˆŒ
Ø,ˆÔØ,ˆÔØ&ˆÔÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r¢   r  r4   c                ó   — t          |j        �t          d|j        ¦  «        ndt          d|j        ¦  «        | j        €dnt          d| j        ¦  «        |j         |                     ¦   «         | j        | j        | j	        | j
        ¬¦	  «	        S )z&Gets a progress bar widget for a task.Nr   r*   )	r�   rI   ÚwidthÚpulseÚanimation_timerŒ   r�   rŽ   r�   )r4   r�   ÚmaxrI   rW  Ústartedr‰   rŒ   r�   rŽ   r�   r#  s     rN   r  zBarColumn.render¡  s‡   € åØ(,¬
Ð(>•#�a˜œÑ$Ô$Ð$ÀDÝ˜!˜Tœ^Ñ,Ô,Øœ.Ð0�$�$µc¸!¸T¼^Ñ6LÔ6LØ”lÐ"ØŸ=š=™?œ?Ø”*ØÔ.ØÔ.ØÔ(ð

ñ 

ô 

ð 
	
rO   )rV  rx   ry   rz   r{   N)rW  r  rŒ   r6   r�   r6   rŽ   r6   r�   r6   r  r  rP   rQ   )r¢   r  rP   r4   r-  ru   s   @rN   r™   r™   †  st   ø€ € € € € ðð ð $&Ø%Ø$2Ø$2Ø!,Ø)-ð4ð 4ð 4ð 4ð 4ð 4ð 4ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rO   r™   c                  ó   — e Zd ZdZdd„ZdS )	ÚTimeElapsedColumnzRenders time elapsed.r¢   r  rP   r9   c                óä   — |j         r|j        n|j        }|€t          dd¬¦  «        S t	          t          dt          |¦  «        ¦  «        ¬¦  «        }t          t          |¦  «        d¬¦  «        S )zShow time elapsed.Nú-:--:--úprogress.elapsed©rŒ   r   )Úseconds)rA  Úfinished_timeÚelapsedr9   r
   r]  rƒ   r€   )rL   r¢   rg  Údeltas       rN   r  zTimeElapsedColumn.render³  sk   € à(,¬ÐG�$Ô$Ð$¸4¼<ˆØˆ?Ý˜	Ð);Ð<Ñ<Ô<Ð<Ý¥# a­¨W©¬Ñ"6Ô"6Ð7Ñ7Ô7ˆÝ•C˜‘J”JÐ&8Ð9Ñ9Ô9Ð9rO   NrT  ©rp   rq   rr   rs   r  r¬   rO   rN   r`  r`  °  s.   € € € € € ØÐð:ð :ð :ð :ð :ð :rO   r`  c                  óV   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 d!d"ˆ fd„Zed#d„¦   «         Zd$d „Zˆ xZS )%rš   a  Show task progress as a percentage.

    Args:
        text_format (str, optional): Format for percentage display. Defaults to "[progress.percentage]{task.percentage:>3.0f}%".
        text_format_no_percentage (str, optional): Format if percentage is unknown. Defaults to "".
        style (StyleType, optional): Style of output. Defaults to "none".
        justify (JustifyMethod, optional): Text justification. Defaults to "left".
        markup (bool, optional): Enable markup. Defaults to True.
        highlighter (Optional[Highlighter], optional): Highlighter to apply to output. Defaults to None.
        table_column (Optional[Column], optional): Table Column to use. Defaults to None.
        show_speed (bool, optional): Show speed if total is unknown. Defaults to False.
    ú-[progress.percentage]{task.percentage:>3.0f}%r(  rD  rE  TNFrF  r€   Útext_format_no_percentagerŒ   r6   rG  r/   rH  r…   rI  rJ  r  r  r‘   rP   rQ   c	                ór   •— || _         || _        t          ¦   «                              ||||||¬¦  «         d S )N)rF  rŒ   rG  rH  rI  r  )rl  r‘   rJ   rK   )
rL   rF  rl  rŒ   rG  rH  rI  r  r‘   rM   s
            €rN   rK   zTaskProgressColumn.__init__Ê  sR   ø€ ð *CˆÔ&Ø$ˆŒÝ‰Œ×ÒØ#ØØØØ#Ø%ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
rO   r6  r‚   r9   c                ó°   — |€t          dd¬¦  «        S t          j        t          |¦  «        g d¢d¦  «        \  }}||z  }t          |d›|› d�d¬¦  «        S )	zµRender the speed in iterations per second.

        Args:
            task (Task): A Task object.

        Returns:
            Text: Text object containing the task speed.
        Nr(  zprogress.percentagerd  )r(  u   Ã—10Â³u   Ã—10â�¶u   Ã—10â�¹u   Ã—10Â¹Â²éè  z.1fz it/s)r9   r+   Úpick_unit_and_suffixrƒ   )Úclsr6  ÚunitÚsuffixÚ
data_speeds        rN   Úrender_speedzTaskProgressColumn.render_speedà  sx   € ð ˆ=Ý˜Ð"7Ð8Ñ8Ô8Ð8ÝÔ4Ý�‰JŒJØ<Ð<Ð<Øñ
ô 
‰ˆˆfð
 ˜T‘\ˆ
Ý�zÐ4Ð4 vÐ4Ð4Ð4Ð<QÐRÑRÔRÐRrO   r¢   r  c                ó†  — |j         €(| j        r!|                      |j        p|j        ¦  «        S |j         €| j        n| j        }|                     |¬¦  «        }| j        r"t          j
        || j        | j        ¬¦  «        }nt          || j        | j        ¬¦  «        }| j        r| j                             |¦  «         |S rO  )r�   r‘   ru  Úfinished_speedr6  rl  rF  rQ  rH  r9   r<  rŒ   rG  rI  rR  )rL   r¢   rF  rS  rB  s        rN   r  zTaskProgressColumn.renderô  sÈ   € ØŒ:Ð $¤/ÐØ×$Ò$ TÔ%8Ð%F¸D¼JÑGÔGÐGà.2¬jÐ.@ˆDÔ*Ð*ÀdÔFVð 	ð ×"Ò"¨Ð"Ñ-Ô-ˆØŒ;ð 	GÝÔ# E°´ÀTÄ\ÐRÑRÔRˆDˆDå˜ T¤Z¸¼ÐFÑFÔFˆDØÔð 	-ØÔ×&Ò& tÑ,Ô,Ð,ØˆrO   )rk  r(  rD  rE  TNNF)rF  r€   rl  r€   rŒ   r6   rG  r/   rH  r…   rI  rJ  r  r  r‘   r…   rP   rQ   )r6  r‚   rP   r9   rT  )	rp   rq   rr   rs   rK   Úclassmethodru  r  rt   ru   s   @rN   rš   rš   ¼  sŸ   ø€ € € € € ðð ð KØ)+Ø!Ø!'ØØ-1Ø)-Ø ð
ð 
ð 
ð 
ð 
ð 
ð 
ð, ðSð Sð Sñ „[ðSð&ð ð ð ð ð ð ð rO   rš   c                  ó8   ‡ — e Zd ZdZdZ	 	 	 ddˆ fd
„Zdd„Zˆ xZS )r›   a  Renders estimated time remaining.

    Args:
        compact (bool, optional): Render MM:SS when time remaining is less than an hour. Defaults to False.
        elapsed_when_finished (bool, optional): Render time elapsed when the task is finished. Defaults to False.
    ç      à?FNÚcompactr…   r•   r  r  c                óh   •— || _         || _        t          ¦   «                              |¬¦  «         d S r+  )r{  r•   rJ   rK   )rL   r{  r•   r  rM   s       €rN   rK   zTimeRemainingColumn.__init__  s5   ø€ ð ˆŒØ%:ˆÔ"Ý‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r¢   r  rP   r9   c                ót  — | j         r|j        r
|j        }d}n	|j        }d}|j        €t          d|¬¦  «        S |€t          | j        rdnd|¬¦  «        S t          t          |¦  «        d¦  «        \  }}t          |d¦  «        \  }}| j        r|s
|d	›d
|d	›�}n|d›d
|d	›d
|d	›�}t          ||¬¦  «        S )zShow time remaining.rc  zprogress.remainingNr(  rd  z--:--rb  é<   Ú02dú:Úd)	r•   rA  rf  Útime_remainingr�   r9   r{  Údivmodrƒ   )rL   r¢   Ú	task_timerŒ   Úminutesre  ÚhoursÚ	formatteds           rN   r  zTimeRemainingColumn.render  s  € àÔ%ð 	)¨$¬-ð 	)ØÔ*ˆIØ&ˆEˆEàÔ+ˆIØ(ˆEàŒ:ÐÝ˜ %Ð(Ñ(Ô(Ð(àÐÝ 4¤<Ð>˜˜°YÀeÐLÑLÔLÐLõ "¥# i¡.¤.°"Ñ5Ô5Ñˆ�Ý ¨Ñ,Ô,‰ˆˆwàŒ<ð 	A ð 	AØ"Ð6Ð6Ð6¨Ð6Ð6Ð6ˆIˆIà Ð@Ð@Ð@ WÐ@Ð@Ð@°7Ð@Ð@Ð@ˆIå�I UÐ+Ñ+Ô+Ð+rO   )FFN)r{  r…   r•   r…   r  r  rT  )rp   rq   rr   rs   r  rK   r  rt   ru   s   @rN   r›   r›     sr   ø€ € € € € ðð ð €Kð Ø&+Ø)-ð	4ð 4ð 4ð 4ð 4ð 4ð 4ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,rO   r›   c                  ó   — e Zd ZdZdd„ZdS )	ÚFileSizeColumnzRenders completed filesize.r¢   r  rP   r9   c                óp   — t          j        t          |j        ¦  «        ¦  «        }t	          |d¬¦  «        S )úShow data completed.zprogress.filesizerd  )r+   Údecimalrƒ   rI   r9   ©rL   r¢   Ú	data_sizes      rN   r  zFileSizeColumn.render7  s0   € åÔ$¥S¨¬Ñ%8Ô%8Ñ9Ô9ˆ	Ý�IÐ%8Ð9Ñ9Ô9Ð9rO   NrT  ri  r¬   rO   rN   r‰  r‰  4  s.   € € € € € Ø%Ð%ð:ð :ð :ð :ð :ð :rO   r‰  c                  ó   — e Zd ZdZdd„ZdS )	ÚTotalFileSizeColumnzRenders total filesize.r¢   r  rP   r9   c                ó‚   — |j         �&t          j        t          |j         ¦  «        ¦  «        nd}t	          |d¬¦  «        S )r‹  Nr(  zprogress.filesize.totalrd  )r�   r+   rŒ  rƒ   r9   r�  s      rN   r  zTotalFileSizeColumn.render@  s;   € à9=¼Ð9O•HÔ$¥S¨¬¡_¤_Ñ5Ô5Ð5ÐUWˆ	Ý�IÐ%>Ð?Ñ?Ô?Ð?rO   NrT  ri  r¬   rO   rN   r�  r�  =  s4   € € € € € Ø!Ð!ð@ð @ð @ð @ð @ð @rO   r�  c                  ó.   ‡ — e Zd ZdZddˆ fd„Zdd„Zˆ xZS )ÚMofNCompleteColumnaH  Renders completed count/total, e.g. '  10/1000'.

    Best for bounded tasks with int quantities.

    Space pads the completed count so that progress length does not change as task progresses
    past powers of 10.

    Args:
        separator (str, optional): Text to separate completed and total values. Defaults to "/".
    ú/NÚ	separatorr€   r  r  c                óZ   •— || _         t          ¦   «                              |¬¦  «         d S r+  )r•  rJ   rK   )rL   r•  r  rM   s      €rN   rK   zMofNCompleteColumn.__init__R  s+   ø€ Ø"ˆŒÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r¢   r  rP   r9   c                óÜ   — t          |j        ¦  «        }|j        �t          |j        ¦  «        nd}t          t	          |¦  «        ¦  «        }t          ||› d�›| j        › |› �d¬¦  «        S )zShow completed/total.Nú?r�  úprogress.downloadrd  )rƒ   rI   r�   r³   r€   r9   r•  )rL   r¢   rI   r�   Útotal_widths        rN   r  zMofNCompleteColumn.renderV  st   € å˜œÑ'Ô'ˆ	Ø#'¤:Ð#9•�D”J‘”�¸sˆÝ�#˜e™*œ*‘o”oˆÝØ˜+Ð@Ð@Ð@Ð@¨¬Ð@¸Ð@Ð@Ø%ð
ñ 
ô 
ð 	
rO   )r”  N)r•  r€   r  r  rT  r-  ru   s   @rN   r“  r“  F  s`   ø€ € € € € ð	ð 	ð4ð 4ð 4ð 4ð 4ð 4ð 4ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rO   r“  c                  ó0   ‡ — e Zd ZdZ	 ddˆ fd
„Zdd„Zˆ xZS )rù   z¤Renders file size downloaded and total, e.g. '0.5/2.3 GB'.

    Args:
        binary_units (bool, optional): Use binary units, KiB, MiB etc. Defaults to False.
    FNÚbinary_unitsr…   r  r  rP   rQ   c                óZ   •— || _         t          ¦   «                              |¬¦  «         d S r+  )rœ  rJ   rK   )rL   rœ  r  rM   s      €rN   rK   zDownloadColumn.__init__h  s.   ø€ ð )ˆÔÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r¢   r  r9   c                óž  — t          |j        ¦  «        }|j        �t          |j        ¦  «        n|}| j        rt	          j        |g d¢d¦  «        \  }}nt	          j        |g d¢d¦  «        \  }}|dk    rdnd}||z  }|d|› d	�›}|j        �"t          |j        ¦  «        }	|	|z  }
|
d|› d	�›}nd
}|› d|› d|› �}t          |d¬¦  «        }|S )z.Calculate common unit for completed and total.N)	r®   ÚKiBÚMiBÚGiBÚTiBÚPiBÚEiBÚZiBÚYiBi   )	r®   ÚkBÚMBÚGBÚTBÚPBÚEBÚZBÚYBro  r*   r   z,.Úfr˜  r”  r3  r™  rd  )rƒ   rI   r�   rœ  r+   rp  r9   )rL   r¢   rI   Ú unit_and_suffix_calculation_baserr  rs  Ú	precisionÚcompleted_ratioÚcompleted_strr�   Útotal_ratioÚ	total_strÚdownload_statusÚdownload_texts                 rN   r  zDownloadColumn.rendern  s+  € å˜œÑ'Ô'ˆ	ð  $œzÐ5�C�”
‰OŒOˆO¸9ð 	)ð Ôð 	Ý#Ô8Ø0ØQÐQÐQØñô ‰LˆD�&�&õ $Ô8Ø0ØIÐIÐIØñô ‰LˆD�&ð
  š˜�A�A¨ˆ	à# dÑ*ˆØ*Ð;¨iÐ;Ð;Ð;Ð;ˆàŒ:Ð!Ý˜œ
‘O”OˆEØ $™,ˆKØ&Ð7¨)Ð7Ð7Ð7Ð7ˆIˆIàˆIà*ÐAÐA¨YÐAÐA¸ÐAÐAˆÝ˜_Ð4GÐHÑHÔHˆØÐrO   )FN)rœ  r…   r  r  rP   rQ   rT  r-  ru   s   @rN   rù   rù   a  sg   ø€ € € € € ðð ð LPð4ð 4ð 4ð 4ð 4ð 4ð 4ð!ð !ð !ð !ð !ð !ð !ð !rO   rù   c                  ó   — e Zd ZdZdd„ZdS )	ÚTransferSpeedColumnz&Renders human readable transfer speed.r¢   r  rP   r9   c                ó®   — |j         p|j        }|€t          dd¬¦  «        S t          j        t          |¦  «        ¦  «        }t          |› d�d¬¦  «        S )zShow data transfer speed.Nr˜  zprogress.data.speedrd  z/s)rw  r6  r9   r+   rŒ  rƒ   )rL   r¢   r6  rt  s       rN   r  zTransferSpeedColumn.render•  s]   € àÔ#Ð1 t¤zˆØˆ=Ý˜Ð#8Ð9Ñ9Ô9Ð9ÝÔ%¥c¨%¡j¤jÑ1Ô1ˆ
Ý�zÐ%Ð%Ð%Ð-BÐCÑCÔCÐCrO   NrT  ri  r¬   rO   rN   r¹  r¹  ’  s4   € € € € € Ø0Ð0ðDð Dð Dð Dð Dð DrO   r¹  c                  ó*   — e Zd ZU dZded<   	 ded<   dS )ÚProgressSamplez$Sample of progress for a given time.rE   r  rI   N)rp   rq   rr   rs   r%  r¬   rO   rN   r¼  r¼  ž  s3   € € € € € € Ø.Ð.àÐÐÑØØÐÐÑØ$Ð$rO   r¼  c                  óú  — e Zd ZU dZded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 dZded<   	 dZded<   	  ee¬¦  «        Z	ded<   	  eddd¬¦  «        Z
ded<   	  eddd¬¦  «        Zded<   	 dZded<   	  ed„ dd¬¦  «        Zded<    ede¬¦  «        Zded<   	 d+d!„Zed,d"„¦   «         Zed-d#„¦   «         Zed-d$„¦   «         Zed,d%„¦   «         Zed+d&„¦   «         Zed-d'„¦   «         Zed-d(„¦   «         Zd.d*„ZdS )/ÚTaskz…Information regarding a progress task.

    This object should be considered read-only outside of the :class:`~Progress` class.

    r;   r  r€   r   r‚   r�   rE   rI   ÚGetTimeCallableÚ	_get_timeNrf  Tr…   Úvisible)Údefault_factoryzDict[str, Any]ÚfieldsF)ÚdefaultÚinitÚreprÚ
start_timeÚ	stop_timerw  c                 ó"   — t          d¬¦  «        S )Nro  )Úmaxlenr   r¬   rO   rN   ú<lambda>zTask.<lambda>Ñ  s   € ¥¨TÐ 2Ñ 2Ô 2€ rO   )rÂ  rÅ  rÆ  zDeque[ProgressSample]Ú	_progress)rÆ  rÂ  r   Ú_lockrP   c                ó*   — |                       ¦   «         S )z(float: Get the current time, in seconds.)rÀ  r`   s    rN   r‰   zTask.get_time×  s   € à�~Š~ÑÔÐrO   c                ó   — | j         duS )z#bool: Check if the task as started.N)rÇ  r`   s    rN   r^  zTask.startedÛ  s   € ð Œ dÐ*Ð*rO   c                ó2   — | j         €dS | j         | j        z
  S )zPOptional[float]: Get the number of steps remaining, if a non-None total was set.N©r�   rI   r`   s    rN   Ú	remainingzTask.remainingà  s    € ð Œ:ÐØ�4ØŒz˜DœNÑ*Ð*rO   c                óx   — | j         €dS | j        �| j        | j         z
  S |                      ¦   «         | j         z
  S )z]Optional[float]: Time elapsed since task was started, or ``None`` if the task hasn't started.N)rÇ  rÈ  r‰   r`   s    rN   rg  zTask.elapsedç  s=   € ð Œ?Ð"Ø�4ØŒ>Ð%Ø”> D¤OÑ3Ð3Ø�}Š}‰Œ ¤Ñ0Ð0rO   c                ó   — | j         duS )zCheck if the task has finished.N)rf  r`   s    rN   rA  zTask.finishedð  s   € ð Ô!¨Ð-Ð-rO   c                óx   — | j         sdS | j        | j         z  dz  }t          dt          d|¦  «        ¦  «        }|S )zOfloat: Get progress of task as a percentage. If a None total was set, returns 0ç        ç      Y@)r�   rI   Úminr]  )rL   rI   s     rN   Ú
percentagezTask.percentageõ  sE   € ð Œzð 	Ø�3Ø”^ d¤jÑ0°EÑ9ˆ	Ý˜�s 3¨	Ñ2Ô2Ñ3Ô3ˆ	ØÐrO   c                ó^  — | j         €dS | j        5  | j        }|s	 ddd¦  «         dS |d         j        |d         j        z
  }|dk    r	 ddd¦  «         dS t	          |¦  «        }t          |¦  «         t          d„ |D ¦   «         ¦  «        }||z  }|cddd¦  «         S # 1 swxY w Y   dS )z=Optional[float]: Get the estimated speed in steps per second.NrÉ   r   c              3  ó$   K  — | ]}|j         V — Œd S r]   rà   )Ú.0Úsamples     rN   ú	<genexpr>zTask.speed.<locals>.<genexpr>  s%   è è € Ð!OÐ!O°v &Ô"2Ð!OÐ!OÐ!OÐ!OÐ!OÐ!OrO   )rÇ  rÍ  rÌ  r  Úiterr²   rÙ   )rL   r@   Ú
total_timeÚiter_progressÚtotal_completedr6  s         rN   r6  z
Task.speedþ  sI  € ð Œ?Ð"Ø�4ØŒZð 	ð 	Ø”~ˆHØð Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð " "œÔ/°(¸1´+Ô2GÑGˆJØ˜QŠˆØð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	õ ! ™NœNˆMÝ�ÑÔÐÝ!Ð!OÐ!OÀÐ!OÑ!OÔ!OÑOÔOˆOØ# jÑ0ˆEØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ‘B"©"B"Á=B"Â"B&Â)B&c                óh   — | j         rdS | j        }|sdS | j        }|€dS t          ||z  ¦  «        }|S )zJOptional[float]: Get estimated time to completion, or ``None`` if no data.rÖ  N)rA  r6  rÒ  r   )rL   r6  rÒ  Úestimates       rN   r‚  zTask.time_remaining  sP   € ð Œ=ð 	Ø�3Ø”
ˆØð 	Ø�4Ø”Nˆ	ØÐØ�4Ý˜	 EÑ)Ñ*Ô*ˆØˆrO   rQ   c                óT   — | j                              ¦   «          d| _        d| _        dS )zReset progress.N)rÌ  Úclearrf  rw  r`   s    rN   Ú_resetzTask._reset  s,   € àŒ×ÒÑÔÐØ!ˆÔØ"ˆÔÐÐrO   )rP   rE   rì   )rP   r‚   rn   )rp   rq   rr   rs   r%  rf  rÁ  r	   ÚdictrÃ  rÇ  rÈ  rw  rÌ  r   rÍ  r‰   rí   r^  rÒ  rg  rA  rÙ  r6  r‚  rç  r¬   rO   rN   r¾  r¾  §  sr  € € € € € € ðð ð €J€J�JØGàÐÐÑØ'àÐÐÑØ>àÐÐÑØ*àÐÐÑØ+à%)€MÐ)Ð)Ð)Ñ)Ø(à€GÐÐÐÑØJà"˜U°4Ð8Ñ8Ô8€FÐ8Ð8Ð8Ñ8Ø?à"' %°¸5ÀuÐ"MÑ"MÔ"M€JÐMÐMÐMÑMØNà!& ¨t¸%ÀeÐ!LÑ!LÔ!L€IÐLÐLÐLÑLØNà&*€NÐ*Ð*Ð*Ñ*Ø>à', uØ2Ð2¸ÀUð(ñ (ô (€Ið ð ð ñ ð �5˜e°UÐ;Ñ;Ô;€EÐ;Ð;Ð;Ñ;Øð ð  ð  ð  ð ð+ð +ð +ñ „Xð+ð ð+ð +ð +ñ „Xð+ð ð1ð 1ð 1ñ „Xð1ð ð.ð .ð .ñ „Xð.ð ðð ð ñ „Xðð ðð ð ñ „Xðð" ðð ð ñ „Xðð#ð #ð #ð #ð #ð #rO   r¾  c                  ó  — e Zd ZdZdddddddddddœ
dsd„Zedtd„¦   «         Zedud„¦   «         Zedvd „¦   «         Z	edwd"„¦   «         Z
edxd#„¦   «         Zdyd$„Zdyd%„Zdzd'„Zd{d.„Z	 	 	 	 	 d|d}d=„Z	 d~dd>d?œddC„Zej        	 	 	 	 d€ddd>dEœd�dN„¦   «         Zej        	 	 	 	 d€ddd>dEœd‚dQ„¦   «         Z	 	 	 	 	 dƒddd>dEœd„dU„Zd…dW„Zd…dX„ZdddddddYœd†d`„Zddd/dddaœd‡dc„Zdˆd‰de„Zdydf„ZdŠdh„Zd‹dj„ZdŒdn„ZdŠdo„Z	 	 	 	 d�dŽdq„Zd…dr„Z dS )�rœ   ad  Renders an auto-updating progress bar(s).

    Args:
        console (Console, optional): Optional Console instance. Defaults to an internal Console instance writing to stdout.
        auto_refresh (bool, optional): Enable auto refresh. If disabled, you will need to call `refresh()`.
        refresh_per_second (float, optional): Number of times per second to refresh the progress information. Defaults to 10.
        speed_estimate_period: (float, optional): Period (in seconds) used to calculate the speed estimate. Defaults to 30.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        redirect_stdout: (bool, optional): Enable redirection of stdout, so ``print`` may be used. Defaults to True.
        redirect_stderr: (bool, optional): Enable redirection of stderr. Defaults to True.
        get_time: (Callable, optional): A callable that gets the current time, or None to use Console.get_time. Defaults to None.
        disable (bool, optional): Disable progress display. Defaults to False
        expand (bool, optional): Expand tasks table to fit width. Defaults to False.
    NTrw   g      >@F)
r†   r„   r‹   Úspeed_estimate_periodrˆ   Úredirect_stdoutÚredirect_stderrr‰   r�   Úexpandrž   úUnion[str, ProgressColumn]r†   r‡   r„   r…   r‹   rE   rê  rˆ   rë  rì  r‰   úOptional[GetTimeCallable]r�   rí  rP   rQ   c       
   	     ó¨  — |dk    s
J d¦   «         ‚t          ¦   «         | _        |p|                      ¦   «         | _        || _        |	| _        |
| _        i | _        t          d¦  «        | _	        t          |pt          ¦   «         |||||| j        ¬¦  «        | _        |p| j        j        | _        | j        j        | _        | j        j        | _        d S )Nr   zrefresh_per_second must be > 0)r†   r„   r‹   rˆ   rë  rì  Úget_renderable)r   rÍ  Úget_default_columnsrž   rê  r�   rí  Ú_tasksr;   Ú_task_indexr3   r,   rñ  rV   r†   r‰   ÚprintÚlog)rL   r†   r„   r‹   rê  rˆ   rë  rì  r‰   r�   rí  rž   s               rN   rK   zProgress.__init__5  sÒ   € ð " AÒ%Ð%Ð%Ð'GÑ%Ô%Ð%Ý‘W”WˆŒ
ØÐ< $×":Ò":Ñ"<Ô"<ˆŒØ%:ˆÔ"àˆŒØˆŒØ*,ˆŒÝ#)¨!¡9¤9ˆÔÝØÐ,�{™}œ}Ø%Ø1ØØ+Ø+ØÔ.ð
ñ 
ô 
ˆŒ	ð !Ð9 D¤LÔ$9ˆŒØ”\Ô'ˆŒ
Ø”<Ô#ˆŒˆˆrO   úTuple[ProgressColumn, ...]c                óp   — t          d¦  «        t          ¦   «         t          ¦   «         t          ¦   «         fS )a§  Get the default columns used for a new Progress instance:
           - a text column for the description (TextColumn)
           - the bar itself (BarColumn)
           - a text column showing completion percentage (TextColumn)
           - an estimated-time-remaining column (TimeRemainingColumn)
        If the Progress instance is created without passing a columns argument,
        the default columns defined here will be used.

        You can also create a Progress instance using custom columns before
        and/or after the defaults, as in this example:

            progress = Progress(
                SpinnerColumn(),
                *Progress.get_default_columns(),
                "Elapsed:",
                TimeElapsedColumn(),
            )

        This code shows the creation of a Progress display, containing
        a spinner to the left, the default columns, and a labeled elapsed
        time column.
        r“   )r—   r™   rš   r›   )rq  s    rN   rò  zProgress.get_default_columnsY  s3   € õ2 ÐAÑBÔBÝ‰KŒKÝÑ Ô ÝÑ!Ô!ð	
ð 	
rO   r-   c                ó   — | j         j        S r]   )rV   r†   r`   s    rN   r†   zProgress.consolex  s   € àŒyÔ Ð rO   ú
List[Task]c                ó�   — | j         5  t          | j                             ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zGet a list of Task instances.N)rÍ  Úlistró  Úvaluesr`   s    rN   ÚtaskszProgress.tasks|  s‰   € ð ŒZð 	.ð 	.Ý˜œ×*Ò*Ñ,Ô,Ñ-Ô-ð	.ð 	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ó   ˆ&;»?Á?úList[TaskID]c                ó�   — | j         5  t          | j                             ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zA list of task IDs.N)rÍ  rü  ró  Úkeysr`   s    rN   Útask_idszProgress.task_ids‚  s‰   € ð ŒZð 	,ð 	,Ý˜œ×(Ò(Ñ*Ô*Ñ+Ô+ð	,ð 	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,rÿ  c                óÎ   — | j         5  | j        s	 ddd¦  «         dS t          d„ | j                             ¦   «         D ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )z'Check if all tasks have been completed.NTc              3  ó$   K  — | ]}|j         V — Œd S r]   )rA  )rÜ  r¢   s     rN   rÞ  z$Progress.finished.<locals>.<genexpr>Ž  s$   è è € ÐFÐF¨�t”}ÐFÐFÐFÐFÐFÐFrO   )rÍ  ró  Úallrý  r`   s    rN   rA  zProgress.finishedˆ  së   € ð ŒZð 	Gð 	GØ”;ð Øð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gõ ÐFÐF°´×1CÒ1CÑ1EÔ1EÐFÑFÔFÑFÔFð	Gð 	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   ˆ	Až/AÁAÁ!Ac                óN   — | j         s| j                             d¬¦  «         dS dS )zStart the progress display.T)rS   N)r�   rV   r_   r`   s    rN   r_   zProgress.start�  s2   € àŒ|ð 	*ØŒI�OŠO DˆOÑ)Ô)Ð)Ð)Ð)ð	*ð 	*rO   c                ó´   — | j         sL| j                             ¦   «          | j        j        s)| j        j        s| j                             ¦   «          dS dS dS dS )zStop the progress display.N)r�   rV   rô   r†   Úis_interactiveÚ
is_jupyterrõ  r`   s    rN   rô   zProgress.stop•  so   € àŒ|ð 	%ØŒI�NŠNÑÔÐØ”<Ô.ð %°t´|Ô7Nð %Ø”×"Ò"Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%ð%ð %ð %ð %rO   r)   c                ó.   — |                       ¦   «          | S r]   r^   r`   s    rN   ra   zProgress.__enter__œ  rb   rO   rc   rd   re   rf   rg   rh   c                ó.   — |                       ¦   «          d S r]   )rô   rl   s       rN   rm   zProgress.__exit__   s   € ð 	�	Š	‰ŒˆˆˆrO   r   rv   r|   r}   r~   r�   r‚   rI   rƒ   rB   úOptional[TaskID]r   r€   rD   c              #  ó®  K  — |€t          t          |¦  «        ¦  «        pd}|€|                      |||¬¦  «        }n|                      |||¬¦  «         | j        j        rFt          | ||¦  «        5 }|D ]}|V — |xj        dz  c_        Œ	 ddd¦  «         dS # 1 swxY w Y   dS | j        }	| j	        }
|D ]}|V —  |	|d¦  «          |
¦   «          ŒdS )aC  Track progress by iterating over a sequence.

        You can also track progress of an iterable, which might require that you additionally specify ``total``.

        Args:
            sequence (Iterable[ProgressType]): Values you want to iterate over and track progress.
            total: (float, optional): Total number of steps. Default is len(sequence).
            completed (int, optional): Number of steps completed so far. Defaults to 0.
            task_id: (TaskID): Task to track. Default is new task.
            description: (str, optional): Description of task, if new task is created.
            update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.

        Returns:
            Iterable[ProgressType]: An iterable of values taken from the provided sequence.
        NrÑ  r*   )
rE   r   Úadd_taskrX   rV   r„   r?   rI   rT   rS   )rL   r}   r�   rI   rB   r   rD   Útrack_threadÚvaluerT   rS   s              rN   r�   zProgress.track¨  sb  è è € ð0 ˆ=Ý�+ hÑ/Ô/Ñ0Ô0Ð8°DˆEàˆ?Ø—m’m K°uÈ	�mÑRÔRˆGˆGà�KŠK˜ u¸	ˆKÑBÔBÐBàŒ9Ô!ð 	Ý˜d G¨]Ñ;Ô;ð 0¸|Ø%ð 0ð 0�EØ�K�K�KØ Ð*Ô*¨aÑ/Ð*Ô*Ð*ð0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0ð
 ”lˆGØ”lˆGØ!ð ð �Ø���Ø�˜ Ñ#Ô#Ð#Ø�‘	”	�	�	ðð s   Á3BÂBÂ"Brõ   )rB   r   rö   r   r  c               ó   — d}|�|}n3|�1| j         5  | j        |         j        }ddd¦  «         n# 1 swxY w Y   |€t          d¦  «        ‚|€|                      ||¬¦  «        }n|                      ||¬¦  «         t          || |d¬¦  «        S )aj  Track progress file reading from a binary file.

        Args:
            file (BinaryIO): A file-like object opened in binary mode.
            total (int, optional): Total number of bytes to read. This must be provided unless a task with a total is also given.
            task_id (TaskID): Task to track. Default is new task.
            description (str, optional): Description of task, if new task is created.

        Returns:
            BinaryIO: A readable file-like object in binary mode.

        Raises:
            ValueError: When no total value can be extracted from the arguments or the task.
        Nz?unable to get the total number of bytes, please specify 'total'©r�   F©r£   )rÍ  ró  r�   Ú
ValueErrorr  rX   r    )rL   rö   r�   rB   r   Útotal_bytess         rN   rú   zProgress.wrap_fileÕ  sî   € ð. (,ˆØÐØˆKˆKØÐ Ø”ð 9ð 9Ø"œk¨'Ô2Ô8�ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9àÐÝØRñô ð ð
 ˆ?Ø—m’m K°{�mÑCÔCˆGˆGà�KŠK˜ {ˆKÑ3Ô3Ð3å�t˜T 7¸Ð?Ñ?Ô?Ð?s   ‘0°4·4rÉ   )r�   rB   r   rû   r¾   r  rý   rþ   rÿ   r   r  c               ó   — d S r]   r¬   ©
rL   rö   r¾   rý   rþ   r   r  r�   rB   r   s
             rN   r  zProgress.openÿ  ó	   € ð 	ˆrO   ú"Union[Literal['r'], Literal['rt']]r$   c               ó   — d S r]   r¬   r  s
             rN   r  zProgress.open  r  rO   r
  r  úUnion[BinaryIO, TextIO]c               ó6  — d                      t          |d¬¦  «        ¦  «        }
|
dvrt          d|›�¦  «        ‚|dk    }|
dk    r#|dk    rt          j        dt
          ¦  «         d	}n!|
d
v r|dk    rt          d¦  «        ‚|dk    rd	}|€t          |¦  «        j        }|€|                      |	|¬¦  «        }n|  	                    ||¬¦  «         t          j        |d|¬¦  «        }t          || |d¬¦  «        }|dv rt          j        |||||¬¦  «        S |S )a#  Track progress while reading from a binary file.

        Args:
            path (Union[str, PathLike[str]]): The path to the file to read.
            mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
            buffering (int): The buffering strategy to use, see :func:`io.open`.
            encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
            errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
            newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`.
            total (int, optional): Total number of bytes to read. If none given, os.stat(path).st_size is used.
            task_id (TaskID): Task to track. Default is new task.
            description (str, optional): Description of task, if new task is created.

        Returns:
            BinaryIO: A readable file-like object in binary mode.

        Raises:
            ValueError: When an invalid mode is given.
        r(  F)Úreverse)ÚbrÚrtr
  zinvalid mode r*   r  zaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedrÉ   )r   r
  r   zcan't have unbuffered text I/ONr  Úrb)rý   Tr  )r
  r   )rþ   r   r  Úline_buffering)rk   Úsortedr  ÚwarningsÚwarnÚRuntimeWarningr   Úst_sizer  rX   Úior  r    ÚTextIOWrapper)rL   rö   r¾   rý   rþ   r   r  r�   rB   r   Ú_moder"  r¡   rð   s                 rN   r  zProgress.open  sj  € ðB —’�˜t¨UÐ3Ñ3Ô3Ñ4Ô4ˆØÐ)Ð)Ð)ÝÐ5¨TÐ5Ð5Ñ6Ô6Ð6ð # ašˆØ�DŠ=ˆ=˜Y¨!š^˜^ÝŒMØsÝñô ð ð ˆIˆIØ�kÐ!Ð!Ø˜AŠ~ˆ~Ý Ð!AÑBÔBÐBØ˜a’�Ø�	ð ˆ=Ý˜‘J”JÔ&ˆEð ˆ?Ø—m’m K°u�mÑ=Ô=ˆGˆGà�KŠK˜ uˆKÑ-Ô-Ð-õ ”˜˜t¨yÐ9Ñ9Ô9ˆÝ˜  w¸TÐBÑBÔBˆð �;ÐÐÝÔ#ØØ!ØØØ-ðñ ô ð ð ˆrO   r;   c                ó    — | j         5  | j        |         }|j        €|                      ¦   «         |_        ddd¦  «         dS # 1 swxY w Y   dS )zéStart a task.

        Starts a task (used when calculating elapsed time). You may need to call this manually,
        if you called ``add_task`` with ``start=False``.

        Args:
            task_id (TaskID): ID of task.
        N)rÍ  ró  rÇ  r‰   )rL   rB   r¢   s      rN   Ú
start_taskzProgress.start_taskl  s“   € ð ŒZð 	2ð 	2Ø”;˜wÔ'ˆDØŒÐ&Ø"&§-¢-¡/¤/�”ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s   ˆ.AÁAÁ
Ac                ó²   — | j         5  | j        |         }|                      ¦   «         }|j        €||_        ||_        ddd¦  «         dS # 1 swxY w Y   dS )z†Stop a task.

        This will freeze the elapsed time on the task.

        Args:
            task_id (TaskID): ID of task.
        N)rÍ  ró  r‰   rÇ  rÈ  )rL   rB   r¢   r  s       rN   Ú	stop_taskzProgress.stop_taskz  sŸ   € ð ŒZð 	*ð 	*Ø”;˜wÔ'ˆDØŸ=š=™?œ?ˆLØŒÐ&Ø".�”Ø)ˆDŒNð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆ7AÁAÁA)r�   rI   rT   r   rÁ  rS   rT   rÁ  úOptional[bool]rS   rÃ  r   c               óì  — | j         5  | j        |         }	|	j        }
|�&||	j        k    r||	_        |	                     ¦   «          |�|	xj        |z  c_        |�||	_        |�||	_        |�||	_        |	j                             |¦  «         |	j        |
z
  }|  	                    ¦   «         }|| j
        z
  }|	j        }|j        }|r.|d         j        |k     r |¦   «          |r|d         j        |k     °|dk    r#|                     t          ||¦  «        ¦  «         |	j        �#|	j        |	j        k    r|	j        €|	j        |	_        ddd¦  «         n# 1 swxY w Y   |r|                      ¦   «          dS dS )a˜  Update information associated with a task.

        Args:
            task_id (TaskID): Task id (returned by add_task).
            total (float, optional): Updates task.total if not None.
            completed (float, optional): Updates task.completed if not None.
            advance (float, optional): Add a value to task.completed if not None.
            description (str, optional): Change task description if not None.
            visible (bool, optional): Set visible flag if not None.
            refresh (bool): Force a refresh of progress information. Default is False.
            **fields (Any): Additional data fields required for rendering.
        Nr   )rÍ  ró  rI   r�   rç  r   rÁ  rÃ  rX   r‰   rê  rÌ  Úpopleftr  Úappendr¼  rf  rg  rS   )rL   rB   r�   rI   rT   r   rÁ  rS   rÃ  r¢   Úcompleted_startÚupdate_completedr  Úold_sample_timerÌ  r1  s                   rN   rX   zProgress.update‰  sÞ  € ð0 ŒZð  	2ð  	2Ø”;˜wÔ'ˆDØ"œnˆOàÐ  U¨d¬jÒ%8Ð%8Ø"�”
Ø—’‘”�ØÐ"Ø�” 'Ñ)�”ØÐ$Ø!*�”ØÐ&Ø#.�Ô ØÐ"Ø&�”ØŒK×Ò˜vÑ&Ô&Ð&Ø#œ~°Ñ?ÐàŸ=š=™?œ?ˆLØ*¨TÔ-GÑGˆOØœˆIàÔ'ˆGØð  	¨!¤Ô 6¸Ò HÐ HØ�‘	”	�	ð ð  	¨!¤Ô 6¸Ò HÐ Hà !Ò#Ð#Ø× Ò ¥°Ð>NÑ!OÔ!OÑPÔPÐPà”
Ð&Ø”N d¤jÒ0Ð0ØÔ&Ð.à%)¤\�Ô"ðA 	2ð  	2ð  	2ñ  	2ô  	2ð  	2ð  	2ð  	2ð  	2ð  	2ð  	2øøøð  	2ð  	2ð  	2ð  	2ðD ð 	Ø�LŠL‰NŒNˆNˆNˆNð	ð 	s   ˆD=EÅEÅE)r_   r�   rI   rÁ  r   r_   c               óP  — |                       ¦   «         }| j        5  | j        |         }	|	                     ¦   «          |r|nd|	_        |�||	_        ||	_        |�||	_        |r||	_        |�||	_	        d|	_
        ddd¦  «         n# 1 swxY w Y   |                      ¦   «          dS )ax  Reset a task so completed is 0 and the clock is reset.

        Args:
            task_id (TaskID): ID of task.
            start (bool, optional): Start the task after reset. Defaults to True.
            total (float, optional): New total steps in task, or None to use current total. Defaults to None.
            completed (int, optional): Number of steps completed. Defaults to 0.
            visible (bool, optional): Set visible flag if not None.
            description (str, optional): Change task description if not None. Defaults to None.
            **fields (str): Additional data fields required for rendering.
        N)r‰   rÍ  ró  rç  rÇ  r�   rI   rÁ  rÃ  r   rf  rS   )
rL   rB   r_   r�   rI   rÁ  r   rÃ  r  r¢   s
             rN   ÚresetzProgress.resetÆ  sð   € ð, —}’}‘”ˆØŒZð 	&ð 	&Ø”;˜wÔ'ˆDØ�KŠK‰MŒMˆMØ.3Ð=˜l˜l¸ˆDŒOØÐ Ø"�”
Ø&ˆDŒNØÐ"Ø&�”Øð %Ø$�”ØÐ&Ø#.�Ô Ø!%ˆDÔð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	�Š‰Œˆˆˆs   œABÂBÂBr*   c                ól  — |                       ¦   «         }| j        5  | j        |         }|j        }|xj        |z  c_        |j        |z
  }|| j        z
  }|j        }|j        }	|r.|d         j        |k     r |	¦   «          |r|d         j        |k     °t          |¦  «        dk    r |	¦   «          t          |¦  «        dk    °| 	                    t          ||¦  «        ¦  «         |j        �/|j        |j        k    r|j        €|j        |_        |j        |_        ddd¦  «         dS # 1 swxY w Y   dS )z«Advance task by a number of steps.

        Args:
            task_id (TaskID): ID of task.
            advance (float): Number of steps to advance. Default is 1.
        r   ro  N)r‰   rÍ  ró  rI   rê  rÌ  r1  r  r³   r2  r¼  r�   rf  rg  r6  rw  )
rL   rB   rT   r  r¢   r3  r4  r5  rÌ  r1  s
             rN   rT   zProgress.advanceí  sŠ  € ð —}’}‘”ˆØŒZð 	1ð 	1Ø”;˜wÔ'ˆDØ"œnˆOØˆNŒN˜gÑ%ˆNŒNØ#œ~°Ñ?ÐØ*¨TÔ-GÑGˆOØœˆIàÔ'ˆGØð  	¨!¤Ô 6¸Ò HÐ HØ�‘	”	�	ð ð  	¨!¤Ô 6¸Ò HÐ Hå�i‘.”. 4Ò'Ð'Ø�‘	”	�	õ �i‘.”. 4Ò'Ð'à×Ò�^¨LÐ:JÑKÔKÑLÔLÐLà”
Ð&Ø”N d¤jÒ0Ð0ØÔ&Ð.à%)¤\�Ô"Ø&*¤j�Ô#ð)	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   œD D)Ä)D-Ä0D-c                óf   — | j         s'| j        j        r| j                             ¦   «          dS dS dS )z*Refresh (render) the progress information.N)r�   rV   rW   rS   r`   s    rN   rS   zProgress.refresh  sF   € àŒ|ð 	  ¤	Ô 4ð 	 ØŒI×ÒÑÔÐÐÐð	 ð 	 ð 	 ð 	 rO   r0   c                ó<   — t          |                      ¦   «         Ž }|S )z*Get a renderable for the progress display.)r.   Úget_renderables)rL   r   s     rN   rñ  zProgress.get_renderable  s   € å˜D×0Ò0Ñ2Ô2Ð3ˆ
ØÐrO   úIterable[RenderableType]c              #  óF   K  — |                       | j        ¦  «        }|V — dS )z5Get a number of renderables for the progress display.N)Úmake_tasks_tablerþ  )rL   Útables     rN   r;  zProgress.get_renderables  s(   è è € à×%Ò% d¤jÑ1Ô1ˆØˆˆˆˆˆrO   rþ  úIterable[Task]r8   c                ó¦   ‡— d„ | j         D ¦   «         }t          j        |d| j        dœŽ}|D ]$Š‰j        r |j        ˆfd„| j         D ¦   «         Ž  Œ%|S )z×Get a table to render the Progress display.

        Args:
            tasks (Iterable[Task]): An iterable of Task instances, one per row of the table.

        Returns:
            Table: A table instance.
        c              3  ó¬   K  — | ]O}t          |t          ¦  «        rt          d ¬¦  «        n%|                     ¦   «                              ¦   «         V — ŒPdS )TrL  N)r;  r€   r7   r  Úcopy)rÜ  Ú_columns     rN   rÞ  z,Progress.make_tasks_table.<locals>.<genexpr>#  sr   è è € ð 
ð 
ð õ ˜g¥sÑ+Ô+ð7•˜tÐ$Ñ$Ô$Ð$à×-Ò-Ñ/Ô/×4Ò4Ñ6Ô6ð	
ð 
ð 
ð 
ð 
ð 
rO   )r   r*   )Úpaddingrí  c              3  ó„   •K  — | ]:}t          |t          ¦  «        r|                     ‰¬ ¦  «        n
 |‰¦  «        V — Œ;dS )rP  N)r;  r€   rQ  )rÜ  Úcolumnr¢   s     €rN   rÞ  z,Progress.make_tasks_table.<locals>.<genexpr>0  sf   øè è € ð ð ð #õ  *¨&µ#Ñ6Ô6ð.˜FŸMšM¨t˜MÑ4Ô4Ð4à!' ¨¡¤ð	ð ð ð ð ð rO   )rž   r8   Úgridrí  rÁ  Úadd_row)rL   rþ  Útable_columnsr?  r¢   s       @rN   r>  zProgress.make_tasks_table  s›   ø€ ð
ð 
ð  œ<ð
ñ 
ô 
ˆõ ”
˜M°6À$Ä+ÐNÐNÐNˆàð 	ð 	ˆDØŒ|ð 
Ø�”ðð ð ð ð '+¤lðñ ô ð	ð 	øð ˆrO   c                ól   — | j         5  |                      ¦   «         cddd¦  «         S # 1 swxY w Y   dS )z+Makes the Progress class itself renderable.N)rÍ  rñ  r`   s    rN   Ú__rich__zProgress.__rich__;  s}   € àŒZð 	)ð 	)Ø×&Ò&Ñ(Ô(ð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ˆ)©-°-r×  c                ón  — | j         5  t          | j        |||||| j        | j         ¬¦  «        }|| j        | j        <   |r|                      | j        ¦  «         | j        }t          t          | j        ¦  «        dz   ¦  «        | _        ddd¦  «         n# 1 swxY w Y   |                      ¦   «          |S )a  Add a new 'task' to the Progress display.

        Args:
            description (str): A description of the task.
            start (bool, optional): Start the task immediately (to calculate elapsed time). If set to False,
                you will need to call `start` manually. Defaults to True.
            total (float, optional): Number of total steps in the progress if known.
                Set to None to render a pulsing animation. Defaults to 100.
            completed (int, optional): Number of steps completed so far. Defaults to 0.
            visible (bool, optional): Enable display of the task. Defaults to True.
            **fields (str): Additional data fields required for rendering.

        Returns:
            TaskID: An ID you can use when calling `update`.
        )rÁ  rÃ  rÀ  rÍ  r*   N)	rÍ  r¾  rô  r‰   ró  r,  r;   rƒ   rS   )	rL   r   r_   r�   rI   rÁ  rÃ  r¢   Únew_task_indexs	            rN   r  zProgress.add_task@  s  € ð0 ŒZð 	Að 	AÝØÔ ØØØØØØœ-Ø”jð	ñ 	ô 	ˆDð -1ˆDŒK˜Ô(Ñ)Øð 2Ø—’ Ô 0Ñ1Ô1Ð1Ø!Ô-ˆNÝ%¥c¨$Ô*:Ñ&;Ô&;¸aÑ&?Ñ@Ô@ˆDÔð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að  	�Š‰ŒˆØÐs   ˆBBÂBÂBc                óV   — | j         5  | j        |= ddd¦  «         dS # 1 swxY w Y   dS )z]Delete a task if it exists.

        Args:
            task_id (TaskID): A task ID.

        N)rÍ  ró  )rL   rB   s     rN   Úremove_taskzProgress.remove_taskk  sz   € ð ŒZð 	%ð 	%Ø”˜GÐ$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ˆ	ž"¥")rž   rî  r†   r‡   r„   r…   r‹   rE   rê  rE   rˆ   r…   rë  r…   rì  r…   r‰   rï  r�   r…   rí  r…   rP   rQ   )rP   r÷  )rP   r-   )rP   rú  )rP   r   rì   rn   )rP   r)   ro   )Nr   Nrv   r|   )r}   r~   r�   r‚   rI   rƒ   rB   r  r   r€   rD   rE   rP   r~   r]   )
rö   r   r�   r  rB   r  r   r€   rP   r   ©rÉ   NNN)rö   rû   r¾   r  rý   rƒ   rþ   rÿ   r   rÿ   r  rÿ   r�   r  rB   r  r   r€   rP   r   )rö   rû   r¾   r  rý   rƒ   rþ   rÿ   r   rÿ   r  rÿ   r�   r  rB   r  r   r€   rP   r$   ©r
  rÉ   NNN)rö   rû   r¾   r  rý   rƒ   rþ   rÿ   r   rÿ   r  rÿ   r�   r  rB   r  r   r€   rP   r  )rB   r;   rP   rQ   )rB   r;   r�   r‚   rI   r‚   rT   r‚   r   rÿ   rÁ  r/  rS   r…   rÃ  r   rP   rQ   )rB   r;   r_   r…   r�   r‚   rI   rƒ   rÁ  r/  r   rÿ   rÃ  r   rP   rQ   )r*   )rB   r;   rT   rE   rP   rQ   )rP   r0   )rP   r<  )rþ  r@  rP   r8   )Tr×  r   T)r   r€   r_   r…   r�   r‚   rI   rƒ   rÁ  r…   rÃ  r   rP   r;   )!rp   rq   rr   rs   rK   rx  rò  rí   r†   rþ  r  rA  r_   rô   ra   rm   r�   rú   ÚtypingÚoverloadr  r,  r.  rX   r7  rT   rS   rñ  r;  r>  rL  r  rP  r¬   rO   rN   rœ   rœ   %  sÖ  € € € € € ðð ð$ &*Ø!Ø$&Ø'+ØØ $Ø $Ø.2ØØð"$ð "$ð "$ð "$ð "$ð "$ðH ð
ð 
ð 
ñ „[ð
ð< ð!ð !ð !ñ „Xð!ð ð.ð .ð .ñ „Xð.ð
 ð,ð ,ð ,ñ „Xð,ð
 ðGð Gð Gñ „XðGð*ð *ð *ð *ð
%ð %ð %ð %ðð ð ð ðð ð ð ð "&ØØ$(Ø'Ø"ð+ð +ð +ð +ð +ð`  $ð(@ð
 %)Ø'ð(@ð (@ð (@ð (@ð (@ð (@ðT „_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ðð ð ð ð ñ „_ðð „_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ðð ð ð ð ñ „_ðð$ CFØØ"&Ø $Ø!%ðKð  $Ø$(Ø'ðKð Kð Kð Kð Kð KðZ2ð 2ð 2ð 2ð*ð *ð *ð *ð& "&Ø%)Ø#'Ø%)Ø"&Øð;ð ;ð ;ð ;ð ;ð ;ðB Ø!%ØØ"&Ø%)ð%ð %ð %ð %ð %ð %ðN1ð 1ð 1ð 1ð 1ð< ð  ð  ð  ð
ð ð ð ð
ð ð ð ð
ð ð ð ðB)ð )ð )ð )ð Ø!&ØØð)ð )ð )ð )ð )ðV%ð %ð %ð %ð %ð %rO   rœ   Ú__main__)ÚPanel)ÚRule)ÚSyntax)r8   a~  def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
    """Iterate and generate a tuple with a flag for last value."""
    iter_values = iter(values)
    try:
        previous_value = next(iter_values)
    except StopIteration:
        return
    for value in iter_values:
        yield False, previous_value
        previous_value = value
    yield True, previous_valueÚpython)Úline_numbersÚfooÚbarÚbazÚ1Ú2Ú3z:Text may be printed while the progress bars are rendering.z(In fact, [i]any[/i] renderable will workzSuch as [magenta]tables[/]...zPretty printed structures...ÚexamplezPretty printed)ÚtyperB  z	Syntax...zGive it a try!)Úcycle)Úrecord)r†   rˆ   z[red]Downloadingro  r  z[green]Processingz[yellow]Thinkingrz  r±   g333333Ó?g{®Gáz„?éd   )rv   Nr   TNFNrw   rx   ry   rz   r{   r|   FT)"r}   r~   r   r€   r�   r‚   rI   rƒ   r„   r…   r†   r‡   rˆ   r…   r‰   rŠ   r‹   rE   rŒ   r6   r�   r6   rŽ   r6   r�   r6   rD   rE   r�   r…   r‘   r…   rP   r~   )rö   r   r�   rƒ   r   r€   r„   r…   r†   r‡   rˆ   r…   r‰   rŠ   r‹   rE   rŒ   r6   r�   r6   rŽ   r6   r�   r6   r�   r…   rP   r÷   rQ  )&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‹   rE   rŒ   r6   r�   r6   rŽ   r6   r�   r6   r�   r…   rP   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Š   r‹   rE   rŒ   r6   r�   r6   rŽ   r6   r�   r6   r�   r…   rP   r÷   rR  )&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‹   rE   rŒ   r6   r�   r6   rŽ   r6   r�   r6   r�   r…   rP   r  )…Ú
__future__r   r(  rS  r$  Úabcr   r   Úcollectionsr   Údataclassesr   r	   Údatetimer
   r   r   Úmathr   r   Úoperatorr   Úosr   r   Ú	threadingr   r   r   Útypesr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   Útyping_extensionsr)   r(  r+   r,   r†   r-   r.   r/   r0   rI  r1   Újupyterr2   rV   r3   Úprogress_barr4   r:  r5   rŒ   r6   r?  r7   r8   rB  r9   r:   rƒ   r;   r<   rE   r¿  r=   r?   r�   r    rï   rú   rT  r  r  r'  r/  r—   r™   r`  rš   r›   r‰  r�  r“  rù   r¹  r¼  r¾  rœ   rp   ÚrandomÚtimeÚpanelrV  ÚrulerW  ÚsyntaxrX  rI  Úprogress_renderablesÚ	itertoolsrc  Úexamplesrò  r@   r  Útask1Útask2Útask3rA  rX   ÚsleepÚrandintrö  r²   r¬   rO   rN   ú<module>r€     s  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð, ð 'à&Ð&Ð&Ð&Ð&Ð&à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à	ˆ�˜3Ñ	Ô	€àˆw�~Ñ&Ô&€à˜2˜u˜9Ô%€ð €V„^�D˜& (Ñ+Ô+€ð%ð %ð %ð %ð %�6ñ %ô %ð %ðT $Ø!ØØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(ØØØð!K
ð K
ð K
ð K
ð K
ð\d1ð d1ð d1ð d1ð d1ˆi˜ñ d1ô d1ð d1ðN8ð 8ð 8ð 8ð 8�> "Ô% w¨r¤{ñ 8ô 8ð 8ð2 $ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð>*ð >*ð >*ð >*ð >*ð >*ðB „ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'	ð 	ð 	ð 	ð 	ñ „ð	ð0 „ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'	ð 	ð 	ð 	ð 	ñ „ð	ð4 ?BØØ"Ø Ø!ðS*ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'S*ð S*ð S*ð S*ð S*ð S*ðl'1ð '1ð '1ð '1ð '1�Sñ '1ô '1ð '1ðTð ð ð ð �~ñ ô ð ð"/ð /ð /ð /ð /�Nñ /ô /ð /ðdð ð ð ð �ñ ô ð ð<'
ð '
ð '
ð '
ð '
�ñ '
ô '
ð '
ðT	:ð 	:ð 	:ð 	:ð 	:˜ñ 	:ô 	:ð 	:ðEð Eð Eð Eð E˜ñ Eô Eð EðP-,ð -,ð -,ð -,ð -,˜.ñ -,ô -,ð -,ð`:ð :ð :ð :ð :�^ñ :ô :ð :ð@ð @ð @ð @ð @˜.ñ @ô @ð @ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð6.ð .ð .ð .ð .�^ñ .ô .ð .ðb	Dð 	Dð 	Dð 	Dð 	D˜.ñ 	Dô 	Dð 	Dð%ð %ð %ð %ð %�Zñ %ô %ð %ð ðz#ð z#ð z#ð z#ð z#ñ z#ô z#ñ „ðz#ðzN	%ð N	%ð N	%ð N	%ð N	%ˆ|ñ N	%ô N	%ð N	%ðb ˆzÒÑØ€M€M€MØ€K€K€KàÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐàˆVð
	"ð 	Øðñ ô €Fð  ˆE�%˜ Ñ&Ô&€EØ	‡M‚M�#�s˜CÑ Ô Ð ð 	EØˆÐ8Ñ9Ô9Ø'ØØ&ØÐ$4Ð5Ð5ØØØˆÐÑÔð
Ðð  ÐÐÐÐÐàˆuÐ)Ñ*Ô*€Hàˆg˜TÐ"Ñ"Ô"€Gà	ˆØˆ‰Œð
à	×	%Ò	%Ñ	'Ô	'ð
ð 	ÐÑÔð
ð 
ð Øð
ð 
ð 
ð -ð 
Ø×!Ò!Ð"4¸DÐ!ÑAÔAˆØ×!Ò!Ð"5¸TÐ!ÑBÔBˆØ×!Ò!Ð"4¸DÐ!ÑAÔAˆàÔ#ð 	-Ø�OŠO˜E¨3ˆOÑ/Ô/Ð/Ø�OŠO˜E¨3ˆOÑ/Ô/Ð/ØˆDŒJ�tÑÔÐØˆvŒ~˜a Ñ%Ô%¨Ò)Ð)Ø—’˜T˜T (™^œ^Ñ,Ô,Ð,ð Ô#ð 	-ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -ð] Ðs   Í9CQÑQÑQ