Ë
    æØjj	  ã                  óJ   — d dl mZ d dlmZ d dlZ ed«      dd„«       Zdd„Zy)	é    )Úannotations)Ú	lru_cacheNéd   c                ó   — t        | «      }d|cxk  rdk  ry |dk(  s(d|cxk  rdk  sn d|cxk  rdk  sn d	|cxk  rd
k  ry nyt        j                  | «      }|dk(  ry|dv ryt        j                  | «      dv ryy)z¯Determine how many columns are needed to display a character in a terminal.

    Returns -1 if the character is not printable.
    Returns 0, 1 or 2 for other characters.
    é    é   é   r   i   i   i(   i.   i`   ic   ÚCcéÿÿÿÿ)ÚMeÚMn)ÚFÚWé   )ÚordÚunicodedataÚcategoryÚeast_asian_width)ÚcÚor   s      úU/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/_pytest/_io/wcwidth.pyÚwcwidthr      s¤   € ô 	ˆA‹€Að ˆqÔ�5ÒØð ð
 	
ˆVŠØ�QÔ ˜&Ô Ø�QÔ ˜&Ô Ø�QÔ ˜&Ò àñ !àä×#Ñ# AÓ&€Hð �4ÒØð �<ÑØô ×#Ñ# AÓ&¨*Ñ4Øàó    c                ón   — d}t        j                  d| «      D ]  }t        |«      }|dk  r y||z  }Œ |S )zŽDetermine how many columns are needed to display a string in a terminal.

    Returns -1 if the string contains non-printable characters.
    r   ÚNFCr   )r   Ú	normalizer   )ÚsÚwidthr   Úwcs       r   Úwcswidthr    .   sH   € ð
 €EÜ×"Ñ" 5¨!Ó,ò ˆÜ�Q‹ZˆØ�Š6ÙØ�‰‰ð	ð
 €Lr   )r   ÚstrÚreturnÚint)r   r!   r"   r#   )Ú
__future__r   Ú	functoolsr   r   r   r    © r   r   ú<module>r'      s,   ðÝ "å Û ñ ˆ3ƒò#ó ð#ôLr   