Ë
    pPêjÐR  ã                  óx  — U d Z ddlmZ ddlmZmZ ddlmZmZm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZ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%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 erddl:m;Z; d/d	„Z<d
dœ	 	 	 	 	 	 	 	 	 	 	 d0d„Z=d
dœ	 	 	 	 	 	 	 	 	 	 	 	 	 d1d„Z>d
dœ	 	 	 	 	 	 	 	 	 	 	 d2d„Z?d3d„Z@dZAdeBd<   	 	 	 	 	 	 	 	 d4d„ZCd5d„ZDd5d„ZEd6d„ZFd7d„ZGddœ	 	 	 	 	 	 	 	 	 d8d„ZH	 	 	 	 	 	 	 	 	 	 d9d„ZI	 	 	 	 	 	 	 	 	 	 d:d„ZJddœ	 	 	 	 	 	 	 	 	 	 	 d;d„ZKddœ	 	 	 	 	 	 	 	 	 	 	 d;d„ZLddœ	 	 	 	 	 	 	 	 	 	 	 d;d„ZM	 	 	 	 	 	 	 	 	 	 	 	 d<d „ZN	 	 	 	 	 	 	 	 	 	 	 	 d<d!„ZOd=d"„ZPd>d#„ZQd?d$„ZRd@d%„ZSdAd&„ZTdBd'„ZUd@d(„ZVdCd)„ZW	 	 	 	 	 	 	 	 	 	 	 	 dDd*„ZXdEd+„ZYdEd,„ZZdFd-„Z[	 	 	 	 	 	 	 	 	 	 	 	 dGd.„Z\y
)Hz)Generate IR for librt.vecs.vec operationsé    )Úannotations)ÚTYPE_CHECKINGÚFinal)ÚIS_32_BIT_PLATFORMÚKEEP_ALIVE_SHORT_LIVEDÚPLATFORM_SIZE)Ú	ERR_MAGICÚAssignÚ
BasicBlockÚBranchÚCallCÚComparisonOpÚDecRefÚ
GetElementÚIntegerÚIntOpÚRaiseStandardErrorÚRegisterÚ
SetElementÚTupleGetÚTupleSetÚUnborrowÚUndefÚUnreachableÚValue)Ú	RInstanceÚ
RPrimitiveÚRTupleÚRTypeÚRUnionÚRVecÚVecNestedBufItemÚbool_rprimitiveÚc_pyssize_t_rprimitiveÚc_size_t_rprimitiveÚint32_rprimitiveÚint64_rprimitiveÚis_c_py_ssize_t_rprimitiveÚis_int32_rprimitiveÚis_int64_rprimitiveÚis_int_rprimitiveÚis_short_int_rprimitiveÚlist_rprimitiveÚobject_rprimitiveÚoptional_value_typeÚpointer_rprimitiveÚtuple_rprimitiveÚvec_api_by_item_typeÚvec_item_type_tags)Úvec_get_item_unsafe_borrow_opÚvec_get_item_unsafe_op)ÚLowLevelIRBuilderc                ó”  — |j                   }t        |«      r|S t        |t        «      rMt	        |«      st        |«      rt        |j                  dz  t        «      S t        |j                  t        «      S t        |t        «      r,t        dk(  rt        |«      r|S t        dk(  rt        |«      r|S | j                  |t        |«      S )Né   é   é   )Útyper(   Ú
isinstancer   r,   r+   Úvaluer$   r   r   r*   r)   Úcoerce)ÚbuilderÚvÚlineÚrtypes       úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/irbuild/vec.pyÚas_platform_intrD   =   s¢   € Ø�F‰F€EÜ! %Ô(ØˆÜ�!”WÔÜ" 5Ô)Ô->¸uÔ-EÜ˜1Ÿ7™7 a™<Ô)?Ó@Ð@Ü�q—w‘wÔ 6Ó7Ð7Ü�%œÔ$Ü˜AÒÔ"5°eÔ"<ØˆHÜ˜AÒÔ"5°eÔ"<ØˆHØ�>‰>˜!Ô3°TÓ:Ð:ó    N©Úcapacityc          
     ó   — t        |t        «      rt        |t        «      }t	        | ||«      }|�t	        | ||«      }n|}|j
                  }t        j                  |«      }|�,t        |› d�||g|ddt        |¬«      }| j                  |«      S t        | ||«      \  }}	}
|�ät        |t        «      r|}nit        t        «      }| j                  t        ||«      «       |	r=| j                  t        t        |t        dt        «      t        j                   «      «      }|
dk(  r*t        d|||g|ddt        |¬«      }| j                  |«      S t        d|||t        |
t"        «      g|ddt        |¬«      }| j                  |«      S J d|z  «       ‚)	Nz.allocF)Ú
error_kindrA   é   r   zVecTApi.alloczVecNestedApi.alloczunsupported: %s)r<   Úintr   r$   rD   Ú	item_typer2   Úgetr   r	   ÚaddÚvec_item_type_infor   r0   r
   r   ÚORr&   )r?   ÚvtypeÚlengthrA   rG   rL   Úapi_nameÚcallÚtypeobjÚoptionalÚdepthÚtypevals               rC   Ú
vec_createrY   M   s§  € ô �&œ#ÔÜ˜Ô!7Ó8ˆÜ˜W f¨dÓ3€FØÐÜ" 7¨H°dÓ;‰àˆà—‘€IÜ#×'Ñ'¨	Ó2€HØÐÜØˆj˜ÐØ�XÐØØØÜ Øô
ˆð �{‰{˜4Ó Ð ä1°'¸9ÀdÓKÑ€GˆX�uØÐä�gœwÔ'Ø‰Gô Ô1Ó2ˆGØ�K‰Kœ˜w¨Ó0Ô1ÙØ!Ÿ+™+ÜÔ,¨g´w¸qÔBTÓ7UÔW\×W_ÑW_Ó`ó�ð �AŠ:ÜØØ˜ 7Ð+ØØØÜ$ØôˆDð —;‘;˜tÓ$Ð$äØ$Ø˜ 7¬G°EÔ;KÓ,LÐMØØØÜ$ØôˆDð —;‘;˜tÓ$Ð$à+Ð# eÑ+Ó+ˆ5rE   c               óì  — t        |t        «      rt        |t        «      }t	        | ||«      }|j
                  }| j                  |||«      }t        | ||||¬«      }t        | |«      }t        |«      }	| j                  || j                  ||	«      «      }
| j                  ||
t        |	t        «      d¬«      }t        | |j                  ||«       |j                  «        | j!                  |g|«       |S )z5Create vec with items initialized to the given value.rF   F©Úsigned)r<   rK   r   r$   rD   rL   r>   rY   Ú	vec_itemsÚ	step_sizeÚint_addÚint_mulÚ	begin_forÚvec_set_mem_itemÚindexÚfinishÚ
keep_alive)r?   rQ   rR   ÚinitrA   rG   rL   ÚvecÚitems_startÚstepÚ	items_endÚfor_loops               rC   Úvec_create_initializedrl   “   sâ   € ô �&œ#ÔÜ˜Ô!7Ó8ˆÜ˜W f¨dÓ3€Fà—‘€IØ�>‰>˜$ 	¨4Ó0€DÜ
�W˜e V¨T¸HÔ
E€Cä˜G SÓ)€KÜ�YÓ€DØ—‘ ¨W¯_©_¸VÀTÓ-JÓK€Ià× Ñ Ø�Y¤¨Ô.DÓ EÈeð !ó €Hô �W˜hŸn™n¨i¸Ô>Ø‡O�OÔà×Ñ˜�u˜dÔ#Ø€JrE   c               óò   — t        | |t        |«      ||¬«      }t        | |«      }|j                  }t	        |«      }|D ]"  }	t        | |||	«       | j                  ||«      }Œ$ | j                  |g|«       |S )NrF   )rY   Úlenr]   rL   r^   rb   r_   re   )
r?   rQ   ÚvaluesrA   rG   rg   ÚptrrL   ri   r=   s
             rC   Úvec_create_from_valuesrq   ³   s   € ô �W˜e¤S¨£[°$ÀÔ
J€CÜ
�G˜SÓ
!€CØ—‘€IÜ�YÓ€DØò )ˆÜ˜ # y°%Ô8Ø�o‰o˜c 4Ó(‰ð)ð ×Ñ˜�u˜dÔ#Ø€JrE   c                óx   — t        | t        «      r| j                  S t        | t        «      r	t        dz  S t        S ©Nr8   )r<   r   Úsizer!   r   )rL   s    rC   r^   r^   Æ   s1   € Ü�)œZÔ(Ø�~‰~ÐÜ	�IœtÔ	$Ü˜qÑ Ð äÐrE   r8   r   ÚVEC_TYPE_INFO_I64c                óô  — t        |t        «      r+|j                  r| j                  |j                  |«      ddfS t        |t
        «      r| j                  |j                  «      ddfS |t        v rt        t        |   t        «      ddfS t        |t        «      r(t        |«      }|€J ‚t        | ||«      \  }}}|�|ddfS yt        |t        «      r%t        | |j                  |«      \  }}}|�|||dz   fS y)NFr   TrJ   )NFr   )r<   r   Úis_refcountedÚload_builtinÚnamer   Úload_native_type_objectr3   r   r%   r    r/   rO   r!   rL   )r?   ÚtyprA   Únon_optrX   Ú_rV   rW   s           rC   rO   rO   Ò   s	  € ô �#”zÔ" s×'8Ò'8Ø×#Ñ# C§H¡H¨dÓ3°U¸AÐ=Ð=Ü	�CœÔ	#Ø×.Ñ.¨s¯x©xÓ8¸%ÀÐBÐBØ	Ô"Ñ	"ÜÔ)¨#Ñ.Ô0CÓDÀeÈQÐNÐNÜ	�CœÔ	 Ü% cÓ*ˆØÐ"Ð"Ð"Ü*¨7°G¸TÓB‰ˆ��AØÐØ˜D !Ð#Ð#ð
 ô	 
�CœÔ	Ü#5°g¸s¿}¹}ÈdÓ#SÑ ˆ�˜5ØÐØ˜H e¨a¡iÐ/Ð/ØrE   c                óX   — t        | |«      }t        r| j                  |t        d«      S |S )zReturn len(<vec>) as i64.éÿÿÿÿ)Úvec_len_nativer   r>   r'   )r?   ÚvalÚlen_vals      rC   Úvec_lenrƒ   è   s*   € ä˜W cÓ*€GÝØ�~‰~˜gÔ'7¸Ó<Ð<Ø€NrE   c                ó&   — | j                  |d«      S )z;Return len(<vec>) as platform integer type (32-bit/64-bit).rn   ©Úget_element)r?   r�   s     rC   r€   r€   ð   s   € à×Ñ˜s EÓ*Ð*rE   c                ó&   — | j                  |d«      S )zrReturn pointer to first item in vec.

    The items field points directly to the first element in the buffer.
    Úitemsr…   )r?   Úvecobjs     rC   r]   r]   õ   s   € ð
 ×Ñ˜v wÓ/Ð/rE   c                óT  — t        | |«      }t        |j                  t        «      sJ ‚|j                  j                  }t        |t
        «      r|j                  }n*t        |t        «      r
dt        z  }nt        j                  }| j                  ||«      }| j                  ||«      S rs   )r]   r<   r;   r!   rL   r   rt   r   r.   r`   r_   )r?   r‰   rc   Ú
items_addrrL   Ú	item_sizeÚdeltas          rC   Úvec_item_ptrrŽ   ý   s„   € Ü˜7 FÓ+€JÜ�f—k‘k¤4Ô(Ð(Ð(à—‘×%Ñ%€IÜ�)œZÔ(Ø—N‘N‰	Ü	�IœtÔ	$ØœÑ%‰	ä%×*Ñ*ˆ	Ø�O‰O˜E 9Ó-€EØ�?‰?˜: uÓ-Ð-rE   F©Ú
can_borrowc               ó*   — | j                  |||¬«      S )zILoad a vec item from storage, converting nested vec slots to RVec values.©Úborrow)Úload_mem)r?   rp   rL   r�   s       rC   Úvec_load_mem_itemr•     s   € ð ×Ñ˜C °:ÐÓ>Ð>rE   c                ó*   — | j                  |||«       y)zAStore a vec item, converting RVec values to nested storage items.N)Úset_mem)r?   rp   rL   Úitems       rC   rb   rb     s   € ð ‡O�O�C˜ DÕ)rE   c                ó˜  — t        t        «      }| j                  |t        |«      }| j                  |t        |«      }t        «       t        «       t        «       }}}t        «       t        «       }	}| j	                  ||t
        j                  |«      }
| j                  |
||«       | j                  |«       | j                  ||«      }| j	                  ||t
        j                  |«      }| j                  |||	«       | j                  |	«       | j                  t        t        j                  d |«      «       | j                  t        «       «       | j                  |«       | j                  ||«       | j                  |«       | j                  |«       | j                  ||«       | j                  |«       | j                  |«       |S ©N)r   r'   r>   r   Úcomparison_opr   ÚULTÚadd_bool_branchÚactivate_blockr_   rN   r   ÚINDEX_ERRORr   ÚassignÚgoto)r?   Úlenvrc   rA   ÚrÚokÚok2Úok3ÚfailÚfail2Úis_lessÚxÚis_less2s                rC   Úvec_check_and_adjust_indexr¬     sk  € ô 	Ô!Ó"€AØ�N‰N˜5Ô"2°DÓ9€EØ�>‰>˜$Ô 0°$Ó7€DÜ“<¤£¬z«|ˆSˆ€BÜ“,¤
£ˆ%€DØ×#Ñ# E¨4´×1AÑ1AÀ4ÓH€GØ×Ñ˜G S¨$Ô/Ø×Ñ˜4Ô à�‰˜˜tÓ$€AØ×$Ñ$ Q¨¬l×.>Ñ.>ÀÓE€HØ×Ñ˜H b¨%Ô0à×Ñ˜5Ô!à‡K�KÔ"Ô#5×#AÑ#AÀ4ÈÓNÔOØ‡K�K”“Ôà×Ñ˜2ÔØ‡N�N�1�aÔØ‡L�L�Ôà×Ñ˜3ÔØ‡N�N�1�eÔØ‡L�L�Ôà×Ñ˜3ÔØ€HrE   c               óV   — t        | |«      }t        | |||«      }t        | ||||¬«      S )zàGenerate inlined vec __getitem__ call.

    We inline the length and bounds check, since they are simple but
    performance-critical. The actual item load is emitted as a generic primitive
    op that is lowered later.
    r�   )rƒ   r¬   Úvec_get_item_unsafe)r?   Úbaserc   rA   r�   r‚   s         rC   Úvec_get_itemr°   ;  s3   € ô �g˜tÓ$€GÜ& w°¸ÀÓE€EÜ˜w¨¨e°TÀjÔQÐQrE   c               ó°   — t        |j                  t        «      sJ ‚|rt        }nt        }| j                  |||g||j                  j                  g¬«      S )zŒGet vec item, assuming index is non-negative and within bounds.

    This emits a generic primitive op that is inlined during lowering.
    )Ú	type_args)r<   r;   r!   r4   r5   Úprimitive_oprL   )r?   r¯   rc   rA   r�   Údescs         rC   r®   r®   J  sP   € ô �d—i‘i¤Ô&Ð&Ð&ÙÜ,‰ä%ˆØ×Ñ  t¨U m°TÀdÇiÁi×FYÑFYÐEZÐÓ[Ð[rE   c               óè   — t        |j                  t        «      sJ ‚t        | ||«      }|j                  }t	        | ||«      }t        | ||j                  |¬«      }| j                  |t        «       |S )z6Generate the low-level IR for an unsafe vec item load.r�   )	r<   r;   r!   rD   rŽ   r•   rL   Úadd_keep_aliver   )r?   r¯   rc   rA   r�   rQ   Ú	item_addrÚresults           rC   Úvec_get_item_unsafe_lowerr¹   Y  sg   € ô �d—i‘i¤Ô&Ð&Ð&Ü˜G U¨DÓ1€EØ�I‰I€EÜ˜W d¨EÓ2€IÜ˜w¨	°5·?±?ÈzÔZ€FØ×Ñ˜4Ô!7Ô8Ø€MrE   c                óº  — t        |j                  t        «      sJ ‚|j                  }t        | |«      }t	        | |||«      }| j                  |t        |«      }t        | ||«      }|j                  }| j                  |||«      }|j                  r)t        | ||d¬«      }	| j                  t        |	«      «       t        | |||«       | j                  |g|«       y )NTr�   )r<   r;   r!   rƒ   r¬   r>   r$   rŽ   rL   rw   r•   rN   r   rb   re   )
r?   r¯   rc   r˜   rA   rQ   r‚   r·   rL   Úold_items
             rC   Úvec_set_itemr¼   f  sÅ   € ô �d—i‘i¤Ô&Ð&Ð&Ø�I‰I€EÜ�g˜tÓ$€GÜ& w°¸ÀÓE€EØ�N‰N˜5Ô"8¸$Ó?€EÜ˜W d¨EÓ2€IØ—‘€IØ�>‰>˜$ 	¨4Ó0€DØ×Òô % W¨i¸ÈtÔTˆØ�‰”F˜8Ó$Ô%Ü�W˜i¨°DÔ9Ø×Ñ˜�v˜tÕ$rE   c                ó  — t        |j                  t        «      sJ ‚t        | ||«      }|j                  }t	        | ||«      }|j
                  }| j                  |||«      }t        | |||«       | j                  |g|«       y rš   )	r<   r;   r!   rD   rŽ   rL   r>   rb   re   )r?   r¯   rc   r˜   rA   rQ   r·   rL   s           rC   Úvec_init_item_unsafer¾   z  sx   € ô �d—i‘i¤Ô&Ð&Ð&Ü˜G U¨DÓ1€EØ�I‰I€EÜ˜W d¨EÓ2€IØ—‘€IØ�>‰>˜$ 	¨4Ó0€DÜ�W˜i¨°DÔ9Ø×Ñ˜�v˜tÕ$rE   c                óø   — | j                  t        |d«      «      }| j                  t        |d«      «      }| j                  t        t        t        «      d|«      «      }| j                  t        |d|«      «      S )Nrn   rˆ   )rN   r   r   r   r"   )r?   r˜   rƒ   r]   Útemps        rC   Úconvert_to_t_ext_itemrÁ   ‡  sa   € Ø�k‰kœ* T¨5Ó1Ó2€GØ—‘œJ t¨WÓ5Ó6€IØ�;‰;”z¤%Ô(8Ó"9¸5À'ÓJÓK€DØ�;‰;”z $¨°Ó;Ó<Ð<rE   c                óð   — | j                  t        |d«      «      }| j                  t        |d«      «      }| j                  t        t        |«      d|«      «      }| j                  t        |d|«      «      S )zBConvert an owned VecNestedBufItem to the corresponding RVec value.rn   rˆ   )rN   r   r   r   )r?   r˜   Úvec_typerƒ   r]   rÀ   s         rC   Úconvert_from_t_ext_itemrÄ   Ž  s_   € à�k‰kœ* T¨5Ó1Ó2€GØ—‘œJ t¨WÓ5Ó6€IØ�;‰;”z¤%¨£/°5¸'ÓBÓC€DØ�;‰;”z $¨°Ó;Ó<Ð<rE   c           
     ó&  — t        | ||«      \  }}}|€J ‚t        |t        «      r|S t        t        «      }| j                  t        ||«      «       |r=| j                  t        t        |t        dt        «      t        j                  «      «      }|S )NrJ   )	rO   r<   r   r   r0   rN   r
   r   rP   )r?   rL   rA   rU   rV   rW   rX   s          rC   Úvec_item_typerÆ   –  sˆ   € Ü1°'¸9ÀdÓKÑ€GˆX�uØÐÐÐÜ�'œ7Ô#Øˆô
 Ô-Ó.ˆØ�‰”F˜7 GÓ,Ô-ÙØ—k‘kÜÔ(¨'´7¸1Ô>PÓ3QÔSX×S[ÑS[Ó\óˆGð ˆrE   c                óÖ  — |j                   }t        |t        «      sJ ‚|j                  }| j	                  |||«      }g }t        j                  |«      }|�|› d�}	n2|j                  «       dk(  rd}	t        | ||«      g}nt        | |«      }d}	| j                  t        |	||g|z   |ddg|rdgng z   dt        |¬«      «      }
|j                  «       dkD  r| j                  |g|«       |
S )Nz.appendr   zVecTApi.appendzVecNestedApi.appendTF©ÚstealsÚis_borrowedrI   rA   )r;   r<   r!   rL   r>   r2   rM   rW   rÆ   rÁ   rN   r   r	   re   )r?   rg   r˜   rA   rÃ   rL   Úcoerced_itemÚitem_type_argrS   ry   rT   s              rC   Ú
vec_appendrÍ   ¨  s  € Ø�x‰x€HÜ�h¤Ô%Ð%Ð%Ø×"Ñ"€IØ—>‘> $¨	°4Ó8€LØ€MÜ#×'Ñ'¨	Ó2€HØÐØ�˜7Ð#‰Ø	�‰Ó	˜QÒ	ØˆÜ& w°	¸4Ó@ÐA‰ä,¨W°lÓCˆØ$ˆØ�;‰;ÜØØ�,Ð -Ñ/ØØ˜%�=©} U¡GÀ"ÑEØÜ Øô	
ó
€Dð ‡~�~Ó˜!ÒØ×Ñ˜D˜6 4Ô(Ø€KrE   c                óæ  — |j                   }t        |t        «      sJ ‚|j                  }t        |j                   t        «      r|j                   |k(  rd}|}nd}| j	                  |t
        |«      }g }t        j                  |«      }	|	�|	› d|› �}
n,|j                  «       dk(  rd|› �}
t        | ||«      g}nd|› �}
| j                  t        |
||g|z   |ddg|rdgng z   dt        |¬	«      «      S )
NÚ_vecÚ z.extendr   zVecTApi.extendzVecNestedApi.extendTFrÈ   )r;   r<   r!   rL   r>   r.   r2   rM   rW   rÆ   rN   r   r	   )r?   rg   ÚiterablerA   rÃ   rL   ÚsuffixÚsrcrÌ   rS   ry   s              rC   Ú
vec_extendrÔ   Ç  s
  € Ø�x‰x€HÜ�h¤Ô%Ð%Ð%Ø×"Ñ"€IÜ�(—-‘-¤Ô&¨8¯=©=¸HÒ+DØˆØ‰àˆØ�n‰n˜XÔ'8¸$Ó?ˆØ!#€MÜ#×'Ñ'¨	Ó2€HØÐØ�˜7 6 (Ð+‰Ø	�‰Ó	˜QÒ	Ø ˜xÐ(ˆÜ& w°	¸4Ó@ÐA‰à$ V HÐ-ˆØ�;‰;ÜØØ�#ˆJ˜Ñ&ØØ˜%�=©} U¡GÀ"ÑEØÜ Øô	
ó
ð 
rE   c                ó6  — t        |j                  t        «      sJ ‚|j                  }|j                  }t	        | ||«      }t        j                  |«      }|�|› d�}n|j                  «       dk(  rd}nd}t        }| j                  t        |||gt        ||g«      ddgdt        |¬«      «      }|j                  «       dkD  rÕ|}	| j                  t        |dd¬«      «      }
| j                  t        |
«      «      }
| j                  t        |d	d¬«      «      }| j                  t        |«      «      }t        |j                  t        «      sJ ‚t        | ||j                  «      }| j                  t!        |
|g|«      «      }| j#                  |	g|d¬
«       |S )Nz.popr   zVecTApi.popzVecNestedApi.popTFrÈ   r’   rJ   )Ústeal)r<   r;   r!   rL   rD   r2   rM   rW   r"   rN   r   r   r	   r   r   rÄ   r   re   )r?   r¯   rc   rA   rÃ   rL   rS   ry   r¸   Úorigrª   ÚyÚzs                rC   Úvec_poprÚ   ç  s|  € Ü�d—i‘i¤Ô&Ð&Ð&Ø�y‰y€HØ×"Ñ"€IÜ˜G U¨DÓ1€Eä#×'Ñ'¨	Ó2€HØÐØ�˜4Ð ‰Ø	�‰Ó	˜QÒ	Ø‰à!ˆä$ˆ	Ø�[‰[ÜØØ�5ˆMÜ�H˜iÐ(Ó)Ø˜%�=ØÜ Øô	
ó
€Fð ‡~�~Ó˜!ÒØˆØ�K‰Kœ ¨°4Ô8Ó9ˆØ�K‰Kœ ›Ó$ˆØ�K‰Kœ ¨°4Ô8Ó9ˆØ�K‰Kœ ›Ó$ˆÜ˜(×,Ñ,¬dÔ3Ð3Ð3Ü# G¨Q°×0BÑ0BÓCˆØ—‘œX q¨! f¨dÓ3Ó4ˆØ×Ñ˜D˜6 4¨tÐÔ4Ø€MrE   c                ó¤  — t        |j                  t        «      sJ ‚|j                  }|j                  }| j	                  |||«      }|t
        v rt
        |   › d�}n$|j                  «       dk(  rd}nt        | |«      }d}| j                  t        |||g|ddgdt        |¬«      «      }|j                  «       dkD  r| j                  |g|«       |S )Nz.remover   zVecTApi.removezVecNestedApi.removeTFrÈ   )r<   r;   r!   rL   r>   r2   rW   rÁ   rN   r   r	   re   )	r?   rg   r˜   rA   rÃ   rL   rË   ry   rT   s	            rC   Ú
vec_removerÜ     sØ   € Ü�c—h‘h¤Ô%Ð%Ð%Ø�x‰x€HØ×"Ñ"€IØ—>‘> $¨	°4Ó8€LàÔ(Ñ(Ü& yÑ1Ð2°'Ð:‰Ø	�‰Ó	˜QÒ	Ø‰ä,¨W°lÓCˆØ$ˆØ�;‰;ÜØØ�,ÐØØ˜%�=ØÜ Øô	
ó
€Dð ‡~�~Ó˜!ÒØ×Ñ˜D˜6 4Ô(Ø€KrE   c                ó¼  — t        |j                  t        «      sJ ‚|j                  }|j                  }| j	                  |||«      }t        |«      }t        | |«      }t        | |«      }| j                  || j                  ||«      «      }	t        «       t        «       }}
| j                  ||	t        |t        «      d¬«      }t        | |j                  |d¬«      }| j!                  ||d|«      }t        «       }| j#                  t%        ||
|t$        j&                  «      «       | j)                  |«       |j+                  «        | j-                  |g|«       t/        t0        «      }| j3                  |t        dt0        «      «       | j5                  |«       | j)                  |
«       | j3                  |t        dt0        «      «       | j7                  |«       |S )NFr[   Tr�   z==r   rJ   )r<   r;   r!   rL   r>   r^   r€   r]   r_   r`   r   ra   r   r$   r•   rc   Ú	binary_oprN   r   ÚBOOLrž   rd   re   r   r#   r    r¡   Úgoto_and_activate)r?   rg   ÚtargetrA   rÃ   rL   ri   r‚   rh   rj   ÚtrueÚendrk   r˜   ÚcompÚfalseÚress                    rC   Úvec_containsrç   +  s…  € Ü�c—h‘h¤Ô%Ð%Ð%Ø�x‰x€HØ×"Ñ"€IØ�^‰^˜F I¨tÓ4€Fä�YÓ€DÜ˜W cÓ*€GÜ˜G SÓ)€KØ—‘ ¨W¯_©_¸WÀdÓ-KÓL€Iä“œj›lˆ#€Dà× Ñ Ø�Y¤¨Ô.DÓ EÈeð !ó €Hô ˜W h§n¡n°iÈDÔQ€DØ×Ñ˜T 6¨4°Ó6€DÜ‹L€EØ‡K�K”�t˜T 5¬&¯+©+Ó6Ô7Ø×Ñ˜5Ô!Ø‡O�OÔà×Ñ˜�u˜dÔ#ä
”?Ó
#€CØ‡N�N�3œ ¤?Ó3Ô4Ø‡L�L�ÔØ×Ñ˜4Ô Ø‡N�N�3œ ¤?Ó3Ô4Ø×Ñ˜cÔ"Ø€JrE   c           	     óˆ  — t        |j                  t        «      sJ ‚|j                  }|j                  }| j	                  |t
        |«      }| j	                  |t
        |«      }t        j                  |«      }|�|› d�}n|j                  «       dk(  rd}nd}t        ||||g|g d¢dt        |¬«      }	| j                  |	«      S )Nz.slicer   zVecTApi.slicezVecNestedApi.slice)FFFFrÈ   )r<   r;   r!   rL   r>   r'   r2   rM   rW   r   r	   rN   )
r?   rg   Úbeginrã   rA   rÃ   rL   rS   ry   rT   s
             rC   Ú	vec_slicerê   M  sÄ   € ô �c—h‘h¤Ô%Ð%Ð%Ø�x‰x€HØ×"Ñ"€IØ�N‰N˜5Ô"2°DÓ9€EØ
�.‰.˜Ô.°Ó
5€CÜ#×'Ñ'¨	Ó2€HØÐØ�˜6Ð"‰Ø	�‰Ó	˜QÒ	Ø‰à#ˆÜØØ	ˆe�SÐØÚ$ØÜØô€Dð �;‰;�tÓÐrE   c                ó(   — t        | ||dt        «      S )NÚto_list)Ú_vec_to_sequencer-   ©r?   rg   rA   s      rC   Úvec_to_listrï   h  s   € Ü˜G S¨$°	¼?ÓKÐKrE   c                ó(   — t        | ||dt        «      S )NÚto_tuple)rí   r1   rî   s      rC   Úvec_to_tuplerò   l  s   € Ü˜G S¨$°
Ô<LÓMÐMrE   c                ón   — t        j                  | j                  «      d uxs | j                  «       dk(  S )Nr   )r2   rM   rL   rW   )rÃ   s    rC   Úsupports_vec_to_sequencerô   p  s0   € Ü×#Ñ# H×$6Ñ$6Ó7¸tÐCÒ\ÀxÇ~Á~ÓGWÐ[\ÑG\Ð\rE   c                ó  — |j                   }t        |t        «      sJ ‚|j                  }t	        j
                  |«      }|�|› d|› �}nt        |«      rd|› �}ny | j                  t        ||g|dgdt        |¬«      «      S )Nú.zVecTApi.TFrÈ   )
r;   r<   r!   rL   r2   rM   rô   rN   r   r	   )	r?   rg   rA   ÚmethodÚresult_typerÃ   rL   rS   ry   s	            rC   rí   rí   t  s—   € ð �x‰x€HÜ�h¤Ô%Ð%Ð%Ø×"Ñ"€IÜ#×'Ñ'¨	Ó2€HØÐØ�˜1˜V˜HÐ%‰Ü	! (Ô	+Ø˜&˜Ð"‰àØ�;‰;ÜØØˆEØØ�6ØÜ Øô	
ó
ð 
rE   )r?   r6   r@   r   rA   rK   Úreturnr   )r?   r6   rQ   r!   rR   úint | ValuerA   rK   rG   úValue | Nonerù   r   )r?   r6   rQ   r!   rR   rú   rf   r   rA   rK   rG   rû   rù   r   )r?   r6   rQ   r!   ro   zlist[Value]rA   rK   rG   rû   rù   r   )rL   r   rù   rK   )r?   r6   r{   r   rA   rK   rù   ztuple[Value | None, bool, int])r?   r6   r�   r   rù   r   )r?   r6   r‰   r   rù   r   )r?   r6   r‰   r   rc   r   rù   r   )
r?   r6   rp   r   rL   r   r�   Úboolrù   r   )
r?   r6   rp   r   rL   r   r˜   r   rù   ÚNone)
r?   r6   r¢   r   rc   r   rA   rK   rù   r   )r?   r6   r¯   r   rc   r   rA   rK   r�   rü   rù   r   )r?   r6   r¯   r   rc   r   r˜   r   rA   rK   rù   rý   )r?   r6   r˜   r   rù   r   )r?   r6   r˜   r   rÃ   r!   rù   r   )r?   r6   rL   r   rA   rK   rù   r   )
r?   r6   rg   r   r˜   r   rA   rK   rù   r   )
r?   r6   rg   r   rÑ   r   rA   rK   rù   r   )
r?   r6   r¯   r   rc   r   rA   rK   rù   r   )
r?   r6   rg   r   rá   r   rA   rK   rù   r   )r?   r6   rg   r   ré   r   rã   r   rA   rK   rù   r   )r?   r6   rg   r   rA   rK   rù   rû   )rÃ   r!   rù   rü   )r?   r6   rg   r   rA   rK   r÷   Ústrrø   r   rù   rû   )]Ú__doc__Ú
__future__r   Útypingr   r   Úmypyc.commonr   r   r   Úmypyc.ir.opsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úmypyc.ir.rtypesr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   Úmypyc.primitives.librt_vecs_opsr4   r5   Úmypyc.irbuild.ll_builderr6   rD   rY   rl   rq   r^   ru   Ú__annotations__rO   rƒ   r€   r]   rŽ   r•   rb   r¬   r°   r®   r¹   r¼   r¾   rÁ   rÄ   rÆ   rÍ   rÔ   rÚ   rÜ   rç   rê   rï   rò   rô   rí   © rE   rC   ú<module>r	     sì  ðÚ /å "ç 'ç RÑ R÷÷ ÷ ÷ ÷ ñ ÷*÷ ÷ ÷ ÷ ÷ ó ÷4 báÝ:ó;ð, "ñC,ØðC,àðC,ð ðC,ð ð	C,ð ðC,ð óC,ðZ "ñØðàðð ðð ð	ð
 ðð ðð óðL "ñØðàðð ðð ð	ð ðð óó&ð Ð �5Ó ðØðØ%*ðØ25ðà#óó,ó+ó
0ó.ð  UZñ?Øð?Ø%*ð?Ø7<ð?ØMQð?à
ó?ð*Øð*Ø%*ð*Ø7<ð*ØDIð*à	ó*ðØðØ&+ðØ49ðØADðà
óðD ]bñRØðRØ&+ðRØ49ðRØADðRØUYðRà
óRð  ]bñ\Øð\Ø&+ð\Ø49ð\ØADð\ØUYð\à
ó\ð  ]bñ
Øð
Ø&+ð
Ø49ð
ØADð
ØUYð
à
ó
ð%Øð%Ø&+ð%Ø49ð%ØAFð%ØNQð%à	ó%ð(
%Øð
%Ø&+ð
%Ø49ð
%ØAFð
%ØNQð
%à	ó
%ó=ó=óó$ó>ó@$óNó:ðDØðØ%*ðØ38ðØ?DðØLOðà
óó6LóNó]ðØðØ%*ðØ25ðØ?BðØQVðàôrE   