PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 131
Lye2<ddlZddlZddlZddlZddlmZddlmZmZddl m Z m Z ddl m Z dZdZGdd e Zd efd Zd ed efd Zded eefdZdeded efdZded eefdZded eefdZdZdZdZd dZd!dZd!dZ dZ!dZ"dS)"N)Optional) run_commandExternalProgramFailed)memory_to_pagepage_to_memory)FormattedExceptionzAvailable values for optionz"/etc/sysconfig/limits_lower_boundsceZdZdS)LowerBoundsConfigExceptionN)__name__ __module__ __qualname__py/cllimits/lib/utils.pyr r sDrr returnc(tjtsiSi} t tdd5}|D]s}|}|r[d|vrW|dsB|dd\}}|||<t dddn #1swxYwYnA#ttf$r-}tdtt|d d |d}~wwxYw|S) z Read all lower bounds from config file Returns dict with lower bound names as keys and values as strings :raises LowerBoundsConfigException: If file exists but cannot be read rutf-8encoding=#NzlFailed to read limits' lower bounds configuration from %(file)s. The file may be corrupted. Error: %(error)s)fileerrormessagecontext) ospathexists _LIMITS_LOWER_BOUNDS_CONFIG_FILEopenstrip startswithsplitOSErrorIOErrorr str) lower_boundsflinekeyvaluees r_read_lower_bounds_configr0ss 7>>: ; ; L 2C' J J J >a > >zz||>C4KK0D0DK!%C!3!3JC05 L-  > > > > > > > > > > > > > > > > W (E9Q* *     s<CA7C9 CC  C C  CD"(D  Dr*c tjtjtdt tdd5}|d|dt|D] \}}||d|d ! d d d n #1swxYwYdS#ttf$rYd SwxYw) z+ Write lower bounds to config file T)exist_okwrrz(# CloudLinux lower bounds configuration z# Format: RESOURCE_TYPE=value r NF) rmakedirsr dirnamer"r#writesorteditemsr'r()r*r+r-r.s r_write_lower_bounds_configr:6s:  BGOO$DEEPTUUUU 2C' J J J ,a GG? @ @ @ GG7 8 8 8$\%7%7%9%9:: , , U3*****++++ , , , , , , , , , , , , , , , , t W uus7ACA-C ? C CCCCC-,C- resource_typect}||}|rt|SdS)z Read lower bound for any resource type from config file Returns lower bound in pages or None if not set :param resource_type: Type of resource (e.g., 'PMEM', 'VMEM') :raises LowerBoundsConfigException: If config file is corrupted N)r0getupperr)r;r* limit_strs rread_lower_boundr@FsI-..L  !4!4!6!677I)i((( 4r bound_valuecjt}|||<t|S)a Write lower bound for any resource type to config file :param resource_type: Type of resource (e.g., 'PMEM', 'VMEM') :param bound_value: Lower bound value as string (e.g., '512M', '1G') :raises LowerBoundsConfigException: If config file is corrupted )r0r>r:)r;rAr*s rwrite_lower_boundrCUs3-..L*5L$$&&' %l 3 33r pmem_pagesc td}n&#t$r}|j|jdcYd}~Sd}~wwxYw|"|dkr||krt |}dd|idSdS)z Check if PMEM value is below configured lower bound and return error :param pmem_pages: PMEM value in pages :return: Error dict with 'message' and 'context' or None PMEMrNrzwPMEM limit is below configured lower bound of %(bound)s. This may cause application instability and performance issues.bound)r@r rrr)rDlower_bound_pagesr/ lower_bounds rcheck_pmem_lower_boundrJbs <,V44 %<<<9;;;;;;;;<$qZJ[=[=[$%677 Q -     4s 5055 pmem_valuecFt|}|t|SdS)z Check if PMEM value (as string) is below configured lower bound and return error :param pmem_value: PMEM value as string (e.g., "5m", "512M", etc.) :return: Error dict with 'message' and 'context' or None N)rrJ)rKrDs r"check_pmem_lower_bound_from_stringrMzs*  ++J%j111 4rc|dr#|dd\}}d|zd|idS|tr5|dd\}}|dzd |idSd |iS) zu Replacing params in data for show error message :param data: error's data for show message :return: z-- rz %(param)s param)resultr:z: %(available_options)savailable_optionsrQ)r%r& VALUES_STRr$)datarPtexts rreplace_paramsrWs  tLjja(( t&-7E:JKKK z""Ajja(( e!::/?AA A d rcH t|dS#t$rYdSwxYw)z Checks is string contains a number (integer or float) :param s_val: String to check :return: True - string is number, False - not number TF)float ValueError)s_vals r_is_string_numberr\s9  e t uus  !!ctt|}|drd}nV|drd}n>|drd}n&t|rd}|d}nt dt d|zt |d d zS) zs Convert value in Gbytes,Mbytes to bytes :param value: value of mem limit :return: value in bytes krmgzWrong memory valueN)r)lowerendswithr\rZintrY)r.powers rconvert_mem_value_to_bytesris JJ    E ~~c /   /   / 5 ! !/ -... tu}uU3B3Z000 1 11rTc|s|St|}gd}|dr|d=t|dddd}|drd}|dd}nd}t |}|D]'}|dzdkr|dz}|dkr|d}n ||d |}|S) z Convert memory value to adaptive value in GB, TB, etc :param value: memory value in MB or KB :param convert: if True - convert value, False - not convert :return: adaptive value in GB, TB, etc )KMGTPr_rr^*rc0Kz.2f)r)rerfreplacer%rY)r.convertunitsrQunits r(_convert_memory_value_to_adaptive_formatrws'  JJ    E % % %E ~~c !H JJ     & &sB / / 7 7R @ @E  c2&& %LLE D=1   TMEE aZZ]]]F E111411F  MrFcr|r%ttj|ddSt|dS)z Print specified dictionary :param data_dict: data dictionary to print :param is_json: True - print in JSON, False - in text :return: None T) sort_keysN)printjsondumps) data_dictis_jsons rprint_dictionaryrsE djd33344444 irctjt|d}t||tjddS)za Prints to stdout :param: is_json - True if print error in json format, False - text ) timestamprQrN)timer)rsysexit)rr~rUs rprint_error_and_exitrs> G = =DT7###HQKKKKKrctj|rtj|sdSdS)z\ Detect quota is supported :return: True/False - quotas supported/not supported FT)rr isfile) cl_quota_path repquota_paths ris_quota_supportedrs9 7>>- ( (}0M0Mu 4rc~t||sdS|dg} t|}n#t$rYdSwxYw|sdSdS)z\ Detect quota is activated :return: True/False - quotas activated/not activated Fz-nvaT)rrr)rrcmdstdouts ris_quota_activerso m] ; ;u & !CS!! uu u 4s ( 66)T)F)#r{rrrtypingrclcommon.utilsrrclcommon.clfuncrrclcommon.clexceptionrrTr"r dictr0boolr:r)rgr@rCrJrMrWr\rirwrrrrrrrrs ========::::::::333333 * #G      !3   4< T d     C HSM     4S 4s 4t 4 4 4 4sx~0 3 8D>    $   222,$$$$N"r