grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|j‚jã@sˆdZddlZddlZddlZgd¢Zej ejdd¡Ze  dej ej B¡Z dd„Z d d „Zd Zd d „eedƒDƒZddddœZdGdd„Zdd„Zdd„Zdd„ZGdd„dƒZGdd„deƒZdHd!d"„ZiZd#gZdddd efd$d%„Zdedfd&d'„Ziaiad(adId)d*„Z dId+d,„Z!dId-d.„Z"d/d0„Z#d1d2„Z$d3d4„Z%d5d6„Z&d7d8„Z'd9d:„Z(d;d<„Z)d=d>„Z*d?d@„Z+dAdB„Z,dCdD„Z-dEdF„Z.eZ/dS)JaªInternationalization and localization support. This module provides internationalization (I18N) and localization (L10N) support for your Python programs by providing an interface to the GNU gettext message catalog library. I18N refers to the operation by which a program is made aware of multiple languages. L10N refers to the adaptation of your program, once internationalized, to the local language and cultural habits. éN)ÚNullTranslationsÚGNUTranslationsÚCatalogÚfindÚ translationÚinstallÚ textdomainÚbindtextdomainÚbind_textdomain_codesetÚdgettextÚ dngettextÚgettextÚlgettextÚ ldgettextÚ ldngettextÚ lngettextÚngettextÚpgettextÚ dpgettextÚ npgettextÚ dnpgettextZshareÚlocaleaÊ (?P[ \t]+) | # spaces and horizontal tabs (?P[0-9]+\b) | # decimal integer (?Pn\b) | # only n is allowed (?P[()]) | (?P[-*/%+?:]|[>, # <=, >=, ==, !=, &&, ||, # ? : # unary and bitwise ops # not allowed (?P\w+|.) # invalid token ccsR�t t|¡D]}|j}|dkrq| |¡}|dkr td|ƒ‚|VqdVdS)NZ WHITESPACESZINVALIDz invalid token in plural form: %sÚ)ÚreÚfinditerÚ_token_patternÚ lastgroupÚgroupÚ ValueError)ÚpluralZmoÚkindÚvalue©r"ú./opt/alt/python310/lib64/python3.10/gettext.pyÚ _tokenizeVs€   r$cCs|rtd|ƒStdƒS)Nz#unexpected token in plural form: %szunexpected end of plural form)r)r!r"r"r#Ú_erroras r%))ú||)ú&&)z==z!=)ú<ú>z<=z>=)ú+ú-)Ú*ú/ú%cCs i|] \}}|D]}||“qqSr"r")Ú.0ÚiÚopsÚopr"r"r#Ú os r3éÚorÚandz//)r&r'r-éÿÿÿÿc Csžd}t|ƒ}|dkr|d7}t|ƒ}|dks |dkr/t|ƒ\}}d||f}|dkr.tdƒ‚n%|dkr:d ||f}nzt|d ƒ}Wn tyMt|ƒd‚wd ||f}t|ƒ}d }|tvr�t|}||krgn(|d vrs|d vrsd|}t ||¡}t||dƒ\} }d||| f}|}|tvs^||kr™dkrŸnnd|}|dkrË|dkrËt|dƒ\} }|dkr¶t|ƒ‚t|ƒ\} }d| || f}|dkrËd|}||fS)Nrú!znot ú(z%s(%s)ú)z%unbalanced parenthesis in plural formÚnz%s%sé z%s%déd)ééz(%s)r4z%s %s %sr?ú?rú:z%s if %s else %s)ÚnextÚ_parserÚintr%Ú _binary_opsÚ _c2py_opsÚget) ÚtokensZpriorityÚresultÚnexttokÚsubr!Újr0r2ÚrightZif_trueZif_falser"r"r#rCrsXþ  ÿ  ÿ  õ  rCcCsTzt|ƒ}Wntytd|jjfƒd‚wddl}| d|jjftd¡|S)Nz'Plural value must be an integer, got %srr?)ÚroundÚ TypeErrorÚ __class__Ú__name__ÚwarningsÚwarnÚDeprecationWarning)r;r0rRr"r"r#Ú_as_int£s   ÿÿÿÿþrUcCs¨t|ƒdkr tdƒ‚z>tt|ƒƒ\}}|rt|ƒ‚d}|D]}|dkr0|d7}|dkr/tdƒ‚q|dkr8|d8}qd ti}td ||ƒ|d WStyStdƒ‚w) z‰Gets a C expression as used in PO files for plural forms and returns a Python function that implements an equivalent expression. ièz"plural form expression is too longrr9r4éz%plural form expression is too complexr:rUz›if True: def func(n): if not isinstance(n, int): n = _as_int(n) return int(%s) Úfunc)ÚlenrrCr$r%rUÚexecÚRecursionError)rrIrJZdepthÚcÚnsr"r"r#Úc2py¯s4 ý€ûû  þr]cCs8ddl}| |¡}d}d}d}d}| d¡}|dkr+||d…}|d|…}||O}nd}| d¡}|dkrG||d…}|d|…}||O}nd}| d¡}|dkrc||d…} |d|…}||O}nd} |} g} t|dƒD]&} | |@s•| } | |@r€| | 7} | |@rˆ| |7} | |@r�| |7} |  | ¡qo|  ¡| S) Nrr4ér?ú@rÚ.Ú_)rÚ normalizerÚrangeÚappendÚreverse)ZlocrZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERÚmaskÚposZmodifierÚcodesetZ territoryZlanguageZretr0Úvalr"r"r#Ú _expand_langÓsH               €rjc@s€eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zddd„ZdS)rNcCs2i|_d|_d|_d|_|dur| |¡dSdS©N)Ú_infoÚ_charsetÚ_output_charsetÚ _fallbackrC©ÚselfÚfpr"r"r#Ú__init__ÿsÿzNullTranslations.__init__cCsdSrkr"rpr"r"r#rCszNullTranslations._parsecCs |jr |j |¡dS||_dSrk)roÚ add_fallback)rqÚfallbackr"r"r#rt s zNullTranslations.add_fallbackcCs|jr |j |¡S|Srk)ror )rqÚmessager"r"r#r s zNullTranslations.gettextcCs†ddl}| dtd¡ddl}|jr3| ¡�| ddt¡|j |¡WdƒS1s.wY|jr<|  |j¡S|  |  ¡¡S)Nrú/lgettext() is deprecated, use gettext() insteadr^Úignoreú.*\blgettext\b.*) rRrSrTrroÚcatch_warningsÚfilterwarningsrrnÚencodeÚgetpreferredencoding)rqrvrRrr"r"r#rsÿ ÿ  ý zNullTranslations.lgettextcCs&|jr |j |||¡S|dkr|S|S©Nr4)ror)rqÚmsgid1Úmsgid2r;r"r"r#r#s zNullTranslations.ngettextcCsœddl}| dtd¡ddl}|jr5| ¡�| ddt¡|j |||¡WdƒS1s0wY|dkr<|}n|}|jrG|  |j¡S|  |  ¡¡S)Nrú1lngettext() is deprecated, use ngettext() insteadr^rxú.*\blngettext\b.*r4) rRrSrTrrorzr{rrnr|r}©rqrr€r;rRrÚtmsgr"r"r#r+s$ÿ ÿ ý zNullTranslations.lngettextcCs|jr |j ||¡S|Srk)ror)rqÚcontextrvr"r"r#r=szNullTranslations.pgettextcCs(|jr |j ||||¡S|dkr|S|Sr~)ror)rqr…rr€r;r"r"r#rBs zNullTranslations.npgettextcCó|jSrk)rl©rqr"r"r#ÚinfoJózNullTranslations.infocCr†rk)rmr‡r"r"r#ÚcharsetMr‰zNullTranslations.charsetcCsddl}| dtd¡|jS)Nrzoutput_charset() is deprecatedr^©rRrSrTrn)rqrRr"r"r#Úoutput_charsetPs ÿzNullTranslations.output_charsetcCs ddl}| dtd¡||_dS)Nrz"set_output_charset() is deprecatedr^r‹)rqrŠrRr"r"r#Úset_output_charsetVs ÿ z#NullTranslations.set_output_charsetcCsNddl}|j|jd<|dur#hd£}|t|ƒ@D] }t||ƒ|j|<qdSdS)Nrra>rrrrrr )Úbuiltinsr Ú__dict__ÚsetÚgetattr)rqÚnamesrŽZallowedÚnamer"r"r#r\s üzNullTranslations.installrk)rQÚ __module__Ú __qualname__rsrCrtr rrrrrrˆrŠrŒr�rr"r"r"r#rþs rc@s\eZdZdZdZdZdZdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„ZdS)rlÞ*l•$<z%s%s)rr4cCs|d?|d@fS)z/Returns a tuple of major version, minor versionéiÿÿr")rqÚversionr"r"r#Ú _get_versionsrszGNUTranslations._get_versionsc"Csâddlm}t|ddƒ}i|_}dd„|_| ¡}t|ƒ}|d|dd …ƒd}||jkr>|d |d d …ƒ\}} } } d } n||jkrS|d |d d …ƒ\}} } } d} nt dd|ƒ‚|  |¡\} }| |j vrot ddt | ƒ|ƒ‚t d| ƒD]ú}|| || | d…ƒ\}}||}|| || | d…ƒ\}}||}||kr­||kr­|||…}|||…}nt dd|ƒ‚|dk�r,d}| d¡D]l}| ¡ ¡}|sÊq¿| d¡rÕ| d¡rÕq¿d}}d|vr÷| dd¡\}}| ¡ ¡}| ¡}||j|<|}n|�r|j|d|7<|dk�r| d¡d|_q¿|dk�r+| d¡}|d d¡d}t|ƒ|_q¿|j�p1d}d|v�r\| d¡\}} | d¡}t ||ƒ}t|ƒD]\}}!t |!|ƒ|||f<�qLn t ||ƒ|t ||ƒ<| d7} | d7} qtdS)z8Override this method to support alternative .mo formats.r)Úunpackr“rcSs t|dkƒSr~)rD)r;r"r"r#Ús z(GNUTranslations._parse..z4Iz>IIzBad magic numberzBad version number ézFile is corruptó z #-#-#-#-#rAr4Ú z content-typezcharset=z plural-formsú;zplural=Úasciió)Zstructr™r‘Ú_catalogrÚreadrXÚLE_MAGICÚBE_MAGICÚOSErrorr˜ÚVERSIONSÚstrrcÚsplitÚdecodeÚstripÚ startswithÚendswithÚlowerrlrmr]Ú enumerate)"rqrrr™ÚfilenameZcatalogZbufZbuflenÚmagicr—ZmsgcountZ masteridxZtransidxZiiZ major_versionZ minor_versionr0ZmlenZmoffZmendZtlenZtoffZtendÚmsgr„ZlastkZb_itemÚitemÚkÚvrrŠrr€Úxr"r"r#rCvs|                  €   ÿ ÇzGNUTranslations._parsecCspddl}| dtd¡ddl}tƒ}|j ||¡}||ur(|jr&|j |¡S|}|j r1|  |j ¡S|  |  ¡¡S)Nrrwr^) rRrSrTrÚobjectr¡rGrorrnr|r})rqrvrRrÚmissingr„r"r"r#rÏsÿ  zGNUTranslations.lgettextcCs–ddl}| dtd¡ddl}z |j|| |¡f}Wnty:|jr/|j |||¡YS|dkr6|}n|}Ynw|j rD|  |j ¡S|  |  ¡¡S)Nrr�r^r4) rRrSrTrr¡rÚKeyErrorrorrnr|r}rƒr"r"r#rÞs$ÿ €ú zGNUTranslations.lngettextcCs6tƒ}|j ||¡}||ur|jr|j |¡S|S|Srk)r¶r¡rGror )rqrvr·r„r"r"r#r ðs zGNUTranslations.gettextcCs`z |j|| |¡f}W|Sty/|jr!|j |||¡YS|dkr*|}Y|S|}Y|Swr~)r¡rr¸ror)rqrr€r;r„r"r"r#rùs ùÿùzGNUTranslations.ngettextcCsF|j||f}tƒ}|j ||¡}||ur!|jr|j ||¡S|S|Srk)ÚCONTEXTr¶r¡rGror)rqr…rvÚ ctxt_msg_idr·r„r"r"r#rszGNUTranslations.pgettextc Csp|j||f}z |j|| |¡f}W|Sty7|jr)|j ||||¡YS|dkr2|}Y|S|}Y|Swr~)r¹r¡rr¸ror)rqr…rr€r;rºr„r"r"r#rs ùÿùzGNUTranslations.npgettextN)rQr”r•r£r¤r¹r¦r˜rCrrr rrrr"r"r"r#rfsY  rFc Csä|durt}|dur)g}dD]}tj |¡}|r| d¡}nqd|vr)| d¡g}|D]}t|ƒD] }||vr>| |¡q3q-|rEg} nd} |D]&}|dkrR| Stj ||dd|¡} tj  | ¡ro|rk|  | ¡qI| SqI| S)N)ZLANGUAGEÚLC_ALLÚ LC_MESSAGESZLANGrAÚCr¼z%s.mo) Ú_default_localedirÚosÚenvironrGr¨rdrjÚpathÚjoinÚexists) ÚdomainÚ localedirÚ languagesÚallZenvarriZnelangsZlangZnelangrIÚmofiler"r"r#rsB  þ   €þú  ürZ unspecifiedc Cs<|durt}t|||dd�}|s!|rtƒSddlm}t|d|ƒ‚d}|D]v} |tj | ¡f} t   | ¡} | durUt | dƒ�} t   | || ƒ¡} Wdƒn1sPwYddl } |   | ¡} |tur�ddl}| dtd¡|r�| ¡�| d d t¡|  |¡Wdƒn1sŠwY|dur–| }q%| | ¡q%|S) NT)rÇr)ÚENOENTz$No translation file found for domainÚrbzparameter codeset is deprecatedr^rxz.*\bset_output_charset\b.*)rrrÚerrnorÉÚFileNotFoundErrorr¿rÁÚabspathÚ _translationsrGÚopenÚ setdefaultÚcopyÚ _unspecifiedrRrSrTrzr{r�rt)rÄrÅrÆZclass_rurhZmofilesrÉrIrÈÚkeyÚtrrrÑrRr"r"r#rGsH ÿ  ÿ ÿ ÿ ý rcCst||d|d�}| |¡dS)NT)rurh)rr)rÄrÅrhr’rÔr"r"r#rrsrZmessagescCs|dur|atSrk)Ú_current_domain)rÄr"r"r#r€srcCs|dur|t|<t |t¡Srk)Ú _localedirsrGr¾)rÄrÅr"r"r#r ‡s r cCs0ddl}| dtd¡|dur|t|<t |¡S)Nrz'bind_textdomain_codeset() is deprecatedr^)rRrSrTÚ_localecodesetsrG)rÄrhrRr"r"r#r Žsÿ r cCs8z t|t |d¡ƒ}Wn ty|YSw| |¡Srk)rrÖrGr¥r )rÄrvrÔr"r"r#r ˜s  ÿ r cCsâddl}| dtd¡ddl}t |¡}z(| ¡�| ddt¡t|t  |d¡|d�}Wdƒn1s6wYWnt yN|  |pJ|  ¡¡YSw| ¡�| ddt¡|  |¡WdƒS1sjwYdS)Nrz1ldgettext() is deprecated, use dgettext() insteadr^rxú.*\bparameter codeset\b.*©rhry)rRrSrTrr×rGrzr{rrÖr¥r|r}r)rÄrvrRrrhrÔr"r"r#rŸs.ÿ  ÿý€ ÿ ÿ$ýrcCsLz t|t |d¡ƒ}Wnty|dkr|YS|YSw| |||¡Sr~)rrÖrGr¥r)rÄrr€r;rÔr"r"r#r ±s ür c Csøddl}| dtd¡ddl}t |¡}z(| ¡�| ddt¡t|t  |d¡|d�}Wdƒn1s6wYWnt yW|dkrJ|}n|}|  |pS|  ¡¡YSw| ¡�| ddt¡|  |||¡WdƒS1suwYdS) Nrz3ldngettext() is deprecated, use dngettext() insteadr^rxrØrÙr4r‚)rRrSrTrr×rGrzr{rrÖr¥r|r}r) rÄrr€r;rRrrhrÔr„r"r"r#r»s4ÿ  ÿý€ û ÿ $ýrcCs:z t|t |d¡ƒ}Wn ty|YSw| ||¡Srk)rrÖrGr¥r)rÄr…rvrÔr"r"r#rÒs  ÿ rcCsNz t|t |d¡ƒ}Wnty|dkr|YS|YSw| ||||¡Sr~)rrÖrGr¥r)rÄr…rr€r;rÔr"r"r#rÚs ürcCs tt|ƒSrk)r rÕ)rvr"r"r#r ås r cCsZddl}| dtd¡| ¡�| ddt¡tt|ƒWdƒS1s&wYdS)Nrrwr^rxz.*\bldgettext\b.*)rRrSrTrzr{rrÕ)rvrRr"r"r#rèsÿ ÿ$ýrcCstt|||ƒSrk)r rÕ)rr€r;r"r"r#rñsrcCs^ddl}| dtd¡| ¡�| ddt¡tt|||ƒWdƒS1s(wYdS)Nrr�r^rxz.*\bldngettext\b.*)rRrSrTrzr{rrÕ)rr€r;rRr"r"r#rôsÿ ÿ $ýrcCs tt||ƒSrk)rrÕ)r…rvr"r"r#rþs rcCstt||||ƒSrk)rrÕ)r…rr€r;r"r"r#rsr)r7)NNFrk)0Ú__doc__r¿rÚsysÚ__all__rÁrÂÚ base_prefixr¾ÚcompileÚVERBOSEÚDOTALLrr$r%rEr®rFrCrUr]rjrrrrÎrÒrrrÖr×rÕrr r r rr rrrr rrrrrrr"r"r"r#Ús^0 õ    1 $+h 9& ÿ+