B ïY6dÏUã@sxdZddlZddlZddlZddlZddddddd d d d d ddddddgZej ejdd¡Z e  dej ej B¡Z dd„Zdd„ZdZdd„eedƒDƒZdd d!d"œZd>d$d%„Zd&d'„Zd(d)„Zd*d+„ZGd,d„dƒZGd-d„deƒZd?d/d„ZiZd@d0d„ZdAd1d„Ziaiad2adBd3d „Z dCd4d „Z!dDd5d „Z"d6d „Z#d7d„Z$d8d „Z%d9d„Z&d:d„Z'd;d„Z(d[ \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 ccsTxHt t|¡D]8}|j}|dkr"q| |¡}|dkr@td|ƒ‚|VqWdVdS)NZ WHITESPACESZINVALIDz invalid token in plural form: %sÚ)ÚreÚfinditerÚ_token_patternÚ lastgroupÚgroupÚ ValueError)ÚpluralÚmoÚkindÚvalue©rú#/usr/local/lib/python3.7/gettext.pyÚ _tokenizeVs   r!cCs|rtd|ƒStdƒSdS)Nz#unexpected token in plural form: %szunexpected end of plural form)r)rrrr Ú_erroras r"))z||)z&&)z==z!=)ú<ú>z<=z>=)ú+ú-)Ú*ú/ú%cCs i|]\}}|D] }||“qqSrr)Ú.0ÚiÚopsÚoprrr ú osr.éÚorÚandz//)z||z&&r(éÿÿÿÿc Cs®d}t|ƒ}x|dkr(|d7}t|ƒ}qW|dkr\t|ƒ\}}d||f}|dkr¬tdƒ‚nP|dkrrd ||f}n:yt|d ƒ}Wntk ržt|ƒd‚YnXd ||f}t|ƒ}d }xh|tkr t|}||krÖP|d krî|d krîd|}t ||¡}t||dƒ\} }d||| f}|}qºW||kr:dkrFnnd|}|dkr¦|dkr¦t|dƒ\} }|dkrzt|ƒ‚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)r/z%s %s %sr:ú?rú:z%s if %s else %s)ÚnextÚ_parserÚintr"Ú _binary_opsÚ _c2py_opsÚget) ÚtokensÚpriorityÚresultÚnexttokÚsubrÚjr+r-ÚrightZif_trueZif_falserrr r>rsP           r>cCsZy t|ƒ}Wn(tk r4td|jjfƒd‚YnXddl}| d|jjftd¡|S)Nz'Plural value must be an integer, got %srr:)ÚroundÚ TypeErrorÚ __class__Ú__name__ÚwarningsÚwarnÚDeprecationWarning)r6r+rNrrr Ú_as_int£s  rQcCs´t|ƒdkrtdƒ‚y~tt|ƒƒ\}}|r2t|ƒ‚d}x>|D]6}|dkrb|d7}|dkrrtdƒ‚q<|dkr<|d8}qr!r"rQÚexecÚRecursionError)rrErFÚdepthÚcÚnsrrr Úc2py¯s(     rZc Cs8t |¡}d}d}d}d}| d¡}|dkrN||d…}|d|…}||O}nd}| d¡}|dkr†||d…}|d|…}||O}nd}| d¡}|dkr¾||d…}|d|…}||O}nd}|} g} x`t|dƒD]P} | |@sØ| } | |@rú| |7} | |@r | |7} | |@r| |7} |  | ¡qØW|  ¡| S) Nr/ér:rú@rÚ.Ú_)rÚ normalizerÚrangeÚappendÚreverse) ZlocZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERÚmaskÚposÚmodifierÚcodesetZ territoryÚlanguageÚretr+Úvalrrr Ú _expand_langÓsJ                rjc@speZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z ddd„ZdS)rNcCs.i|_d|_d|_d|_|dk r*| |¡dS)N)Ú_infoÚ_charsetÚ_output_charsetÚ _fallbackr>)ÚselfÚfprrr Ú__init__þs zNullTranslations.__init__cCsdS)Nr)rorprrr r>szNullTranslations._parsecCs|jr|j |¡n||_dS)N)rnÚ add_fallback)roÚfallbackrrr rr szNullTranslations.add_fallbackcCs|jr|j |¡S|S)N)rnr )roÚmessagerrr r s zNullTranslations.gettextcCs2|jr|j |¡S|jr$| |j¡S| t ¡¡S)N)rnrrmÚencoderÚgetpreferredencoding)rortrrr rs   zNullTranslations.lgettextcCs*|jr|j |||¡S|dkr"|S|SdS)Nr/)rnr)roÚmsgid1Úmsgid2r6rrr rs zNullTranslations.ngettextcCsH|jr|j |||¡S|dkr$|}n|}|jr:| |j¡S| t ¡¡S)Nr/)rnrrmrurrv)rorwrxr6Útmsgrrr r#s zNullTranslations.lngettextcCs|jS)N)rk)rorrr Úinfo.szNullTranslations.infocCs|jS)N)rl)rorrr Úcharset1szNullTranslations.charsetcCs|jS)N)rm)rorrr Úoutput_charset4szNullTranslations.output_charsetcCs ||_dS)N)rm)ror{rrr Úset_output_charset7sz#NullTranslations.set_output_charsetcCsvddl}|j|jd<t|dƒrrd|kr6|jd|jd<d|krJ|j|jd<d|kr^|j|jd<d|krr|j|jd<dS)Nrr^Ú __contains__r rrr)Úbuiltinsr Ú__dict__Úhasattrrrr)roÚnamesrrrr r:s    zNullTranslations.install)N)N)rMÚ __module__Ú __qualname__rqr>rrr rrrrzr{r|r}rrrrr rýs  c@sHeZdZdZdZdZdd„Zdd„Zdd „Zd d „Z d d „Z dd„Z dS)rlÞ*l•$<)rr/cCs|d?|d@fS)z/Returns a tuple of major version, minor versionéiÿÿr)roÚversionrrr Ú _get_versionsPszGNUTranslations._get_versionsc"Csèddlm}t|ddƒ}i|_}dd„|_| ¡}t|ƒ}|d|dd …ƒd}||jkr||d |d d …ƒ\}} } } d } n6||jkr¦|d |d d …ƒ\}} } } d} n t dd|ƒ‚|  |¡\} }| |j krÞt ddt | ƒ|ƒ‚xt d| ƒD]ò}|| || | d…ƒ\}}||}|| || | d…ƒ\}}||}||krd||krd|||…}|||…}n t dd|ƒ‚|dkrXd}xØ| d¡D]Ê}| ¡ ¡}|s¤qŠd}}d|krê| dd¡\}}| ¡ ¡}| ¡}||j|<|}n|r|j|d|7<|dkr"| d¡d|_n0|dkrŠ| d¡}|d d¡d}t|ƒ|_qŠW|jpbd}d|kr¼| d¡\}} | d¡}t ||ƒ}x>t|ƒD]\}}!t |!|ƒ|||f<qšWnt ||ƒ|t ||ƒ<| d7} | d7} qìWdS)z8Override this method to support alternative .mo formats.r)ÚunpackÚnamercSs t|dkƒS)Nr/)r?)r6rrr Ú]óz(GNUTranslations._parse..z4Iz>IIzBad magic numberzBad version number ézFile is corruptó r<r/Ú z content-typezcharset=z plural-formsú;zplural=Úasciió)ÚstructrˆÚgetattrÚ_catalogrÚreadrTÚLE_MAGICÚBE_MAGICÚOSErrorr‡ÚVERSIONSÚstrr`ÚsplitÚdecodeÚstripÚlowerrkrlrZÚ enumerate)"rorprˆÚfilenameZcatalogÚbufÚbuflenÚmagicr†ZmsgcountZ masteridxZtransidxÚiiZ major_versionZ minor_versionr+ZmlenZmoffZmendZtlenZtoffZtendÚmsgryZlastkZb_itemÚitemÚkÚvrr{rwrxÚxrrr r>Tsr                      zGNUTranslations._parsecCsRtƒ}|j ||¡}||kr2|jr.|j |¡S|}|jrD| |j¡S| t ¡¡S)N) Úobjectr”rBrnrrmrurrv)rortÚmissingryrrr rªs  zGNUTranslations.lgettextcCsvy|j|| |¡f}Wn<tk rT|jr>|j |||¡S|dkrL|}n|}YnX|jrh| |j¡S| t ¡¡S)Nr/) r”rÚKeyErrorrnrrmrurrv)rorwrxr6ryrrr rµs  zGNUTranslations.lngettextcCs6tƒ}|j ||¡}||kr2|jr.|j |¡S|S|S)N)rªr”rBrnr )rortr«ryrrr r Ãs zGNUTranslations.gettextcCsZy|j|| |¡f}Wn<tk rT|jr>|j |||¡S|dkrL|}n|}YnX|S)Nr/)r”rr¬rnr)rorwrxr6ryrrr rÌs zGNUTranslations.ngettextN) rMrƒr„r–r—r™r‡r>rrr rrrrr rHsV  Fc Csê|dkr t}|dkrTg}x(dD] }tj |¡}|r| d¡}PqWd|krT| d¡g}x0|D](}x"t|ƒD]}||krl| |¡qlWq^W|r”g} nd} xL|D]D}|dkr¬Ptj ||dd|¡} tj  | ¡rž|rÞ|  | ¡qž| SqžW| S)N)ÚLANGUAGEÚLC_ALLÚ LC_MESSAGESÚLANGr<ÚCr¯z%s.mo) Ú_default_localedirÚosÚenvironrBr›rarjÚpathÚjoinÚexists) ÚdomainÚ localedirÚ languagesÚallZenvarriZnelangsÚlangZnelangrEÚmofilerrr rÚs8        c CsØ|dkr t}t|||dd}|sB|r*tƒSddlm}t|d|ƒ‚d}xŒ|D]„} |tj | ¡f} t   | ¡} | dkr˜t | dƒ} t   | || ƒ¡} WdQRXddl } |   | ¡} |r¸|  |¡|dkrÆ| }qL| | ¡qLW|S)NT)r»r)ÚENOENTz$No translation file found for domainÚrb)rrrÚerrnor¾ÚFileNotFoundErrorr³rµÚabspathÚ _translationsrBÚopenÚ setdefaultÚcopyr}rr)r¸r¹rºÚclass_rsrfZmofilesr¾rEr½ÚkeyÚtrprÆrrr rs0      cCst||d|d}| |¡dS)NT)rsrf)rr)r¸r¹rfr‚rÉrrr r&sÚmessagescCs|dk r |atS)N)Ú_current_domain)r¸rrr r4scCs|dk r|t|<t |t¡S)N)Ú _localedirsrBr²)r¸r¹rrr r ;scCs|dk r|t|<t |¡S)N)Ú_localecodesetsrB)r¸rfrrr r BscCs@y t|t |d¡t |¡d}Wntk r4|SX| |¡S)N)rf)rrÌrBrÍr˜r )r¸rtrÉrrr r Is cCsRt |¡}yt|t |d¡|d}Wn"tk rF| |pBt ¡¡SX| |¡S)N)rf) rÍrBrrÌr˜rurrvr)r¸rtrfrÉrrr rQs  cCsTy t|t |d¡t |¡d}Wn$tk rD|dkr<|S|SYnX| |||¡S)N)rfr/)rrÌrBrÍr˜r)r¸rwrxr6rÉrrr r Ys cCsht |¡}yt|t |d¡|d}Wn4tk rX|dkrB|}n|}| |pTt ¡¡SX| |||¡S)N)rfr/) rÍrBrrÌr˜rurrvr)r¸rwrxr6rfrÉryrrr rds cCs tt|ƒS)N)r rË)rtrrr r pscCs tt|ƒS)N)rrË)rtrrr rsscCstt|||ƒS)N)r rË)rwrxr6rrr rvscCstt|||ƒS)N)rrË)rwrxr6rrr rys)r2)NNF)NNNFN)NNN)N)N)N),Ú__doc__rr³rÚsysÚ__all__rµr¶Ú base_prefixr²ÚcompileÚVERBOSEÚDOTALLrr!r"r@rŸrAr>rQrZrjrrrrÃrrrÌrÍrËrr r r rr rr rrrrrrrr Ú sX&        1 $*K & #