grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a à”|j�ã@sôddladdlZddladdlZddlZtjdkZerHddlZddl Z nddl Zer^ddgZ ndgZ e dZ e e ƒZd e ¡Z dd„e DƒZdZd ZeeZd d „Zd d „Zdd„Zdd„ZerÊdd„Zndd„Zdd„Zdd„Zdd„Zdd„Zdd„Ze�r dd „Znd!d „Zdd#d$„Ze ej!ƒZ"d% #d&d'¡d(Z$e% &e$d'¡Z'd)Z(d*Z)d+gZ*d,gZ+e+Z,Z-d€dd-œd.d/„Z.d0d1„Z/d2d3„Z0d4d5„Z1d6d7„Z2d8d9„Z3d:d;„Z4dd?„Z6d@dA„Z7d�dBdC„Z8d‚dDdE„Z9dƒdGdH„Z:dIdJ„Z;e<ƒZ=d„de=dKœdLdM„Z>GdNdO„dOƒZ?GdPdQ„dQƒZ@GdRdS„dSe@ƒZAGdTdU„dUƒZBGdVdW„dWeBeAƒZCGdXdY„dYeBe@ƒZDgZEGdZd[„d[eBe@ƒZFGd\d]„d]ƒZGGd^d_„d_ƒZHGd`da„daƒZIGdbdc„dcƒZJd…ddde„ZKdfdg„ZLdhdi„ZMdjdk„ZNdldmdndodpdqdrdsdtdudvdwdxdydzd{d|œZOd}d~„ZPdS)†éNÚwin32ú\ú/ÚcCsh|]}d|›�’qS©ú:©©Ú.0Úsrrú5/usr/lib64/python3.9/importlib/_bootstrap_external.pyÚ /ór )Úwin)ÚcygwinÚdarwincs<tj t¡r0tj t¡rd‰nd‰‡fdd„}ndd„}|S)NÚ PYTHONCASEOKs PYTHONCASEOKcstjj oˆtjvS©N)ÚsysÚflagsÚignore_environmentÚ_osÚenvironr©Úkeyrr Ú _relax_case@sz%_make_relax_case.._relax_casecSsdS)NFrrrrr rDs)rÚplatformÚ startswithÚ_CASE_INSENSITIVE_PLATFORMSÚ#_CASE_INSENSITIVE_PLATFORMS_STR_KEY)rrrr Ú_make_relax_case9s  r cCst|ƒd@ dd¡S)NìÿÿéÚlittle)ÚintÚto_bytes)Úxrrr Ú _pack_uint32Jsr'cCs t |d¡S©Nr#©r$Ú from_bytes©Údatarrr Ú_unpack_uint32Osr-cCs t |d¡Sr(r)r+rrr Ú_unpack_uint16Tsr.cGsä|sdSt|ƒdkr|dSd}g}ttj|ƒD]z\}}| t¡sL| t¡rf| t¡pX|}t |g}q0| d¡r˜|  ¡|  ¡krŒ|}|g}qª|  |¡q0|pž|}|  |¡q0dd„|Dƒ}t|ƒdkrÖ|dsÖ|t S|t   |¡S)NrérrcSsg|]}|r| t¡‘qSr©ÚrstripÚpath_separators©r Úprrr Ú rrú_path_join..) ÚlenÚmaprÚ_path_splitrootrÚpath_sep_tupleÚendswithr1r2Úpath_sepÚcasefoldÚappendÚjoin)Ú path_partsÚrootÚpathZnew_rootÚtailrrr Ú _path_join[s*     rDcGst dd„|Dƒ¡S)NcSsg|]}|r| t¡‘qSrr0)r Úpartrrr r5{sÿr6)r<r?)r@rrr rDys ÿcsBt‡fdd„tDƒƒ}|dkr&dˆfSˆd|…ˆ|dd…fS)Nc3s|]}ˆ |¡VqdSr)Úrfindr3©rBrr Ú �rz_path_split..rrr/)Úmaxr2)rBÚirrGr Ú _path_splitsrKcCs t |¡Sr)rÚstatrGrrr Ú _path_stat‡srMcCs0z t|ƒ}Wnty YdS0|jd@|kS)NFið)rMÚOSErrorÚst_mode)rBÚmodeÚ stat_inforrr Ú_path_is_mode_type‘s   rRcCs t|dƒS)Ni€)rRrGrrr Ú _path_isfilešsrScCs|s t ¡}t|dƒS)Ni@)rÚgetcwdrRrGrrr Ú _path_isdirŸsrUcCs>|sdSt |¡d dd¡}t|ƒdko<| d¡p<| d¡S)NFrrrr/z\\)rr9Úreplacer7rr;)rBrArrr Ú _path_isabs§srWcCs | t¡Sr)rr2rGrrr rW¯sé¶c Cs²d |t|ƒ¡}t |tjtjBtjB|d@¡}zFt |d¡�}|  |¡Wdƒn1s^0Yt  ||¡Wn6t y¬zt  |¡Wnt y¤Yn0‚Yn0dS)Nú{}.{}rXÚwb) ÚformatÚidrÚopenÚO_EXCLÚO_CREATÚO_WRONLYÚ_ioÚFileIOÚwriterVrNÚunlink)rBr,rPÚpath_tmpÚfdÚfilerrr Ú _write_atomic´sÿ(  rhia ér#s Ú __pycache__zopt-z.pyz.pyc)Ú optimizationc CsX|dur4t dt¡|dur(d}t|ƒ‚|r0dnd}t |¡}t|ƒ\}}| d¡\}}}tj j } | durrt dƒ‚d  |r~|n||| g¡} |dur¬tj jdkr¤d}ntj j}t|ƒ}|dkrà| ¡sÒtd |¡ƒ‚d  | t|¡} | td} tjdu�rLt|ƒ�stt ¡|ƒ}|dd k�r8|dtv�r8|d d…}ttj| t¡| ƒSt|t| ƒS) NzFthe debug_override parameter is deprecated; use 'optimization' insteadz2debug_override or optimization must be set to Nonerr/Ú.ú$sys.implementation.cache_tag is Nonerz{!r} is not alphanumericz{}.{}{}rri)Ú _warningsÚwarnÚDeprecationWarningÚ TypeErrorrÚfspathrKÚ rpartitionrÚimplementationÚ cache_tagÚNotImplementedErrorr?rÚoptimizeÚstrÚisalnumÚ ValueErrorr[Ú_OPTÚBYTECODE_SUFFIXESÚpycache_prefixrWrDrTr2ÚlstripÚ_PYCACHE) rBÚdebug_overriderkÚmessageÚheadrCÚbaseÚsepÚrestÚtagÚalmost_filenameÚfilenamerrr Úcache_from_sourceisHÿ       ýr‰c Cs.tjjdurtdƒ‚t |¡}t|ƒ\}}d}tjdurftj t ¡}|  |t ¡rf|t |ƒd…}d}|s�t|ƒ\}}|t kr�tt ›d|›�ƒ‚| d¡}|dvr²td|›�ƒ‚n\|dk�r| dd ¡d }|  t¡sätd t›�ƒ‚|t tƒd…}| ¡�std |›d �ƒ‚| d¡d} t|| tdƒS)NrmFTz not bottom-level directory in rl>riézexpected only 2 or 3 dots in rŠriéþÿÿÿz5optimization portion of filename does not start with zoptimization level z is not an alphanumeric valuer)rrtrurvrrrrKr}r1r2rr<r7rrzÚcountÚrsplitr{ryÚ partitionrDÚSOURCE_SUFFIXES) rBr‚Úpycache_filenameÚfound_in_pycache_prefixÚ stripped_pathÚpycacheÚ dot_countrkÚ opt_levelÚ base_filenamerrr Úsource_from_cache°s<      ÿ   ÿ r—c Cs|t|ƒdkrdS| d¡\}}}|r8| ¡dd…dkr<|Sz t|ƒ}Wn"ttfyj|dd…}Yn0t|ƒrx|S|S)NrrléýÿÿÿéÿÿÿÿÚpy)r7rsÚlowerr—rvrzrS)Ú bytecode_pathr…Ú_Ú extensionÚ source_pathrrr Ú_get_sourcefileØs  r cCsH| ttƒ¡r.z t|ƒWSty*YqD0n| ttƒ¡r@|SdSdSr)r;Útupler�r‰rvr|)rˆrrr Ú _get_cachedës  r¢cCs2zt|ƒj}Wnty$d}Yn0|dO}|S)NrXé€)rMrOrN)rBrPrrr Ú _calc_mode÷s   r¤csBd‡fdd„ }z tj}Wnty2dd„}Yn0||ˆƒ|S)NcsH|dur|j}n |j|kr0td|j|f|d�‚ˆ||g|¢Ri|¤ŽS)Nzloader for %s cannot handle %s©Úname)r¦Ú ImportError)Úselfr¦ÚargsÚkwargs©Úmethodrr Ú_check_name_wrapper s ÿÿz(_check_name.._check_name_wrappercSs8dD] }t||ƒrt||t||ƒƒq|j |j¡dS)N)Ú __module__Ú__name__Ú __qualname__Ú__doc__)ÚhasattrÚsetattrÚgetattrÚ__dict__Úupdate)ÚnewÚoldrVrrr Ú_wraps z_check_name.._wrap)N)Ú _bootstrapr¹Ú NameError)r¬r­r¹rr«r Ú _check_names   r¼cCs<| |¡\}}|dur8t|ƒr8d}t | |d¡t¡|S)Nz,Not importing directory {}: missing __init__r)Ú find_loaderr7rnror[Ú ImportWarning)r¨ÚfullnameÚloaderÚportionsÚmsgrrr Ú_find_module_shims rÃcCs¦|dd…}|tkr@d|›d|›�}t d|¡t|fi|¤Ž‚t|ƒdkrjd|›�}t d|¡t|ƒ‚t|dd…ƒ}|d@r¢d |›d |›�}t|fi|¤Ž‚|S) Nr"zbad magic number in z: ú{}éz(reached EOF while reading pyc header of ééüÿÿÿzinvalid flags z in )Ú MAGIC_NUMBERrºÚ_verbose_messager§r7ÚEOFErrorr-)r,r¦Ú exc_detailsÚmagicr�rrrr Ú _classify_pyc0s     rÍcCsxt|dd…ƒ|d@kr>d|›�}t d|¡t|fi|¤Ž‚|durtt|dd…ƒ|d@krttd|›�fi|¤Ž‚dS)NrÆé r!zbytecode is stale for rÄrÅ)r-rºrÉr§)r,Ú source_mtimeÚ source_sizer¦rËr�rrr Ú_validate_timestamp_pycQs  ÿrÑcCs*|dd…|kr&td|›�fi|¤Ž‚dS)NrÆrÅz.hash in bytecode doesn't match hash of source )r§)r,Ú source_hashr¦rËrrr Ú_validate_hash_pycms ÿþrÓcCsPt |¡}t|tƒr8t d|¡|dur4t ||¡|Std  |¡||d�‚dS)Nzcode object from {!r}zNon-code object in {!r}©r¦rB) ÚmarshalÚloadsÚ isinstanceÚ _code_typerºrÉÚ_impÚ_fix_co_filenamer§r[)r,r¦rœrŸÚcoderrr Ú_compile_bytecode…s     ÿrÜcCsFttƒ}| tdƒ¡| t|ƒ¡| t|ƒ¡| t |¡¡|S©Nr©Ú bytearrayrÈÚextendr'rÕÚdumps)rÛÚmtimerÐr,rrr Ú_code_to_timestamp_pyc’s rãTcCs@ttƒ}d|d>B}| t|ƒ¡| |¡| t |¡¡|S)Nr/rÞ)rÛrÒÚcheckedr,rrrr Ú_code_to_hash_pycœs   råcCs>ddl}t |¡j}| |¡}t dd¡}| | |d¡¡S)NrT)ÚtokenizeraÚBytesIOÚreadlineÚdetect_encodingÚIncrementalNewlineDecoderÚdecode)Ú source_bytesræÚsource_bytes_readlineÚencodingÚnewline_decoderrrr Ú decode_source§s    rð©rÀÚsubmodule_search_locationsc Cs |dur:d}t|dƒrDz| |¡}WqDty6YqD0n t |¡}tj|||d�}d|_|dur˜tƒD]*\}}|  t |ƒ¡rh|||ƒ}||_ q˜qhdS|t urØt|dƒrÞz|  |¡}WntyÊYqÞ0|rÞg|_n||_|jgk�r|�rt|ƒd}|j |¡|S)Nz Ú get_filename©ÚoriginTÚ is_packager)r²rór§rrrrºÚ ModuleSpecÚ _set_fileattrÚ_get_supported_file_loadersr;r¡rÀÚ _POPULATEröròrKr>) r¦ÚlocationrÀròÚspecÚ loader_classÚsuffixesröÚdirnamerrr Úspec_from_file_location¸s>          rc@sLeZdZdZdZdZedd„ƒZedd„ƒZed d d „ƒZ edd d „ƒZ dS)ÚWindowsRegistryFinderz;Software\Python\PythonCore\{sys_version}\Modules\{fullname}zASoftware\Python\PythonCore\{sys_version}\Modules\{fullname}\DebugFcCs6zt tj|¡WSty0t tj|¡YS0dSr)ÚwinregÚOpenKeyÚHKEY_CURRENT_USERrNÚHKEY_LOCAL_MACHINE)Úclsrrrr Ú_open_registrys z$WindowsRegistryFinder._open_registrycCs„|jr|j}n|j}|j|dtjdd…d�}z:| |¡�}t |d¡}Wdƒn1s^0YWnt y~YdS0|S)Nz%d.%dri)r¿Ú sys_versionr) Ú DEBUG_BUILDÚREGISTRY_KEY_DEBUGÚ REGISTRY_KEYr[rÚ version_inforrÚ QueryValuerN)rr¿Ú registry_keyrÚhkeyÚfilepathrrr Ú_search_registrysÿ . z&WindowsRegistryFinder._search_registryNcCsx| |¡}|durdSz t|ƒWnty6YdS0tƒD]4\}}| t|ƒ¡r>tj||||ƒ|d�}|Sq>dS)Nrô)rrMrNrùr;r¡rºÚspec_from_loader)rr¿rBÚtargetrrÀrþrürrr Ú find_specs   þzWindowsRegistryFinder.find_speccCs"| ||¡}|dur|jSdSdSr©rrÀ©rr¿rBrürrr Ú find_module.s z!WindowsRegistryFinder.find_module)NN)N) r¯r®r°r r r Ú classmethodrrrrrrrr rüsÿÿ   rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú _LoaderBasicscCs@t| |¡ƒd}| dd¡d}| d¡d}|dko>|dkS)Nr/rlrriÚ__init__)rKrór�rs)r¨r¿rˆÚ filename_baseÚ tail_namerrr röAsz_LoaderBasics.is_packagecCsdSrr©r¨rürrr Ú create_moduleIsz_LoaderBasics.create_modulecCs8| |j¡}|dur$td |j¡ƒ‚t t||j¡dS)Nz4cannot load module {!r} when get_code() returns None)Úget_coder¯r§r[rºÚ_call_with_frames_removedÚexecrµ)r¨ÚmodulerÛrrr Ú exec_moduleLs  ÿz_LoaderBasics.exec_modulecCs t ||¡Sr)rºÚ_load_module_shim©r¨r¿rrr Ú load_moduleTsz_LoaderBasics.load_moduleN)r¯r®r°rörr#r&rrrr r<src@sJeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d œd d„Zdd„Z dS)Ú SourceLoadercCst‚dSr)rN©r¨rBrrr Ú path_mtime[szSourceLoader.path_mtimecCsd| |¡iS)Nrâ)r)r(rrr Ú path_statscs zSourceLoader.path_statscCs | ||¡Sr)Úset_data)r¨rŸÚ cache_pathr,rrr Ú_cache_bytecodeqszSourceLoader._cache_bytecodecCsdSrr)r¨rBr,rrr r+{szSourceLoader.set_datac CsT| |¡}z| |¡}Wn2tyJ}ztd|d�|‚WYd}~n d}~00t|ƒS)Nz'source not available through get_data()r¥)róÚget_datarNr§rð)r¨r¿rBrìÚexcrrr Ú get_source‚s ÿÿzSourceLoader.get_sourcer™)Ú _optimizecCstjt||dd|d�S)Nr!T)Ú dont_inheritrw)rºr Úcompile)r¨r,rBr1rrr Úsource_to_codeŒs ÿzSourceLoader.source_to_codec Cs| |¡}d}d}d}d}d}z t|ƒ}WntyBd}Y�n*0z| |¡} WntyfY�n0t| dƒ}z| |¡} Wnty”YnØ0||dœ} z”t| || ƒ} t| ƒdd…} | d@dk}|�r| d@dk}t j d k�r2|søt j d k�r2| |¡}t   t |¡}t | ||| ƒnt| || d || ƒWnttf�yLYn 0t d ||¡t| |||d �S|du�r€| |¡}| ||¡}t d|¡tj�s|du�r|du�r|�rÞ|du�rÐt   t |¡}t|||ƒ} nt||t|ƒƒ} z| ||| ¡Wnt�yYn0|S)NFTrârÔrÅr/rriÚneverÚalwaysÚsizez {} matches {})r¦rœrŸzcode object from {})rór‰rvr*rNr$r.rÍÚ memoryviewrÙÚcheck_hash_based_pycsrÒÚ_RAW_MAGIC_NUMBERrÓrÑr§rÊrºrÉrÜr4rÚdont_write_bytecoderårãr7r-)r¨r¿rŸrÏrìrÒÚ hash_basedÚ check_sourcerœÚstr,rËrÚ bytes_dataÚ code_objectrrr r”sœ       þ    ÿþ þÿûÿþ    ÿ ÿÿzSourceLoader.get_codeN) r¯r®r°r)r*r-r+r0r4rrrrr r'Ys  r'csxeZdZdd„Zdd„Zdd„Ze‡fdd„ƒZed d „ƒZd d „Z ed d„ƒZ dd„Z dd„Z dd„Z dd„Z‡ZS)Ú FileLoadercCs||_||_dSrrÔ)r¨r¿rBrrr rïszFileLoader.__init__cCs|j|jko|j|jkSr©Ú __class__rµ©r¨Úotherrrr Ú__eq__õs  ÿzFileLoader.__eq__cCst|jƒt|jƒASr©Úhashr¦rB©r¨rrr Ú__hash__ùszFileLoader.__hash__cstt|ƒ |¡Sr)ÚsuperrAr&r%©rCrr r&üs zFileLoader.load_modulecCs|jSrrGr%rrr rószFileLoader.get_filenamecCs~t|ttfƒrFt t|ƒ¡�}| ¡WdƒS1s:0Yn4t |d¡�}| ¡WdƒS1sp0YdS)NÚr)r×r'ÚExtensionFileLoaderraÚ open_coderxÚreadrb)r¨rBrgrrr r. s (zFileLoader.get_datacCs| |¡r|SdSr)rö©r¨r"rrr Úget_resource_readers zFileLoader.get_resource_readercCs tt|jƒd|ƒ}t |d¡S)NrrM)rDrKrBrarb©r¨ÚresourcerBrrr Ú open_resourceszFileLoader.open_resourcecCs&| |¡st‚tt|jƒd|ƒ}|SrÝ)Ú is_resourceÚFileNotFoundErrorrDrKrBrSrrr Ú resource_path"s zFileLoader.resource_pathcCs(t|vr dStt|jƒd|ƒ}t|ƒS)NFr)r<rDrKrBrS©r¨r¦rBrrr rV(szFileLoader.is_resourcecCstt t|jƒd¡ƒSrÝ)ÚiterrÚlistdirrKrBrIrrr Úcontents.szFileLoader.contents)r¯r®r°rrFrJr¼r&rór.rRrUrXrVr\Ú __classcell__rrrLr rAês    rAc@s*eZdZdd„Zdd„Zddœdd„Zd S) ÚSourceFileLoadercCst|ƒ}|j|jdœS)N)râr7)rMÚst_mtimeÚst_size)r¨rBr>rrr r*6szSourceFileLoader.path_statscCst|ƒ}|j|||d�S)N©Ú_mode)r¤r+)r¨rŸrœr,rPrrr r-;sz SourceFileLoader._cache_bytecoderXrac Csüt|ƒ\}}g}|r4t|ƒs4t|ƒ\}}| |¡qt|ƒD]h}t||ƒ}zt |¡Wq<tynYqÚreversedrDrÚmkdirÚFileExistsErrorrNrºrÉrh) r¨rBr,rbÚparentrˆr@rEr/rrr r+@s.       ÿ ÿzSourceFileLoader.set_dataN)r¯r®r°r*r-r+rrrr r^2sr^c@seZdZdd„Zdd„ZdS)ÚSourcelessFileLoadercCsD| |¡}| |¡}||dœ}t|||ƒtt|ƒdd…||d�S)NrÔrÅ)r¦rœ)rór.rÍrÜr8)r¨r¿rBr,rËrrr rcs  þ ýzSourcelessFileLoader.get_codecCsdSrrr%rrr r0sszSourcelessFileLoader.get_sourceN)r¯r®r°rr0rrrr rg_srgc@sXeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z e dd„ƒZ dS)rNcCs>||_t|ƒs4ztt ¡|ƒ}Wnty2Yn0||_dSr)r¦rWrDrrTrNrBrYrrr r„s zExtensionFileLoader.__init__cCs|j|jko|j|jkSrrBrDrrr rF�s  ÿzExtensionFileLoader.__eq__cCst|jƒt|jƒASrrGrIrrr rJ‘szExtensionFileLoader.__hash__cCs$t tj|¡}t d|j|j¡|S)Nz&extension module {!r} loaded from {!r})rºr rÙÚcreate_dynamicrÉr¦rB)r¨rür"rrr r”sÿÿz!ExtensionFileLoader.create_modulecCs$t tj|¡t d|j|j¡dS)Nz(extension module {!r} executed from {!r})rºr rÙÚ exec_dynamicrÉr¦rBrQrrr r#œsÿzExtensionFileLoader.exec_modulecs$t|jƒd‰t‡fdd„tDƒƒS)Nr/c3s|]}ˆd|kVqdS)rNr©r Úsuffix©Ú file_namerr rH¥sÿz1ExtensionFileLoader.is_package..)rKrBÚanyÚEXTENSION_SUFFIXESr%rrlr rö¢s ÿzExtensionFileLoader.is_packagecCsdSrrr%rrr r¨szExtensionFileLoader.get_codecCsdSrrr%rrr r0¬szExtensionFileLoader.get_sourcecCs|jSrrGr%rrr ró°sz ExtensionFileLoader.get_filenameN) r¯r®r°rrFrJrr#rörr0r¼rórrrr rN|s rNc@sheZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)Ú_NamespacePathrcCs,||_||_t| ¡ƒ|_|j|_||_dSr)Ú_nameÚ_pathr¡Ú_get_parent_pathÚ_last_parent_pathÚ_epochÚ _last_epochÚ _path_finder©r¨r¦rBÚ path_finderrrr rÁs z_NamespacePath.__init__cCs&|j d¡\}}}|dkrdS|dfS)Nrlr)rrBÚ__path__)rqrs)r¨rfÚdotÚmerrr Ú_find_parent_path_namesÈsz&_NamespacePath._find_parent_path_namescCs| ¡\}}ttj||ƒSr)r}r´rÚmodules)r¨Úparent_module_nameÚpath_attr_namerrr rsÒs z_NamespacePath._get_parent_pathcCsdt| ¡ƒ}||jks"|j|jkr^| |j|¡}|durP|jdurP|jrP|j|_ ||_|j|_|j Sr) r¡rsrtrurvrwrqrÀròrr)r¨Ú parent_pathrürrr Ú _recalculateÖs z_NamespacePath._recalculatecCs t| ¡ƒSr)rZr‚rIrrr Ú__iter__äsz_NamespacePath.__iter__cCs | ¡|Sr©r‚)r¨Úindexrrr Ú __getitem__çsz_NamespacePath.__getitem__cCs||j|<dSr)rr)r¨r…rBrrr Ú __setitem__êsz_NamespacePath.__setitem__cCs t| ¡ƒSr)r7r‚rIrrr Ú__len__ísz_NamespacePath.__len__cCs d |j¡S)Nz_NamespacePath({!r}))r[rrrIrrr Ú__repr__ðsz_NamespacePath.__repr__cCs || ¡vSrr„©r¨Úitemrrr Ú __contains__ósz_NamespacePath.__contains__cCs|j |¡dSr)rrr>rŠrrr r>ösz_NamespacePath.appendN)r¯r®r°rurr}rsr‚rƒr†r‡rˆr‰rŒr>rrrr rp¶s  rpc@sPeZdZdd„Zedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dS)Ú_NamespaceLoadercCst|||ƒ|_dSr)rprrrxrrr rüsz_NamespaceLoader.__init__cCs d |j¡S)Nz)r[r¯)rr"rrr Ú module_reprÿsz_NamespaceLoader.module_reprcCsdS)NTrr%rrr rösz_NamespaceLoader.is_packagecCsdS©Nrrr%rrr r0 sz_NamespaceLoader.get_sourcecCstddddd�S)Nrzr!T)r2)r3r%rrr rsz_NamespaceLoader.get_codecCsdSrrrrrr rsz_NamespaceLoader.create_modulecCsdSrrrQrrr r#sz_NamespaceLoader.exec_modulecCst d|j¡t ||¡S)Nz&namespace module loaded with path {!r})rºrÉrrr$r%rrr r&sÿz_NamespaceLoader.load_moduleN) r¯r®r°rrrŽrör0rrr#r&rrrr r�ûs r�c@sreZdZedd„ƒZedd„ƒZedd„ƒZedd„ƒZedd d „ƒZedd d „ƒZ eddd„ƒZ edd„ƒZ d S)Ú PathFindercCsNttj ¡ƒD],\}}|dur(tj|=qt|dƒr| ¡qtjd7_dS)NÚinvalidate_cachesr/)ÚlistrÚpath_importer_cacheÚitemsr²r‘rpru)rr¦Úfinderrrr r‘)s    zPathFinder.invalidate_cachesc CsRtjdurtjst dt¡tjD]*}z||ƒWStyJYq"Yq"0q"dS)Nzsys.path_hooks is empty)rÚ path_hooksrnror¾r§)rrBÚhookrrr Ú _path_hooks6s    zPathFinder._path_hookscCsd|dkr*z t ¡}Wnty(YdS0ztj|}Wn&ty^| |¡}|tj|<Yn0|Sr�)rrTrWrr“ÚKeyErrorr˜)rrBr•rrr Ú_path_importer_cacheCs    zPathFinder._path_importer_cachecCsRt|dƒr| |¡\}}n| |¡}g}|dur.rlr™) ràÚ_loadersrBrWrDrrTÚ _path_mtimeÚsetÚ _path_cacheÚ_relaxed_path_cache)r¨rBÚloader_detailsÚloadersrþrr¤r rÄs   zFileFinder.__init__cCs d|_dS)Nr™)r¦rIrrr r‘ÔszFileFinder.invalidate_cachescCs*| |¡}|durdgfS|j|jp&gfSr)rrÀrò)r¨r¿rürrr r½Ús zFileFinder.find_loadercCs|||ƒ}t||||d�S)Nrñ)r)r¨rýr¿rBÚsmslrrÀrrr rŸæs ÿzFileFinder._get_specNc Cs~d}| d¡d}zt|jp"t ¡ƒj}Wnty@d}Yn0||jkrZ| ¡||_t ƒrp|j }|  ¡}n |j }|}||vrØt |j|ƒ}|jD]:\} } d| } t || ƒ} t| ƒr”| | || |g|¡Sq”t|ƒ}|jD]p\} } zt |j|| ƒ} Wnt�yYdS0tjd| dd�|| |vrÞt| ƒrÞ| | || d|¡SqÞ|�rzt d|¡t |d¡} |g| _| SdS) NFrlrir™rz trying {})Ú verbosityzpossible namespace for {})rsrMrBrrTr_rNr¦Ú _fill_cacherr©r›r¨rDr¥rSrŸrUrzrºrÉr÷rò)r¨r¿rÚ is_namespaceÚ tail_modulerâÚcacheÚ cache_moduleÚ base_pathrkrýÚ init_filenameÚ full_pathrürrr rësN         ÿ   zFileFinder.find_specc Cs¼|j}zt |pt ¡¡}Wntttfy8g}Yn0tj  d¡sRt |ƒ|_ nJt ƒ}|D]8}|  d¡\}}}|r†d  || ¡¡}n|}| |¡q\||_ tj  t¡r¸dd„|Dƒ|_dS)NrrlrYcSsh|] }| ¡’qSr)r›)r Úfnrrr r ;rz)FileFinder._fill_cache..)rBrr[rTrWÚPermissionErrorÚNotADirectoryErrorrrrr§r¨rŽr[r›Úaddrr©) r¨rBr\Úlower_suffix_contentsr‹r¦r{rkÚnew_namerrr r®s"     zFileFinder._fill_cachecs‡‡fdd„}|S)Ncs$t|ƒstd|d�‚ˆ|gˆ¢RŽS)Nzonly directories are supportedrG)rUr§rG©rrªrr Úpath_hook_for_FileFinderGs z6FileFinder.path_hook..path_hook_for_FileFinderr)rrªr½rr¼r Ú path_hook=s zFileFinder.path_hookcCs d |j¡S)NzFileFinder({!r}))r[rBrIrrr r‰OszFileFinder.__repr__)N)r¯r®r°rr‘rÃrr½rŸrr®rr¾r‰rrrr r£»s   3 r£cCs�| d¡}| d¡}|sB|r$|j}n||kr8t||ƒ}n t||ƒ}|sTt|||d�}z$||d<||d<||d<||d<WntyŠYn0dS)NÚ __loader__Ú__spec__r¤Ú__file__Ú __cached__)ÚgetrÀrgr^rÚ Exception)Únsr¦ÚpathnameÚ cpathnamerÀrürrr Ú_fix_up_moduleUs"      rÈcCs*ttt ¡ƒf}ttf}ttf}|||gSr)rNÚ_alternative_architecturesrÙÚextension_suffixesr^r�rgr|)Ú extensionsÚsourceÚbytecoderrr rùlsrùc Csn|atjatjatjt}ddgfdddgff}|D]V\}}|d}|tjvr^tj|}q”q4zt |¡}Wq”Wq4tyˆYq4Yq40q4tdƒ‚t|d|ƒt|d|ƒt|d d  |¡ƒt|d d d „|Dƒƒgd¢}|dkrî|  d¡|D]2}|tjv�rt |¡} n tj|} t||| ƒqòt|dt ƒƒt   t t ¡ƒ¡|dk�rjt  d¡dt v�rjdt_dS)NÚposixrÚntrrzimportlib requires posix or ntrr<r2rÚ_pathseps_with_coloncSsh|]}d|›�’qSrrr rrr r šrz_setup..)rarnrÕrrz.pywz_d.pydT)rºrrÙr~r¯Ú_builtin_from_namer§r³r?r>r roràrÉrÊr�rr ) Ú_bootstrap_moduleÚ self_moduleÚ os_detailsÚ builtin_osr2r<Ú os_moduleÚ builtin_namesÚ builtin_nameÚbuiltin_modulerrr Ú_setupwsD                 rÚcCs2t|ƒtƒ}tj tj|Žg¡tj t ¡dSr) rÚrùrr–ràr£r¾Ú meta_pathr>r�)rÒÚsupported_loadersrrr Ú_install°srÝú-arm-linux-gnueabihf.ú-armeb-linux-gnueabihf.ú-mips64-linux-gnuabi64.ú-mips64el-linux-gnuabi64.ú-powerpc-linux-gnu.ú-powerpc-linux-gnuspe.ú-powerpc64-linux-gnu.ú-powerpc64le-linux-gnu.ú-arm-linux-gnueabi.ú-armeb-linux-gnueabi.ú-mips64-linux-gnu.ú-mips64el-linux-gnu.ú-ppc-linux-gnu.ú-ppc-linux-gnuspe.ú-ppc64-linux-gnu.ú-ppc64le-linux-gnu.)rærçrèrérêrërìrírÞrßràrárârãräråcCsF|D]<}t ¡D].\}}||vr| | ||¡¡|Sqq|Sr)Ú _ARCH_MAPr”r>rV)rþrkÚoriginalÚ alternativerrr rÉÍs rÉ)rX)N)NNN)rr)T)N)N)QrÙrarrnrÕrÚ _MS_WINDOWSrÏrrrÎr2r<r¡r:r?rÐrÚ%_CASE_INSENSITIVE_PLATFORMS_BYTES_KEYrr r'r-r.rDrKrMrRrSrUrWrhÚtypeÚ__code__rØr%rÈr$r*r:rr{r�r|ÚDEBUG_BYTECODE_SUFFIXESÚOPTIMIZED_BYTECODE_SUFFIXESr‰r—r r¢r¤r¼rÃrÍrÑrÓrÜrãrårðÚobjectrúrrrr'rAr^rgrorNrpr�r�r£rÈrùrÚrÝrîrÉrrrr ÚsÊ    ÿ       G(  ! ÿ D@H-:E*  9 ï