a XC?h��@sdZddlZddlmZddlmZddlTzddlmZWne yVdd�ZYn0gd �Z ej � d �d d d gZ ej � d�dddgZdd�Zd-dd�Zd.dd�Zd/dd�Zd0dd�Zd1dd�Zd2dd�Zd3d d!�Zd4d"d#�Zd5d$d%�Zd6d&d'�Zd7d(d)�Zd*d+�Zed,k�re�dS)8z dyld emulation �N)�framework_info)� dylib_info)�*)� _dyld_shared_cache_contains_pathcGst�dS)N)�NotImplementedError)�args�r�9/opt/alt/python39/lib64/python3.9/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.|durtj}|�|�}|dur$gS|�d�S)N�:)�os�environ�get�split)�env�varZrvalrrr �dyld_env$s  rcCs|durtj}|�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|�}|dur|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|�}|dur2t|�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.|dur.tj�||td�d��VdS)Nz@executable_path/)� startswithr rr$r)r#�executable_pathrrr �dyld_executable_path_search\sr*ccs�|Vt|�}|dursD    � �