
    /hhg                       % 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rS SKrS SK	r	S SK
r
S SKJr  SSKJr  SSKJrJr  SSKJrJrJr  SSKJr  SS	KJr  SS
KJr  Sr\(       a  S SKJrJrJrJ r J!r!  OS r S r! " S S\"5      r#\RH                  \RH                  \#4r%\&" \RN                  \RP                  \RR                  /5      r*Sr+\," \SS5      r-\," \SS5      r.SS jr// SQr00 r1S\2S'   \0 H  r3\/" \1\35        M     C3C/\Rh                  " S5      r5 \Rl                  r6S\2S'    " S S\5      r9g! \7 a     " S S5      r8\8r6 N f = f)     )annotationsN)ioctl   )curses)ConsoleEvent)	tcgetattr	tcsetattr	TermState)trace)
EventQueue)wlenF)AbstractSetIOLiteraloverloadcastc                    g N )funcs    =/opt/python-3.13.8/usr/lib/python3.13/_pyrepl/unix_console.py<lambda>r   1   s    D    c                    U$ r   r   )typvals     r   r   r   2   s    Cr   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )InvalidTerminal5   c                B   > [         TU ]  [        R                  U5        g r   )super__init__errnoEIO)selfmessage	__class__s     r   r#   InvalidTerminal.__init__6   s    G,r   r   )r'   strreturnNone)__name__
__module____qualname____firstlineno__r#   __static_attributes____classcell__r(   s   @r   r   r   5   s    - -r   r   repaintFIONREAD
TIOCGWINSZdict[int, int]c                ^    SU-  n[        [        U5      (       a  X[        [        U5      '   g g )NzB%d)hasattrtermiosgetattr)
dictionaryratebaudrate_names      r   add_baudrate_if_supportedr?   G   s,    DLMw&&6:77M23 'r   )r   n   i  i        i  i K     i  i`	  i,  i   i  i  2   i   iX  K   i%  ratedicts   \$<([0-9]+)((?:/|\*){0,2})>ztype[select.poll]pollc                  .    \ rS rSrS rS rSSS jjrSrg)	MinimalPollv   c                    g r   r   r&   s    r   r#   MinimalPoll.__init__w   s    r   c                    Xl         g r   fd)r&   rP   flags      r   registerMinimalPoll.registerz   s    Gr   Nc                    Uc(  [         R                   " U R                  // / 5      u  p#nU$ [         R                   " U R                  // / US-  5      u  p#nU$ )N  )selectrP   )r&   timeoutrwes        r   rG   MinimalPoll.poll~   sS     --	2r:a H !--	2r7T>JaHr   rO   r   )rW   float | Noner+   z	list[int])r-   r.   r/   r0   r#   rR   rG   r1   r   r   r   rI   rI   v   s    			 	r   rI   c                    ^  \ rS rSr    S.       S/U 4S jjjrS rS0S jrS1S jrS2S jrS r	S r
S	 rS
 rS3S jrS4S5S jjrS6S7S jjrS r\(       a  S rOS rS rS rS rS r\(       a  S rOS rS r\S 5       rS8S jrS8S jrS rS rS r S r!S r"S  r#S! r$S9S" jr%S9S# jr&S9S$ jr'S% r(S& r)S' r*S( r+S) r,S* r-\.4S+ jr/\04     S:S, jjr1S-r2U =r3$ );UnixConsole   c                  > [         TU ]  XX45        [        5       U l        U R                  R	                  U R
                  [        R                  5        SU l        SU l	        [        R                  " U=(       d    SU R                  5        X0l        [        R                  " 5       S:H  =(       a    [         R"                  " S5      S:H  U l         U R'                  [)        U R
                  5      [+        5       S9  [2         S(     S)S jj5       n[2        S*S j5       nS(S*S jjnU" S5      U l        U" SSS9U l        U" S5      U l        U" SSS9U l        U" SSS9U l        U" SSS9U l        U" SSS9U l         U" SSS9U l!        U" SSS9U l"        U" SSS9U l#        U" S5      U l$        U" SSS9U l%        U" SSS9U l&        U" SSS9U l'        U" SSS9U l(        U" S5      U l)        U" S SS9U l*        U" S!SS9U l+        U" S"SS9U l,        U" S#SS9U l-        U" S$SS9U l.        U" S%SS9U l/        U" S&SS9U l0        U" S'SS9U l1        U Re                  5         [g        U R
                  U Rh                  5      U l5        S	U l6        [n        Rn                  " [n        Rp                  U Rr                  5        g! [,         a!  n[/        SUR0                  S	    S
35      eSnAff = f)+a  
Initialize the UnixConsole.

Parameters:
- f_in (int or file-like object): Input file descriptor or object.
- f_out (int or file-like object): Output file descriptor or object.
- term (str): Terminal name.
- encoding (str): Encoding to use for I/O operations.
r   r   NDarwinTERM_PROGRAMApple_Terminal)ignoreztermios failure (r   )c                    g r   r   capoptionals     r   
_my_getstr(UnixConsole.__init__.<locals>._my_getstr   s     r   c                    g r   r   rg   s     r   rj   rk      s    BEr   c                d    [         R                  " U 5      nU(       d  Uc  [        SU  S35      eU$ )Nz#terminal doesn't have the required z capability)r   tigetstrr   )rh   ri   rX   s      r   rj   rk      s7    $A	%9#kJ  Hr   belcivisT)ri   clearcnormcubcub1cudcud1cufcuf1cupcuucuu1dch1dchelhpaichich1indpadrirmkxsmkx)F)rh   r*   ri   zLiteral[False]r+   bytes)rh   r*   ri   boolr+   zbytes | None):r"   r#   rG   pollobrR   input_fdrV   POLLINinput_bufferinput_buffer_posr   	setupterm	output_fdtermplatformsystemosgetenvis_apple_terminal_UnixConsole__input_fd_setr	   	frozenset_errorRuntimeErrorargsr   _bel_civis_clear_cnorm_cub_cub1_cud_cud1_cuf_cuf1_cup_cuu_cuu1_dch1_dch_el_hpa_ich_ich1_ind_pad_ri_rmkx_smkx_UnixConsole__setup_movementr   encodingevent_queuecursor_visiblesignalSIGCONT_sigcont_handler)r&   f_inf_outr   r   rZ   rj   r(   s          r   r#   UnixConsole.__init__   s     	d5fT]]FMM: !t~~6	OO) >		.)-== 	
	A	$-- 8M 
16		 .		 
	 
E 
E	 u%	 48 ) 48ut4	6
ut4	6
ut4	6
u%	ut4	6
6
ut4	d#ut4	ut4	6
ut4	ut4	dT26
6
%dmmT]]Cfnnd&;&;<c  	A!2166!9+Q?@@	As   +J7 7
K"KK"c                D    U R                  5         U R                  5         g r   )restorepreparer&   signumframes      r   r   UnixConsole._sigcont_handler   s    r   c                ~    [        U R                  =(       a"    U R                  [        U R                  5      :  5      $ r   )r   r   r   lenrL   s    r   more_in_bufferUnixConsole.more_in_buffer   s6     ?%%D,=,=(>>
 	
r   c                f   U R                  5       (       d&  [        R                  " U R                  S5      U l        U R                  U R
                  U R
                  U-    nU =R
                  [        U5      -  sl        U R
                  [        U R                  5      :  a  SU l        SU l        U$ )N'  r   r   )r   r   readr   r   r   r   )r&   nrets      r   __readUnixConsole.__read   s    ""$$ "u =D 5 58M8MPQ8QRS)  C(9(9$:: #D$%D!
r   c                    Xl         g)zb
Change the encoding used for I/O operations.

Parameters:
- encoding (str): New encoding to use.
N)r   )r&   r   s     r   change_encodingUnixConsole.change_encoding   s	     !r   c                	   Uu  p4U R                   (       d  [        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  Oa[        U R                  5      [        U5      :  a?  U R                  R                  S5        [        U R                  5      [        U5      :  a  M?  [        U5      U R                  :  a  SU l         U R                  U l        U R                  u  pVU R                  =pxU R                  n	XH:  a  UnOPXHU	-   :  a  XI-
  S-   n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Xx:  a  U R                  (       a  U R                  5         U R                  U R                  SS5        SU4U l        [!        Xx-
  5       HA  nU R                  U R                  5        U
R#                  S5        U
R%                  SS5        MC     OXx:  a  U R&                  (       a  U R                  5         U R                  U R                  U R                  S-
  S5        SXpR                  -   S-
  4U l        [!        X-
  5       H@  nU R                  U R&                  5        U
R#                  S5        U
R                  S5        MB     Xl        [)        [!        XU	-   5      X5       H   u  nnnX:w  d  M  U R+                  XX5        M"     [        U5      nU[        U
5      :  a\  U R                  5         U R                  SU5        SU4U l        U R                  U R,                  5        US-  nU[        U
5      :  a  M\  U R/                  5         UR1                  5       U l        U R3                  X45        U R5                  5         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)_UnixConsole__gone_tallr   screenminheight_UnixConsole__hide_cursor_UnixConsole__move_UnixConsole__writeposxyappend_UnixConsole__move_tall_UnixConsole__offsetmaxr   _UnixConsole__write_coder   rangepopinsertr   zip _UnixConsole__write_changed_liner   _UnixConsole__show_cursorcopymove_cursorflushoutput)r&   r   c_xycxcypxpy
old_offsetoffsetr   oldscrnewscriyoldlinenewlines                   r   refreshUnixConsole.refresh   s    dkk"SVdkk%BB""$As4;;/!34T"DKK 00
""2& dkk"SVdkk%BB dkk"S[0""2& dkk"S[0 v;$ D**DK"mm+
 ;FF?"[1_FaZCK&/9Vv-q1FMM"Zv*=>1 488 diiA.JDJ:./!!$((+

2a$ 0  TYY diiq!<J4q88DJ6./!!$)),

1b! 0
  v/@	
!))!gB A K#f+o KK1ADJdhh'FA #f+o 	kkm r   c                    X R                   :  d  X R                   U R                  -   :  a&  U R                  R                  [	        SS5      5        gU R                  X5        X4U l        U R                  5         g)zy
Move the cursor to the specified position on the screen.

Parameters:
- x (int): X coordinate.
- y (int): Y coordinate.
scrollN)r   r   r   r   r   r   r   r   r&   xr   s      r   r   UnixConsole.move_cursorL  s\     }}]]T[[%@ @##E(D$9:KKDJr   c                   / U l         [        U R                  5      U l        U R                  R	                  5       nU=R
                  [        R                  [        R                  -  [        R                  -  ) -  sl        U=R                  [        R                  ) -  sl
        U=R                  [        R                  [        R                  -  ) -  sl        U=R                  [        R                  -  sl        U=R
                  [        R                   -  sl        U=R"                  [        R$                  [        R&                  -  [        R(                  -  ) -  sl        U=R"                  [        R*                  -  sl        SUR,                  [        R.                  '   SUR,                  [        R0                  '   U R3                  U5        U R4                  (       a!  [6        R8                  " U R:                  S5        / U l        U R?                  5       u  U l         U l!        SU l"        SU l#        U RH                  U l%        SU l&        U RO                  U RP                  5         [R        RR                  " [R        RT                  U RV                  5      U l,        U R]                  5         g! [Z         a     Nf = f)z2
Prepare the console for input/output operations.
r   r   s   [?7lr   r   N)/_UnixConsole__bufferr	   r   _UnixConsole__svtermstater   iflagr:   INPCKISTRIPIXONoflagOPOSTcflagCSIZEPARENBCS8BRKINTlflagICANONECHOIEXTENISIGccVMINVTIMEr   r   r   writer   r   getheightwidthr   widthr   r   _UnixConsole__move_shortr   r   _UnixConsole__maybe_write_coder   r   SIGWINCH_UnixConsole__sigwinchold_sigwinch
ValueError$_UnixConsole__enable_bracketed_paste)r&   raws     r   r   UnixConsole.prepare[  s    &t}}5  %%'		w}}w~~5DEE			w}}%%			w}}w~~566			W[[ 			W^^#			w~~4w~~EFF			W\\!	 w|| !w}}C  !!HHT^^[1"&"5"5"7TZ
''

+	 &foot OD 	%%'  		s   -4J2 2
J?>J?c                   U R                  5         U R                  U R                  5        U R                  5         U R	                  U R
                  5        U R                  (       a!  [        R                  " U R                  S5        [        U S5      (       a2  [        R                  " [        R                  U R                  5        U ?gg)z*
Restore the console to the default state
s   [?7hr  N)%_UnixConsole__disable_bracketed_paster  r   r   r   r  r   r   r  r   r9   r   r  r  rL   s    r   r   UnixConsole.restore  s     	&&(

+D../!!HHT^^[14((MM&//4+<+<=! )r   c                N    [        SUS9  U R                  R                  U5        g)z.
Push a character to the console event queue.
zpush char {char!r})charN)r   r   push)r&   r'  s     r   	push_charUnixConsole.push_char  s#     	".d#r   c                   U(       d  U R                  SS9(       d  gU R                  R                  5       (       aD    U R                  U R	                  S5      5         U R                  R                  5       (       a  MD  U R                  R                  5       $ ! [
         a  nUR                  [        R                  :X  aD  U R                  R                  5       (       d  U R                  R                  5       s SnA$  SnAM  UR                  [        R                  :X  a  [        [        R                  5      ee SnAff = f)z
Get an event from the console event queue.

Parameters:
- block (bool): Whether to block until an event is available.

Returns:
- Event: Event object from the event queue.
r   )rW   Nr   )waitr   emptyr)  _UnixConsole__readOSErrorr$   EINTRgetr%   
SystemExit)r&   blockerrs      r   	get_eventUnixConsole.get_event  s     TYYqY1$$&&NN4;;q>2  $$&&  ##%%  	yyEKK/#//5577#'#3#3#7#7#99$eii/(33	s$    B 
E$AD>:E8D>>Ec                    U R                   R                  5       (       + =(       d;    U R                  5       =(       d$    [        U R                  R                  U5      5      $ )z!
Wait for events on the console.
)r   r-  r   r   r   rG   )r&   rW   s     r   r,  UnixConsole.wait  sK    
   &&(( /""$/DKK$$W-.	
r   c                T    U(       a  U R                  5         gU R                  5         g)zS
Set the visibility of the cursor.

Parameters:
- visible (bool): Visibility flag.
N)r   r   )r&   visibles     r   set_cursor_visUnixConsole.set_cursor_vis  s       r   c                V    [        [        R                  S   5      [        [        R                  S   5      4$ ! [        [        [
        4 aY     [        U R                  [        S5      nO! [         a      gf = f[        R                  " SU5      SS u  p#U(       d   gX#4s $ f = f)^
Get the height and width of the console.

Returns:
- tuple: Height and width of the console.
LINESCOLUMNSs              P   hhhhr      )intr   environKeyError	TypeErrorr  r   r   r6   r/  structunpack)r&   sizer   r  s       r   r  UnixConsole.getheightwidth  s    
%2::g./RZZ	5J1KKKi4 %" 
KHD "!" &fd ;Aa @!}$%s9   7: B(A,+B(,
A:6B(9A::&B("B('B(c                     [        [        R                  S   5      [        [        R                  S   5      4$ ! [        [        [
        4 a     gf = f)r>  r?  r@  rA  )rF  r   rG  rH  rI  r  rL   s    r   r  rM    sG    2::g./RZZ	5J1KKKi4 s   7: AAc                b    [         R                  " U R                  [         R                  5        g)z+
Discard any pending input on the console.
N)r:   tcflushr   TCIFLUSHrL   s    r   forgetinputUnixConsole.forgetinput  s     	w'7'78r   c                    U R                    HZ  u  pU(       a  U R                  U5        M  [        R                  " U R                  UR                  U R                  S5      5        M\     U R                   SS2	 g)z
Flush the output buffer.
replaceN)r  _UnixConsole__tputsr   r  r   encoder   )r&   textiscodes      r   r   UnixConsole.flushoutput  sR     !MMLDT"T]]I)NO	 *
 MM!r   c                V   [        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        U R                  5         g)z8
Finish console operations and flush the output buffer.
r   r   z
N)r   r   r   r   r   r   r   r   )r&   r   s     r   finishUnixConsole.finish  s     q 1fT[[^FA 1fT[[^^As1kkDMM9A=>?Vr   c                Z    U R                  U R                  5        U R                  5         g)z
Emit a beep sound.
N)r  r   r   rL   s    r   beepUnixConsole.beep  s"     			*r   c                X   [        SSS5      nU R                  R                  5       (       dy  U R                  R                  5       nU=R                  UR                  -  sl        U=R
                  UR
                  -  sl        U R                  R                  5       (       d  My  [        R                  " S[        U R                  [        S5      5      S   nU R                  U5      n[        X@R                  S5      nU=R                  U-  sl        U=R
                  U-  sl        U$ )i
Get pending events from the console event queue.

Returns:
- Event: Pending event from the event queue.
keyr   r   r   s       r   rU  )r   r   r-  r1  datar!  rJ  rK  r   r   r5   r.  r*   r   r&   rZ   e2amountr!  rd  s         r   
getpendingUnixConsole.getpending  s     eR%A&&,,..%%))+"''! &&,,..
 ]]3dmmX{(STUVWF++f%CsMM95DFFdNFEESLEHr   c                   [        SSS5      nU R                  R                  5       (       dy  U R                  R                  5       nU=R                  UR                  -  sl        U=R
                  UR
                  -  sl        U R                  R                  5       (       d  My  SnU R                  U5      n[        X@R                  S5      nU=R                  U-  sl        U=R
                  U-  sl        U$ )rb  rc  r   r   r   rU  )	r   r   r-  r1  rd  r!  r.  r*   r   re  s         r   rh  ri  .  s     eR%A&&,,..%%))+"''! &&,,..
 F++f%CsMM95DFFdNFEESLEHr   c                    U R                  U R                  5        SU l        U R                  U l        SU l        / U l        g)z
Clear the console screen.
r   r  N)r   r   r   r   r   r   r   rL   s    r   rq   UnixConsole.clearC  s9     	$++&&&
r   c                p     SS K nUR                  5       (       a  UR                  $ g ! [         a     g f = fNr   )posixImportError_is_inputhook_installed
_inputhook)r&   ro  s     r   
input_hookUnixConsole.input_hookM  s@    	 ((**### +  		s   ( 
55c                F    [         R                  " U R                  S5        g )Ns   [?2004hr   r  r   rL   s    r   __enable_bracketed_paste$UnixConsole.__enable_bracketed_pasteV      
0r   c                F    [         R                  " U R                  S5        g )Ns   [?2004lrv  rL   s    r   __disable_bracketed_paste%UnixConsole.__disable_bracketed_pasteY  ry  r   c                |    U R                  (       a#  U R                  (       a  U R
                  U l        O?U R                  (       a#  U R                  (       a  U R                  U l        O[        S5      eU R                  (       a#  U R                  (       a  U R                  U l        O?U R                  (       a#  U R                  (       a  U R                   U l        O[        S5      eU R"                  (       a  U R"                  U l        O?U R&                  (       a'  [(        R*                  " U R&                  S5      U l        OSU l        U R,                  (       a  U R,                  U l        O?U R0                  (       a'  [(        R*                  " U R0                  S5      U l        OSU l        U R2                  U l        g)zC
Set up the movement functions based on the terminal capabilities.
z"insufficient terminal (horizontal)z insufficient terminal (vertical)r   N)r   _UnixConsole__move_x_hpa_UnixConsole__move_xr   r   _UnixConsole__move_x_cub_cufr   r   _UnixConsole__move_x_cub1_cuf1r   r   r   _UnixConsole__move_y_cuu_cud_UnixConsole__move_yr   r   _UnixConsole__move_y_cuu1_cud1r   r|   r   r   tparmr   r   r   r  r   rL   s    r   __setup_movementUnixConsole.__setup_movement\  s     YY499 11DMZZDJJ 33DMCDD99 11DMZZDJJ 33DMABB::

DIYYTYY2DIDI::

DIYYTYY2DIDI''r   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.  X&S  X6S-   S  :X  a  U R                  (       a  XR                  S   :X  a&  XpR                  S   :  a  X(U X8S-   US-    :X  a  UnUn[        X6   5      nU R	                  Xq5        U R                  U R                  5        U R                  X6   5        X{-   U4U l        GOXu:  aj  X&S-   S  X6S-   S  :X  aZ  [        X&   5      [        X6   5      :X  a>  [        X6   5      nU R	                  Xq5        U R                  X6   5        X{-   U4U l        GOU R                  (       Ga  U R                  (       a  [        U5      U R                  :X  a  U[        U5      S-
  :  a  X6S-   S X&S :X  a  U R                  5         U R	                  U R                  S-
  U5        U R                  S-
  U4U l        U R                  U R                  5        [        X6   5      nU R	                  Xq5        U R                  U R                  5        U R                  X6   5        US-   U4U l        OyU R                  5         U R	                  Xq5        [        U5      [        U5      :  a  U R                  U R                  5        U R                  X6S  5        [        U5      U4U l        SU;   a  U R                  SU5        g g )Nr   r   rE  r   )r   r   r   r   r   r   r   r|   r  r   r   r   )r&   r   r   r   px_coordminlenx_posx_coordpx_posjccharacter_widths               r   __write_changed_line UnixConsole.__write_changed_line  s   
 T']DM2A}aLAaKF	  '.0&(tGN++GQJE '.0&( 6?gaik22tyyZZ]"jjm+5)WaZ%!)-LL""7>2OKK#dii(LL( 2A5DJ 	$	(<<W^$W^(<<"7>2OKK#LL( 2A5DJ III		W+$w-!++	B'7+<< KK

Q*a*DJdii("7>2OKK#dii(LL((1,a/DJ  KK#G}tG},!!$((+LL)g)DJW Q"	 r   c                >    U R                   R                  US45        g rn  )r  r   )r&   rX  s     r   __writeUnixConsole.__write  s    dAY'r   c                h    U R                   R                  [        R                  " U/UQ76 S45        g Nr   )r  r   r   r  r&   fmtr   s      r   __write_codeUnixConsole.__write_code  s'    fll366:;r   c                :    U(       a  U R                   " U/UQ76   g g r   )r   r  s      r   __maybe_write_codeUnixConsole.__maybe_write_code  s    c)D) r   c                    XR                   S   -
  nUS:  a  U R                  X R                  -  5        g US:  a   U R                  U* U R                  -  5        g g Nr   r   )r   r   r   r   r&   r   dys      r   __move_y_cuu1_cud1UnixConsole.__move_y_cuu1_cud1  sT     A6b::o.!Vsdjj01 r   c                    XR                   S   -
  nUS:  a  U R                  U R                  U5        g US:  a  U R                  U R                  U* 5        g g r  )r   r   r   r   r  s      r   __move_y_cuu_cudUnixConsole.__move_y_cuu_cud  O    A6dii,!Vdii"- r   c                b    XR                   S   :w  a  U R                  U R                  U5        g g rn  )r   r   r   )r&   r   s     r   __move_x_hpaUnixConsole.__move_x_hpa  s)    

1dii+ r   c                    XR                   S   -
  nUS:  a  U R                  U R                  U-  5        g US:  a   U R                  U R                  U* -  5        g g rn  )r   r   r   r   r&   r   dxs      r   __move_x_cub1_cuf1UnixConsole.__move_x_cub1_cuf1  sV     A6djj2o.!VdjjRC01 r   c                    XR                   S   -
  nUS:  a  U R                  U R                  U5        g US:  a  U R                  U R                  U* 5        g g rn  )r   r   r   r   r  s      r   __move_x_cub_cufUnixConsole.__move_x_cub_cuf  r  r   c                H    U R                  U5        U R                  U5        g r   )r  r  r   s      r   __move_shortUnixConsole.__move_short  s    aar   c                V    U R                  U R                  X R                  -
  U5        g r   )r   r   r   r   s      r   __move_tallUnixConsole.__move_tall	  s    $))Q%6:r   c                    U R                  5       u  U l        U l        U R                  R	                  [        SS 5      5        g )Nresize)r  r   r  r   r   r   r   s      r   
__sigwinchUnixConsole.__sigwinch  s4    "&"5"5"7TZh 56r   c                l    U R                   (       a#  U R                  U R                  5        SU l         g g rn  )r   r  r   rL   s    r   __hide_cursorUnixConsole.__hide_cursor  s*    ##DKK0"#D r   c                l    U R                   (       d#  U R                  U R                  5        SU l         g g r  )r   r  r   rL   s    r   __show_cursorUnixConsole.__show_cursor  s*    ""##DKK0"#D #r   c                r   U R                   (       dT  SU R                  S   4U l        U R                  S5        [        U R                  5      SU R
                  -  /-  nXl        g SU R                  4U l        U R                  SU R                  5        U R                  SU R
                  -  /-  nXl        g )Nr   r    )	r   r   r   r   r   r  r   r   r   )r&   nss     r   r4   UnixConsole.repaint  s    DJJqM)DJLLT[[!Vdjj%8$99BKDMM)DJKK4==) 344BKr   c                   [         R                  U R                  R                  5      n UR	                  U5      nU(       d"  [
        R                  " U R                  U5        gUR                  5       u  pV[
        R                  " U R                  USU 5        XS n[        UR                  S5      5      nSUR                  S5      ;   a  XpR                  -  nU R                  (       a9  Ub6  X7-  S-  n[
        R                  " U R                  U R                  U-  5        O"[        R                  " [        U5      S-  5        GM   )zA Python implementation of the curses tputs function; the
curses one can't really be wrapped in a sane manner.

I have the strong suspicion that this is complexity that
will never do anyone any good.r   N   *rE  rU   g     @@)rF   r1  r  ospeedsearchr   r  r   spanrF  groupr   r   timesleepfloat)	r&   r  progbpsmr   r   delayncharss	            r   __tputsUnixConsole.__tputs'  s     ll4--445C A-668DAHHT^^S!W-b'C
OEqwwqz!$yyS_+-V);<

5<&01 r   c                     [        U R                  [        R                  U5        g! [        R                   a  nUR
                  S   U;  a  e  S nAgS nAff = f)NTr   F)r
   r   r:   	TCSADRAINerrorr   )r&   staterd   tes       r   __input_fd_setUnixConsole.__input_fd_setB  sN    
	dmmW%6%6>  }} 	wwqz'	s   %( AAA).__buffer__gone_tall__move__move_x__move_y__offset__svtermstater   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   r  )r   r   r   r   )r   IO[bytes] | intr   r  r   r*   r   r*   )r+   r   )r   rF  r+   r   )r   r*   r+   r,   )r'  zint | bytesr+   r,   )T)r3  r   r+   zEvent | Noner   )rW   r\   r+   r   )r+   r,   )r   rF  r+   r,   )r  r   rd   zAbstractSet[int]r+   r   )4r-   r.   r/   r0   r#   r   r   r.  r   r   r   r   r   r)  r5  r,  r;  r6   r  rR  r   r\  r_  r5   rh  rq   propertyrs  r   r$  r   r   r   r   r  r  r  r~  r  r  r  r   r  r   r   r4   	delayprogrV  _error_codes_to_ignorer   r1   r2   r3   s   @r   r^   r^      sd    !"!"P=P= P= 	P=
 P= P=d
	!Qf&(P" $&>

! 	%*
	9		 	.	* $ $11"(HU#n(<*2.,2.;7$
$

 !* 2< $: ! 
	 r   r^   )r<   r7   r=   rF  r+   r,   ):
__future__r   r$   r   rerV   r   rJ  r:   r  r   fcntlr   r   r   consoler   r   fancy_termiosr	   r
   r   r   unix_eventqueuer   utilsr   TYPE_CHECKINGtypingr   r   r   r   r   r   r   r  r   r   r%   ENXIOEPERMr  SIGWINCH_EVENTr;   r5   r6   r?   potential_baudratesrF   __annotations__r=   compiler  rG   AttributeErrorrI   r^   r   r   r   <module>r     sD  , #  	 	         # : :  '   ?? HD-l -
 --	7"EIIu{{EKK#HI 7J-WlD1
; . . Dh-   	
# JJ78	$kkD
),F' F+    D%s   D1 1EE