Ë
    òT•jÍT  ã                   óž  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlmZmZ d dlmZ d dlmZ d dlmZ dZeZedz   ZdZd	Zed
z   ZeZeZeZ e!edf   Z"e#e   Z$e#e!ee%f      Z&e!edf   Z'e(ee'f   Z)d„ Z*de#e   dz  ddfd„Z+d8d„Z,d„ Z-d9d„Z.d„ Z/da0d„ Z1d„ Z2da3d„ Z4d„ Z5d„ Z6d„ Z7d8dedz  defd„Z8d„ Z9d:dede%defd „Z:e jv                  d!„ «       Z<d"ed#e=ddfd$„Z>d"ed%edz  defd&„Z? e@d'«      ZAdd(œd)„ZBd*„ ZCd+„ ZDd,„ ZEd-ee   fd.„ZFd/„ ZGd-e!edf   d0e!edf   dz  fd1„ZHdefd2„ZId3d4d5d6œZJd7„ ZKy);é    N)ÚCallableÚIterable)Úsupport)Ú	os_helper)Úthreading_helperÚtest_python_Úworker_g      ^@)
ÚaudioÚcursesÚ	largefileÚnetworkÚdecimalÚcpuÚ
subprocessÚurlfetchÚguiÚwalltime)ÚextralargefileÚtzdata.c                 óˆ  — t        j                  | dz  «      }t        |d«      \  } }t        | d«      \  }} t        |d«      \  }}g }|r|j                  d|z  «       |r|j                  d|z  «       | r1|r|j                  d| z  «       n|j                  d| |dz  z   z  «       |sd|z  S |d d	 }d
j	                  |«      S )Ng     @�@iè  é<   z%s hourz%s minz%s secz%.1f secz%s msé   ú )ÚmathÚceilÚdivmodÚappendÚjoin)ÚsecondsÚmsÚminutesÚhoursÚpartss        ú-/usr/lib/python3.12/test/libregrtest/utils.pyÚformat_durationr%   <   sË   € Ü	�‰�7˜S‘=Ó	!€BÜ˜˜TÓ"�K€GˆRÜ˜g rÓ*Ñ€GˆWÜ˜G RÓ(�N€Eˆ7à€EÙØ�‰�Y Ñ&Ô'ÙØ�‰�X Ñ'Ô(ÙÙà�L‰L˜ GÑ+Õ,ð �L‰L˜ w°°d±Ñ':Ñ;Ô<ÙØ˜‰|Ðà�"�1ˆI€EØ�8‰8�E‹?Ðó    ÚnamesÚreturnc                 óŠ   — | sy t        | «      D ]2  \  }}t        j                  j                  |«      \  }}|dk(  sŒ.|| |<   Œ4 y )Nz.py)Ú	enumerateÚosÚpathÚsplitext)r'   ÚidxÚnameÚbasenameÚexts        r$   Ústrip_py_suffixr2   U   sH   € ÙØÜ˜uÓ%ò "‰	ˆˆTÜŸ™×(Ñ(¨Ó.‰ˆ�#Ø�%‹<Ø!ˆE�#ŠJñ"r&   c                 ó"   — | dk(  r|S |�|S |dz   S )Né   Ús© )ÚnÚsingularÚplurals      r$   r9   r9   ^   s#   € ØˆA‚vØˆØ	Ð	Øˆà˜#‰~Ðr&   c                 ó*   — | dk(  r| › d|› �S | › d|› d�S )Nr4   r   r5   r6   )r7   Úwords     r$   Úcountr<   g   s+   € ØˆA‚vØ��A�d�Vˆ}Ðà��A�d�V˜1ˆ~Ðr&   c           
      ó”   — d|z  }t        t        j                  dj                  d„ t	        | «      D «       «      |||¬«      |¬«       y)zÐPrint the elements of iterable x to stdout.

    Optional arg width (default 70) is the maximum line length.
    Optional arg indent (default 4) is the number of blanks with which to
    begin each line.
    r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Ústr)Ú.0Úelts     r$   ú	<genexpr>zprintlist.<locals>.<genexpr>x   s   è ø€ Ò ?¨c¤ S§Ñ ?ùs   ‚)Úinitial_indentÚsubsequent_indent)ÚfileN)ÚprintÚtextwrapÚfillr   Úsorted)ÚxÚwidthÚindentrF   Úblankss        r$   Ú	printlistrO   n   s@   € ð �6‰\€Fä	Œ(�-‰-˜Ÿ™Ñ ?´V¸A³YÔ ?Ó?ÀØ'-ÀôIàör&   c                 ó.   — t        j                  | «       y r?   )r   Úprint_warning)Úmsgs    r$   rQ   rQ   }   s   € Ü×Ñ˜#Õr&   c                 ó\  — dt         _        t        j                  d«       t        j                  }	 t        j
                  «        t         j                  j                  t        _        t        | «       t        j                  j                  «        |t        _        y # |t        _        w xY w)NTzUnraisable exception)	r   Úenvironment_alteredrQ   ÚsysÚstderrÚflush_std_streamsÚorig_stderrÚorig_unraisablehookÚflush)Ú
unraisableÚ
old_stderrs     r$   Úregrtest_unraisable_hookr]   „   sm   € à"&„GÔÜ×ÑÐ0Ô1Ü—‘€Jð Ü×!Ñ!Ô#Ü×*Ñ*×6Ñ6ŒŒ
Ü˜JÔ'Ü�
‰
×ÑÔàŒ�
ø�ZŒ�
ús   ²A B ÂB+c                  óB   — t         j                  at        t         _        y r?   )rU   ÚunraisablehookrY   r]   r6   r&   r$   Úsetup_unraisable_hookr`   ’   s   € ä×,Ñ,ÐÜ1„CÕr&   c                 óŠ  — dt         _        t        j                  d| j                  j                  › �«       t
        j                  }	 t        j                  «        t         j                  j                  t
        _        t        | «       t
        j                  j                  «        |t
        _        y # |t
        _        w xY w)NTzUncaught thread exception: )r   rT   rQ   Úexc_typeÚ__name__rU   rV   rW   rX   Úorig_threading_excepthookrZ   )Úargsr\   s     r$   Úregrtest_threading_excepthookrf   ›   s   € à"&„GÔÜ×ÑÐ7¸¿¹×8NÑ8NÐ7OÐPÔQÜ—‘€Jð Ü×!Ñ!Ô#Ü×*Ñ*×6Ñ6ŒŒ
Ü! $Ô'Ü�
‰
×ÑÔàŒ�
ø�ZŒ�
ús   Á	A B5 Â5Cc                  ó:   — dd l } | j                  at        | _        y ©Nr   )Ú	threadingÚ
excepthookrd   rf   )ri   s    r$   Úsetup_threading_excepthookrk   ©   s   € ãØ )× 4Ñ 4ÐÜ8€IÕr&   c                  ó¢  — t         j                  j                  «       D ]  } t        | d«      sŒ| `Œ t         j
                  t         j                  t         j                  t         j                  fD ]  }|€Œ|j                  «        Œ 	 t         j                  d   }|j                  «        	 t         j                  d   }|j                  j                  «        	 t         j                  d   }|j                  «        	 t         j                  d   }|j                  «        	 t         j                  d   }|j!                  «        	 t         j                  d   }|j#                  «        	 t         j                  d   }|j$                  j                  «        	 t         j                  d	   }	|	j'                  «        	 t         j                  d
   }
d |
_        	 t         j                  d   }|j+                  «        	 t         j                  d   }|j,                  D ]	  } |«        Œ 	 	 t         j                  d   }|j.                  j1                  «        	 t         j                  d   }|j2                  j1                  «        |j4                  j                  «        |j6                  j                  «        	 t         j                  d   }|j8                  j:                  j1                  «        y # t        $ r Y �ŒQw xY w# t        $ r Y �Œ3w xY w# t        $ r Y �Œw xY w# t        $ r Y �Œw xY w# t        $ r Y �Œ÷w xY w# t        $ r Y �Œãw xY w# t        $ r Y �ŒÅw xY w# t        $ r Y �Œ±w xY w# t        $ r Y �Œ¦w xY w# t        $ r Y �Œ’w xY w# t        $ r Y �Œuw xY w# t        $ r Y �ŒWw xY w# t        $ r Y �Œw xY w# t        $ r Y y w xY w)NÚ__warningregistry__ÚreÚ	_strptimezurllib.parsezurllib.requestÚ	linecacheÚ	mimetypesÚfilecmpÚstructÚdoctestÚctypesÚtypingÚ	fractionsÚinspectzimportlib.metadata)rU   ÚmodulesÚvaluesÚhasattrrm   ÚstdoutrV   Ú
__stdout__Ú
__stderr__rZ   ÚpurgeÚKeyErrorÚ_regex_cacheÚclearÚclear_cacheÚ
urlcleanupÚ
clearcacheÚ_default_mime_typesÚ_cacheÚ_clearcacheÚmasterÚ_reset_cacheÚ	_cleanupsÚ_hash_algorithmÚcache_clearÚ_shadowed_dict_from_mro_tupleÚ_filesbymodnameÚmodulesbyfileÚFastPathÚ__new__)ÚmodÚstreamrn   ro   Úurllib_parseÚurllib_requestrp   rq   rr   rs   rt   ru   rv   Úfrw   rx   Úimportlib_metadatas                    r$   Úclear_cachesr™   °   s‘  € ä�{‰{×!Ñ!Ó#ò (ˆÜ�3Ð-Õ.ØÑ'ð(ô —:‘:œsŸz™z¬3¯>©>¼3¿>¹>ÐJò ˆØÑØ�L‰L�NððÜ�[‰[˜Ñˆð 	�‰Œ
ð'Ü—K‘K Ñ,ˆ	ð 	×Ñ×$Ñ$Ô&ð#Ü—{‘{ >Ñ2ˆð 	× Ñ Ô"ð$ÜŸ™Ð%5Ñ6ˆð 	×!Ñ!Ô#ðÜ—K‘K Ñ,ˆ	ð 	×ÑÔð(Ü—K‘K Ñ,ˆ	ð 	×%Ñ%Ô'ðÜ—+‘+˜iÑ(ˆð 	�‰×ÑÔðÜ—‘˜XÑ&ˆð 	×ÑÔðÜ—+‘+˜iÑ(ˆð ˆŒðÜ—‘˜XÑ&ˆð 	×ÑÔðÜ—‘˜XÑ&ˆð ×!Ñ!ò 	ˆAÙ�Cñ	ð0Ü—K‘K Ñ,ˆ	ð 	×!Ñ!×-Ñ-Ô/ð&Ü—+‘+˜iÑ(ˆð 	×-Ñ-×9Ñ9Ô;Ø×Ñ×%Ñ%Ô'Ø×Ñ×#Ñ#Ô%ð:Ü Ÿ[™[Ð)=Ñ>Ðð 	×#Ñ#×+Ñ+×7Ñ7Õ9øôC ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Úðûô ò Ùðúsü   Â
K2 Â.L ÃL Ä L" Ä$L2 ÅM Å,M ÆM" Æ>M2 ÇN Ç=N È*N" ÉN2 Ê:O Ë2	K?Ë>K?Ì	LÌLÌ	LÌLÌ"	L/Ì.L/Ì2	L?Ì>L?Í	MÍMÍ	MÍMÍ"	M/Í.M/Í2	M?Í>M?Î	NÎNÎ	NÎNÎ"	N/Î.N/Î2	N?Î>N?Ï	OÏOc                  óT  — t        j                  d«      xs d} t        j                  d«      xs d}t        j                  d«      xs d}t        j                  d«      xs d}g }t        j                  d«      r|j                  d«       t        t        d«      r*|j                  d	«       d
||z   v rQ|j                  d«       n?|j                  d«       d| v r|j                  d«       nd
||z   vr|j                  d«       t        j                  d«      }|r|j                  d|› �«       t        t        j                  d«      xs d«      }|r|j                  d«       g }d|v r|j                  d«       nd|v r|j                  d«       t        j                  «       r|j                  d«       |r |j                  dj                  |«      «       g }t        j                  d¬«      r|j                  d«       t        j                  d¬«      r|j                  d«       t        j                  d¬«      r|j                  d «       t        j                  d¬!«      r|j                  d"«       |r |j                  dj                  |«      «       t        t        d#«      r|j                  d$«       t        t        d%«      r|j                  d&«       t        j                  d'«      r|j                  d(«       t        j                  d)«      r|j                  d*«       |S )+NÚCONFIG_ARGSÚ Ú	PY_CFLAGSÚPY_CFLAGS_NODISTÚPY_LDFLAGS_NODISTÚPy_NOGILÚnogilÚgettotalrefcountÚdebugz-DNDEBUGÚwithout_assertÚreleasez--with-assertionsÚwith_assertÚPYTHONFRAMEWORKz
framework=ÚPY_ENABLE_SHAREDÚ0Úsharedz
-flto=thinÚThinLTOz-fltoÚLTOÚPGOú+T©ÚaddressÚASAN©ÚmemoryÚMSAN©ÚubÚUBSAN©ÚthreadÚTSANÚ
getobjectsÚ	TraceRefsÚ	_stats_onÚpystatsÚWITH_VALGRINDÚvalgrindÚWITH_DTRACEÚdtrace)
Ú	sysconfigÚget_config_varr   r{   rU   Úintr   Úcheck_cflags_pgor   Úcheck_sanitizer)	Úconfig_argsÚcflagsÚcflags_nodistÚldflags_nodistÚbuildÚ	frameworkrª   ÚoptimizationsÚ
sanitizerss	            r$   Úget_build_inforÐ   "  s•  € ô ×*Ñ*¨=Ó9Ò?¸R€KÜ×%Ñ% kÓ2Ò8°b€FÜ×,Ñ,Ð-?Ó@ÒFÀB€MÜ×-Ñ-Ð.AÓBÒHÀb€Nà€Eô ×Ñ 
Ô+Ø�‰�WÔäŒsÐ&Ô'à�‰�WÔà˜& =Ñ0Ñ1Ø�L‰LÐ)Õ*à�‰�YÔà +Ñ-Ø�L‰L˜Õ'Ø ¨Ñ 6Ñ7Ø�L‰L˜Ô'ô ×(Ñ(Ð):Ó;€IÙØ�‰�z ) Ð-Ô.ô ”×)Ñ)Ð*<Ó=ÒDÀÓE€FÙØ�‰�XÔð €MØ�~Ñ%Ø×Ñ˜YÕ'Ø	�NÑ	"Ø×Ñ˜UÔ#ä×ÑÔ!à×Ñ˜UÔ#ÙØ�‰�S—X‘X˜mÓ,Ô-ð €JÜ×Ñ tÕ,Ø×Ñ˜&Ô!ä×Ñ dÕ+Ø×Ñ˜&Ô!ä×Ñ $Õ'Ø×Ñ˜'Ô"ä×Ñ dÕ+Ø×Ñ˜&Ô!ÙØ�‰�S—X‘X˜jÓ)Ô*ô Œs�LÔ!Ø�‰�[Ô!äŒs�KÔ Ø�‰�YÔä×Ñ Ô0Ø�‰�ZÔ ä×Ñ Ô.Ø�‰�XÔà€Lr&   Útmp_dirc                 ó”  — | r!t         j                  j                  | «      } �nt        j                  «       rßt
        j                  sqt        j                  d«      } | €9t        j                  d«      } | s"t        j                  d«      } | st        d«      ‚t         j                  j                  | d«      } nrt        j                  d«      } | st        d| ›d�«      ‚t         j                  j                  | d«      } t        j                  | d	¬
«       nt        j                  «       } t         j                  j                  | «      S )NÚabs_builddirÚ
abs_srcdirÚsrcdirz1Could not determine the correct value for tmp_dirrÌ   Úprojectbasez>sysconfig.get_config_var('projectbase') unexpectedly returned z on WASIT)Úexist_ok)r+   r,   Ú
expanduserrÃ   Úis_python_buildr   Úis_wasirÄ   ÚRuntimeErrorr   ÚmakedirsÚtempfileÚ
gettempdirÚabspath)rÑ   s    r$   Úget_temp_dirrà   v  s  € ÙÜ—'‘'×$Ñ$ WÓ-Šô
 ×$Ñ$Ô&Ü—?’?Ü#×2Ñ2°>ÓB�Ø�?Ü'×6Ñ6°|ÓD�GÙ"ô
 #,×":Ñ":¸8Ó"D˜Ù&Ü".Ø Só#ð ô Ÿ'™'Ÿ,™, w°Ó8‘ô $×2Ñ2°=ÓA�ÙÜ&ð1Ø18°¸8ðEóð ô Ÿ'™'Ÿ,™, w°Ó8�ô —‘˜G¨dÖ3ä×)Ñ)Ó+ˆGä�7‰7�?‰?˜7Ó#Ð#r&   c                  ó°   — t         j                  rFt        j                  d«      } | dk(  rt        j                  d«       y t        j                  | «       y y )Nr   iÿ  é   )r   Úis_emscriptenr+   Úumask)Úold_masks    r$   Ú	fix_umaskræ   ¢  s>   € Ü×Òô —8‘8˜A“;ˆØ�uÒÜ�H‰H�U�Oä�H‰H�XÕð r&   FÚ
parent_dirÚworkerc                 óP  — t         j                  st         j                  rt        j                  dd«      }nt        j                  «       }|rt        t        |«      z   }nt        t        |«      z   }|t        j                  z  }t
        j                  j                  | |«      }|S )Nr   i@B )r   rã   rÚ   ÚrandomÚrandintr+   ÚgetpidÚWORK_DIR_PREFIXr@   ÚWORKER_WORK_DIR_PREFIXr   ÚFS_NONASCIIr,   r   )rç   rè   ÚnounceÚwork_dirs       r$   Úget_work_dirrò   ­  sv   € ô ×Ò¤§¢Ü—‘  9Ó-‰ä—‘“ˆáÜ"¤S¨£[Ñ0‰ä)¬C°«KÑ7ˆØ”	×%Ñ%Ñ%€HÜ�w‰w�|‰|˜J¨Ó1€HØ€Or&   c               #   óÖ   K  — 	 d –— y # t         $ rT} t        j                  rt        j                  t
        d¬«       t        j                  | j                  «       Y d } ~ y d } ~ ww xY w­w)NT)Úexit)	Ú
SystemExitr   Úcan_start_threadÚfaulthandlerÚdump_traceback_laterÚEXIT_TIMEOUTrU   rô   Úcode)Úexcs    r$   Úexit_timeoutrü   Á  sK   è ø€ ðÜøÜò ô ×,Ò,Ü×-Ñ-¬lÀÕFÜ�‰�—‘×Ñûðüs+   ‚A)„	 ˆA)‰	A&’A
A!ÁA)Á!A&Á&A)Ú	test_nameÚverbosec           
      óp  — t         j                  }t        j                  j	                  |«      sy t        j                  j                  |«      rdd l}d|j                  }}nAt        j                  j                  |«      rdt        j                  }}nt        d|›d�«      ‚|rt        | › d|› d|›�«       dt        _        	 dd l}t        j                  ||j                   |j"                  z  |j$                  z  «        ||«       y # t&        $ r }t        | › d|› d|›d	|› �«       Y d }~y d }~ww xY w)
Nr   Ú	directoryrF   zos.path says z) exists but is neither directory nor filez left behind r   Tz and it couldn't be removed: )r   ÚTESTFNr+   r,   ÚexistsÚisdirÚshutilÚrmtreeÚisfileÚunlinkrÛ   rQ   r   rT   ÚstatÚchmodÚS_IRWXUÚS_IRWXGÚS_IRWXOÚ	Exception)rý   rþ   r/   r  ÚkindÚnukerr  rû   s           r$   Úremove_testfnr  Í  s  € ô ×Ñ€DÜ�7‰7�>‰>˜$ÔØô 
‡w�w‡}�}�TÔÛØ! 6§=¡=ˆe‰Ü	�‰�‰˜Ô	ØœbŸi™iˆe‰ä˜]¨4¨(ð 30ð 1ó 2ð 	2ñ Ü˜˜ =°°°a¸°xÐ@ÔAØ&*ŒÔ#ð<Ûä
�‰��t—|‘| d§l¡lÑ2°T·\±\ÑAÔBÙˆd�øÜò <Ü˜˜ =°°°a¸°xð @5Ø58°Eð;÷ 	<ñ 	<ûð<ús   ÃAD Ä	D5ÄD0Ä0D5Útest_dirc                 ó6   — | j                  d«      s|r| S d| z   S )Nztest.)Ú
startswith)rý   r  s     r$   Úabs_module_namer  ò  s%   € Ø×Ñ˜GÔ$©ØÐð ˜Ñ"Ð"r&   )Ú
setUpClassÚtearDownClassÚsetUpModuleÚtearDownModule)Úis_errorc                óÞ   — | j                  d«      d   }|rV|t        v rN| j                  d«      ry | j                  d«      }| j                  d«      }| |dz   | j                  d«      d   S |S )	Nr   r   )zsetUpModule (ztearDownModule (ú(ú)r4   ú.éÿÿÿÿ)ÚsplitÚ_TEST_LIFECYCLE_HOOKSr  Úindex)Útest_full_namer  Ú
short_nameÚlparÚrpars        r$   Únormalize_test_namer&    s   € Ø×%Ñ% cÓ*¨1Ñ-€JÙ�JÔ"7Ñ7Ø×$Ñ$Ð%JÔKð ð ×#Ñ# CÓ(ˆØ×#Ñ# CÓ(ˆØ˜d Q™h¨Ð-×3Ñ3°CÓ8¸Ñ<Ð<ØÐr&   c            
      ó^  — 	 ddl } | j                  | j                  «      \  }}d}||k  rC||k  r=t	        ||«      }	 | j                  | j                  ||f«       t        d|› d|› �«       yyy# t        $ r Y yw xY w# t        t        f$ r}t        d|› d|› d|› d	�«       Y d}~yd}~ww xY w)
zÀ
    On macOS the default fd limit (RLIMIT_NOFILE) is sometimes too low (256)
    for our test suite to succeed. Raise it to something more reasonable. 1024
    is a common Linux default.
    r   Ni   zRaised RLIMIT_NOFILE: z -> z#Unable to raise RLIMIT_NOFILE from z to z: r  )
ÚresourceÚImportErrorÚ	getrlimitÚRLIMIT_NOFILEÚminÚ	setrlimitrG   Ú
ValueErrorÚOSErrorrQ   )r(  Úfd_limitÚmax_fdsÚdesired_fdsÚnew_fd_limitÚerrs         r$   Úadjust_rlimit_nofiler5    sÚ   € ðÛð !×*Ñ*¨8×+AÑ+AÓBÑ€Hˆgà€Kà�+Ò (¨WÒ"4Ü˜;¨Ó0ˆð	5Ø×Ñ˜x×5Ñ5Ø ,¨gÐ6ô8äÐ*¨8¨*°D¸¸ÐGÕHð #5Ðøô ò Ùðûô œGÐ$ò 	5ÜÐ?À¸zÈØ)˜N¨"¨S¨E°ð4÷ 5ñ 5ûð	5ús(   ‚A/ ½/A> Á/	A;Á:A;Á>B,ÂB'Â'B,c                  ór   — t         j                  j                  d«      x} €t        j                  d«      } | S )NÚ_PYTHON_HOSTRUNNERÚ
HOSTRUNNER)r+   ÚenvironÚgetrÃ   rÄ   )Ú
hostrunners    r$   Úget_host_runnerr<  1  s1   € Ü—j‘j—n‘nÐ%9Ó:Ð:ˆ
ÐCÜ×-Ñ-¨lÓ;ˆ
ØÐr&   c                  ó&   — dt         j                  v S )NÚ_PYTHON_HOST_PLATFORM)r+   r9  r6   r&   r$   Úis_cross_compiledr?  7  s   € Ø#¤r§z¡zÐ1Ð2r&   Úuse_resourcesc                 óŒ  — t        | «      } t        t        «      }dg}t        || z
  «      D ]  }|j                  d|› �«       Œ t        | |z
  «      D ]  }|j                  |› «       Œ dj	                  |«      }d|› �}dj	                  t        | «      «      }dt        | «      › d|› �}t        |«      t        |«      k  r|S |S )NÚallú-ú,zresources: zresources (z): )ÚsetÚALL_RESOURCESrJ   r   r   Úlen)r@  Úall_resourcesÚrelative_allr/   Úall_textÚtexts         r$   Úformat_resourcesrL  ;  sØ   € Ü˜Ó&€MÜœÓ&€Mð �7€LÜ�} }Ñ4Ó5ò (ˆØ×Ñ˜a ˜v˜JÕ'ð(ä�} }Ñ4Ó5ò 'ˆØ×Ñ˜t˜fÕ&ð'à�x‰x˜Ó%€HØ˜X˜JÐ'€Hð �8‰8”F˜=Ó)Ó*€DØœ˜]Ó+Ð,¨C°¨vÐ6€Dô ˆ8ƒ}œ˜D›	Ò!Øˆàˆr&   c                  ó†   — t        t        d«      rt        t        j                  d«      «      S t        j                  «       S )NÚsched_getaffinityr   )r{   r+   rG  rN  Ú	cpu_countr6   r&   r$   Úprocess_cpu_countrP  S  s/   € ÜŒrÐ&Ô'Ü”2×'Ñ'¨Ó*Ó+Ð+ä�|‰|‹~Ðr&   Ú
python_cmdc                 ó°  — t        dt        j                  «       gt        j                  j                  «       ¢­Ž  t        dt        j                  d¬«      dt        j                  z  «       t        ddj                  t        «       «      «       t        dt        j                  «       «       t        j                  «       }|r%t        «       }|r||k7  r|› d|› d	�}t        d
|«       t        dt        j                  «       ›dt        j                  «       ›�«       | rt!        | «      }t        d|› �«       nt        d«       t#        «       }|rt        d«       |rÁt%        j                  |«      }t        d|› �«       g |¢d‘d‘}t'        j(                  |t&        j*                  dt,        j.                  ¬«      }|j0                  j3                  dd«      j5                  «       }	|	rt        d|	› �«       n@|j6                  r4t        d|j6                  › d�«       nt9        «       }
|
rt        d|
› �«       t;        j<                  d¬«      }t;        j<                  d¬«      }t;        j<                  d¬«      }t;        j<                  d¬«      }g }|r|j?                  d«       |r|j?                  d«       |r|j?                  d«       |r|j?                  d «       |rit        d!d"j                  |«      › �«       |d#f|d$f|d%f|d&ffD ];  \  }}t        j@                  jC                  |«      }|sŒ(|€Œ+t        d|› d'|›�«       Œ= t        d¬(«       y ))Nz==T)Úaliasedz	%s-endianz== Python build:r   z== cwd:z (process) / z	 (system)z== CPU count:z== encodings: locale=z FS=z== zL== resources: all test resources are disabled, use -u option to unskip testsz== cross compiled: Yesz== host python: z-mÚplatform)r|   rK  Úcwdú
z== host platform: z1== host platform: <command failed with exit code ú>z== host runner: r¯   r²   rµ   r¸   r°   r³   zundefined behaviorr¹   z== sanitizers: z, ÚASAN_OPTIONSÚMSAN_OPTIONSÚUBSAN_OPTIONSÚTSAN_OPTIONSú=)rZ   )"rG   rT  Úpython_implementationrU   Úversionr  Ú	byteorderr   rÐ   r+   ÚgetcwdrO  rP  ÚlocaleÚgetencodingÚgetfilesystemencodingrL  r?  Úshlexr   ÚrunÚPIPEr   ÚSAVEDCWDr|   ÚreplaceÚstripÚ
returncoder<  r   rÇ   r   r9  r:  )r@  rQ  rO  ÚaffinityrK  Úcross_compileÚcmdÚget_cmdÚprocr|   r;  ÚasanÚmsanÚubsanÚtsanrÏ   Ú	sanitizerÚenv_varÚoptionss                      r$   Údisplay_headerrw  Z  sõ  € ô 
ˆ$”×.Ñ.Ó0ÐG´3·;±;×3DÑ3DÓ3FÓGÜ	ˆ$”×!Ñ!¨$Ô/Ø¤§¡Ñ-ô/ä	Ð
˜cŸh™h¤~Ó'7Ó8Ô9Ü	ˆ)”R—Y‘Y“[Ô!äŸ™›€IÙÜ$Ó&ˆÙ˜ IÒ-Ø#˜* M°)°¸IÐFˆIÜˆo˜yÔ)Ý	Ü×ÑÕ!¤3×#<Ñ#<Ô#>ð@ô Añ Ü Ó.ˆÜ��D�6ˆlÕäð .ô 	/ô &Ó'€MÙÜÐ&Ô'ÙÜ�j‰j˜Ó$ˆÜÐ   Ð&Ô'à1�JÐ1 Ð1 jÐ1ˆÜ�~‰~ØÜ—?‘?ØÜ×"Ñ"ô	$ˆð
 —‘×$Ñ$ T¨3Ó/×5Ñ5Ó7ˆÙÜÐ& v hÐ/Õ0Ø�_Š_ÜÐEÀdÇoÁoÐEVÐVWÐXÕYä$Ó&ˆ
ÙÜÐ$ Z LÐ1Ô2ô ×"Ñ"¨4Ô0€DÜ×"Ñ"¨$Ô/€DÜ×#Ñ# tÔ,€EÜ×"Ñ"¨$Ô/€DØ€JÙØ×Ñ˜)Ô$ÙØ×Ñ˜(Ô#ÙØ×ÑÐ.Ô/ÙØ×Ñ˜(Ô#ÙÜ� §	¡	¨*Ó 5Ð6Ð7Ô8à�>Ð"Ø�>Ð"Ø�OÐ$Ø�>Ð"ð	#
ò 	3ÑˆI�wô —Z‘Z—^‘^ GÓ,ˆGÚ˜WÑ0Ü˜˜G˜9 A g [Ð1Õ2ð	3ô 
�Ör&   c                 óŒ  — dd l }t        j                  j                  |j	                  | «      t
        dz   «      }t        d| z  «       |j                  |«      D ]h  }t        j                  j                  |«      r$t        d|z  «       t        j                  |«       ŒFt        d|z  «       t        j                  |«       Œj y )Nr   Ú*zCleanup %s directoryzRemove directory: %szRemove file: %s)Úglobr+   r,   r   ÚescapeÚ
TMP_PREFIXrG   r  r   r  r  )rÑ   rz  r,   r/   s       r$   Úcleanup_temp_dirr}  ¨  s”   € Ûä�7‰7�<‰<˜Ÿ™ GÓ,¬j¸3Ñ.>Ó?€DÜ	Ð
  7Ñ
*Ô+Ø—	‘	˜$“ò #ˆÜ�7‰7�=‰=˜ÔÜÐ(¨4Ñ/Ô0Ü×Ñ˜TÕ"äÐ# dÑ*Ô+Ü×Ñ˜TÕ"ñ#r&   ÚSTATUS_ACCESS_VIOLATIONÚSTATUS_STACK_OVERFLOWÚSTATUS_CONTROL_C_EXIT)l       l   ý    l   :   c                 ó¢   — | dk  r#|  }	 t        j                  |«      j                  S 	 t        |    S # t        $ r Y Œw xY w# t
        $ r Y y w xY wrh   )ÚsignalÚSignalsr/   r.  ÚWINDOWS_STATUSr€   )ÚexitcodeÚsignums     r$   Úget_signal_namer‡  »  sd   € Ø�!‚|Ø�ˆð	Ü—>‘> &Ó)×.Ñ.Ð.ðÜ˜hÑ'Ð'øô	 ò 	Ùð	ûô
 ò Øàðús   Š3 ªA ³	?¾?Á	AÁAr?   )éF   é   N)F)LÚ
contextlibr÷   ra  r   Úos.pathr+   rT  rê   rd  r‚  r   rU   rÃ   rÝ   rH   Úcollections.abcr   r   Útestr   Útest.supportr   r   r|  rí   rî   rù   rF  ÚRESOURCE_NAMESr@   ÚStrPathÚTestNameÚStrJSONÚtupleÚ	TestTupleÚlistÚTestListÚboolÚ
TestFilterÚFilterTupleÚdictÚ
FilterDictr%   r2   r9   r<   rO   rQ   rY   r]   r`   rd   rf   rk   r™   rÐ   rà   ræ   rò   Úcontextmanagerrü   rÅ   r  r  Ú	frozensetr   r&  r5  r<  r?  rL  rP  rw  r}  r„  r‡  r6   r&   r$   ú<module>rž     sI  ðÛ Û Û Û Û Û Û Û Û Û Û 
Û Û Û ß .å Ý "Ý )ð
 €
Ø€Ø(¨9Ñ4Ð ð
 €ðP€ð Ð!=Ñ=€ð €Ø€Ø
€Ø�(˜C�-Ñ €	Ø�‰>€ð �%˜ $˜Ñ'Ñ(€
Ø�H˜c�MÑ"€Ø�(˜KÐ'Ñ(€
òð2"˜4 ™9 tÑ+ð "°ó "óòóòð Ð ò ò2ð !Ð ò ò9òo:òdQñh)$˜' D™.ð )$°Gó )$òXñ˜Wð ¨dð ¸wó ð( ×Ññó ðð"<˜Xð "<°ð "<¸ó "<ðJ#˜xð #°7¸T±>ð #Àhó #ñ "ð #ó Ð ð
 5:ô ò*5ò4ò3ð H¨S¡Mó ò0ðK %¨¨S¨¡/ð KØ$ S¨# X™°Ñ5óKð\#˜gó #ð *Ø'Ø'ñ€ór&   