Ë
    ^ãj  ã                  ó6  — d Z ddlmZ ddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZ ddl m!Z! ddl"m#Z#m$Z$ e
e
e%e%f   df   Z&dZ' e( e)ed   d   ed   d   dz   «      «      Z* e(d„ g e¢e¢­D «       «      Z+ e!«       d   Z,ee,   Z- e(d„ eD «       «      e*z  Z.dZ/ee,   Z0ee,   Z1ee,   Z2d d„Z3d!d„Z4 G d„ de«      Z5 e5dddddd«      Z6 ed¬«      d"d„«       Z7 ed¬«      d#d$d„«       Z8d%d„Z9y)&zOShared data tables and constants for wcwidth.py, _wcwidth.py, and _wcswidth.py.é    )ÚannotationsN)Úindex)Ú	lru_cache)ÚTupleÚ
NamedTupleé   )ÚCATEGORY_MC)ÚWIDE_EASTASIAN)Ú
ZERO_WIDTH)Ú
ISC_VIRAMAÚEXTENDED_PICTOGRAPHICÚISC_INVISIBLE_STACKERÚGRAPHEME_REGIONAL_INDICATOR)ÚAMBIGUOUS_EASTASIAN)ÚSFZ_OVERRIDESÚSRI_OVERRIDESÚVS15_OVERRIDESÚVS16_OVERRIDESÚWIDE_OVERRIDESÚNARROW_OVERRIDES)Úlist_versions)ÚALIASESÚKNOWN_TERMINALS.)Ú_REGIONAL_INDICATOR_SETÚ_ISC_VIRAMA_SETÚ_LATEST_VERSIONÚ_CATEGORY_MC_TABLEÚ_EMOJI_ZWJ_SETÚ_FITZPATRICK_RANGEÚ_ZERO_WIDTH_TABLEÚ_WIDE_EASTASIAN_TABLEÚ_AMBIGUOUS_TABLEÚresolve_terminalÚget_term_overridesÚlist_term_programsc              #  óN   K  — | ]  \  }}t        ||d z   «      D ]  }|–— Œ Œ y­w©r   N©Úrange©Ú.0ÚloÚhiÚcps       úT/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/wcwidth/_constants.pyú	<genexpr>r0   2   s:   è ø€ ò Ùˆ2ˆrÜ�B˜˜Q™Óòà
ô ðØñùó   ‚#%éÿÿÿÿc              #  óN   K  — | ]  \  }}t        ||d z   «      D ]  }|–— Œ Œ y­wr'   r(   r*   s       r/   r0   r0   9   s6   è ø€ ò Ùˆ2ˆr´U¸2¸rÀA¹vÓ5FòØ/1„BðØñùr1   )iûó iÿó c                 ó\   — t        t        t        t        j                  «       z  «      «      S )z²
    Return all recognized values for the ``term_program`` argument.

    Includes canonical terminal names and their TERM/TERM_PROGRAM aliases.

    .. versionadded:: 0.8.0
    )ÚtupleÚsortedr   r   Úkeys© ó    r/   r%   r%   C   s   € ô ”œ¬'¯,©,«.Ñ8Ó9Ó:Ð:r9   c                 ó  — g }| D ]  }|j                  |«       Œ |sy|j                  d„ ¬«       |d   g}|dd D ]=  \  }}|d   \  }}||k  r|d   d   t        ||«      f|d<   Œ+|j                  ||f«       Œ? t	        |«      S )zJMerge multiple sorted range tuples into one sorted, non-overlapping tuple.r8   c                ó   — | d   S )Nr   r8   )Úrs    r/   ú<lambda>z_merge_ranges.<locals>.<lambda>U   s
   €  ! A¡$€ r9   )Úkeyr   r   Nr2   )ÚextendÚsortÚmaxÚappendr5   )ÚtuplesÚ
all_rangesÚtÚmergedr,   r-   Ú_Úprev_his           r/   Ú_merge_rangesrI   N   s©   € à(*€JØò ˆØ×Ñ˜!ÕðáØØ‡O�O™€OÔ'Ø˜‰mˆ_€FØ˜Q˜R�.ò $‰ˆˆBØ˜B‘Z‰
ˆˆ7Ø�Š=Ø  ™* Q™-¬¨W°bÓ)9Ð:ˆF�2ŠJà�M‰M˜2˜r˜(Õ#ð$ô �‹=Ðr9   c                  óN   — e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded<   y	)
ÚTerminalOverridesz7Pre-merged override range tuples for a single terminal.Ú_RangeTupleÚnarrowerÚvs16_narrowerÚ
vs15_widerÚzeroerÚnarrow_widerÚnarrow_zeroerN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r8   r9   r/   rK   rK   `   s)   … ÙAàÓØÓØÓØÓØÓØÔr9   rK   r8   é    )Úmaxsizec                óZ  — t        t        j                  | i «      j                  dd«      t        j                  | i «      j                  dd«      t	        j                  | i «      j                  dd«      «      }t        j                  | i «      j                  dd«      }t        j                  | i «      j                  dd«      }t        t        j                  | i «      j                  dd«      t        j                  | i «      j                  dd«      t	        j                  | i «      j                  dd«      «      }t        j                  | i «      j                  dd«      }t        j                  | i «      j                  dd«      }|s|s|s|s
|s|st        S t        ||||||«      S )zNReturn a TerminalOverrides, with all empty tuples when there are no overrides.rM   r8   ÚwiderrP   rR   )
rI   r   Úgetr   r   r   r   r   Ú_EMPTY_OVERRIDESrK   )Úterm_canonicalrM   rN   rO   rP   rQ   rR   s          r/   r$   r$   n   sw  € ô Ü×Ñ˜>¨2Ó.×2Ñ2°:¸rÓBÜ×Ñ˜.¨"Ó-×1Ñ1°*¸bÓAÜ×Ñ˜.¨"Ó-×1Ñ1°*¸bÓAó€Hô
 #×&Ñ& ~°rÓ:×>Ñ>¸zÈ2ÓN€MÜ×#Ñ# N°BÓ7×;Ñ;¸GÀRÓH€JÜÜ×Ñ˜>¨2Ó.×2Ñ2°8¸RÓ@Ü×Ñ˜.¨"Ó-×1Ñ1°(¸BÓ?Ü×Ñ˜.¨"Ó-×1Ñ1°(¸BÓ?ó€Fô
 $×'Ñ'¨¸Ó;×?Ñ?ÀÈÓL€LÜ$×(Ñ(¨¸Ó<×@Ñ@ÀÐRTÓU€Mñ ™©±vÙ™}ÜÐÜ˜X }°jÀ&Ø)¨=ó:ð :r9   c                ó  — | du ry| du rBt         j                  j                  dd«      xs  t         j                  j                  dd«      } | sy| j                  «       j	                  «       }t        j                  ||«      }|t        vry|S )aÖ  
    Resolve a terminal identifier to its canonical name.

    :param term_program: Terminal identifier.  ``False`` (default) disables override lookup.
        ``True`` reads the ``TERM_PROGRAM`` environment variable, falling back to ``TERM``.
        A string value is used directly (canonical name, alias, XTVERSION/ENQ result, etc.).
    :returns: Canonical terminal name if recognized, ``None`` otherwise.

    The auto-detection path (``term_program=True``) reads environment variables at call time
    and caches the result.  The environment is assumed immutable for the process lifetime;
    callers that change ``TERM`` or ``TERM_PROGRAM`` mid-process must call
    :func:`resolve_terminal.cache_clear` afterward.
    FNTÚTERM_PROGRAMÚ ÚTERM)ÚosÚenvironr\   ÚstripÚlowerr   r   )Úterm_programr>   Ú	canonicals      r/   r#   r#   Œ   s~   € ð �uÑØØ�tÑÜ—z‘z—~‘~ n°bÓ9ÒW¼R¿Z¹Z¿^¹^ÈFÐTVÓ=WˆÙØØ
×
Ñ
Ó
×
$Ñ
$Ó
&€CÜ—‘˜C Ó%€IØœÑ'ØØÐr9   c                ó4   — t        | «      }|dk  ry|dkD  ry|S )z"Clamp *ambiguous_width* to 1 or 2.r   é   )Ú_index)Úambiguous_widthÚvalues     r/   Ú_clamp_ambiguous_widthrn   ¨   s'   € ô �?Ó#€EØˆq‚yØØˆq‚yØØ€Lr9   )Úreturnztuple[str, ...])rC   rL   ro   rL   )r^   Ústrro   rK   )F)rg   z
bool | strro   z
str | None)rl   Úintro   rq   ):rV   Ú
__future__r   rc   Úoperatorr   rk   Ú	functoolsr   Útypingr   r   Útable_mcr	   Ú
table_wider
   Ú
table_zeror   Útable_graphemer   r   r   r   Útable_ambiguousr   Útable_overridesr   r   r   r   r   r   Úunicode_versionsr   Útable_term_programsr   r   rq   rL   Ú__all__Ú	frozensetr)   r   r   r   r   r   r   r    r!   r"   r%   rI   rK   r]   r$   r#   rn   r8   r9   r/   ú<module>r€      s  ðÙ UÝ "ó 
Ý $Ý ç $õ "Ý &Ý "÷:ó :õ 1÷0÷ 0õ ,ß 9à�E˜#˜s˜(‘O SÐ(Ñ)€ð€ñ $Ù	Ð
% aÑ
(¨Ñ
+Ð-HÈÑ-KÈAÑ-NÐQRÑ-RÓSóÐ ñ ñ Ø:�zÐ:Ð$9Ñ:ôó €ñ
  “/ "Ñ%€Ø  Ñ1Ð Ùñ Ø*ôó àñ€ð (Ð à˜Ñ/Ð Ø& Ñ7Ð Ø& Ñ7Ð ó;óô$˜
ô ñ % R¨¨R°°R¸Ó<Ð ñ �2Ôò:ó ð:ñ: �2Ôóó ðô6	r9   