
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aj  ã                   @   s¶  d Z ddlZddlZddlZddlZddddddd	d
dddddddddddddgZej ejdd¡Z	e 
dejejB ¡Zdd„ Zdd„ ZdZd d!„ eed"ƒD ƒZd#d$d%d&œZdGd(d)„Zd*d+„ Zd,d-„ Zd.d/„ ZG d0d„ dƒZG d1d„ deƒZdHd3d„Zi Zd4gZdddd2efd5d„Zdedfd6d„Zi ai ad7a dId8d	„Z!dJd9d
„Z"dKd:d„Z#d;d„ Z$d<d„ Z%d=d„ Z&d>d„ Z'd?d„ Z(d@d„ Z)dAd„ Z*dBd„ Z+dCd„ Z,dDd„ Z-dEd„ Z.dFd„ Z/eZ0dS )Laª  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Ú
dnpgettextZshareÚlocaleaÊ  
        (?P<WHITESPACES>[ \t]+)                    | # spaces and horizontal tabs
        (?P<NUMBER>[0-9]+\b)                       | # decimal integer
        (?P<NAME>n\b)                              | # only n is allowed
        (?P<PARENTHESIS>[()])                      |
        (?P<OPERATOR>[-*/%+?:]|[><!]=?|==|&&|\|\|) | # !, *, /, %, +, -, <, >,
                                                     # <=, >=, ==, !=, &&, ||,
                                                     # ? :
                                                     # unary and bitwise ops
                                                     # not allowed
        (?P<INVALID>\w+|.)                           # invalid token
    c                 c   sP   t  t| ¡D ]8}|j}|dkr q| |¡}|dkr>td| ƒ‚|V  qdV  d S )NZWHITESPACESZINVALIDz invalid token in plural form: %sÚ )ÚreÚfinditerÚ_token_patternÚ	lastgroupÚgroupÚ
ValueError)ÚpluralZmoZkindÚvalue© r!   ú,/opt/alt/python38/lib64/python3.8/gettext.pyÚ	_tokenizeW   s    
r#   c                 C   s   | rt d|  ƒS t dƒS d S )Nz#unexpected token in plural form: %szunexpected end of plural form)r   )r    r!   r!   r"   Ú_errorb   s    r$   ))ú||)ú&&)z==z!=)ú<ú>z<=z>=)ú+ú-)Ú*ú/ú%c                 C   s    i | ]\}}|D ]
}||“qqS r!   r!   )Ú.0ÚiZopsÚopr!   r!   r"   Ú
<dictcomp>p   s
        r1   é   ÚorÚandz//)r%   r&   r,   éÿÿÿÿc                 C   s¨  d}t | ƒ}|dkr&|d7 }t | ƒ}q|dkrXt| ƒ\}}d||f }|dkr¨tdƒ‚nP|dkrnd	||f }n:zt|d
ƒ}W n tk
rš   t|ƒd ‚Y nX d||f }t | ƒ}d}|tk�rt| }||k rÒ�q|dkrê|dkrêd| }t ||¡}t| |d ƒ\}	}d|||	f }|}q´||  k�r4dk�r@n nd| }|dk�r |dk�r t| dƒ\}
}|dk�rtt|ƒ‚t| ƒ\}}d|
||f }|dk�r d| }||fS )Nr   ú!znot ú(z%s(%s)ú)z%unbalanced parenthesis in plural formÚnz%s%sé
   z%s%déd   )é   é   z(%s)r2   z%s %s %sr=   ú?r   ú:z%s if %s else %s)ÚnextÚ_parser   Úintr$   Ú_binary_opsÚ	_c2py_opsÚget)ÚtokensZpriorityÚresultÚnexttokÚsubr    Újr/   r0   ÚrightZif_trueZif_falser!   r!   r"   rA   s   sP    




rA   c                 C   sZ   zt | ƒ}W n( tk
r4   td| jjf ƒd ‚Y nX dd l}| d| jjf td¡ | S )Nz'Plural value must be an integer, got %sr   r=   )ÚroundÚ	TypeErrorÚ	__class__Ú__name__ÚwarningsÚwarnÚDeprecationWarning)r9   r/   rP   r!   r!   r"   Ú_as_int¤   s     ÿÿÿ þrS   c                 C   s²   t | ƒdkrtdƒ‚z|tt| ƒƒ\}}|r2t|ƒ‚d}|D ]6}|dkr`|d7 }|dkrptdƒ‚q:|dkr:|d8 }q:d	ti}td
| |ƒ |d W S  tk
r¬   tdƒ‚Y nX dS )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 longr   r7   r2   é   z%plural form expression is too complexr8   rS   z›if True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            ÚfuncN)Úlenr   rA   r#   r$   rS   ÚexecÚRecursionError)r   rG   rH   ZdepthÚcÚnsr!   r!   r"   Úc2py°   s.    

ûû
r[   c                 C   s4  t  | ¡} d}d}d}d}|  d¡}|dkrN| |d … }| d |… } ||O }nd}|  d¡}|dkr†| |d … }| d |… } ||O }nd}|  d¡}|dkr¾| |d … }| d |… } ||O }nd}| }	g }
t|d ƒD ]P}|| @ sÖ|	}||@ rø||7 }||@ �r
||7 }||@ �r||7 }|
 |¡ qÖ|
 ¡  |
S )	Nr2   é   r=   r   ú@r   Ú.Ú_)r   Ú	normalizer   ÚrangeÚappendÚreverse)ZlocZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERÚmaskÚposZmodifierÚcodesetZ	territoryZlanguageZretr/   Úvalr!   r!   r"   Ú_expand_langÔ   sJ    







 
 
 rh   c                   @   s€   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zddd„ZdS ) r   Nc                 C   s.   i | _ d | _d | _d | _|d k	r*|  |¡ d S ©N)Ú_infoÚ_charsetÚ_output_charsetÚ	_fallbackrA   ©ÚselfÚfpr!   r!   r"   Ú__init__ÿ   s    zNullTranslations.__init__c                 C   s   d S ri   r!   rn   r!   r!   r"   rA     s    zNullTranslations._parsec                 C   s   | j r| j  |¡ n|| _ d S ri   )rm   Úadd_fallback)ro   Úfallbackr!   r!   r"   rr   
  s    zNullTranslations.add_fallbackc                 C   s   | j r| j  |¡S |S ri   )rm   r   )ro   Úmessager!   r!   r"   r     s    zNullTranslations.gettextc              
   C   sr   dd l }| dtd¡ | jrR| ¡ �( | ddt¡ | j |¡W  5 Q R £ S Q R X | jrd| | j¡S | t	 
¡ ¡S )Nr   ú/lgettext() is deprecated, use gettext() insteadr\   Úignoreú.*\blgettext\b.*)rP   rQ   rR   rm   Úcatch_warningsÚfilterwarningsr   rl   Úencoder   Úgetpreferredencoding)ro   rt   rP   r!   r!   r"   r     s     ÿ
ÿzNullTranslations.lgettextc                 C   s*   | j r| j  |||¡S |dkr"|S |S d S ©Nr2   )rm   r   )ro   Úmsgid1Úmsgid2r9   r!   r!   r"   r   "  s
    zNullTranslations.ngettextc              
   C   sˆ   dd l }| dtd¡ | jrV| ¡ �, | ddt¡ | j |||¡W  5 Q R £ S Q R X |dkrd|}n|}| jrz| | j¡S | t	 
¡ ¡S )Nr   ú1lngettext() is deprecated, use ngettext() insteadr\   rv   ú.*\blngettext\b.*r2   )rP   rQ   rR   rm   rx   ry   r   rl   rz   r   r{   ©ro   r}   r~   r9   rP   Útmsgr!   r!   r"   r   *  s"     ÿ
ÿ"zNullTranslations.lngettextc                 C   s   | j r| j  ||¡S |S ri   )rm   r   )ro   Úcontextrt   r!   r!   r"   r   ;  s    zNullTranslations.pgettextc                 C   s,   | j r| j  ||||¡S |dkr$|S |S d S r|   )rm   r   )ro   rƒ   r}   r~   r9   r!   r!   r"   r   @  s
    zNullTranslations.npgettextc                 C   s   | j S ri   )rj   ©ro   r!   r!   r"   ÚinfoH  s    zNullTranslations.infoc                 C   s   | j S ri   )rk   r„   r!   r!   r"   ÚcharsetK  s    zNullTranslations.charsetc                 C   s   dd l }| dtd¡ | jS )Nr   zoutput_charset() is deprecatedr\   ©rP   rQ   rR   rl   )ro   rP   r!   r!   r"   Úoutput_charsetN  s     ÿzNullTranslations.output_charsetc                 C   s    dd l }| dtd¡ || _d S )Nr   z"set_output_charset() is deprecatedr\   r‡   )ro   r†   rP   r!   r!   r"   Úset_output_charsetT  s     ÿz#NullTranslations.set_output_charsetc                 C   sR   dd l }| j|jd< |d k	rNddddddh}|t|ƒ@ D ]}t| |ƒ|j|< q8d S )	Nr   r_   r   r   r   r   r   r   )Úbuiltinsr   Ú__dict__ÚsetÚgetattr)ro   ÚnamesrŠ   ZallowedÚnamer!   r!   r"   r   Z  s      ÿzNullTranslations.install)N)N)rO   Ú
__module__Ú__qualname__rq   rA   rr   r   r   r   r   r   r   r…   r†   rˆ   r‰   r   r!   r!   r!   r"   r   þ   s   
c                   @   s\   e Zd ZdZdZdZdZdd„ Zdd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )r   l   Þ* l   •$< z%s%s)r   r2   c                 C   s   |d? |d@ fS )z/Returns a tuple of major version, minor versioné   iÿÿ  r!   )ro   Úversionr!   r!   r"   Ú_get_versionsp  s    zGNUTranslations._get_versionsc           "      C   sö  ddl m} t|ddƒ}i  | _}dd„ | _| ¡ }t|ƒ}|d|dd	… ƒd }|| jkr||d
|d	d… ƒ\}}	}
}d}n6|| jkr¦|d|d	d… ƒ\}}	}
}d}nt	dd|ƒ‚|  
|¡\}}|| jkrÞt	ddt|ƒ |ƒ‚td|	ƒD �]}||||
|
d … ƒ\}}|| }|||||d … ƒ\}}|| }||k �r`||k �r`|||… }|||… }nt	dd|ƒ‚|dk�rld}| d¡D ]æ}| ¡  ¡ }|�sž�q„| d¡�rº| d¡�rº�q„d }}d|k�r | dd¡\}}| ¡  ¡ }| ¡ }|| j|< |}n|�r| j|  d| 7  < |dk�r8| d¡d | _n0|dk�r„| d¡}|d  d¡d }t|ƒ| _�q„| j�pvd}d|k�rÌ| d¡\}} | d¡}t||ƒ}t|ƒD ]\}}!t|!|ƒ|||f< �q¬nt||ƒ|t||ƒ< |
d7 }
|d7 }qèdS )z8Override this method to support alternative .mo formats.r   )Úunpackr�   r   c                 S   s   t | dkƒS r|   )rB   )r9   r!   r!   r"   Ú<lambda>}  ó    z(GNUTranslations._parse.<locals>.<lambda>z<INr=   z<4IrT   z<IIz>4Iz>IIzBad magic numberzBad version number é   zFile is corruptó   
z	#-#-#-#-#r?   r2   Ú
zcontent-typezcharset=zplural-formsú;zplural=Úasciió    )Zstructr•   r�   Ú_catalogr   ÚreadrV   ÚLE_MAGICÚBE_MAGICÚOSErrorr”   ÚVERSIONSÚstrra   ÚsplitÚdecodeÚstripÚ
startswithÚendswithÚlowerrj   rk   r[   Ú	enumerate)"ro   rp   r•   ÚfilenameZcatalogZbufZbuflenÚmagicr“   ZmsgcountZ	masteridxZtransidxZiiZmajor_versionZminor_versionr/   ZmlenZmoffZmendZtlenZtoffZtendÚmsgr‚   ZlastkZb_itemÚitemÚkÚvr   r†   r}   r~   Úxr!   r!   r"   rA   t  sv    














zGNUTranslations._parsec                 C   sh   dd l }| dtd¡ tƒ }| j ||¡}||krH| jrD| j |¡S |}| jrZ| 	| j¡S | 	t
 ¡ ¡S )Nr   ru   r\   )rP   rQ   rR   Úobjectrž   rE   rm   r   rl   rz   r   r{   )ro   rt   rP   Úmissingr‚   r!   r!   r"   r   Í  s     ÿzGNUTranslations.lgettextc                 C   s�   dd l }| dtd¡ z| j||  |¡f }W n@ tk
rn   | jrX| j |||¡ Y S |dkrf|}n|}Y nX | jr‚| 	| j¡S | 	t
 ¡ ¡S )Nr   r   r\   r2   )rP   rQ   rR   rž   r   ÚKeyErrorrm   r   rl   rz   r   r{   r�   r!   r!   r"   r   Û  s      ÿ
zGNUTranslations.lngettextc                 C   s6   t ƒ }| j ||¡}||kr2| jr.| j |¡S |S |S ri   )r³   rž   rE   rm   r   )ro   rt   r´   r‚   r!   r!   r"   r   ì  s    zGNUTranslations.gettextc                 C   s^   z| j ||  |¡f }W n@ tk
rX   | jrB| j |||¡ Y S |dkrP|}n|}Y nX |S r|   )rž   r   rµ   rm   r   )ro   r}   r~   r9   r‚   r!   r!   r"   r   õ  s    
zGNUTranslations.ngettextc                 C   sF   | j ||f }tƒ }| j ||¡}||krB| jr>| j ||¡S |S |S ri   )ÚCONTEXTr³   rž   rE   rm   r   )ro   rƒ   rt   Úctxt_msg_idr´   r‚   r!   r!   r"   r     s    zGNUTranslations.pgettextc              	   C   sn   | j ||f }z| j||  |¡f }W nB tk
rh   | jrR| j ||||¡ Y S |dkr`|}n|}Y nX |S r|   )r¶   rž   r   rµ   rm   r   )ro   rƒ   r}   r~   r9   r·   r‚   r!   r!   r"   r     s    
zGNUTranslations.npgettextN)rO   r�   r‘   r    r¡   r¶   r£   r”   rA   r   r   r   r   r   r   r!   r!   r!   r"   r   d  s   Y	
Fc                 C   sâ   |d krt }|d krRg }dD ]"}tj |¡}|r| d¡} q@qd|krR| d¡ g }|D ]$}t|ƒD ]}||krf| |¡ qfqZ|rŠg }	nd }	|D ]J}|dkr¢ qÞtj ||dd|  ¡}
tj 	|
¡r’|rÔ|	 |
¡ q’|
  S q’|	S )N)ZLANGUAGEÚLC_ALLÚLC_MESSAGESZLANGr?   ÚCr¹   z%s.mo)
Ú_default_localedirÚosÚenvironrE   r¥   rb   rh   ÚpathÚjoinÚexists)ÚdomainÚ	localedirÚ	languagesÚallZenvarrg   ZnelangsZlangZnelangrG   Úmofiler!   r!   r"   r     s8    


Zunspecifiedc              
   C   s  |d krt }t| ||dd�}|sB|r*tƒ S ddlm} t|d| ƒ‚d }|D ]Æ}	|tj |	¡f}
t	 
|
¡}|d kr–t|	dƒ�}t	 |
||ƒ¡}W 5 Q R X dd l}| |¡}|tk	rödd l}| dtd¡ |rö| ¡ � | d	d
t¡ | |¡ W 5 Q R X |d k�r|}qJ| |¡ qJ|S )NT)rÄ   r   )ÚENOENTz$No translation file found for domainÚrbzparameter codeset is deprecatedr\   rv   z.*\bset_output_charset\b.*)r   r   r   ÚerrnorÆ   ÚFileNotFoundErrorr¼   r¾   ÚabspathÚ_translationsrE   ÚopenÚ
setdefaultÚcopyÚ_unspecifiedrP   rQ   rR   rx   ry   r‰   rr   )rÁ   rÂ   rÃ   Zclass_rs   rf   ZmofilesrÆ   rG   rÅ   ÚkeyÚtrp   rÎ   rP   r!   r!   r"   r   C  sH     ÿ

 ÿ
ÿ
c                 C   s   t | |d|d�}| |¡ d S )NT)rs   rf   )r   r   )rÁ   rÂ   rf   rŽ   rÑ   r!   r!   r"   r   n  s    Zmessagesc                 C   s   | d k	r| a t S ri   )Ú_current_domain)rÁ   r!   r!   r"   r   |  s    c                 C   s   |d k	r|t | < t  | t¡S ri   )Ú_localedirsrE   r»   )rÁ   rÂ   r!   r!   r"   r	   ƒ  s    c                 C   s0   dd l }| dtd¡ |d k	r&|t| < t | ¡S )Nr   z'bind_textdomain_codeset() is deprecatedr\   )rP   rQ   rR   Ú_localecodesetsrE   )rÁ   rf   rP   r!   r!   r"   r
   Š  s     ÿc                 C   s:   zt | t | d ¡ƒ}W n tk
r.   | Y S X | |¡S ri   )r   rÓ   rE   r¢   r   )rÁ   rt   rÑ   r!   r!   r"   r   ”  s
    
c              
   C   s¼   dd l }| dtd¡ t | ¡}z<| ¡ �* | ddt¡ t| t | d ¡|d�}W 5 Q R X W n& t	k
r‚   | 
|pzt ¡ ¡ Y S X | ¡ �& | ddt¡ | |¡W  5 Q R £ S Q R X d S )Nr   z1ldgettext() is deprecated, use dgettext() insteadr\   rv   ú.*\bparameter codeset\b.*©rf   rw   )rP   rQ   rR   rÔ   rE   rx   ry   r   rÓ   r¢   rz   r   r{   r   )rÁ   rt   rP   rf   rÑ   r!   r!   r"   r   ›  s&     ÿ

ÿ$
ÿc                 C   sR   zt | t | d ¡ƒ}W n, tk
rB   |dkr6| Y S | Y S Y nX | |||¡S r|   )r   rÓ   rE   r¢   r   )rÁ   r}   r~   r9   rÑ   r!   r!   r"   r   ¬  s    c              
   C   sÒ   dd l }| dtd¡ t | ¡}z<| ¡ �* | ddt¡ t| t | d ¡|d�}W 5 Q R X W n8 t	k
r”   |dkrz|}n|}| 
|pŒt ¡ ¡ Y S X | ¡ �* | ddt¡ | |||¡W  5 Q R £ S Q R X d S )	Nr   z3ldngettext() is deprecated, use dngettext() insteadr\   rv   rÕ   rÖ   r2   r€   )rP   rQ   rR   rÔ   rE   rx   ry   r   rÓ   r¢   rz   r   r{   r   )rÁ   r}   r~   r9   rP   rf   rÑ   r‚   r!   r!   r"   r   ¶  s,     ÿ

ÿ$
ÿc                 C   s<   zt | t | d ¡ƒ}W n tk
r.   | Y S X | ||¡S ri   )r   rÓ   rE   r¢   r   )rÁ   rƒ   rt   rÑ   r!   r!   r"   r   Ì  s
    
c                 C   sT   zt | t | d ¡ƒ}W n, tk
rB   |dkr6| Y S | Y S Y nX | ||||¡S r|   )r   rÓ   rE   r¢   r   )rÁ   rƒ   r}   r~   r9   rÑ   r!   r!   r"   r   Ô  s    c                 C   s
   t t| ƒS ri   )r   rÒ   )rt   r!   r!   r"   r   ß  s    c              
   C   sN   dd l }| dtd¡ | ¡ �& | ddt¡ tt| ƒW  5 Q R £ S Q R X d S )Nr   ru   r\   rv   z.*\bldgettext\b.*)rP   rQ   rR   rx   ry   r   rÒ   )rt   rP   r!   r!   r"   r   â  s     ÿ
ÿc                 C   s   t t| ||ƒS ri   )r   rÒ   )r}   r~   r9   r!   r!   r"   r   ë  s    c              
   C   sR   dd l }| dtd¡ | ¡ �* | ddt¡ tt| ||ƒW  5 Q R £ S Q R X d S )Nr   r   r\   rv   z.*\bldngettext\b.*)rP   rQ   rR   rx   ry   r   rÒ   )r}   r~   r9   rP   r!   r!   r"   r   î  s     ÿ
ÿc                 C   s   t t| |ƒS ri   )r   rÒ   )rƒ   rt   r!   r!   r"   r   ø  s    c                 C   s   t t| |||ƒS ri   )r   rÒ   )rƒ   r}   r~   r9   r!   r!   r"   r   ü  s    )r5   )NNF)N)N)N)1Ú__doc__r   r¼   r   ÚsysÚ__all__r¾   r¿   Úbase_prefixr»   ÚcompileÚVERBOSEÚDOTALLr   r#   r$   rC   r«   rD   rA   rS   r[   rh   r   r   r   rË   rÏ   r   r   rÓ   rÔ   rÒ   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r!   r!   r"   Ú<module>   sˆ   0             û
õ
1$*f 7
&  ÿ
+




	
