ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     o
    hj                     @   s  d Z ddlZddlZddlZg d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 dd dZG dd deZdHd!d"Zi Zd#gZdddd efd$d%Zdedfd&d'Zi ai ad(adId)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.eZ/dS )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
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   sR    t t| D ]}|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mokindvalue r"   ./opt/alt/python310/lib64/python3.10/gettext.py	_tokenizeV   s   

r$   c                 C   s   | rt d|  S t dS )Nz#unexpected token in plural form: %szunexpected end of plural form)r   )r!   r"   r"   r#   _errora   s   r%   ))||)&&)z==z!=)<>z<=z>=)+-)*/%c                 C   s    i | ]\}}|D ]}||qqS r"   r"   ).0iopsopr"   r"   r#   
<dictcomp>o   s     r3      orandz//)r&   r'   r-   c                 C   s  d}t | }|dkr|d7 }t | }|dks
|dkr/t| \}}d||f }|dkr.tdn%|dkr:d	||f }nzt|d
}W n tyM   t|d w d||f }t | }d}|tv rt| }||k rgn(|dv rs|dv rsd| }t||}t| |d \}	}d|||	f }|}|tv s^||  krdkrn nd| }|dkr|dkrt| d\}
}|dkrt|t| \}}d|
||f }|dkrd| }||fS )Nr   !znot (z%s(%s))z%unbalanced parenthesis in plural formnz%s%s
   z%s%dd   )      z(%s)r4   z%s %s %sr?   ?r   :z%s if %s else %s)next_parser   intr%   _binary_ops	_c2py_opsget)tokensZpriorityresultnexttoksubr!   jr0   r2   rightZif_trueZif_falser"   r"   r#   rC   r   sX   
rC   c                 C   sT   zt | }W n ty   td| jjf d w 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)r;   r0   rR   r"   r"   r#   _as_int   s    rU   c                 C   s   t | dkr
tdz>tt| \}}|rt|d}|D ]}|dkr0|d7 }|dkr/tdq|dkr8|d8 }qd	ti}td
| | |d W S  tyS   tdw )zGets 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   r9   r4      z%plural form expression is too complexr:   rU   zif True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            func)lenr   rC   r$   r%   rU   execRecursionError)r   rI   rJ   Zdepthcnsr"   r"   r#   c2py   s4   
r]   c                 C   s8  dd l }|| } d}d}d}d}| d}|dkr+| |d  }| d | } ||O }nd}| d}|dkrG| |d  }| d | } ||O }nd}| d}|dkrc| |d  }	| d | } ||O }nd}	| }
g }t|d D ]&}|| @ s|
}||@ r||	7 }||@ r||7 }||@ r||7 }|| qo|  |S )	Nr   r4      r?   @r   ._)r   Z	normalizer   rangeappendreverse)Zlocr   ZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERmaskposZmodifiercodesetZ	territoryZlanguageZretr0   valr"   r"   r#   _expand_lang   sH   








ri   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   s2   i | _ d | _d | _d | _|d ur| | d S d S N)_info_charset_output_charset	_fallbackrC   selffpr"   r"   r#   __init__   s   zNullTranslations.__init__c                 C   s   d S rj   r"   ro   r"   r"   r#   rC     s   zNullTranslations._parsec                 C   s    | j r| j | d S || _ d S rj   )rn   add_fallback)rp   fallbackr"   r"   r#   rs   
  s   
zNullTranslations.add_fallbackc                 C   s   | j r	| j |S |S rj   )rn   r   )rp   messager"   r"   r#   r     s   zNullTranslations.gettextc                 C   s   dd l }|dtd dd l}| jr3|  |ddt | j|W  d    S 1 s.w   Y  | jr<|	| jS |	|
 S )Nr   /lgettext() is deprecated, use gettext() insteadr^   ignore.*\blgettext\b.*)rR   rS   rT   r   rn   catch_warningsfilterwarningsr   rm   encodegetpreferredencoding)rp   ru   rR   r   r"   r"   r#   r     s   

 zNullTranslations.lgettextc                 C   s&   | j r| j |||S |dkr|S |S Nr4   )rn   r   )rp   msgid1msgid2r;   r"   r"   r#   r   #  s
   zNullTranslations.ngettextc                 C   s   dd l }|dtd dd l}| jr5|  |ddt | j|||W  d    S 1 s0w   Y  |dkr<|}n|}| jrG|	| jS |	|
 S )Nr   1lngettext() is deprecated, use ngettext() insteadr^   rw   .*\blngettext\b.*r4   )rR   rS   rT   r   rn   ry   rz   r   rm   r{   r|   rp   r~   r   r;   rR   r   tmsgr"   r"   r#   r   +  s$   
 zNullTranslations.lngettextc                 C   s   | j r
| j ||S |S rj   )rn   r   )rp   contextru   r"   r"   r#   r   =  s   zNullTranslations.pgettextc                 C   s(   | j r| j ||||S |dkr|S |S r}   )rn   r   )rp   r   r~   r   r;   r"   r"   r#   r   B  s
   zNullTranslations.npgettextc                 C      | j S rj   )rk   rp   r"   r"   r#   infoJ     zNullTranslations.infoc                 C   r   rj   )rl   r   r"   r"   r#   charsetM  r   zNullTranslations.charsetc                 C   s   dd l }|dtd | jS )Nr   zoutput_charset() is deprecatedr^   rR   rS   rT   rm   )rp   rR   r"   r"   r#   output_charsetP  s
   zNullTranslations.output_charsetc                 C   s    dd l }|dtd || _d S )Nr   z"set_output_charset() is deprecatedr^   r   )rp   r   rR   r"   r"   r#   set_output_charsetV  s
   
z#NullTranslations.set_output_charsetc                 C   sN   dd l }| j|jd< |d ur#h d}|t|@ D ]}t| ||j|< qd S d S )Nr   ra   >   r   r   r   r   r   r   )builtinsr   __dict__setgetattr)rp   namesr   Zallowednamer"   r"   r#   r   \  s   zNullTranslations.installrj   )rQ   
__module____qualname__rr   rC   rs   r   r   r   r   r   r   r   r   r   r   r   r"   r"   r"   r#   r      s    
r   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   r4   c                 C   s   |d? |d@ fS )z/Returns a tuple of major version, minor version   i  r"   )rp   versionr"   r"   r#   _get_versionsr  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}n|| jkrS|d|d	d \}}	}
}d}nt	dd|| 
|\}}|| jvrot	ddt| |td|	D ]}||||
|
d  \}}|| }|||||d  \}}|| }||k r||k r||| }||| }nt	dd||dkr,d}|dD ]l}|  }|sq|dr|drqd }}d|v r|dd\}}|  }| }|| j|< |}n|r| j|  d| 7  < |dkr|dd | _q|dkr+|d}|d dd }t|| _q| jp1d}d|v r\|d\}} |d}t||}t|D ]\}}!t|!||||f< qLn
t|||t||< |
d7 }
|d7 }qtdS )z8Override this method to support alternative .mo formats.r   )unpackr   r   c                 S   s   t | dkS r}   )rD   )r;   r"   r"   r#   <lambda>  s    z(GNUTranslations._parse.<locals>.<lambda>z<INr?   z<4IrV   z<IIz>4Iz>IIzBad magic numberzBad version number    zFile is corrupt   
z	#-#-#-#-#rA   r4   
zcontent-typezcharset=zplural-forms;zplural=ascii    )Zstructr   r   _catalogr   readrX   LE_MAGICBE_MAGICOSErrorr   VERSIONSstrrb   splitdecodestrip
startswithendswithlowerrk   rl   r]   	enumerate)"rp   rq   r   filenameZcatalogZbufZbuflenmagicr   ZmsgcountZ	masteridxZtransidxZiiZmajor_versionZminor_versionr0   ZmlenZmoffZmendZtlenZtoffZtendmsgr   ZlastkZb_itemitemkvr   r   r~   r   xr"   r"   r#   rC   v  s|   















zGNUTranslations._parsec                 C   sp   dd l }|dtd dd l}t }| j||}||u r(| jr&| j|S |}| j	r1|
| j	S |
| S )Nr   rv   r^   )rR   rS   rT   r   objectr   rG   rn   r   rm   r{   r|   )rp   ru   rR   r   missingr   r"   r"   r#   r     s   zGNUTranslations.lgettextc                 C   s   dd l }|dtd dd l}z| j|| |f }W n ty:   | jr/| j||| Y S |dkr6|}n|}Y nw | j	rD|
| j	S |
| S )Nr   r   r^   r4   )rR   rS   rT   r   r   r   KeyErrorrn   r   rm   r{   r|   r   r"   r"   r#   r     s$   zGNUTranslations.lngettextc                 C   s6   t  }| j||}||u r| jr| j|S |S |S rj   )r   r   rG   rn   r   )rp   ru   r   r   r"   r"   r#   r     s   zGNUTranslations.gettextc                 C   s`   z| j || |f }W |S  ty/   | jr!| j||| Y S |dkr*|}Y |S |}Y |S w r}   )r   r   r   rn   r   )rp   r~   r   r;   r   r"   r"   r#   r     s   zGNUTranslations.ngettextc                 C   sF   | j ||f }t }| j||}||u r!| jr| j||S |S |S rj   )CONTEXTr   r   rG   rn   r   )rp   r   ru   ctxt_msg_idr   r   r"   r"   r#   r     s   zGNUTranslations.pgettextc              	   C   sp   | j ||f }z| j|| |f }W |S  ty7   | jr)| j|||| Y S |dkr2|}Y |S |}Y |S w r}   )r   r   r   r   rn   r   )rp   r   r~   r   r;   r   r   r"   r"   r#   r     s   zGNUTranslations.npgettextN)rQ   r   r   r   r   r   r   r   rC   r   r   r   r   r   r   r"   r"   r"   r#   r   f  s    Y	
r   Fc                 C   s   |d u rt }|d u r)g }dD ]}tj|}|r|d} nqd|vr)|d g }|D ]}t|D ]}||vr>|| q3q-|rEg }	nd }	|D ]&}|dkrR |	S tj||dd|  }
tj	|
ro|rk|	|
 qI|
  S qI|	S )N)ZLANGUAGELC_ALLLC_MESSAGESZLANGrA   Cr   z%s.mo)
_default_localedirosenvironrG   r   rc   ri   pathjoinexists)domain	localedir	languagesallZenvarrh   ZnelangsZlangZnelangrI   mofiler"   r"   r#   r     sB   


r   Zunspecifiedc              	   C   s<  |d u rt }t| ||dd}|s!|rt S ddlm} t|d| d }|D ]v}	|tj|	f}
t	
|
}|d u rUt|	d}t	|
||}W d    n1 sPw   Y  dd l}||}|turdd l}|dtd |r|  |d	d
t || W d    n1 sw   Y  |d u r|}q%|| q%|S )NT)r   r   )ENOENTz$No translation file found for domainrbzparameter codeset is deprecatedr^   rw   z.*\bset_output_charset\b.*)r   r   r   errnor   FileNotFoundErrorr   r   abspath_translationsrG   open
setdefaultcopy_unspecifiedrR   rS   rT   ry   rz   r   rs   )r   r   r   Zclass_rt   rg   Zmofilesr   rI   r   keytrq   r   rR   r"   r"   r#   r   G  sH   


r   c                 C   s   t | |d|d}|| d S )NT)rt   rg   )r   r   )r   r   rg   r   r   r"   r"   r#   r   r  s   r   Zmessagesc                 C   s   | d ur| a t S rj   )_current_domain)r   r"   r"   r#   r     s   r   c                 C   s   |d ur|t | < t | tS rj   )_localedirsrG   r   )r   r   r"   r"   r#   r	     s   r	   c                 C   s0   dd l }|dtd |d ur|t| < t| S )Nr   z'bind_textdomain_codeset() is deprecatedr^   )rR   rS   rT   _localecodesetsrG   )r   rg   rR   r"   r"   r#   r
     s   
r
   c                 C   s8   zt | t| d }W n ty   | Y S w ||S rj   )r   r   rG   r   r   )r   ru   r   r"   r"   r#   r     s   
r   c                 C   s   dd l }|dtd dd l}t| }z(|  |ddt t| t	| d |d}W d    n1 s6w   Y  W n t
yN   ||pJ|  Y S w |  |ddt ||W  d    S 1 sjw   Y  d S )Nr   z1ldgettext() is deprecated, use dgettext() insteadr^   rw   .*\bparameter codeset\b.*rg   rx   )rR   rS   rT   r   r   rG   ry   rz   r   r   r   r{   r|   r   )r   ru   rR   r   rg   r   r"   r"   r#   r     s.   


$r   c                 C   sL   zt | t| d }W n ty   |dkr| Y S | Y S w ||||S r}   )r   r   rG   r   r   )r   r~   r   r;   r   r"   r"   r#   r     s   r   c           	      C   s   dd l }|dtd dd l}t| }z(|  |ddt t| t	| d |d}W d    n1 s6w   Y  W n t
yW   |dkrJ|}n|}||pS|  Y S w |  |ddt ||||W  d    S 1 suw   Y  d S )	Nr   z3ldngettext() is deprecated, use dngettext() insteadr^   rw   r   r   r4   r   )rR   rS   rT   r   r   rG   ry   rz   r   r   r   r{   r|   r   )	r   r~   r   r;   rR   r   rg   r   r   r"   r"   r#   r     s4   


$r   c                 C   s:   zt | t| d }W n ty   | Y S w |||S rj   )r   r   rG   r   r   )r   r   ru   r   r"   r"   r#   r     s   r   c                 C   sN   zt | t| d }W n ty   |dkr| Y S | Y S w |||||S r}   )r   r   rG   r   r   )r   r   r~   r   r;   r   r"   r"   r#   r     s   r   c                 C   s
   t t| S rj   )r   r   )ru   r"   r"   r#   r     s   
r   c                 C   sZ   dd l }|dtd |  |ddt tt| W  d    S 1 s&w   Y  d S )Nr   rv   r^   rw   z.*\bldgettext\b.*)rR   rS   rT   ry   rz   r   r   )ru   rR   r"   r"   r#   r     s   
$r   c                 C   s   t t| ||S rj   )r   r   )r~   r   r;   r"   r"   r#   r     s   r   c                 C   s^   dd l }|dtd |  |ddt tt| ||W  d    S 1 s(w   Y  d S )Nr   r   r^   rw   z.*\bldngettext\b.*)rR   rS   rT   ry   rz   r   r   )r~   r   r;   rR   r"   r"   r#   r     s   
$r   c                 C   s   t t| |S rj   )r   r   )r   ru   r"   r"   r#   r     s   r   c                 C   s   t t| |||S rj   )r   r   )r   r~   r   r;   r"   r"   r#   r     s   r   )r7   )NNFrj   )0__doc__r   r   sys__all__r   r   base_prefixr   compileVERBOSEDOTALLr   r$   r%   rE   r   rF   rC   rU   r]   ri   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$+h 
9&
+




	
