ó
    Lƒwj÷  ã                   óÂ   • S SK r S SKrS SKJr  SSKJr  SSKJr  S rS r	S r
S	 r\R                  4S
\S\4S jjr\R                  4S\S
\SS4S jjr " S S\5      rg)é    N)ÚRawConfigParseré   )Úpy39)ÚSetuptoolsDeprecationWarningc                 óô   • [        U [        5      (       a  [        R                  " SU 5      $  U R	                  S5      n [        R                  " SU 5      n U R                  S5      n U $ ! [         a     U $ f = f)NÚNFDúutf-8)Ú
isinstanceÚstrÚunicodedataÚ	normalizeÚdecodeÚencodeÚUnicodeError)Úpaths    Ú¦C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\setuptools/unicode_utils.pyÚ	decomposer   
   su   € Ü�$œ×ÑÜ×$Ò$ U¨DÓ1Ð1ðØ�{‰{˜7Ó#ˆÜ×$Ò$ U¨DÓ1ˆØ�{‰{˜7Ó#ˆð €Køô ó ØØ€Kðús   ®9A) Á)
A7Á6A7c                 ó^   • [        U [        5      (       a  [        R                  " SU 5      $ U $ )aï  
Return *text* in a canonical Unicode form (NFC) so that names which are
visually identical but encoded differently compare equal.

macOS APFS/HFS+ store file names in decomposed form (NFD), while patterns
in ``MANIFEST.in`` are typically authored composed (NFC). The two denote
the same file but differ byte-for-byte, so matching them directly lets an
exclusion silently fail. Normalizing both the walked path and the pattern
to a single form before matching avoids that (GHSA-h35f-9h28-mq5c).
ÚNFC)r
   r   r   r   )Útexts    r   r   r      s(   € ô 2<¸DÄ#×1FÑ1FŒ;× Ò  ¨Ó-ÐPÈDÐPó    c                 óÎ   • [        U [        5      (       a  U $ [        R                  " 5       =(       d    SnUS4nU H  n U R	                  U5      s  $    g! [
         a     M'  f = f)zQ
Ensure that the given path is decoded,
``None`` when no expected encoding works
r	   N)r
   r   ÚsysÚgetfilesystemencodingr   ÚUnicodeDecodeError)r   Úfs_encÚ
candidatesÚencs       r   Úfilesys_decoder   $   si   € ô �$œ×ÑØˆä×&Ò&Ó(×3¨G€FØ˜�€Jãˆð	Ø—;‘;˜sÓ#Ò#ñ ð øô "ó 	Úð	ús   Á AÁ
A$Á#A$c                 óF   •  U R                  U5      $ ! [         a     gf = f)z/turn unicode encoding into a functional routineN)r   ÚUnicodeEncodeError)Ústringr   s     r   Ú
try_encoder#   9   s(   € ðØ�}‰}˜SÓ!Ð!øÜó Ùðús   ‚ “
 Ÿ ÚfileÚreturnc                 ó$  •  [        U SSS9 nUR                  5       sSSS5        $ ! , (       d  f       g= f! [         aM    [        R	                  XS9  [        U SUS9 nUR                  5       sSSS5        s $ ! , (       d  f        g= ff = f)zö
First try to read the file with UTF-8, if there is an error fallback to a
different encoding ("locale" by default). Returns the content of the file.
Also useful when reading files that might have been produced by an older version of
setuptools.
Úrr	   ©ÚencodingN©r$   Úfallback_encoding)ÚopenÚreadr   Ú_Utf8EncodingNeededÚemit)r$   r+   Úfs      r   Ú_read_utf8_with_fallbackr1   A   sp   € ðÜ�$˜ gÒ.°!Ø—6‘6“8÷ /×.×.ûäó Ü× Ñ  dÐ ÑPÜ�$˜Ð&7Ò8¸AØ—6‘6“8÷ 9×8×8Ò8úðús;   ‚8 �'�	8 §
5±8 µ8 ¸(BÁ A<Á0
BÁ<
B	ÂBÂBÚcfgc                 óª   •  U R                  USS9  g! [         a5    [        R                  XS9  U R	                  5         U R                  XS9   gf = f)z‡Same idea as :func:`_read_utf8_with_fallback`, but for the
:meth:`RawConfigParser.read` method.

This method may call ``cfg.clear()``.
r	   r(   r*   N)r-   r   r.   r/   Úclear)r2   r$   r+   s      r   Ú_cfg_read_utf8_with_fallbackr5   Q   sN   € ð3Ø�‰� ˆÒ(øÜó 3Ü× Ñ  dÐ ÑPØ�	‰	ŒØ�‰�ˆÓ2ð3ús   ‚ “<AÁAc                   ó   • \ rS rSrSrSrSrg)r.   éa   zZ
    `encoding="utf-8"` fails with {file!r}, trying `encoding={fallback_encoding!r}`.
    aÚ  
    Fallback behavior for UTF-8 is considered **deprecated** and future versions of
    `setuptools` may not implement it.

    Please encode {file!r} with "utf-8" to ensure future builds will succeed.

    If this file was produced by `setuptools` itself, cleaning up the cached files
    and re-building/re-installing the package with a newer version of `setuptools`
    (e.g. by updating `build-system.requires` in its `pyproject.toml`)
    might solve the problem.
    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_SUMMARYÚ_DETAILSÚ__static_attributes__r8   r   r   r.   r.   a   s   † ð€Hð
ƒHr   r.   )r   r   Úconfigparserr   Úcompatr   Úwarningsr   r   r   r   r#   ÚLOCALE_ENCODINGr   r1   r5   r.   r8   r   r   Ú<module>rD      s}   ðÛ 
Û Ý (å Ý 2ò	òQòò*ð ;?×:NÑ:Nñ  3ð ÐSVõ ð" 8<×7KÑ7Kñ3Ø	ð3Ø #ð3à	õ3ô Ð6õ r   