ó
    F\htT  ã                  ó  • % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	r	S SK
JrJrJrJrJrJrJrJrJr  S SK	JrJrJr  SSKJrJr  SSKJr  SS	KJr  SS
KJr   S SK	JrJ r J!r!J"r"  Sr&\&(       a  S SK'J(r(  0 SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&S'_S(S)_S*S+_S,S-_S.S/_S0S1_S2S3_S4S5S6S7S8S9S:S;S<S=S>.
Er)S?\*S@'   SAr+SBr,SCr-SDr.SEr/SFr0SGr1SHr2 " SI SJ\35      r4SK r5 " SL SM\5      r6 " SN SO\5      r7 " SP SQ\5      r8 " SR SS\5      r9 " ST SU\5      r: " SV SW\	R(                  5      r; " SX SY\	R(                  5      r< " SZ S[\	R,                  5      r= " S\ S]\5      r>Sr?S^r@S_rAS`rBSarCSrDS`rESarFS^rGSbrHScrISrJS`rKSarLSdrMSerN\Rž                  Sf:X  Ga?  \ " SgShSi9rP\!R¢                  R¤                  rR\/\RlS        \\RlT        \PRª                  rU\\	R*                  " \75      /\UlS        \\UlT        \PR¬                  rW\\" \5      \" \5      \\" \95      /\WlS        \\WlT        \PR°                  rX\\" \5      /\XlS        \\XlT        \PR²                  rY\\/\YlS        \\YlT        \PR´                  r[\\" \>5      \\" \5      /\[lS        \\[lT        \PR¸                  r\\\" \5      /\\lS        \\\lT        \PRº                  r]\/\]lS        \\]lT        \R" \N5      r^\R" \M5      r_gSj r`\`rR\`rU\`rW\`rX\`rY\`r[\`r\\`r]S r^S r_g!   S SK	J#r J$r!  SkS jr " S S\%5      r" GNš= f)lé    )ÚannotationsN)Údeque)	Ú_COORDÚWORDÚ
SMALL_RECTÚBOOLÚHANDLEÚCHARÚDWORDÚWCHARÚSHORT)Ú	StructureÚPOINTERÚUnioné   )ÚEventÚConsole)Útrace)Úwlen)Ú
EventQueue)ÚGetLastErrorÚWinDLLÚwindllÚWinError)ÚCDLLÚcdllc                 ó   • g)Né*   © r   ó    Ú./usr/lib/python3.13/_pyrepl/windows_console.pyr   r   5   s   € Ør    c                  ó"   • \ rS rSrSSS jjrSrg)r   é8   Nc                ó   • Xl         X l        g ©N)ÚerrÚdescr)Úselfr&   r'   s      r!   Ú__init__ÚWinError.__init__9   s   € ØŒHØ�Jr    )r'   r&   r%   )r&   ú
int | Noner'   z
str | NoneÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r)   Ú__static_attributes__r   r    r!   r   r   8   s   † ÷	ñ 	r    r   F)ÚIOé#   Úendé$   Úhomeé%   Úlefté&   Úupé'   Úrighté(   Údowné.   Údeleteép   Úf1éq   Úf2ér   Úf3és   Úf4ét   Úf5éu   Úf6év   Úf7éw   Úf8éx   Úf9éy   Úf10Úf11Úf12Úf13Úf14Úf15Úf16Úf17Úf18Úf19Úf20)
éz   é{   é|   é}   é~   é   é€   é�   é‚   éƒ   zdict[int, str]ÚVK_MAPz[Kz[{}Dz[{}Cz[{}Az[{}Bz[H[Jé   é   c                  ó   • \ rS rSrSrg)Ú_errorrD   r   N)r.   r/   r0   r1   r2   r   r    r!   rn   rn   q   s   † Úr    rn   c                 óX   •  SS K n U R                  5       $ ! [        [        4 a     gf = f)Nr   F)ÚntÚ_supports_virtual_terminalÚImportErrorÚAttributeError)rp   s    r!   Ú_supports_vtrt   t   s0   € ðÛØ×,Ñ,Ó.Ð.øÜœÐ(ó Ùðús   ‚ –)¨)c                  ó°  ^ • \ rS rSr    S#       S$U 4S jjjrS%S jr\S 5       r          S&S jr S'         S(S jjr	S r
S rS	 rS
 rS)S jrS)S jrS*S jr\S+S j5       rS)S jrS)S jrS)S jrS,S jrS,S jrS-S jrS+S jrS.S jrS/S0S jjrS/S1S jjrS2S jrS)S jrS)S jrS)S jrS)S jr S)S jr!S3S jr"S4S  jr#S)S! jr$S"r%U =r&$ )5ÚWindowsConsolera   c                ó  >• [         TU ]  XX45        [        5       U l        U R                  (       a  [	        S5        [        5       n[        [        U5        [	        SUR                  S 35        UR                  U l	        [        [        [        [        -  [        -  5        / U l        SU l        SU l        SU l        ['        U5      U l         [*        R,                  " U R.                  S5      U l        g ! [2         a
    S U l         g f = f)Nz!console supports virtual terminalzsaved original input mode 0xÚxéP   é   r   Úw)Úsuperr)   rt   Ú_WindowsConsole__vt_supportr   r   ÚGetConsoleModeÚInHandleÚvalueÚ$_WindowsConsole__original_input_modeÚSetConsoleModeÚ	OutHandleÚENABLE_WRAP_AT_EOL_OUTPUTÚENABLE_PROCESSED_OUTPUTÚ"ENABLE_VIRTUAL_TERMINAL_PROCESSINGÚscreenÚwidthÚheightÚ_WindowsConsole__offsetr   Úevent_queueÚioÚ_WindowsConsoleIOÚ	output_fdÚoutÚ
ValueError)r(   Úf_inÚf_outÚtermÚencodingÚoriginal_input_modeÚ	__class__s         €r!   r)   ÚWindowsConsole.__init__|   sé   ø€ ô 	‰Ñ˜ dÔ5ä(›NˆÔà××ÜÐ5Ô6ô $›gÐÜ”xÐ!4Ô5ÜÐ,Ð-@×-FÑ-FÀqÐ,IÐJÔKØ%8×%>Ñ%>ˆÔ"äÜÜ%Ü%ñ&ä0ñ1ô	
ð "$ˆŒØˆŒ
ØˆŒØˆŒÜ% hÓ/ˆÔð	Ü×+Ò+¨D¯N©N¸CÓ@ˆD�HøÜó 	àˆDŽHð	ús   Ã&C7 Ã7DÄ
Dc                óÖ  • Uu  p4[        U R                  5      [        [        U5      U R                  5      :  a¸  U R	                  5         U R                  S[        U R                  5      S-
  5        U R                  S5        S[        U R                  5      4U l        U R                  R                  S5        [        U R                  5      [        [        U5      U R                  5      :  a  M¸  U R                  u  pVU R                  =pxU R                  n	XH:  a  UnOÛXHU	-   :¼  a“  XI-
  S-   nX‡-
  n
U R                  X R                  5       5        U R                  S   U R                  S   U
-   4U l        U =R                  U
-  sl	        [        U
5       H  nU R                  R                  S5        M      O@US:”  a:  [        U5      X‰-   :  a)  [        [        U5      U	-
  S5      nUR                  S5        U R                  XwU	-    nXX‰-    nX€l	        U R	                  5         [        [        XˆU	-   5      XÍ5       H"  u  nnnUU:w  d  M  U R                  XïUU5        M$     [        U5      nU[        U5      :  aA  U R                  SU5        SU4U l        U R!                  5         US-  nU[        U5      :  a  MA  U R#                  5         Xl        U R%                  X45        g)z£
Refresh the console screen.

Parameters:
- screen (list): List of strings representing the screen contents.
- c_xy (tuple): Cursor position (x, y) on the screen.
r   r   Ú
Ú N)Úlenr‡   Úminr‰   Ú_hide_cursorÚ_move_relativeÚ_WindowsConsole__writeÚposxyÚappendrŠ   Ú_scrollÚ_getscrollbacksizeÚrangeÚmaxÚzipÚ#_WindowsConsole__write_changed_lineÚ_erase_to_endÚ_show_cursorÚmove_cursor)r(   r‡   Úc_xyÚcxÚcyÚpxÚpyÚ
old_offsetÚoffsetr‰   Úscroll_linesÚiÚoldscrÚnewscrÚyÚoldlineÚnewlines                    r!   ÚrefreshÚWindowsConsole.refresh¢   sx  € ð ‰ˆä�$—+‘+Ó¤¤S¨£[°$·+±+Ó!>Ó>Ø×ÑÔØ×Ñ ¤3 t§{¡{Ó#3°aÑ#7Ô8Ø�L‰L˜ÔØœC §¡Ó,Ð,ˆDŒJØ�K‰K×Ñ˜rÔ"ô �$—+‘+Ó¤¤S¨£[°$·+±+Ó!>Õ>ð —‘‰ˆØ"Ÿm™mÐ+ˆ
Ø—‘ˆð ‹;Ø‰FØ˜F‘?Ó"Ø‘[ 1‘_ˆFØ!Ñ.ˆLð
 �L‰L˜×'>Ñ'>Ó'@ÔAØŸ™ A™¨¯
©
°1©¸Ñ(DÐDˆDŒJØ�MŠM˜\Ñ)�Mä˜<Ö(�Ø—‘×"Ñ" 2Ö&ò )à�a‹ZœC ›K¨&©/Ó9Üœ˜V› vÑ-¨qÓ1ˆFØ�M‰M˜"Ôà—‘˜Z°vÑ*=Ð>ˆØ ¡Ð1ˆàŒà×ÑÔô
 ”�v¨™Ó/°Ö@ñ	
ØØØà˜'Õ!Ø×)Ñ)¨!°g¸rÖBñ Aô �‹KˆØ”#�f“+‹oØ×Ñ  1Ô%Ø˜A˜ˆDŒJØ×ÑÔ Ø�‰FˆAð	 ”#�f“+�oð 	×ÑÔàŒØ×Ñ˜Õ r    c                óp   •  SS K nUR                  5       (       a  UR                  $ g ! [         a     g f = f)Nr   )rp   rr   Ú_is_inputhook_installedÚ
_inputhook)r(   rp   s     r!   Ú
input_hookÚWindowsConsole.input_hookæ   s>   € ð	Ûð ×%Ñ%×'Ñ'Ø—=‘=Ð ð (øô ó 	Ùð	ús   ‚( ¨
5´5c                óÔ  • [        [        U5      [        U5      5      nSnSnSnSn	U H  n
X”:¼  a    OU	[        U
5      -  n	US-  nM     Xu:  a@  X&   X6   :X  a6  X6   S:w  a.  U[        X6   5      -  nUS-  nXu:  a  X&   X6   :X  a
  X6   S:w  a  M.  U R                  5         U R                  Xq5        [        U5      [        U5      :”  a  U R	                  5         U R                  X6S  5        [        U5      U R                  :X  a"  U R                  SUS-   5        SUS-   4U l        g [        U5      U4U l        SU;   d  XR                  S   :w  d  SU;   a  U R                  SU5        g g )Nr   r   ÚÚ)	rœ   r   r�   rž   r¨   rŸ   rˆ   r    rª   )r(   r¶   r·   r¸   Úpx_coordÚminlenÚx_posÚx_coordÚpx_posÚjÚcs              r!   Ú__write_changed_lineÚ#WindowsConsole.__write_changed_lineï   si  € ô ”T˜'“]¤D¨£MÓ2ˆØˆØˆàˆØˆÛˆAØ‹}ÙØ”�a“‰LˆAØ�a‰KŠFñ	 ð ÓØ‘ '¡.Ó0Ø‘ &Ó(à”t˜G™NÓ+Ñ+ˆGØ�Q‰JˆEð ÓØ‘ '¡.Ó0Ø‘ &Õ(ð
 	×ÑÔØ×Ñ˜GÔ'Ü�‹=œ4 ›=Ó(Ø×ÑÔ à�‰�W˜V�_Ô%Ü�‹=˜DŸJ™JÓ&à×Ñ  1 q¡5Ô)Ø˜A ™E˜ˆD�Jä˜g›¨Ð)ˆDŒJà˜Ó  A¯©°A©Ó$6¸&ÀGÓ:Kð × Ñ   AÕ&ð	 ;Lr    c                ó^  • [        5       n[        U5      Ul        [        U5      Ul        [        Uc  SOU5      Ul        [        Uc  U R                  5       S   S-
  OU5      Ul        [        5       n[        5       nSUl	        [        [        US Xg5      (       d  [        [        5       5      eg )Nr   r   Ú )r   r   ÚTopÚBottomÚLeftÚgetheightwidthÚRightr   Ú	CHAR_INFOÚUnicodeCharÚScrollConsoleScreenBufferrƒ   r   r   )r(   ÚtopÚbottomr9   r=   Úscroll_rectÚdestination_originÚ	fill_infos           r!   r¢   ÚWindowsConsole._scroll   s¢   € ô !“lˆÜ ›*ˆŒÜ" 6›]ˆÔÜ  d¡l¡¸Ó=ˆÔÜ!Ø,1©MˆD×ÑÓ! !Ñ$ qÒ(¸uó
ˆÔô $›XÐÜ“Kˆ	Ø #ˆ	Ôä(Ü�{ DÐ*<÷
ñ 
ô œ<›>Ó*Ð*ð
r    c                ó&   • U R                  S5        g )Nz[?25l©rŸ   ©r(   s    r!   r�   ÚWindowsConsole._hide_cursor3  ó   € Ø�‰�[Õ!r    c                ó&   • U R                  S5        g )Nz[?25hrÝ   rÞ   s    r!   r©   ÚWindowsConsole._show_cursor6  rà   r    c                ó&   • U R                  S5        g )Nz[?12hrÝ   rÞ   s    r!   Ú_enable_blinkingÚWindowsConsole._enable_blinking9  rà   r    c                ó&   • U R                  S5        g )Nz[?12lrÝ   rÞ   s    r!   Ú_disable_blinkingÚ WindowsConsole._disable_blinking<  rà   r    c                ó&   • U R                  S5        g )Nz[?2004hrÝ   rÞ   s    r!   Ú_enable_bracketed_pasteÚ&WindowsConsole._enable_bracketed_paste?  ó   € Ø�‰�]Õ#r    c                ó&   • U R                  S5        g )Nz[?2004lrÝ   rÞ   s    r!   Ú_disable_bracketed_pasteÚ'WindowsConsole._disable_bracketed_pasteB  rì   r    c                óœ  • SU;   a)  SR                  U Vs/ s H  o"S:X  a  SOUPM     sn5      nU R                  bP  U R                  R                  UR                  U R                  S5      5        U R                  R                  5         g [        R                  " U R                  UR                  U R                  S5      5        g s  snf )NrÂ   rš   z^ZÚreplace)Újoinr�   ÚwriteÚencoder”   ÚflushÚosrŽ   )r(   Útextrx   s      r!   Ú__writeÚWindowsConsole.__writeE  s�   € Ø�T‹>Ø—7‘7ÁÓEÂ¸1¨£K™D°QÒ6ÁÑEÓFˆDà�8‰8ÑØ�H‰H�N‰N˜4Ÿ;™; t§}¡}°iÓ@ÔAØ�H‰H�N‰NÕä�HŠH�T—^‘^ T§[¡[°·±À	Ó%JÕKùò Fs   –C	c                ó¾   • [        5       n[        [        U5      (       d  [        [	        5       5      eUR
                  R                  UR
                  R                  4$ r%   )ÚCONSOLE_SCREEN_BUFFER_INFOÚGetConsoleScreenBufferInforƒ   r   r   ÚdwCursorPositionÚXÚY©r(   Úinfos     r!   Ú	screen_xyÚWindowsConsole.screen_xyO  sG   € ä)Ó+ˆÜ)¬)°T×:Ñ:Üœ<›>Ó*Ð*Ø×$Ñ$×&Ñ&¨×(=Ñ(=×(?Ñ(?Ð?Ð?r    c                ó.   • U R                  [        5        g r%   )rŸ   ÚERASE_IN_LINErÞ   s    r!   r¨   ÚWindowsConsole._erase_to_endV  s   € Ø�‰”]Õ#r    c                ó  • [        S5        / U l        U R                  5       u  U l        U l        SU l        SU l        SU l        U R                  (       a2  [        [        U R                  [        -  5        U R                  5         g g )NÚprepare©r   r   r   )r   r‡   rÑ   r‰   rˆ   r    Ú_WindowsConsole__gone_tallrŠ   r}   r‚   r   r�   ÚENABLE_VIRTUAL_TERMINAL_INPUTrê   rÞ   s    r!   r  ÚWindowsConsole.prepareY  sn   € ÜˆiÔØˆŒØ"&×"5Ñ"5Ó"7ÑˆŒ�T”ZàˆŒ
ØˆÔØˆŒà××Üœ8 T×%?Ñ%?ÔB_Ñ%_Ô`Ø×(Ñ(Õ*ð r    c                ó|   • U R                   (       a+  U R                  5         [        [        U R                  5        g g r%   )r}   rî   r‚   r   r�   rÞ   s    r!   ÚrestoreÚWindowsConsole.restoref  s,   € Ø××à×)Ñ)Ô+Üœ8 T×%?Ñ%?Õ@ð r    c                ó¢  • XR                   S   -
  nX R                   S   -
  nUS:  a&  U R                  [        R                  U* 5      5        O*US:”  a$  U R                  [        R                  U5      5        US:  a&  U R                  [
        R                  U* 5      5        gUS:”  a%  U R                  [        R                  U5      5        gg)z#Moves relative to the current posxyr   r   N)r    rŸ   Ú	MOVE_LEFTÚformatÚ
MOVE_RIGHTÚMOVE_UPÚ	MOVE_DOWN)r(   rx   r¶   ÚdxÚdys        r!   rž   ÚWindowsConsole._move_relativel  s¡   € à—‘˜A‘ÑˆØ—‘˜A‘ÑˆØ�‹6Ø�L‰Lœ×)Ñ)¨2¨#Ó.Õ/Ø�!‹VØ�L‰Lœ×*Ñ*¨2Ó.Ô/à�‹6Ø�L‰LœŸ™¨¨Ó,Õ-Ø�!‹VØ�L‰Lœ×)Ñ)¨"Ó-Õ.ð r    c                ó  • US:  d  US:  a  [        SU SU 35      eX R                  :  d  X R                  U R                  -   :¼  a&  U R                  R	                  [        SS5      5        g U R                  X5        X4U l        g )Nr   zBad cursor position z, Úscrollrš   )r�   rŠ   r‰   r‹   Úinsertr   rž   r    )r(   rx   r¶   s      r!   rª   ÚWindowsConsole.move_cursorz  sv   € Øˆq‹5�A˜“EÜÐ3°A°3°b¸¸Ð<Ó=Ð=à�}‰}Ó §]¡]°T·[±[Ñ%@Ó @Ø×Ñ×#Ñ#¤E¨(°BÓ$7Õ8à×Ñ Ô%Ø˜ˆD�Jr    c                óT   • U(       a  U R                  5         g U R                  5         g r%   )r©   r�   )r(   Úvisibles     r!   Úset_cursor_visÚWindowsConsole.set_cursor_vis„  s   € ÞØ×ÑÕà×ÑÕr    c                ó&  • [        5       n[        [        U5      (       d  [        [	        5       5      eUR
                  R                  UR
                  R                  -
  S-   UR
                  R                  UR
                  R                  -
  S-   4$ )zlReturn (height, width) where height and width are the height
and width of the terminal window in characters.r   )
rû   rü   rƒ   r   r   ÚsrWindowrÏ   rÎ   rÒ   rÐ   r   s     r!   rÑ   ÚWindowsConsole.getheightwidthŠ  sr   € ô *Ó+ˆÜ)¬)°T×:Ñ:Üœ<›>Ó*Ð*à�M‰M× Ñ  4§=¡=×#4Ñ#4Ñ4°qÑ8Ø�M‰M×Ñ $§-¡-×"4Ñ"4Ñ4°qÑ8ð
ð 	
r    c                ó’   • [        5       n[        [        U5      (       d  [        [	        5       5      eUR
                  R                  $ r%   )rû   rü   rƒ   r   r   r"  rÏ   r   s     r!   r£   Ú!WindowsConsole._getscrollbacksize•  s4   € Ü)Ó+ˆÜ)¬)°T×:Ñ:Üœ<›>Ó*Ð*à�}‰}×#Ñ#Ð#r    c                ó  • U(       dD  [        5       n[        [        U5      (       d  [        [	        5       5      eUR
                  (       d  g [        5       n[        5       n[        [        USU5      (       d  [        [	        5       5      eU$ )Nr   )r   ÚGetNumberOfConsoleInputEventsr   r   r   r€   ÚINPUT_RECORDÚReadConsoleInput)r(   ÚblockÚeventsÚrecÚreads        r!   Ú_read_inputÚWindowsConsole._read_inputœ  sa   € ÞÜ“WˆFÜ0´¸6×BÑBÜœ|›~Ó.Ð.Ø—<—<Øä‹nˆÜ‹wˆÜ¤¨#¨q°$×7Ñ7Üœ<›>Ó*Ð*àˆ
r    c                óÖ  • U R                   R                  5       (       Ga0  U R                  U5      nUc  gUR                  [        :X  a  [        SS5      $ UR                  [        :w  d%  UR
                  R                  R                  (       d
  U(       a  M—  gUR
                  R                  nUR                  R                  =pEUS:X  a
  [        SSS9$ UR                  S:X  a  S	nGO US
:X  až  [        R                  UR                  5      nU(       am  UR                  [        -  (       a  SU 3nOEUR                  [         -  (       a-  U R                   R#                  [        SUS95        [        SSS9$ [        SUS9$ U(       a  GMŒ  gU R$                  (       aK  UR'                  U R                   R(                  S5       H  nU R                   R+                  U5        M      GMé  UR                  [         -  (       aE  UR                  [        -  (       d-  U R                   R#                  [        SUS95        [        SSS9$ [        SUS9$ U R                   R                  5       $ )zŠReturn an Event instance.  Returns None if |block| is false
and there is no event pending, otherwise waits for the
completion of an event.NÚresizerš   ÚÚkeyr™   )ÚevtÚdataé   Ú	backspaceÚ zctrl rÁ   rñ   )r‹   Úemptyr.  Ú	EventTypeÚWINDOW_BUFFER_SIZE_EVENTr   Ú	KEY_EVENTÚKeyEventÚbKeyDownÚuCharrÔ   ÚwVirtualKeyCoderj   ÚgetÚdwControlKeyStateÚCTRL_ACTIVEÚ
ALT_ACTIVEr  r}   rô   r”   Úpush)r(   r*  r,  Ú	key_eventÚraw_keyr3  Úchars          r!   Ú	get_eventÚWindowsConsole.get_event«  sç  € ð
 ×Ñ×$Ñ$×&Ò&Ø×"Ñ" 5Ó)ˆCØ‰{Øà�}‰}Ô 8Ó8Ü˜X rÓ*Ð*à�}‰}¤	Ó)°·±×1CÑ1C×1L×1LæÙØàŸ	™	×*Ñ*ˆIØ%ŸO™O×7Ñ7Ð7ˆGà�d‹{ä ¨TÑ2Ð2Ø×*Ñ*¨aÓ/à!’Ø˜“ä—j‘j ×!:Ñ!:Ó;�ÞØ ×2Ñ2´[×@Ø % c U˜m™Ø"×4Ñ4´z×Aà×(Ñ(×/Ñ/´¸%ÀcÑ0JÔKÜ$¨°VÑ<Ð<Ü  U°Ñ5Ð5ÞÚàØ×"×"à#ŸN™N¨4×+;Ñ+;×+DÑ+DÀiÖP�DØ×$Ñ$×)Ñ)¨$Ö/ñ Qâà×*Ñ*¬Z×7ð !×2Ñ2´[×@à×$Ñ$×+Ñ+¬E°eÀ#Ñ,FÔGÜ  U°Ñ8Ð8ä˜U¨Ñ-Ð-Ø×Ñ×#Ñ#Ó%Ð%r    c                ó   • [        S5      e)z.
Push a character to the console event queue.
z"push_char not supported on Windows©ÚNotImplementedError)r(   rH  s     r!   Ú	push_charÚWindowsConsole.push_charè  s   € ô "Ð"FÓGÐGr    c                ó&   • U R                  S5        g )NÚrÝ   rÞ   s    r!   ÚbeepÚWindowsConsole.beepî  s   € Ø�‰�VÕr    c                óL   • U R                  [        5        SU l        S/U l        g)zWipe the screenr	  rš   N)rŸ   ÚCLEARr    r‡   rÞ   s    r!   ÚclearÚWindowsConsole.clearñ  s   € à�‰”UÔØˆŒ
Ø�dˆ�r    c                ó6  • [        U R                  5      S-
  nUS:¼  a5  U R                  U   (       d!  US-  nUS:¼  a  U R                  U   (       d  M!  U R                  S[        XR                  U R
                  -   S-
  5      5        U R                  S5        g)zsMove the cursor to the end of the display and otherwise get
ready for end.  XXX could be merged with restore?  Hmm.r   r   z
N)r›   r‡   rž   rœ   r‰   rŠ   rŸ   )r(   r¶   s     r!   ÚfinishÚWindowsConsole.finish÷  sy   € ô �—‘Ó˜qÑ ˆØ�1‹f˜TŸ[™[¨Ÿ^Ø�‰FˆAð �1‹f˜TŸ[™[¨Ÿ^™^à×Ñ˜Aœs 1§k¡k°D·M±MÑ&AÀAÑ&EÓFÔGØ�‰�VÕr    c                ó   • g)zŠFlush all output to the screen (assuming there's some
buffering going on somewhere).

All output on Windows is unbuffered so this is a nopNr   rÞ   s    r!   ÚflushoutputÚWindowsConsole.flushoutput   s   € ð
 	r    c                óR   • [        [        5      (       d  [        [        5       5      eg)z0Forget all pending, but not yet processed input.N)ÚFlushConsoleInputBufferr   r   r   rÞ   s    r!   ÚforgetinputÚWindowsConsole.forgetinput  s   € ä&¤x×0Ñ0Üœ<›>Ó*Ð*ð 1r    c                ó   • [        SSS5      $ )zAReturn the characters that have been typed but not yet
processed.r3  rš   r    )r   rÞ   s    r!   Ú
getpendingÚWindowsConsole.getpending  s   € ô �U˜B Ó$Ð$r    c                óâ   • [         R                   " 5       n [        R                  " 5       (       a  gU(       a   [         R                   " 5       U-
  US-  :”  a  g[         R                  " S5        MZ  )zWait for an event.Tiè  Fg{®Gáz„?)ÚtimeÚmsvcrtÚkbhitÚsleep)r(   ÚtimeoutÚ
start_times      r!   ÚwaitÚWindowsConsole.wait  sM   € ô —Y’Y“[ˆ
ØÜ�|Š|�~‰~ØÞœ4Ÿ9š9›;¨Ñ3°gÀ±nÓDØÜ�JŠJ�tÔñ r    c                ó   • [        S5      e)NzNo repaint supportrL  rÞ   s    r!   ÚrepaintÚWindowsConsole.repaint  s   € Ü!Ð"6Ó7Ð7r    )
Ú__gone_tallÚ__offsetÚ__original_input_modeÚ__vt_supportr‹   r‰   r�   r    r‡   rˆ   )r   r   rš   rš   )r‘   úIO[bytes] | intr’   ru  r“   Ústrr”   rv  )r‡   z	list[str]r«   útuple[int, int]r,   r-   )
r¶   Úintr·   rv  r¸   rv  rÃ   rx  r,   r-   )NN)
rÖ   rx  r×   rx  r9   r+   r=   r+   r,   r-   )r,   r-   )r÷   rv  r,   r-   )r,   rw  )rx   rx  r¶   rx  r,   r-   )r  Úboolr,   r-   ©r,   rx  )T)r*  ry  r,   zINPUT_RECORD | None)r*  ry  r,   zEvent | None)rH  zint | bytesr,   r-   )r,   r   )rj  zfloat | Noner,   ry  )'r.   r/   r0   r1   r)   r¹   Úpropertyr¾   r§   r¢   r�   r©   rä   rç   rê   rî   rŸ   r  r¨   r  r  rž   rª   r  rÑ   r£   r.  rI  rN  rR  rV  rY  r\  r`  rc  rl  ro  r2   Ú__classcell__)r–   s   @r!   rv   rv   {   s`  ø† ð !"Ø!"ØØð$àð$ð ð$ð ð	$ð
 ÷$ð $ôLB!ðH ñ!ó ð!ð/'Øð/'Ø"ð/'Ø-0ð/'Ø<?ð/'à	ô/'ðd SWð+Øð+Ø #ð+Ø+5ð+ØEOð+à	õ+ò&"ò"ò"ò"ô$ô$ôLð ó@ó ð@ô$ô+ôAô/ôô ô	
ô$öö;&ôzHôôôôô+ô
%ô
	÷8ò 8r    rv   c                  ó6   • \ rS rSrS\4S\4S\4S\4S\4/rSrg)	rû   i!  ÚdwSizerý   ÚwAttributesr"  ÚdwMaximumWindowSizer   N)	r.   r/   r0   r1   r   r   r   Ú_fields_r2   r   r    r!   rû   rû   !  s1   † à	�6ÐØ	˜VÐ$Ø	˜ÐØ	�ZÐ Ø	 Ð'ðƒHr    rû   c                  ó$   • \ rS rSrS\4S\4/rSrg)ÚCONSOLE_CURSOR_INFOi+  r~  ÚbVisibler   N)r.   r/   r0   r1   r   r   r�  r2   r   r    r!   rƒ  rƒ  +  s   † à	�5ÐØ	�TÐðƒHr    rƒ  c                  ó$   • \ rS rSrS\4S\4/rSrg)rÓ   i2  rÔ   Ú
Attributesr   N)r.   r/   r0   r1   r   r   r�  r2   r   r    r!   rÓ   rÓ   2  s   † à	˜ÐØ	�tÐðƒHr    rÓ   c                  ó$   • \ rS rSrS\4S \4/rSrg)ÚChari9  rÔ   r   N)r.   r/   r0   r1   r   r
   r�  r2   r   r    r!   rˆ  rˆ  9  s   † à	˜ÐØ	�ˆðƒHr    rˆ  c                  ó<   • \ rS rSrS\4S\4S\4S\4S\4S\4/rSr	g	)
r=  i@  r>  ÚwRepeatCountr@  ÚwVirtualScanCoder?  rB  r   N)
r.   r/   r0   r1   r   r   rˆ  r   r�  r2   r   r    r!   r=  r=  @  s8   † à	�TÐØ	˜ÐØ	˜DÐ!Ø	˜TÐ"Ø	�$ˆØ	˜eÐ$ðƒHr    r=  c                  ó   • \ rS rSrS\4/rSrg)ÚWindowsBufferSizeEventiK  r~  r   N)r.   r/   r0   r1   r   r�  r2   r   r    r!   r�  r�  K  s   † Ø˜6Ð"Ð#ƒHr    r�  c                  ó$   • \ rS rSrS\4S\4/rSrg)ÚConsoleEventiO  r=  r�  r   N)r.   r/   r0   r1   r=  r�  r�  r2   r   r    r!   r�  r�  O  s   † à	�XÐØ	!Ð#9Ð:ðƒHr    r�  c                  ó$   • \ rS rSrS\4S\4/rSrg)r(  iV  r:  r   r   N)r.   r/   r0   r1   r   r�  r�  r2   r   r    r!   r(  r(  V  s   † Ø˜dÐ# g¨|Ð%<Ð=ƒHr    r(  é   r6  é   é   é    i   iöÿÿÿiõÿÿÿÚwin32Úkernel32T)Úuse_last_errorc                 ó   • [        S5      e)NzWindows onlyrL  )ÚargsÚkwargss     r!   Ú	_win_onlyr›  ž  s   € Ü! .Ó1Ð1r    rz  )aÚ
__future__r   rŒ   rö   Úsysrf  rg  Úcollectionsr   ÚctypesÚctypes.wintypesr   r   r   r   r	   r
   r   r   r   r   r   r   Úconsoler   r   r   Úutilsr   Úwindows_eventqueuer   r   r   r   r   r   r   ÚOSErrorÚTYPE_CHECKINGÚtypingr3   rj   Ú__annotations__r  r  r  r  r  rU  rD  rC  Ú	Exceptionrn   rt   rv   rû   rƒ  rÓ   rˆ  r=  r�  r�  r(  r<  ÚFOCUS_EVENTÚ
MENU_EVENTÚMOUSE_EVENTr;  ÚENABLE_PROCESSED_INPUTÚENABLE_LINE_INPUTÚENABLE_ECHO_INPUTÚENABLE_MOUSE_INPUTÚENABLE_INSERT_MODEr  r…   r„   r†   ÚSTD_INPUT_HANDLEÚSTD_OUTPUT_HANDLEÚplatformÚ	_KERNEL32r–  ÚGetStdHandleÚargtypesÚrestyperü   ÚScrollConsoleScreenBufferWrÕ   r~   r‚   ÚReadConsoleInputWr)  r'  r_  rƒ   r   r›  r   r    r!   Ú<module>rº     sE  ðö( #ã 	Û 	Û 
Û Û å Û ÷
÷ 
õ 
÷ -Ñ ,ß #Ý Ý Ý *ðß=Ó=ð €æÝðØˆ%ðàˆ&ðð 	ˆ&ðð 	ˆ$ð	ð
 	ˆ'ðð 	ˆ&ðð 	ˆ(ðð 	ˆ$ðð 	ˆ$ðð 	ˆ$ðð 	ˆ$ðð 	ˆ$ðð 	ˆ$ðð 	ˆ$ðð 	ˆ$ðð  	ˆ$ð!ð" 	ˆ%ð#ð$ Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
ò7€ˆó ðB €Ø€	Ø€
Ø
€Ø€	Ø€ð €
Ø€ô	ˆYô 	òôb8�Wô b8ôL ô ô˜)ô ô�	ô ôˆ5ô ôˆv×Ñô ô$˜V×-Ñ-ô $ô�6—<‘<ô ô>�9ô >ð €	Ø€Ø€
Ø€ØÐ àÐ ØÐ ØÐ ØÐ ØÐ Ø &Ð àÐ Ø Ð Ø%)Ð "àÐ ØÐ à‡<�<�7ÔÙ�z°$Ñ7€Ià—?‘?×/Ñ/€LØ"˜G€LÔØ!€LÔà!*×!EÑ!EÐàØ�ŠÐ1Ó2ð+ÐÔ'ð *.ÐÔ&à )× DÑ DÐàÙ�
ÓÙ�
ÓØÙ�	Óð*ÐÔ&ð )-ÐÔ%à×-Ñ-€NØ%¡w¨u£~Ð6€NÔØ!€NÔà×-Ñ-€NØ% u˜o€NÔØ!€NÔà ×2Ñ2ÐØ!'©°Ó)>ÀÁwÈuÃ~Ð VÐÔØ#ÐÔà$-×$KÑ$KÐ!Ø.4±g¸e³nÐ-EÐ!Ô*Ø,0Ð!Ô)à'×?Ñ?ÐØ(. xÐÔ$Ø&*ÐÔ#áÐ.Ó/€IÙÐ,Ó-�Hò2ð €LØ!*ÐØ )ÐØ€NØ€NØ ÐØ$-Ð!Ø'ÐØ€IØ�Høðs
ç5ôô�7÷ ús   Á!K* Ë*L