+
    TBiv)                         ^ RI t ^ RIHt ^ RIHt  ! R R4      t]]]]]3,          ]],          3,          ,          t	 ! R R4      t
 ! R R	]
4      tR# )
    N)filterfalse)Unionc                   ,   a  ] tR t^t o R tR tRtV tR# )_lazyclasspropertyc                V    Wn         VP                  V n        VP                  V n        R # N)fn__doc____name__)selfr	   s   &&6/usr/lib/python3.14/site-packages/pyparsing/unicode.py__init___lazyclassproperty.__init__	   s    zz    c                  a Sf   \        V4      o\        SR4      '       dc   \        ;QJ d0    V3R lSP                  R,           4       F  '       g   K   RM%	  RM!! V3R lSP                  R,           4       4      '       d   / Sn        V P
                  P                  pVSP                  9  d   V P                  S4      SP                  V&   SP                  V,          # )N_internc              3   V   <"   T F  pSP                   \        VR . 4      J x  K   	  R# 5i)r   N)r   getattr).0
superclassclss   & r   	<genexpr>-_lazyclassproperty.__get__.<locals>.<genexpr>   s*      .
-
 KK7:y"==-s   &):   NNTF)typehasattrany__mro__r   r	   r   )r   objr   attrnames   &&f r   __get___lazyclassproperty.__get__   s    ;s)CsI&&## .
!kk"o.
### .
!kk"o.
 +
 +
 CK77##3;;&$(GGCLCKK!{{8$$r   )r
   r   r	   N)r   
__module____qualname____firstlineno__r   r!   __static_attributes____classdictcell____classdict__s   @r   r   r      s     $
% %r   r   c                     a  ] tR t^t o Rt. t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t	]V 3R lR	 l4       t
]V 3R
 lR l4       t]V 3R lR l4       t]V 3R lR l4       t]R 4       tV 3R ltRtV tR# )unicode_setad  
A set of Unicode characters, for language-specific strings for
``alphas``, ``nums``, ``alphanums``, and ``printables``.
A unicode_set is defined by a list of ranges in the Unicode character
set, in a class attribute ``_ranges``. Ranges can be specified using
2-tuples or a 1-tuple, such as::

    _ranges = [
        (0x0020, 0x007e),
        (0x00a0, 0x00ff),
        (0x0100,),
        ]

Ranges are left- and right-inclusive. A 1-tuple of (x,) is treated as (x, x).

A unicode set can also be defined using multiple inheritance of other unicode sets::

    class CJK(Chinese, Japanese, Korean):
        pass
c                0   < V ^8  d   QhRS[ S[,          /#    return)liststr)formatr)   s   "r   __annotate__unicode_set.__annotate__8   s     0 0$s) 0r   c           	        . pV P                    FS  pV\        J d    MH\        VR R4       F3  pVP                  \	        V^ ,          VR,          ^,           4      4       K5  	  KU  	  \        R \        V4       4       4      # )_rangesc              3   8   "   T F  p\        V4      x  K  	  R # 5ir   )chrr   cs   & r   r   0unicode_set._chars_for_ranges.<locals>.<genexpr>?   s     /hc!ffhs    )r   r+   r   extendrangesortedset)r   retccrrs   &   r   _chars_for_rangesunicode_set._chars_for_ranges7   si    ++B[ b)R0

5A2
34 1 
 /c#h///r   c                    < V ^8  d   QhRS[ /# r-   r1   )r2   r)   s   "r   r3   r4   B   s     H H3 Hr   c                h    RP                  \        \        P                  V P                  4      4      # )z+all non-whitespace characters in this range )joinr   r1   isspacerE   r   s   &r   
printablesunicode_set.printablesA   s$     ww{3;;0E0EFGGr   c                    < V ^8  d   QhRS[ /# r-   rH   )r2   r)   s   "r   r3   r4   G   s     C Cs Cr   c                h    RP                  \        \        P                  V P                  4      4      # )z'all alphabetic characters in this rangerJ   )rK   filterr1   isalpharE   rM   s   &r   alphasunicode_set.alphasF   $     wwvckk3+@+@ABBr   c                    < V ^8  d   QhRS[ /# r-   rH   )r2   r)   s   "r   r3   r4   L   s     C CS Cr   c                h    RP                  \        \        P                  V P                  4      4      # )z*all numeric digit characters in this rangerJ   )rK   rR   r1   isdigitrE   rM   s   &r   numsunicode_set.numsK   rV   r   c                    < V ^8  d   QhRS[ /# r-   rH   )r2   r)   s   "r   r3   r4   Q   s     % %# %r   c                <    V P                   V P                  ,           # )z)all alphanumeric characters in this range)rT   rZ   rM   s   &r   	alphanumsunicode_set.alphanumsP   s     zzCHH$$r   c                    < V ^8  d   QhRS[ /# r-   rH   )r2   r)   s   "r   r3   r4   V   s     
 
3 
r   c           
         RP                  \        \        \        \        P
                  V P                  4      4      \        R4      ,          4      4      # )zVall characters in this range that are valid identifier characters, plus underscore '_'rJ   u   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ_)rK   r@   rA   rR   r1   isidentifierrE   rM   s   &r   
identcharsunicode_set.identcharsU   sJ     wwF3++S-B-BCD	
 		
r   c                    < V ^8  d   QhRS[ /# r-   rH   )r2   r)   s   "r   r3   r4   d   s     

 

s 

r   c                    \        R V P                   4       4      pRP                  \        V\        V P                  4      ,          \        R4      ,          4      4      # )uz   
all characters in this range that are valid identifier body characters,
plus the digits 0-9, and · (Unicode MIDDLE DOT)
c              3   d   "   T F&  pR V,           P                  4       '       g   K"  Vx  K(  	  R# 5i)_N)rb   r9   s   & r   r   -unicode_set.identbodychars.<locals>.<genexpr>i   s%      
,!q0F0F0HAA,s   0
0rJ   u   0123456789·)rA   rE   rK   r@   rc   )r   identifier_charss   & r   identbodycharsunicode_set.identbodycharsc   sV      
,,
 
 ww#c#..&99C<OOP
 	
r   c                H    ^ RI Hp V! V P                  V P                  4      # )zp
a pyparsing Word expression for an identifier using this range's definitions for
identchars and identbodychars
)Word)	pyparsingrn   rc   rk   )r   rn   s   & r   
identifierunicode_set.identifierp   s     	#CNNC$6$677r   c                &   < V ^8  d   Qh/ S[ ;R&   # r.   r6   UnicodeRangeList)r2   r)   s   "r   r3   r4      s     , "- r   r<   N)r   r#   r$   r%   r
   r6   r   rE   rN   rT   rZ   r^   rc   rk   rp   __annotate_func__r&   r'   r(   s   @r   r+   r+      s     * !#G0 0 H H C C C C % % 
 
 

 

 8 8e  r   r+   c                     a  ] tR t^{t o Rt^ ]P                  3.t ! R R]4      t	 ! R R]4      t
 ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t]t ! R R]]]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t]	t]t]t]t]t]t]t]t]t ]t!V 3R lt"Rt#V t$R # )!pyparsing_unicodez>
A namespace class for defining common language unicode_sets.
c                   6   a  ] tR t^t o RtR.tV 3R ltRtV tR# )(pyparsing_unicode.BasicMultilingualPlanez,Unicode set for the Basic Multilingual Planec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   5pyparsing_unicode.BasicMultilingualPlane.__annotate__        ! 	
 r   r<   N)    i  	r   r#   r$   r%   r
   r6   rv   r&   r'   r(   s   @r   BasicMultilingualPlanerz      s     :%
  r   r   c                   8   a  ] tR t^t o RtRR.tV 3R ltRtV tR# )pyparsing_unicode.Latin1z/Unicode set for Latin-1 Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   %pyparsing_unicode.Latin1.__annotate__        ! 	
 r   r<   N)r~   ~   )      r   r(   s   @r   Latin1r      s     =%
  r   r   c                   6   a  ] tR t^t o RtR.tV 3R ltRtV tR# )pyparsing_unicode.LatinAz/Unicode set for Latin-A Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   %pyparsing_unicode.LatinA.__annotate__   r}   r   r<   N)   i  r   r(   s   @r   LatinAr           =%
  r   r   c                   6   a  ] tR t^t o RtR.tV 3R ltRtV tR# )pyparsing_unicode.LatinBz/Unicode set for Latin-B Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   %pyparsing_unicode.LatinB.__annotate__   r}   r   r<   N)i  iO  r   r(   s   @r   LatinBr      r   r   r   c                      a  ] tR t^t o Rt. RNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NtV 3R ltRtV tR# )(pyparsing_unicode.Greekz.Unicode set for Greek Unicode Character Rangesc                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   $pyparsing_unicode.Greek.__annotate__   s     ! $	
 r   r<   N)iB  iE  )ip  iw  )iz  i  )i  i  )i  )i  i  )i  i  )i  i  )i&  i*  )i^  )i`  )if  ij  )i   i  )i  i  )i   iE  )iH  iM  )iP  iW  )iY  )i[  )i]  )i_  i}  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i)!  )i'  i'  )ie  )i@ i )i )i  iE )i i r   r(   s   @r   Greekr      sx    <$%
$%
$%
 $%
 	$%

 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
  !$%
" #$%
$ %$%
& '$%
( )$%
* +$%
, -$%
. /$%
0 1$%
2 3$%
4 5$%
6 7$%
8 9$%
: ;$%
< =$%
> ?$%
@ A$%
B C$%
D E$%
F G$%
  r   r   c                   8   a  ] tR t^t o Rt. ROtV 3R ltRtV tR# )pyparsing_unicode.Cyrillicz0Unicode set for Cyrillic Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   'pyparsing_unicode.Cyrillic.__annotate__   s     ! 		
 r   r<   N))i   i/  )i  i  )i+  )ix  )i-  i-  )i@  ir  )it  i  )i.  i/  r   r(   s   @r   Cyrillicr      s     >	%
  r   r   c                   8   a  ] tR t^t o Rt. ROtV 3R ltRtV tR# )pyparsing_unicode.Chinesez/Unicode set for Chinese Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   &pyparsing_unicode.Chinese.__annotate__   s     ! 	
 r   r<   N))i.  i.  )i.  i.  )i1  i1  )i 4  iM  ) N  i  )i   i  )i   im  )ip  i  )io io )i i )i i; )i@ iH )i   i֦ )i  i4 )i@ i )i  i )i i )i  i r   r(   s   @r   Chineser      s     =%
  r   r   c                       ] tR t^tRt ! R R]4      t ! R R]4      t ! R R]4      t]t	]t
]t]P                  ]P                  ,           ]P                  ,           tRtR	# )
pyparsing_unicode.Japanesez`Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana rangesc                   8   a  ] tR t^t o RtRR.tV 3R ltRtV tR# ) pyparsing_unicode.Japanese.Kanjiz-Unicode set for Kanji Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   -pyparsing_unicode.Japanese.Kanji.__annotate__   s     %  r   r<   N)r   i  )i 0  i?0  r   r(   s   @r   Kanjir      s     ;  )G  r   r   c                   8   a  ] tR t^t o Rt. ROtV 3R ltRtV tR# )#pyparsing_unicode.Japanese.Hiraganaz0Unicode set for Hiragana Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   0pyparsing_unicode.Japanese.Hiragana.__annotate__   s     %  r   r<   N))iA0  i0  )0  0  )i0  )ip  )i )iP iR )i  r   r(   s   @r   Hiraganar      s     B)G  r   r   c                   8   a  ] tR tRt o Rt. ROtV 3R ltRtV tR# )#pyparsing_unicode.Japanese.Katakanai  z1Unicode set for Katakana  Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   0pyparsing_unicode.Japanese.Katakana.__annotate__  s     % 
 r   r<   N)	)r   i0  )r   i0  )i1  i1  )i2  i2  )ie  i  )i  )id ig )i i )i r   r(   s   @r   Katakanar     s     C
)G  r   r   r<   N)r   r#   r$   r%   r
   r+   r   r   r      漢字   カタカナ   ひらがなr6   r&   r<   r   r   Japaneser      sd    n	K 	
	{ 
		{ 	  MM 	r   r   c                   8   a  ] tR tRt o Rt. ROtV 3R ltRtV tR# )pyparsing_unicode.Hanguli  z7Unicode set for Hangul (Korean) Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   %pyparsing_unicode.Hangul.__annotate__  s     ! 	
 r   r<   N))i   i  )i.0  i/0  )i11  i1  )i 2  i2  )i`2  i{2  )i~2  )i`  i|  )i   i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  r   r(   s   @r   Hangulr     s     E%
  r   r   c                       ] tR tRtRtRtR# )pyparsing_unicode.CJKi0  zTUnicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character Ranger<   N)r   r#   r$   r%   r
   r&   r<   r   r   CJKr   0  s    br   r   c                   8   a  ] tR tRt o RtRR.tV 3R ltRtV tR# )pyparsing_unicode.Thaii3  z,Unicode set for Thai Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   #pyparsing_unicode.Thai.__annotate__3  r   r   r<   N)i  i:  )i?  i[  r   r(   s   @r   Thair   3  s     :%
  r   r   c                   8   a  ] tR tRt o Rt. ROtV 3R ltRtV tR# )pyparsing_unicode.Arabici:  z.Unicode set for Arabic Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   %pyparsing_unicode.Arabic.__annotate__:  s     ! 	
 r   r<   N))i   i  )i  i  )i   i  r   r(   s   @r   Arabicr   :  s     <%
  r   r   c                   8   a  ] tR tRt o Rt. ROtV 3R ltRtV tR# )pyparsing_unicode.HebrewiB  z.Unicode set for Hebrew Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   %pyparsing_unicode.Hebrew.__annotate__B  s     ! 
	
 r   r<   N)	)i  i  )i  i  )i  i  )i  i6  )i8  i<  )i>  )i@  iA  )iC  iD  )iF  iO  r   r(   s   @r   Hebrewr   B  s     <
%
  r   r   c                   8   a  ] tR tRt o RtRR.tV 3R ltRtV tR# )pyparsing_unicode.DevanagariiP  z2Unicode set for Devanagari Unicode Character Rangec                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   )pyparsing_unicode.Devanagari.__annotate__P  r   r   r<   N)i 	  i	  )i  i  r   r(   s   @r   
Devanagarir   P  s     @%
  r   r   c                &   < V ^8  d   Qh/ S[ ;R&   # rs   rt   )r2   r)   s   "r   r3   pyparsing_unicode.__annotate__{   s        r   r<   N)%r   r#   r$   r%   r
   sys
maxunicoder6   r+   r   r   r   r   r   r   r   r   r   Koreanr   r   r   r   r   BMP   العربية   中文   кириллица   Ελληνικά   עִברִית	   日本語	   한국어	   ไทย   देवनागरीrv   r&   r'   r(   s   @r   rx   rx   {   s     
 !G
 

 

 

 
&
 &
P
; 

+ 
.,
; ,
\
 
( Fcgx c
{ 

 

 

[ 
 !C NF!NIII)O  r   rx   )r   	itertoolsr   typingr   r   r0   tupleintru   r+   rx   r<   r   r   <module>r      sX     ! % %( eCHouSz9:; Y8 Y8xg* g*r   