§
    ‘Mºf(  ã                   ó   — d dl mZ d dlZddlmZmZmZ  ej        d¦  «        Z ej         ed¦  «        ¦  «        Z	da
g d¢ad„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zedk    r e¦   «          dS dS )é    )Úprint_functionNé   )ÚBÚbytesÚord2z^[ -~]*$)&)é~   r   )éŸ   r   )i¯  r   )iÆ  r   )iÇ  r   )i×  r   )iÝ  r   )io  r   )i‚  r   )i‰  r   )iû  r   )i_  é   )i+  r   )ia  r   )i±   r   )iê   r   )i(#  r   )i*#  r
   )i+  r   )i>0  r
   )i?0  r   )i–0  r
   )iš0  r   )iµM  r
   )iÿM  r   )i£×  r
   )iÿø  r   )ijú  r
   )iþ  r   )i#þ  r   )ikþ  r
   )iÿþ  r   )i`ÿ  r
   )iÜÿ  r   )iæÿ  r
   )iÿ× r   )iýÿ r
   )iýÿ r   c                 óP   — | dk    s| dk    rdS t           D ]\  }}| |k    r|c S ŒdS )z5Return the screen column width for unicode ordinal o.é   é   r   r   )Úwidths)ÚoÚnumÚwids      úR/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/screen/old_str_util.pyÚ	get_widthr   R   sI   € ð 	ˆC‚x€x�1˜’8�8ØˆqÝð ð ‰ˆˆSØ�Š8ˆ8ØˆJˆJˆJð àˆ1ó    c                 óÀ  — t          | t          ¦  «        s
J | ¦   «         ‚t          | |         ¦  «        }|dz  s||dz   fS t          d¦  «        |dz   f}t	          | ¦  «        |z
  }|dk     r|S |dz  dk    r@t          | |dz            ¦  «        }|dz  dk    r|S |dz  dz  |d	z  z  }|dk     r|S ||dz   fS |d
k     r|S |dz  dk    rlt          | |dz            ¦  «        }|dz  dk    r|S t          | |dz            ¦  «        }|dz  dk    r|S |dz  dz  |d	z  dz  z  |d	z  z  }|dk     r|S ||d
z   fS |dk     r|S |dz  dk    r˜t          | |dz            ¦  «        }|dz  dk    r|S t          | |dz            ¦  «        }|dz  dk    r|S t          | |dz            ¦  «        }|dz  dk    r|S |dz  dz  |d	z  dz  z  |d	z  dz  z  |d	z  z  }|dk     r|S ||dz   fS |S )zH
    Return (ordinal at pos, next position) for UTF-8 encoded text.
    é€   r   ú?r
   éà   éÀ   é   é   é?   é   éð   r   é   i   é   éø   é   é   i   )Ú
isinstancer   r   ÚordÚlen)	ÚtextÚposÚb1ÚerrorÚltÚb2r   Úb3Úb4s	            r   Ú
decode_oner/   ]   s„  € õ �d�EÑ"Ô"Ð(Ð( DÑ(Ô(Ð(Ý	ˆd�3Œi‰Œ€BØ�‰9ð Ø�3˜‘7ˆ{ÐÝ�‰HŒH�c˜A‘gÐ€EÝ	ˆT‰Œ�S‰€BØ	ˆA‚v€vØˆØ	ˆD�y�DÒÐÝ�$�s˜Q‘w”-Ñ Ô ˆØ�‰9˜ÒÐØˆLØ�4‰i˜AÑ " t¡)Ñ,ˆØˆtŠ8ˆ8ØˆLØ�#˜‘'ˆzÐØ	ˆA‚v€vØˆØ	ˆD�y�DÒÐÝ�$�s˜Q‘w”-Ñ Ô ˆØ�‰9˜ÒÐØˆLÝ�$�s˜Q‘w”-Ñ Ô ˆØ�‰9˜ÒÐØˆLØ�4‰i˜BÑ B¨¡I°!Ñ#3Ñ4¸¸T¹	ÑBˆØˆuŠ9ˆ9ØˆLØ�#˜‘'ˆzÐØ	ˆA‚v€vØˆØ	ˆD�y�DÒÐÝ�$�s˜Q‘w”-Ñ Ô ˆØ�‰9˜ÒÐØˆLÝ�$�s˜Q‘w”-Ñ Ô ˆØ�‰9˜ÒÐØˆLÝ�$�s˜Q‘w”-Ñ Ô ˆØ�‰9˜ÒÐØˆLØ�4‰i˜BÑ B¨¡I°"Ñ#4Ñ5¸"¸t¹)ÈÑ9IÑJÈbÐSWÉiÑXˆØˆwŠ;ˆ;ØˆLØ�#˜‘'ˆzÐØ€Lr   c                 ó6   — t          | |         ¦  «        |dz   fS )z7
    decode_one implementation for unicode strings
    r   )r%   )r'   Úis     r   Údecode_one_unir2   ‘   s   € õ ˆt�AŒw‰<Œ<˜˜Q™ÐÐr   c                 ó  — t          | t          ¦  «        s
J | ¦   «         ‚t          d¦  «        |dz
  f}|}|dk    rNt          | |         ¦  «        dz  dk    rt	          | |¦  «        \  }}||dz
  fS |dz  }||dz
  k    r|S |dk    °LdS dS )z‹
    Return (ordinal at pos, next position) for UTF-8 encoded text.
    pos is assumed to be on the trailing byte of a utf-8 sequence.
    r   r   r   r   r   r    N)r$   r   r%   r   r/   )r'   r(   r*   Úpr   Únexts         r   Údecode_one_rightr6   ˜   s¬   € õ
 �d�EÑ"Ô"Ð(Ð( DÑ(Ô(Ð(Ý�‰HŒH�c˜A‘gÐ€EØ€AØ
ˆqŠ&ˆ&Ý��Q”‰=Œ=˜4Ñ 4Ò'Ð'Ý   qÑ)Ô)‰GˆAˆtØ�a˜!‘e�8ˆOØ	ˆQ‰ˆØ��A‘Š:ˆ:ØˆLð ˆqŠ&ˆ&ˆ&ˆ&ˆ&ˆ&r   c                 ó   — | dv sJ ‚| a d S )N)Úutf8ÚnarrowÚwide©Ú_byte_encoding)Úencs    r   Úset_byte_encodingr>   ©   s   € ØÐ,Ð,Ð,Ð,Ð,à€N€N€Nr   c                  ó   — t           S )Nr;   © r   r   Úget_byte_encodingrA   ¯   s   € ÝÐr   c                 óF  — ||k    sJ t          ||f¦  «        ¦   «         ‚t          | t          ¦  «        o
t          dk    }t          | t          ¦  «         }|s|r\t          t
          g|         }|}d}d}	||k     r8 || |¦  «        \  }
}	t          |
¦  «        }||z   |k    r||fS |	}||z  }||k     °8||fS t          | ¦  «        t          k    sJ t          | ¦  «        ¦   «         ‚||z   }||k    r|||z
  fS t          dk    rt          | ||¦  «        dk    r|dz  }|||z
  fS )a9  
    Calculate the closest position to the screen column pref_col in text
    where start_offs is the offset into text assumed to be screen column 0
    and end_offs is the end of the range to search.

    text may be unicode or a byte string in the target _byte_encoding

    Returns (position, actual_col).
    r8   r   r   r:   r
   )	Úreprr$   r   r<   r/   r2   r   ÚtypeÚwithin_double_byte)r'   Ú
start_offsÚend_offsÚpref_colÚutfsÚunisÚdecoder1   ÚscÚnr   Úws               r   Úcalc_text_posrO   ³   sg  € ð ˜Ò!Ð!Ð!¥4¨°XÐ(>Ñ#?Ô#?Ñ!Ô!Ð!Ý�d�EÑ"Ô"Ð?¥~¸Ò'?€DÝ˜$¥Ñ&Ô&Ð&€DØð ˆtð Ý�nÐ-¨dÔ3ˆØˆØˆØˆØ�(ŠlˆlØ�6˜$ ‘?”?‰DˆAˆqÝ˜!‘”ˆAØ�2‰v˜Ò Ð Ø˜"�u�ØˆAØ�!‰GˆBð �(Šlˆlð �"ˆuˆÝ�‰:Œ:�ÒÐÐ¥ T¡
¤
ÑÔÐà�XÑ€AØˆH‚}€}Ø˜ JÑ.Ð.Ð.Ý˜ÒÐÝ˜d J°Ñ2Ô2°aÒ7Ð7Ø�‰FˆAØˆa�*‰nÐÐr   c                 ó  — t          | ¦  «        }|dk    s|dk    s||k    r|}||k    sJ t          ||f¦  «        ¦   «         ‚t          | t          ¦  «        o
t          dk    }t          | t          ¦  «         }|rt
                               | ¦  «        r|rgt                               | ¦  «        sMt          t          g|         }|}d}d}	||k     r+ || |¦  «        \  }
}	t          |
¦  «        }|	}||z  }||k     °+|S ||z
  S )am  
    Return the screen column width of text between start_offs and end_offs.

    text may be unicode or a byte string in the target _byte_encoding

    Some characters are wide (take two columns) and others affect the
    previous character (take zero columns).  Use the widths table above
    to calculate the screen column width of text[start_offs:end_offs]
    r   éÿÿÿÿr8   r   )r&   rC   r$   r   r<   ÚSAFE_ASCII_REÚmatchÚSAFE_ASCII_BYTES_REr/   r2   r   )r'   rF   rG   r+   rI   rJ   rK   r1   rL   rM   r   rN   s               r   Ú
calc_widthrU   Ø   s)  € õ 
ˆT‰Œ€Bà�AŠˆ˜8 rš>˜>¨x¸"ª}¨}Øˆà˜Ò!Ð!Ð!¥4¨°XÐ(>Ñ#?Ô#?Ñ!Ô!Ð!å�d�EÑ"Ô"Ð?¥~¸Ò'?€DÝ˜$¥Ñ&Ô&Ð&€DØð 
•]×(Ò(¨Ñ.Ô.ð 
°Dð 
ÕAT×AZÒAZÐ[_ÑA`ÔA`ð 
Ý�nÐ-¨dÔ3ˆØˆØˆØˆØ�(ŠlˆlØ�6˜$ ‘?”?‰DˆAˆqÝ˜!‘”ˆAØˆAØ�!‰GˆBð	 �(Šlˆlð
 ˆ	à�jÑ Ð r   c                 óP  — t          | t          ¦  «        r(t          | |         ¦  «        }t          |¦  «        dk    S t          | t          ¦  «        sJ ‚t
          dk    r&t          | |¦  «        \  }}t          |¦  «        dk    S t
          dk    rt          | ||¦  «        dk    S dS )zƒ
    Test if the character at offs within text is wide.

    text may be unicode or a byte string in the target _byte_encoding
    r
   r8   r:   r   F)r$   Úunicoder%   r   r   r<   r/   rE   )r'   Úoffsr   rM   s       r   Úis_wide_charrY   û   s¢   € õ �$�Ñ Ô ð !Ý��T”
‰OŒOˆÝ˜‰|Œ|˜qÒ Ð Ý�d�EÑ"Ô"Ð"Ð"Ð"Ý˜ÒÐÝ˜$ Ñ%Ô%‰ˆˆ1Ý˜‰|Œ|˜qÒ Ð Ý˜ÒÐÝ! $¨¨dÑ3Ô3°qÒ8Ð8Øˆ5r   c                 ól  — ||k     sJ ‚t          | t          ¦  «        r|dz
  S t          | t          ¦  «        sJ ‚t          dk    rD|dz
  }t	          | |         ¦  «        dz  dk    r!|dz  }t	          | |         ¦  «        dz  dk    °!|S t          dk    rt          | ||dz
  ¦  «        dk    r|dz
  S |dz
  S )z?
    Return the position of the character before end_offs.
    r   r8   r   r   r:   r
   ©r$   rW   r   r<   r   rE   ©r'   rF   rG   r   s       r   Úmove_prev_charr]     sÛ   € ð ˜Ò Ð Ð Ð Ý�$�Ñ Ô ð Ø˜!‰|ÐÝ�d�EÑ"Ô"Ð"Ð"Ð"Ý˜ÒÐØ�q‰LˆÝ�4˜”7‰mŒm˜dÑ" dÒ*Ð*Ø�‰FˆAõ �4˜”7‰mŒm˜dÑ" dÒ*Ð*àˆÝ˜ÒÐÕ$6°t¸ZÈÐTUÉÑ$VÔ$VÐZ[Ò$[Ð$[Ø˜!‰|ÐØ�a‰<Ðr   c                 ó~  — ||k     sJ ‚t          | t          ¦  «        r|dz   S t          | t          ¦  «        sJ ‚t          dk    rP|dz   }||k     rCt	          | |         ¦  «        dz  dk    r'|dz  }||k     rt	          | |         ¦  «        dz  dk    °'|S t          dk    rt          | ||¦  «        dk    r|dz   S |dz   S )z@
    Return the position of the character after start_offs.
    r   r8   r   r   r:   r
   r[   r\   s       r   Úmove_next_charr_     sæ   € ð ˜Ò Ð Ð Ð Ý�$�Ñ Ô ð Ø˜A‰~ÐÝ�d�EÑ"Ô"Ð"Ð"Ð"Ý˜ÒÐØ˜‰NˆØ�(Šlˆl�t D¨¤G™}œ}¨tÑ3°tÒ;Ð;Ø�‰FˆAð �(Šlˆl�t D¨¤G™}œ}¨tÑ3°tÒ;Ð;àˆÝ˜ÒÐÕ$6°t¸ZÈÑ$TÔ$TÐXYÒ$YÐ$YØ˜A‰~ÐØ˜‰>Ðr   c                 ó‚  — t          | t          ¦  «        sJ ‚t          | |         ¦  «        }d|cxk    rdk     rCn n@||k    rdS t          | |dz
           ¦  «        dk    rt          | ||dz
  ¦  «        dk    rdS dS |dk     rdS |dz
  }||k    r%t          | |         ¦  «        dk     rn|dz  }||k    °%||z
  dz  rdS dS )aj  Return whether pos is within a double-byte encoded character.

    text -- byte string in question
    line_start -- offset of beginning of line (< pos)
    pos -- offset in question

    Return values:
    0 -- not within dbe char, or double_byte_encoding == False
    1 -- pos is on the 1st half of a dbe char
    2 -- pos is on the 2nd half of a dbe char
    é@   é   r   r   é�   r
   r   )r$   r   r   rE   )r'   Ú
line_startr(   Úvr1   s        r   rE   rE   1  s  € õ �d�EÑ"Ô"Ð"Ð"Ð"ÝˆT�#ŒY‰Œ€AàˆqÐÐÒÐ�4ÒÐÐÐÐà�*ÒÐØ�1å��S˜1‘W”ÑÔ $Ò&Ð&Ý! $¨
°C¸!±GÑ<Ô<ÀÒAÐAØ�qØˆqàˆ4‚x€xØˆqàˆa‰€AØ
ˆzŠ/ˆ/Ý��Q”‰=Œ=˜4ÒÐØØ	ˆQ‰ˆð ˆzŠ/ˆ/ð
 	ˆa‰�1�}ð ØˆqØˆ1r   c                  ó®  — dd l } g }d }| j                             ¦   «         D ]ô}|d d…         dk    rŒ|                     ¦   «         }|                     dd¦  «        \  }}|                     dd¦  «        \  }}|                     dd¦  «        d         }d|v r|                     d¦  «        d         }t          |d	¦  «        }|d
v rd}	n	|dv rd}	nd}	|€|                     d|	f¦  «         |	}||	k    r||	f|d<   ŒÛ|                     ||	f¦  «         |	}Œõt          d¦  «         |dd …         D ]}
t          d|
›d�¦  «         Œt          d¦  «         d S )Nr   r   ú#ú;z # ú ú.z..é   )Ú	COMBININGÚMODIFIERz	<control>)ÚWÚFr
   rQ   z
widths = [ú	ú,ú])ÚsysÚstdinÚ	readlinesÚstripÚsplitÚintÚappendÚprint)rs   ÚoutÚlastÚlineÚhexÚrestr   Úword1r   Úlr   s              r   Úprocess_east_asian_widthr‚   Z  s�  € Ø€J€J€JØ
€CØ€DØ”	×#Ò#Ñ%Ô%ð ð ˆØ���Œ8�sŠ?ˆ?ØØ�zŠz‰|Œ|ˆØ—J’J˜s AÑ&Ô&‰	ˆˆTØ—J’J˜u aÑ(Ô(‰	ˆˆTØ—
’
˜3 Ñ"Ô" 1Ô%ˆà�#ˆ:ˆ:Ø—)’)˜D‘/”/ !Ô$ˆCÝ�#�r‰lŒlˆàÐ:Ð:Ð:ØˆAˆAØ�JÐÐØˆAˆAàˆAàˆ<Ø�JŠJ˜˜1�vÑÔÐØˆDà�1Š9ˆ9Ø˜A�hˆC�‰GˆGà�JŠJ˜˜Q�xÑ Ô Ð ØˆDˆDå	ˆ,ÑÔÐØ���ŒWð ð ˆÝˆ˜˜˜ˆnÑÔÐÐÝ	ˆ#�J„J€J€J€Jr   Ú__main__)r   r   )Ú
__future__r   ÚreÚcompatr   r   r   ÚcompilerR   rT   r<   r   r   r/   r2   r6   r>   rA   rO   rU   rY   r]   r_   rE   r‚   Ú__name__r@   r   r   ú<module>r‰      s{  ðð, &Ð %Ð %Ð %Ð %Ð %à 	€	€	€	à "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "ð �”
˜;Ñ'Ô'€Ø �b”j   :¡¤Ñ/Ô/Ð à€ð'
ð '
ð '
€ðXð ð ð1ð 1ð 1ðhð ð ðð ð ð"ð ð ðð ð ð"ð "ð "ðJ !ð  !ð  !ð  !ðFð ð ð$ð ð ð$ð ð ð$$ð $ð $ðR$ð $ð $ðN ˆzÒÐØÐÑÔÐÐÐð Ðr   