
    J/Phɧ                        d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZ ddlmZmZmZmZmZmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ d Zd Z G d de           Z! G d de!          Z" G d de!          Z# G d de!          Z$d Z% ee&ej'                  d             Z( ee&          d             Z( ee)ej*                  d             Z+ edej*                  d             Z, edej-                   eej.                  d                         Z/ eej0        ej*        ej1                  d             Z2 eej3        ej*        ej1        ej4                  d             Z5 eej0        ej*        ej6                  d             Z7 eej3        ej*        ej6        ej4                  d              Z5 eej8        ej*        ej1                  d!             Z9 eej8        ej*        ej6                  d"             Z: eej;        ej<        ej4                  d#             Z= ee>ej<                  d$             Z? eej@                  d%             ZA eejB        ej*        ej*                  d&             ZC eejD        ej*        ej*                  d'             ZE eejF        ej*        ej1                   eejF        ej1        ej*                  d(                         ZG eejH        ej*        ej1                  d)             ZI eejJ        ej*        ej*                  d*             ZK eejL        ej*        ej*                  d+             ZMd, ZN eejO                  d-             ZP eejQ                  d.             ZR eejS                  d/             ZT eejU                  d0             ZV eejW                  d1             ZX ed2ej*        ej4                  d3             ZY ed4ej*                  d5             ZZ eej*        d6          d7             Z[ eej*        d8          d9             Z\d: Z] ed;ej*        ej'                  d<             Z^ej_        rej`        ja        Zbnejc        ja        Zb eej*        d=          debfd>            Zd ed?ej*        ej1        ej4                  d@             Ze edAej*                  dB             Zf edAej*        ej1                  dC             Zf eej*        dD          dE             Zg eej*        dF          dG             ZhdH ZW eji                    jj        Zk eji        eWI          jj        Zl eji        dJdJK          jj        Zm eji        dJeWdJL          jj        ZndM ZodN Zp eej*        dO          dldQ            Zq eer          dldR            Zs eej*        ej*                  dS             Zt e
ju        dT          Zv eejw        dU          dV             Zx eejw        dW          dX             Zy eejw        dY          dZ             Zz eejw        dD          d[             Z{ eejw        d\          dmd^            Z| eejw        d_          d`             Z} eejw        dO          dlda            Z~ eejw        dF          db             Zej_        rej`        ja        Znejc        ja        Z eejw        d=          defdc            Z eejw        d8          dd             Z eejw        d6          de             Z eej8                  df             Z eej3                  dg             Z eej0                  dh             Z ee)          di             Z eej;                  dj             Z eejw        ejw                  dk             ZdS )nz'
Support for native homogeneous lists.
    N)cached_property)ir)typestypingerrorscgutilsconfig)lower_builtin
lower_castiternext_implimpl_ret_borrowedimpl_ret_new_refimpl_ret_untrackedRefType)overload_methodoverload)	quicksort)slicingliteral_unrollc                    t          j        |          }| j                            ||j                  }|                     |                                          }|                    ||          }|                     |||          S )zy
    Given a list value and type, get its payload structure (as a
    reference, so that mutations are seen by all).
    ref)	r   ListPayloadnrtmeminfo_datameminfoget_data_type
as_pointerbitcastmake_data_helper)contextbuilder	list_typevaluepayload_typepayloadptrtys          U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cpython/listobj.pyget_list_payloadr*      sz    
 $Y//Lk&&w>>G!!,//::<<Eoogu--G##G\w#GGG    c                 `    |                      |j                  }|                     |          S )z7
    Return the item size for the given list type.
    )r   dtypeget_abi_sizeof)r"   r$   lltys      r)   get_itemsizer0   "   s-       11D!!$'''r+   c                       e Zd Zed             Zej        d             Zed             Zed             Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd ZdS )_ListPayloadMixinc                     | j         j        S N_payloadsizeselfs    r)   r7   z_ListPayloadMixin.size,   s    }!!r+   c                     || j         _        d S r4   r5   r9   r%   s     r)   r7   z_ListPayloadMixin.size0   s    "r+   c                     | j         j        S r4   )r6   dirtyr8   s    r)   r=   z_ListPayloadMixin.dirty4   s    }""r+   c                 6    | j                             d          S )Ndata)r6   _get_ptr_by_namer8   s    r)   r?   z_ListPayloadMixin.data8   s    }--f555r+   c                 B    t          j        | j        | j        |          S r4   )r   gep_builderr?   r9   idxs     r)   _gepz_ListPayloadMixin._gep<   s    {4=$)S999r+   c                     |                      |          }| j                            |          }| j                            | j        |          S r4   )rF   rC   load
_datamodel	from_data)r9   rE   ptr	data_items       r)   getitemz_ListPayloadMixin.getitem?   s@    iinnM&&s++	((	BBBr+   c                     | j                             d|t          j        |j        d                    }| j                             || j                  }| j                             |||          S )zp
        Fix negative indices by adding the size to them.  Positive
        indices are left untouched.
        <r   )rC   icmp_signedr   Constanttypeaddr7   select)r9   rE   is_negativewrapped_indexs       r)   	fix_indexz_ListPayloadMixin.fix_indexD   se    
 m//S02CHa0H0HJ J))#ty99}##KDDDr+   c                     | j                             d|t          j        |j        d                    }| j                             d|| j                  }| j                             ||          S )z<
        Return whether the index is out of bounds.
        rO   r   >=)rC   rP   r   rQ   rR   r7   or_)r9   rE   	underflowoverflows       r)   is_out_of_boundsz"_ListPayloadMixin.is_out_of_boundsN   se     M--c3.0k#(A.F.FH H	=,,T3	BB}  H555r+   c                 *   | j         }t          j        ||          }t          j        |j        d          }| j        }| j                             d||          }|                    |d          5  |	                    ||           ddd           n# 1 swxY w Y   | j                             d||          }|                    |d          5  |	                    ||           ddd           n# 1 swxY w Y   |
                    |          S )z/
        Clamp the index in [0, size].
        r   rO   FlikelyNrY   )rC   r   alloca_once_valuer   rQ   rR   r7   rP   if_thenstorerH   )r9   rE   r#   idxptrzeror7   r[   r\   s           r)   clamp_indexz_ListPayloadMixin.clamp_indexW   s{    -*7C88{38Q''yM--c3==	__Yu_55 	( 	(MM$'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(=,,T3==__Xe_44 	( 	(MM$'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ||F###s$   1BBBC55C9<C9c                     | j                             |                     |          d          5  | j        j                            | j         t          |f           ddd           dS # 1 swxY w Y   dS )z?
        Raise an error if the index is out of bounds.
        Fr_   N)rC   rb   r]   _context	call_convreturn_user_exc
IndexError)r9   rE   msgs      r)   guard_indexz_ListPayloadMixin.guard_indexj   s     ]""4#8#8#=#=e"LL 	H 	HM#33DM4>H H H	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   -A**A.1A.c                 B    t          j        | j        || j                  S )zo
        Fix slice start and stop to be valid (inclusive and exclusive, resp)
        indexing bounds.
        )r   	fix_slicerC   r7   )r9   slices     r)   ro   z_ListPayloadMixin.fix_slicer   s    
  tyAAAr+   c                 \    | j         j                            | j        | j        |           dS )zIncref an element valueN)rh   r   increfrC   r-   r9   vals     r)   incref_valuez_ListPayloadMixin.incref_valuey   )      
C@@@@@r+   c                 \    | j         j                            | j        | j        |           dS )zDecref an element valueN)rh   r   decrefrC   r-   rs   s     r)   decref_valuez_ListPayloadMixin.decref_value}   rv   r+   N)__name__
__module____qualname__propertyr7   setterr=   r?   rF   rM   rW   r]   rf   rm   ro   ru   ry    r+   r)   r2   r2   *   s       " " X" 
[# # [# # # X# 6 6 X6: : :C C C
E E E6 6 6$ $ $&H H HB B BA A AA A A A Ar+   r2   c                       e Zd ZdZd ZdS )ListPayloadAccessorzb
    A helper object to access the list attributes given the pointer to the
    payload type.
    c                 >   || _         || _        || _        |j        |j                 | _        t          j        |          }|                    |          	                                }|
                    ||          }|                    |||          }|| _        d S )Nr   )rh   rC   _tydata_model_managerr-   rI   r   r   r   r   r    r!   r6   )r9   r"   r#   r$   payload_ptrr&   r(   r'   s           r)   __init__zListPayloadAccessor.__init__   s    !4Y_E(33%%l33>>@@ook599**7L/: + < <r+   N)rz   r{   r|   __doc__r   r   r+   r)   r   r      s-         
  
  
  
  
 r+   r   c                      e Zd Zd Zed             Zed             Zed             Zej        d             Zed             Z	ed             Z
d Zd	 ZddZddZd Zed             Zd Zd Zed             Zed             Zd Zd ZdS )ListInstancec                     || _         || _        || _        |                    |||          | _        t          ||          | _        |j        |j                 | _	        d S r4   )
rh   rC   r   make_helper_listr0   	_itemsizer   r-   rI   )r9   r"   r#   r$   list_vals        r)   r   zListInstance.__init__   sV    (()XFF
%gy99!4Y_Er+   c                     | j         j        S r4   )r   r-   r8   s    r)   r-   zListInstance.dtype   s    x~r+   c                 N    t          | j        | j        | j        | j                  S r4   )r*   rh   rC   r   r   r8   s    r)   r6   zListInstance._payload   s       t}dh
SSSr+   c                     | j         j        S r4   r   parentr8   s    r)   r   zListInstance.parent   s    z  r+   c                     || j         _        d S r4   r   r;   s     r)   r   zListInstance.parent   s    !
r+   c                 4    | j                                         S r4   )r   	_getvaluer8   s    r)   r%   zListInstance.value       z##%%%r+   c                     | j         j        S r4   )r   r   r8   s    r)   r   zListInstance.meminfo   s    z!!r+   c                 j    | j         j        r&|rt          j        nt          j        | j        _        d S d S r4   )r   	reflectedr   true_bit	false_bitr6   r=   rs   s     r)   	set_dirtyzListInstance.set_dirty   s<    8 	Q69"P'"2"2w?PDM	Q 	Qr+   c           	          |                      |                     |                     |                     || j                            ||                    d                               dS )z)Remove the value at the location
           N)ry   rM   zfillrC   rS   rR   rD   s     r)   clear_valuezListInstance.clear_value   sZ     	$,,s++,,,

3))#sxx{{;;<<<<<r+   Tc                 V   |r(|                      |                     |                     |                     |          }| j                            | j        |          }| j                            ||           |                     d           |r|                     |           d S d S )NT)	ry   rM   rF   rI   as_datarC   rc   r   ru   )r9   rE   rt   rr   decref_old_valuerK   rL   s          r)   setitemzListInstance.setitem   s     	1dll3//000iinnO++DM3??	Is+++t 	#c"""""	# 	#r+   c                     |                      |          }| j                            | j        |          }| j                            ||           |r|                     |           d S d S r4   )rF   rI   r   rC   rc   ru   )r9   rE   rt   rr   rK   rL   s         r)   inititemzListInstance.inititem   sn    iinnO++DM3??	Is+++ 	#c"""""	# 	#r+   c           	         | j         }|                     |          }|                     |          }| j                            t          j                  }|                    |                    ||          |                    ||                    }t          j	        ||| t          j        d          d                     dS )zjZero-fill the memory at index *start* to *stop*

        *stop* MUST not be smaller than *start*.
           r   N)rC   rF   rh   get_value_typer   intpsubptrtointr   memsetr   IntType)r9   startstopr#   baseend	intaddr_tr7   s           r)   r   zListInstance.zfill   s    
 -yyiiooM00<<	{{7++C;;"++D)<<> >wdMBJqMM!,<,<=====r+   c           	      8   |                     t          j                  }t          |t                    rt          j        ||          }|                    t          j        |                    }|	                    |          }t          ||          }||z  }t          j        |t          j                  }	 | |||d          }
t          j        ||t          j        ||          t          j        ||                    \  }}|                    |d          5  |                    t          j        |	           ddd           n# 1 swxY w Y   |                    |                    |	          d          5  |j                            |||
                                          }|                    t          j        ||          d          5 \  }}|5  |                    t          j        |	           ddd           n# 1 swxY w Y   |5  ||
j        _        |                    t          j                  |
j        _        ||
j        _        t          j        |d          |
j        _        t          j        |
j        _         |
!                    |
j        "                    d          |           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |                    |	          |
fS )z
        Allocate a ListInstance with its storage.
        Return a (ok, instance) tuple where *ok* is a LLVM boolean and
        *instance* is a ListInstance object (the object's contents are
        only valid when *ok* is true).
        NFr_   T)r7   dtorr   )#r   r   r   
isinstanceintr   rQ   r   r   r.   r0   r   ra   r   muladd_with_overflowrb   rc   r   rH   r   "meminfo_new_varsize_dtor_uncheckedget_dtorif_elseis_nullr   r   get_constant_nullpyobjectr   r6   	allocatedr7   r=   r   rR   )clsr"   r#   r$   nitemsintp_tr&   payload_sizeitemsizeokr9   	allocsizeovfr   if_errorif_oks                   r)   allocate_exzListInstance.allocate_ex   s    ''
33fc"" 	1[00F,,U->y-I-IJJ--l;;33 &w0@AAs7GY55 !5gv68k&(6S6S68k&,6W6WY Y	3 __S_// 	1 	1MM'+R000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 __W\\"--d_;; 	: 	:kDDidmmoo E ? ?G'!B!B(- ! / / :2C8U 9 9MM'"3R8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 : :)0DJ&(/(A(A%.(Q(QDJ%.4DM+)+VQ)?)?DM&*1*;DM'JJty~~a00&999: : : : : : : : : : : : : : :	: : : : : : : : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:  ||B%%s   !EEEAK:K#!!HK#HK#HK#B%K K#KK#KK#K:#K'	'K:*K'	+K::K>K>c                    | j         }| j        }|j        }t          j        t          j                    t          j        g          }t          j        ||d	                    | j
                            }|j        s|S d|_        t          j        |                                          }|j        d         }t!          ||| j        |          }|j        j        }t          j        | |d          |j         |d          |          5 \  }	}
|                    |	          }|j                            || j
        |           ddd           n# 1 swxY w Y   |                                 |S )z,Define the destructor if not already definedz.dtor.list.{}linkonce_odrr   r   )r   r   stepr   N)rh   rC   moduler   FunctionTypeVoidTyper   	voidptr_tget_or_insert_functionformatr-   is_declarationlinkage	IRBuilderappend_basic_blockargsr   r   r7   rR   for_range_slicerM   r   rx   ret_void)r9   r"   r#   modfntyfnbase_ptrr'   r   rE   _rt   s               r)   define_dtorzListInstance.define_dtor  s   --nr{}}w/@.ABB+C,;,B,B4:,N,NP P  	I#
,r44667771: &gw(KK | $ttAwwW\Q   	9&sA//#&&CKw
C888		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9
 		s   :EEEc                 x    |                                  }| j                            |t          j                  }|S )zp"Get the element dtor function pointer as void pointer.

        It's safe to be called multiple times.
        )r   rC   r    r   r   )r9   r   
dtor_fnptrs      r)   r   zListInstance.get_dtor1  s5     !!]**41BCC
r+   c                    |                      ||||          \  }}|                    |                    |          d          5  |j                            |t
          d           ddd           n# 1 swxY w Y   |S )z
        Allocate a ListInstance with its storage.  Same as allocate_ex(),
        but return an initialized *instance*.  If allocation failed,
        control is transferred to the caller using the target's current
        call convention.
        Fr_   )zcannot allocate listN)r   rb   not_ri   rj   MemoryError)r   r"   r#   r$   r   r   r9   s          r)   allocatezListInstance.allocate;  s     ??7GYGGD__W\\"--e_<< 	I 	I--g{.GI I I	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I s   "A44A8;A8c                      | |||d          }||j         _        |                    t          j                  |j         _        |j                            |||j                   |S )z
        Allocate a new list instance pointing to an existing payload
        (a meminfo pointer).
        Note the parent field has to be filled by the caller.
        N)	r   r   r   r   r   r   r   rr   r%   )r   r"   r#   r$   r   r9   s         r)   from_meminfozListInstance.from_meminfoI  s^     s7GY55$
#55enEE
7Itz:::r+   c                 B   	
 	
 fd} j         
 j        	|j        t          
 j                   j        j        }t          j        d          }t          j        d          }		                    d||          }		                    d	
                    ||          |          }	                    |d          5   ||           ddd           n# 1 swxY w Y   	                    |d          5  	                    |	                    |	
                    ||                              } ||                                 j        |           ddd           n# 1 swxY w Y   | j        _                             d	           dS )
zE
        Ensure the list is properly sized for the new size.
        c           	      H                        t          j        
j                            }                    |          }|	z  }t          j        | t          j        	          t          j        |                    \  }}	                    |d          5  j
                            t          d           d d d            n# 1 swxY w Y   j                            
j        j        |          }t          j        |d           | 
j        _        d S )NFr_   )cannot resize list)r7   r   )r   r   r   r   r.   r   r   r   rQ   rb   ri   rj   r   r   !meminfo_varsize_realloc_uncheckedr   r   guard_memory_errorr6   r   )new_allocatedr&   r   r   r   rK   r#   r"   r   r   r9   s         r)   _payload_reallocz-ListInstance.resize.<locals>._payload_realloc[  sz   "001B481L1LMML"11,??LH$L$9FH--FL113 3NIs U33 K K!11';2IK K KK K K K K K K K K K K K K K K +??@D
@REN @ P PC &w';= = =&3DM###s   "CCC   r   rO   >Fr_   NT)rh   rC   rR   r0   r   r6   r   r   rQ   rP   ashrrb   rS   r   r7   r   )r9   new_sizer   r   twoeightis_too_smallis_too_larger   r#   r"   r   r   s   `        @@@@r)   resizezListInstance.resizeW  s;   	4 	4 	4 	4 	4 	4 	4 	4 	4* --22M+	k&!$$FA&& **3	8DD**3Y0L0LhWW__\%_88 	' 	' X&&&		' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' __\%_88 	1 	1#KK(/H4;LL34O4O)Q )QR RM ]+++JJty-000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 &ts%   C  C$'C$A%E33E7:E7c                     |                      |          }|                      |          }t          j        | j        |||| j                   |                     d           dS )zE
        Move `count` elements from `src_idx` to `dest_idx`.
        )r   TN)rF   r   raw_memmoverC   r   r   )r9   dest_idxsrc_idxcountdest_ptrsrc_ptrs         r)   movezListInstance.move  si     99X&&))G$$DM8W!DN	< 	< 	< 	< 	tr+   N)T)rz   r{   r|   r   r}   r-   r6   r   r~   r%   r   r   r   r   r   r   classmethodr   r   r   r   r   r   r  r   r+   r)   r   r      s       F F F   X T T XT ! ! X! ]" " ]" & & X& " " X"Q Q Q= = =# # # ## # # #> > > -& -& [-&^  <     [   [7 7 7r	 	 	 	 	r+   r   c                       e Zd Zd Zed             Zed             Zed             Zed             Z	e	j
        d             Z	dS )ListIterInstancec                     || _         || _        || _        |                    |||          | _        |j        |j                 | _        d S r4   )rh   rC   r   r   _iterr   
yield_typerI   )r9   r"   r#   	iter_typeiter_vals        r)   r   zListIterInstance.__init__  sF    (()XFF
!4Y5IJr+   c                     t          |||j        |          } | |||d           }|                    t          j        d          }t          j        ||          |j        _        |j	        |j        _	        |S Nr   )
r   	containerget_constantr   r   r   ra   r  indexr   )r   r"   r#   r  r   	list_instr9   r  s           r)   	from_listzListIterInstance.from_list  sm     '93FQQ	s7GY55$$UZ33"4WeDD
&.
r+   c                 X    t          | j        | j        | j        j        | j                  S r4   )r*   rh   rC   r   r  r  r8   s    r)   r6   zListIterInstance._payload  s-      t} $ 2DJ@ @ 	@r+   c                 4    | j                                         S r4   )r  r   r8   s    r)   r%   zListIterInstance.value  r   r+   c                 J    | j                             | j        j                  S r4   )rC   rH   r  r  r8   s    r)   r  zListIterInstance.index  s    }!!$*"2333r+   c                 P    | j                             || j        j                   d S r4   )rC   rc   r  r  r;   s     r)   r  zListIterInstance.index  s%    E4:#344444r+   N)rz   r{   r|   r   r  r  r}   r6   r%   r  r~   r   r+   r)   r  r    s        K K K   [ @ @ X@
 & & X& 4 4 X4 \5 5 \5 5 5r+   r  c                 h   t          |          }t                              | |||          }|                     t          j        |          |_        t          |          D ];\  }}|                    |                     t          j        |          |d           <t          | |||j
                  S )zE
    Build a list of the given type, containing the given items.
    Trr   )lenr   r   r  r   r   r7   	enumerater   r   r%   )r"   r#   r$   itemsr   instirt   s           r)   
build_listr    s     ZZF  '9fEED$$UZ88DIE"" L L3W))%*a88#dKKKKGWiDDDr+   c                 8    d }|                      ||||          S )Nc                 4    g }|                     |            |S r4   )extend)iterableress     r)   	list_implz#list_constructor.<locals>.list_impl  s    

8
r+   compile_internal)r"   r#   sigr   r"  s        r)   list_constructorr&    s-      
 ##GYTBBBr+   c                 |    |j         }d}t                              | |||          }t          | |||j                  S r  )return_typer   r   r   r%   )r"   r#   r%  r   r$   list_lenr  s          r)   r&  r&    s=    IH  '9hGGDGWiDDDr+   c                 V    t          | ||j        d         |d                   }|j        S r  )r   r   r7   r"   r#   r%  r   r  s        r)   r)  r)    s'    #(1+tAw??D9r+   getiterc                     t                               | ||j        |d                   }t          | ||j        |j                  S r  )r  r  r(  r   r%   r+  s        r)   getiter_listr.    s9    %%gwaQQDWgs
KKKr+   iternextc                    t          | ||j        d         |d                   }|j        }|j        }|                    d||          }|                    |           |                    |          5  |                    |                    |                     |	                    || 
                    t          j        d                    |_        d d d            d S # 1 swxY w Y   d S )Nr   rO   r   )r  r   r  r7   rP   	set_validrb   yield_rM   rS   r  r   r   )	r"   r#   r%  r   resultr  r  r   is_valids	            r)   iternext_listiterr5    s)    GWchqk47CCDJEYF""3v66H
X		"	" M Mdll5))***[[(<(<UZ(K(KLL
M M M M M M M M M M M M M M M M M Ms   3A"C""C&)C&c                    t          | ||j        d         |d                   }|d         }|                    |          }|                    |d           |                    |          }t          | ||j        |          S )Nr   r   zgetitem out of rangerl   )r   r   rW   rm   rM   r   r(  )r"   r#   r%  r   r  r  r3  s          r)   getitem_listr8    sz    #(1+tAw??DGENN5!!EU 6777\\%  FWgsGGGr+   c                    t          | ||j        d         |d                   }|d         }|d         }|                    |          }|                    |d           |                    ||d           |                                 S )Nr   r   r   zsetitem out of ranger7  Tr  )r   r   rW   rm   r   get_dummy_value)r"   r#   r%  r   r  r  r%   s          r)   setitem_listr;  	  s    #(1+tAw??DGEGENN5!!EU 6777LLdL+++""$$$r+   c                 d   t          | ||j        d         |d                   }|                     ||j        d         |d                   }t          j        | ||j        d         |           |                    |           t          j        ||          }t                               | ||j        |          }||_	        t          j        ||j        |j        |j                  5 \  }}	|5 \  }
}|                    |
          }|                    ||d           d d d            n# 1 swxY w Y   |	5 \  }
}|                    |
          }|                    ||d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t#          | ||j        |j                  S Nr   r   Tr  )r   r   r   r   guard_invalid_slicero   get_slice_lengthr   r(  r7   r   for_range_slice_genericr   r   r   rM   r   r   r%   )r"   r#   r%  r   r  rp   result_sizer3  	pos_range	neg_rangerE   r   r%   s                r)   getslice_listrD    sI   #(1+tAw??D!d1g>>E#(1+uEEENN5 *7E::K""7GS_#.0 0FFK		(%+uz).
5 
5 78NI 	7,3LL%%EOOE5O666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7  	7,3LL%%EOOE5O666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	77 7 7 7 7 7 7 7 7 7 7 7 7 7 7 GWcov|LLLsZ   'F-1D*F*D.	.F1D.	2F71E4(F4E8	8F;E8	<FFFc           	      	   t          | ||j        d         |d                   }t          | ||j        d         |d                   }|                     ||j        d         |d                   }t          j        | ||j        d         |           |                    |           |j        }t          j        ||          }|                    |j        |          }	t          j
        |	j        d          }
t          j
        |	j        d          }|                    |                    d|j        |                    5 \  }}|5  |                    |j        |          }|                    |j        |          }|                    |                    d|	|
                    5  |                    |                    |j        |	                     |                    |                    ||	          ||           d d d            n# 1 swxY w Y   |                    |                    d|	|
                    5  |                    |                    ||	          ||           |                    |                    |j        |	                     d d d            n# 1 swxY w Y   |j        }t)          j        ||          5 }|                    |j                  }|                    |                    |j        |          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |5  |                    |                    d	|	|
                    5  d
}| j                            |t6          |f           d d d            n# 1 swxY w Y   t)          j        ||j        |j        |j                  5 \  }}|5 \  }}|                    |          }|                    ||d           d d d            n# 1 swxY w Y   |5 \  }}|                    |          }|                    ||d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                                 S )Nr   r   r   ==r   rO   Tr  !=z0cannot resize extended list slice with step != 1)r   r   r   r   r>  ro   r7   r?  r   r   rQ   rR   r   rP   r   rS   r   rb   r   r  r   	for_rangerM   r  r   ri   rj   
ValueErrorr@  r   r:  )r"   r#   r%  r   destsrcrp   src_size
avail_size
size_deltare   onethen	otherwise	real_stop	tail_sizedest_offsetloopr%   rl   rB  rC  r  r   s                           r)   r;  r;  ,  s   #(1+tAw??D
w!d1g
>
>C!d1g>>E#(1+uEEENN5xH)'599JSXz22J;z**D
+joq
)
)C	,,T5:sCC	D	D '<HYy 	W 	W  EK<<IDIy99I!4!4S*d!K!KLL % %GKK	:>>???		'++i<<i#% % %% % % % % % % % % % % % % % % !4!4S*d!K!KLL @ @		'++i<<i#% % %GKK	:>>???	@ @ @ @ @ @ @ @ @ @ @ @ @ @ @  +K"7H55 WDJ//W[[[AA5QUVVVW W W W W W W W W W W W W W W-	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W4  	< 	<!4!4T:t!L!LMM O OH!11':vNNNO O O O O O O O O O O O O O O 0ej%*> > <AW)Y <.5%KK..ELLdL;;;< < < < < < < < < < < < < < <  <.5%KK..ELLdL;;;< < < < < < < < < < < < < < << < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<7'< '< '< '< '< '< '< '< '< '< '< '< '< '< '<R ""$$$sZ   R*A!L>'AHL>HL>H-L>AJ(L>(J,,L>/J,0L>AL'L>'L++L>.L+/L>2R*>M	R*M	R*+R6%N'R'N++R.N+/)RQ<1P	Q<PQ<"P#Q<(1Q%	Q<%Q))Q<,Q)-Q<0R<R  RR RR*R	R*R	R**R.1R.c                 8    d }|                      ||||          S )Nc                 0    |                      |           d S r4   )pop)lstr  s     r)   list_delitem_implz-delitem_list_index.<locals>.list_delitem_impll  s    




r+   r#  )r"   r#   r%  r   rZ  s        r)   delitem_list_indexr[  i  s.       ##G->TJJJr+   c                 :   t          | ||j        d         |d                   }|                     ||j        d         |d                   }t          j        | ||j        d         |           |                    |           t          j        ||          }t          j        |j	        d          }|
                    |                    d|j        |          d          5  d}| j                            |t          |f           d d d            n# 1 swxY w Y   |j        }	|                    |	|          }
t%          j        ||	|
|		                    d                    5 \  }}|                    |                    |                     d d d            n# 1 swxY w Y   |                    |j        |
          }|                    |	|
|           |                    |                    |j        |                     |                                 S )Nr   r   rG  Fr_   z4unsupported del list[start:stop:step] with step != 1)r   r   r   r   r>  ro   r?  r   rQ   rR   rb   rP   r   ri   rj   NotImplementedErrorr   rS   r   r   ry   rM   r   r7   r  r   r:  )r"   r#   r%  r   r  rp   	slice_lenrO  rl   r   rR  rE   r   rS  s                 r)   delitem_listr_  r  sa   #(1+tAw??D!d1g>>E#(1+uEEENN5(%88I
+ina
(
(C	,,T5:sCCE	R	R P PD))'3FOOOP P P P P P P P P P P P P P P
 KEE9--I		 UIuzz!}}
 
 -#q$,,s++,,,- - - - - - - - - - - - - - - DIy11IIIeY	***KKDIy11222""$$$s$   #%DDD&,FF"%F"c                 8    d }|                      ||||          S )Nc                 "    | D ]}||k    r dS dS NTFr   )rY  r%   elems      r)   seq_contains_implz!in_seq.<locals>.seq_contains_impl  s+     	 	Du}}tt ur+   r#  )r"   r#   r%  r   rd  s        r)   in_seqre    s.       ##G->TJJJr+   c                 8    d }|                      ||||          S )Nc                 (    t          |           dk    S r  r  seqs    r)   sequence_bool_implz)sequence_bool.<locals>.sequence_bool_impl  s    3xx1}r+   r#  )r"   r#   r%  r   rk  s        r)   sequence_boolrl    s.       ##G-?dKKKr+   c                 D    t          | t          j                  rd }|S d S )Nc                 (    t          |           dk    S r  rh  ri  s    r)   implzsequence_truth.<locals>.impl  s    s88q= r+   )r   r   Sequence)rj  ro  s     r)   sequence_truthrq    s4    #u~&& 	! 	! 	! r+   c                    t          | ||j        d         |d                   }t          | ||j        d         |d                   }|j        }|j        }|                    ||          }t                               | ||j        |          }	||	_        t          j        ||          5 }
|                    |
j	                  }| 
                    |||j        |	j                  }|	                    |
j	        |d           d d d            n# 1 swxY w Y   t          j        ||          5 }
|                    |
j	                  }| 
                    |||j        |	j                  }|	                    |                    |
j	        |          |d           d d d            n# 1 swxY w Y   t          | ||j        |	j                  S r=  )r   r   r7   rS   r   r(  r   rH  rM   r  castr-   r   r   r%   )r"   r#   r%  r   aba_sizeb_sizer   rJ  rU  r%   s               r)   list_addrx    s   Wgsx{DG<<AWgsx{DG<<AVFVF[[((F  '3?FKKDDI		7F	+	+ 5t		$*%%WeQWdjAATZt4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
	7F	+	+ Jt		$*%%WeQWdjAAW[[V44eDIIIJ J J J J J J J J J J J J J J
 GWcotzJJJs&   )ADDD/A.F))F-0F-c                     |j         d         j        |j        j        k    sJ t          | |||          }t	          | ||j        |j                  S r  )r   r-   r(  _list_extend_listr   r%   )r"   r#   r%  r   rJ  s        r)   list_add_inplacer{    sL    8A; 55555WgsD99DWgs
KKKr+   c                 \   t          |j        d         t          j                  rd\  }}nd\  }}t	          | ||j        |         ||                   }|j        }||         }t          j        |j        d          }	|	                    t          j        ||          |	|          }|                    ||          }
t                              | ||j        |
          }|
|_        t          j        ||	|
|d          5 \  }}t          j        ||          5 }|                    |j                  }|                    |                    |j        |          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t+          | ||j        |j                  S )Nr   )r   r   )r   r   Tincr  )r   r   r   Listr   r7   r   rQ   rR   rT   r   
is_neg_intmulr   r(  r   rH  rM   r  r   rS   r   r%   )r"   r#   r%  r   list_idxint_idxrK  rL  multre   r   rJ  rT  r   rU  r%   s                   r)   list_mulr    s    #(1+uz** ! '' '
w();T(^
L
LCxH=D;ty!$$D>>',Wd;;T4HHD[[x((F  '3?FKKDDI		 $d	K	K	K SO_P[]^w11 	STKK
++ELLTZ==uTLRRR	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
 GWcotzJJJs7   ?FAE0$F0E4	4F7E4	8FFFc                    t          | ||j        d         |d                   }|j        }|d         }t          j        |j        d          }|                    t          j        ||          ||          }|	                    ||          }|
                    |           t          j        ||||d          5 \  }	}
t          j        ||          5 }|                    |j                  }|                    |                    |j        |	          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t#          | ||j        |j                  S )Nr   r   Tr}  r  )r   r   r7   r   rQ   rR   rT   r   r  r  r   r   rH  rM   r  r   rS   r   r(  r%   )r"   r#   r%  r   r  rL  r  re   r   rT  r   rU  r%   s                r)   list_mul_inplacer    s   #(1+tAw??DyH7D;ty!$$D>>',Wd;;T4HHD[[x((FKK		 (FH$	O	O	O SScT_abw11 	STLL,,ELLTZ==uTLRRR	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
 Wgs
KKKs7   ;EAD, E,D0	0E3D0	4EE
Ec                 P   t          | ||j        d         |d                   }t          | ||j        d         |d                   }|                    |j        t          j                  }|                    |j        t          j                  }|                    d||          S Nr   r   rF  )r   r   r   r   r   r   rP   )r"   r#   r%  r   rt  ru  mambs           r)   list_isr    s    Wgsx{DG<<AWgsx{DG<<A			!)W^	4	4B			!)W^	4	4BtR,,,r+   c           	      t   |j         \  }}t          | |||d                   }t          | |||d                   }|j        }|                    d||j                  }	t	          j        ||	          }
|                    |	          5  t	          j        ||          5 }|                    |j	                  }|                    |j	                  }| 
                    |t          j        |j        |j        f||f          }|                    |                    |                    5  |                    t          j        |
           |                                 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |
          S r  )r   r   r7   rP   r   ra   rb   rH  rM   r  generic_compareoperatoreqr-   r   rc   r   do_breakrH   )r"   r#   r%  r   atybtyrt  ru  rv  	same_sizer!  rU  vwitemress                  r)   list_eqr    s9   xHCWgsDG44AWgsDG44AVF##D&!&99I

#GY
7
7C		#	# 	  	 w// 	 4		$*%%A		$*%%A--gx{/2y#).Dq!fN NGg!6!677    g/555                             	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  <<s[   FBF+5E, F,E00F3E04F7FF	F
F	FF!Fc                  4    t          d | D                       S )Nc                 B    g | ]}t          |t          j                  S r   )r   r   r  ).0typs     r)   
<listcomp>zall_list.<locals>.<listcomp>  s$    <<<
3
++<<<r+   )all)r   s    r)   all_listr    s    <<t<<<===r+   c                 0    t          | |          sd S d }|S )Nc                     | |k     S r4   r   rt  ru  s     r)   list_ne_implz"impl_list_ne.<locals>.list_ne_impl&  s    F|r+   r  )rt  ru  r  s      r)   impl_list_ner  !  s.    Aq>>    r+   c                 0    t          | |          sd S d }|S )Nc                     t          |           }t          |          }t          t          ||                    D ],}| |         ||         k     r dS | |         ||         k    r dS -||k    S rb  r  rangeminrt  ru  mnr  s        r)   list_le_implz"impl_list_le.<locals>.list_le_impl0  su    FFFFs1ayy!! 	 	Atad{{tt1!uu Avr+   r  )rt  ru  r  s      r)   impl_list_ler  +  s.    Aq>>    r+   c                 0    t          | |          sd S d }|S )Nc                     t          |           }t          |          }t          t          ||                    D ],}| |         ||         k     r dS | |         ||         k    r dS -||k     S rb  r  r  s        r)   list_lt_implz"impl_list_lt.<locals>.list_lt_implA  su    FFFFs1ayy!! 	 	Atad{{tt1!uu 1ur+   r  )rt  ru  r  s      r)   impl_list_ltr  <  s.    Aq>>    r+   c                 0    t          | |          sd S d }|S )Nc                     || k    S r4   r   r  s     r)   list_ge_implz"impl_list_ge.<locals>.list_ge_implR  s    Avr+   r  )rt  ru  r  s      r)   impl_list_ger  M  s.    Aq>>    r+   c                 0    t          | |          sd S d }|S )Nc                     || k     S r4   r   r  s     r)   list_gt_implz"impl_list_gt.<locals>.list_gt_impl\  s    1ur+   r  )rt  ru  r  s      r)   impl_list_gtr  W  s.    Aq>>    r+   zlist.appendc                 D   t          | ||j        d         |d                   }|d         }|j        }|                    |t	          j        |j        d                    }|                    |           |                    ||d           | 	                                S r=  )
r   r   r7   rS   r   rQ   rR   r   r   r:  )r"   r#   r%  r   r  itemr  r   s           r)   list_appendr  d  s    #(1+tAw??D7D	A{{1bk!&!4455HKKLLDL&&&""$$$r+   z
list.clearc                     t          | ||j        d         |d                   }|                    |                     t          j        d                     |                                 S r  )r   r   r   r  r   r   r:  r+  s        r)   
list_clearr  p  sU    #(1+tAw??DKK$$UZ33444""$$$r+   copyc                     d }|S )Nc                      t          |           S r4   )listrY  s    r)   list_copy_implz!list_copy.<locals>.list_copy_implz  s    Cyyr+   r   )rY  r  s     r)   	list_copyr  x  s       r+   r   c                     d }|S )Nc                 *    d}| D ]}||k    r|dz  }|S Nr   r   r   )rY  r%   r!  rc  s       r)   list_count_implz#list_count.<locals>.list_count_impl  s.     	 	Du}}q
r+   r   )rY  r%   r  s      r)   
list_countr    s       r+   c                 F   t          | ||j        d         |d                   }t          | ||j        d         |d                   }|j        }|j        }|                    ||          }|                    |           ||_        t          j        ||          5 }	|                    |	j                  }
| 	                    ||
|j
        |j
                  }
|                    |                    |	j        |          |
d           d d d            n# 1 swxY w Y   |S )Nr   r   Tr  )r   r   r7   rS   r   r   rH  rM   r  rs  r-   r   )r"   r#   r%  r   rK  rJ  rL  	dest_sizer   rU  r%   s              r)   rz  rz    sH   
w!d1g
>
>C#(1+tAw??DxH	I[[9--FKKDI		7H	-	- MDJ''WeSY
CCW[[Y77tLLLM M M M M M M M M M M M M M M
 Ks   A.DDDzlist.extendc                     t          |j        d         t          j                  r&t	          | |||           |                                 S d }|                     ||||          S )Nr   c                 4    | j         }|D ]} ||           d S r4   )append)rY  r   methr  s       r)   list_extendz list_extend.<locals>.list_extend  s1    z 	 	ADGGGG	 	r+   )r   r   r   r  rz  r:  r$  )r"   r#   r%  r   r  s        r)   r  r    sm    #(1+uz** )'7C666&&(((   ##G[#tDDDr+   r  c                 (   t          |t          t          j        t          j        f          st          j        d|           t          |t          t          j        t          j        f          st          j        d|           dt          fd}|S )Nz$arg "start" must be an Integer. Got z#arg "stop" must be an Integer. Got r   c                     t          |           }|dk     r||z  }|dk     rd}|dk     r||z  }||k    r|}t          ||          D ]}| |         |k    r|c S t          d          )Nr   zvalue not in list)r  r  rI  )rY  r%   r   r   r  r  s         r)   list_index_implz#list_index.<locals>.list_index_impl  s    HH199QJEqyy!88AID!88Dud## 	 	A1v  ,---r+   )r   r   r   IntegerOmittedr   TypingErrorintp_max)rY  r%   r   r   r  s        r)   
list_indexr    s     ec5=%-@AA Q !O!O!OPPPdS%-?@@ O !Mt!M!MNNN*+( . . . . r+   zlist.insertc                 (   t          | ||j        d         |d                   }|                    |d                   }|                    |          }|d         }|j        }t          j        |j        d          }|                    ||          }	|	                    |	           |
                    |                    ||          ||                    ||                     |                    ||dd           |                                 S )Nr   r   r   TF)rr   r   )r   r   rW   rf   r7   r   rQ   rR   rS   r   r  r   r   r:  )
r"   r#   r%  r   r  r  r%   r  rO  r   s
             r)   list_insertr    s     #(1+tAw??DNN47##EU##EGE	A
+afa
 
 C{{1c""HKKIIgkk%%%ugkk!U.C.CDDDLLdULCCC""$$$r+   zlist.popc                    t          | ||j        d         |d                   }|j        }t          j        | ||t
          df           |                    |t          j        |j	        d                    }|
                    |          }|                    |           |                    |           |                    |           t          | ||j        |          S )Nr   pop from empty listr   )r   r   r7   r   
guard_zerork   r   r   rQ   rR   rM   ru   r   r   r   r(  )r"   r#   r%  r   r  r  r!  s          r)   list_popr    s    #(1+tAw??D	Aw"$9:< < <Ar{161--..A
,,q//CcQKKNNNGWcosCCCr+   c                    t          | ||j        d         |d                   }|                    |d                   }|j        }t	          j        | ||t          df           |                    |d           |                    |          }t          j
        |j        d          }|                    |t          j
        |j        d                    }|                    ||                    ||          |                    ||                     |                    |           t!          | ||j        |          S )Nr   r   r  zpop index out of range)r   r   rW   r7   r   r  rk   rm   rM   r   rQ   rR   r   r  rS   r   r   r(  )	r"   r#   r%  r   r  rE   r  r!  rO  s	            r)   r  r    s   #(1+tAw??D
..a
!
!C	Aw"$9:< < <S2333
,,s

C
+afa
 
 CAr{161--..AIIc7;;sC(('++a*=*=>>>KKNNNGWcosCCCr+   removec                     d }|S )Nc                     t          t          |                     D ]&}| |         |k    r|                     |            d S 't          d          )Nzlist.remove(x): x not in list)r  r  rX  rI  )rY  r%   r  s      r)   list_remove_implz%list_remove.<locals>.list_remove_impl  sV    s3xx 	 	A1v


  8999r+   r   )rY  r%   r  s      r)   list_remover    s    : : : r+   reversec                     d }|S )Nc                     t          dt          |           dz            D ]}| dz
  }| |         | |         c| |<   | |<    d S )Nr   r   r   )r  r  )rY  rt  ru  s      r)   list_reverse_implz'list_reverse.<locals>.list_reverse_impl  sW    q#c((a-(( 	, 	,AQA VSVNCFCFF	, 	,r+   r   )rY  r  s     r)   list_reverser    s    , , ,
 r+   c                     | |k    S r4   r   r  s     r)   gtr    s    q5Lr+   )ltT)
is_argsortis_list)r  r  r  c                 (   t          | t          j                  r| j        }n$t          | t          j                  r| j        }n| }t          |t          j        t          j        t          t          f          sd| z  }t          j        |          |S )Nz2an integer is required for 'reverse' (got type %s))r   r   r  r%   OptionalrR   Booleanr  r   boolr   r  )r  rtyrl   s      r)   _sort_check_reverser  %  s    '5=)) m	GU^	,	, lcEM5=#tDEE &BWL %%%Jr+   c                     t          | t          j                  rd}t          j        |          t          j        |           s0t          | t          j                  sd}t          j        |          d S d S )NzoKey must concretely be None or a Numba JIT compiled function, an Optional (union of None and a value) was foundz1Key must be None or a Numba JIT compiled function)r   r   r  r   r  r   is_nonelike
Dispatcher)keyrl   s     r)   _sort_check_keyr  2  s    #u~&& &C %%%$$ &
38H(I(I &A %%%& & & &r+   sortFc                     t          |           t          |           t          j        |          rdt          t
          n*t          |t          j                  rdt          t          dfd	}|S )NFTc                      du rfd D             }n }|du s|dk    r |          }n |          }du r fd|D              d d <   d S d S )NTc                 &    g | ]} |          S r   r   )r  xr  s     r)   r  z.ol_list_sort.<locals>.impl.<locals>.<listcomp>M  s!    (((qCCFF(((r+   Fr   c                      g | ]
}|         S r   r   )r  r  rY  s     r)   r  z.ol_list_sort.<locals>.impl.<locals>.<listcomp>U  s    ***c!f***r+   r   )rY  r  r  _lsttmpKEYsort_bsort_fs   ``   r)   ro  zol_list_sort.<locals>.implK  s    $;;((((C(((DDDew!||&,,CC&,,C$;;****c***CFFF ;r+   NF)r  r  r   r  sort_forwardssort_backwardsr   r   r  arg_sort_forwardsarg_sort_backwards)rY  r  r  ro  r  r  r  s       @@@r)   ol_list_sortr  <  s     C   3 $	C)	*	* $"#
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ Kr+   c                     t          | t          j                  sdS t          |           t	          |           dd}|S )NFc                 R    t          |           }|                    ||           |S )N)r  r  )r  r  )r   r  r  rY  s       r)   ro  zol_sorted.<locals>.implb  s(    8nnS'***
r+   r  )r   r   IterableTyper  r  )r   r  r  ro  s       r)   	ol_sortedr  Y  sU     h 233 uC       Kr+   c                 *    |j         |j         k    sJ |S r4   )r-   )r"   r#   fromtytotyrt   s        r)   list_to_listr  k  s     <4:%%%%Jr+   Cannot mutate a literal listr  c                     t           r4   _banned_error)rY  objs     r)   literal_list_banned_appendr  y      
r+   r  c                     t           r4   r  )rY  r   s     r)   literal_list_banned_extendr  ~  r  r+   insertc                     t           r4   r  )rY  r  r  s      r)   literal_list_banned_insertr!    r  r+   c                     t           r4   r  )rY  r%   s     r)   literal_list_banned_remover#    r  r+   rX  c                     t           r4   r  rY  r  s     r)   literal_list_banned_popr'    r  r+   clearc                     t           r4   r  r  s    r)   literal_list_banned_clearr*    r  r+   c                     t           r4   r  )rY  r  r  s      r)   literal_list_banned_sortr,    r  r+   c                     t           r4   r  r  s    r)   literal_list_banned_reverser.    r  r+   c                 f    t          | t          j                  rd}t          j        |          d S )Nz+list.index is unsupported for literal listsr   r   LiteralListr   r  )rY  r  r   r   rl   s        r)   literal_list_indexr2    s9    
 #u()) &; %%%& &r+   c                 D    t          | t          j                  rd }|S d S )Nc                 D    d}t          |           D ]}||k    r|dz  }|S r  r   )rY  r  r   rt   s       r)   ro  z literal_list_count.<locals>.impl  s6    E%c**  !88QJELr+   r   r   r1  )rY  r  ro  s      r)   literal_list_countr6    s7    #u()) 	 	 	  r+   c                 D    t          | t          j                  rd }|S d S )Nc                     | S r4   r   r  s    r)   ro  z literal_list_count.<locals>.impl  s    Jr+   r5  )rY  ro  s     r)   r6  r6    s5    #u()) 	 	 	 r+   c                 H    t          | t          j                  rt          d S r4   )r   r   r1  r  r&  s     r)   literal_list_delitemr:    s'    #u())  r+   c                 b    t          | t          j                  rt          j        d          d S )Nr  r0  )rY  r  r%   s      r)   literal_list_setitemr<    s6    #u()) A !?@@@A Ar+   c                 f    t          | t          j                  sd S d}t          j        |          )NzRCannot __getitem__ on a literal list, return type cannot be statically determined.r0  )rY  r   rl   s      r)   literal_list_getitemr>    s4    c5,-- $C

S
!
!!r+   c                 T    t          | t          j                  sd S | j        fdS )Nc                     S r4   r   rY  ls    r)   <lambda>z"literal_list_len.<locals>.<lambda>  s    q r+   )r   r   r1  r   rA  s    @r)   literal_list_lenrD    s0    c5,-- 	A===r+   c                 D    t          | t          j                  rd }|S d S )Nc                 <    t          |           D ]}||k    r dS dS rb  r   )rY  r  rt   s      r)   ro  z#literal_list_contains.<locals>.impl  s3    %c**    $;;44 5r+   r5  )rY  r  ro  s      r)   literal_list_containsrG    s7    #u()) 	 	 	
  r+   c                     t          |          t          |          k    rt          t          j        |t          |                    } fdt	          |||          D             }                     ||          S )Nc                 H    g | ]\  }}}                     |||          S r   )rs  )r  r  ftr#   r"   s       r)   r  z.literallist_to_literallist.<locals>.<listcomp>  sA     9 9 9Aq \\'1a++ 9 9 9r+   )r  r]  r   unpack_tuplezip
make_tuple)r"   r#   r  r  rt   olditemsr  s   ``     r)   literallist_to_literallistrP    s    
6{{c$ii!!#GS#f++>>H9 9 9 9 9&$779 9 9EgtU333r+   r  )r$  )r   mathr  	functoolsr   llvmliter   
numba.corer   r   r   r   r	   numba.core.imputilsr
   r   r   r   r   r   r   numba.core.extendingr   r   
numba.miscr   numba.cpythonr   numbar   r*   r0   objectr2   r   r   r  r  r  r  r&  r  r  r)  r.  ListIterBORROWEDr5  rM   r  r8  r   Anyr;  	SliceTyperD  delitemr[  r_  containsrp  re  r  rl  truthrq  rS   rx  iaddr{  r  r  imulr  is_r  r  r  r  ner  ler  r  r  ger  r  r  r  r  r  r  rz  r  USE_LEGACY_TYPE_SYSTEMr   maxvalr  py_intr  r  r  r  r  make_jit_quicksortrun_quicksortr	  r
  r  r  r  r  r  sortedr  r  r  r  r1  r  r  r!  r#  r'  r*  r,  r.  
_index_endr2  r6  r:  r<  r>  rD  rG  rP  r   r+   r)   <module>ro     sn   
   % % % % % %       = = = = = = = = = = = = = =- - - - - - - - - - - - - - - - - - ; : : : : : : :             ! ! ! ! ! !            	H 	H 	H( ( (UA UA UA UA UA UA UA UAp         +      $E E E E E$ E E EN"5 "5 "5 "5 "5( "5 "5 "5PE E E tU'((C C )(C tE E E sEJ    y%*%%L L &%L z5>**w  
M 
M !  +*
M xU];;H H <;H xU]EIFF% % GF% xU_==M M >=M, xU_eiHH8% 8% IH8%x xU];;K K <;K xU_==% % >=%D x %.%)<<K K =<K tU^$$L L %$L 
(.   x|UZ44K K 54K* x}ej%*55L L 65L x|UZ77x|U]EJ77K K 87 87K. x}ej%-88L L 98L, x|UZ44- - 54- x{EJ
33  430> > > 
(+   
(+    
(+    
(+   
(+   }ej%)44	% 	% 54	% |UZ((% % )(% V$$  %$ W%%	 	 &%	  " }ej%*<==E E >=E 
  #z HH|"H W%%!"    &%2 }ej%-9 % % % z5:&&D D '&D z5:u}55D D 65D" X&&
 
 '&
 Y''  ('   -	,..<--444B0I0D9=? ? ??L 1Y1Tb:>@ @ @@M 
 
 
& & & V$$   %$8 
&   " EJ
##  $# #"#ABB "H--  .- "H--  .- "H--  .- "H--  .- "E**   +* "G,,  -, "F++   ,+ "I..  /. 
  %"JJ$J"G,,%&J & & & -,& "G,,  -, "F++  ,+ 
(
   
(
A A A 
(
" " " 
#   
(
   Eu0114 4 214 4 4r+   