
    ̆hG                       % S r SSKJr  SSKJrJr  \" S5      rS\S'   0 SS_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_0 SS_SS_S S_S!S_S"S_S#S_S$S%_S&S%_S'S(_S)S_S*S_S+S_S,S_S-S_S.S_S/S_S0S1_E0 S2S_S3S_S4S_S5S_S6S_S7S_S8S_S9S_S:S;_S<S=_S>S?_S@S_SAS_SBS_SCS_SDS_SESF_E0 SGS_SHS%_SISJ_SKS_SLS_SMSN_SOS_SPS_SQS_SRS_SSS_STS_SUS_SVS_SWS_SXS_ErSY\SZ'   Sr	S[\S\'    " S] S^\
5      rSaSbS` jjrg_)cz
babel.messages.plurals
~~~~~~~~~~~~~~~~~~~~~~

Plural form definitions.

:copyright: (c) 2013-2025 by the Babel Team.
:license: BSD, see LICENSE for more details.
    )annotations)Localedefault_localeLC_CTYPEz
str | Noneaf)   z(n != 1)ar)   z[(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5)be)   zR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)bgbnbo)   0br)r
   a&  (n==1 ? 0 : n%10==1 && n%100!=11 && n%100!=71 && n%100!=91 ? 1 : n%10==2 && n%100!=12 && n%100!=72 && n%100!=92 ? 2 : (n%10==3 || n%10==4 || n%10==9) && n%100!=13 && n%100!=14 && n%100!=19 && n%100!=73 && n%100!=74 && n%100!=79 && n%100!=93 && n%100!=94 && n%100!=99 ? 3 : n%1000000==0 ? 4 : 5)bscacs)r   z%((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2)cvcy)   z/(n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 0)dadedzeleneoeseteufafifr)r   z(n > 1)furga)r   z@(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)glhahehihrhuhyis)r   z(n%10==1 && n%100!=11 ? 0 : 1)itjakakgkmkokulolt)r   zG(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)lv)r   z+(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)mt)   zS(n==1 ? 0 : n==0 || ( n%100>=1 && n%100<=10) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)nbnlnnnopapl)r   zB(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)ptpt_BRro)r   z8(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2)rusksl)r:   z<(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)srstsvthtrukvevixhzhzdict[str, tuple[int, str]]PLURALSztuple[int, str]DEFAULT_PLURALc                  b    \ rS rSrSrSr\S	S j5       r\S
S j5       r\S
S j5       r	S
S jr
Srg)_PluralTuple   z A tuple with plural information. c                    U S   $ )z)The number of plurals used by the locale.r   rV   selfs    N/opt/services/DDDS/venv/lib/python3.13/site-packages/babel/messages/plurals.pynum_plurals_PluralTuple.num_plurals        Aw    c                    U S   $ )z)The plural expression used by the locale.r   rV   rX   s    rZ   plural_expr_PluralTuple.plural_expr   r]   r^   c                     SU S    SU S    S3$ )z4The plural expression used by the catalog or locale.z	nplurals=r   z	; plural=r   ;rV   rX   s    rZ   plural_forms_PluralTuple.plural_forms   s!     47)9T!WIQ77r^   c                    U R                   $ N)rd   rX   s    rZ   __str___PluralTuple.__str__   s       r^   N)returnint)rj   str)__name__
__module____qualname____firstlineno____doc__	__slots__propertyr[   r`   rd   rh   __static_attributes__rV   r^   rZ   rT   rT      sI    *I    8 8!r^   rT   Nc                    [         R                  " U =(       d    [        5      n  [        [	        U 5         n[        U5      $ ! [
         a.     [        U R                     n N+! [
         a
    [        n  N>f = ff = f)a  A tuple with the information catalogs need to perform proper
pluralization.  The first item of the tuple is the number of plural
forms, the second the plural expression.

:param locale: the `Locale` object or locale identifier. Defaults to the system character type locale.

>>> get_plural(locale='en')
(2, '(n != 1)')
>>> get_plural(locale='ga')
(5, '(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)')

The object returned is a special tuple with additional members:

>>> tup = get_plural("ja")
>>> tup.num_plurals
1
>>> tup.plural_expr
'0'
>>> tup.plural_forms
'nplurals=1; plural=0;'

Converting the tuple into a string prints the plural forms for a
gettext catalog:

>>> str(tup)
'nplurals=1; plural=0;'
)	r   parser   rQ   rl   KeyErrorlanguagerR   rT   )localetups     rZ   
get_pluralr{      so    8 \\&,H-F!c&k"   !	!&//*C 	! C	!!s)   A 
A:A""A62A:5A66A:rg   )ry   zLocale | str | Nonerj   rT   )rq   
__future__r   
babel.corer   r   r   __annotations__rQ   rR   tuplerT   r{   rV   r^   rZ   <module>r      sL   # -
 &j1* 1t' 	/t'  	
l!t'8 	
c9t'< 	/=t'L 	/Mt'P 	(Qt'T 	 Ut'b 	
cct'f 	/gt'z 	
6{t'B 	(Ct'F 	
@Gt'J 	/Kt'N 	/Ot'V 	(Wt'Z 	/[t'^ 	/_t'b 	/ct'f 	/gt'j 	/kt'n 	/ot'r 	(st'v 	/wt'z 	.{t'~ 
>t'B 	
QCt'F 	/Gt'J 	/Kt'N 	/Ot'R 	/St'V 	
cWt'Z 	([t'^ 	(_t'b 	
/ct'f 	/gt'j 	(kt'n 	(ot'r 	/st'v 	(wt'z 	({t'~ 	/t'B 	(Ct'F 	
XGt'J 	
<Kt'N 	
dOt'R 	/St'V 	/Wt'Z 	/[t'^ 	/_t'b 	/ct'f 	
Sgt'j 	/kt'n ^ot'r 	
Ist'v 	
cwt'z 	
6{t'~ 	
Mt'B 	
cCt'F 	/Gt'J 	/Kt'N 	(Ot'R 	(St'V 	
cWt'Z 	/[t'^ 	(_t'b 	/ct'f 	(gt'	# tn #2 1!5 !0$r^   