§
    øÛgz9  ã                   ó†  — d Z ddlZddlZddlZddlZej        d         dk    Zej        dk    Zddlm	Z	m
Z
 dZdZej        dk    r$	 ddlZn# e$ r 	 ddlZdZn# e$ r Y nw xY wY nw xY wd	„ Zd
„ Z e¦   «         ZdddddddœZd„ Zd,d„Zd„ Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Ze�reZddlZddlmZ dZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'd Z(d!Z)ej*        Z+ G d"„ d#ej,        ¦  «        Z- G d$„ d%ej,        ¦  «        Z. G d&„ d'ej,        ¦  «        Z/ej0        j1        j2        Z3ej4        ge3_5        ej6        e3_7        d(„ Z2ej0        j1        j8        Z8ej6        ej9        ge8_5        ej:        e8_7        ej0        j1        j;        Z<ej6         ej=        e/¦  «        ge<_5        ej:        e<_7        d)„ Z>d*„ Zd+„ Z?dS )-z8

Helper functions for writing to terminals and files.

é    Né   )r   r   )ÚtextÚbytesFÚwin32Tc                  óö   — t           r&dd l} |                      ¦   «         }|j        |j        fS dd l}dd l}dd l}|                     d|j	        d¦  «        }| 
                    d|¦  «        d d…         \  }}||fS )Nr   é   z        Úhhhhé   )Úpy33ÚshutilÚget_terminal_sizeÚlinesÚcolumnsÚtermiosÚfcntlÚstructÚioctlÚ
TIOCGWINSZÚunpack)r   Úsizer   r   r   ÚcallÚheightÚwidths           úK/granary/edev/quantum/lib/python3.11/site-packages/py/_io/terminalwriter.pyÚ_getdimensionsr      s™   € Ýð ØˆˆˆØ×'Ò'Ñ)Ô)ˆØŒz˜4œ<Ð'Ð'à%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø�{Š{˜1˜gÔ0°*Ñ=Ô=ˆØŸš f¨dÑ3Ô3°B°Q°BÔ7‰ˆ�Ø�uˆ}Ðó    c                  óÜ   — d} 	 t          ¦   «         \  }} n# t          j        j        $ r ‚  Y nxY w| dk    r-t	          t
          j                             dd¦  «        ¦  «        } | dk     rd} | S )Nr   ÚCOLUMNSéP   é(   )r   ÚpyÚbuiltinÚ_sysexÚintÚosÚenvironÚget)r   Ú_s     r   Úget_terminal_widthr)   '   s‚   € Ø€EðÝ!Ñ#Ô#‰ˆˆ5ˆ5øÝŒ:Ôð ð ð Øðàˆøøøà�‚z€zõ •B”J—N’N 9¨bÑ1Ô1Ñ2Ô2ˆð ˆr‚z€zØˆØ€Ls   „ –.r   r
   )ÚAÚFÚHÚNÚNaÚWc                 ó^   — t          j        d| ¦  «        } t          d„ | D ¦   «         ¦  «        S )NÚNFCc              3   óp   K  — | ]1}t                                t          j        |¦  «        d ¦  «        V — Œ2dS )r   N)Ú
char_widthr'   ÚunicodedataÚeast_asian_width)Ú.0Úcs     r   ú	<genexpr>z!get_line_width.<locals>.<genexpr>J   s;   è è € ÐPÐPÀa�z�~Š~�kÔ:¸1Ñ=Ô=¸qÑAÔAÐPÐPÐPÐPÐPÐPr   )r4   Ú	normalizeÚsum)r   s    r   Úget_line_widthr;   H   s1   € ÝÔ  ¨Ñ-Ô-€DÝÐPÐPÈ4ÐPÑPÔPÑPÔPÐPr   c           
      óŠ  — |€t           j        } | j        ¦   «         } |rt          |t          ¦  «        s|f}|rIt           j        dk    r9|                     ¦   «         r%d                     d„ |D ¦   «         ¦  «        | z   dz   } |r| dz  } |�r‰t          �r�|                     ¦   «         �rld|v rd}t	          d„ |D ¦   «         ¦  «        }nd	}t          t          t          t          t          z  t          t          t          z  t          t          z  t          t          d
œ	}|                     |t          ¦  «        }|r
|t          z  }d}d}	|t           j        u rt          |	¦  «        }
nt          |¦  «        }
t!          |
¦  «        j        }||dz  z  }t%          |
|¦  «         t'          | ¦  «        dk    r:|                     | d d…         ¦  «         | dd …         } t'          | ¦  «        dk    °:| r|                     | ¦  «         t%          |
|¦  «         n|                     | ¦  «         |r|                     ¦   «          d S d S )Nr   Ú c                 ó   — g | ]}d |z  ‘ŒS ©z[%sm© ©r6   Úcods     r   ú
<listcomp>zansi_print.<locals>.<listcomp>U   s   € Ð9Ð9Ð9¨c˜ cÑ)Ð9Ð9Ð9r   ú[0mú
r   Tc                 ó   — g | ]
}|d k    ¯|‘ŒS )r   r@   )r6   Úxs     r   rC   zansi_print.<locals>.<listcomp>^   s   € Ð2Ð2Ð2˜q¨1°ª6¨6˜¨6¨6¨6r   F)	r@   )é   )é    )é!   )é"   )é#   )é$   )é%   )é'   éõÿÿÿéôÿÿÿéð   i €  )ÚsysÚstderrÚrstripÚ
isinstanceÚtupleÚplatformÚisattyÚjoinÚwin32_and_ctypesÚFOREGROUND_WHITEÚFOREGROUND_REDÚFOREGROUND_GREENÚFOREGROUND_BLUEr'   ÚFOREGROUND_INTENSITYÚGetStdHandleÚGetConsoleInfoÚwAttributesÚSetConsoleTextAttributeÚlenÚwriteÚflush)r   ÚescÚfileÚnewlinerg   ÚboldÚesctableÚattrÚSTD_OUTPUT_HANDLEÚSTD_ERROR_HANDLEÚhandleÚ	oldcolorss               r   Ú
ansi_printrr   N   sd  € Ø€|ÝŒzˆØˆ4Œ;‰=Œ=€DØ
ð •:˜c¥5Ñ)Ô)ð ØˆfˆØ
ð �sŒ|˜wÒ&Ð&¨4¯;ª;©=¬=Ð&Ø—’Ð9Ð9°SÐ9Ñ9Ô9Ñ:Ô:Øñàñˆð ð Ø�‰ˆà
ñ #Õñ # D§K¢K¡M¤Mñ #Ø�ˆ8ˆ8ØˆDÝÐ2Ð2 CÐ2Ñ2Ô2Ñ3Ô3ˆCˆCàˆDÝ+Ý)Ý+Ý+­NÑ:Ý*Ý*­>Ñ9Ý*Õ+;Ñ;Ý+Ý+ð	ð 	ˆð �|Š|˜CÕ!1Ñ2Ô2ˆØð 	)ØÕ(Ñ(ˆDØÐØÐØ•3”:ÐÐÝ!Ð"2Ñ3Ô3ˆFˆFå!Ð"3Ñ4Ô4ˆFÝ" 6Ñ*Ô*Ô6ˆ	Ø�˜UÑ"Ñ#ˆÝ ¨Ñ-Ô-Ð-Ý�$‰iŒi˜%ÒÐØ�JŠJ�t˜F˜U˜F”|Ñ$Ô$Ð$Ø˜˜˜”<ˆDõ �$‰iŒi˜%ÒÐð ð 	Ø�JŠJ�tÑÔÐÝ ¨	Ñ2Ô2Ð2Ð2à�
Š
�4ÑÔÐàð Ø�
Š
‰Œˆˆˆðð r   c                 ó¤  — t           j                             d¦  «        dk    rdS t           j                             d¦  «        dk    rdS dt           j        v rdS t          | d¦  «        of|                      ¦   «         oRt           j                             d¦  «        d	k    o/t
          j                             d
¦  «        ot           j        dk     S )NÚ	PY_COLORSÚ1TÚ0FÚNO_COLORrY   ÚTERMÚdumbÚjavaÚnt)	r%   r&   r'   ÚhasattrrY   rS   rX   Ú
startswithÚ_name)ri   s    r   Úshould_do_markupr   ƒ   s·   € Ý	„z‡~‚~�kÑ"Ô" cÒ)Ð)ØˆtÝ	„z‡~‚~�kÑ"Ô" cÒ)Ð)ØˆuØ•R”ZÐÐØˆuÝ�4˜Ñ"Ô"ð J t§{¢{¡}¤}ð JÝŒz�~Š~˜fÑ%Ô%¨Ò/ðJå”L×+Ò+¨FÑ3Ô3ÐH½¼ÀDÒ8HÐIðJr   c                   ó0  — e Zd Z ed9i dd“dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“ŽZd:d+„Zed,„ ¦   «         Zej        d-„ ¦   «         Zed.„ ¦   «         Z	ed/„ ¦   «         Z
d0„ Zd1„ Zd;d2„Zd3„ Zd4„ Zd<d6„Zd7„ Zd8„ Zd)S )=ÚTerminalWriterÚblacké   ÚredrH   ÚgreenrI   ÚyellowrJ   ÚbluerK   ÚpurplerL   ÚcyanrM   ÚwhiterN   ÚBlackr    ÚRedé)   ÚGreené*   ÚYellowé+   ÚBlueé,   ÚPurpleé-   ÚCyané.   ÚWhiteé/   rk   r   Úlightr
   Úblinké   Úinverté   NFc                 ó   — |€/|r&t           j                             ¦   «         x| _        }nWddlm} nPt           j                             |¦  «        r1t          |d¦  «        rt          |d¦  «        st          ||¬¦  «        }t          |d¦  «        r4| 
                    ¦   «         r t          rt          j        |¦  «        j        }|pt          |dd¦  «        | _        || _        t#          |¦  «        | _        d| _        d| _        d| _        d S )	Nr   )Ústdoutrf   rg   )ÚencodingrY   r¡   úutf-8)r!   ÚioÚTextIOÚstringiorS   r    r"   Úcallabler|   Ú	WriteFilerY   ÚcoloramaÚAnsiToWin32ÚstreamÚgetattrr¡   Ú_filer   Ú	hasmarkupÚ_lastlenÚ_chars_on_current_lineÚ_width_of_current_line)Úselfri   r¥   r¡   s       r   Ú__init__zTerminalWriter.__init__–   s  € Øˆ<Øð /Ý')¤u§|¢|¡~¤~Ð5�”  à.Ð.Ð.Ð.Ð.Ð.Ð.ÝŒZ× Ò  Ñ&Ô&ð 	6Ý�T˜7Ñ#Ô#ð	6Ý(/°°gÑ(>Ô(>ð	6å˜T¨HÐ5Ñ5Ô5ˆDÝ�4˜Ñ"Ô"ð 	5 t§{¢{¡}¤}ð 	5½ð 	5ÝÔ'¨Ñ-Ô-Ô4ˆDØ ÐF¥G¨D°*¸gÑ$FÔ$FˆŒØˆŒ
Ý)¨$Ñ/Ô/ˆŒØˆŒØ&'ˆÔ#Ø&'ˆÔ#Ð#Ð#r   c                 óL   — t          | d¦  «        r| j        S t          ¦   «         S )NÚ_terminal_width)r|   r´   r)   ©r±   s    r   Ú	fullwidthzTerminalWriter.fullwidth¨   s*   € å�4Ð*Ñ+Ô+ð 	(ØÔ'Ð'Ý!Ñ#Ô#Ð#r   c                 ó   — || _         d S ©N)r´   )r±   Úvalues     r   r¶   zTerminalWriter.fullwidth®   s   € à$ˆÔÐÐr   c                 ó   — | j         S )zñReturn the number of characters written so far in the current line.

        Please note that this count does not produce correct results after a reline() call,
        see #164.

        .. versionadded:: 1.5.0

        :rtype: int
        )r¯   rµ   s    r   Úchars_on_current_linez$TerminalWriter.chars_on_current_line²   s   € ð Ô*Ð*r   c                 ó   — | j         S )zzReturn an estimate of the width so far in the current line.

        .. versionadded:: 1.6.0

        :rtype: int
        )r°   rµ   s    r   Úwidth_of_current_linez$TerminalWriter.width_of_current_line¿   s   € ð Ô*Ð*r   c                 ób   — |r,| j         r%d                     d„ |D ¦   «         ¦  «        |z   dz   }|S )Nr=   c                 ó   — g | ]}d |z  ‘ŒS r?   r@   rA   s     r   rC   z+TerminalWriter._escaped.<locals>.<listcomp>Ë   s   € Ð=Ð=Ð=°#˜Z¨#Ñ-Ð=Ð=Ð=r   rD   )r­   rZ   )r±   r   rh   s      r   Ú_escapedzTerminalWriter._escapedÉ   sH   € Øð 	!�4”>ð 	!Ø—G’GÐ=Ð=¸Ð=Ñ=Ô=Ñ>Ô>ØñØñ ˆDàˆr   c                 óÜ   — g }|D ]E}|| j         vrt          d|›�¦  «        ‚||         r |                     | j         |         ¦  «         ŒF|                      |t	          |¦  «        ¦  «        S )Nzunknown markup: )Ú	_esctableÚ
ValueErrorÚappendrÀ   rW   )r±   r   Úkwrh   Únames        r   ÚmarkupzTerminalWriter.markupÏ   sx   € ØˆØð 	1ð 	1ˆDØ˜4œ>Ð)Ð)Ý �j¸¸Ð!>Ñ?Ô?Ð?Ø�$Œxð 1Ø—
’
˜4œ>¨$Ô/Ñ0Ô0Ð0øØ�}Š}˜T¥5¨¡:¤:Ñ.Ô.Ð.r   c                 ó°  — |€| j         }t          j        dk    r|dz  }|�Ft          |t	          |¦  «        z
  dz
  dt	          |¦  «        z  z  d¦  «        }||z  }|›d|›d|›�}n||t	          |¦  «        z  z  }t	          |¦  «        t	          |                     ¦   «         ¦  «        z   |k    r||                     ¦   «         z  } | j        |fi |¤Ž d S )Nr   r   r
   ú )r¶   rS   rX   Úmaxre   rU   Úline)r±   ÚsepcharÚtitler¶   rÅ   r-   ÚfillrË   s           r   ÚsepzTerminalWriter.sepØ   sõ   € ØÐØœˆIõ Œ<˜7Ò"Ð"ð
 ˜‰NˆIØÐõ
 �Y¥ U¡¤Ñ+¨aÑ/°Qµs¸7±|´|±^ÑDÀaÑHÔHˆAØ˜Q‘;ˆDØ!%   u u u¨d¨dÐ3ˆDˆDð ˜i­3¨w©<¬<Ñ7Ñ8ˆDõ ˆt‰9Œ9•s˜7Ÿ>š>Ñ+Ô+Ñ,Ô,Ñ,°	Ò9Ð9Ø�G—N’NÑ$Ô$Ñ$ˆDàˆŒ	�$ÐÐ˜"ÐÐÐÐÐr   c                 óì   — |rqt          |t          t          f¦  «        st          |¦  «        }|                      |¦  «         | j        r|r | j        |fi |¤Ž}n|}t          | j        |¦  «         d S d S r¸   )rV   r   r   Ú_update_chars_on_current_liner­   rÇ   Ú	write_outr¬   )r±   ÚmsgrÅ   Ú	markupmsgs       r   rf   zTerminalWriter.write÷   s’   € Øð 
	-Ý˜c¥E­4 =Ñ1Ô1ð  Ý˜3‘i”i�à×.Ò.¨sÑ3Ô3Ð3àŒ~ð   "ð  Ø'˜DœK¨Ð2Ð2¨rÐ2Ð2�	�	à�	Ý�d”j )Ñ,Ô,Ð,Ð,Ð,ð
	-ð 
	-r   c                 ó˜  — t          |t          ¦  «        rdnd}|                     |d¦  «        d         }t          |t          ¦  «        r|                     dd¬¦  «        }||v r*t	          |¦  «        | _        t          |¦  «        | _        d S | xj        t	          |¦  «        z  c_        | xj        t          |¦  «        z  c_        d S )Nó   
rE   r   éÿÿÿÿr¢   Úreplace)Úerrors)rV   r   ÚrsplitÚdecodere   r¯   r;   r°   )r±   Útext_or_bytesrj   Úcurrent_lines       r   rÑ   z,TerminalWriter._update_chars_on_current_line  sÎ   € Ý% mµUÑ;Ô;ÐE�%�%ÀˆØ$×+Ò+¨G°QÑ7Ô7¸Ô;ˆÝ�l¥EÑ*Ô*ð 	JØ'×.Ò.¨w¸yÐ.ÑIÔIˆLØ�mÐ#Ð#Ý*-¨lÑ*;Ô*;ˆDÔ'Ý*8¸Ñ*FÔ*FˆDÔ'Ð'Ð'àÐ'Ô'­3¨|Ñ+<Ô+<Ñ<Ð'Ô'ØÐ'Ô'­>¸,Ñ+GÔ+GÑGÐ'Ô'Ð'Ð'r   r=   c                 óv   —  | j         |fi |¤Ž |                      |¦  «         |                       d¦  «         d S )NrE   )rf   Ú
_checkfill)r±   ÚsrÅ   s      r   rË   zTerminalWriter.line  sF   € ØˆŒ
�1ÐÐ˜ÐÐÐØ�Š˜ÑÔÐØ�
Š
�4ÑÔÐÐÐr   c                 óÊ   — | j         st          d¦  «        ‚ | j        |fi |¤Ž |                      |¦  «         |                      d¦  «         t	          |¦  «        | _        d S )Nz(cannot use rewrite-line without terminalú)r­   rÃ   rf   rß   re   r®   )r±   rË   rÅ   s      r   ÚrelinezTerminalWriter.reline  sk   € ØŒ~ð 	IÝÐGÑHÔHÐHØˆŒ
�4ÐÐ˜2ÐÐÐØ�Š˜ÑÔÐØ�
Š
�4ÑÔÐÝ˜D™	œ	ˆŒˆˆr   c                 ót   — | j         t          |¦  «        z
  }|dk    r|                      d|z  ¦  «         d S d S )Nr   rÉ   )r®   re   rf   )r±   rË   Ú	diff2lasts      r   rß   zTerminalWriter._checkfill  s@   € Ø”M¥C¨¡I¤IÑ-ˆ	Ø�qŠ=ˆ=Ø�JŠJ�s˜Y‘Ñ'Ô'Ð'Ð'Ð'ð ˆ=r   r@   )NFN)NN)r=   )Ú__name__Ú
__module__Ú__qualname__ÚdictrÂ   r²   Úpropertyr¶   Úsetterr»   r½   rÀ   rÇ   rÏ   rf   rÑ   rË   rã   rß   r@   r   r   r�   r�   Ž   s  € € € € € Ø�ð 9ð 9ð 9˜2˜2ð 9 2 2ð 9¨R¨Rð 9¸¸ð 9Ø˜"ð9Ø%' Rð9Ø.0¨bð9Ø8:¸ð9à˜2ð9à#% 2ð9à-/¨Rð9à8:¸ð9ð ˜"ð9ð &( Rð9ð /1¨bð9ð 9;¸ð9ð ˜!ð	9ð $% 1ð	9ð -.¨Að	9ð 78°að	9€Ið(ð (ð (ð (ð$ ð$ð $ñ „Xð$ð
 Ôð%ð %ñ Ôð%ð ð
+ð 
+ñ „Xð
+ð ð+ð +ñ „Xð+ðð ð ð/ð /ð /ðð ð ð ð>-ð -ð -ð
Hð 
Hð 
Hðð ð ð ð
"ð "ð "ð(ð (ð (ð (ð (r   r�   c                   ó   — e Zd Zd„ ZdS )ÚWin32ConsoleWriterc                 óÞ  — |�rgt          |t          t          f¦  «        st          |¦  «        }|                      |¦  «         d }| j        rõ|rót          t          ¦  «        }t          |¦  «        j        }|dz  }|}| 	                    dd¦  «        r
|t          z  }| 	                    dd¦  «        r|t          z  }ns| 	                    dd¦  «        r|t          z  }nR| 	                    dd¦  «        r|t          z  }n1| 	                    dd¦  «        r|t          t          z  z  }n||dz  z  }t          ||¦  «         t          | j        |¦  «         |rt          ||¦  «         d S d S d S )	NrR   rk   Fr„   r‡   r…   r†   rž   )rV   r   r   rÑ   r­   ra   rn   rb   rc   Úpopr`   r]   r_   r^   rd   rÒ   r¬   )r±   rÓ   rÅ   rq   rp   Ú
default_bgrm   s          r   rf   zWin32ConsoleWriter.write#  s•  € Øñ 	;Ý˜c¥E­4 =Ñ1Ô1ð  Ý˜3‘i”i�à×.Ò.¨sÑ3Ô3Ð3àˆIØŒ~ð 6 "ð 6Ý%Õ&7Ñ8Ô8�Ý*¨6Ñ2Ô2Ô>�	Ø&¨Ñ/�
Ø!�Ø—6’6˜& %Ñ(Ô(ð 1ØÕ0Ñ0�Dà—6’6˜% Ñ'Ô'ð 	/Ø�NÑ*�D�DØ—V’V˜F EÑ*Ô*ð /Ø�OÑ+�D�DØ—V’V˜G UÑ+Ô+ð /ØÕ,Ñ,�D�DØ—V’V˜H eÑ,Ô,ð /ØÕ,­^Ñ;Ñ;�D�Dà˜I¨Ñ.Ñ.�Då'¨°Ñ5Ô5Ð5Ý�d”j #Ñ&Ô&Ð&Øð ;Ý'¨°	Ñ:Ô:Ð:Ð:Ð:ð;	;ð 	;ð8;ð ;r   N)ræ   rç   rè   rf   r@   r   r   rí   rí   "  s#   € € € € € ð;ð ;ð ;ð ;ð ;r   rí   c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )r§   Nc                 ó"   — || _         || _        d S r¸   )r¡   Ú_writemethod)r±   Úwritemethodr¡   s      r   r²   zWriteFile.__init__D  s   € Ø ˆŒØ'ˆÔÐÐr   c                 ót   — | j         r|                     | j         d¦  «        }|                      |¦  «         d S )NrØ   )r¡   Úencoderó   )r±   Údatas     r   rf   zWriteFile.writeH  s;   € ØŒ=ð 	9Ø—;’;˜tœ}¨iÑ8Ô8ˆDØ×Ò˜$ÑÔÐÐÐr   c                 ó   — d S r¸   r@   rµ   s    r   rg   zWriteFile.flushM  s   € Øˆr   r¸   )ræ   rç   rè   r²   rf   rg   r@   r   r   r§   r§   C  sF   € € € € € ð(ð (ð (ð (ð ð  ð  ð
ð ð ð ð r   r§   )ÚwintypesrP   rQ   é   rž   é   é   rI   é@   ép   é€   c                   ó   — e Zd ZdefdefgZdS )ÚCOORDÚXÚYN©ræ   rç   rè   ÚSHORTÚ_fields_r@   r   r   r  r  g  s#   € € € € € Ø˜%�LØ˜%�Lð"ˆˆˆr   r  c                   ó*   — e Zd ZdefdefdefdefgZdS )Ú
SMALL_RECTÚLeftÚTopÚRightÚBottomNr  r@   r   r   r  r  j  s3   € € € € € Ø˜U�OØ˜E�NØ˜eÐ$Ø˜uÐ%ð'ˆˆˆr   r  c                   ó:   — e Zd Zdefdefdej        fdefdefgZdS )ÚCONSOLE_SCREEN_BUFFER_INFOÚdwSizeÚdwCursorPositionrc   ÚsrWindowÚdwMaximumWindowSizeN)ræ   rç   rè   r  rù   ÚWORDr  r  r@   r   r   r  r  o  s?   € € € € € Ø˜uÐ%Ø'¨Ð/Ø" H¤MÐ2Ø Ð,Ø*¨EÐ2ð	4ˆˆˆr   r  c                 ó    — t          | ¦  «        S r¸   )Ú_GetStdHandle)Úkinds    r   ra   ra   y  s   € Ý˜TÑ"Ô"Ð"r   c                 óf   — t          ¦   «         }t          | t          j        |¦  «        ¦  «         |S r¸   )r  Ú_GetConsoleScreenBufferInfoÚctypesÚbyref©rp   Úinfos     r   rb   rb   …  s,   € Ý)Ñ+Ô+ˆÝ# F­F¬L¸Ñ,>Ô,>Ñ?Ô?Ð?Øˆr   c                  ó~   — t          t          ¦  «        } t          | ¦  «        }|j        j        |j        j        dz
  fS )Nr   )ra   rn   rb   r  r  r  r  s     r   r   r   Š  s7   € ÝÕ/Ñ0Ô0ˆÝ˜fÑ%Ô%ˆð Œ{Œ}˜dœkœm¨aÑ/Ð/Ð/r   c                 ó®  — 	 |                       |¦  «         n©# t          $ rœ | j        rU	 |                       |                     | j        ¦  «        ¦  «         |                      ¦   «          Y d S # t          $ r Y nw xY w|                     d¦  «                             d¦  «        }|                       |¦  «         Y nw xY w|                      ¦   «          d S )Nzunicode-escapeÚascii)rf   ÚUnicodeEncodeErrorr¡   rö   rg   rÛ   )ÚfilrÓ   s     r   rÒ   rÒ   ‘  sä   € ðð 	�	Š	�#‰ŒˆˆøÝð ð ð àŒ<ð 	ðØ—	’	˜#Ÿ*š* S¤\Ñ2Ô2Ñ3Ô3Ð3ð
 —	’	‘”�Ø��øõ &ð ð ð à�ðøøøð �jŠjÐ)Ñ*Ô*×1Ò1°'Ñ:Ô:ˆØ�	Š	�#‰Œˆˆˆðøøøð ‡I‚I�K„K€K€K€Ks3   ‚ ˜B>ª-A.ÁB>Á.
A;Á8B>Á:A;Á;A B>Â=B>)NTF)@Ú__doc__rS   r%   r4   r!   Úversion_infoÚpy3kr   Ú
py.builtinr   r   r[   r¨   rX   ÚImportErrorr  r   r)   Úterminal_widthr3   r;   rr   r   Úobjectr�   rí   r§   rù   rn   ro   ÚFOREGROUND_BLACKr_   r^   r]   r\   r`   ÚBACKGROUND_BLACKÚBACKGROUND_BLUEÚBACKGROUND_GREENÚBACKGROUND_REDÚBACKGROUND_WHITEÚBACKGROUND_INTENSITYÚc_shortr  Ú	Structurer  r  r  ÚwindllÚkernel32ra   r  ÚDWORDÚargtypesÚHANDLEÚrestyperd   r  ÚBOOLÚGetConsoleScreenBufferInfor  ÚPOINTERrb   rÒ   r@   r   r   ú<module>r;     sá  ððð ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø 	€	€	€	Ø
Ô˜Ô˜aÒ€Ø
Ô˜6Ò!€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "àÐ Ø€Ø„<�7ÒÐðØˆˆˆˆøØð ð ð ð	ØˆMˆMˆMØ#ÐÐøØð 	ð 	ð 	ØˆDð	øøøøøð	øøøð	ð 	ð 	ðð ð ð* $Ð#Ñ%Ô%€ð 
Ø	
Ø	
Ø	
Ø
Ø	
ðð €
ðQð Qð Qð3ð 3ð 3ð 3ðj	Jð 	Jð 	JðR(ð R(ð R(ð R(ð R(�Vñ R(ô R(ð R(ðh;ð ;ð ;ð ;ð ;˜ñ ;ô ;ð ;ðBð ð ð ð �ñ ô ð ð ñ >0Ø'€NØ€M€M€MØÐÐÐÐÐð ÐØÐØ!ÐØ!€OØ!ÐØ!€NØ!ÐØ!ÐØ!ÐØ!€OØ!ÐØ!€NØ!ÐØ!ÐàŒN€Eð"ð "ð "ð "ð "�Ô ñ "ô "ð "ð'ð 'ð 'ð 'ð '�VÔ%ñ 'ô 'ð 'ð
4ð 4ð 4ð 4ð 4 VÔ%5ñ 4ô 4ð 4ð ”MÔ*Ô7€MØ&œnÐ-€MÔØ$œO€MÔð#ð #ð #ð %œmÔ4ÔLÐØ(0¬¸¼Ð'GÐÔ$Ø&.¤mÐÔ#ð 	ŒÔÔ9ð  à,4¬OØ . ¤Ð/IÑ JÔ Jð,LÐÔ(à*2¬-ÐÔ'ðð ð ð
0ð 0ð 0ðð ð ð ð s6   ÁA ÁA'ÁAÁA'ÁA!ÁA'Á A!Á!A'Á&A'