ó
    „ñ:ižß  ã                   ó,
  • S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
JrJr  SSKJrJrJrJrJrJrJrJrJr  SSKJr  SSKJr  SS	KJrJr  SS
KJrJ r J!r!  S r"S r#Sr$Sr%Sr&Sr'Sr(Sr)S r*\!S 5       r+S r,S r-S r.S r/\R`                  " SS5      r1 " S S\25      r3 " S S\25      r4 " S S \25      r5S! r6\" \75      S" 5       r8\" \7\
Rr                  5      S# 5       r:\" \;\
Rx                  5      S$ 5       r=\" \R|                  \
Rx                  \
R~                  5      S% 5       r@\" S&\
Rx                  5      S' 5       rA\" S(\
R„                  5      \" \R†                  5      S) 5       5       rD\" S*\
Rx                  \
R~                  5      S+ 5       rE\!S, 5       rF\ " \
Rx                  S-5      S. 5       rG\!S/ 5       rH\ " \
Rx                  S05      S1 5       rI\!S2 5       rJ\ " \
Rx                  S35      S4 5       rK\!S5 5       rL\ " \
Rx                  S65      S7 5       rM\!S8 5       rN\ " \
Rx                  S95      S: 5       rOS; rP\!S< 5       rQ\ " \
Rx                  S=5      S> 5       rRS? rS\!S@ 5       rT\ " \
Rx                  SA5      SB 5       rUSC rV\!SD 5       rW\ " \
Rx                  SE5      SF 5       rX\" SG\
Rx                  \
Rr                  5      SH 5       rYSI rZ\R¶                  \S4\R¸                  \Y4\Rº                  \P4\R¼                  \V44 H  u  r_r`\Z" \_\`5        M     \" \RÂ                  5      \ " \
Rx                  SJ5      SK 5       5       rb\" \RÆ                  5      \ " \
Rx                  SL5      SM 5       5       rd\" \RÊ                  5      \ " \
Rx                  SN5      SO 5       5       rf\" \RÎ                  5      \ " \
Rx                  SP5      SQ 5       5       rh\!SR 5       ri\ " \
Rx                  SS5      ST 5       rj\!SU 5       rk\" \RØ                  5      \ " \
Rx                  SV5      SW 5       5       rm\" \RÜ                  5      \ " \
Rx                  SX5      SY 5       5       ro\!SZ 5       rp\" \Râ                  5      S[ 5       rr\" \Ræ                  5      S\ 5       rt\!S] 5       ru\" \Rì                  5      S^ 5       rw\" \Rð                  5      S_ 5       ry\" \Rô                  \
Rx                  \
Rx                  5      S` 5       r{\" \
Rx                  \
Rx                  5      Sa 5       r|g)bz&
Support for native homogeneous sets.
é    N)Úcached_property)Úir)ÚtypesÚtypingÚcgutils)	Úlower_builtinÚ
lower_castÚiternext_implÚimpl_ret_borrowedÚimpl_ret_new_refÚimpl_ret_untrackedÚfor_iterÚcall_lenÚRefType)Ú	quicksort)Úslicing)ÚNumbaValueErrorÚTypingError)ÚoverloadÚoverload_methodÚ	intrinsicc                 ó®   • [         R                  " U5      nU R                  U5      R                  5       nUR	                  X55      nU R                  XUS9$ )zl
Given a set value and type, get its payload structure (as a
reference, so that mutations are seen by all).
©Úref)r   Ú
SetPayloadÚget_data_typeÚ
as_pointerÚbitcastÚmake_data_helper)ÚcontextÚbuilderÚset_typeÚptrÚpayload_typeÚptrtyÚpayloads          ÚW/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/cpython/setobj.pyÚget_payload_structr(      sQ   € ô
 ×#Ò# HÓ-€LØ×!Ñ! ,Ó/×:Ñ:Ó<€EØ�o‰o˜cÓ)€GØ×#Ñ# G¸wÐ#ÐGÐGó    c                 ón   • U R                  [        R                  " U5      5      nU R                  U5      $ )z/
Return the entry size for the given set type.
)r   r   ÚSetEntryÚget_abi_sizeof)r    r"   Úlltys      r'   Úget_entry_sizer.   #   s.   € ð × Ñ ¤§¢°Ó!9Ó:€DØ×!Ñ! $Ó'Ð'r)   éÿÿÿÿéþÿÿÿiÕÿÿÿé   é   Fc                 ó$  • U R                   nUR                  [        5      nUR                  XB40 5      nU R	                  XV5      nU" X45      n[        XU5      n	[        R                  " UR                  [        5      n
UR                  X˜U
5      $ )z&
Compute the hash of the given value.
)Útyping_contextÚresolve_value_typeÚhashÚget_call_typeÚget_functionÚis_hash_usedr   ÚConstantÚtypeÚFALLBACKÚselect)r    r!   ÚtypÚvalueÚ	typingctxÚfntyÚsigÚfnÚhÚis_okÚfallbacks              r'   Úget_hash_valuerG   ;   s€   € ð ×&Ñ&€IØ×'Ñ'¬Ó-€DØ
×
Ñ
˜Y¨°Ó
3€CØ	×	Ñ	˜dÓ	(€BÙ
ˆ7�HÓ€Aä˜¨1Ó-€EÜ�{Š{˜1Ÿ6™6¤8Ó,€HØ�>‰>˜% HÓ-Ð-r)   c                 óh   ^• U4S jnU R                  [        5      nUR                  U T40 5      nXB4$ )Nc                 ó$   >• [        XTUS   5      $ ©Nr   )rG   )r    r!   r>   Úargsr?   s       €r'   ÚimplÚ'_get_hash_value_intrinsic.<locals>.implL   s   ø€ Ü˜g°°t¸A±wÓ?Ð?r)   )r5   r6   r7   )r@   r?   rL   rA   rB   s    `   r'   Ú_get_hash_value_intrinsicrN   J   s7   ø€ õ@à×'Ñ'¬Ó-€DØ
×
Ñ
˜Y¨¨°"Ó
5€CØˆ9Ðr)   c                 óp   • [         R                  " UR                  [        5      nUR	                  SX#5      $ )z0
Whether the hash value denotes an empty entry.
ú==)r   r:   r;   ÚEMPTYÚicmp_unsigned)r    r!   rD   Úemptys       r'   Úis_hash_emptyrT   S   s+   € ô �KŠK˜Ÿ™¤Ó&€EØ× Ñ   qÓ0Ð0r)   c                 óp   • [         R                  " UR                  [        5      nUR	                  SX#5      $ )z1
Whether the hash value denotes a deleted entry.
rP   ©r   r:   r;   ÚDELETEDrR   ©r    r!   rD   Údeleteds       r'   Úis_hash_deletedrZ   Z   s+   € ô �kŠk˜!Ÿ&™&¤'Ó*€GØ× Ñ   qÓ2Ð2r)   c                 óp   • [         R                  " UR                  [        5      nUR	                  SX#5      $ )z1
Whether the hash value denotes an active entry.
Ú<rV   rX   s       r'   r9   r9   a   s+   € ô
 �kŠk˜!Ÿ&™&¤'Ó*€GØ× Ñ   aÓ1Ð1r)   c            	      ó6  • [        U  Vs/ s H  n[        U[        R                  5      PM     sn5      (       d  [	        SU  35      e[        U  Vs/ s H  o S   R
                  UR
                  :H  PM      sn5      (       d  [	        SU  35      eg s  snf s  snf )Nz All arguments must be Sets, got r   z'All Sets must be of the same type, got )ÚallÚ
isinstancer   ÚSetr   Údtype)rK   r>   Úss      r'   Úcheck_all_setrc   j   s…   € Ü±dÓ;²d¨s”
˜3¤§	¡	Ö*±dÑ;×<Ñ<ÜÐ<¸T¸FÐCÓDÐDä±$Ó7²$¨Q�Q‘—‘ §¡Ô(±$Ñ7×8Ñ8ÜÐCÀDÀ6ÐJÓKÐKð 9ùò <ùò 8s   Š$BÁ%BÚSetLoop©ÚindexÚentryÚdo_breakc                   óš  • \ rS rSrS r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r	\	R                  S 5       r	\S	 5       r
\
R                  S
 5       r
\S 5       r\R                  S 5       r\S 5       r\S 5       rS rSS jr\R"                  SS j5       r\R"                  S 5       rSrg)Ú_SetPayloadéu   c                 ó„   • [        XX45      nXl        X l        X0l        XPl        UR                  S5      U l        X@l        g )NÚentries)r(   Ú_contextÚ_builderÚ_tyÚ_payloadÚ_get_ptr_by_nameÚ_entriesÚ_ptr)Úselfr    r!   r"   r#   r&   s         r'   Ú__init__Ú_SetPayload.__init__w   s9   € Ü$ W°xÓEˆØŒØŒØŒØŒØ×0Ñ0°Ó;ˆŒØ�	r)   c                 ó.   • U R                   R                  $ ©N©rq   Úmask©ru   s    r'   r{   Ú_SetPayload.mask€   ó   € à�}‰}×!Ñ!Ð!r)   c                 ó$   • XR                   l        g ry   rz   ©ru   r?   s     r'   r{   r}   „   s   € ð #�‰Õr)   c                 ó.   • U R                   R                  $ ry   ©rq   Úusedr|   s    r'   rƒ   Ú_SetPayload.used‰   r~   r)   c                 ó$   • XR                   l        g ry   r‚   r€   s     r'   rƒ   r„   �   ó   € à"�‰Õr)   c                 ó.   • U R                   R                  $ ry   ©rq   Úfillr|   s    r'   r‰   Ú_SetPayload.fill‘   r~   r)   c                 ó$   • XR                   l        g ry   rˆ   r€   s     r'   r‰   rŠ   •   r†   r)   c                 ó.   • U R                   R                  $ ry   ©rq   Úfingerr|   s    r'   rŽ   Ú_SetPayload.finger™   s   € à�}‰}×#Ñ#Ð#r)   c                 ó$   • XR                   l        g ry   r�   r€   s     r'   rŽ   r�   �   s   € à$�‰Õr)   c                 ó.   • U R                   R                  $ ry   ©rq   Údirtyr|   s    r'   r“   Ú_SetPayload.dirty¡   s   € à�}‰}×"Ñ"Ð"r)   c                 ó$   • XR                   l        g ry   r’   r€   s     r'   r“   r”   ¥   s   € à#�‰Õr)   c                 ó   • U R                   $ )z.
A pointer to the start of the entries array.
)rs   r|   s    r'   rm   Ú_SetPayload.entries©   s   € ð
 �}‰}Ðr)   c                 ó   • U R                   $ )z3
A pointer to the start of the NRT-allocated area.
)rt   r|   s    r'   r#   Ú_SetPayload.ptr°   s   € ð
 �y‰yÐr)   c                 óä   • [         R                  " U R                  U R                  U5      nU R                  R                  U R                  [        R                  " U R                  5      US9nU$ )z
Get entry number *idx*.
r   )	r   Úgepro   rs   rn   r   r   r+   rp   )ru   ÚidxÚ	entry_ptrrg   s       r'   Ú	get_entryÚ_SetPayload.get_entry·   sW   € ô —K’K §¡¨t¯}©}¸cÓBˆ	Ø—‘×.Ñ.¨t¯}©}Ü/4¯~ª~¸d¿h¹hÓ/GØ3<ð /ð >ˆð ˆr)   c                 óü  ^ ^^^^^^^^^^• T R                   mT R                  mTR                  nT R                  nT R                  R
                  nTR                  nUR                  [        R                  5      nUR                  XvU40 5      n	TR                  X‰5      m[        R                  " US5      n
[        R                  " US5      n[        R                  " TT5      n[        R                  " TTR!                  TU5      5      nT(       a(  UR                  S5      m[        R                  " TT5      mTR#                  S5      nTR#                  S5      mTR#                  S5      mTR#                  S5      nUUUUUUUUUUU 4S jn[        R$                  " T[        R                  " U[&        5      5         TR)                  U5      nU" U5        TR+                  UU
5      nTR!                  UU5      nTR-                  UU5        S	S	S	5        TR/                  U5        TR1                  U5         TR)                  U5      nU" U5        TR)                  U5      nTR3                  UU5      nTR+                  U
TR5                  UU5      5      nTR!                  UTR+                  UU5      5      nTR-                  UU5        TR-                  UU5        TR/                  U5        S	S	S	5        TR1                  T5         T(       aX  TR)                  U5      nTR)                  T5      nTR7                  TR9                  S
UT5      UU5      nTR-                  UU5        TR/                  U5        S	S	S	5        TR1                  T5         TR/                  U5        S	S	S	5        TR;                  U5        TR=                  [        R>                  " S5      S5      nURA                  [        RB                  T5        URA                  [        RD                  T5        UTR)                  U5      4$ ! , (       d  f       GN.= f! , (       d  f       GN`= f! , (       d  f       Nç= f! , (       d  f       NÍ= f)a/  
Lookup the *item* with the given hash values in the entries.

Return a (found, entry index) tuple:
- If found is true, <entry index> points to the entry containing
  the item.
- If found is false, <entry index> points to the empty entry that
  the item can be written to (only if *for_insert* is true)
é   é   r/   zlookup.bodyzlookup.foundzlookup.not_foundz
lookup.endc                 óð  >• TR                  U 5      nUR                  nTR                  TR                  STU5      5         T	" TTUR                  45      nTR                  U5         TR                  T5        SSS5        SSS5        TR                  [        TTU5      5         TR                  T5        SSS5        T
(       al  TR                  [        TTU5      5         TR                  T5      nTR                  TR                  SUT5      X5      nTR                  UT5        SSS5        gg! , (       d  f       NÀ= f! , (       d  f       NÉ= f! , (       d  f       N¤= f! , (       d  f       g= f)z7
Check entry *i* against the value being searched for.
rP   N)rž   r6   Úif_thenrR   ÚkeyÚbranchrT   rZ   Úloadr=   Ústore)Úirg   Ú
entry_hashÚeqÚjÚbb_foundÚbb_not_foundr!   r    ÚeqfnÚ
for_insertÚ
free_indexÚfree_index_sentinelrD   Úitemru   s        €€€€€€€€€€€r'   Úcheck_entryÚ(_SetPayload._lookup.<locals>.check_entryé   s(  ø€ ð —N‘N 1Ó%ˆEØŸ™ˆJà—‘ ×!6Ñ!6°t¸QÀ
Ó!KÕLñ ˜' D¨%¯)©)Ð#4Ó5�Ø—_‘_ RÕ(Ø—N‘N 8Ô,÷ )÷	 Mð —‘¤¨w¸ÀÓ!LÕMØ—‘˜|Ô,÷ Nö à—_‘_¤_°W¸gÀzÓ%RÕSØŸ™ ZÓ0�AØŸ™ w×'<Ñ'<¸TÀ1ÐFYÓ'ZØ'(ó-�Aà—M‘M ! ZÔ0÷	 TÐSð ÷ )Õ(ú÷	 MÕLú÷ NÕMú÷
 TÕSús=   Á'EÁ(D4Á:EÂ&EÃ#AE'Ä4
E	Ä>EÅ
EÅ
E$Å'
E5NrP   Úfound)#rn   ro   r;   r{   rp   ra   r4   r5   Úoperatorr«   r7   r8   r   r:   r   Úalloca_once_valueÚand_Úappend_basic_blockÚ	for_rangeÚLINEAR_PROBESr§   Úaddr¨   r¦   Ú
goto_blockÚlshrÚmulr=   rR   Úposition_at_endÚphiÚIntTypeÚadd_incomingÚtrue_bitÚ	false_bit)ru   r³   rD   r°   Úintp_tr{   ra   ÚtyctxrA   rB   ÚoneÚfiveÚperturbrf   Úbb_bodyÚbb_endr´   r©   Úpr¬   r¶   r­   r®   r!   r    r¯   r±   r²   s   ````                 @@@@@@@r'   Ú_lookupÚ_SetPayload._lookupÁ   s~  ÿú€ ð —-‘-ˆØ—-‘-ˆà—‘ˆà�y‰yˆØ—‘—‘ˆØ×&Ñ&ˆØ×'Ñ'¬¯©Ó4ˆØ× Ñ  °¨¸Ó;ˆØ×#Ñ# DÓ.ˆä�kŠk˜& !Ó$ˆÜ�{Š{˜6 1Ó%ˆô ×+Ò+¨G°QÓ7ˆä×)Ò)¨'Ø*1¯,©,°q¸$Ó*?óAˆæà"&§)¡)¨B£-ÐÜ ×2Ò2°7Ð<OÓPˆJà×,Ñ,¨]Ó;ˆØ×-Ñ-¨nÓ=ˆØ×1Ñ1Ð2DÓEˆØ×+Ñ+¨LÓ9ˆ÷	1÷ 	1ô8 ×Ò˜w¬¯ª°F¼MÓ(JÕKØ—‘˜UÓ#ˆAÙ˜ŒNØ—‘˜A˜sÓ#ˆAØ—‘˜Q Ó%ˆAØ�M‰M˜!˜UÔ#÷ Lð 	�‰�wÔØ×Ñ Õ(Ø—‘˜UÓ#ˆAÙ˜ŒNð
 —‘˜WÓ%ˆAØ—‘˜Q Ó%ˆAØ—‘˜C §¡¨Q°Ó!5Ó6ˆAØ—‘˜T 7§;¡;¨q°!Ó#4Ó5ˆAØ�M‰M˜!˜UÔ#Ø�M‰M˜!˜WÔ%à�N‰N˜7Ô#÷ )ð  ×Ñ Õ-Þð —L‘L Ó'�Ø—L‘L Ó,�Ø—N‘N 7×#8Ñ#8¸¸qÐBUÓ#VØ#$ aó)�à—‘˜a Ô'Ø�N‰N˜6Ô"÷ .ð ×Ñ Õ)Ø�N‰N˜6Ô"÷ *ð 	×Ñ Ô'à—‘œBŸJšJ q›M¨7Ó3ˆØ×Ñœ7×+Ñ+¨XÔ6Ø×Ñœ7×,Ñ,¨lÔ;à�g—l‘l 5Ó)Ð)Ð)÷a LÖKú÷ )Ö(ú÷  .Õ-ú÷ *Õ)ús3   ÇAP8È;B6Q
Ì
A1QÎQ-Ð8
QÑ

QÑ
Q*Ñ-
Q;Nc              #   ó<  #   • U R                   nU R                  nUR                  [        R                  5      n[
        R                  " US5      nUR                  U R                  U5      n[        R                  " X6US9 nU R                  UR                  5      n[        X#UR                  5      n	UR                  U	5         [!        UR                  UUR"                  S9n
U
v •  SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f7f)z7
Iterate over the payload's entries.  Yield a SetLoop.
r¡   ©Ústartre   N)rn   ro   Úget_value_typer   Úintpr   r:   r½   r{   r   r»   rž   rf   r9   r6   r¤   rd   rh   )ru   rÓ   r    r!   rÇ   rÉ   ÚsizeÚ
range_looprg   Úis_usedÚloops              r'   Ú_iterateÚ_SetPayload._iterate7  sÓ   é € ð
 —-‘-ˆØ—-‘-ˆà×'Ñ'¬¯
©
Ó3ˆÜ�kŠk˜& !Ó$ˆØ�{‰{˜4Ÿ9™9 cÓ*ˆä×Ò˜w°EÒ:¸jØ—N‘N :×#3Ñ#3Ó4ˆEÜ" 7°U·Z±ZÓ@ˆGØ—‘ Õ)Ü Z×%5Ñ%5¸UØ(2×(;Ñ(;ñ=�à’
÷ *÷ ;Ð:÷ *Õ)ú÷ ;Õ:üs7   ‚B DÂADÃ$C:Ã)DÃ1	DÃ:
D	ÄDÄ
DÄDc              #   óV  #   • U R                   nU R                  nUR                  [        R                  5      n[
        R                  " US5      n[
        R                  " US5      nU R                  nUR                  S5      nUR                  S5      n[        R                  " X R                  5      n	UR                  U5        UR                  U5         UR                  U	5      n
UR                  XbR!                  X¥5      5      n
UR#                  X©5        U R%                  U
5      n['        XUR(                  5      nUR+                  XÈU5        SSS5        UR-                  U5        UR                  U	5      n
X l        U R%                  U
5      v •  g! , (       d  f       NJ= f7f)zs
Yield a random entry from the payload.  Caller must ensure the
set isn't empty, otherwise the function won't end.
r   r¡   Únext_entry_bodyÚnext_entry_endN)rn   ro   rÔ   r   rÕ   r   r:   r{   rº   r   r¸   rŽ   r¦   r¾   r§   r¹   r½   r¨   rž   r9   r6   ÚcbranchrÁ   )ru   r    r!   rÇ   ÚzerorÉ   r{   rÌ   rÍ   rf   r©   rg   rØ   s                r'   Ú_next_entryÚ_SetPayload._next_entryK  sF  é € ð —-‘-ˆØ—-‘-ˆà×'Ñ'¬¯
©
Ó3ˆÜ�{Š{˜6 1Ó%ˆÜ�kŠk˜& !Ó$ˆØ�y‰yˆð
 ×,Ñ,Ð->Ó?ˆØ×+Ñ+Ð,<Ó=ˆä×)Ò)¨'·;±;Ó?ˆØ�‰�wÔà×Ñ Õ(Ø—‘˜UÓ#ˆAà—‘˜T§;¡;¨qÓ#6Ó7ˆAØ�M‰M˜!Ô#Ø—N‘N 1Ó%ˆEÜ" 7°U·Z±ZÓ@ˆGØ�O‰O˜G¨WÔ5÷ )ð 	×Ñ Ô'ð �L‰L˜ÓˆØŒØ�n‰n˜QÓÓ÷ )Õ(üs    ‚CF)ÃA<FÅAF)Æ
F&Æ"F))ro   rn   rs   rq   rt   rp   rŽ   ©Fry   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rv   Úpropertyr{   Úsetterrƒ   r‰   rŽ   r“   rm   r#   rž   rÏ   Ú
contextlibÚcontextmanagerrÚ   rá   Ú__static_attributes__© r)   r'   rj   rj   u   sK  † òð ñ"ó ð"ð 
‡[�[ñ#ó ð#ð ñ"ó ð"ð 
‡[�[ñ#ó ð#ð ñ"ó ð"ð 
‡[�[ñ#ó ð#ð ñ$ó ð$ð ‡]�]ñ%ó ð%ð ñ#ó ð#ð ‡\�\ñ$ó ð$ð ñó ðð ñó ðòôt*ðl ×Ñóó ðð& ×Ññ% ó ó% r)   rj   c                   óª  • \ rS rSrS r\S 5       r\S 5       r\S 5       r\S 5       r	\S 5       r
\
R                  S 5       r
S	 rS
 rS-S jrS.S jrS.S jrS-S jrS-S jrS-S jrS rS rS rS rS rS rS rS rS rS/S jrS rS r\ S0S j5       r!\ S0S j5       r"\ S  5       r#\ S! 5       r$S" r%S# r&S$ r'S% r(S/S& jr)S' r*S( r+S) r,S* r-S+ r.S,r/g)1ÚSetInstanceit  c                 óv   • Xl         X l        X0l        [        X5      U l        UR                  X#U5      U l        g ry   )rn   ro   rp   r.   Ú
_entrysizeÚmake_helperÚ_set)ru   r    r!   r"   Úset_vals        r'   rv   ÚSetInstance.__init__v  s1   € ØŒØŒØŒÜ(¨Ó;ˆŒØ×'Ñ'¨¸7ÓCˆ�	r)   c                 ó.   • U R                   R                  $ ry   )rp   ra   r|   s    r'   ra   ÚSetInstance.dtype}  s   € à�x‰x�~‰~Ðr)   c                 ó¾   • U R                   nU R                  nU R                   R                  R                  X R                  5      n[        XU R                  U5      $ )z
The _SetPayload for this set.
)rn   ro   ÚnrtÚmeminfo_dataÚmeminforj   rp   )ru   r    r!   r#   s       r'   r&   ÚSetInstance.payload�  sG   € ð —-‘-ˆØ—-‘-ˆà�m‰m×Ñ×,Ñ,¨W·l±lÓCˆÜ˜7¨T¯X©X°sÓ;Ð;r)   c                 ó6   • U R                   R                  5       $ ry   )ró   Ú	_getvaluer|   s    r'   r?   ÚSetInstance.value�  s   € à�y‰y×"Ñ"Ó$Ð$r)   c                 ó.   • U R                   R                  $ ry   )ró   rû   r|   s    r'   rû   ÚSetInstance.meminfo‘  s   € à�y‰y× Ñ Ð r)   c                 ó.   • U R                   R                  $ ry   ©ró   Úparentr|   s    r'   r  ÚSetInstance.parent•  s   € à�y‰y×ÑÐr)   c                 ó$   • XR                   l        g ry   r  r€   s     r'   r  r  ™  s   € à �	‰	Õr)   c                 ó.   • U R                   R                  $ )z,
Return the number of elements in the size.
)r&   rƒ   r|   s    r'   Úget_sizeÚSetInstance.get_size�  s   € ð �|‰|× Ñ Ð r)   c                 ó¨   • U R                   R                  (       a7  U(       a  [        R                  O[        R                  U R
                  l        g g ry   )rp   Ú	reflectedr   rÅ   rÆ   r&   r“   ©ru   Úvals     r'   Ú	set_dirtyÚSetInstance.set_dirty£  s0   € Ø�8‰8××Þ58¤×!1Ò!1¼g×>OÑ>OˆD�L‰LÕð r)   c                 ó
  • U R                   nU R                  nUR                  nXBl        U R                  U5        X2l        UR
                  n	[        R                  " U	R                  S5      n
UR                  Xš5      =o‘l        UR                  [        XgU5      SS9   UR                  UR                  U
5      Ul        S S S 5        U(       a  U R                  U	5        U R                  S5        g ! , (       d  f       N8= f)Nr¡   T©Úlikely)rn   ro   r6   Úincref_valuer¥   rƒ   r   r:   r;   r½   r¤   rT   r‰   Úupsizer  )ru   r&   rg   r³   rD   Ú	do_resizer    r!   Úold_hashrƒ   rÉ   s              r'   Ú
_add_entryÚSetInstance._add_entry§  sÅ   € Ø—-‘-ˆØ—-‘-ˆà—:‘:ˆØŒ
Ø×Ñ˜$ÔØŒ	à�|‰|ˆÜ�kŠk˜$Ÿ)™) QÓ'ˆØ%Ÿk™k¨$Ó4Ð4ˆŒ|à�_‰_œ]¨7¸XÓFØ$(ð ò *à"Ÿ;™; w§|¡|°SÓ9ˆGŒL÷*ö Ø�K‰K˜ÔØ�‰�tÕ÷*õ *ús   Â "C4Ã4
Dc                 óÖ  • U R                   nU R                  nUR                  X#SS9u  p‰UR                  U5      n
UR	                  U
5         UR                  U	5      nUR                  nX;l        U(       a  U R                  U5        X+l        UR                  n[        R                  " UR                  S5      nUR                  XÞ5      =oÑl	        UR	                  [        XgU5      SS9   UR                  UR                  U5      Ul        S S S 5        U(       a  U R!                  U5        U R#                  S5        S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)NT©r°   r¡   r  )rn   ro   rÏ   Únot_r¤   rž   r6   r  r¥   rƒ   r   r:   r;   r½   rT   r‰   r  r  )ru   r&   r³   rD   r  Ú	do_increfr    r!   r¶   r©   Ú	not_foundrg   r  rƒ   rÉ   s                  r'   Ú_add_keyÚSetInstance._add_key¼  s  € Ø—-‘-ˆØ—-‘-ˆà—?‘? 4°t�?Ð<‰ˆØ—L‘L Ó'ˆ	à�_‰_˜YÕ'à×%Ñ% aÓ(ˆEØ—z‘zˆHØŒJÞØ×!Ñ! $Ô'ØŒIà—<‘<ˆDÜ—+’+˜dŸi™i¨Ó+ˆCØ")§+¡+¨dÓ"8Ð8ˆD”<à—‘¤¨wÀÓ!JØ(,ð !ò .à&Ÿ{™{¨7¯<©<¸Ó=�”÷.ö Ø—‘˜DÔ!Ø�N‰N˜4Ô ÷' (Ð'÷.õ .ú÷ (Õ'ús%   ÁB EÃ-"E	Ä1EÅ	
E	ÅEÅ
E(c                 óž  • [         R                  " UR                  R                  [        5      Ul        U(       a  U R                  UR                  5        UR                  n[         R                  " UR                  S5      nU R                  R                  XV5      =oQl        U(       a  U R                  U5        U R                  S5        g )Nr¡   T)r   r:   r6   r;   rW   Údecref_valuer¥   rƒ   ro   ÚsubÚdownsizer  )ru   r&   rg   r  Ú	do_decrefrƒ   rÉ   s          r'   Ú_remove_entryÚSetInstance._remove_entryØ  s‚   € ä—[’[ §¡§¡´'Ó:ˆŒ
ÞØ×Ñ˜eŸi™iÔ(à�|‰|ˆÜ�kŠk˜$Ÿ)™) QÓ'ˆØ"Ÿm™m×/Ñ/°Ó:Ð:ˆŒ|æØ�M‰M˜$ÔØ�‰�tÕr)   c                 óú   • U R                   nU R                  nUR                  X#5      u  pxUR                  U5         UR	                  U5      n	U R                  XU5        S S S 5        U$ ! , (       d  f       U$ = fry   )rn   ro   rÏ   r¤   rž   r%  )
ru   r&   r³   rD   r  r    r!   r¶   r©   rg   s
             r'   Ú_remove_keyÚSetInstance._remove_keyæ  sl   € Ø—-‘-ˆØ—-‘-ˆà—?‘? 4Ó+‰ˆà�_‰_˜UÕ#Ø×%Ñ% aÓ(ˆEØ×Ñ˜w¨yÔ9÷ $ð ˆ÷	 $Ô#ð ˆús   ½$A+Á+
A:c                 ó²   • U R                   nU R                  nU R                  n[        X4U R                  R
                  U5      nU R                  XQXb5        g ry   )rn   ro   r&   rG   rp   ra   r  )ru   r³   r  r    r!   r&   rD   s          r'   r½   ÚSetInstance.addò  sA   € Ø—-‘-ˆØ—-‘-ˆà—,‘,ˆÜ˜7¨T¯X©X¯^©^¸TÓBˆØ�‰�g QÕ2r)   c                 ó”   • U R                   nU R                  nU R                  nU R                  XXR5      nU R	                  XbXs5        g)zPA version of .add for use inside functions following Python calling
convention.
N)rn   ro   r&   Ú_pyapi_get_hash_valuer  )ru   Úpyapir³   r  r    r!   r&   rD   s           r'   Ú	add_pyapiÚSetInstance.add_pyapiú  s?   € ð —-‘-ˆØ—-‘-ˆà—,‘,ˆØ×&Ñ& u°wÓEˆØ�‰�g QÕ2r)   c                 óJ  • U R                   R                  /n[        R                  nS nU/n[        R
                  " U/UQ76 n	UR                  XyU5      u  p«UR                  U
SS9   UR                  UR                  5       5        SSS5        U$ ! , (       d  f       U$ = f)z=Python API compatible version of `get_hash_value()`.
        c                 ó   • [        U 5      $ ry   )rN   )r  s    r'   ÚwrapperÚ2SetInstance._pyapi_get_hash_value.<locals>.wrapper  s   € Ü,¨SÓ1Ð1r)   Fr  N)
rp   ra   r   rÕ   r   Ú	signatureÚcall_jit_coder¤   ÚretÚget_null_object)ru   r.  r    r!   r³   ÚargtypesÚrestyr3  rK   rB   Úis_errorÚretvals               r'   r-  Ú!SetInstance._pyapi_get_hash_value  s–   € ð —H‘H—N‘NÐ#ˆÜ—
‘
ˆò	2ð ˆvˆÜ×Ò˜uÐ0 xÒ0ˆØ ×.Ñ.¨w¸TÓBÑˆà�_‰_˜X¨eˆ_Ò4à�K‰K˜×-Ñ-Ó/Ô0÷ 5ð ˆ÷ 5Ô4ð ˆús   Á) BÂ
B"c                 ó¶   • U R                   nU R                  nU R                  n[        X#U R                  R
                  U5      nUR                  X5      u  pgU$ ry   )rn   ro   r&   rG   rp   ra   rÏ   )ru   r³   r    r!   r&   rD   r¶   r©   s           r'   ÚcontainsÚSetInstance.contains  sH   € Ø—-‘-ˆØ—-‘-ˆà—,‘,ˆÜ˜7¨T¯X©X¯^©^¸TÓBˆØ—?‘? 4Ó+‰ˆØˆr)   c                 ó´   • U R                   nU R                  nU R                  n[        X#U R                  R
                  U5      nU R                  XAU5      nU$ ry   )rn   ro   r&   rG   rp   ra   r(  )ru   r³   r    r!   r&   rD   r¶   s          r'   ÚdiscardÚSetInstance.discard   sJ   € Ø—-‘-ˆØ—-‘-ˆà—,‘,ˆÜ˜7¨T¯X©X¯^©^¸TÓBˆØ× Ñ  °Ó2ˆØˆr)   c                 óŽ  • U R                   nU R                  nUR                  U R                  R                  5      n[
        R                  " X#5      nU R                  nUR                  5        nUR                  UR                  U5        U R                  XVSS9  S S S 5        UR                  U5      $ ! , (       d  f       N= f)NF)r$  )rn   ro   rÔ   rp   ra   r   Úalloca_oncer&   rá   r¨   r¥   r%  r§   )ru   r    r!   Últyr¥   r&   rg   s          r'   ÚpopÚSetInstance.pop)  s—   € Ø—-‘-ˆØ—-‘-ˆà×$Ñ$ T§X¡X§^¡^Ó4ˆÜ×!Ò! 'Ó/ˆà—,‘,ˆØ× Ñ Ô" eØ�M‰M˜%Ÿ)™) SÔ)à×Ñ˜w¸ÐÑ?÷ #ð
 �|‰|˜CÓ Ð ÷ #Õ"ús   Á0-B6Â6
Cc                 óì   • U R                   nU R                  nUR                  [        R                  5      n[
        R                  " U[        5      nU R                  U5        U R                  S5        g )NT)
rn   ro   rÔ   r   rÕ   r   r:   ÚMINSIZEÚ_replace_payloadr  )ru   r    r!   rÇ   Úminsizes        r'   ÚclearÚSetInstance.clear8  sR   € Ø—-‘-ˆØ—-‘-ˆà×'Ñ'¬¯
©
Ó3ˆÜ—+’+˜f¤gÓ.ˆØ×Ñ˜gÔ&Ø�‰�tÕr)   c           
      óD  • U R                   nU R                  nU R                  nUR                  nUR                  n[        U 5      " XU R                  S5      nUR                  SXE5      nUR                  USS9 u  p‰U   UR                  U5      n
UR                  UR                  U
5      SS9   UR                  R                  U[        S5        SSS5        SSS5        U	   U R                  XU5      nUR!                  U5      n
UR                  UR                  U
5      SS9   UR                  R                  U[        S5        SSS5        UR                  nUR#                  5        nUR$                  nUR'                  XÎR(                  UR*                  SS9  SSS5        SSS5        SSS5        U$ ! , (       d  f       Ní= f! , (       d  f       Nö= f! , (       d  f       N˜= f! , (       d  f       NS= f! , (       d  f       N\= f! , (       d  f       U$ = f)z
Return a copy of this set.
NrP   Tr  F)zcannot copy set©r  )rn   ro   r&   rƒ   r‰   r;   rp   rR   Úif_elseÚ_copy_payloadr¤   r  Ú	call_convÚreturn_user_excÚMemoryErrorÚchoose_alloc_sizeÚ_allocate_payloadrÚ   rg   r  r¥   r6   )ru   r    r!   r&   rƒ   r‰   ÚotherÚno_deleted_entriesÚif_no_deletedÚ
if_deletedÚokÚnentriesÚother_payloadrÙ   rg   s                  r'   ÚcopyÚSetInstance.copyA  sº  € ð —-‘-ˆØ—-‘-ˆà—,‘,ˆØ�|‰|ˆØ�|‰|ˆä�T”
˜7¨T¯X©X°tÓ<ˆà$×2Ñ2°4¸ÓDÐØ�_‰_Ð/¸ˆ_Ñ=Ù*�Úà×(Ñ(¨Ó1�Ø—_‘_ W§\¡\°"Ó%5¸e�_ÒDØ×%Ñ%×5Ñ5°g¼{Ø6JôL÷ E÷ ò à×1Ñ1°'ÀDÓI�Ø×,Ñ,¨XÓ6�Ø—_‘_ W§\¡\°"Ó%5¸e�_ÒDØ×%Ñ%×5Ñ5°g¼{Ø6JôL÷ Eð !&§¡�Ø×%Ñ%Ô'¨4Ø ŸJ™J�EØ—N‘N =·)±)¸U¿Z¹ZØ-2ð #ñ 4÷ (÷ ÷ >ð. ˆ÷% EÕDú÷ •ú÷ EÕDú÷
 (Õ'ú÷ •ú÷ >Ô=ð. ˆús…   Á<HÂ1GÂ2"F;ÃGÃ
HÃ&AG?Ä)"GÅ$G?Å/2G.Æ!G?Æ)HÆ;
G	ÇGÇ
G	ÇHÇ
G+Ç'G?Ç.
G<Ç8G?Ç?
H	È	HÈ
Hc                 óê  • U R                   nU R                  nU R                  nUR                  nUR                  5        nUR                  nUR                  UR                  UR                  5      u  p‰UR                  UR                  U5      5         U R                  XGSS9  SSS5        SSS5        U R                  UR                  5        g! , (       d  f       N2= f! , (       d  f       N;= f)z)
In-place intersection with *other* set.
FrP  N)rn   ro   r&   rÚ   rg   rÏ   r¥   r6   r¤   r  r%  r#  rƒ   )
ru   rX  r    r!   r&   r^  rÙ   rg   r¶   Ú_s
             r'   Ú	intersectÚSetInstance.intersecth  s±   € ð —-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆà×ÑÔ 4Ø—J‘JˆEØ$×,Ñ,¨U¯Y©Y¸¿
¹
ÓC‰HˆEØ—‘ §¡¨eÓ!4Õ5Ø×"Ñ" 7¸UÐ"ÑC÷ 6÷  ð 	�‰�g—l‘lÕ#÷	 6Õ5ú÷  Õús%   ÁAC$ÂCÂ'C$Ã
C!	ÃC$Ã$
C2c                 óP  • U R                   nU R                  nU R                  nUR                  nUR                  5        nUR                  nU R                  XGR                  UR                  SS9  SSS5        U R                  UR                  5        g! , (       d  f       N*= f)z'
In-place difference with *other* set.
FrP  N)
rn   ro   r&   rÚ   rg   r(  r¥   r6   r#  rƒ   )ru   rX  r    r!   r&   r^  rÙ   rg   s           r'   Ú
differenceÚSetInstance.differencez  s|   € ð —-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆà×#Ñ#Ô%¨Ø—J‘JˆEØ×Ñ˜W§i¡i°·±ÀuÐÑM÷ &ð
 	�‰�g—l‘lÕ#÷ &Õ%ús   Á2BÂ
B%c           	      ó®  • U R                   nU R                  nUR                  nUR                  5        nUR                  R
                  nUR                  R                  nU R                  nUR                  XgSS9u  pšUR                  U
5      nUR                  U	5       u  pÍU   U R                  X‹SS9  SSS5        U   U R                  X‹Xg5        SSS5        SSS5        SSS5        U R                  U R                  R                  5        g! , (       d  f       Na= f! , (       d  f       NU= f! , (       d  f       N^= f! , (       d  f       Ng= f)z1
In-place symmetric difference with *other* set.
Tr  FrP  N)rn   ro   r&   rÚ   rg   r¥   r6   rÏ   rž   rQ  r%  r  r#  rƒ   )ru   rX  r    r!   r^  rÙ   r¥   rD   r&   r¶   r©   rg   Ú	if_commonÚif_not_commons                 r'   Úsymmetric_differenceÚ SetInstance.symmetric_differenceŠ  sø   € ð —-‘-ˆØ—-‘-ˆØŸ™ˆà×#Ñ#Ô%¨Ø—*‘*—.‘.ˆCØ—
‘
—‘ˆAà—l‘lˆGØ—‘ s¸$�Ð?‰HˆEØ×%Ñ% aÓ(ˆEØ—‘ Ô'Ñ+E¨IÚØ×&Ñ& wÀÐ&ÑG÷ â"Ø—O‘O G°CÔ;÷ #÷ (÷ &ð 	�‰�d—l‘l×'Ñ'Õ(÷ •Yúç"•]ú÷ (Õ'ú÷ &Õ%úsT   µA-EÂ"D5Â'DÂ8
D5ÃD$ÃD5ÃEÄ
D!ÄD5Ä$
D2Ä.D5Ä5
E	Ä?EÅ
Ec           	      óÆ  • U R                   nU R                  nU R                  nUR                  nU(       a  SOSn[        R                  " U[        R
                  5      nUR                  UR                  XuR                  UR                  5      5       u  pšU
   UR                  [        R                  U5        S S S 5        U	   UR                  5        nUR                  nUR                  UR                  UR                  5      u  pÞUR!                  UR#                  U5      5         UR                  [        R                  U5        UR%                  5         S S S 5        S S S 5        S S S 5        S S S 5        UR'                  U5      $ ! , (       d  f       NØ= f! , (       d  f       NH= f! , (       d  f       NQ= f! , (       d  f       NZ= f! , (       d  f       Nc= f)Nr\   ú<=)rn   ro   r&   r   r¸   rÅ   rQ  rR   rƒ   r¨   rÆ   rÚ   rg   rÏ   r¥   r6   r¤   r  rh   r§   )ru   rX  Ústrictr    r!   r&   r^  Úcmp_opÚresÚ
if_smallerÚ	if_largerrÙ   rg   r¶   rb  s                  r'   ÚissubsetÚSetInstance.issubset¢  sJ  € Ø—-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆæ‘ Dˆä×'Ò'¨´×1AÑ1AÓBˆØ�_‰_Ø×!Ñ! &¯,©,¸×8JÑ8JÓKôá(�*Úà—‘œg×/Ñ/°Ô5÷ ò à×%Ñ%Ô'¨4Ø ŸJ™J�EØ,×4Ñ4°U·Y±YÀÇ
Á
ÓK‘H�EØ Ÿ™¨¯©°eÓ)<Õ=ØŸ™¤g×&7Ñ&7¸Ô=ØŸ™œ÷ >÷ (÷ ÷ð �|‰|˜CÓ Ð ÷ •ú÷ >Õ=ú÷ (Õ'ú÷ •ú÷õ úsm   ÂGÂ!FÂ<
GÃGÃAF0Ä,1F	ÅF0Å%GÅ-GÆ
F	ÆGÆ
F-Æ)F0Æ0
F>Æ:GÇ
G	ÇGÇ
G c                 ó  ^^	• U R                   nU R                  mU R                  nUR                  n[        R                  " T[        R
                  5      m	UU	4S jnTR                  TR                  SUR                  UR                  5      5       u  pgU   U" XC5        S S S 5        U   U" X45        S S S 5        S S S 5        TR                  T	5      $ ! , (       d  f       N:= f! , (       d  f       N8= f! , (       d  f       NA= f)Nc                 óx  >• U R                  5        nUR                  nUR                  UR                  UR                  5      u  pETR                  U5         TR                  [        R                  T5        UR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fry   )
rÚ   rg   rÏ   r¥   r6   r¤   r¨   r   rÆ   rh   )ÚsmallerÚlargerrÙ   rg   r¶   rb  r!   rq  s         €€r'   ÚcheckÚ%SetInstance.isdisjoint.<locals>.checkÄ  s|   ø€ à×!Ñ!Ô# tØŸ
™
�Ø!Ÿ>™>¨%¯)©)°U·Z±ZÓ@‘�Ø—_‘_ UÕ+Ø—M‘M¤'×"3Ñ"3°SÔ9Ø—M‘M”O÷ ,÷ $Ð#÷ ,Õ+ú÷ $Õ#ús$   ’AB+Á1BÂ	B+Â
B(	Â$B+Â+
B9Ú>)
rn   ro   r&   r   r¸   rÅ   rQ  rR   rƒ   r§   )
ru   rX  r    r&   r^  rz  rs  Ú	otherwiser!   rq  s
           @@r'   Ú
isdisjointÚSetInstance.isdisjoint¼  sÆ   ù€ Ø—-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆä×'Ò'¨´×1AÑ1AÓBˆö	$ð �_‰_Ø×!Ñ! # w§|¡|°]×5GÑ5GÓHôá'�)âá�mÔ-÷ ò á�gÔ-÷ ÷ð �|‰|˜CÓ Ð ÷ •ú÷ •ú÷õ ús<   ÂC9Â	CÂ#
C9Â-	C(Â6C9Ã
C%	Ã!C9Ã(
C6	Ã2C9Ã9
Dc           	      ó²  • U R                   nU R                  nU R                  nUR                  n[        R                  " U[        R
                  5      nUR                  UR                  SUR                  UR                  5      5       u  pxU   UR                  5        n	U	R                  n
UR                  U
R                  U
R                  5      u  p¼UR                  UR                  U5      5         UR!                  [        R"                  U5        U	R%                  5         S S S 5        S S S 5        S S S 5        U   UR!                  [        R"                  U5        S S S 5        S S S 5        UR'                  U5      $ ! , (       d  f       Nb= f! , (       d  f       Nk= f! , (       d  f       Nt= f! , (       d  f       NZ= f! , (       d  f       Nc= f)NrP   )rn   ro   r&   r   r¸   rÅ   rQ  rR   rƒ   rÚ   rg   rÏ   r¥   r6   r¤   r  r¨   rÆ   rh   r§   )ru   rX  r    r!   r&   r^  rq  Úif_same_sizer}  rÙ   rg   r¶   rb  s                r'   ÚequalsÚSetInstance.equalsÛ  sC  € Ø—-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆä×'Ò'¨´×1AÑ1AÓBˆØ�_‰_Ø×!Ñ! $¨¯©°m×6HÑ6HÓIôá*�,Úà×%Ñ%Ô'¨4Ø ŸJ™J�EØ,×4Ñ4°U·Y±YÀÇ
Á
ÓK‘H�EØ Ÿ™¨¯©°eÓ)<Õ=ØŸ™¤g×&7Ñ&7¸Ô=ØŸ™œ÷ >÷ (÷ ò à—‘œg×/Ñ/°Ô5÷ ÷ð �|‰|˜CÓ Ð ÷ >Õ=ú÷ (Õ'ú÷ •ú÷ •ú÷õ úsm   ÂGÂF&Â"AFÃ71F	Ä(FÄ0F&Ä8
GÅ!F7Å#GÆ
FÆFÆ
F#ÆF&Æ&
F4	Æ0GÆ7
G	ÇGÇ
GNc                 ó4  • UR                  [        R                  5      nUc  [        R                  " U[
        5      nO=[        U[        5      (       a  [        R                  " XT5      nU R                  XU5      nU " XUS5      nUR                  U5      nX‡4$ )zÆ
Allocate a SetInstance with its storage.
Return a (ok, instance) tuple where *ok* is a LLVM boolean and
*instance* is a SetInstance object (the object's contents are
only valid when *ok* is true).
N)
rÔ   r   rÕ   r   r:   rJ  r_   ÚintrV  rW  )	Úclsr    r!   r"   ÚnitemsrÇ   r]  ru   r\  s	            r'   Úallocate_exÚSetInstance.allocate_exó  s   € ð ×'Ñ'¬¯
©
Ó3ˆà‰>Ü—{’{ 6¬7Ó3‰Hä˜&¤#×&Ñ&ÜŸš VÓ4�Ø×,Ñ,¨W¸vÓFˆHá�7 X¨tÓ4ˆØ×#Ñ# HÓ-ˆØˆxˆr)   c                 óä   • U R                  XX45      u  pVUR                  UR                  U5      SS9   UR                  R	                  U[
        S5        SSS5        U$ ! , (       d  f       U$ = f)zÐ
Allocate a SetInstance 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 setN)rˆ  r¤   r  rS  rT  rU  )r†  r    r!   r"   r‡  r\  ru   s          r'   ÚallocateÚSetInstance.allocate  sg   € ð —?‘? 7°XÓF‰ˆØ�_‰_˜WŸ\™\¨"Ó-°eˆ_Ò<Ø×Ñ×-Ñ-¨g´{Ø.FôH÷ =ð ˆ÷ =Ô<ð ˆús   ´"A Á 
A/c                 óâ   • U " XUS5      nXER                   l        UR                  [        R                  5      UR                   l        UR                  R                  X#UR                  5        U$ )zˆ
Allocate a new set instance pointing to an existing payload
(a meminfo pointer).
Note the parent field has to be filled by the caller.
N)	ró   rû   Úget_constant_nullr   Úpyobjectr  rù   Úincrefr?   )r†  r    r!   r"   rû   ru   s         r'   Úfrom_meminfoÚSetInstance.from_meminfo  sT   € ñ �7 X¨tÓ4ˆØ#�	‰	ÔØ"×4Ñ4´U·^±^ÓDˆ�	‰	ÔØ�‰×Ñ˜7¨d¯j©jÔ9àˆr)   c                 óî  • UR                   n[        R                  " US5      n[        R                  " U[        5      nUR	                  X55      n[
        R                  " X&5      nUR                  S5      n	UR                  S5      n
UR                  U	5        UR                  U	5         UR                  U5      nUR                  SX·5      nUR                  USS9   UR                  U
5        SSS5        UR	                  Xµ5      nUR                  XØ5        UR                  U	5        SSS5        UR                  U
5        UR                  U5      $ ! , (       d  f       Nk= f! , (       d  f       NA= f)zD
Choose a suitable number of entries for the given number of items.
r¡   úcalcsize.bodyúcalcsize.endú>=Fr  N)r;   r   r:   rJ  Úshlr   r¸   rº   r¦   r¾   r§   rR   r¤   r¨   rÁ   )r†  r    r!   r‡  rÇ   rÉ   rL  Úmin_entriesÚsize_prÌ   rÍ   rÖ   Úis_large_enoughÚ	next_sizes                 r'   rV  ÚSetInstance.choose_alloc_size$  s&  € ð
 —‘ˆÜ�kŠk˜& !Ó$ˆÜ—+’+˜f¤gÓ.ˆð —k‘k &Ó.ˆä×*Ò*¨7Ó<ˆà×,Ñ,¨_Ó=ˆØ×+Ñ+¨NÓ;ˆà�‰�wÔà×Ñ Õ(Ø—<‘< Ó'ˆDØ%×3Ñ3°D¸$ÓLˆOØ—‘ ¸�Ò?Ø—‘˜vÔ&÷ @àŸ™ DÓ.ˆIØ�M‰M˜)Ô,Ø�N‰N˜7Ô#÷ )ð 	×Ñ Ô'Ø�|‰|˜FÓ#Ð#÷ @Õ?ú÷ )Õ(ús$   Â*4E&ÃEÃ0;E&Å
E#	ÅE&Å&
E4c           	      óÎ  • U R                   nU R                  nUR                  n[        R                  " US5      n[        R                  " US5      nU R
                  nUR                  X5      nUR                  UR                  U5      n	UR                  SX‰5      n
UR                  U
SS9   [        R                  " X95      nUR                  S5      nUR                  S5      nUR                  U5        UR                  U5         UR!                  U5      nUR                  Xæ5      nUR#                  Xë5        UR                  SXŽ5      nUR%                  XüU5        SSS5        UR'                  U5        UR!                  U5      n[(        (       a  UR+                  US	XXŽ5        U R-                  X~S
5        SSS5        g! , (       d  f       Nj= f! , (       d  f       g= f)z[
When adding to the set, ensure it is properly sized for the given
number of used entries.
r¡   é   r–  Fr  r”  r•  NzKupsize to %zd items: current size = %zd, min entries = %zd, new size = %zd
zcannot grow set)rn   ro   r;   r   r:   r&   r—  r½   r{   rR   r¤   r   r¸   rº   r¦   r¾   r§   r¨   rß   rÁ   ÚDEBUG_ALLOCSÚprintfÚ_resize)ru   r‡  r    r!   rÇ   rÉ   Útwor&   r˜  rÖ   Úneed_resizeÚ
new_size_prÌ   rÍ   Únew_sizeÚis_too_smalls                   r'   r  ÚSetInstance.upsizeC  s�  € ð
 —-‘-ˆØ—-‘-ˆØ—‘ˆä�kŠk˜& !Ó$ˆÜ�kŠk˜& !Ó$ˆà—,‘,ˆð —k‘k &Ó.ˆØ�{‰{˜7Ÿ<™<¨Ó-ˆØ×+Ñ+¨D°+ÓDˆà�_‰_˜[°ˆ_Ò7ä ×2Ò2°7ÓAˆJà×0Ñ0°ÓAˆGØ×/Ñ/°Ó?ˆFà�N‰N˜7Ô#à×#Ñ# GÕ,à"Ÿ<™<¨
Ó3�Ø"Ÿ;™; xÓ5�Ø—‘˜hÔ3Ø&×4Ñ4°T¸;ÓQ�Ø—‘ °vÔ>÷ -ð ×#Ñ# FÔ+à—|‘| JÓ/ˆHßŠ|Ø—‘˜wð Eà%¨[ôDð �L‰L˜Ð,=Ô>÷3 8Ð7÷ -Õ,ú÷ 8Õ7ús'   Â.AGÄ	AGÅ!AGÇ
G	ÇGÇ
G$c           	      ó*  • U R                   nU R                  nUR                  n[        R                  " US5      n[        R                  " US5      n[        R                  " U[
        5      nU R                  nUR                  X5      n	UR                  UR                  SX—5      X—5      n	UR                  X–5      n
UR                  UR                  U5      nUR                  UR                  SX«5      UR                  SX{5      5      nUR                  USS9   [        R                  " X;5      nUR!                  S5      nUR!                  S	5      nUR#                  U5        UR%                  U5         UR'                  U5      nUR)                  UU5      nUR                  S
U	U5      nUR                  U5         UR#                  U5        SSS5        UR+                  UU5        UR#                  U5        SSS5        UR-                  U5        UR'                  U5      n[.        (       a  UR1                  USXU	U5        U R3                  UUS5        SSS5        g! , (       d  f       N—= f! , (       d  f       N}= f! , (       d  f       g= f)z_
When removing from the set, ensure it is properly sized for the given
number of used entries.
r¡   rž  r–  rn  r\   Fr  r”  r•  r|  NzMdownsize to %zd items: current size = %zd, min entries = %zd, new size = %zd
zcannot shrink set)rn   ro   r;   r   r:   rJ  r&   r—  r=   rR   r½   r{   r¹   r¤   r   r¸   rº   r¦   r¾   r§   r¿   r¨   rÁ   rŸ  r   r¡  )ru   r‡  r    r!   rÇ   rÉ   r¢  rL  r&   r˜  Úmax_sizerÖ   r£  r¤  rÌ   rÍ   r¥  r¦  s                     r'   r#  ÚSetInstance.downsizeq  s  € ð
 —-‘-ˆØ—-‘-ˆØ—‘ˆä�kŠk˜& !Ó$ˆÜ�kŠk˜& !Ó$ˆÜ—+’+˜f¤gÓ.ˆà—,‘,ˆð —k‘k &Ó.ˆØ—n‘n W×%:Ñ%:¸4ÀÓ%VØ%0ó;ˆð —;‘;˜{Ó0ˆØ�{‰{˜7Ÿ<™<¨Ó-ˆØ—l‘lØ×!Ñ! $¨Ó7Ø×!Ñ! # wÓ5ó7ˆð �_‰_˜[°ˆ_Ò7ä ×2Ò2°7ÓAˆJà×0Ñ0°ÓAˆGØ×/Ñ/°Ó?ˆFà�N‰N˜7Ô#à×#Ñ# GÕ,à"Ÿ<™<¨
Ó3�Ø"Ÿ<™<¨°#Ó6�à&×4Ñ4°S¸+ÀxÓP�Ø—_‘_ \Õ2Ø—N‘N 6Ô*÷ 3à—‘˜h¨
Ô3Ø—‘˜wÔ'÷ -ð ×#Ñ# FÔ+ð —|‘| JÓ/ˆH÷ Š|Ø—‘˜wð Eà%¨[¸(ôDð �L‰L˜ (Ð,?Ô@÷A 8Ð7÷ 3Õ2ú÷ -Õ,ú÷ 8Õ7ús?   ÄAJÅ7AI3Æ?I"Ç+I3Ç<AJÉ"
I0É,I3É3
J	É=JÊ
Jc           	      ó  • U R                   nU R                  nUnU R                  USS9nUR                  UR	                  U5      SS9   UR
                  R                  U[        U45        SSS5        U R                  nUR                  5        nUR                  n	U R                  XR                  U	R                  SSS9  SSS5        U R                  UR                  5        g! , (       d  f       N�= f! , (       d  f       N;= f)z_
Resize the payload to the given number of entries.

CAUTION: *nentries* must be a power of 2!
T©ÚreallocFr  N)r  r  )rn   ro   rW  r¤   r  rS  rT  rU  r&   rÚ   rg   r  r¥   r6   Ú_free_payloadr#   )
ru   r&   r]  Úerrmsgr    r!   Úold_payloadr\  rÙ   rg   s
             r'   r¡  ÚSetInstance._resize­  sÜ   € ð —-‘-ˆØ—-‘-ˆð ˆà×#Ñ# H°dÐ#Ð;ˆØ�_‰_˜WŸ\™\¨"Ó-°eˆ_Ò<Ø×Ñ×-Ñ-¨g´{Ø/5¨iô9÷ =ð —,‘,ˆØ×!Ñ!Ô# tØ—J‘JˆEØ�M‰M˜'§9¡9¨e¯j©jØ$)°Uð ñ <÷ $ð
 	×Ñ˜;Ÿ?™?Õ+÷ =Õ<ú÷ $Õ#ús   Á
#C(Â3C9Ã(
C6Ã9
Dc                 ó  • U R                   nU R                  nU R                  R                  5        nUR                  nU R                  UR                  5        SSS5        U R                  U R                  R                  5        U R                  USS9nUR                  UR                  U5      SS9   UR                  R                  U[        S5        SSS5        g! , (       d  f       N�= f! , (       d  f       g= f)z{
Replace the payload with a new empty payload with the given number
of entries.

CAUTION: *nentries* must be a power of 2!
NTr¬  Fr  )zcannot reallocate set)rn   ro   r&   rÚ   rg   r!  r¥   r®  r#   rW  r¤   r  rS  rT  rU  )ru   r]  r    r!   rÙ   rg   r\  s          r'   rK  ÚSetInstance._replace_payloadÈ  sÈ   € ð —-‘-ˆØ—-‘-ˆð �\‰\×"Ñ"Ô$¨Ø—J‘JˆEØ×Ñ˜eŸi™iÔ(÷ %ð
 	×Ñ˜4Ÿ<™<×+Ñ+Ô,à×#Ñ# H°dÐ#Ð;ˆØ�_‰_˜WŸ\™\¨"Ó-°eˆ_Ò<Ø×Ñ×-Ñ-¨g´{Ø.HôJ÷ =Ð<÷ %Õ$ú÷ =Õ<ús   ³(C"Â7"C3Ã"
C0Ã3
Dc           
      óz  • U R                   nU R                  n[        R                  " U[        R                  5      nUR                  [        R                  5      n[        R                  " US5      n[        R                  " US5      nUR                  [        R                  " U R                  5      5      n	UR                  U	5      n
U R                  nX«-  n
[        R                  " XA[        R                  " Xk5      [        R                  " Xj5      5      u  pÍUR!                  USS9   UR#                  [        R$                  U5        SSS5        UR!                  UR'                  U5      SS9   U(       aH  U R(                  R*                  nUR,                  R/                  UUUS9n[        R0                  " XO5      nOkU R3                  X4R4                  5      nUR,                  R7                  XLUR9                  U[        R:                  5      5      n[        R0                  " XN5      nUR=                  USS9 u  nnU   UR#                  [        R$                  U5        SSS5        U   U(       d>  XàR(                  l        UR?                  [        R@                  5      U R(                  l!        U RD                  n[        RF                  " UURH                  US5        UUl%        UUl&        UUl'        URQ                  X5      nUUl)        [T        (       a  URW                  US	UURH                  U5        SSS5        SSS5        SSS5        UR'                  U5      $ ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       NS= f! , (       d  f       N\= f! , (       d  f       Ne= f)
z£
Allocate and initialize payload for the given number of entries.
If *realloc* is True, the existing meminfo is reused.

CAUTION: *nentries* must be a power of 2!
r   r¡   Fr  NT)rÖ   éÿ   ú.allocated %zd bytes for set at %p: mask = %zd
),rn   ro   r   r¸   rÅ   rÔ   r   rÕ   r   r:   r   r   rp   r,   rñ   Úmuladd_with_overflowr¤   r¨   rÆ   r§   ró   rû   rù   Úmeminfo_varsize_alloc_uncheckedÚis_nullÚ	_imp_dtorÚmoduleÚ"meminfo_new_varsize_dtor_uncheckedr   Ú	voidptr_trQ  rŽ  r�  r  r&   Úmemsetr#   rƒ   r‰   rŽ   r"  r{   rŸ  r   )ru   r]  r­  r    r!   r\  rÇ   rà   rÉ   r$   Úpayload_sizeÚ
entry_sizeÚ	allocsizeÚovfrû   r#   Úalloc_okÚdtorÚif_errorÚif_okr&   Únew_masks                         r'   rW  ÚSetInstance._allocate_payloadß  sÅ  € ð —-‘-ˆØ—-‘-ˆä×&Ò& w´×0@Ñ0@ÓAˆà×'Ñ'¬¯
©
Ó3ˆÜ�{Š{˜6 1Ó%ˆÜ�kŠk˜& !Ó$ˆà×,Ñ,¬U×-=Ò-=¸d¿h¹hÓ-GÓHˆØ×-Ñ-¨lÓ;ˆØ—_‘_ˆ
àÑ"ˆô !×5Ò5°gÜ68·k²kÀ&Ó6UÜ68·k²kÀ&Ó6WóY‰ˆ	ð �_‰_˜S¨ˆ_Ò/Ø�M‰Mœ'×+Ñ+¨RÔ0÷ 0ð �_‰_˜WŸ\™\¨"Ó-°dˆ_Ò;ÞØŸ)™)×+Ñ+�Ø—k‘k×AÑAÀ'ØBIØ=Fð Bð H�ô #Ÿ?š?¨7Ó8‘ð —~‘~ g¯~©~Ó>�Ø!Ÿ+™+×HÑHØ¨¯©¸¼g×>OÑ>OÓ(PóR�ä"Ÿ?š?¨7Ó<�à—‘ Ø(-ð !ñ /Ù2C°8¸UÚØ—M‘M¤'×"3Ñ"3°RÔ8÷ âÞ"Ø,3Ÿ	™	Ô)Ø+2×+DÑ+DÄUÇ^Á^Ó+T˜Ÿ	™	Ô(Ø"Ÿl™l�Gä—N’N 7¨G¯K©K¸ÀDÔIØ#'�G”LØ#'�G”LØ%)�G”NØ&Ÿ{™{¨8Ó9�HØ#+�G”Lç#’|ØŸ™ wØ'XØ'0°'·+±+¸xôI÷ ÷	/÷ <ðH �|‰|˜BÓÐ÷O 0Ö/ú÷& –Xúç•Uú÷	/õ /ú÷ <Õ;úsb   Ä-!M&Å5CN,É NÉ!M8É'
NÉ1CN
Ì=NÍN,Í&
M5Í8
NÎNÎ

NÎNÎ
N)	Î%N,Î,
N:c                 óz   • U R                   R                  R                  U R                  U R                  U5        g)z)
Free an allocated old payload at *ptr*.
N)rn   rù   Úmeminfo_varsize_freero   rû   )ru   r#   s     r'   r®  ÚSetInstance._free_payload"  s(   € ð 	�‰×Ñ×.Ñ.¨t¯}©}¸d¿l¹lÈCÕPr)   c           
      óà  • U R                   nU R                  n[        R                  " U[        R                  5      nUR                  [        R                  5      n[        R                  " US5      n[        R                  " US5      nUR                  [        R                  " U R                  5      5      nUR                  U5      n	U R                  n
Xš-  n	UR                  nUR!                  X{5      nUR!                  [        R                  " XY5      UR#                  [        R                  " XZ5      U5      5      nUR%                  UR'                  U5      SS9   U R)                  X#R*                  5      nUR,                  R/                  X=UR1                  U[        R2                  5      5      n[        R4                  " X?5      nUR7                  USS9 u  nnU   UR9                  [        R:                  U5        SSS5        U   XðR<                  l        U R@                  nURB                  Ul!        URD                  Ul"        UUl#        UUl        [        RH                  " UURJ                  URJ                  UU
5        URM                  5        nU RO                  URP                  RR                  5        SSS5        [T        (       a  URW                  USUURX                  U5        SSS5        SSS5        SSS5        UR'                  U5      $ ! , (       d  f       GN= f! , (       d  f       Ns= f! , (       d  f       NR= f! , (       d  f       N[= f! , (       d  f       Nd= f)z'
Raw-copy the given payload into self.
r   r¡   Tr  FNr¶  )-rn   ro   r   r¸   rÅ   rÔ   r   rÕ   r   r:   r   r   rp   r,   rñ   r{   r½   rÀ   r¤   r§   rº  r»  rù   r¼  r   r½  r¹  rQ  r¨   rÆ   ró   rû   r&   rƒ   r‰   rŽ   Ú
raw_memcpyrm   rÚ   r  rg   r¥   rŸ  r   r#   )ru   Úsrc_payloadr    r!   r\  rÇ   rà   rÉ   r$   r¿  rÀ  r{   r]  rÁ  rÄ  rû   rÃ  rÅ  rÆ  r&   rÙ   s                        r'   rR  ÚSetInstance._copy_payload(  sˆ  € ð —-‘-ˆØ—-‘-ˆä×&Ò& w´×0@Ñ0@ÓAˆà×'Ñ'¬¯
©
Ó3ˆÜ�{Š{˜6 1Ó%ˆÜ�kŠk˜& !Ó$ˆà×,Ñ,¬U×-=Ò-=¸d¿h¹hÓ-GÓHˆØ×-Ñ-¨lÓ;ˆØ—_‘_ˆ
àÑ"ˆà×ÑˆØ—;‘;˜sÓ)ˆð
 —K‘K¤§¢¨FÓ AØ '§¡¬B¯KªK¸Ó,KØ,4ó!6ó7ˆ	ð �_‰_˜WŸ\™\¨"Ó-°dˆ_Ò;à—>‘> '¯>©>Ó:ˆDØ—k‘k×DÑDØ G§O¡O°D¼'×:KÑ:KÓ$LóNˆGä—’ wÓ8ˆHà—‘ °%�Ñ8Ñ<M¸XÀuÚØ—M‘M¤'×"3Ñ"3°RÔ8÷ âØ(/—I‘IÔ%Ø"Ÿl™l�GØ#.×#3Ñ#3�G”LØ#.×#3Ñ#3�G”LØ%)�G”NØ#'�G”Lô
 ×&Ò& w°·±Ø'2×':Ñ':¸HØ'1ô3ð
 %×-Ñ-Ô/°4Ø×)Ñ)¨$¯*©*¯.©.Ô9÷ 0÷ $’|ØŸ™ wØ'XØ'0°'·+±+¸tôE÷) ÷ 9÷ <ðD �|‰|˜BÓÐ÷5 –Xú÷$ 0Õ/ú÷! •Uú÷ 9Õ8ú÷ <Õ;úsn   Å!A<MÇMÇ#!LÈ
MÈBL=Ê&L,	Ê?2L=Ë1MË9MÌ
L)Ì$MÌ,
L:Ì6L=Ì=
MÍMÍ
M	ÍMÍ
M-c                 óØ  • [         R                  nUR                  [        R                  5      n[
        R                  " [
        R                  " 5       X4U/5      nSU R                  R                   3n[         R                  " X%US9nUR                  (       a¾  SUl        [
        R                  " UR                  5       5      n[        XU R                  UR                   S   5      n	U	R#                  5        n
U
R$                  nUR&                  R)                  X€R                  R                  UR*                  5        SSS5        UR-                  5         U$ ! , (       d  f       N = f)z Define the dtor for set
        z
.dtor.set.)ÚnameÚlinkonce_odrr   N)r   r½  rÔ   r   Úsize_tr   ÚFunctionTypeÚVoidTyperp   ra   Úget_or_insert_functionÚis_declarationÚlinkageÚ	IRBuilderrº   rj   rK   rÚ   rg   rù   Údecrefr¥   Úret_void)ru   r    r»  Ú	llvoidptrÚllsize_trA   ÚfnamerC   r!   r&   rÙ   rg   s               r'   rº  ÚSetInstance._imp_dtori  s  € ô ×%Ñ%ˆ	Ø×(Ñ(¬¯©Ó6ˆä�ŠÜ�KŠK‹MØ )Ð,ó
ˆð
 ˜TŸX™XŸ^™^Ð,Ð-ˆä×+Ò+¨F¸uÑEˆà××à'ˆBŒJä—l’l 2×#8Ñ#8Ó#:Ó;ˆGÜ! '°D·H±H¸b¿g¹gÀa¹jÓIˆGØ×!Ñ!Ô# tØŸ
™
�Ø—‘×"Ñ" 7¯H©H¯N©N¸E¿I¹IÔF÷ $ð ×ÑÔàˆ	÷ $Õ#ús   Ã:AEÅ
E)c                 óŽ   • U R                   R                  R                  U R                  U R                  R
                  U5        g)z Incref an element value
        N)rn   rù   r�  ro   rp   ra   r  s     r'   r  ÚSetInstance.incref_value…  ó,   € ð 	�‰×Ñ× Ñ  §¡°·±·±ÀÕDr)   c                 óŽ   • U R                   R                  R                  U R                  U R                  R
                  U5        g)z Decref an element value
        N)rn   rù   rÚ  ro   rp   ra   r  s     r'   r!  ÚSetInstance.decref_valueŠ  râ  r)   )ro   rn   rñ   ró   rp   )T)TTrã   ry   )0rä   rå   ræ   rç   rv   rè   ra   r&   r?   rû   r  ré   r  r  r  r  r%  r(  r½   r/  r-  r?  rB  rG  rM  r_  rc  rf  rk  rt  r~  r‚  Úclassmethodrˆ  r‹  r‘  rV  r  r#  r¡  rK  rW  r®  rR  rº  r  r!  rì   rí   r)   r'   rï   rï   t  sv  † òDð ñó ðð ñ	<ó ð	<ð ñ%ó ð%ð ñ!ó ð!ð ñ ó ð ð ‡]�]ñ!ó ð!ò!òPôô*!ô8ô
ô3ô	3òò$òò!òò%òN$ò$$ò )ô0!ò4!ò>!ð0 óó ðð( óó ðð ñó ðð ñ$ó ð$ò<,?ò\:Aòx,ò6Jô.A òFQò? òBò8Eõ
Er)   rï   c                   ó„   • \ rS rSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\
R                  S 5       r
S rS	rg
)ÚSetIterInstancei�  c                 ó   • Xl         X l        X0l        UR                  X#U5      U l        U R                   R
                  R                  X R                  5      n[        XU R                  R                  U5      U l
        g ry   )rn   ro   rp   rò   Ú_iterrù   rú   rû   rj   Ú	containerrq   )ru   r    r!   Ú	iter_typeÚiter_valr#   s         r'   rv   ÚSetIterInstance.__init__’  s]   € ØŒØŒØŒØ×(Ñ(¨¸XÓFˆŒ
Ø�m‰m×Ñ×,Ñ,¨W·l±lÓCˆÜ# G°d·h±h×6HÑ6HÈ#ÓNˆ�r)   c                 ó  • [        XUR                  U5      nU " XUS 5      nUR                  [        R                  S5      n[
        R                  " X'5      UR                  l        UR                  UR                  l	        U$ rJ   )
rï   rê  Úget_constantr   rÕ   r   r¸   ré  rf   rû   )r†  r    r!   rë  rô   Úset_instru   rf   s           r'   Úfrom_setÚSetIterInstance.from_setš  sh   € ä˜w°×1DÑ1DÀgÓNˆÙ�7 Y°Ó5ˆØ×$Ñ$¤U§Z¡Z°Ó3ˆÜ"×4Ò4°WÓDˆ�
‰
ÔØ%×-Ñ-ˆ�
‰
ÔØˆr)   c                 ó6   • U R                   R                  5       $ ry   )ré  rþ   r|   s    r'   r?   ÚSetIterInstance.value£  s   € à�z‰z×#Ñ#Ó%Ð%r)   c                 ó.   • U R                   R                  $ ry   )ré  rû   r|   s    r'   rû   ÚSetIterInstance.meminfo§  s   € à�z‰z×!Ñ!Ð!r)   c                 ó`   • U R                   R                  U R                  R                  5      $ ry   )ro   r§   ré  rf   r|   s    r'   rf   ÚSetIterInstance.index«  s!   € à�}‰}×!Ñ! $§*¡*×"2Ñ"2Ó3Ð3r)   c                 ób   • U R                   R                  XR                  R                  5        g ry   )ro   r¨   ré  rf   r€   s     r'   rf   rø  ¯  s   € à�‰×Ñ˜E§:¡:×#3Ñ#3Õ4r)   c                 óÌ  • U R                   nU R                  n[        R                  " UR                  S5      nUR                  5         UR                  US9 nUR                  nUR                  5         UR                  UR                  5        U R                  R                  UR                   U5      U l         UR                  5         S S S 5        g ! , (       d  f       g = f)Nr¡   rÒ   )rf   rq   r   r:   r;   Úset_exhaustedrÚ   rg   Ú	set_validÚyield_r¥   ro   r½   rh   )ru   Úresultrf   r&   rÉ   rÙ   rg   s          r'   ÚiternextÚSetIterInstance.iternext³  s�   € Ø—
‘
ˆØ—-‘-ˆÜ�kŠk˜%Ÿ*™* aÓ(ˆà×ÑÔà×Ñ EÐÑ*¨dà—J‘JˆEØ×ÑÔØ�M‰M˜%Ÿ)™)Ô$ØŸ™×*Ñ*¨4¯:©:°sÓ;ˆDŒJØ�M‰MŒO÷ +×*Ö*ús   ÁA3CÃ
C#)ro   rn   ré  rq   rp   rf   N)rä   rå   ræ   rç   rv   rå  rñ  rè   r?   rû   rf   ré   rÿ  rì   rí   r)   r'   rç  rç  �  su   † òOð ñó ðð ñ&ó ð&ð ñ"ó ð"ð ñ4ó ð4ð ‡\�\ñ5ó ð5õr)   rç  c           	      óø  • [        U5      n[        R                  XX$5      nUS:”  a­  [        R                  " X5      n[        R
                  " X5      nU R                  [        R                  U5      n[        R                  " X5       n	UR                  [        R                  " XSU	R                  5      5      n
UR                  U
5        SSS5        [        XX%R                  5      $ ! , (       d  f       N$= f)z<
Build a set of the given type, containing the given items.
r   N)Úlenrï   r‹  r   Ú
pack_arrayr¸   rï  r   rÕ   r»   r§   r›   rf   r½   r   r?   )r    r!   r"   Úitemsr‡  ÚinstÚarrayÚ	array_ptrÚcountrÙ   r³   s              r'   Ú	build_setr	  Æ  s¹   € ô �‹Z€FÜ×Ñ °(ÓC€Dà�ƒzô ×"Ò" 7Ó2ˆÜ×-Ò-¨gÓ=ˆ	à×$Ñ$¤U§Z¡Z°Ó8ˆÜ×Ò˜wÔ.°$Ø—<‘<¤§¢¨GÀÀ4Ç:Á:Ó NÓOˆDØ�H‰H�TŒN÷ /ô ˜G¨h¿
¹
ÓCÐC÷	 /Õ.ús   Â
AC+Ã+
C9c                 ór   • UR                   n[        R                  XU5      n[        XXER                  5      $ ry   )Úreturn_typerï   r‹  r   r?   )r    r!   rB   rK   r"   r  s         r'   Úset_empty_constructorr  Ü  s.   € à�‰€HÜ×Ñ °(Ó;€DÜ˜G¨h¿
¹
ÓCÐCr)   c                 ó�  • UR                   nUR                  u  nUu  n[        XXV5      n[        R	                  XXG5      n[        XXV5       n	UR                  U	R                  5        U R                  R                  XR                  U	R                  5        S S S 5        [        XXHR                  5      $ ! , (       d  f       N$= fry   )r  rK   r   rï   r‹  r   r½   r?   rù   rÚ  ra   r   )
r    r!   rB   rK   r"   Ú
items_typer  Únr  rÙ   s
             r'   Úset_constructorr  â  s–   € à�‰€HØ—(‘(�K€JØ�F€Eô 	� :Ó5€AÜ×Ñ °(Ó>€DÜ	�' JÔ	6¸$Ø�‰�—‘ÔØ�‰×Ñ˜7§N¡N°D·J±JÔ?÷ 
7ô ˜G¨h¿
¹
ÓCÐC÷	 
7Õ	6ús   ÁAB7Â7
Cc                 ó\   • [        XUR                  S   US   5      nUR                  5       $ rJ   )rï   rK   r  ©r    r!   rB   rK   r  s        r'   Úset_lenr  ú  s(   € ä�w¨¯©°!©°d¸1±gÓ>€DØ�=‰=‹?Ðr)   c                 ód   • [        XUR                  S   US   5      nUR                  US   5      $ ©Nr   r¡   )rï   rK   r?  r  s        r'   Úin_setr  ÿ  s/   € ä�w¨¯©°!©°d¸1±gÓ>€DØ�=‰=˜˜a™Ó!Ð!r)   Úgetiterc                 óŒ   • [         R                  XUR                  US   5      n[        XUR                  UR                  5      $ rJ   )rç  rñ  r  r   r?   r  s        r'   Úgetiter_setr    s5   € ä×#Ñ# G°c·o±oÀtÈAÁwÓO€DÜ˜W¨s¯©ÀÇ
Á
ÓKÐKr)   rÿ  c                 ó`   • [        XUR                  S   US   5      nUR                  U5        g rJ   )rç  rK   rÿ  )r    r!   rB   rK   rþ  r  s         r'   Úiternext_listiterr  	  s*   € ô ˜7¨S¯X©X°a©[¸$¸q¹'ÓB€DØ‡M�M�&Õr)   zset.addc                 óˆ   • [        XUR                  S   US   5      nUS   nUR                  U5        U R                  5       $ r  )rï   rK   r½   Úget_dummy_value©r    r!   rB   rK   r  r³   s         r'   Úset_addr    s?   € ä�w¨¯©°!©°d¸1±gÓ>€DØ�‰7€DØ‡H�HˆT„Nà×"Ñ"Ó$Ð$r)   c                 ó:   • [         R                  " X5      nS nX44$ )Nc                 óˆ   • [        XUR                  S   US   5      nUS   nUR                  U5        U R                  5       $ r  )rï   rK   rB  r  r  s         r'   Úset_discardÚ!_set_discard.<locals>.set_discard"  s@   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�A‰wˆØ�‰�TÔà×&Ñ&Ó(Ð(r)   ©r   Únone)r@   rb   r³   rB   r"  s        r'   Ú_set_discardr&    s    € ä
�*Š*�QÓ
€Cò)ð ÐÐr)   rB  c                 ó   • S $ )Nc                 ó   • [        X5      $ ry   )r&  ©rb   r³   s     r'   Ú<lambda>Ú ol_set_discard.<locals>.<lambda>.  s	   € œ<¨Ô0r)   rí   r)  s     r'   Úol_set_discardr,  ,  s   € á0Ð0r)   c                 ó0   • UR                  U5      nS nX#4$ )Nc                 ód  • [        XUR                  S   US   5      nUR                  R                  nUR	                  [
        R                  " X5      SS9   U R                  R                  U[        S5        S S S 5        UR                  5       $ ! , (       d  f       UR                  5       $ = f)Nr   Fr  )zset.pop(): empty set)rï   rK   r&   rƒ   r¤   r   r¹  rS  rT  ÚKeyErrorrG  )r    r!   rB   rK   r  rƒ   s         r'   Úset_popÚ_set_pop.<locals>.set_pop5  sŒ   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�|‰|× Ñ ˆØ�_‰_œWŸ_š_¨WÓ;ÀEˆ_ÒJØ×Ñ×-Ñ-¨g´xØ,EôG÷ Kð �x‰x‹zÐ÷	 KÔJð �x‰x‹zÐús   Á"BÂ
B/©ra   )r@   rb   rB   r0  s       r'   Ú_set_popr3  1  s   € à
�'‰'�!‹*€Còð ˆ<Ðr)   rG  c                 ó   • S $ )Nc                 ó   • [        U 5      $ ry   )r3  ©rb   s    r'   r*  Úol_set_pop.<locals>.<lambda>C  s   € ”X˜a”[r)   rí   r6  s    r'   Ú
ol_set_popr8  A  s   € á Ð r)   c                 ó:   • [         R                  " X5      nS nX44$ )Nc                 óZ  • [        XUR                  S   US   5      nUS   nUR                  U5      nUR                  UR	                  U5      SS9   U R
                  R                  U[        S5        S S S 5        U R                  5       $ ! , (       d  f       U R                  5       $ = f)Nr   r¡   Fr  )zset.remove(): key not in set)	rï   rK   rB  r¤   r  rS  rT  r/  r  )r    r!   rB   rK   r  r³   r¶   s          r'   Ú
set_removeÚ_set_remove.<locals>.set_removeJ  sš   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�A‰wˆØ—‘˜TÓ"ˆØ�_‰_˜WŸ\™\¨%Ó0¸ˆ_Ò?Ø×Ñ×-Ñ-¨g´xØ,MôO÷ @ð ×&Ñ&Ó(Ð(÷	 @Ô?ð ×&Ñ&Ó(Ð(ús   Á"BÂ
B*r$  )r@   rb   r³   rB   r;  s        r'   Ú_set_remover=  F  s   € ä
�*Š*�QÓ
€Cò)ð ˆ?Ðr)   Úremovec                 ó*   • U R                   U:X  a  S $ g )Nc                 ó   • [        X5      $ ry   )r=  r)  s     r'   r*  Úol_set_remove.<locals>.<lambda>Z  s	   € œ{¨1Ô3r)   r2  r)  s     r'   Úol_set_removerB  W  s   € à‡w�w�$ƒÙ3Ð3ð r)   c                 ó:   • [         R                  " U5      nS nX#4$ )Nc                 ó|   • [        XUR                  S   US   5      nUR                  5         U R                  5       $ rJ   )rï   rK   rM  r  r  s        r'   Ú	set_clearÚ_set_clear.<locals>.set_clearc  s4   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�
‰
ŒØ×&Ñ&Ó(Ð(r)   r$  )r@   rb   rB   rE  s       r'   Ú
_set_clearrG  _  s   € ä
�*Š*�Q‹-€Cò)ð
 ˆ>Ðr)   rM  c                 ó   • S $ )Nc                 ó   • [        U 5      $ ry   )rG  r6  s    r'   r*  Úol_set_clear.<locals>.<lambda>m  s   € ”Z ”]r)   rí   r6  s    r'   Úol_set_clearrK  k  s   € á"Ð"r)   c                 ó   • U" U5      nS nX#4$ )Nc                 óž   • [        XUR                  S   US   5      nUR                  5       n[        XUR                  UR
                  5      $ rJ   )rï   rK   r_  r   r  r?   ©r    r!   rB   rK   r  rX  s         r'   Úset_copyÚ_set_copy.<locals>.set_copyt  s>   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆØ—	‘	“ˆÜ °#·/±/À5Ç;Á;ÓOÐOr)   rí   )r@   rb   rB   rO  s       r'   Ú	_set_copyrQ  p  s   € á
ˆA‹$€CòPð
 ˆ=Ðr)   r_  c                 ó   • S $ )Nc                 ó   • [        U 5      $ ry   )rQ  r6  s    r'   r*  Úol_set_copy.<locals>.<lambda>~  s   € ”Y˜q”\r)   rí   r6  s    r'   Úol_set_copyrU  |  s   € á!Ð!r)   c                 ó¸   • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  U5        U R                  5       $ r  )rï   rK   rf  r  rN  s         r'   Úset_difference_updaterW  �  sQ   € Ü�w¨¯©°!©°d¸1±gÓ>€DÜ˜¨#¯(©(°1©+°t¸A±wÓ?€Eà‡O�O�EÔà×"Ñ"Ó$Ð$r)   c                 ó>   • [         R                  " X5      nU[        4$ ry   )r   r%  rW  ©r@   ÚaÚbrB   s       r'   Ú_set_difference_updater\  Š  s   € ä
�*Š*�QÓ
€CØÔ%Ð%Ð%r)   Údifference_updatec                 ó   • [        X5        S $ )Nc                 ó   • [        X5      $ ry   )r\  ©rZ  r[  s     r'   r*  Ú,set_difference_update_impl.<locals>.<lambda>“  s
   € Ô.¨qÔ4r)   ©rc   r`  s     r'   Úset_difference_update_implrc  �  s   € ä�!ÔÙ4Ð4r)   c                 ó¸   • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  U5        U R                  5       $ r  )rï   rK   rc  r  rN  s         r'   Úset_intersection_updatere  –  sQ   € Ü�w¨¯©°!©°d¸1±gÓ>€DÜ˜¨#¯(©(°1©+°t¸A±wÓ?€EØ‡N�N�5ÔØ×"Ñ"Ó$Ð$r)   c                 ó>   • [         R                  " X5      nU[        4$ ry   )r   r%  re  rY  s       r'   Ú_set_intersection_updaterg  �  s   € ä
�*Š*�QÓ
€CØÔ'Ð'Ð'r)   Úintersection_updatec                 ó   • [        X5        S $ )Nc                 ó   • [        X5      $ ry   )rg  r`  s     r'   r*  Ú.set_intersection_update_impl.<locals>.<lambda>¦  s
   € Ô0°Ô6r)   rb  r`  s     r'   Úset_intersection_update_implrl  £  s   € ä�!ÔÙ6Ð6r)   c                 ó¸   • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  U5        U R                  5       $ r  )rï   rK   rk  r  rN  s         r'   Úset_symmetric_difference_updatern  ©  sS   € Ü�w¨¯©°!©°d¸1±gÓ>€DÜ˜¨#¯(©(°1©+°t¸A±wÓ?€EØ×Ñ˜eÔ$Ø×"Ñ"Ó$Ð$r)   c                 ó>   • [         R                  " X5      nU[        4$ ry   )r   r%  rn  rY  s       r'   Ú _set_symmetric_difference_updaterp  °  s   € ä
�*Š*�QÓ
€CØÔ/Ð/Ð/r)   Úsymmetric_difference_updatec                 ó   • [        X5        S $ )Nc                 ó   • [        X5      $ ry   )rp  r`  s     r'   r*  Ú6set_symmetric_difference_update_impl.<locals>.<lambda>¹  s
   € Ô8¸Ô>r)   rb  r`  s     r'   Ú$set_symmetric_difference_update_implru  ¶  s   € ä�!ÔÙ>Ð>r)   z
set.updatec                 ó�  • [        XUR                  S   US   5      nUR                  S   nUS   n[        XXV5      nUb7  UR                  UR                  R
                  U5      nUR                  U5        [        XXV5       n	U R                  XR                  UR                  UR                  5      n
UR                  U
5        U R                  R                  XR                  U	R                  5        S S S 5        Ub%  UR                  UR                  R
                  5        U R                  5       $ ! , (       d  f       NF= fr  )rï   rK   r   r½   r&   rƒ   r  r   Úcastr?   ra   rù   rÚ  r#  r  )r    r!   rB   rK   r  r  r  r  r¥  rÙ   Úcasteds              r'   Ú
set_updatery  ¼  sÿ   € ä�w¨¯©°!©°d¸1±gÓ>€DØ—‘˜!‘€JØ�‰G€Eô 	� :Ó5€AØ�}Ø—;‘;˜tŸ|™|×0Ñ0°!Ó4ˆØ�‰�HÔä	�' JÔ	6¸$ð —‘˜g§z¡z°:×3CÑ3CÀTÇZÁZÓPˆØ�‰�Ôð
 	�‰×Ñ˜7×$4Ñ$4°d·j±jÔA÷ 
7ð 	�}à�‰�d—l‘l×'Ñ'Ô(à×"Ñ"Ó$Ð$÷ 
7Õ	6ús   ÂA3D7Ä7
Ec                 óN   ^^• [         U4S j5       m[        U 5      U4S j5       ng )Nc                 ó&   >• U" X5      nU4S jnX44$ )Nc                 óŽ   >• UR                   UR                  S   :X  d   eT" XX#5        [        XUR                  S   US   5      $ rJ   )r  rK   r   )r    r!   rB   rK   rL   s       €r'   ÚcodegenÚ>gen_operator_impl.<locals>._set_operator_intr.<locals>.codegenÞ  sB   ø€ Ø—?‘? c§h¡h¨q¡kÓ1Ð1Ð1Ù� 3Ô-Ü$ W°s·x±xÀ±{ÀDÈÁGÓLÐLr)   rí   )r@   rZ  r[  rB   r}  rL   s        €r'   Ú_set_operator_intrÚ-gen_operator_impl.<locals>._set_operator_intrÛ  s   ø€ á�‹gˆõ	Mð ˆ|Ðr)   c                 ó&   >• [        X5        U4S j$ )Nc                 ó   >• T" X5      $ ry   rí   ©rZ  r[  r  s     €r'   r*  Ú=gen_operator_impl.<locals>._ol_set_operator.<locals>.<lambda>ç  s   ø€ Ñ.¨qÔ4r)   rb  rƒ  s     €r'   Ú_ol_set_operatorÚ+gen_operator_impl.<locals>._ol_set_operatorä  s   ø€ ä�aÔÜ4Ð4r)   )r   r   )ÚoprL   r…  r  s    ` @r'   Úgen_operator_implrˆ  Ú  s-   ù€ Üôó ðô ˆbƒ\ô5ó ñ5r)   rf  c                 ó"   • [        X5        S nU$ )Nc                 óH   • U R                  5       nUR                  U5        U$ ry   )r_  r]  ©rZ  r[  rb   s      r'   Údifference_implÚ,impl_set_difference.<locals>.difference_implú  s    € Ø�F‰F‹HˆØ	×Ñ˜AÔØˆr)   rb  )rZ  r[  rŒ  s      r'   Úimpl_set_differencerŽ  õ  s   € ô �!Ôòð
 Ðr)   Úintersectionc                 ó"   • [        X5        S nU$ )Nc                 ó¾   • [        U 5      [        U5      :  a#  U R                  5       nUR                  U5        U$ UR                  5       nUR                  U 5        U$ ry   )r  r_  rh  r‹  s      r'   Úintersection_implÚ+set_intersection.<locals>.intersection_impl  sM   € Üˆq‹6”C˜“F‹?Ø—‘“ˆAØ×!Ñ! !Ô$ØˆHà—‘“ˆAØ×!Ñ! !Ô$ØˆHr)   rb  )rZ  r[  r’  s      r'   Úset_intersectionr”    s   € ô �!Ôòð Ðr)   rk  c                 ó"   • [        X5        S nU$ )Nc                 ó¾   • [        U 5      [        U5      :”  a#  U R                  5       nUR                  U5        U$ UR                  5       nUR                  U 5        U$ ry   )r  r_  rq  r‹  s      r'   Úsymmetric_difference_implÚ;set_symmetric_difference.<locals>.symmetric_difference_impl  sM   € Üˆq‹6”C˜“F‹?Ø—‘“ˆAØ×)Ñ)¨!Ô,ØˆHà—‘“ˆAØ×)Ñ)¨!Ô,ØˆHr)   rb  )rZ  r[  r—  s      r'   Úset_symmetric_differencer™    s   € ô �!Ôòð %Ð$r)   Úunionc                 ó"   • [        X5        S nU$ )Nc                 ó¾   • [        U 5      [        U5      :”  a#  U R                  5       nUR                  U5        U$ UR                  5       nUR                  U 5        U$ ry   )r  r_  Úupdater‹  s      r'   Ú
union_implÚset_union.<locals>.union_impl(  sG   € Üˆq‹6”C˜“F‹?Ø—‘“ˆAØ�H‰H�QŒKØˆHà—‘“ˆAØ�H‰H�QŒKØˆHr)   rb  )rZ  r[  rž  s      r'   Ú	set_unionr   #  s   € ô �!Ôòð Ðr)   c                 ó:   • [         R                  " X5      nS nX44$ )Nc                 ó˜   • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  U5      $ r  )rï   rK   r~  rN  s         r'   r}  Ú _set_isdisjoint.<locals>.codegen;  sE   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G¨c¯h©h°q©k¸4À¹7ÓCˆà�‰˜uÓ%Ð%r)   ©r   Úboolean©r@   rZ  r[  rB   r}  s        r'   Ú_set_isdisjointr§  7  s   € ä
�-Š-˜Ó
€Cò&ð ˆ<Ðr)   r~  c                 ó   • [        X5        S $ )Nc                 ó   • [        X5      $ ry   )r§  r`  s     r'   r*  Ú set_isdisjoint.<locals>.<lambda>H  s	   € œ¨Ô-r)   rb  r`  s     r'   Úset_isdisjointr«  D  s   € ä�!Ôá-Ð-r)   c                 ó:   • [         R                  " X5      nS nX44$ )Nc                 ó˜   • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  U5      $ r  ©rï   rK   rt  rN  s         r'   r}  Ú_set_issubset.<locals>.codegenO  sE   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G¨c¯h©h°q©k¸4À¹7ÓCˆà�}‰}˜UÓ#Ð#r)   r¤  r¦  s        r'   Ú_set_issubsetr°  K  s   € ä
�-Š-˜Ó
€Cò$ð ˆ<Ðr)   rt  c                 ó   • [        X5        S $ )Nc                 ó   • [        X5      $ ry   )r°  r`  s     r'   r*  Úset_issubset.<locals>.<lambda>\  s	   € œ aÔ+r)   rb  r`  s     r'   Úset_issubsetr´  W  s   € ô �!Ôá+Ð+r)   Ú
issupersetc                 ó"   • [        X5        S nU$ )Nc                 ó$   • UR                  U 5      $ ry   )rt  r`  s     r'   Úsuperset_implÚ%set_issuperset.<locals>.superset_impld  s   € Ø�z‰z˜!‹}Ðr)   rb  )rZ  r[  r¸  s      r'   Úset_issupersetrº  _  s   € ô �!Ôòð Ðr)   c                 ó:   • [         R                  " X5      nS nX44$ )Nc                 ó˜   • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  U5      $ r  )rï   rK   r‚  rN  s         r'   r}  Ú_set_eq.<locals>.codegenm  sE   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G¨c¯h©h°q©k¸4À¹7ÓCˆà�{‰{˜5Ó!Ð!r)   r¤  r¦  s        r'   Ú_set_eqr¾  i  s   € ä
�-Š-˜Ó
€Cò"ð ˆ<Ðr)   c                 ó   • [        X5        S $ )Nc                 ó   • [        X5      $ ry   )r¾  r`  s     r'   r*  Úset_eq.<locals>.<lambda>y  ó   € œ œr)   rb  r`  s     r'   Úset_eqrÃ  u  ó   € ä�!Ôá%Ð%r)   c                 ó"   • [        X5        S nU$ )Nc                 ó   • X:X  + $ ry   rí   r`  s     r'   Úne_implÚset_ne.<locals>.ne_impl  s
   € ØŠzÐr)   rb  )rZ  r[  rÇ  s      r'   Úset_nerÉ  {  s   € ä�!Ôòð €Nr)   c                 ó:   • [         R                  " X5      nS nX44$ )Nc                 ó–   • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  USS9$ )Nr   r¡   T)ro  r®  rN  s         r'   r}  Ú_set_lt.<locals>.codegenˆ  sI   € Ü˜7¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G¨c¯h©h°q©k¸4À¹7ÓCˆà�}‰}˜U¨4ˆ}Ð0Ð0r)   r¤  r¦  s        r'   Ú_set_ltrÍ  „  s   € ä
�-Š-˜Ó
€Cò1ð ˆ<Ðr)   c                 ó   • [        X5        S $ )Nc                 ó   • [        X5      $ ry   )rÍ  r`  s     r'   r*  Úset_lt.<locals>.<lambda>”  rÂ  r)   rb  r`  s     r'   Úset_ltrÑ  �  rÄ  r)   c                 ó"   • [        X5        S nU$ )Nc                 ó
   • X:  $ ry   rí   r`  s     r'   Úgt_implÚset_gt.<locals>.gt_implš  s	   € Ø‰uˆr)   rb  )rZ  r[  rÔ  s      r'   Úset_gtrÖ  –  s   € ä�!Ôòð €Nr)   c                 óB  • [        XUR                  S   US   5      n[        XUR                  S   US   5      nUR                  UR                  [        R
                  5      nUR                  UR                  [        R
                  5      nUR                  SXg5      $ )Nr   r¡   rP   )rï   rK   Úptrtointrû   r   rÇ   Úicmp_signed)r    r!   rB   rK   rZ  r[  ÚmaÚmbs           r'   Úset_isrÜ  Ÿ  s}   € ä�G c§h¡h¨q¡k°4¸±7Ó;€AÜ�G c§h¡h¨q¡k°4¸±7Ó;€AØ	×	Ñ	˜!Ÿ)™)¤W§^¡^Ó	4€BØ	×	Ñ	˜!Ÿ)™)¤W§^¡^Ó	4€BØ×Ñ˜t RÓ,Ð,r)   c                 ó>   • UR                   UR                   :X  d   eU$ ry   r2  )r    r!   ÚfromtyÚtotyr  s        r'   Ú
set_to_setrà  «  s   € ð �<‰<˜4Ÿ:™:Ó%Ð%Ð%Ø€Jr)   )}Ú__doc__Úcollectionsrê   Úmathr·   Ú	functoolsr   Úllvmliter   Ú
numba.corer   r   r   Únumba.core.imputilsr   r	   r
   r   r   r   r   r   r   Ú
numba.miscr   Únumba.cpythonr   Únumba.core.errorsr   r   Únumba.core.extendingr   r   r   r(   r.   rQ   rW   r<   rJ  r¼   rŸ  rG   rN   rT   rZ   r9   rc   Ú
namedtuplerd   Úobjectrj   rï   rç  r	  Úsetr  ÚIterableTyper  r  r`   r  r?  ÚAnyr  r  ÚSetIterÚBORROWEDr  r  r&  r,  r3  r8  r=  rB  rG  rK  rQ  rU  rW  r\  rc  re  rg  rl  rn  rp  ru  ry  rˆ  ÚiandÚiorÚisubÚixorÚop_Úop_implr"  rŽ  r¹   r”  Úxorr™  Úor_r   r§  r«  r°  Úler´  Úgerº  r¾  r«   rÃ  ÚnerÉ  rÍ  ÚltrÑ  ÚgtrÖ  Úis_rÜ  rà  rí   r)   r'   Ú<module>r     sc  ðñó
 Û Û Û Ý %å ß -Ñ -÷A÷ Aõ Aõ !Ý !ß :ß EÑ EòHò(ð 	€Ø
€Ø€ð €ð €à€ò.ð ñó ðò1ò3ò2òLð ×
 Ò
  Ð,JÓ
K€ô| �&ô | ô~YE�&ô YEôx0�fô 0òlDñ, ˆsÓñDó ðDñ
 ˆs�E×&Ñ&Ó'ñDó (ðDñ. ˆs�E—I‘IÓñó ðñ ˆx× Ñ  %§)¡)¨U¯Y©YÓ7ñ"ó 8ð"ñ ˆy˜%Ÿ)™)Ó$ñLó %ðLñ ˆz˜5Ÿ=™=Ó)Ùˆw×ÑÓ ñó !ó *ðñ ˆy˜%Ÿ)™) U§Y¡YÓ/ñ%ó 0ð%ð ñ
ó ð
ñ �—‘˜IÓ&ñ1ó 'ð1ð ñó ðñ �—‘˜EÓ"ñ!ó #ð!ð ñó ðñ  �—‘˜HÓ%ñ4ó &ð4ð ñó ðñ �—‘˜GÓ$ñ#ó %ð#ð ñó ðñ �—‘˜FÓ#ñ"ó $ð"ò%ð ñ&ó ð&ñ
 �—‘Ð/Ó0ñ5ó 1ð5ò
%ð ñ(ó ð(ñ
 �—‘Ð1Ó2ñ7ó 3ð7ò
%ð ñ0ó ð0ñ
 �—‘Ð9Ó:ñ?ó ;ð?ñ
 ˆ|˜UŸY™Y¨×(:Ñ(:Ó;ñ%ó <ð%ò:5ð" ‡]�]Ð+Ð,Ø‡\�\�:ÐØ‡]�]Ð)Ð*Ø‡]�]Ð3Ð4ó	�L€Cˆñ �c˜7Ö#ññ 
ˆ(�,‰,ÓÙ�—‘˜LÓ)ñó *ó ðñ 
ˆ(�-‰-ÓÙ�—‘˜NÓ+ñó ,ó ðñ 
ˆ(�,‰,ÓÙ�—‘Ð2Ó3ñ%ó 4ó ð%ñ 
ˆ(�,‰,ÓÙ�—‘˜GÓ$ñó %ó ðð$ ñ	ó ð	ñ �—‘˜LÓ)ñ.ó *ð.ð ñ	ó ð	ñ 
ˆ(�+‰+ÓÙ�—‘˜JÓ'ñ,ó (ó ð,ñ 
ˆ(�+‰+ÓÙ�—‘˜LÓ)ñó *ó ðð ñ	ó ð	ñ 
ˆ(�+‰+Óñ&ó ð&ñ
 
ˆ(�+‰+Óñó ðð ñ	ó ð	ñ 
ˆ(�+‰+Óñ&ó ð&ñ
 
ˆ(�+‰+Óñó ðñ ˆx�|‰|˜UŸY™Y¨¯	©	Ó2ñ-ó 3ð-ñ ˆE�I‰I�u—y‘yÓ!ñó "ñr)   