U e5d£ã@s dZddlZddlmZddlmZddlTzddlmZWne k rXdd„ZYnXd d d d gZ ej   d ¡dddgZ ej   d¡dddgZdd„Zd.dd„Zd/dd„Zd0dd„Zd1dd„Zd2dd „Zd3d!d"„Zd4d#d$„Zd5d%d&„Zd6d'd(„Zd7d)d „Zd8d*d „Zd+d,„Zed-k�reƒdS)9z dyld emulation éN)Úframework_info)Ú dylib_info)Ú*)Ú _dyld_shared_cache_contains_pathcGst‚dS)N)ÚNotImplementedError)Úargs©rú,/usr/lib64/python3.8/ctypes/macholib/dyld.pyr srÚ dyld_findÚframework_findrrz~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libcCs.|dkrtj}| |¡}|dkr$gS| d¡S)Nú:)ÚosÚenvironÚgetÚsplit)ÚenvÚvarZrvalrrr Údyld_env$s  rcCs|dkrtj}| d¡S)NZDYLD_IMAGE_SUFFIX)r rr©rrrr Údyld_image_suffix,srcCs t|dƒS)NZDYLD_FRAMEWORK_PATH©rrrrr Údyld_framework_path1srcCs t|dƒS)NZDYLD_LIBRARY_PATHrrrrr Údyld_library_path4srcCs t|dƒS)NZDYLD_FALLBACK_FRAMEWORK_PATHrrrrr Údyld_fallback_framework_path7srcCs t|dƒS)NZDYLD_FALLBACK_LIBRARY_PATHrrrrr Údyld_fallback_library_path:srcCs(t|ƒ}|dkr|S||fdd„}|ƒS)z>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsNcssF|D]<}| d¡r0|dtdƒ …|dVn ||V|VqdS)Nz.dylib)ÚendswithÚlen)ÚiteratorÚsuffixÚpathrrr Ú_injectBs   z)dyld_image_suffix_search.._inject)r)rrrr rrr Údyld_image_suffix_search=s r!ccs\t|ƒ}|dk r2t|ƒD]}tj ||d¡Vqt|ƒD]}tj |tj |¡¡Vq:dS©NÚname)rrr rÚjoinrÚbasename)r#rÚ frameworkrrrr Údyld_override_searchKs   r'ccs2| d¡r.|dk r.tj ||tdƒd…¡VdS)Nz@executable_path/)Ú startswithr rr$r)r#Úexecutable_pathrrr Údyld_executable_path_search\sr*ccsº|Vt|ƒ}|dk rsL  þ ü ü