§ WèÄj ãóÖ—dZddlZddlZddlZddlZddlmZddlmZej e ¦«Z dZ dZ edd„¬ ¦«fZed d „¬ ¦«fZd ed efd„Zdeded eefd„ZdS)z< Shared constants and helpers for xray.ini file management. éN)ÚOptional)Úcagefsctl_get_prefix)Úphp44Úphp51Úphp52Úphp53zphp\d+-imunifyz php-internal)z /opt/alt/php[0-9][0-9]/link/confz+/opt/cpanel/ea-php[0-9][0-9]/root/etc/php.dz$/opt/plesk/php/[0-9].[0-9]/etc/php.dz'/usr/local/php[0-9][0-9]/lib/php.conf.dzM/usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php[0-9][0-9]/root/etc/php.dzA/usr/share/cagefs-skeleton/usr/local/php[0-9][0-9]/lib/php.conf.dz./var/cagefs/*/*/etc/cl.php.d/alt-php[0-9][0-9]có\—tj| d¦«d¦«S©Nú/é©ÚpwdÚgetpwnamÚsplit©Úpaths úT/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/reconfiguration/xray_ini.pyúr.ó€�#œ, t§z¢z°#¡¤°qÔ'9Ñ:Ô:€ó)rÚuserz0/var/cagefs/*/*/etc/cl.php.d/*/alt-php[0-9][0-9]có\—tj| d¦«d¦«Sr r rs rrr7rrÚdir_pathÚreturncóJ—tD]}tj||¦«rdSŒdS)z1 Check if given path is in exclude list. TF)ÚEXCLUDE_DIR_PATHSÚreÚsearch)rÚpatterns rÚis_excluded_pathr <s8€õ%ððˆÝ Œ9�W˜hÑ 'Ô 'ð Ø�4�4ð à ˆ5rrÚ website_idcóv—t|¦«}|€dSd|›d|›d|›d�} tj |¦«sdStj|¦«}t jd|¦«}|rd| d¦«›�Sn3#t$r&}t  d ||¦«Yd}~nd}~wwxYwdS) a­ Get the PHP version configured for a specific domain/website from cl.selector symlinks. Reads the 'php' symlink in /var/cagefs/{prefix}/{user}/etc/cl.selector/{website_id}/ and extracts the alt-phpXX version from the target path. :param user: Username :param website_id: Website ID hash (e.g., 'd498d1a80d63f8e9') :return: PHP version directory name (e.g., 'alt-php80') or None if not found/native Nz /var/cagefs/r z/etc/cl.selector/z/phpz/opt/alt/php(\d{2})/zalt-phpéz&Failed to read selector symlink %s: %s) rÚosrÚislinkÚreadlinkrrÚgroupÚOSErrorÚloggerÚdebug)rr!ÚprefixÚ selector_pathÚtargetÚmatchÚes rÚ$get_domain_php_version_from_selectorr0Fsô€õ" $Ñ 'Ô '€FØ €~؈tàS 6ÐSÐS¨DÐSÐSÀ:ÐSÐSÐS€Mð QÝŒw�~Š~˜mÑ,Ô,ð Ø�4唘]Ñ+Ô+ˆõ” Ð1°6Ñ:Ô:ˆØ ð .Ø-˜UŸ[š[¨™^œ^Ð-Ð-Ð -ð .øå ðQðQðQÝ� Š Ð=¸}ÈaÑPÔPÐPÐPÐPÐPÐPÐPøøøøðQøøøð ˆ4s¡BÁAB B6ÂB1Â1B6)Ú__doc__Úloggingr$rrÚtypingrÚxray.internal.utilsrÚ getLoggerÚ__name__r)rÚ INI_LOCATIONSÚdictÚINI_USER_LOCATIONSÚ$INI_USER_LOCATIONS_WEBSITE_ISOLATIONÚstrÚboolr r0©rrúr>s"ðððð€€€Ø € € € Ø € € € Ø € € € ØÐÐÐÐÐà4Ð4Ð4Ð4Ð4Ð4à ˆÔ ˜8Ñ $Ô $€ðÐð€ ð €DØ =Ø :Ð :ð ñ ô ðÐð €DØ ?Ø :Ð :ð ñ ô ð(Ð$ð˜sð tððððð¨sðÀðÈÐQTÌ ððððððr