
    
fŇ                        d Z ddlZddlZddlmZ ddlmZmZ ddl	m
Z
mZmZmZmZ ddlmZ ddlmZ  ej        d          Zej        d	k    sJ  ej        ej        d	d
d          Z ej        d          Zej        Zej        ej        ej        de         Zej        ej        ej         de         Z!d Z"ed             Z#ed             Z$ed             Z% ed          d             Z&ed             Z' ed          d             Z(ed             Z)ed             Z*d Z+d Z,d Z-d Z.ed             Z/ eej        ej0                  d             Z1d  Z2 eej0        ej                  d!             Z3 eej4        ej                  d"             Z5ed#             Z6 eej4        ej7                  d$             Z8 e
ej9                  d%             Z: e
e;          d&             Z< e
ej=                   e
ej>                  d'                         Z? e
ej@                  d(             ZA e
ejB                  d)             ZC e
ejD                  d*             ZE e
ejF                  d+             ZG e
ejH                  d,             ZI e
ejJ                  d-             ZK e
ejL                  d.             ZM e
ejN                  d/             ZO e
ejP                  d0             ZQ eej7        d1           eej0        d1           eej        d1          d2                                     ZR eej7        d3           eej0        d3          d4                         ZS eej4        d5          d6             ZT eej0        d7           eej        d7          d8                         ZU eej7        d9          d:             ZV e
eW          d;             ZX eej7        d<          d=             ZY eej0        d<          d>             ZZ eej7        d?          d@             Z[ eej0        d?          dA             Z\ eej7        dB          dC             Z] eej0        dB          dD             Z^ eej7        dE           eej0        dE           eej        dE          dF                                     Z_ eej7        dG           eej0        dG           eej        dG          dH                                     Z` eej7        dI           eej0        dI           eej        dI          dJ                                     Za eej7        dK           eej0        dK           eej        dK          dL                                     ZbedM             Zc eej7        dN           eej0        dN           eej        dN          dbdP                                    Zd eej7        dQ           eej0        dQ           eej        dQ          dcdS                                    Ze eej7        dT           eej0        dT           eej        dT          dcdU                                    Zf eej7        dV           eej0        dV           eej        dV          dcdW                                    Zg eej7        dX           eej0        dX           eej        dX          dY                                     Zh eej7        dZ           eej0        dZ           eej        dZ          ddd[                                    Zi eej7        d\           eej0        d\           eej        d\          ddd]                                    Zj eej7        d^           eej0        d^           eej        d^          ddd_                                    Zk eej7        d`           eej0        d`           eej        d`          da                                     ZldS )ez=Implements operations on bytes and str (unicode) array items.    N)ir)typescgutils)overload	intrinsicoverload_method
lower_castregister_jitable)is_nonelike)unicodeS1   CT)readonlyU1)r         c                       fd}|S )Nc                 R   |\  }}t          j        ||          }|                    |t          j        	                                                    }|                    |                    ||g                    }|                    |t          j        d                    S )Nvalue    )	r   alloca_once_valuebitcastr   IntType
as_pointerloadgepzext)
contextbuilder	signatureargsdataidxrawptrptrchbitsizes
            5lib/python3.11/site-packages/numba/cpython/charseq.pycodegenz#make_deref_codegen.<locals>.codegen%   s    	c*7$???oofbj&9&9&D&D&F&FGG\\'++cC51122||B
2///     )r)   r+   s   ` r*   make_deref_codegenr.   $   s#    0 0 0 0 0 Nr,   c                 b    t          j        |t           j                  }|t          d          fS )N   r   uint32intpr.   	typingctxr$   offsetsigs       r*   deref_uint8r8   .   s)    
,tUZ
(
(C"1%%%%r,   c                 b    t          j        |t           j                  }|t          d          fS )N   r1   r4   s       r*   deref_uint16r;   4   )    
,tUZ
(
(C"2&&&&r,   c                 b    t          j        |t           j                  }|t          d          fS )Nr   r1   r4   s       r*   deref_uint32r>   :   r<   r,   F)_nrtc                 "    t          | |          S )z6Access i-th item of CharSeq object via code value
    )r8   ais     r*   charseq_get_coderD   @   s     q!r,   c                 P    t          | |          }|dk    rt          d          |S )zcAccess i-th item of CharSeq object via code value.

    null code is interpreted as IndexError
    r   index out of range)rD   
IndexErrorrB   rC   codes      r*   charseq_get_valuerJ   G   s0     Aq!!Dqyy-...Kr,   c                     t           dk    rt          | |          S t           dk    rt          | |          S t           dk    rt          | |          S t	          d          )z=Access i-th item of UnicodeCharSeq object via code value
    r   r   r   z=unicode_charseq_get_code: unicode_byte_width not in [1, 2, 4])unicode_byte_widthr>   r;   r8   NotImplementedErrorrA   s     r*   unicode_charseq_get_coderN   S   sm     QAq!!!	q	 	 Aq!!!	q	 	 1a   !KM M 	Mr,   c                 ,    t          j        | |          S )z,Access i-th item of UnicodeType object.
    )r   _get_code_pointrA   s     r*   unicode_get_coderQ   b   s     "1a(((r,   c                     | |         S )z*Access i-th item of Bytes object.
        r-   rA   s     r*   bytes_get_coderS   i   s     Q4Kr,   c                    t          | t          j                  rt          S t          | t          j                  rt
          S t          | t          j                  rt          S t          | t          j                  rt          S d S N)

isinstancer   CharSeqrD   BytesrS   UnicodeCharSeqrN   UnicodeTyperQ   rB   s    r*   _get_code_implr\   p   sv    !U]##  	Au{	#	#  	Au+	,	,  ''	Au(	)	)     r,   c                     t           j        t           j        ft           j        t           j        ffD ]%}t          | |          rt          ||          r dS &dS )NTF)r   rW   rX   rY   rZ   rV   )rB   bts      r*   
_same_kindr`   {   s]    }ek*#U%679  a 	
1a 0 0 	445r,   c                 N    t          | t          j        t          j        f          S rU   )rV   r   rW   rX   r[   s    r*   	_is_bytesrb      s    a%-5666r,   c                 B    | |k    pt          | t          j                  S rU   )rV   r   Omitted)xdefaults     r*   
is_defaultrg      s    <7:a777r,   c                     t          | |          }|dk    rt          d          t          j        |t                                        t                    d         S )zlAccess i-th item of UnicodeCharSeq object via unicode value

    null code is interpreted as IndexError
    r   rF   r-   )rN   rG   nparrayunicode_uintviewu1_dtyperH   s      r*   unicode_charseq_get_valuern      sP     $Aq))Dqyy-...8D,'',,X66r::r,   c           	      d    t          j        |          | ||          }|                    |j        t	          j        d                                                    }|j        }|                     |          }t	          j        d          }	t          j	        ||          }
|                    |
|	                                          }t	          j
        |j        |j                  }|                    d||          }|                    |||          }|                    |          5  t          j        ||t	          j
        |j        |j                  d           d d d            n# 1 swxY w Y   t          j        ||          5 }|                    ||j        g          }|                    |                    |          |	          }|                    ||                    ||j        g                     d d d            n# 1 swxY w Y   |                    |
          S )Nr   r0   <r   )r   create_struct_proxyr   r$   r   r   r   nitemsget_value_typealloca_onceConstanttypecounticmp_unsignedselectif_thenmemset	for_ranger   indexr   r   store)r    r!   fromtytotyvalbarrsrc
src_lengthltydstint_tdst_ptrdst
dst_lengthis_shorter_valuerw   loopin_ptrin_vals                     r*   bytes_to_charseqr      sZ   .7&v..wsKKKD
//$)RZ]]%=%=%?%?
@
@CJ

 
 
&
&Cz!}}H!'3//G
//'8#6#6#8#8
9
9CZ_dj99J,,S*jIINN+ZDDE	)	*	* 3 3w{:?#':/ /01	3 	3 	33 3 3 3 3 3 3 3 3 3 3 3 3 3 3
 
	7E	*	* >dS4:,//gll622H==fgkk#
|<<===> > > > > > > > > > > > > > >
 <<   s%   /5E00E47E4A6HHHc                 j   t          j        t                    } || |          }t          |t                    rt          j        |j        j        |          }| j	        
                    ||          |_        ||_        t          j        |j        j        d          |_        | j	                            ||j                  |_        t          j        |j        j                  |_        t          j        |j        j                  |_        t          j        |j        j                  |_        |S Nr   )r   rq   
bytes_typerV   intr   ru   rr   rv   nrtmeminfo_allocmeminfoitemsizememinfo_datar$   get_null_valueparentshapestrides)r    r!   nbytes	bstr_ctorbstrs        r*   _make_constant_bytesr      s    +J77I9Wg&&D&# 7T[-v66;,,Wf==DLDKK 2A66DM(($,??DI()9::DK'
88DJ)$,*;<<DLKr,   c                     t          | ||j        j                  }t          j        ||          }|                    ||j        j                  }t          j        ||j        ||j                   |S )Nr   )	r   rv   rw   r   r   r   r$   memcpyrr   )r    r!   r   r   r   r   r&   r'   s           r*   charseq_to_bytesr      sb    #(.AAD&wc:::F
//&$).
1
1CN7DIsDK888Kr,   c                 D    t          j        |          | ||          }|                    |j        t	          j        d                                                    }|                    d|j        t	          j	        |j        j
        d                    }|j        }|                    |          5  | j                            |t          d           d d d            n# 1 swxY w Y   t!          | ||          }	t          j        ||	j        ||	j                   |	S )Nr   r0   z!=r   )z3cannot cast higher than 8-bit unicode_type to bytes)r   rq   r   r$   r   r   r   rx   kindru   rv   lengthrz   	call_convreturn_user_exc
ValueErrorr   r   rr   )
r    r!   r   r   r   uni_strsrc1notkind1r   r   s
             r*   unicode_to_bytes_castr      sT   1g)&11'7#NNNG??7<A)A)A)C)CDDD$$T7<%'[1BA%F%FH HHJ		"	" F F))ZD	F 	F 	FF F F F F F F F F F F F F F F
  *==DN7DItT[999Ks   5"C##C'*C'c                 X    t           j        k    sJ t                    }fd}||fS )Nc                 d    t          | |t          |d                                                   S Nr   )r   r   	_getvalue)r    r!   r"   r#   ss       r*   r+   z"_unicode_to_bytes.<locals>.codegen   s.    $WaT!W6 66?ikk	Br,   )r   unicode_typer   )r5   r   r7   r+   s    `  r*   _unicode_to_bytesr      sN     """""
Q--CB B B B B <r,   c           
      X    t          j        |          | ||          }|                    |j        t	          j        d                                                    }|                    |j        t	          j        d                                                    }|                    |j        t	          j        d                                                    }|                    d|j        t	          j	        |j        j
        d                    }	|                    d|j        t	          j	        |j        j
        d                    }
|                    d|j        t	          j	        |j        j
        d                    }|j        }|                     |          }t	          j        dt          z            }t          j        ||          }|                    ||                                          }t	          j	        |j
        |j                  }|                    d	||          }|                    |||          }|                    |          5  t          j        ||t	          j	        |j
        |j        t          z            d
           d d d            n# 1 swxY w Y   |                    |	          5  t          j        ||          5 }|                    ||j        g          }|                    |                    |          |          }|                    ||                    ||j        g                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |
          5  t          dk    rt          j        ||          5 }|                    ||j        g          }|                    |                    |          |          }|                    ||                    ||j        g                     d d d            n# 1 swxY w Y   n/| j                            |t6          dt          dz  d|           d d d            n# 1 swxY w Y   |                    |          5  t          dk    rt          j        ||          5 }|                    ||j        g          }|                    |                    |          |          }|                    ||                    ||j        g                     d d d            n# 1 swxY w Y   n/| j                            |t6          dt          dz  d|           d d d            n# 1 swxY w Y   |                    |          S )Nr   r0   r:   r   z==r   r   r   rp   r   z#cannot cast 16-bit unicode_type to z-bit z#cannot cast 32-bit unicode_type to )r   rq   r   r$   r   r   r   rx   r   ru   rv   r   rs   rL   rt   rw   ry   rz   r{   r|   r   r}   r   r   r~   r   r   r   )r    r!   r   r   r   r   r   src2src4kind1kind2kind4r   r   r   r   r   r   r   rw   r   r   r   s                          r*   unicode_to_unicode_charseqr      s   1g)&11'7#NNNG??7<A)A)A)C)CDDD??7<B)B)B)D)DEED??7<B)B)B)D)DEED!!$"$+gl.?"C"CE EE!!$"$+gl.?"C"CE EE!!$"$+gl.?"C"CE EEJ

 
 
&
&Cz!0011H!'3//G
//'8#6#6#8#8
9
9CZ_dj99J,,S*jIINN+ZDDE	)	*	* H Hw{:?#':0B#BD DEF	H 	H 	HH H H H H H H H H H H H H H H 
		 B Bw.. 	B$[[
|44F\\',,v"6"6AAFMM&'++cDJ<"@"@AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	BB B B B B B B B B B B B B B B 
		 
4 
4"""7E22 Fd TDJ<88 gll6&:&:HEEfgkk#
|&D&DEEEF F F F F F F F F F F F F F F
 --&***DD24 4 4
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
		 
4 
4"""7E22 Fd TDJ<88 gll6&:&:HEEfgkk#
|&D&DEEEF F F F F F F F F F F F F F F
 --&***DD24 4 4
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 <<   s    =J))J-0J-	M8A6M!M8!M%	%M8(M%	)M88M<?M<!R9A6P;/R;P?	?RP?	3RR	R"!VA6U9VU			VU		3VVVc                     d t          |t          j                  rBt          | t          j                  rt          t          | t          j                  rt          | j        ddz
  z  fd}|S d S )Nzindex out of range [0, %s]r   c                 R    |k     r|dk    r | |          S t                    r   )rG   )r   rC   	get_valuemax_imsgs     r*   getitem_implz%charseq_getitem.<locals>.getitem_implU  s0    5yyQ!VV yA&S//!r,   )rV   r   IntegerrW   rJ   rY   rn   rw   )r   rC   r   r   r   r   s      @@@r*   charseq_getitemr   I  s    I!U]## 2a'' 	*)Ia-.. 	21I*eai8	" 	" 	" 	" 	" 	" 	"  r,   c                     t          | t          j        t          j        f          r)t	          |           | j        dk    rd }|S fd}|S d S )Nr   c                     dS r   r-   r   s    r*   len_implzcharseq_len.<locals>.len_implb  s    qr,   c                 ^    }d}|dk    r|dz
  }|dk     rn | |          }|dk    |dz   S )Nr   r   r-   )r   rC   rI   get_codens      r*   r   zcharseq_len.<locals>.len_implf  sR     aiiAA1uu#8Aq>>D	 aii
 1ur,   )rV   r   rW   rY   r\   rw   )r   r   r   r   s     @@r*   charseq_lenr   \  s    !emU%9:;; !!$$G66  O
 
 
 
 
 
 O' r,   c                 &   t          | |          sd S t          | t          j                  rt          |t          j                  rd }|S t          |t          j                  rt          | t          j                  rd }|S t          | t          j                  rt          |t          j                  rd }|S t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                 &    t          |           |z   S rU   strrB   r^   s     r*   implzcharseq_concat.<locals>.impl{      q66A:r,   c                 &    | t          |          z   S rU   r   r   s     r*   r   zcharseq_concat.<locals>.impl      s1vv:r,   c                 @    t          |           t          |          z   S rU   r   r   s     r*   r   zcharseq_concat.<locals>.impl  s    q66CFF?"r,   c                 x    |                                  |                                 z                                   S rU   _to_str	_to_bytesr   s     r*   r   zcharseq_concat.<locals>.impl  s)    IIKK!))++-88:::r,   )r`   rV   r   rY   rZ   rW   rX   rB   r^   r   s      r*   charseq_concatr   t  s3    a 1e*++ q%+,,	 	 	1e*++ q%+,,	 	 	1e*++ q%.//	# 	# 	#1u}ek233 q5=%+677	; 	; 	;	   r,   c                 .   t          | t          j                  rd }|S t          |t          j                  rd }|S t          | t          j        t          j        f          rd }|S t          |t          j        t          j        f          rd }|S d S )Nc                 &    t          |           |z  S rU   r   r   s     r*   wrapzcharseq_repeat.<locals>.wrap  r   r,   c                 &    | t          |          z  S rU   r   r   s     r*   r   zcharseq_repeat.<locals>.wrap  r   r,   c                 T    |                                  |z                                  S rU   r   r   s     r*   r   zcharseq_repeat.<locals>.wrap  s     IIKK!O..000r,   c                 T    | |                                 z                                  S rU   r   r   s     r*   r   zcharseq_repeat.<locals>.wrap  s     		O..000r,   rV   r   rY   rW   rX   )rB   r^   r   s      r*   charseq_repeatr     s    !U)** 	 	 	!U)** 	 	 	!emU[122 	1 	1 	1!emU[122 	1 	1 	1 r,   c                 r    t          | t          j        t          j        t          j        f          rd }|S d S )Nc                 (    t          |           dk    S r   )lenr[   s    r*   r   zcharseq_not.<locals>.impl  s    q66Q;r,   r   )rB   r   s     r*   charseq_notr     s@    !e*EM5;GHH 	 	 	 r,   c                     t          | |          sd S t          |           t          |          

fd}|S d S d S )Nc                     t          |           }|t          |          k    rdS t          |          D ]} | |           ||          k    r dS  dS )NFT)r   range)rB   r^   r   rC   	left_code
right_codes       r*   eq_implzcharseq_eq.<locals>.eq_impl  si    AACFF{{u1XX ! !9Q??jjA&6&666 55 74r,   r`   r\   )rB   r^   r   r   r   s      @@r*   
charseq_eqr     ss    a q!!I""J!7	 	 	 	 	 	  !7!7r,   c                 |    t          | |          sd S t          |           }t          |          }||d }|S d S d S )Nc                     | |k     S rU   r-   r   s     r*   ne_implzcharseq_ne.<locals>.ne_impl  s    Q<r,   r   )rB   r^   r   r   r   s        r*   
charseq_ner     s`    a q!!I""J!7	  	  	  !7!7r,   c                     t          | |          sd S t          |           t          |          

fd}|S d S d S )Nc                     t          |           }t          |          }t          ||          }t          |          D ](} | |           	||          }}||k    r||k     c S )||k     S rU   )r   minr   )
rB   r^   nanbr   rC   cacbr   r   s
           r*   lt_implzcharseq_lt.<locals>.lt_impl  s~    QBQBBA1XX # #"1a**Q*:*:B887NNN 7Nr,   r   )rB   r^   r   r   r   s      @@r*   
charseq_ltr     ss    a q!!I""J!7	 	 	 	 	 	  !7!7r,   c                 |    t          | |          sd S t          |           }t          |          }||d }|S d S d S )Nc                     || k     S rU   r-   r   s     r*   gt_implzcharseq_gt.<locals>.gt_impl  s    q5Lr,   r   )rB   r^   r   r   r   s        r*   
charseq_gtr     s`    a q!!I""J!7	 	 	 !7!7r,   c                 |    t          | |          sd S t          |           }t          |          }||d }|S d S d S )Nc                     | |k     S rU   r-   r   s     r*   le_implzcharseq_le.<locals>.le_impl      A;r,   r   )rB   r^   r   r   r  s        r*   
charseq_ler    `    a q!!I""J!7	 	 	 !7!7r,   c                 |    t          | |          sd S t          |           }t          |          }||d }|S d S d S )Nc                     | |k      S rU   r-   r   s     r*   ge_implzcharseq_ge.<locals>.ge_impl  r  r,   r   )rB   r^   r   r   r  s        r*   
charseq_ger	    r  r,   c                     t          | |          sd S t          |           }t          |          }||t          |           rd }nd }|S d S d S )Nc                 R    |                                 |                                  v S rU   r   r   s     r*   contains_implz'charseq_contains.<locals>.contains_impl  s    
 yy{{aiikk11r,   c                 >    t          |          t          |           v S rU   r   r   s     r*   r  z'charseq_contains.<locals>.contains_impl  s    1vvQ''r,   )r`   r\   rb   )rB   r^   r   r   r  s        r*   charseq_containsr     s    a q!!I""J!7Q<< 		(2 2 2 2( ( ( !7!7r,   isasciic                 0    t          |           fd}|S )Nc                 l    t          t          |                     D ]} | |          dk    r dS dS )N   FT)r   r   )r   rC   r   s     r*   r   zcharseq_isascii.<locals>.impl  sD    s1vv 	 	Ax1~~##uu $tr,   r\   r   r   r   s     @r*   charseq_isasciir    s2     a  H    
 Kr,   	_get_kindc                 0    t          |           fd}|S )Nc                     d}t          t          |                     D ]} | |          }||k    r|}|dk    rt          j        S |dk    rt          j        S t          j        S )Nr   i     )r   r   r   PY_UNICODE_4BYTE_KINDPY_UNICODE_2BYTE_KINDPY_UNICODE_1BYTE_KIND)r   max_coderC   rI   r   s       r*   r   zcharseq_get_kind.<locals>.impl'  sp    s1vv 	  	 A8Aq>>Dhf00d??00,,r,   r  r  s     @r*   charseq_get_kindr  "  s2     a  H
- 
- 
- 
- 
- Kr,   r   c                     d }|S )zConvert unicode_type object to Bytes object.

    Note: The usage of _to_bytes method can be eliminated once all
    Python bytes operations are implemented for numba Bytes objects.

    c                      t          |           S rU   )r   r   s    r*   r   z"unicode_to_bytes_mth.<locals>.impl=  s     ###r,   r-   r   r   s     r*   unicode_to_bytes_mthr#  5  s    $ $ $Kr,   r   c                 0    t          |           fd}|S )zConvert bytes array item or bytes instance to UTF-8 str.

    Note: The usage of _to_str method can be eliminated once all
    Python bytes operations are implemented for numba Bytes objects.
    c                     t          |           }|                                 }t          j        t          j        ||          }t          |          D ]$} | |          }t          j        |||           %|S rU   )r   r  r   _empty_stringr  r   _set_code_point)r   r   is_asciiresultrC   rI   r   s         r*   
tostr_implz&charseq_to_str_mth.<locals>.tostr_implL  sx    FF99;;&)1h8 8q 	5 	5A8Aq>>D#FAt4444r,   r  )r   r*  r   s     @r*   charseq_to_str_mthr+  B  s3     a  H     r,   __str__c                 0    t          |           fd}|S )Nc                    t          |           }|                                 }|dk    o|                                 }t          j        |||          }t          |          D ]$} | |          }t          j        |||           %|S r   )r   r  r  r   r&  r   r'  )r   r   r   r(  r)  rC   rI   r   s          r*   str_implzcharseq_str.<locals>.str_impl\  s    FF{{}}19,&tQ99q 	5 	5A8Aq>>D#FAt4444r,   r  )r   r/  r   s     @r*   charseq_strr0  X  s0    a  H     Or,   c                 @    t          | t          j                  rd S d S )Nc                     | S rU   r-   r   s    r*   <lambda>zcharseq_bytes.<locals>.<lambda>l  s     r,   )rV   r   rW   r   s    r*   charseq_bytesr4  i  s(    !U]## { r,   __hash__c                     d }|S )Nc                 :    t          t          |                     S rU   )hashr   r   s    r*   r   z"unicode_charseq_hash.<locals>.implq  s    CFF||r,   r-   r"  s     r*   unicode_charseq_hashr9  o  s      Kr,   c                     d }|S )Nc                 D    t          |                                           S rU   )r8  r   r   s    r*   r   zcharseq_hash.<locals>.implx  s     AIIKK   r,   r-   r"  s     r*   charseq_hashr<  v  s    ! ! ! Kr,   isupperc                     d }|S )Nc                 H    t          |                                             S rU   )r   r=  r   s    r*   r   z%unicode_charseq_isupper.<locals>.impl  s    1vv~~'''''r,   r-   r"  s     r*   unicode_charseq_isupperr@    s    ( ( ( Kr,   c                     d }|S )Nc                 R    |                                                                    S rU   )r   r=  r   s    r*   r   zcharseq_isupper.<locals>.impl  s"    yy{{**,,,,,r,   r-   r"  s     r*   charseq_isupperrC    s    - - - Kr,   upperc                     d }|S )Nc                 D    t          |                                           S rU   )r   rD  r   s    r*   r   z#unicode_charseq_upper.<locals>.impl  s    1vv||~~r,   r-   r"  s     r*   unicode_charseq_upperrG    s      Kr,   c                     d }|S )Nc                 r    |                                                                                                  S rU   )r   rD  r   r   s    r*   r   zcharseq_upper.<locals>.impl  s(    yy{{  "",,...r,   r-   r"  s     r*   charseq_upperrJ    s    / / / Kr,   findc                 (   t          | t          j                  r>t          |t          j                  rd }|S t          |t          j                  rd }|S t          | t          j                  r+t          |t          j        t          j        f          rd }|S t          | t          j                  rt          |t          j                  rd }|S t          | t          j                  rt          |t          j                  rd }|S d S d S )Nc                 `    t          |                               t          |                    S rU   r   rK  r   s     r*   r   z"unicode_charseq_find.<locals>.impl  s     1vv{{3q66***r,   c                 F    t          |                               |          S rU   rN  r   s     r*   r   z"unicode_charseq_find.<locals>.impl  s    1vv{{1~~%r,   c                 t    |                                                      |                                           S rU   r   rK  r   s     r*   r   z"unicode_charseq_find.<locals>.impl  &    yy{{''		444r,   c                 F    |                      t          |                    S rU   )rK  r   r   s     r*   r   z"unicode_charseq_find.<locals>.impl  s    vvc!ff~~%r,   c                 t    |                                                      |                                           S rU   rQ  r   s     r*   r   z"unicode_charseq_find.<locals>.impl  rR  r,   rV   r   rY   rZ   rW   rX   r   s      r*   unicode_charseq_findrV    s<    !U)** a-.. 	+ + +Ka*++ 	& & &K!U]## a%-566 	5 5 5K!U&'' a-.. 	& & &K!U[!! a'' 	5 5 5K	 	 	r,   rfindc                 (   t          | t          j                  r>t          |t          j                  rd }|S t          |t          j                  rd }|S t          | t          j                  r+t          |t          j        t          j        f          rd }|S t          | t          j                  rt          |t          j                  rd }|S t          | t          j                  rt          |t          j                  rd }|S d S d S )Nc                 `    t          |                               t          |                    S rU   r   rW  r   s     r*   r   z#unicode_charseq_rfind.<locals>.impl  s     1vv||CFF+++r,   c                 F    t          |                               |          S rU   rZ  r   s     r*   r   z#unicode_charseq_rfind.<locals>.impl  s    1vv||A&r,   c                 t    |                                                      |                                           S rU   r   rW  r   s     r*   r   z#unicode_charseq_rfind.<locals>.impl  &    yy{{((555r,   c                 F    |                      t          |                    S rU   )rW  r   r   s     r*   r   z#unicode_charseq_rfind.<locals>.impl  s    wws1vv&r,   c                 t    |                                                      |                                           S rU   r]  r   s     r*   r   z#unicode_charseq_rfind.<locals>.impl  r^  r,   rU  r   s      r*   unicode_charseq_rfindra    s<    !U)** a-.. 	, , ,Ka*++ 	' ' 'K!U]## a%-566 	6 6 6K!U&'' a-.. 	' ' 'K!U[!! a'' 	6 6 6K	 	 	r,   
startswithc                 \   t          | t          j                  r>t          |t          j                  rd }|S t          |t          j                  rd }|S t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                 `    t          |                               t          |                    S rU   r   rb  r   s     r*   r   z(unicode_charseq_startswith.<locals>.impl  s"    1vv((Q000r,   c                 F    t          |                               |          S rU   re  r   s     r*   r   z(unicode_charseq_startswith.<locals>.impl  s    1vv((+++r,   c                 t    |                                                      |                                           S rU   )r   rb  r   s     r*   r   z(unicode_charseq_startswith.<locals>.impl  s&    yy{{--aiikk:::r,   rU  r   s      r*   unicode_charseq_startswithrh    s     !U)** a-.. 	1 1 1Ka*++ 	, , ,K!emU[122 a%-566 	; ; ;K	 	 	r,   endswithc                 \   t          | t          j                  r>t          |t          j                  rd }|S t          |t          j                  rd }|S t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                 `    t          |                               t          |                    S rU   r   ri  r   s     r*   r   z&unicode_charseq_endswith.<locals>.impl  s     1vvs1vv...r,   c                 F    t          |                               |          S rU   rl  r   s     r*   r   z&unicode_charseq_endswith.<locals>.impl  s    1vvq)))r,   c                 t    |                                                      |                                           S rU   )r   ri  r   s     r*   r   z&unicode_charseq_endswith.<locals>.impl   s&    yy{{++AIIKK888r,   rU  r   s      r*   unicode_charseq_endswithro    s     !U)** a-.. 	/ / /Ka*++ 	* * *K!emU[122 a%-566 	9 9 9K	 	 	r,   c                     d | D             S )Nc                 6    g | ]}|                                 S r-   )r   ).0r   s     r*   
<listcomp>z_map_bytes.<locals>.<listcomp>  s     '''aAKKMM'''r,   r-   )seqs    r*   
_map_bytesru    s    ''3''''r,   splitc                 |   |dk    s3t          |t          j        t          j        t          j        f          sd S t          | t          j                  rjt          |t          j                  rd	d}|S t          |t          j                  rd	d}|S t          |          rt          |d          rd	d}nd	d}|S t          | t          j	        t          j
        f          rVt          |t          j	        t          j
        f          rd	d}|S t          |          rt          |d          rd	d}nd	d}|S d S d S )
Nrw  c                 d    t          |                               t          |          |          S N)sepmaxsplitr   rv  rB   r{  r|  s      r*   r   z#unicode_charseq_split.<locals>.impl  s$    1vv||C8|DDDr,   c                 J    t          |                               ||          S rz  r}  r~  s      r*   r   z#unicode_charseq_split.<locals>.impl  s    1vv||h|???r,   c                 D    t          |                                           S rU   r}  r~  s      r*   r   z#unicode_charseq_split.<locals>.impl  s    q66<<>>)r,   c                 H    t          |                               |          S N)r|  r}  r~  s      r*   r   z#unicode_charseq_split.<locals>.impl   s    q66<<<:::r,   c                     t          |                                                     |                                |                    S r  ru  r   rv  r~  s      r*   r   z#unicode_charseq_split.<locals>.impl%  sE    !!))++"3"3CKKMM=E #4 #G #G H H Hr,   c                 h    t          |                                                                           S rU   r  r~  s      r*   r   z#unicode_charseq_split.<locals>.impl+  s$    %aiikk&7&7&9&9:::r,   c                 l    t          |                                                     |                    S r  r  r~  s      r*   r   z#unicode_charseq_split.<locals>.impl.  s)    %aiikk&7&7&7&J&JKKKr,   Nrw  )rV   r   rd   r   IntegerLiteralrY   rZ   r   rg   rW   rX   )rB   r{  r|  r   s       r*   unicode_charseq_splitr  
  s    NNx%-"'"6"8 9 9  t!U)** c5/00 	E E E EKc5,-- 	@ @ @ @Ks 	(B'' ;* * * * *; ; ; ;K!emU[122 cEM5;788 	H H H H Ks 	(B'' L; ; ; ; ;L L L LK 	 	r,   ljust c                    t          | t          j                  rVt          |d          rdd}|S t          |t          j                  rdd}|S t          |t          j                  rdd}|S t          | t          j        t          j        f          rRt          |d          st          |d          rdd}|S t          |t          j        t          j        f          rdd}|S d S d S )	Nr  c                 F    t          |                               |          S rU   r   r  rB   widthfillchars      r*   r   z#unicode_charseq_ljust.<locals>.impl;      1vv||E***r,   c                 b    t          |                               |t          |                    S rU   r  r  s      r*   r   z#unicode_charseq_ljust.<locals>.impl?  "    1vv||E3x==999r,   c                 H    t          |                               ||          S rU   r  r  s      r*   r   z#unicode_charseq_ljust.<locals>.implC      1vv||E8444r,       c                 t    |                                                      |                                          S rU   r   r  r   r  s      r*   r   z#unicode_charseq_ljust.<locals>.implH  *    yy{{((//99;;;r,   c                     |                                                      ||                                                                           S rU   r  r  s      r*   r   z#unicode_charseq_ljust.<locals>.implL  8    yy{{((0@0@0B0BCCMMOOOr,   r  rV   r   rY   rg   rZ   rW   rX   rB   r  r  r   s       r*   unicode_charseq_ljustr  5  C    !U)** h$$ 	+ + + +K%"677 	: : : :K%"344 	5 5 5 5K!emU[122 h$$ 	
8T(B(B 	< < < <K5=%+">?? 	P P P PK 
	 	r,   rjustc                    t          | t          j                  rVt          |d          rdd}|S t          |t          j                  rdd}|S t          |t          j                  rdd}|S t          | t          j        t          j        f          rRt          |d          st          |d          rdd}|S t          |t          j        t          j        f          rdd}|S d S d S )	Nr  c                 F    t          |                               |          S rU   r   r  r  s      r*   r   z#unicode_charseq_rjust.<locals>.implW  r  r,   c                 b    t          |                               |t          |                    S rU   r  r  s      r*   r   z#unicode_charseq_rjust.<locals>.impl[  r  r,   c                 H    t          |                               ||          S rU   r  r  s      r*   r   z#unicode_charseq_rjust.<locals>.impl_  r  r,   r  c                 t    |                                                      |                                          S rU   r   r  r   r  s      r*   r   z#unicode_charseq_rjust.<locals>.impld  r  r,   c                     |                                                      ||                                                                           S rU   r  r  s      r*   r   z#unicode_charseq_rjust.<locals>.implh  r  r,   r  r  r  s       r*   unicode_charseq_rjustr  Q  r  r,   centerc                    t          | t          j                  rVt          |d          rdd}|S t          |t          j                  rdd}|S t          |t          j                  rdd}|S t          | t          j        t          j        f          rRt          |d          st          |d          rdd}|S t          |t          j        t          j        f          rdd}|S d S d S )	Nr  c                 F    t          |                               |          S rU   r   r  r  s      r*   r   z$unicode_charseq_center.<locals>.impls      1vv}}U+++r,   c                 b    t          |                               |t          |                    S rU   r  r  s      r*   r   z$unicode_charseq_center.<locals>.implw  s"    1vv}}UCMM:::r,   c                 H    t          |                               ||          S rU   r  r  s      r*   r   z$unicode_charseq_center.<locals>.impl{  s    1vv}}UH555r,   r  c                 t    |                                                      |                                          S rU   r   r  r   r  s      r*   r   z$unicode_charseq_center.<locals>.impl  s*    yy{{))%00::<<<r,   c                     |                                                      ||                                                                           S rU   r  r  s      r*   r   z$unicode_charseq_center.<locals>.impl  s8    yy{{))%1A1A1C1CDDNNPPPr,   r  r  r  s       r*   unicode_charseq_centerr  m  sC    !U)** h$$ 	, , , ,K%"677 	; ; ; ;K%"344 	6 6 6 6K!emU[122 h$$ 	
8T(B(B 	= = = =K5=%+">?? 	Q Q Q QK 
	 	r,   zfillc                     t          | t          j                  rd }|S t          | t          j        t          j        f          rd }|S d S )Nc                 F    t          |                               |          S rU   )r   r  rB   r  s     r*   r   z#unicode_charseq_zfill.<locals>.impl  s    q66<<&&&r,   c                 t    |                                                      |                                          S rU   )r   r  r   r  s     r*   r   z#unicode_charseq_zfill.<locals>.impl  s*    99;;$$U++55777r,   r   )rB   r  r   s      r*   unicode_charseq_zfillr    sf     !U)** 	' 	' 	'!emU[122 	8 	8 	8 r,   lstripc                    t          | t          j                  rUt          |          rdd}|S t          |t          j                  rdd}|S t          |t          j                  rdd}|S t          | t          j        t          j        f          rAt          |          rdd}|S t          |t          j        t          j        f          rdd}|S d S d S )Nc                 D    t          |                                           S rU   r   r  rB   charss     r*   r   z$unicode_charseq_lstrip.<locals>.impl      1vv}}&r,   c                 `    t          |                               t          |                    S rU   r  r  s     r*   r   z$unicode_charseq_lstrip.<locals>.impl       1vv}}SZZ000r,   c                 F    t          |                               |          S rU   r  r  s     r*   r   z$unicode_charseq_lstrip.<locals>.impl  r  r,   c                 r    |                                                                                                  S rU   r   r  r   r  s     r*   r   z$unicode_charseq_lstrip.<locals>.impl  (    yy{{))++55777r,   c                     |                                                      |                                                                           S rU   r  r  s     r*   r   z$unicode_charseq_lstrip.<locals>.impl  2    yy{{))%--//::DDFFFr,   rU   rV   r   rY   r   rZ   rW   rX   rB   r  r   s      r*   unicode_charseq_lstripr    .    !U)** u 	' ' ' 'Ku344 	1 1 1 1Ku011 	, , , ,K!emU[122 u 	8 8 8 8Ku{;<< 	G G G GK 
	 	r,   rstripc                    t          | t          j                  rUt          |          rdd}|S t          |t          j                  rdd}|S t          |t          j                  rdd}|S t          | t          j        t          j        f          rAt          |          rdd}|S t          |t          j        t          j        f          rdd}|S d S d S )Nc                 D    t          |                                           S rU   r   r  r  s     r*   r   z$unicode_charseq_rstrip.<locals>.impl  r  r,   c                 `    t          |                               t          |                    S rU   r  r  s     r*   r   z$unicode_charseq_rstrip.<locals>.impl  r  r,   c                 F    t          |                               |          S rU   r  r  s     r*   r   z$unicode_charseq_rstrip.<locals>.impl  r  r,   c                 r    |                                                                                                  S rU   r   r  r   r  s     r*   r   z$unicode_charseq_rstrip.<locals>.impl  r  r,   c                     |                                                      |                                                                           S rU   r  r  s     r*   r   z$unicode_charseq_rstrip.<locals>.impl  r  r,   rU   r  r  s      r*   unicode_charseq_rstripr    r  r,   stripc                    t          | t          j                  rUt          |          rdd}|S t          |t          j                  rdd}|S t          |t          j                  rdd}|S t          | t          j        t          j        f          rAt          |          rdd}|S t          |t          j        t          j        f          rdd}|S d S d S )Nc                 D    t          |                                           S rU   r   r  r  s     r*   r   z#unicode_charseq_strip.<locals>.impl  s    1vv||~~%r,   c                 `    t          |                               t          |                    S rU   r  r  s     r*   r   z#unicode_charseq_strip.<locals>.impl  s     1vv||CJJ///r,   c                 F    t          |                               |          S rU   r  r  s     r*   r   z#unicode_charseq_strip.<locals>.impl  r  r,   c                 r    |                                                                                                  S rU   r   r  r   r  s     r*   r   z#unicode_charseq_strip.<locals>.impl  s(    yy{{((**44666r,   c                     |                                                      |                                                                           S rU   r  r  s     r*   r   z#unicode_charseq_strip.<locals>.impl  s2    yy{{((99CCEEEr,   rU   r  r  s      r*   unicode_charseq_stripr    s.    !U)** u 	& & & &Ku344 	0 0 0 0Ku011 	+ + + +K!emU[122 u 	7 7 7 7Ku{;<< 	F F F FK 
	 	r,   joinc                     t          | t          j                  rd }|S t          | t          j        t          j        f          rd }|S d S )Nc                 ^    d |D             }t          |                               |          S )Nc                 ,    g | ]}t          |          S r-   r   rr  ps     r*   rs  z6unicode_charseq_join.<locals>.impl.<locals>.<listcomp>  s    ,,,c!ff,,,r,   )r   r  rB   parts_partss      r*   r   z"unicode_charseq_join.<locals>.impl  s-    ,,e,,,Fq66;;v&&&r,   c                     d |D             }|                                                      |                                          S )Nc                 6    g | ]}|                                 S r-   r  r  s     r*   rs  z6unicode_charseq_join.<locals>.impl.<locals>.<listcomp>  s     111aaiikk111r,   )r   r  r   r  s      r*   r   z"unicode_charseq_join.<locals>.impl  s=    115111F99;;##F++55777r,   r   )rB   r  r   s      r*   unicode_charseq_joinr    sj    
 !U)** 	' 	' 	' !emU[122 	8 	8 	8  r,   r  r  rU   )m__doc__operatornumpyri   llvmliter   
numba.corer   r   numba.core.extendingr   r   r   r	   r
   numba.core.cgutilsr   numba.cpythonr   dtypes1_dtyper   rX   uint8r   rm   rL   uint16r2   rk   r  r  r  unicode_kindr.   r8   r;   r>   rD   rJ   rN   rQ   rS   r\   r`   rb   rg   rn   rW   r   r   r   rZ   r   r   rY   r   getitemr   r   r   addiaddr   mulr   not_r   eqr   ner   ltr   gtr   ler  ger	  containsr  r  r  r#  r+  r0  bytesr4  r9  r<  r@  rC  rG  rJ  rV  ra  rh  ro  ru  r  r  r  r  r  r  r  r  r  r-   r,   r*   <module>r
     s   C C            % % % % % % % %@ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * ! ! ! ! ! ! 28D>>AU[at<<<
 28D>>& 8	bi889KL0002 22DF   & & &
 ' ' '
 ' ' '
 u      uM M M ) ) )          7 7 78 8 8 	; 	; 	;8 EK''! ! ('!4  $ EM5;''  (' Eu{++  ,+"    Eu3449! 9! 549!X 
(
  $ 
#  . 
(,	(-   2 
(,  & 
(-   
(+  " 
(+   
(+  $ 
(+   
(+   
(+   
(
  & %y11	**i((  )( +* 21 %{33,,  -, 43" "K00	 	 10	 	**i((  )( +*( %y11  21  
%  
 %z22  32 
++  ,+ %y11  21 	**  +* %w//  0/ ((  )( %v..''f%%  &% (' /.6 %w//((g&&  '& )( 0/6 %|44--l++  ,+ .- 54" %z22
++j))  *) ,+ 32" ( ( ( %w//((g&&# # # '& )( 0/#P %w//((g&&   '& )( 0/2 %w//((g&&   '& )( 0/2 %x00))h''   (' *) 102 %w//((g&&  '& )( 0/ %x00))h''   (' *) 102 %x00))h''   (' *) 102 %w//((g&&   '& )( 0/2 %v..''f%%  &% (' /.  r,   