+
    öÙ†jFe  ã                   óª  € ^ RI t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt RtRP!                  ]]P"                  ! 4       4      t]R,           t]P&                  '       d   ^ RIt]P*                  ! R]4      tRt]P.                  R8X  do   ]	P0                  ! 4       P2                  ^8¼  dN   ]R,           t ]P5                  ]	P6                  ! 4       4       ]! R	]: R
]	P6                  ! 4       : R24       RtMFME]P&                  '       g4   ]	P2                  R=9  d#    RP=                  ]	P6                  ! 4       4        Rt R> F0  t! ]PD                  ! ]PF                  ! ]!4      4      ]!8w  d   ]$h ]!t  M	  ]PJ                  ! 4       t&Rt'R? F$  t ]P=                  ]	P6                  ! 4       4       K&  	  ] '       d   ]] ,           t)MRt)]);'       g    ]t*R t+Rs,R t-R t.Rs/R t0R t1Rs2R t3R t4Rs5R t6R t7]Pp                  RR/R l4       t9Rs:R t;R t<R t=R t>]	P2                  P                  R 4      '       d   R@R! lt@R" tAR# tBR$ tCR% tDM]P|                  tA]PŠ                  tBR& tCR' tDR( tER) tF]Pp                  RAR* l4       tG]Pp                  R@R+ l4       tH]Pp                  RBR, l4       tIR- tJ]Pp                  R. 4       tKR/ tL ! R0 R14      tMR2 tN]O! ]R34      '       d   ]Pp                  R4 4       tPM]Pp                  R5 4       tP ! R6 R7]P¢                  P¤                  4      tS ]P¨                  '       d"   ^ RIUtU]UP¬                  ! R8R9R:7      tW^tX^tY^tZ^t[M]\h ]Pp                  R; 4       t]R#   ] d     EL<i ; i  ] d-    ]RP=                  ]	P6                  ! 4       R4      ,           t ELri ; i  ]$ d     EK}  i ; i  ] db     ]P=                  ]	P6                  ! 4       ]	PP                  ! 4       4       M  ] d      EK}  i ; i]PF                  ! ]4      ],           t'  EKw  i ; i  ]^]\3 d    R< t] R# i ; i)Cé    N)Úsupportz@testz	{}_{}_tmpu   -Ã Ã²É˜Å�ÄŸÚNFDÚntu   -å…±Å�â™¡Í£í²€zWARNING: The filename z, CAN be encoded by the filesystem encoding (z.). Unicode filename tests may not be effectiveó   ÿs   -ÿÚsurrogateescapeÚ c                 óÊ   € \        \        R4      p  V P                  4       V P                  4        \	        \        4       #   T P                  4        \	        \        4       i ; i)zT
Create an invalid file descriptor by opening and closing a file and return
its fd.
Úwb)ÚopenÚTESTFNÚfilenoÚcloseÚunlink©Úfiles    Ú-/usr/lib/python3.14/test/support/os_helper.pyÚmake_bad_fdr   Ÿ   sB   € ô
 ”˜Ó€DðØ�{‰{‹}à�
‰
ŒÜŒv�øð 	�
‰
ŒÜŒv�ús   ’A Á!A"c                  ó  € \         e   \         # \        P                  P                  \        4      p V R,           p \        P
                  ! W4       Rp\        P                  ! V4       Vs V#   \        \        \        3 d	    Rp Ts T# i ; i)NÚcan_symlinkTF)
Ú_can_symlinkÚosÚpathÚabspathr   ÚsymlinkÚremoveÚOSErrorÚNotImplementedErrorÚAttributeError)ÚsrcÚsymlink_pathÚcans      r   r   r   ¯   s„   € äÒÜÐô �'‰'�/‰/œ&Ó
!€CØ˜Õ&€Lð Ü
�
Š
�3Ô%Øˆô 	�	Š	�,ÔØ€LØ€Jøô Ô(¬.Ð9ô Ø‰ð €LØ€Jðús   ¼A. Á.BÂBc                óf   € \        4       pRpV'       d   V # \        P                  ! V4      ! V 4      # )z8Skip decorator for tests that require functional symlinkz*Requires functional symlink implementation)r   ÚunittestÚskip©ÚtestÚokÚmsgs   &  r   Úskip_unless_symlinkr)   Ã   s)   € ä	‹€BØ
6€Cßˆ4Ð3œ8Ÿ=š=¨Ô-¨dÓ3Ð3ó    c                  óx   € \         f.   \        \        R4      ;'       d    \        P                  '       * s \         # )NÚlink)Ú_can_hardlinkÚhasattrr   r   Ú
is_android© r*   r   Úcan_hardlinkr1   Ì   s-   € äÒô  ¤ FÓ+×FÐF´G×4FÑ4FÔ0FˆÜÐr*   c                 óf   € \        4       pR pV'       d   V # \        P                  ! V4      ! V 4      # )zrequires hardlink support)r1   r#   r$   r%   s   &  r   Úskip_unless_hardlinkr3   Õ   s)   € Ü	‹€BØ
%€Cßˆ4Ð3œ8Ÿ=š=¨Ô-¨dÓ3Ð3r*   c                  ó2  € ^ RI p \        e   \        # \        \        R4      '       g   RpVsV# ^ RIpV P                  4       pV P                  VR7      w  rE \        \        R4      ;_uu_ 4       p \        P                  ! VRR4       \        P                  ! VRR	4       \        P                  ! VP                  4       RR4       VP                  4       p\        P                  ! R
V4      pVRJ ;'       g    \        VP                  ^4      4      ^'8¬  pRRR4       \#        \        4       \#        V4       \%        V4       XsV#   \          d    Rp L@i ; i  + '       g   i     LL; i  \#        \        4       \#        T4       \%        T4       i ; i)r   NÚsetxattrF©Údirr
   s	   user.testr*   s   trusted.foos   42z2.6.(\d{1,2}))ÚtempfileÚ
_can_xattrr.   r   ÚplatformÚmkdtempÚmkstempr   r   r5   r   ÚreleaseÚreÚmatchÚintÚgroupr   r   Úrmdir)	r8   r!   r:   Útmp_dirÚtmp_fpÚtmp_nameÚfpÚkernel_versionÚms	            r   Ú	can_xattrrI   Þ   sI  € ÛäÒÜÐÜ”2�z×"Ò"Øˆð. €JØ€Jó- 	Ø×"Ñ"Ó$ˆØ#×+Ñ+°Ð+Ó8Ñˆð	Ü”f˜d×#Ô# rð ô —K’K ¨°cÔ:Ü—K’K ¨.¸%Ô@Ü—K’K §	¡	£¨\¸3Ô?à%-×%5Ñ%5Ó%7�NÜŸšÐ!1°>ÓB�AØ˜t˜)×<Ð<¤s¨1¯7©7°1«:£¸"Ñ'<�C÷ $ô ”6ŒNÜ�8ÔÜ�'ŒNØ€JØ€Jøô ô  Ø’Cð ú÷ $×#ûô ”6ŒNÜ�8ÔÜ�'�NúsC   ÁE/ Á0EÁ2B&E	ÄE/ Å	EÅEÅEÅEÅE,	Å'E/ Å/'Fc                óf   € \        4       pRpV'       d   V # \        P                  ! V4      ! V 4      # )zDSkip decorator for tests that require functional extended attributesz(no non-broken extended attribute support)rI   r#   r$   r%   s   &  r   Úskip_unless_xattrrK   ÿ   s)   € ä	‹€BØ
4€Cßˆ4Ð3œ8Ÿ=š=¨Ô-¨dÓ3Ð3r*   c                  óž  € \         e   \         # \        \        R4      '       g	   Rs \         #  \        \        R4      ;_uu_ 4       p  \        P
                  ! \        R4       \        P                  ! \        4      P                  p\        P
                  ! \        R4       \        P                  ! \        4      P                  p\        P                  ! V4      \        P                  ! V4      8g  pR R R 4       \        \        4       Xs V#   \         d   pRp R p?L-R p?ii ; i  + '       g   i     L=; i  \        \        4       i ; i)NÚchmodFr
   im  iÿ  )Ú
_can_chmodr.   r   r   r   rM   ÚstatÚst_modeÚS_IMODEr   r   )ÚfÚmode1Úmode2r!   Úes        r   Ú	can_chmodrV     sâ   € äÒÜÐÜ”2�w×ÒØˆ
ÜÐðÜ”&˜$×Ô 1ðAÜ—’œ Ô'ÜŸš¤›×/Ñ/�Ü—’œ Ô'ÜŸš¤›×/Ñ/�ô —l’l 5Ó)¬T¯\ª\¸%Ó-@Ñ@�÷  ô 	ŒvŒØ€JØ€Jøô ô Ø•ûðú÷  ×ûô 	Œv�úsN   ®D; ÁD(ÁA>DÃ-D(Ã3D; ÄD%ÄD ÄD(Ä D%Ä%D(Ä(D8	Ä3D; Ä;Ec                óf   € \        4       pRpV'       d   V # \        P                  ! V4      ! V 4      # )zXSkip tests that require working os.chmod()

WASI SDK 15.0 cannot change file mode bits.
zrequires working os.chmod())rV   r#   r$   r%   s   &  r   Úskip_unless_working_chmodrX      s+   € ô
 
‹€BØ
'€Cßˆ4Ð3œ8Ÿ=š=¨Ô-¨dÓ3Ð3r*   ÚquietFc             #  ó  "  € \         P                  ! V 4      p Rx €  \         P                  ! WP                  4       R#   \         dF   pT'       g   h \
        P                  ! RT : RTP                   RT 2\        ^R7        Rp?R# Rp?ii ; i   \         P                  ! YP                  4       i   \         dE   pT'       g   h \
        P                  ! RT : RTP                   RT 2\        ^R7        Rp?i Rp?ii ; i; i5i)a:  Context manager that restores the mode (permissions) of *path* on exit.

Arguments:

  path: Path of the file to restore the mode of.

  quiet: if False (the default), the context manager raises an exception
    on error.  Otherwise, it issues only a warning and keeps the current
    working directory the same.

Nz.tests may fail, unable to restore the mode of z to z: )Ú
stacklevel)r   rO   rM   rP   r   ÚwarningsÚwarnÚRuntimeWarning)r   rY   Ú
saved_modeÚexcs   &$  r   Ú	save_modera   *  sã   é € ô —’˜“€Jð
8Ûð	8Ü�HŠH�T×-Ñ-Ö.øÜô 	8ßØÜ�MŠMÐJØ!™H D¨×);Ñ);Ð(<¸B¸s¸eðEä(°Q÷8ó 8ûð	8ûð	8Ü�HŠH�T×-Ñ-Õ.øÜô 	8ßØÜ�MŠMÐJØ!™H D¨×);Ñ);Ð(<¸B¸s¸eðEä(°Q÷8ò 8ûð	8ÿsh   ‚DšB Ÿ A ¿DÁBÁ:BÂDÂBÂDÂD	Â B7Â6D	Â7DÃ:DÃ<D	ÄDÄD	Ä	Dc            	      ó€  € \        4       '       g   R s\        e   \        #  \        \        R4      ;_uu_ 4       p \        P
                  ! \        R4        \        \        R4      ;_uu_ 4         RRR4       RsRRR4        \        P
                  ! \        R4       \        \        4       \        #   + '       g   i     LK; i  \         d    R s L[i ; i  + '       g   i     Lg; i  \         d     L[i ; i   \        P
                  ! \        R4       M  \         d     Mi ; i\        \        4       i ; i)FNr
   é   TiÀ  )rV   Ú_can_dac_overrider   r   r   rM   r   r   )rR   s    r   Úcan_dac_overridere   K  sî   € ô �;Š;Ø!ÐÜÒ$Ü Ð ðÜ”&˜$×Ô 1Ü�HŠH”V˜UÔ#ð)Üœ& $×'Õ'Ø÷ (ð
 %)Ð!÷  ð	Ü�HŠH”V˜UÔ#ô 	ŒvŒäÐ÷ (×'ûäô *Ø$)Ò!ð*ú÷  ×ûô ô 	Ùð	ûð	Ü�HŠH”V˜UÕ#øÜô 	Ùð	úäŒv�ús”   ¢C> ºCÁCÁ/B4	Á1CÁ9CÁ;C> ÂC- Â4CÂ?CÃCÃCÃCÃCÃC*	Ã%C> Ã-C;Ã:C;Ã>D=Ä DÄD=ÄD*Ä'D=Ä)D*Ä*D=c                 óp   € \        4       '       * pR pV'       d   V # \        P                  ! V4      ! V 4      # )z"incompatible with CAP_DAC_OVERRIDE©re   r#   r$   r%   s   &  r   Úskip_if_dac_overriderh   g  s-   € ÜÓÔ	€BØ
.€Cßˆ4Ð3œ8Ÿ=š=¨Ô-¨dÓ3Ð3r*   c                 óf   € \        4       pR pV'       d   V # \        P                  ! V4      ! V 4      # )zrequires CAP_DAC_OVERRIDErg   r%   s   &  r   Úskip_unless_dac_overriderj   m  s*   € Ü	Ó	€BØ
%€Cßˆ4Ð3œ8Ÿ=š=¨Ô-¨dÓ3Ð3r*   c                 óN   €  \        V 4       R #   \        \        3 d     R # i ; i©N)Ú_unlinkÚFileNotFoundErrorÚNotADirectoryError©Úfilenames   &r   r   r   s  s'   € ðÜ�ÖøÜÔ1Ð2ô Úðús   ‚ �$£$Úwinc                 ó˜  € V ! V4       V'       d   TpM-\         P                  P                  V4      w  r4T;'       g    R pRpVR8  dT   \         P                  ! V4      pV'       d   V'       g    R# XV9   g   R# \        P
                  ! V4       V^,          pKZ  \        P                  ! \        4      P                  RVR^R7       R# )Ú.gü©ñÒMbP?g      ð?Nz+tests may fail, delete still pending for %sT)Ú
stack_infor[   )
r   r   ÚsplitÚlistdirÚtimeÚsleepÚloggingÚ	getLoggerÚ__name__Úwarning)ÚfuncÚpathnameÚwaitallÚdirnameÚnameÚtimeoutÚLs   &&&    r   Ú_waitforr…   {  s£   € áˆXŒçØ‰GäŸG™GŸM™M¨(Ó3‰MˆGØ—n�n ˆGð ˆØ˜Œmô —
’
˜7Ó#ˆAß —A�AÙð '+¨a¤iÙä�JŠJ�wÔØ�q�LŠGÜ×Òœ(Ó#×+Ñ+Ø9ØØØð	 	,ö 	
r*   c                 ó:   € \        \        P                  V 4       R # rl   )r…   r   r   rp   s   &r   rm   rm      s   € Ü”—‘˜HÖ%r*   c                 ó:   € \        \        P                  V 4       R # rl   )r…   r   rB   ©r�   s   &r   Ú_rmdirr‰   £  s   € Ü”—‘˜7Ö#r*   c                 ó`   aa€ ^ RI Ho VV3R lo\        SV RR7       \        V3R lV 4       R# )r   ©Ú
_force_runc                 óø  <€ S! V \         P                  V 4       FŸ  p\         P                  P                  W4      p \         P                  ! V4      P
                  p\        P                  ! V4      '       d)   \        SVRR7       S! V\         P                  V4       K‡  S! V\         P                  V4       K¡  	  R#   \         d0   p\        R T: RT: 2\        P                  R7       ^ p Rp?L—Rp?ii ; i)zsupport.rmtree(): os.lstat(z) failed with r   NT©r€   )r   rw   r   ÚjoinÚlstatrP   r   ÚprintÚsysÚ
__stderr__rO   ÚS_ISDIRr…   rB   r   )r   r‚   ÚfullnameÚmoder`   rŒ   Ú_rmtree_inners   &    €€r   r—   Ú_rmtree.<locals>._rmtree_inner©  s´   ø€ Ù" 4¬¯©°TÖ:�ÜŸ7™7Ÿ<™<¨Ó3�ðÜŸ8š8 HÓ-×5Ñ5�Dô —<’< ×%Ò%Ü˜]¨H¸dÕCÙ˜x¬¯©°8Ö<á˜x¬¯©°HÖ=ó ;øô ô ÝÛ%¢sð,ä"Ÿ~™~õ/ð •Dûð	ús   ½ B?Â?C9Ã
%C4Ã4C9TrŽ   c                 ó4   <€ S! V \         P                  V 4      # rl   )r   rB   )ÚprŒ   s   &€r   Ú<lambda>Ú_rmtree.<locals>.<lambda>¹  s   ø€ ™: a¬¯©°1Ô5r*   N)Útest.supportrŒ   r…   )r   rŒ   r—   s   &@@r   Ú_rmtreerž   ¦  s$   ù€ Ý+ö	>ô 	� ¨dÕ3ÜÔ5°tÖ<r*   c                 óò   €  ^ RI pVP                  ! \        V 4      ^,          4      pVP                  P                  P                  W\        V4      4      pV'       d   VRV #  V #   \         d     T # i ; i)r   N)ÚctypesÚcreate_unicode_bufferÚlenÚwindllÚkernel32ÚGetLongPathNameWÚImportError)r   r    ÚbufferÚlengths   &   r   Ú	_longpathr©   »  s|   € ð
	'Ûð
 ×1Ò1´#°d³)¸aµ-Ó@ˆFØ—]‘]×+Ñ+×<Ñ<¸TÜ=@À»[óJˆFçØ˜g˜v�Ð&ð àˆøô ô 	àð ˆð	ús   ‚A' Á'A6Á5A6c                 ó¢   a€ ^ RI p VP                  V 4       R#   \         d     Mi ; iT3R loS! T 4       \        P                  ! T 4       R# )r   Nc                 ó¤  <€ ^ RI Hp V! V \        P                  V 4       F™  p\        P                  P                  W4      p \        P                  ! V4      P                  p\        P                  ! V4      '       d#   S! V4       V! V \        P                  V4       K�  V! V \        P                  V4       K›  	  R#   \         d    ^ p Lki ; i)r   r‹   N)r�   rŒ   r   rw   r   r�   r�   rP   r   rO   r”   rB   r   )r   rŒ   r‚   r•   r–   r—   s   &    €r   r—   r˜   Ô  s—   ø€ Ý/Ù" 4¬¯©°TÖ:�ÜŸ7™7Ÿ<™<¨Ó3�ðÜŸ8š8 HÓ-×5Ñ5�Dô —<’< ×%Ò%Ù! (Ô+Ù˜t¤R§X¡X¨xÖ8á˜t¤R§Y¡Y°Ö9ó ;øô ô Ø’Dðús   Á B?Â?CÃC)ÚshutilÚrmtreer   r   rB   )r   r¬   r—   s   & @r   rž   rž   Ì  sF   ø€ Ûð	Ø�M‰M˜$ÔÙøÜô 	Ùð	úõ	:ñ 	�dÔÜ
�Š�Žs   ‡ š(§(c                 ó   € V # rl   r0   ©r   s   &r   r©   r©   ä  ó   € Øˆr*   c                 óB   €  \        V 4       R #   \         d     R # i ; irl   )r‰   rn   rˆ   s   &r   rB   rB   è  s    € ðÜˆwŽøÜô Úðúó   ‚ ��c                 óB   €  \        V 4       R #   \         d     R # i ; irl   )rž   rn   r¯   s   &r   r­   r­   ï  s    € ðÜ�ŽøÜô Úðúr²   c           
   #  óf  "  € ^ RI pRpV f3   VP                  4       p Rp\        P                  P	                  V 4      p M \        P
                  ! V 4       RpV'       d   \        P                  ! 4       p V x € V'       d*   X\        P                  ! 4       8X  d   \        V 4       R# R# R#   \         dC   pT'       g   h \        P                  ! \        4      P                  RT TTR^R7        Rp?L�Rp?ii ; i  T'       d(   X\        P                  ! 4       8X  d   \        T 4       i i i ; i5i)a†  Return a context manager that creates a temporary directory.

Arguments:

  path: the directory to create temporarily.  If omitted or None,
    defaults to creating a temporary directory using tempfile.mkdtemp.

  quiet: if False (the default), the context manager raises an exception
    on error.  Otherwise, if the path is specified and cannot be
    created, only a warning is issued.

NFTz;tests may fail, unable to create temporary directory %r: %s©Úexc_inforu   r[   )r8   r;   r   r   ÚrealpathÚmkdirr   rz   r{   r|   r}   Úgetpidr­   )r   rY   r8   Údir_createdr`   Úpids   &&    r   Útemp_dirr¼   ö  s÷   é € ó Ø€KØ‚|Ø×ÑÓ!ˆØˆÜ�w‰w×Ñ Ó%‰ð	Ü�HŠH�TŒNØˆK÷ Ü�iŠi‹kˆðØŠ
÷ ˜3¤"§)¢)£+Ô-Ü�4ŽLñ .‰;øô% ô 
	ßØÜ×ÒœhÓ'×/Ñ/ØMØØØØØð 0÷ ñ ûð
	û÷$ ˜3¤"§)¢)£+Ô-Ü�4�Lð .ˆ;üsM   ‚=D1Á B- ÁD1Á D1Á6C= Á:3D1Â-C:Â88C5Ã0D1Ã5C:Ã:D1Ã=1D.Ä.D1c           
   #  óÒ  "  € \         P                  ! 4       p \         P                  ! \         P                  P	                  V 4      4        \         P                  ! 4       x € \         P                  ! V4       R#   \
         dC   pT'       g   h \        P                  ! \        4      P                  RT TTR^R7        Rp?LxRp?ii ; i  \         P                  ! T4       i ; i5i)aO  Return a context manager that changes the current working directory.

Arguments:

  path: the directory to use as the temporary current working directory.

  quiet: if False (the default), the context manager raises an exception
    on error.  Otherwise, it issues only a warning and keeps the current
    working directory the same.

zHtests may fail, unable to change the current working directory to %r: %sTrµ   N)
r   ÚgetcwdÚchdirr   r·   r   rz   r{   r|   r}   )r   rY   Ú	saved_dirr`   s   &&  r   Ú
change_cwdrÁ   $  s¬   é € ô —	’	“€Ið
Ü
�Š”—‘×!Ñ! $Ó'Ô(ðÜ�iŠi‹kÒä
�Š�Öøô ô 
ßØÜ×Òœ(Ó#×+Ñ+ðàØØØØð 	,÷ 	
ñ 	
ûð
ûô 	�Š�Õüs@   ‚C'™3A< ÁC Á$C'Á<C	Â8CÂ?C'ÃC	Ã	C'ÃC$Ã$C'c           	   #  óØ   "  € \        WR7      ;_uu_ 4       p\        W!R7      ;_uu_ 4       pVx € RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i5i)aÒ  
Context manager that temporarily creates and changes the CWD.

The function temporarily changes the current working directory
after creating a temporary directory in the current directory with
name *name*.  If *name* is None, the temporary directory is
created using tempfile.mkdtemp.

If *quiet* is False (default) and it is not possible to
create or change the CWD, an error is raised.  If *quiet* is True,
only a warning is raised and the original CWD is used.

)r   rY   )rY   N)r¼   rÁ   )r‚   rY   Ú	temp_pathÚcwd_dirs   &&  r   Útemp_cwdrÅ   F  sE   é € ô 
�t×	)Õ	)¨YÜ˜	×/Õ/°7ØŠM÷ 0÷ 
*Ñ	)ß/×/ú÷ 
*×	)Ð	)üs1   ‚A*—A¬A	±A¹
A*ÁAÁAÁA'	Á!	A*c                óÐ   € \         P                  ! V \         P                  \         P                  ,          \         P                  ,          4      p\         P
                  ! V4       R# )z>Create an empty file. If the file already exists, truncate it.N)r   r   ÚO_WRONLYÚO_CREATÚO_TRUNCr   )rq   Úfds   & r   Úcreate_empty_filerË   Z  s3   € ä	�Š�œ2Ÿ;™;¬¯©Õ3´b·j±jÕ@Ó	A€BÜ‡H‚HˆR†Lr*   c              #  ón  "  € \         P                  P                  V 4      '       g   Q h\         P                  p\	        \         R4      '       d   V\         P
                  ,          p\         P                  ! W4      p Vx € \         P                  ! V4       R#   \         P                  ! T4       i ; i5i)z&Open a file descriptor to a directory.ÚO_DIRECTORYN)r   r   ÚisdirÚO_RDONLYr.   rÍ   r   r   )r   ÚflagsÚdir_fds   &  r   Úopen_dir_fdrÒ   `  st   é € ô �7‰7�=‰=˜×ÒÐÐÜ�K‰K€EÜŒr�=×!Ò!Ø”—‘ÕˆÜ�WŠW�TÓ!€FðØŠä
�Š�ÖøŒ�Š�Õüs   ‚A;B5Á>B ÂB5ÂB2Â2B5c                óT  € ^ RI pVP                  V R7      ;_uu_ 4       pVP                  pVP                  4       pWC8X  d   VP	                  4       p \
        P                  P                  W44      uuRRR4       #   \         d     RRR4       R# i ; i  + '       g   i     R# ; i)zKDetects if the file system for the specified directory
is case-insensitive.Nr6   F)	r8   ÚNamedTemporaryFiler‚   ÚupperÚlowerr   r   Úsamefilern   )Ú	directoryr8   ÚbaseÚ	base_pathÚ	case_paths   &    r   Úfs_is_case_insensitiverÜ   n  s‹   € ó Ø	×	$Ñ	$¨Ð	$×	3Ô	3°tØ—I‘Iˆ	Ø—O‘OÓ%ˆ	ØÔ!Ø!Ÿ™Ó)ˆIð	Ü—7‘7×#Ñ# IÓ9÷ 
4Ò	3øô !ô 	Ø÷ 
4Ñ	3ð	ú÷ 
4×	3Ð	3ús)   Ÿ3BÁA<Á<BÂBÂBÂBÂB'	c                   ó6   a € ] tR tRt o RtR tR tR tRtV t	R# )ÚFakePathi}  z0Simple implementation of the path protocol.
    c                ó   € Wn         R # rl   r¯   )Úselfr   s   &&r   Ú__init__ÚFakePath.__init__€  s   € ØŽ	r*   c                ó$   € R V P                   : R2# )z
<FakePath Ú>r¯   ©rà   s   &r   Ú__repr__ÚFakePath.__repr__ƒ  s   € Ø˜DŸI™I™=¨Ð*Ð*r*   c                óò   € \        V P                  \        4      '       gA   \        V P                  \        4      '       d-   \	        V P                  \        4      '       d   V P                  hV P                  # rl   )Ú
isinstancer   ÚBaseExceptionÚtypeÚ
issubclassrå   s   &r   Ú
__fspath__ÚFakePath.__fspath__†  sH   € Ü�t—y‘y¤-×0Ò0Ü�t—y‘y¤$×'Ò'Ü˜4Ÿ9™9¤m×4Ò4Ø—)‘)ˆOà—9‘9Ðr*   r¯   N)
r|   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rá   ræ   rí   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   rÞ   rÞ   }  s   ø‡ € ñòò+÷ð r*   rÞ   c                 ó¶  € \         P                  P                  R4      '       d   Rp M\        P                  '       d   Rp MRp V e*    \
        P                  ! V 4      p\        V4      ^,
          # Rp\        \
        R4      '       d    \
        P                  ! R4      pRp\         P                  R8X  dR    ^ RIpVP                   / pVP                  VP                  VP                   3 F  pVP                  V^ 4      W5&   K  	   ^ p\'        V4       F9  p \
        P(                  ! V4      p\
        P*                  ! V4       V^,          pK;  	  VeC   XP                  VP                  VP                   3 F  pVP                  WSV,          4       K  	  V#   \         d     EL8i ; i  \         d     ELi ; i  \"        \$        3 d     LÊi ; i  \         d,   p	T	P,                  \,        P.                  8w  d   h  Rp	?	Kñ  Rp	?	ii ; i  TeD   XP                  TP                  TP                   3 F  pTP                  YST,          4       K  	  i i ; i)	z/Count the number of open file descriptors.
    z/proc/self/fdz/dev/fdNrc   ÚsysconfÚSC_OPEN_MAXÚwin32)ÚlinuxÚandroidÚfreebsdÚ
emscripten)r’   r:   Ú
startswithr   Úis_appler   rw   r¢   rn   r.   rø   r   ÚmsvcrtÚCrtSetReportModeÚCRT_WARNÚ	CRT_ERRORÚ
CRT_ASSERTr   r¦   ÚrangeÚdupr   ÚerrnoÚEBADF)
Úfd_pathÚnamesÚMAXFDÚ	old_modesr  Úreport_typeÚcountrÊ   Úfd2rU   s
             r   Úfd_countr  �  s.  € ô ‡|�|×ÑÐL×MÒMØ!‰Ü	×	×	Ð	Ø‰àˆàÒð	Ü—J’J˜wÓ'ˆEô �u“: •>Ð!ð €EÜŒr�9×Òð	Ü—J’J˜}Ó-ˆEð €IÜ
‡|�|�wÔð	DÛØ×#Ò#ð
 ˆIØ &§¡Ø &× 0Ñ 0Ø &× 1Ñ 1ó 3�ð *0×)@Ñ)@ÀØABó*D�	Ó&ñ 3ðMØˆÜ˜–,ˆBð	ô —f’f˜R“j�ô
 —’˜”Ø˜•
’ñ ð Ò Ø &§¡Ø &× 0Ñ 0Ø &× 1Ñ 1ó 3�ð ×'Ñ'¨¸{Õ5KÖLñ 3ð
 €Løôa !ô 	Úð	ûô ô 	Úð	ûô ¤Ð,ô 	áð	ûô$ ô Ø—7‘7œeŸk™kÔ)Øõ *ûðûð Ò Ø &§¡Ø &× 0Ñ 0Ø &× 1Ñ 1ó 3�ð ×'Ñ'¨¸{Õ5KÖLò 3ð !úsm   Á	'F Â
F- Â8F? Ä	H ÄGÄ0#H ÆF*Æ)F*Æ-F<Æ;F<Æ?GÇGÇHÇ! HÈH ÈHÈH ÈA	IÚumaskc              #  ó¦   "  € \         P                  ! V 4      p Rx € \         P                  ! V4       R#   \         P                  ! T4       i ; i5i)z8Context manager that temporarily sets the process umask.N)r   r  )r  Úoldmasks   & r   Ú
temp_umaskr  Ó  s4   é € ô —(’(˜5“/ˆð	Ûä�HŠH�WÖøŒB�HŠH�WÕüs   ‚Aš6 žA¶AÁAc              #  ó   "  € Rx € R# 5i)z"no-op on platforms without umask()Nr0   )r  s   &r   r  r  Ü  s
   é € õ 	ùs   ‚	c                   ól   a € ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tRtV tR# )ÚEnvironmentVarGuardiâ  z\Class to help protect the environment variable properly.

Can be used as a context manager.
c                ó>   € \         P                  V n        / V n        R # rl   )r   ÚenvironÚ_environÚ_changedrå   s   &r   rá   ÚEnvironmentVarGuard.__init__è  s   € ÜŸ
™
ˆŒØˆŽr*   c                ó(   € V P                   V,          # rl   )r  ©rà   Úenvvars   &&r   Ú__getitem__ÚEnvironmentVarGuard.__getitem__ì  s   € Ø�}‰}˜VÕ$Ð$r*   c                ó’   € WP                   9  d)   V P                  P                  V4      V P                   V&   W P                  V&   R # rl   ©r  r  Úget©rà   r   Úvalues   &&&r   Ú__setitem__ÚEnvironmentVarGuard.__setitem__ï  s5   € àŸ™Ô&Ø$(§M¡M×$5Ñ$5°fÓ$=ˆD�M‰M˜&Ñ!Ø %�‰�fÓr*   c                ó´   € WP                   9  d)   V P                  P                  V4      V P                   V&   WP                  9   d   V P                  V R # R # rl   r$  r  s   &&r   Ú__delitem__ÚEnvironmentVarGuard.__delitem__õ  sD   € àŸ™Ô&Ø$(§M¡M×$5Ñ$5°fÓ$=ˆD�M‰M˜&Ñ!Ø—]‘]Ô"Ø—‘˜fÒ%ñ #r*   c                ó6   € V P                   P                  4       # rl   )r  Úkeysrå   s   &r   r.  ÚEnvironmentVarGuard.keysü  s   € Ø�}‰}×!Ñ!Ó#Ð#r*   c                ó,   € \        V P                  4      # rl   )Úiterr  rå   s   &r   Ú__iter__ÚEnvironmentVarGuard.__iter__ÿ  s   € Ü�D—M‘MÓ"Ð"r*   c                ó,   € \        V P                  4      # rl   )r¢   r  rå   s   &r   Ú__len__ÚEnvironmentVarGuard.__len__  s   € Ü�4—=‘=Ó!Ð!r*   c                ó   € W V&   R # rl   r0   r&  s   &&&r   ÚsetÚEnvironmentVarGuard.set  s	   € ØˆV‹r*   c               ó"   € V.VO F  pW K  	  R# )z(Unset one or more environment variables.Nr0   )rà   r   ÚenvvarsÚevs   ""* r   ÚunsetÚEnvironmentVarGuard.unset  s   € àÐ$˜GÓ$ˆBØ’ó %r*   c                ó   € \        V 4      # rl   )Údictrå   s   &r   ÚcopyÚEnvironmentVarGuard.copy  s   € ä�D‹zÐr*   c                ó   € V # rl   r0   rå   s   &r   Ú	__enter__ÚEnvironmentVarGuard.__enter__  r°   r*   c                óÜ   € V P                   P                  4        F8  w  r#Vf"   W P                  9   d   V P                  V K(  K*  W0P                  V&   K:  	  V P                  \        n        R # rl   )r  Úitemsr  r   r  )rà   Ú
ignore_excÚkÚvs   &*  r   Ú__exit__ÚEnvironmentVarGuard.__exit__  sV   € Ø—m‘m×)Ñ)Ö+‰FˆQØŠyØŸ™Ô%ØŸ™ aÒ(ñ &ð $%—‘˜aÓ ñ ,ð —]‘]ŒŽ
r*   )r  r  N)r|   rï   rð   rñ   rò   rá   r!  r(  r+  r.  r2  r5  r8  r=  rA  rD  rK  ró   rô   rõ   s   @r   r  r  â  sK   ø‡ € ñò
ò%ò&ò&ò$ò#ò"òòò
ò÷#ð #r*   r  r¤   T)Úuse_last_errorc              #  óø  "  € \        \        P                  4       FG  pV R2p\        P	                  VR^ 4      '       d   K'  \
        P                  ! 4       \        8X  g   KG   M	  \        P                  ! R4      h\        P                  \        W 4      '       g*   \
        P                  ! \
        P                  ! 4       4      h Vx € \        P                  \        \        ,          W 4      '       g*   \
        P                  ! \
        P                  ! 4       4      hR#   \        P                  \        \        ,          Y 4      '       g*   \
        P                  ! \
        P                  ! 4       4      hi ; i5i)z6Temporarily yield a substitute drive for a given path.Ú:Nzno available logical drive)ÚreversedÚstringÚascii_uppercaser¤   ÚQueryDosDeviceWr    Úget_last_errorÚERROR_FILE_NOT_FOUNDr#   ÚSkipTestÚDefineDosDeviceWÚDDD_NO_BROADCAST_SYSTEMÚWinErrorÚDDD_REMOVE_DEFINITIONÚDDD_EXACT_MATCH_ON_REMOVE)r   ÚcÚdrives   &  r   Úsubst_driver^  -  s  é € ô œ&×0Ñ0Ö1ˆAØ�c˜�GˆEÜ×,Ñ,¨U°D¸!×<Ô<Ü×)Ò)Ó+Ô/CÖCÙñ	 2ô ×#Ò#Ð$@ÓAÐAÜ×(Ñ(Ü'¨÷6ò 6ä—/’/¤&×"7Ò"7Ó"9Ó:Ð:ð	?ØŠKä×,Ñ,Ü)Ô,EÕEØ÷!ò !ô —o’o¤f×&;Ò&;Ó&=Ó>Ð>ñ!ø”8×,Ñ,Ü)Ô,EÕEØ÷!ò !ô —o’o¤f×&;Ò&;Ó&=Ó>Ð>ð!üs,   ‚<E:ÁE:Á#A#E:ÃD! ÃAE:Ä!AE7Å7E:c                 ó.   € \         P                  ! R 4      h)z#ctypes or kernel32 is not available)r#   rV  r¯   s   &r   r^  r^  *  s   € Ü×ÒÐ EÓFÐFr*   >   Úwasirþ   )ô   Ã¦u   Ä°u   Å�u   Ï†u   Ðšu   ×�u   ØŒu   Øªu   à¸�ô   Â u   â‚¬)s   çwðr   s   ®Õí²€s   í´€s   �˜)F)NF)ÚtempcwdF)_Úcollections.abcÚcollectionsÚ
contextlibr  rz   r   r>   rO   rQ  r’   rx   r#   r\   r&   r   ÚTESTFN_ASCIIÚformatr¹   ÚTESTFN_UNICODEr   ÚunicodedataÚ	normalizeÚTESTFN_UNENCODABLEr‚   Úgetwindowsversionr:   ÚencodeÚgetfilesystemencodingr‘   ÚUnicodeEncodeErrorÚdecodeÚUnicodeDecodeErrorÚFS_NONASCIIÚ	characterÚfsdecodeÚfsencodeÚUnicodeErrorr¾   ÚSAVEDCWDÚTESTFN_UNDECODABLEÚgetfilesystemencodeerrorsÚTESTFN_NONASCIIr   r   r   r   r)   r-   r1   r3   r9   rI   rK   rN   rV   rX   Úcontextmanagerra   rd   re   rh   rj   r   rÿ   r…   rm   r‰   rž   r©   rB   r­   r¼   rÁ   rÅ   rË   rÒ   rÜ   rÞ   r  r.   r  ÚabcÚMutableMappingr  Ú
MS_WINDOWSr    ÚWinDLLr¤   rU  rZ  r[  rX  r   r^  r¦   r0   r*   r   Ú<module>r�     sÛ  ðÛ Û Û Û Û 	Û 	Û Û Û 
Û Û Û å ð €ð ×!Ñ! ,°·	²	³Ó<€ð Ð =Õ=€Ø
××Ðó Ø ×*Ò*¨5°.ÓA€Nð
 Ð Ø‡7�7ˆd„?à
×ÒÓ×'Ñ'¨1Ô,ð *Ð,MÕMÐð	&Ø×%Ñ% c×&?Ò&?Ó&AÔBò ã'¨×)BÒ)BÖ)DðFô Gð "&Ñð -ð 
×	×	Ð	˜cŸl™lÐ2HÔHð
à�‰�s×0Ò0Ó2Ô3ð 	ð €ó €IðB
ð �;Š;�r—{’{ 9Ó-Ó.°)Ô;ØÐð <ð
  ˆÙñW ð\ �9Š9‹;€ð Ð ó€Dð"	Ø�‰�C×-Ò-Ó/Ö0ñ%÷8 Ø" [Õ0�Oà€OØ	×	(Ð	(˜L€ò
ð €òò(4ð €òò4ð €
òòB4ð €
òò04ð ×Ñð8˜Uó 8ó ð8ð< Ð òò84ò4òð ‡<�<×Ñ˜5×!Ò!ô#
òJ&ò$ò=ó*ð �i‰i€GØ�X‰X€Fòò0òòð ×Ñó*ó ð*ðZ ×Ñóó ððB ×Ñóó ðò&ð ×Ññ
ó ð
ò÷ñ ò$@ñF ˆ2ˆw×ÒØ×Ññó ñð ×Ññó ðô
9#˜+Ÿ/™/×8Ñ8ô 9#ðx"?Ø××ÐÛØ—=’= ¸DÔAˆà ÐØ !ÐØ$%Ð!Ø"#ÑàÐð 	 ð ×Ññ?ó ò?øðC "ô 	Úð	ûð ô Nà)Ø�o‰o˜c×7Ò7Ó9Ð;LÓMõNÓðNûðf ô ÛðûðF ô ð	Ø�K‰K˜×1Ò1Ó3Ø×5Ò5Ó7õ9øà!ô 	Üð	úàŸ[š[¨Ó6¸Õ=ÐÜðûðt 	�^Ð$ô GõGðGús„   Ã	 N Ä1 N Å)OÆ# OÌ:Q Í#Q ÎNÎNÎ/OÏOÏOÏOÏP?Ï0PÐP?ÐPÐP?ÐPÐP?Ð>P?ÑQÑQ