
    jjG                       d Z 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
 ej                  rddlmZ ddlZ	ej                  dk(  Ze
j                   ZdZd	Zd
ZdZdZdZdZi Z ee       ee      k7  r e eeef             eee      D ]  \  ZZeez   ez   e ee      <     ej@                  de d      Z! ej@                  de d      Z" G d de#      Z$ddZ%g 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/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdS  edTdU      D        dV  edWdX      D        dY  e&dZ      D        d[ d\D        d] d^D        d_ d`D        dadbdcZ' G dd de      Z(dfZ)dgZ*dhZ+diZ, e(e'      Z-i djddkdldmdndZdodpdodqdldrdsdtdudvdwdxdydzd{d|dld}d~ddddddddi dddddddddddddddddddddddddddddddddddddddddoddd	Z.er
de.d<   de.d<   ddZ/dZ0e0 dZ1dZ2e0 dZ3e0 dZ4e0 dZ5e0 dZ6e0 dZ7e0 dZ8e0 dZ9e0 dZ:e0 dZ;e0 dZ<e0 dÝZ=e0 dĝZ>ddńZ?ddƄZ@ddǄZAddȄZBe0 dɝZCe0 dʝZDe0 de0 de0 d͝ZEe0 de0 de0 dНZFe0 dѝZGe0 dҝZHy)z1
Terminal Escape Sequences for input and display
    )annotationsN)MutableMappingSequence)str_util)Iterablewin32z[11mz[10m0u[   ▮◆▒␉␌␍␊°±␤␋┘┐┌└┼⎺⎻─⎼⎽├┤┴┬│≤≥π≠£·z _`abcdefghijklmnopqrstuvwxyz{|}~z^[ -~z]*$[]c                      e Zd Zy)MoreInputRequiredN)__name__
__module____qualname__     ]/home/ubuntu/.cache/pipx/cdb5059130eadca/lib/python3.12/site-packages/urwid/display/escape.pyr   r   F   s    r   r   c                p    t        |       t        d      z
  }d|dz  z  d|dz  dz  z  z   d|dz  dz  z  z   S )N1shift    meta    ctrl    )ord)digitmodes     r   escape_modifierr!   J   sI    u:C Dtax 7taxAo#>>TTUXZ[OA\\\r   )z[Aup)z[Bdown)z[Cright)z[Dleft)z[E5)z[Fend)z[Gr&   )[Hhome)z[Izfocus in)z[Oz	focus out)z[1~r)   )z[2~insert)z[3~delete)z[4~r'   )z[5~page up)z[6~	page down)z[7~r)   )z[8~r'   )z[[Af1)z[[Bf2)z[[Cf3)z[[Df4)z[[Ef5)z[11~r.   )z[12~r/   )z[13~r0   )z[14~r1   )z[15~r2   )z[17~f6)z[18~f7)z[19~f8)z[20~f9)z[21~f10)z[23~f11)z[24~f12)z[25~f13)z[26~f14)z[28~f15)z[29~f16)z[31~f17)z[32~f18)z[33~f19)z[34~f20)OAr"   )OBr#   )OCr$   )ODr%   )OHr)   )OFr'   )OPr.   )OQr/   )ORr0   )OSr1   )Oo/)Oj*)Om-)Ok+)z[Z	shift tab)On.)z[200~zbegin paste)z[201~z	end pastec              #  ^   K   | ]%  \  }}t        d d      D ]  \  }}||z   ||z   f  ' yw)abcd)r"   r#   r$   r%   Nzip).0prefixmodifierletterkeys        r   	<genexpr>r`      sJ      FHv'FG FC 
&(S.))s   +-zO[)r   r   c              #  b   K   | ]'  \  }}t        d d      D ]  \  }}d| | ||z   f  ) yw)235678)r*   r+   r,   r-   r)   r'   r   NrY   )r[   r]   symbolr   r_   s        r   r`   r`      sQ      Hfh(cd E3 UGF8	hn--s   -/)r   r   z$^c              #  V   K   | ]!  }d t        d      |z   dt        |      f # yw)OpcN)r   str)r[   ns     r   r`   r`      s+     83s8a<
SV$8s   ')
   c              #  ~   K   | ]5  }d D ].  }t        dd      D ]  \  }}||z   |z   t        |      |z   f  0 7 yw)12345678ABCDEFGH)r"   r#   r$   r%   r&   r'   r&   r)   N)rZ   r!   )r[   r\   r   r^   r_   s        r   r`   r`      sh       	 z+cd
 FC 
%&	 /%"83">???s   ;=)r   [1;c              #     K   | ]9  }d D ]2  }t        dd      D ]   \  }}||z   |z   t        |      d| z   f " 4 ; yw)rl   PQRSr   )startfN)	enumerater!   )r[   r\   r   numberr^   s        r   r`   r`      sm       	 'a8
 FF 
%&	 /%"8Qvh<"GHHHs   ?A)re   rn   c           
   #     K   | ]F  }t        d dddgd t        dd      D              D ]  \  }}d|d| d	t        |      |z   f   H y
w))                                                                !   "   r+   r,   r-   c              3  &   K   | ]	  }d |   yw)rr   Nr   )r[   idxs     r   r`   z<genexpr>.<genexpr>   s     4AcU)4s   r   r   r   ;~N)rZ   ranger!   )r[   r   numr_   s       r   r`   r`      s|       e 5uQ|4	
	 C SG1UG1	u5;<<s   AArl   )z[Mmouse)z[<sgrmouse)z[0nz	status okc                      e Zd ZdZd
dZ	 	 	 	 	 	 	 	 ddZddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ		 	 	 	 	 	 ddZ
y	)KeyqueueTrie)datac                    i | _         |D ]=  \  }}t        |t              rt        |      | j	                  | j                   ||       ? y N)r   
isinstancedict	TypeErroradd)self	sequencessresults       r   __init__zKeyqueueTrie.__init__   sE    FH	" 	+IAv&$'''HHTYY6*	+r   c                6   t        |t              r|st        d      t        |d         |v r&| j	                  |t        |d            |dd  |       y t        |      dkD  r*i }||t        |d         <   | j	                  ||dd  |       y ||t        |      <   y )Nztrie conflict detectedr   r   )r   r   RuntimeErrorr   r   len)r   rootr   r   ds        r   r   zKeyqueueTrie.add   s     $/q788qt9HHT#ad)_aeV4q6A:ADQqTOHHQ!"v&SVr   c                h    | j                  | j                  ||      x}r|S | j                  ||      S r   )get_recurser   read_cursor_position)r   keysmore_availabler   s       r   getzKeyqueueTrie.get   s8    %%dii~FF6FM((~>>r   c                    t        |t              s2|dk(  r| j                  ||      S |dk(  r| j                  ||      S ||fS |s|r
t	               y |d   |vry | j                  ||d      |dd  |      S )Nr   r   r   r   )r   r   read_mouse_inforead_sgrmouse_infor   r   )r   r   r   r   s       r   r   zKeyqueueTrie.get_recurse   s     $/w++D.AAz!..t^DD$<'))7$T!WtABxHHr   c                L   t        |      dk  r|r
t               y |d   dz
  }|d   dz
  dz  |d   dz
  dz  }}g }|dz  r|j                  d	       |d
z  r|j                  d       |dz  r|j                  d       |t        z  dz	  dk(  r|j                  d       |t        z  dz	  dk(  r|j                  d       dj	                  |      }|dz  dz  dz  |dz  z   dz   }|dz  dk(  rd}	d}n&|t
        z  rd}	n|t        z  rd}	n|t        z  rd}	nd}	| d|	 |||f|dd  fS )Nrv   r   r   r   r      r   r   r      r      r   	   zdouble ztriple  @   releasedragclickpressmouse )r   r   appendMOUSE_MULTIPLE_CLICK_MASKjoinMOUSE_RELEASE_FLAGMOUSE_DRAG_FLAG)
r   r   r   bxyprefixesr\   buttonactions
             r   r   zKeyqueueTrie.read_mouse_info   sb   
 t9q='))GbLQ"#d1glc%91q5OOH%q5OOG$r6OOG$))a/14OOI&))a/14OOI&" r6b.1$Q/!3q5A:FF##F F**FF86&*FAq948DDr   c                b   |s|r
t               y d}d}d}|D ]1  }|t        |      z  }|t        d      t        d      hv rd} n|dz  }3 |s|r
t               y d |d d	 j                  d
      D        \  }}}	|d	   }
g }|dz  r|j	                  d       |dz  r|j	                  d       |dz  r|j	                  d       dj                  |      }|dz  dz	  }|dz  |dz  z   dz   }|dz  }|	dz  }	|
dk(  r|t        z  rd}
nd}
n|
dk(  rd}
nt        d|
      | d|
 |||	f||dz   d  fS )Nr   r   FMmTr   c              3  2   K   | ]  }t        |        y wr   )int)r[   vals     r   r`   z2KeyqueueTrie.read_sgrmouse_info.<locals>.<genexpr>A  s     ?#SX?s   r   r   r   r   r   r   r   r   rx   rv   r   r   r   zUnknown mouse action: r   )r   chrr   splitr   r   r   
ValueError)r   r   r   valuepos_mfound_mkr   r   r   r   r   r\   
wheel_usedr   s                  r   r   zKeyqueueTrie.read_sgrmouse_info%  s    ')) 	ASVOESXs3x((QJE	 '))?s)9)9#)>?	Aqr q5OOH%q5OOG$r6OOG$",-Fq=
q.QU+a/	Q	QS=?" s]F5fZ@AA86&*FAq94	;LMMr   c                T   |s|r
t               y|d   t        d      k7  ryd}d}||d D ]_  }|dz  }|t        d      k(  r|s y nF|t        d      k  s|t        d      kD  r y|s|t        d      k(  r y|dz  |z   t        d      z
  }a ||d s|r
t               yd}||d D ]o  }|dz  }|t        d	      k(  r|s yd
|dz
  |dz
  f||d fc S |t        d      k  s|t        d      kD  r y|s|t        d      k(  r y|dz  |z   t        d      z
  }q ||d s|r
t               y)z
        Interpret cursor position information being sent by the
        user's terminal.  Returned as ('cursor position', x, y)
        where (x, y) == (0, 0) is the top left of the screen.
        Nr   r   r   r   r   9rj   Rzcursor position)r   r   )r   r   r   r   ir   r   s          r   r   z!KeyqueueTrie.read_cursor_positiond  sh    '))7c#hab 
	&AFACH}3s8|q3s8|c#hB
SX%A
	& ABx'))ab 
	&AFACH}*AE1q5948DD3s8|q3s8|c#hB
SX%A
	& ABxN#%%r   N)r   zIterable[tuple[str, str]]returnNone)r   zNMutableMapping[int, str | MutableMapping[int, str | MutableMapping[int, str]]]r   rh   r   rh   r   r   )r   bool)r   ztMutableMapping[int, str | MutableMapping[int, str | MutableMapping[int, str]]] | typing.Literal['mouse', 'sgrmouse']r   Sequence[int]r   r   )r   r   r   r   r   z6tuple[tuple[str, int, int, int], Sequence[int]] | None)r   r   r   r   r   z1tuple[tuple[str, int, int], Sequence[int]] | None)r   r   r   	__slots__r   r   r   r   r   r   r   r   r   r   r   r      s    I+\  	
 
&?I2I I I4)E)E )E 
@	)EV=N=N =N 
@	=N~11 1 
;	1r   r   i   i   i   r   r   r   	backspacer   tabenterr{      i  r#   i  r"   i  r%   i  r$   i  r)   i  i	  r.   i
  r/   i  r0   i  r1   i  r2   i  r3   i  r4   i  r5   i  r6   i  r7   i  r8   i  r9   i  zshift f1i  zshift f2i  zshift f3i  zshift f4i  zshift f5i  zshift f6i  zshift f7i  zshift f8i  zshift f9i  z	shift f10z	shift f11z	shift f12r+   r*   r-   r,   r&   r'   )	i  i   iJ  iK  iR  iS  iW  i^  ih  rT   i_  if  c                   | d   }d|cxk  rdk  rn nt        |      }|g| dd fS |t        v rt        |   g| dd fS d|cxk  rdk  rn ndt        d      |z   dz
  d	g| dd fS d|cxk  rdk  rn ndt        d
      |z   dz
  d	g| dd fS t        j                         }|dk(  ro|dk  rjt        |j                  dd      dd      rM| dd s|r
t               | dd r7| d   dk  r/t        |      t        | d         z   }t        |dd      r|g| dd fS |dk(  rd|cxk  rdk  rn n|dz  dk(  rd}n#|dz  dk(  rd}n|dz  dk(  rd}nd|ddg| dd fS t        d|dz         D ]L  }t        |       |k  r|r
t               d|ddg| dd fc S | |   }|dkD  s	|dz  dk7  s?d|ddg| dd fc S  t        | d|dz          }		 |	j                  d      g| |dz   d fS d|cxk  rdk  rn nt        |      }|g| dd fS |dk7  rd|ddg| dd fS t        j                  | dd |      x}

|
\  }
}|
g|fS | dd rqt        | dd |      \  }}t         j"                  j%                  |d         rdg||fS |d   dk(  s|d   j'                  d      dk\  rdg||fS d|d    g|dd |fS dg| dd fS # t        $ r d|ddg| dd fcY S w xY w)a)  
    codes -- list of key codes
    more_available -- if True then raise MoreInputRequired when in the
        middle of a character sequence (escape/utf8/wide) and caller
        will attempt to send more key codes on the next call.

    returns (list of input, list of remaining key codes).
    r   r   ~   r   N   r   arg   Awider   littler   utf8r               rv   <r   >   zutf-8escr   )r   _keyconvr   r   get_byte_encodingwithin_double_byteto_bytesr   r   r   bytesdecodeUnicodeDecodeError
input_trier   process_keyqueueurwidutilis_mouse_eventfind)codesr   coder_   emdb	need_morer   r   r   r   remaining_codesruns                r   r   r     s    8D	TS$iueABixqr**4}"}C4!+A./0%);;	D~2~C4!+A./0%);;		#	#	%B 	f3JMM!X&
 QRy^#%%9qCTSq]*B!"a+tU12Y&	V|d(S($;$ID[D ID[D IQxqM?E!"I--q)a-( 		2A5zQ!+--D81ab	11aA3w!d(d*D81ab	11		2 %)a-()	.HHW%&i!mo(>>> TC$iueABirzD81ab	))..qrN;;H"(x((QRy/ab	>J_::$$SV,=C=/11q6U?c!fkk'2a7=C=/11Ax +3qr7+_<<7E!"I- " 	.QxqM?E!"I--	.s   	J9 9KKr(   =r   z[?1049hz[?1049lz[?2004hz[?2004lz[?1004hz[?1004lz[5nz[6nz[4hz[4lc                    t        | t              st        |       t        |t              st        |      t        d|dz   dd| dz   ddz   S )Nr   r   r   r   H)r   r   r   ESC)r   r   s     r   set_cursor_positionr  Z  sP    alal1QU1IQq1uQiq)))r   c                *    | dk  ryt         d| ddz   S )Nr   r   r   r   Cr  r   s    r   move_cursor_rightr  c  !    1u1QqEr   c                *    | dk  ryt         d| ddz   S )Nr   r   r   r   r   r  r  s    r   move_cursor_upr  i  r  r   c                *    | dk  ryt         d| ddz   S )Nr   r   r   r   Br  r  s    r   move_cursor_downr  o  r  r   z[?25lz[?25hz[?1000hz[?1002hz[?1006hz[?1006lz[?1002lz[?1000lz)0z[K)r   rh   r   rh   )r  r   r   r   r   ztuple[list[str], Sequence[int]])r   r   r   r   r   rh   )r   r   r   rh   )I__doc__
__future__r   resystypingcollections.abcr   r   r   r   TYPE_CHECKINGr   
urwid.utilplatform
IS_WINDOWSr   SOSIIBMPC_ON	IBMPC_OFFDEC_TAGDEC_SPECIAL_CHARSALT_DEC_SPECIAL_CHARSDEC_SPECIAL_CHARMAPr   r   reprrZ   rg   altr   compileSAFE_ASCII_DEC_SPECIAL_REDEC_SPECIAL_RE	Exceptionr   r!   r   input_sequencesr   r   r   MOUSE_MULTIPLE_CLICK_FLAGr   r   r   r   r  CURSOR_HOMECURSOR_HOME_COLAPP_KEYPAD_MODENUM_KEYPAD_MODESWITCH_TO_ALTERNATE_BUFFERRESTORE_NORMAL_BUFFERENABLE_BRACKETED_PASTE_MODEDISABLE_BRACKETED_PASTE_MODEENABLE_FOCUS_REPORTINGDISABLE_FOCUS_REPORTINGREPORT_STATUSREPORT_CURSOR_POSITION	INSERT_ON
INSERT_OFFr  r  r  r  HIDE_CURSORSHOW_CURSORMOUSE_TRACKING_ONMOUSE_TRACKING_OFFDESIGNATE_G1_SPECIALERASE_IN_LINE_RIGHTr   r   r   <module>rH     s  * # 	 
  4 	( \\W$
00 	
q :  S!677
t.0EFG
HH#%:; 0FAs"$s(R-A0 'BJJ/@.A'EF a 12!45		 	]
kkk k 	k
 k k k k k k k k k k k  !k" #k$ %k& 'k( )k* +k, -k. /k0 1k2 3k4 5k6 7k8 9k: ;k< =k> ?k@ AkB CkD EkF GkH IkJ KkL MkN OkP QkR SkT UkV WkX YkZ [k\ ]k^ _k` akb ckd ekf gkh ikj kkl mkn okp qkr skt ukv wkx ykz {k| #D*= >}kF #$7 >GkP 9eBi8QkR #Sk` #akn  okL MkP QkT Uk\X Xz  
 ! 
    
 /*
--{- u- 	-
 - - - - - - - - - -  !-" #-$ %-& '-( )-* +-, --. /-0 1-2 3-4 5-6 7-8 9-: ;-< =-> ?-@ A-B C-D E-F G-H 
								Y-^ HSMHSMUx RjE)E) #uG_ %w !$Wo "%g 5  E/ 
 %s5 e3K	uC[
* UmUme73%wse7; uGC5uG< bz Rj r   