§
    2@Äj‰ü  ã                   ó@  — d dl mZ d dlZd dlmZmZmZmZ d dl	m
Z
mZmZmZ d dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d d	lmZ d d
l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+ d dl,m-Z-m.Z. d dl/m0Z0 dZ1 G d„ dee¦  «        Z2 edd¬¦  «         G d„ de¦  «        ¦   «         Z3 G d„ dee¦  «        Z4 G d„ dee¦  «        Z5 G d„ dee¦  «        Z6 G d„ de¦  «        Z7d„ Z8 G d„ de¦  «        Z9 G d „ d!e¦  «        Z:e;d"k    r ej<        ¦   «          dS dS )#é    )Ú
namedtupleN)ÚTestCaseÚMemoryLeakMixinÚskip_parfors_unsupportedÚcaptured_stdout)ÚnjitÚtypedÚliteral_unrollÚprange)ÚtypesÚerrorsÚir)Úunittest)Úoverload)ÚPassManagerÚregister_passÚFunctionPassÚAnalysisPass©ÚCompilerBase)Ú	FixupArgsÚTranslateByteCodeÚIRProcessingÚInlineClosureLikesÚSimplifyCFGÚIterLoopCanonicalizationÚLiteralUnrollÚ
PreserveIR)ÚNopythonTypeInferenceÚIRLegalizationÚNoPythonBackendÚPartialTypeInferenceÚNativeLowering)Úcompute_cfg_from_blocksÚflatten_labels)Ú_header_lead©é
   é   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLiteralTupleInterpretationc                 ó  — |j         |j        d                  }|j        j        |         }|                      t          |t          j        ¦  «        ¦  «         |D ]0}|                      t          |t          j        ¦  «        d¦  «         Œ1d S )Nr   únon literal)	Ú	overloadsÚ
signaturesÚfndescÚtypemapÚ
assertTrueÚ
isinstancer   ÚTupleÚLiteral)ÚselfÚfuncÚvarÚcresÚtyÚsubtys         úVC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_mixed_tuple_unroller.pyÚcheckz$TestLiteralTupleInterpretation.check   s‚   € ØŒ~˜dœo¨aÔ0Ô1ˆØŒ[Ô  Ô%ˆØ�Š�
 2¥u¤{Ñ3Ô3Ñ4Ô4Ð4Øð 	Mð 	MˆEØ�OŠO�J u­e¬mÑ<Ô<¸mÑLÔLÐLÐLð	Mð 	Mó    c                 ó²   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         |                      |d¦  «         d S )Nc                  ó   — d} | d         S )N©é   é   é   rB   © ©Úxs    r<   ÚfoozDTestLiteralTupleInterpretation.test_homogeneous_literal.<locals>.foo$   s   € àˆAØ�Q”4ˆKr>   rG   ©r   ÚassertEqualÚpy_funcr=   ©r6   rH   s     r<   Útest_homogeneous_literalz7TestLiteralTupleInterpretation.test_homogeneous_literal#   ó[   € Ý	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ø�
Š
�3˜ÑÔÐÐÐr>   c                 ó²   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         |                      |d¦  «         d S )Nc                  ó   — d} | d         S )N)rB   rC   rD   ÚarD   rE   rF   s    r<   rH   zFTestLiteralTupleInterpretation.test_heterogeneous_literal.<locals>.foo-   s   € àˆAØ�Q”4ˆKr>   rG   rI   rL   s     r<   Útest_heterogeneous_literalz9TestLiteralTupleInterpretation.test_heterogeneous_literal,   rN   r>   c                 óf  — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         |                      t          ¦  «        5 }|                      |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                  ó   — d} | d         S )N)rB   rC   rD   rQ   ù              ð?é   rE   rF   s    r<   rH   z<TestLiteralTupleInterpretation.test_non_literal.<locals>.foo6   s   € à"ˆAØ�Q”4ˆKr>   rG   r-   )	r   rJ   rK   ÚassertRaisesÚAssertionErrorr=   ÚassertInÚstrÚ	exception)r6   rH   Úes      r<   Útest_non_literalz/TestLiteralTupleInterpretation.test_non_literal5   sá   € Ý	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ø×Ò�~Ñ.Ô.ð 	!°!Ø�JŠJ�s˜CÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	�Š�m¥S¨¬Ñ%5Ô%5Ñ6Ô6Ð6Ð6Ð6s   ÁA>Á>BÂBN)Ú__name__Ú
__module__Ú__qualname__r=   rM   rR   r]   rE   r>   r<   r+   r+      sS   € € € € € ðMð Mð Mðð ð ðð ð ð
7ð 
7ð 
7ð 
7ð 
7r>   r+   F©Úmutates_CFGÚanalysis_onlyc                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚResetTypeInfoÚreset_the_type_informationc                 ó.   — t          j        | ¦  «         d S ©N©r   Ú__init__©r6   s    r<   rj   zResetTypeInfo.__init__F   s   € ÝÔ˜dÑ#Ô#Ð#Ð#Ð#r>   c                 ó0   — d |_         d |_        d |_        dS )NT)r1   Úreturn_typeÚ	calltypes)r6   Ústates     r<   Úrun_passzResetTypeInfo.run_passI   s   € ØˆŒØ ˆÔØˆŒØˆtr>   N)r^   r_   r`   Ú_namerj   rp   rE   r>   r<   re   re   B   s7   € € € € € à(€Eð$ð $ð $ðð ð ð ð r>   re   c                   óÖ   — e Zd Zdd„Z ed¦  «        Z ed¦  «        Z edd¦  «        Zd„ Zd„ Z e	j
        d¦  «        d„ ¦   «         Zd„ Z e	j
        d¦  «        d	„ ¦   «         Zd
„ ZdS )ÚTestLoopCanonicalisationFc                 ó6   ‡ ‡—  G ˆ ˆfd„dt           ¦  «        }|S )Nc                   ó   •— e Zd Zˆ ˆfd„ZdS )ú:TestLoopCanonicalisation.get_pipeline.<locals>.NewCompilerc                 óä  •— t          d¦  «        }|                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         ‰r|                     t
          d¦  «         ‰r|                     t          d¦  «         |                     t          d¦  «         ‰r|                     t          d¦  «         |                     t          d	¦  «         |                     t          d
¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     ¦   «          |gS )NÚcustom_pipelineúanalyzing bytecodeúprocessing IRz(inline calls to locally defined closureszdo partial typingzCanonicalise loopszSimplify the CFGzresets the type info stateúnopython frontendzensure IR is legalzsave IR for later inspectionúnative loweringúnopython mode backend)r   Úadd_passr   r   r   r"   r   r   re   r   r    r   r#   r!   Úfinalize)r6   ÚpmÚuse_canonicaliserÚuse_partial_typings     €€r<   Údefine_pipelineszKTestLoopCanonicalisation.get_pipeline.<locals>.NewCompiler.define_pipelinesU   sU  ø€ Ý Ð!2Ñ3Ô3�ð —’Õ-Ð/CÑDÔDÐDØ—’�L¨/Ñ:Ô:Ð:Ø—’Õ.ØFñHô Hð Hà%ð KØ—K’KÕ 4Ð6IÑJÔJÐJØ$ð PØ—K’KÕ 8Ð:NÑOÔOÐOØ—’�KÐ);Ñ<Ô<Ð<ð &ð MØ—K’K¥Ð/KÑLÔLÐLà—’Õ1Ð3FÑGÔGÐGð —’�NÐ,@ÑAÔAÐAð —’�JÐ(FÑGÔGÐGð —’�NÐ,=Ñ>Ô>Ð>Ø—’�OÐ-DÑEÔEÐEð —’‘”�à�t�r>   N)r^   r_   r`   rƒ   )r�   r‚   s   €€r<   ÚNewCompilerrv   S   s3   ø€ € € € € ð!ð !ð !ð !ð !ð !ð !ð !r>   r„   r   )r�   r‚   r„   s   `` r<   Úget_pipelinez%TestLoopCanonicalisation.get_pipelineR   sF   øø€ ð#	ð #	ð #	ð #	ð #	ð #	ð #	ð #	�,ñ #	ô #	ð #	ðH Ðr>   Tc                 ó  ‡ — ˆ fd„} |‰ j         ¦  «        \  }} |‰ j        ¦  «        \  }}ˆ fd„} |||¦  «         ‰                      t          |j        ¦  «        dz   t          |j        ¦  «        ¦  «         d„ } ||d¦  «        }‰                      t          |¦  «        d¦  «          ||d¦  «        }	‰                      t          |	¦  «        d¦  «          ||d¦  «        }
‰                      t          |
¦  «        d¦  «         ‰                      |d         j        j        |
d         j        j        ¦  «         |j        |	d                  j        d         }‰                      t          |t          j        ¦  «        ¦  «         d	S )
ú- This heavily checks a simple loop transform c                 óú   •— t          | ¬¦  «        d„ ¦   «         }d}‰                      ||¦  «        |                     |¦  «        ¦  «         |j        |j        d                  }|j        d         }||j        fS )N©Úpipeline_classc                 ó   — d}| D ]}||z  }Œ|S ©Nr   rE   )ÚtupÚaccÚis      r<   rH   zQTestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.get_info.<locals>.foo‚   s&   € à�Øð ð �AØ˜1‘H�C�CØ�
r>   rA   r   Úpreserved_ir©r   rJ   rK   r.   r/   Úmetadatar0   ©ÚpipelinerH   rG   r9   Úfunc_irr6   s        €r<   Úget_infozDTestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.get_info�   sƒ   ø€ Ý Ð*Ñ*Ô*ðð ñ +Ô*ðð ˆAØ×Ò˜S˜S ™VœV S§[¢[°¡^¤^Ñ4Ô4Ð4Ø”= ¤°Ô!2Ô3ˆDØ”m NÔ3ˆGØ˜DœKÐ'Ð'r>   c                 ó¸   •— t          t          | j        ¦  «        ¦  «        }t          t          |j        ¦  «        ¦  «        }‰                     ||¦  «         d S rh   ©r$   r%   ÚblocksrJ   ©rQ   ÚbÚa_cfgÚb_cfgr6   s       €r<   Úcompare_cfgzGTestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.compare_cfg•   óM   ø€ Ý+­N¸1¼8Ñ,DÔ,DÑEÔEˆEÝ+­N¸1¼8Ñ,DÔ,DÑEÔEˆEØ×Ò˜U EÑ*Ô*Ð*Ð*Ð*r>   rD   c                 óN   ‡— ˆfd„| j                              ¦   «         D ¦   «         S )Nc                 ó^   •— g | ])}t          |t          j        ¦  «        r|j        ‰k    ¯'|‘Œ*S rE   ©r3   r   ÚExprÚop©Ú.0rG   r¤   s     €r<   ú
<listcomp>zYTestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.find_getX.<locals>.<listcomp>¤   ó?   ø€ ð >ð >ð >˜!Ý! !¥R¤WÑ-Ô-ð>Ø23´$¸"²*°*ð Ø2<°*°*r>   ©rn   Úkeys©Úfdr¤   s    `r<   Ú	find_getXzETestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.find_getX£   ó;   ø€ ð>ð >ð >ð >˜rœ|×0Ò0Ñ2Ô2ð >ñ >ô >ð >r>   ÚgetiterrB   Úgetitemr   N©ÚLoopIgnoringCompilerÚLoopCanonicalisingCompilerrJ   Úlenrn   ÚvalueÚnameÚargsr2   r3   r   Ú	RangeType©r6   r–   Úignore_loops_irÚignore_loops_fndescÚcanonicalise_loops_irÚcanonicalise_loops_fndescrž   r­   Úil_getitersÚcl_getitersÚcl_getitemsÚ
range_insts   `           r<   Útest_simple_loop_in_depthz2TestLoopCanonicalisation.test_simple_loop_in_depth~   sÎ  ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð ˆH�TÔ.Ñ/Ô/ñ 	-ˆÐ,ð ˆH�TÔ4Ñ5Ô5ñ 	9ÐÐ8ð	+ð 	+ð 	+ð 	+ð 	+ð
 	ˆ�OÐ%:Ñ;Ô;Ð;ð 	×Ò�Ð0Ô:Ñ;Ô;¸aÑ?ÝÐ6Ô@ÑAÔAñ	Cô 	Cð 	Cð	>ð 	>ð 	>ð  �iÐ 3°YÑ?Ô?ˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-ð 	×Ò˜ QœÔ-Ô2°KÀ´NÔ4HÔ4MÑNÔNÐNð /Ô8¸ÀQ¼ÔHÔMÈaÔPˆ
Ø�Š�
 :­u¬Ñ?Ô?Ñ@Ô@Ð@Ð@Ð@r>   c                 ó  ‡ — ˆ fd„} |‰ j         ¦  «        \  }} |‰ j        ¦  «        \  }}ˆ fd„} |||¦  «         ‰                      t          |j        ¦  «        dz   t          |j        ¦  «        ¦  «         d„ } ||d¦  «        }‰                      t          |¦  «        d¦  «          ||d¦  «        }	‰                      t          |	¦  «        d¦  «          ||d¦  «        }
‰                      t          |
¦  «        d¦  «         ‰                      |d         j        j        |
d         j        j        ¦  «         |j        |	d                  j        d         }‰                      t          |t          j        ¦  «        ¦  «         d	S )
z† This checks the transform, when there's no typemap, will happily
        transform a loop on something that's not tuple-like
        c                 óò   •— t          | ¬¦  «        d„ ¦   «         }‰                      |¦   «         |                     ¦   «         ¦  «         |j        |j        d                  }|j        d         }||j        fS )Nr‰   c                  ó   — d} dD ]}| |z  } Œ| S ©Nr   rA   rE   ©rŽ   r�   s     r<   rH   zLTestLoopCanonicalisation.test_transform_scope.<locals>.get_info.<locals>.foo½   s&   € à�Ø"ð ð �AØ˜1‘H�C�CØ�
r>   r   r�   r‘   )r”   rH   r9   r•   r6   s       €r<   r–   z?TestLoopCanonicalisation.test_transform_scope.<locals>.get_info¼   sz   ø€ Ý Ð*Ñ*Ô*ðð ñ +Ô*ðð ×Ò˜S˜S™UœU C§K¢K¡M¤MÑ2Ô2Ð2Ø”= ¤°Ô!2Ô3ˆDØ”m NÔ3ˆGØ˜DœKÐ'Ð'r>   c                 ó¸   •— t          t          | j        ¦  «        ¦  «        }t          t          |j        ¦  «        ¦  «        }‰                     ||¦  «         d S rh   r˜   rš   s       €r<   rž   zBTestLoopCanonicalisation.test_transform_scope.<locals>.compare_cfgÏ   rŸ   r>   rD   c                 óN   ‡— ˆfd„| j                              ¦   «         D ¦   «         S )Nc                 ó^   •— g | ])}t          |t          j        ¦  «        r|j        ‰k    ¯'|‘Œ*S rE   r¢   r¥   s     €r<   r§   zTTestLoopCanonicalisation.test_transform_scope.<locals>.find_getX.<locals>.<listcomp>Þ   r¨   r>   r©   r«   s    `r<   r­   z@TestLoopCanonicalisation.test_transform_scope.<locals>.find_getXÝ   r®   r>   r¯   rB   r°   r   Nr±   r¹   s   `           r<   Útest_transform_scopez-TestLoopCanonicalisation.test_transform_scope¸   sÎ  ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð ˆH�TÔ.Ñ/Ô/ñ 	-ˆÐ,ð ˆH�TÔ4Ñ5Ô5ñ 	9ÐÐ8ð	+ð 	+ð 	+ð 	+ð 	+ð
 	ˆ�OÐ%:Ñ;Ô;Ð;ð 	×Ò�Ð0Ô:Ñ;Ô;¸aÑ?ÝÐ6Ô@ÑAÔAñ	Cô 	Cð 	Cð	>ð 	>ð 	>ð  �iÐ 3°YÑ?Ô?ˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-ð 	×Ò˜ QœÔ-Ô2°KÀ´NÔ4HÔ4MÑNÔNÐNð /Ô8¸ÀQ¼ÔHÔMÈaÔPˆ
Ø�Š�
 :­u¬Ñ?Ô?Ñ@Ô@Ð@Ð@Ð@r>   z-Waiting for pass to be enabled for all tuplesc                 ó  ‡ — ˆ fd„} |‰ j         ¦  «        \  }} |‰ j        ¦  «        \  }}ˆ fd„} |||¦  «         ‰                      t          |j        ¦  «        dz   t          |j        ¦  «        ¦  «         d„ } ||d¦  «        }‰                      t          |¦  «        d¦  «          ||d¦  «        }	‰                      t          |	¦  «        d¦  «          ||d¦  «        }
‰                      t          |
¦  «        d¦  «         ‰                      |d         j        j        |
d         j        j        ¦  «         |	D ]G}|j        |         j        d         }‰                      t          |t          j        ¦  «        ¦  «         ŒHd	S )
zT This heavily checks a typed transformation only impacts tuple
        induced loopsc                 óú   •— t          | ¬¦  «        d„ ¦   «         }d}‰                      ||¦  «        |                     |¦  «        ¦  «         |j        |j        d                  }|j        d         }||j        fS )Nr‰   c                 óf   — d}t          d¦  «        D ]}| D ]}t          d¦  «        D ]}|dz  }ŒŒŒ|S ©Nr   rV   rD   rB   ©Úrange©r�   rŽ   r�   ÚyÚjs        r<   rH   zYTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.get_info.<locals>.fooø   s\   € à�Ý˜q™œð %ð %�AØ ð %ð %˜Ý!& q¡¤ð %ð %˜AØ 1™H˜C˜Cð%ð%ð �
r>   rA   r   r•   r‘   r“   s        €r<   r–   zLTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.get_info÷   sƒ   ø€ Ý Ð*Ñ*Ô*ðð ñ +Ô*ðð ˆAØ×Ò˜S˜S ™VœV S§[¢[°¡^¤^Ñ4Ô4Ð4Ø”= ¤°Ô!2Ô3ˆDØ”m IÔ.ˆGØ˜DœKÐ'Ð'r>   c                 ó¸   •— t          t          | j        ¦  «        ¦  «        }t          t          |j        ¦  «        ¦  «        }‰                     ||¦  «         d S rh   r˜   rš   s       €r<   rž   zOTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.compare_cfg  rŸ   r>   rD   c                 óN   ‡— ˆfd„| j                              ¦   «         D ¦   «         S )Nc                 ó^   •— g | ])}t          |t          j        ¦  «        r|j        ‰k    ¯'|‘Œ*S rE   r¢   r¥   s     €r<   r§   zaTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.find_getX.<locals>.<listcomp>  r¨   r>   r©   r«   s    `r<   r­   zMTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.find_getX  r®   r>   r¯   r°   rB   r   N©r²   ÚTypedLoopCanonicalisingCompilerrJ   r´   rn   rµ   r¶   r·   r2   r3   r   r¸   ©r6   r–   rº   r»   r¼   r½   rž   r­   r¾   r¿   rÀ   rG   rÁ   s   `            r<   Ú!test_influence_of_typed_transformz:TestLoopCanonicalisation.test_influence_of_typed_transformò   sä  ø€ ð
	(ð 	(ð 	(ð 	(ð 	(ð" ˆH�TÔ.Ñ/Ô/ñ 	-ˆÐ,ð ˆH�TÔ9Ñ:Ô:ñ 	9ÐÐ8ð	+ð 	+ð 	+ð 	+ð 	+ð
 	ˆ�OÐ%:Ñ;Ô;Ð;ð 	×Ò�Ð0Ô:Ñ;Ô;¸aÑ?ÝÐ6Ô@ÑAÔAñ	Cô 	Cð 	Cð	>ð 	>ð 	>ð  �iÐ 3°YÑ?Ô?ˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-ð 	×Ò˜ QœÔ-Ô2°KÀ´NÔ4HÔ4MÑNÔNÐNð ð 	Eð 	EˆAØ2Ô<¸QÔ?ÔDÀQÔGˆJØ�OŠO�J zµ5´?ÑCÔCÑDÔDÐDÐDð	Eð 	Er>   c                 ó  ‡ — ˆ fd„} |‰ j         ¦  «        \  }} |‰ j        ¦  «        \  }}ˆ fd„} |||¦  «         ‰                      t          |j        ¦  «        dz   t          |j        ¦  «        ¦  «         d„ } ||d¦  «        }‰                      t          |¦  «        d¦  «          ||d¦  «        }	‰                      t          |	¦  «        d¦  «          ||d¦  «        }
‰                      t          |
¦  «        d¦  «         ‰                      |d         j        j        |
d         j        j        ¦  «         |	D ]G}|j        |         j        d         }‰                      t          |t          j        ¦  «        ¦  «         ŒHd	S )
za This heavily checks a typed transformation only impacts loops with
        literal_unroll markerc                 óú   •— t          | ¬¦  «        d„ ¦   «         }d}‰                      ||¦  «        |                     |¦  «        ¦  «         |j        |j        d                  }|j        d         }||j        fS )Nr‰   c                 ó€   — d}t          d¦  «        D ]+}t          | ¦  «        D ]}t          d¦  «        D ]}|dz  }ŒŒŒ,|S rÏ   )rÑ   r
   rÒ   s        r<   rH   zhTestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.get_info.<locals>.foo6  sd   € à�Ý˜q™œð %ð %�AÝ+¨CÑ0Ô0ð %ð %˜Ý!& q¡¤ð %ð %˜AØ 1™H˜C˜Cð%ð%ð �
r>   rA   r   r�   r‘   r“   s        €r<   r–   z[TestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.get_info5  sƒ   ø€ Ý Ð*Ñ*Ô*ðð ñ +Ô*ðð ˆAØ×Ò˜S˜S ™VœV S§[¢[°¡^¤^Ñ4Ô4Ð4Ø”= ¤°Ô!2Ô3ˆDØ”m NÔ3ˆGØ˜DœKÐ'Ð'r>   c                 ó¸   •— t          t          | j        ¦  «        ¦  «        }t          t          |j        ¦  «        ¦  «        }‰                     ||¦  «         d S rh   r˜   rš   s       €r<   rž   z^TestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.compare_cfgK  rŸ   r>   rD   c                 óN   ‡— ˆfd„| j                              ¦   «         D ¦   «         S )Nc                 ó^   •— g | ])}t          |t          j        ¦  «        r|j        ‰k    ¯'|‘Œ*S rE   r¢   r¥   s     €r<   r§   zpTestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.find_getX.<locals>.<listcomp>Z  r¨   r>   r©   r«   s    `r<   r­   z\TestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.find_getXY  r®   r>   r¯   r°   rB   r   NrØ   rÚ   s   `            r<   Ú0test_influence_of_typed_transform_literal_unrollzITestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll1  sä  ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð" ˆH�TÔ.Ñ/Ô/ñ 	-ˆÐ,ð ˆH�TÔ9Ñ:Ô:ñ 	9ÐÐ8ð	+ð 	+ð 	+ð 	+ð 	+ð
 	ˆ�OÐ%:Ñ;Ô;Ð;ð 	×Ò�Ð0Ô:Ñ;Ô;¸aÑ?ÝÐ6Ô@ÑAÔAñ	Cô 	Cð 	Cð	>ð 	>ð 	>ð  �iÐ 3°YÑ?Ô?ˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-à�iÐ 9¸9ÑEÔEˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-ð 	×Ò˜ QœÔ-Ô2°KÀ´NÔ4HÔ4MÑNÔNÐNð ð 	Eð 	EˆAØ2Ô<¸QÔ?ÔDÀQÔGˆJØ�OŠO�J zµ5´?ÑCÔCÑDÔDÐDÐDð	Eð 	Er>   c                 óú   ‡ — ˆ fd„} |‰ j         ¦  «        \  }} |‰ j        ¦  «        \  }}ˆ fd„} |||¦  «         ‰                      t          |j        ¦  «        dz   t          |j        ¦  «        ¦  «         dS )r‡   c                 óú   •— t          | ¬¦  «        d„ ¦   «         }d}‰                      ||¦  «        |                     |¦  «        ¦  «         |j        |j        d                  }|j        d         }||j        fS )Nr‰   c                 ór   — d}| D ]$}||z  }| dz   D ]}|d|z
  z  }|dk    r nŒ|dz  }Œ%| D ]
}||dz  z  }Œ|S )Nr   )rV   é   é   rB   ræ   rC   rE   )r�   rŽ   r�   rÔ   s       r<   rH   zJTestLoopCanonicalisation.test_lots_of_loops.<locals>.get_info.<locals>.foot  s�   € à�Øð !ð !�AØ˜1‘H�CØ  9™_ð !ð !˜Ø˜q 1™u™˜Ø˜qš5˜5Ø!˜Eð !ð ˜q™˜øØð !ð !�AØ˜1˜q™5‘L�C�Cà�
r>   rA   r   r�   r‘   r“   s        €r<   r–   z=TestLoopCanonicalisation.test_lots_of_loops.<locals>.get_infos  sƒ   ø€ Ý Ð*Ñ*Ô*ðð ñ +Ô*ðð ˆAØ×Ò˜S˜S ™VœV S§[¢[°¡^¤^Ñ4Ô4Ð4Ø”= ¤°Ô!2Ô3ˆDØ”m NÔ3ˆGØ˜DœKÐ'Ð'r>   c                 ó¸   •— t          t          | j        ¦  «        ¦  «        }t          t          |j        ¦  «        ¦  «        }‰                     ||¦  «         d S rh   r˜   rš   s       €r<   rž   z@TestLoopCanonicalisation.test_lots_of_loops.<locals>.compare_cfg�  rŸ   r>   é	   N©r²   r³   rJ   r´   rn   ©r6   r–   rº   r»   r¼   r½   rž   s   `      r<   Útest_lots_of_loopsz+TestLoopCanonicalisation.test_lots_of_loopso  sÎ   ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð0 ˆH�TÔ.Ñ/Ô/ñ 	-ˆÐ,ð ˆH�TÔ4Ñ5Ô5ñ 	9ÐÐ8ð	+ð 	+ð 	+ð 	+ð 	+ð
 	ˆ�OÐ%:Ñ;Ô;Ð;ð 	×Ò�Ð0Ô:Ñ;Ô;¸eÑCÝÐ6Ô@ÑAÔAñ	Cô 	Cð 	Cð 	Cð 	Cr>   c                 óú   ‡ — ˆ fd„} |‰ j         ¦  «        \  }} |‰ j        ¦  «        \  }}ˆ fd„} |||¦  «         ‰                      t          |j        ¦  «        dz   t          |j        ¦  «        ¦  «         dS )z( Checks a loop appearing from a closure c                 óú   •— t          | ¬¦  «        d„ ¦   «         }d}‰                      ||¦  «        |                     |¦  «        ¦  «         |j        |j        d                  }|j        d         }||j        fS )Nr‰   c                 ó@   — d„ }d}| D ]}||z  }| ||¦  «        z  }Œ|S )Nc                 ó8   — d}t          | ¦  «        D ]}|dz  }Œ|S ©Nr   rB   rÐ   )ÚnrŽ   r�   s      r<   ÚbarzWTestLoopCanonicalisation.test_inlined_loops.<locals>.get_info.<locals>.foo.<locals>.bar¤  s,   € Ø�CÝ" 1™XœXð !ð !˜Ø˜q™˜˜Ø�Jr>   r   rE   )r�   ró   rŽ   r�   s       r<   rH   zJTestLoopCanonicalisation.test_inlined_loops.<locals>.get_info.<locals>.foo¢  sH   € ðð ð ð �Øð "ð "�AØ˜1‘H�CØ˜3˜3˜q™6œ6‘M�C�Cà�
r>   rA   r   r�   r‘   r“   s        €r<   r–   z=TestLoopCanonicalisation.test_inlined_loops.<locals>.get_info¡  sƒ   ø€ Ý Ð*Ñ*Ô*ðð ñ +Ô*ðð ˆAØ×Ò˜S˜S ™VœV S§[¢[°¡^¤^Ñ4Ô4Ð4Ø”= ¤°Ô!2Ô3ˆDØ”m NÔ3ˆGØ˜DœKÐ'Ð'r>   c                 ó¸   •— t          t          | j        ¦  «        ¦  «        }t          t          |j        ¦  «        ¦  «        }‰                     ||¦  «         d S rh   r˜   rš   s       €r<   rž   z@TestLoopCanonicalisation.test_inlined_loops.<locals>.compare_cfg½  rŸ   r>   ræ   Nrê   rë   s   `      r<   Útest_inlined_loopsz+TestLoopCanonicalisation.test_inlined_loopsž  sÎ   ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð. ˆH�TÔ.Ñ/Ô/ñ 	-ˆÐ,ð ˆH�TÔ4Ñ5Ô5ñ 	9ÐÐ8ð	+ð 	+ð 	+ð 	+ð 	+ð
 	ˆ�OÐ%:Ñ;Ô;Ð;ð 	×Ò�Ð0Ô:Ñ;Ô;¸aÑ?ÝÐ6Ô@ÑAÔAñ	Cô 	Cð 	Cð 	Cð 	Cr>   N)F)r^   r_   r`   r…   r²   r³   rÙ   rÂ   rË   r   ÚskiprÛ   râ   rì   rõ   rE   r>   r<   rs   rs   P   s  € € € € € ð%ð %ð %ð %ðP (˜<¨Ñ.Ô.ÐØ!- ¨dÑ!3Ô!3ÐØ&2 l°4¸Ñ&>Ô&>Ð#ð8Að 8Að 8Aðt8Að 8Að 8Aðt €X„]ÐBÑCÔCð<Eð <Eñ DÔCð<Eð|<Eð <Eð <Eð| €X„]ÐBÑCÔCð,Cð ,Cñ DÔCð,Cð\,Cð ,Cð ,Cð ,Cð ,Cr>   rs   c                   óB  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Z ej	        d¦  «        d„ ¦   «         Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze d„ ¦   «         Z!e d„ ¦   «         Z"e d„ ¦   «         Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d%„ Z)d&S )'ÚTestMixedTupleUnrollc                 ó–   — t           d„ ¦   «         }d}|}|                       |d|¦  «        |                     d|¦  «        ¦  «         d S )Nc                 ó°   — dddd|d|z  f}d}t          t          t          |¦  «        ¦  «        ¦  «        D ]}|||         z  }|j        dk     r|dz  }Œ |S ©	Né   çffffff)@ù              @rV   rC   r   é   rB   ©rÑ   r´   r
   Úreal)ÚidxÚzrQ   rŽ   r�   s        r<   rH   z)TestMixedTupleUnroll.test_01.<locals>.fooÑ  so   € à�T˜2˜q ! Q¨¡UÐ+ˆAØˆCÝ�3�~¨aÑ0Ô0Ñ1Ô1Ñ2Ô2ð ð �Ø�q˜”t‘�Ø”8˜b’=�=Ø˜1‘H�C�CàØˆJr>   ré   rC   ©r   rJ   rK   ©r6   rH   ÚfÚks       r<   Útest_01zTestMixedTupleUnroll.test_01Ï  s[   € å	ð		ð 		ñ 
Œð		ð ˆØˆà×Ò˜˜˜Q ™œ C§K¢K°°1Ñ$5Ô$5Ñ6Ô6Ð6Ð6Ð6r>   c                 ó–   — t           d„ ¦   «         }d}|}|                       |d|¦  «        |                     d|¦  «        ¦  «         d S )Nc                 óp   — dddd|d|z  f}d}t          |¦  «        D ]}||z  }|j        dk     r|dz  }Œ |S rû   ©r
   r  )r  r  rG   rŽ   rQ   s        r<   rH   z)TestMixedTupleUnroll.test_02.<locals>.fooå  s[   € à�T˜2˜q ! Q¨¡UÐ+ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�CàØˆJr>   ré   rC   r  r  s       r<   Útest_02zTestMixedTupleUnroll.test_02â  s]   € õ 
ð		ð 		ñ 
Œð		ð ˆØˆà×Ò˜˜˜Q ™œ C§K¢K°°1Ñ$5Ô$5Ñ6Ô6Ð6Ð6Ð6r>   c                 ó–   — t           d„ ¦   «         }d}|}|                       |d|¦  «        |                     d|¦  «        ¦  «         d S )Nc                 ó²   — dddd|d|z  f}d|d|z  f}d}t          |¦  «        D ]1}||z  }|j        dk     r|d	z  }Œt          |¦  «        D ]	}||d
u z  }Œ
 |S )Nrü   rý   rþ   rV   rC   rH   r   rÿ   rB   Fr  )r  r  rG   rÓ   rŽ   rQ   Úts          r<   rH   z)TestMixedTupleUnroll.test_03.<locals>.fooø  s’   € à�T˜2˜q ! Q¨¡UÐ+ˆAØ˜˜1˜q™5Ð!ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�Cå+¨AÑ.Ô.ð *ð *˜Ø˜q E˜zÑ)˜˜ØØˆJr>   ré   rC   r  r  s       r<   Útest_03zTestMixedTupleUnroll.test_03ö  s[   € å	ð	ð 	ñ 
Œð	ð ˆØˆà×Ò˜˜˜Q ™œ C§K¢K°°1Ñ$5Ô$5Ñ6Ô6Ð6Ð6Ð6r>   c                 ó  — t           d„ ¦   «         }d}t          j        |f¦  «        t          j        ||f¦  «        t          j        |||f¦  «        f}|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nc                 ó\   — d}t          | ¦  «        D ]}||                     ¦   «         z  }Œ|S rŒ   ©r
   Úsum©r�   rŽ   rQ   s      r<   rH   z)TestMixedTupleUnroll.test_04.<locals>.foo  s6   € àˆCÝ# CÑ(Ô(ð ð �Ø�q—u’u‘w”w‘��ØˆJr>   r(   ©r   ÚnpÚonesrJ   rK   ©r6   rH   rò   r�   s       r<   Útest_04zTestMixedTupleUnroll.test_04  s„   € å	ð	ð 	ñ 
Œð	ð ˆÝŒw˜�t‰}Œ}�bœg q¨! f™oœo­r¬w¸¸1¸a°yÑ/AÔ/AÐBˆØ×Ò˜˜˜S™œ 3§;¢;¨sÑ#3Ô#3Ñ4Ô4Ð4Ð4Ð4r>   c                 óv  — t           d„ ¦   «         }d}d}t          j        |f¦  «        t          j        ||f¦  «        t          j        |||f¦  «        t          j        ||||f¦  «        t          j        |||||f¦  «        f}|                       |||¦  «        |                     ||¦  «        ¦  «         d S )Nc                 ó²  — d}t          | ¦  «        D ]Ä}|dk    r||d                              ¦   «         z  }Œ&|dk    r||d                              ¦   «         z  }ŒJ|dk    r||d                              ¦   «         z  }Œn|dk    r||d                              ¦   «         z  }Œ’|d	k    r||d
                              ¦   «         z  }Œ¶t          d¦  «        ‚|S )Nr   rQ   r›   rB   ÚcrC   rü   rD   rþ   rV   ÚUnreachable)r
   r  ÚRuntimeError©Útup1Útup2rŽ   rQ   s       r<   rH   z)TestMixedTupleUnroll.test_05.<locals>.foo  sÖ   € àˆCÝ# DÑ)Ô)ð 6ð 6�Ø˜’8�8Ø˜4 œ7Ÿ;š;™=œ=Ñ(�C�CØ˜#’X�XØ˜4 œ7Ÿ;š;™=œ=Ñ(�C�CØ˜#’X�XØ˜4 œ7Ÿ;š;™=œ=Ñ(�C�CØ˜"’W�WØ˜4 œ7Ÿ;š;™=œ=Ñ(�C�CØ˜"’W�WØ˜4 œ7Ÿ;š;™=œ=Ñ(�C�Cå& }Ñ5Ô5Ð5ØˆJr>   r(   )rQ   r›   r  rü   rþ   r  )r6   rH   rò   r!  r"  s        r<   Útest_05zTestMixedTupleUnroll.test_05  s»   € å	ð	ð 	ñ 
Œð	ð" ˆØ'ˆÝ”˜˜‘”�rœw¨¨1 v™œµ´¸¸A¸q¸	Ñ0BÔ0BÝ”˜˜A˜q !˜Ñ%Ô%¥r¤w°°1°a¸¸A¨Ñ'?Ô'?ðAˆà×Ò˜˜˜T 4™œ¨#¯+ª+°d¸DÑ*AÔ*AÑBÔBÐBÐBÐBr>   zneeds more clever branch prunec                 óŽ   — t           d„ ¦   «         }d}|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nc                 óÂ   — d}t           j                             t          j        ¦  «        }t          | ¦  «        D ]#}|dk    r|                     |¦  «         Œ||z  }Œ$|S )Nr   rQ   )r	   ÚListÚ
empty_listr   Úunicode_typer
   Úappend)r�   rŽ   Ústr_bufrQ   s       r<   rH   z)TestMixedTupleUnroll.test_06.<locals>.foo7  sd   € àˆCÝ”j×+Ò+­EÔ,>Ñ?Ô?ˆGÝ# CÑ(Ô(ð ð �Ø˜’8�8Ø—N’N 1Ñ%Ô%Ð%Ð%à˜1‘H�C�CØˆJr>   )rQ   rü   r  )r6   rH   r�   s      r<   Útest_06zTestMixedTupleUnroll.test_063  sT   € õ 
ð	ð 	ñ 
Œð	ð ˆØ×Ò˜˜˜S™œ 3§;¢;¨sÑ#3Ô#3Ñ4Ô4Ð4Ð4Ð4r>   c                 óð   — t           d„ ¦   «         }d}t          j        |f¦  «        t          j        ||f¦  «        dddh d£f}|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nc                 óR   — d}t          | ¦  «        D ]}|t          |¦  «        z  }Œ|S rŒ   ©r
   r´   r  s      r<   rH   z)TestMixedTupleUnroll.test_07.<locals>.fooG  s4   € àˆCÝ# CÑ(Ô(ð ð �Ø•s˜1‘v”v‘��ØˆJr>   r(   Ú
ABCDEFGHJIrA   ©rB   rH   rC   ró   ¾   rD   rV   ræ   rç   é   r  r  s       r<   Útest_07zTestMixedTupleUnroll.test_07E  s�   € å	ð	ð 	ñ 
Œð	ð ˆÝŒw˜�t‰}Œ}�bœg q¨! f™oœo¨|¸YØ# _ _ _ð6ˆà×Ò˜˜˜S™œ 3§;¢;¨sÑ#3Ô#3Ñ4Ô4Ð4Ð4Ð4r>   c                 óØ   — t           d„ ¦   «         }d„ }d} |d¦  «         |d¦  «         |d¦  «        f}|                       |||¦  «        |                     ||¦  «        ¦  «         d S )Nc                 óÈ   — d}t          | ¦  «        D ]O}|dk    r| |d         ¦   «         z  }Œ|dk    r| |d         ¦   «         z  }Œ6|dk    r| |d         ¦   «         z  }ŒP|S )Nr   rQ   r›   rB   r  rC   ©r
   r   s       r<   rH   z)TestMixedTupleUnroll.test_08.<locals>.fooV  s   € àˆCÝ# DÑ)Ô)ð %ð %�Ø˜’8�8Ø˜7˜4 œ7™9œ9Ñ$�C�CØ˜#’X�XØ˜7˜4 œ7™9œ9Ñ$�C�CØ˜#’X�XØ˜7˜4 œ7™9œ9Ñ$�CøØˆJr>   c                 ó,   ‡ — ˆ fd„}t          |¦  «        S )Nc                  ó   •— ‰ S rh   rE   rF   s   €r<   Úimplz7TestMixedTupleUnroll.test_08.<locals>.gen.<locals>.implc  s   ø€ Ø�r>   ©r   )rG   r9  s   ` r<   Úgenz)TestMixedTupleUnroll.test_08.<locals>.genb  s(   ø€ ðð ð ð ð å˜‘:”:Ðr>   )rQ   r›   r  rü   rþ   )r  rB   rC   rD   r  )r6   rH   r;  r!  r"  s        r<   Útest_08zTestMixedTupleUnroll.test_08S  s‹   € õ 
ð		ð 		ñ 
Œð		ð	ð 	ð 	ð
 /ˆØ��A‘”˜˜˜A™œ   A¡¤Ð'ˆØ×Ò˜˜˜T 4™œ¨#¯+ª+°d¸DÑ*AÔ*AÑBÔBÐBÐBÐBr>   c                 ón  — t           d„ ¦   «         }t           d„ ¦   «         }t           d„ ¦   «         }t           d„ ¦   «         }d}d}|                      t          j        ¦  «        5 } |||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t
          t          |j        ¦  «        ¦  «         d S )Nc                 óª   — d}d}t          | ¦  «        D ]<}|dk    r|||         z  }n#|dk    r|||         z  }n|dk    r|||         z  }|dz  }Œ=||fS )Nr   rQ   r›   r  rB   r6  )r!  r"  rŽ   r  rQ   s        r<   rH   z)TestMixedTupleUnroll.test_09.<locals>.foon  s€   € àˆCØˆCÝ# DÑ)Ô)ð ð �Ø˜’8�8Ø˜4 œ9Ñ$�C�CØ˜#’X�XØ˜4 œ9Ñ$�C�CØ˜#’X�XØ˜4 œ9Ñ$�CØ�q‘��Ø˜�8ˆOr>   c                  ó   — dS ©NrB   rE   rE   r>   r<   Úfunc1z+TestMixedTupleUnroll.test_09.<locals>.func1|  ó   € à�1r>   c                  ó   — dS ©NrC   rE   rE   r>   r<   Úfunc2z+TestMixedTupleUnroll.test_09.<locals>.func2€  rB  r>   c                  ó   — dS ©NrD   rE   rE   r>   r<   Úfunc3z+TestMixedTupleUnroll.test_09.<locals>.func3„  rB  r>   ©rQ   r›   r  )rU   rB   rC   ©r   rW   r   ÚTypingErrorrY   r&   rZ   r[   )r6   rH   rA  rE  rH  r!  r"  Úraisess           r<   Útest_09zTestMixedTupleUnroll.test_09k  s  € õ 
ð	ð 	ñ 
Œð	õ 
ð	ð 	ñ 
Œð	õ 
ð	ð 	ñ 
Œð	õ 
ð	ð 	ñ 
Œð	ð ˆØˆà×Ò�vÔ1Ñ2Ô2ð 	°fØˆC��d‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š•l¥C¨Ô(8Ñ$9Ô$9Ñ:Ô:Ð:Ð:Ð:s   Á$A=Á=BÂBc                 óÆ   ‡— d„ Št          ‰d¬¦  «        d„ ¦   «         }t          ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                 óL   — | dk    rdS | dk    rdS | dk    rdS | dk    rd| z   S d S ©	NÚapplerB   ÚorangerC   ÚbananarD   ì   +# é«¡\rE   ©rµ   s    r<   Údtz(TestMixedTupleUnroll.test_10.<locals>.dt“  óP   € Ø˜ÒÐØ�qØ˜(Ò"Ð"Ø�qØ˜(Ò"Ð"Ø�qØ˜*Ò$Ð$Ø! EÑ)Ð)ð %Ð$r>   Úalways©Úinlinec                 óè   ‡— t          | t          j        ¦  «        r&| j        Š‰dk    rd„ }n‰dk    rd„ }n	‰dk    rd„ }|S t          | t          j        ¦  «        r| j        Š‰dk    r	ˆfd„}|S d S d S )	NrQ  c                 ó   — dS r@  rE   ©Úlis    r<   r9  z9TestMixedTupleUnroll.test_10.<locals>.ol_dt.<locals>.impl¢  ó   € Ø ˜qr>   rR  c                 ó   — dS rD  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_10.<locals>.ol_dt.<locals>.impl¥  r`  r>   rS  c                 ó   — dS rG  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_10.<locals>.ol_dt.<locals>.impl¨  r`  r>   rT  c                 ó   •— d‰z   S ©NrU  rE   ©r_  rµ   s    €r<   r9  z9TestMixedTupleUnroll.test_10.<locals>.ol_dt.<locals>.impl®  ó   ø€ à)¨EÑ1Ð1r>   ©r3   r   ÚStringLiteralÚliteral_valueÚIntegerLiteral©r_  r9  rµ   s     @r<   Úol_dtz+TestMixedTupleUnroll.test_10.<locals>.ol_dt�  óÕ   ø€ å˜"�eÔ1Ñ2Ô2ð  ØÔ(�Ø˜GÒ#Ð#ð!ð !ð !ð !à˜hÒ&Ð&ð!ð !ð !ð !à˜hÒ&Ð&ð!ð !ð !à�Ý˜B¥Ô 4Ñ5Ô5ð  ØÔ(�Ø˜JÒ&Ð&ð2ð 2ð 2ð 2ð 2ð  �Kð ð  à&Ð&r>   c                  óL   •— d} t          d¦  «        D ]}|  ‰|¦  «        z  } Œ| S ©Nr   )rQ  rR  rS  rT  r6  ©rŽ   r  rW  s     €r<   rH   z)TestMixedTupleUnroll.test_10.<locals>.foo³  s8   ø€ àˆCÝ#Ð$MÑNÔNð ð �Ø�r�r˜!‘u”u‘��ØˆJr>   ©r   r   rJ   rK   ©r6   rl  rH   rW  s      @r<   Útest_10zTestMixedTupleUnroll.test_10�  óŒ   ø€ ð	*ð 	*ð 	*õ 
�"˜XÐ	&Ñ	&Ô	&ð	 ð 	 ñ 
'Ô	&ð	 õ* 
ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó  — g } d}t          t          t          |¦  «        ¦  «        ¦  «        D ]]}||         }|dk    r|                      d¦  «         Œ&|dk    r|                      |¦  «         ŒB|dk    r|                      d¦  «         Œ^| S ©N)rQ  rR  rS  rQ  Ú0rR  rS  z2.0©rÑ   r´   r
   r)  ©rG   r  r�   r  s       r<   rH   z)TestMixedTupleUnroll.test_11.<locals>.foo¾  sŽ   € àˆAØ-ˆAÝ�3�~¨aÑ0Ô0Ñ1Ô1Ñ2Ô2ð $ð $�Ø�a”D�Ø˜’<�<Ø—H’H˜S‘M”M�M�MØ˜(’]�]Ø—H’H˜Q‘K”K�K�KØ˜(’]�]Ø—H’H˜U‘O”O�OøØˆHr>   r  rL   s     r<   Útest_11zTestMixedTupleUnroll.test_11¼  óG   € å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó>  — t          j        ¦   «         } d}t          t          t	          |¦  «        ¦  «        ¦  «        D ]]}||         }|dk    r|                      d¦  «         Œ&|dk    r|                      |¦  «         ŒB|dk    r|                      d¦  «         Œ^| S rw  )r	   r&  rÑ   r´   r
   r)  rz  s       r<   rH   z*TestMixedTupleUnroll.test_11a.<locals>.fooÐ  s”   € å”
‘”ˆAØ-ˆAÝ�3�~¨aÑ0Ô0Ñ1Ô1Ñ2Ô2ð $ð $�Ø�a”D�Ø˜’<�<Ø—H’H˜S‘M”M�M�MØ˜(’]�]Ø—H’H˜Q‘K”K�K�KØ˜(’]�]Ø—H’H˜U‘O”O�OøØˆHr>   r  rL   s     r<   Útest_11azTestMixedTupleUnroll.test_11aÎ  r|  r>   c                 ó–   — t           d„ ¦   «         }d}|}|                       |d|¦  «        |                     d|¦  «        ¦  «         d S )Nc                 óÀ   — dddd|d|z  f}d}t          |¦  «        D ]/}||z  }|j        dk     r|dz  }Œt          |¦  «        D ]}||z  }Œ |d         d	k     r|dz  }|S ©
Nrü   rý   rþ   rV   rC   r   rÿ   rB   é   r  ©r  r  rQ   rŽ   r�   rG   s         r<   rH   z)TestMixedTupleUnroll.test_12.<locals>.fooâ  s“   € à�T˜2˜q ! Q¨¡UÐ+ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�Cå+¨AÑ.Ô.ð !ð !˜Ø˜q™˜˜ØØ�Œt�bŠyˆyØ�q‘�ØˆJr>   ré   rC   r  r  s       r<   Útest_12zTestMixedTupleUnroll.test_12à  ó[   € å	ð	ð 	ñ 
Œð	ð ˆØˆà×Ò˜˜˜Q ™œ C§K¢K°°1Ñ$5Ô$5Ñ6Ô6Ð6Ð6Ð6r>   c                 ó  — t           d„ ¦   «         }d}|}|                      t          j        ¦  «        5 } |d|¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óJ  — dddd|d|z  f}d}t          |¦  «        D ]]}||z  }|j        dk     r|dz  }n.t          |¦  «        D ]}t          |¦  «        D ]}||z  }Œ||z  }Œt          |¦  «        D ]}||z  }ŒŒ^t          |¦  «        D ]}||z  }Œ|d         d	k     r|dz  }|S r‚  r  )r  r  rQ   rŽ   r�   rG   rÔ   s          r<   rH   z)TestMixedTupleUnroll.test_13.<locals>.fooù  sû   € à�T˜2˜q ! Q¨¡UÐ+ˆAØˆCÝ# AÑ&Ô&ð 
ð 
�Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�Cå+¨AÑ.Ô.ð !ð !˜Ý!/°Ñ!2Ô!2ð %ð %˜AØ 1™H˜C˜CØ˜q™˜˜Ý'¨Ñ*Ô*ð ð �AØ˜1‘H�C�Cðå# AÑ&Ô&ð ð �Ø�q‘��Ø�Œt�bŠyˆyØ�q‘�ØˆJr>   ré   rC   ú(Nesting of literal_unroll is unsupported©r   rW   r   ÚUnsupportedErrorrY   rZ   r[   ©r6   rH   r  r  rL  s        r<   Útest_13zTestMixedTupleUnroll.test_13÷  sÒ   € å	ð	ð 	ñ 
Œð	ð( ˆØˆà×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC��1‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ@Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-ó   ´AÁAÁAc                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó<   — d} d}t          | ¦  «        D ]}||z  }Œ|S ©N©rB   rC   rD   rV   r   r6  ©rG   rŽ   rQ   s      r<   rH   z)TestMixedTupleUnroll.test_14.<locals>.foo  s3   € àˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘��ØˆHr>   r  rL   s     r<   Útest_14zTestMixedTupleUnroll.test_14  sI   € õ 
ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó`  — t           d„ ¦   «         }d}t          j        |f¦  «        t          j        ||f¦  «        dddh d£f}|                      t          j        ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óR   — d}t          | ¦  «        D ]}|t          |¦  «        z  }Œ|S rŒ   r.  r“  s      r<   rH   z)TestMixedTupleUnroll.test_15.<locals>.foo'  s4   € àˆCÝ# AÑ&Ô&ð ð �Ø•s˜1‘v”v‘��ØˆHr>   ræ   r/  rA   r0  r1  úCannot unify)	r   r  r  rW   r   rK  rY   rZ   r[   )r6   rH   rò   r�   rL  s        r<   Útest_15zTestMixedTupleUnroll.test_15$  sò   € õ 
ð	ð 	ñ 
Œð	ð ˆÝŒw˜�t‰}Œ}�bœg q¨! f™oœo¨|¸YØ# _ _ _ð6ˆð ×Ò�vÔ1Ñ2Ô2ð 	°fØˆC�‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š�n¥c¨&Ô*:Ñ&;Ô&;Ñ<Ô<Ð<Ð<Ð<s   Á#A;Á;A?ÂA?c                 óÆ   ‡— d„ Št          ‰d¬¦  «        d„ ¦   «         }t          ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                 óF   — | dk    rdS | dk    rdS | dk    rdS | dk    rdS d S )	Néè  rQ   éÐ  r›   é¸  r  é   ÚdrE   rV  s    r<   rW  z(TestMixedTupleUnroll.test_16.<locals>.dt:  sA   € Ø˜Š}ˆ}Ø�sØ˜$’�Ø�sØ˜$’�Ø�sØ˜$’�Ø�sð �r>   rY  rZ  c                 óš   — t          | t          j        ¦  «        r0| j        }|dk    rd„ }n|dk    rd„ }n|dk    rd„ }n	|dk    rd„ }|S d S )	Nr›  c                 ó   — dS ©NrQ   rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_16.<locals>.ol_dt.<locals>.implI  ó   € Ø"˜sr>   rœ  c                 ó   — dS ©Nr›   rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_16.<locals>.ol_dt.<locals>.implL  r£  r>   r�  c                 ó   — dS ©Nr  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_16.<locals>.ol_dt.<locals>.implO  r£  r>   rž  c                 ó   — dS ©NrŸ  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_16.<locals>.ol_dt.<locals>.implR  r£  r>   )r3   r   rj  ri  ©r_  rµ   r9  s      r<   rl  z+TestMixedTupleUnroll.test_16.<locals>.ol_dtD  s�   € å˜"�eÔ2Ñ3Ô3ð ØÔ(�Ø˜D’=�=ð#ð #ð #ð #à˜d’]�]ð#ð #ð #ð #à˜d’]�]ð#ð #ð #ð #à˜d’]�]ð#ð #ð #à�ðð r>   c                  ó`   •— d} d}t          | d d…         ¦  «        D ]}| ‰|¦  «        z  }Œ|S )N©r›  rœ  r�  rž  Ú rC   r6  ©rG   rŽ   rQ   rW  s      €r<   rH   z)TestMixedTupleUnroll.test_16.<locals>.fooV  sD   ø€ à(ˆAØˆCÝ# A b q b¤EÑ*Ô*ð ð �Ø�r�r˜!‘u”u‘��ØˆJr>   rq  rr  s      @r<   Útest_16zTestMixedTupleUnroll.test_167  sŒ   ø€ ð	ð 	ð 	õ 
�"˜XÐ	&Ñ	&Ô	&ð	ð 	ñ 
'Ô	&ð	õ" 
ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 óÆ   ‡— d„ Št          ‰d¬¦  «        d„ ¦   «         }t          ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                 óV   — | dk    rdS | dk    rdS | dk    rdS | dk    rdS | d	k    rd
S d S )Nr›  rQ   rœ  r›   r�  r  rž  rŸ  r  ÚEFFrE   rV  s    r<   rW  z(TestMixedTupleUnroll.test_17.<locals>.dtc  sO   € Ø˜Š}ˆ}Ø�sØ˜$’�Ø�sØ˜$’�Ø�sØ˜$’�Ø�sØ˜#’�Ø�uð �r>   rY  rZ  c                 óö   — t          | t          j        ¦  «        r0| j        }|dk    rd„ }n|dk    rd„ }n|dk    rd„ }n	|dk    rd„ }|S t          | t          j        ¦  «        r| j        }|d	k    rd
„ }|S d S d S )Nr›  c                 ó   — dS r¢  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_17.<locals>.ol_dt.<locals>.implt  r£  r>   rœ  c                 ó   — dS r¥  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_17.<locals>.ol_dt.<locals>.implw  r£  r>   r�  c                 ó   — dS r§  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_17.<locals>.ol_dt.<locals>.implz  r£  r>   rž  c                 ó   — dS r©  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_17.<locals>.ol_dt.<locals>.impl}  r£  r>   r  c                 ó   — dS )Nr²  rE   r^  s    r<   r9  z9TestMixedTupleUnroll.test_17.<locals>.ol_dt.<locals>.implƒ  s   € Ø$˜ur>   )r3   r   rj  ri  rh  rª  s      r<   rl  z+TestMixedTupleUnroll.test_17.<locals>.ol_dto  sÜ   € å˜"�eÔ2Ñ3Ô3ð  ØÔ(�Ø˜D’=�=ð#ð #ð #ð #à˜d’]�]ð#ð #ð #ð #à˜d’]�]ð#ð #ð #ð #à˜d’]�]ð#ð #ð #à�Ý˜B¥Ô 3Ñ4Ô4ð  ØÔ(�Ø˜C’<�<ð%ð %ð %à�Kð ð  à�<r>   c                  ó`   •— d} d}t          | dd …         ¦  «        D ]}| ‰|¦  «        z  }Œ|S )N)r›  rœ  r�  r  r­  rB   r6  r®  s      €r<   rH   z)TestMixedTupleUnroll.test_17.<locals>.foo‡  sD   ø€ à'ˆAØˆCÝ# A a b b¤EÑ*Ô*ð ð �Ø�r�r˜!‘u”u‘��ØˆJr>   rq  rr  s      @r<   Útest_17zTestMixedTupleUnroll.test_17`  sŒ   ø€ ð
	ð 
	ð 
	õ 
�"˜XÐ	&Ñ	&Ô	&ð	 ð 	 ñ 
'Ô	&ð	 õ. 
ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó^   — d} d}t          | d d d…         ¦  «        D ]}|dz  }|dk     r nŒ|S )N)r›  rœ  r�  rž  iˆ  ip  r   éÿÿÿÿrB   r�  r6  )rG   ÚcountrQ   s      r<   rH   z)TestMixedTupleUnroll.test_18.<locals>.foo“  sN   € à4ˆAØˆEÝ# A d d¨ d¤GÑ,Ô,ð ð �Ø˜‘
�Ø�t’8�8Ø�Eð àˆLr>   r  rL   s     r<   Útest_18zTestMixedTupleUnroll.test_18‘  sG   € å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  óÞ   — d} g d¢}ddg}||f}t          j        d¦  «        }t          j        dt           j        ¬¦  «        }||||f}t	          |¦  «        D ]}| t          |¦  «        z  } Œ| S )Nr   r’  r(   é   ræ   ©Údtype©r  Úaranger  Ú
complex128r
   r´   ©rŽ   Úl1Úl2r�   Úa1Úa2r  s          r<   rH   z)TestMixedTupleUnroll.test_19.<locals>.foo¡  s€   € àˆCØ��ˆBØ�b�ˆBØ�r�(ˆCÝ”˜2‘”ˆBÝ”˜¥"¤-Ð0Ñ0Ô0ˆBØ�r˜2˜rÐ"ˆCÝ# CÑ(Ô(ð ð �Ø•s˜1‘v”v‘��ØˆJr>   r  rL   s     r<   Útest_19zTestMixedTupleUnroll.test_19Ÿ  sG   € å	ð
	ð 
	ñ 
Œð
	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  óì   — g } t          j        d¦  «        }t          j        dt           j        ¬¦  «        }||f}t	          |¦  «        D ])}|                      |                     ¦   «         ¦  «         Œ*| S )NrÂ  ræ   rÃ  )r  rÆ  r  rÇ  r
   r)  r  )ÚlrË  rÌ  r�   r  s        r<   rH   z)TestMixedTupleUnroll.test_20.<locals>.foo³  sl   € àˆAÝ”˜2‘”ˆBÝ”˜¥"¤-Ð0Ñ0Ô0ˆBØ�r�(ˆCÝ# CÑ(Ô(ð "ð "�Ø—’˜Ÿš™œÑ!Ô!Ð!Ð!ØˆHr>   r  rL   s     r<   Útest_20zTestMixedTupleUnroll.test_20°  sI   € õ 
ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó’   — t           d„ ¦   «         }d}|}|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nc                 óD   ‡— dŠˆfd„}d}dD ]}| |¦   «         |z   z  }Œ|S )N©rƒ  gfffffæ7@y              @é   c                  ó:   •— d} t          ‰¦  «        D ]}| |z  } Œ| S rŒ   r6  ©rŽ   rÔ   r›   s     €r<   ró   z6TestMixedTupleUnroll.test_21.<locals>.foo.<locals>.barÅ  ó/   ø€ Ø�Ý'¨Ñ*Ô*ð ð �AØ˜1‘H�C�CØ�
r>   r   r’  rE   ©r  ró   Ú	outer_accrG   r›   s       @r<   rH   z)TestMixedTupleUnroll.test_21.<locals>.fooÁ  sS   ø€ à!ˆAðð ð ð ð ð
 ˆIØ!ð 'ð '�Ø˜S˜S™UœU Q™YÑ&�	�	àÐr>   ré   r  r  s       r<   Útest_21zTestMixedTupleUnroll.test_21¿  sU   € å	ð	ð 	ñ 
Œð	ð ˆØˆØ×Ò˜˜˜Q™œ §¢¨Q¡¤Ñ0Ô0Ð0Ð0Ð0r>   c                 ó  — t           d„ ¦   «         }d}|}|                      t          j        ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óp   ‡— dddd| d| z  df}dŠˆfd„}d	}t          |¦  «        D ]}| |¦   «         z  }Œ|S )
Nrü   rý   rþ   rV   rC   rQ   rÔ  c                  ó:   •— d} t          ‰¦  «        D ]}| |z  } Œ| S rŒ   r6  r×  s     €r<   ró   z6TestMixedTupleUnroll.test_22.<locals>.foo.<locals>.barë  rØ  r>   r   r6  )r  rQ   ró   rŽ   rG   r›   s        @r<   rH   z)TestMixedTupleUnroll.test_22.<locals>.fooæ  so   ø€ à�T˜2˜q ! Q¨¡U¨CÐ0ˆAØ!ˆAðð ð ð ð ð
 ˆCõ $ AÑ&Ô&ð ð �Ø�s�s‘u”u‘��àˆJr>   ré   r‰  rŠ  rŒ  s        r<   Útest_22zTestMixedTupleUnroll.test_22Ô  sÒ   € õ$ 
ð	ð 	ñ 
Œð	ð" ˆØˆà×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC�‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ@Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-ó   ´AÁAÁAc                 ó  — t           d„ ¦   «         }d}|}|                      t          j        ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ó^   ‡— dŠˆfd„}d}t          ‰¦  «        D ]}| |¦   «         |z   z  }Œ|S )NrÔ  c                  ó:   •— d} t          ‰¦  «        D ]}| |z  } Œ| S rŒ   r6  r×  s     €r<   ró   z6TestMixedTupleUnroll.test_23.<locals>.foo.<locals>.bar  rØ  r>   r   r6  rÙ  s       @r<   rH   z)TestMixedTupleUnroll.test_23.<locals>.foo  s]   ø€ à!ˆAðð ð ð ð ð
 ˆIõ $ AÑ&Ô&ð 'ð '�Ø˜S˜S™UœU Q™YÑ&�	�	àÐr>   ré   r‰  rŠ  rŒ  s        r<   Útest_23zTestMixedTupleUnroll.test_23  sÐ   € å	ð	ð 	ñ 
Œð	ð" ˆØˆà×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC�‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ@Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-rà  c                 óü   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )Nc                  óH   — t          d¦  «        D ]} t          | ¦  «         Œd S )NÚABCDE©r
   ÚprintrF   s    r<   rH   z)TestMixedTupleUnroll.test_24.<locals>.foo   s0   € å# GÑ,Ô,ð ð �Ý�a‘”��ðð r>   z7argument should be a tuple or a list of constant valuesrŠ  )r6   rH   rL  Úmsgs       r<   Útest_24zTestMixedTupleUnroll.test_24  s¾   € å	ð	ð 	ñ 
Œð	ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð HˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1ó   °AÁAÁAc                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  óŠ   — t          ddddgdf¦  «        } | }|}g }|D ]$}|                     t          |¦  «        ¦  «         Œ%|S )NrA   )ù               @rþ   rB   rC   Úxyz)r
   r)  r´   )ÚvalÚalias1Úalias2ÚlensrG   s        r<   rH   z)TestMixedTupleUnroll.test_25.<locals>.foo-  sZ   € å  )¨X¸¸1°v¸uÐ!EÑFÔFˆCØˆFØˆFØˆDØð $ð $�Ø—’�C ™FœFÑ#Ô#Ð#Ð#ØˆKr>   r  rL   s     r<   Útest_25zTestMixedTupleUnroll.test_25+  sG   € å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó’   — t           d„ ¦   «         }d}|}|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nc                 óÞ   — dddd| d| z  f}d}d}d}d}t          j        t          |¦  «        ft           j        ¬	¦  «        }t	          |¦  «        D ]}||z  }|||<   |d
z  }||z   }Œ|||||fS )Nrü   rý   rþ   rV   rC   r   é6   é   rÃ  rB   )r  Úemptyr´   rÇ  r
   )	r  rQ   rŽ   r¾  Ú	untouchedÚ	read_onlyÚmutatedrG   Úescapes	            r<   rH   z)TestMixedTupleUnroll.test_26.<locals>.foo>  s™   € à�T˜2˜q ! Q¨¡UÐ+ˆAØˆCØˆEØˆIØˆIÝ”h¥ A¡¤˜yµ´Ð>Ñ>Ô>ˆGÝ# AÑ&Ô&ð +ð +�Ø�q‘�Ø!"�˜‘Ø˜‘
�Ø Ñ*��Ø˜3 	¨9°gÐ=Ð=r>   ré   )r   ÚassertPreciseEqualrK   r  s       r<   Útest_26zTestMixedTupleUnroll.test_269  sW   € õ
 
ð	>ð 	>ñ 
Œð	>ð ˆØˆà×Ò   A¡¤¨¯ª°A©¬Ñ7Ô7Ð7Ð7Ð7r>   c                 ó¤   — t          d¬¦  «        d„ ¦   «         }d}|}|                       ||¦  «        |                     |¦  «        ¦  «         d S )NT©Úparallelc                 ór   — dddd| d| z  f}d}t          |¦  «        D ]}t          d¦  «        D ]}|dz  }ŒŒ|S )	Nrü   rý   rþ   rV   rC   r   r(   rB   ©r
   r   ©r  rQ   rŽ   rG   r  s        r<   rH   z)TestMixedTupleUnroll.test_27.<locals>.fooU  ó^   € à�T˜2˜q ! Q¨¡UÐ+ˆAØˆCÝ# AÑ&Ô&ð ð �Ý ™œð ð �AØ˜1‘H�C�CðàˆJr>   ré   r  r  s       r<   Útest_27zTestMixedTupleUnroll.test_27R  sc   € õ 
�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	ð ˆØˆà×Ò˜˜˜Q™œ §¢¨Q¡¤Ñ0Ô0Ð0Ð0Ð0r>   c                 ó¸   — t          d¬¦  «        d„ ¦   «         }d}|}t          j                              ||¦  «        |                     |¦  «        ¦  «         d S )NTr  c                 ór   — dddd| d| z  f}d}t          |¦  «        D ]}t          d¦  «        D ]}||z  }ŒŒ|S ©Nrü   rý   rþ   rV   rC   r   r(   r  r  s        r<   rH   z)TestMixedTupleUnroll.test_28.<locals>.foof  r  r>   ré   )r   r  ÚtestingÚassert_allcloserK   r  s       r<   Útest_28zTestMixedTupleUnroll.test_28c  sg   € õ 
�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	ð ˆØˆõ 	Œ
×"Ò" 3 3 q¡6¤6¨3¯;ª;°q©>¬>Ñ:Ô:Ð:Ð:Ð:r>   c                 ó¤   — t          d¬¦  «        d„ ¦   «         }d}|}|                       ||¦  «        |                     |¦  «        ¦  «         d S )NTr  c                 ór   — dddd| d| z  f}d}t          d¦  «        D ]}t          |¦  «        D ]}||z  }ŒŒ|S r  )r   r
   )r  rQ   rŽ   r  rG   s        r<   rH   z)TestMixedTupleUnroll.test_29.<locals>.fooy  s^   € à�T˜2˜q ! Q¨¡UÐ+ˆAØˆCÝ˜B‘Z”Zð ð �Ý'¨Ñ*Ô*ð ð �AØ˜1‘H�C�CðàˆJr>   ré   r  r  s       r<   Útest_29zTestMixedTupleUnroll.test_29u  sc   € õ 
�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	ð ˆØˆà×Ò˜˜˜Q™œ §¢¨Q¡¤Ñ0Ô0Ð0Ð0Ð0r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  óF   ‡— dŠˆfd„} d„ t          | d¦  «        D ¦   «         S )NéÒ  c                 óH   •— d}d}t          |¦  «        D ]
}||‰z   z  }Œ|| fS ©Nr   ©rü   rý   rþ   rV   r6  ©r  rŽ   rQ   rG   Úconsts       €r<   ró   z6TestMixedTupleUnroll.test_30.<locals>.foo.<locals>.bar�  ó=   ø€ Ø�Ø%�Ý'¨Ñ*Ô*ð %ð %�AØ˜1˜u™9Ñ$�C�CØ˜A�v�r>   c                 ó   — g | ]}|‘ŒS rE   rE   ©r¦   rG   s     r<   r§   z=TestMixedTupleUnroll.test_30.<locals>.foo.<locals>.<listcomp>“  s   € Ð0Ð0Ð0˜!�AÐ0Ð0Ð0r>   ©rB   rC   ©Úmap©ró   r  s    @r<   rH   z)TestMixedTupleUnroll.test_30.<locals>.foo‰  sA   ø€ àˆEðð ð ð ð ð 1Ð0�s 3¨Ñ/Ô/Ð0Ñ0Ô0Ð0r>   r  rL   s     r<   Útest_30zTestMixedTupleUnroll.test_30‡  sG   € å	ð		1ð 		1ñ 
Œð		1ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 óR  — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t
          t          |j        ¦  «        ¦  «         |                      dt          |j        ¦  «        ¦  «         d S )Nc                  óF   ‡— dŠˆfd„} d„ t          | d¦  «        D ¦   «         S )Nr  c                 óH   •— d}d}t          |¦  «        D ]
}||‰z   z  }Œ|| fS r  r6  r  s       €r<   ró   z6TestMixedTupleUnroll.test_31.<locals>.foo.<locals>.barŸ  r  r>   c                 ó   — g | ]}|‘ŒS rE   rE   r  s     r<   r§   z=TestMixedTupleUnroll.test_31.<locals>.foo.<locals>.<listcomp>¥  s   € Ð1Ð1Ð1˜!�AÐ1Ð1Ð1r>   )rB   rï  r  r   s    @r<   rH   z)TestMixedTupleUnroll.test_31.<locals>.foo›  sA   ø€ àˆEðð ð ð ð ð 2Ð1�s 3¨Ñ0Ô0Ð1Ñ1Ô1Ð1r>   ÚziprJ  ©r6   rH   rL  s      r<   Útest_31zTestMixedTupleUnroll.test_31—  sÙ   € õ 
ð		2ð 		2ñ 
Œð		2ð ×Ò�vÔ1Ñ2Ô2ð 	°fØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š•l¥C¨Ô(8Ñ$9Ô$9Ñ:Ô:Ð:Ø�Š�e�S Ô!1Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3rì  c                 ó¬   ‡— t           d„ ¦   «         Št           ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc              3   ó6   K  — t          | ¦  «        D ]}|V — Œd S rh   r6  ©rQ   rG   s     r<   r;  z)TestMixedTupleUnroll.test_32.<locals>.gen¯  s2   è è € å# AÑ&Ô&ð ð �Ø����ðð r>   c                  ó.   •— d„  ‰ d¦  «        D ¦   «         S )Nc                 ó   — g | ]}|‘ŒS rE   rE   r  s     r<   r§   z=TestMixedTupleUnroll.test_32.<locals>.foo.<locals>.<listcomp>¶  s   € Ð2Ð2Ð2˜!�AÐ2Ð2Ð2r>   ©rB   gffffff@y              @rE   )r;  s   €r<   rH   z)TestMixedTupleUnroll.test_32.<locals>.foo´  s!   ø€ à2Ð2˜s˜s =Ñ1Ô1Ð2Ñ2Ô2Ð2r>   r  )r6   rH   r;  s     @r<   Útest_32zTestMixedTupleUnroll.test_32­  sm   ø€ å	ð	ð 	ñ 
Œð	õ 
ð	3ð 	3ð 	3ð 	3ñ 
Œð	3ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó¸   — t           d„ ¦   «         }d„ } ||¦  «        } ||j        ¦  «        j        }|                       |¦   «          |¦   «         ¦  «         d S )Nc              3   ó$   K  —  | |¦  «        V — d S rh   rE   )r7   Úargs     r<   Úconsumerz.TestMixedTupleUnroll.test_33.<locals>.consumer¾  s   è è € à�$�s‘)”)ˆOˆOˆOˆOˆOr>   c                 ó,   ‡ — t           ˆ fd„¦   «         }|S )Nc                  ó6   •— d„ } d„  ‰| d¦  «        D ¦   «         S )Nc              3   ó6   K  — t          | ¦  «        D ]}|V — Œd S rh   r6  r+  s     r<   r;  zCTestMixedTupleUnroll.test_33.<locals>.get.<locals>.foo.<locals>.genÅ  s2   è è € Ý+¨AÑ.Ô.ð  ð  ˜Ø˜˜˜˜ð ð  r>   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rE   )Únextr  s     r<   r§   zJTestMixedTupleUnroll.test_33.<locals>.get.<locals>.foo.<locals>.<listcomp>È  s   € ÐBÐBÐB A�˜Q™œÐBÐBÐBr>   r.  rE   )r;  Úconss    €r<   rH   z6TestMixedTupleUnroll.test_33.<locals>.get.<locals>.fooÃ  s5   ø€ ð ð  ð  ð CÐB¨¨¨c°=Ñ)AÔ)AÐBÑBÔBÐBr>   r:  )r9  rH   s   ` r<   Úgetz)TestMixedTupleUnroll.test_33.<locals>.getÂ  s2   ø€ ÝðCð Cð Cð Cñ ŒTðCð
 ˆJr>   )r   rK   rJ   )r6   r3  r:  ÚcfuncÚpyfuncs        r<   Útest_33zTestMixedTupleUnroll.test_33º  sx   € õ 
ð	ð 	ñ 
Œð	ð	ð 	ð 	ð ��H‘”ˆØ��XÔ%Ñ&Ô&Ô.ˆà×Ò˜˜™œ & &¡(¤(Ñ+Ô+Ð+Ð+Ð+r>   c                 óH  — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         |                      dt          |j        ¦  «        ¦  «         d S )Nc                  óò   — d} g d¢}ddg}| dz
  dk    r||f}n:t          j        d¦  «        }t          j        dt           j        ¬¦  «        }||||f}t	          |¦  «        D ]}| t          |¦  «        z  } Œ| S )	Nr   r’  r(   rÂ  rC   rD   ræ   rÃ  rÅ  rÈ  s          r<   rH   z)TestMixedTupleUnroll.test_34.<locals>.fooÒ  s�   € àˆCØ��ˆBØ�b�ˆBØ�Q‰w˜Š{ˆ{Ø˜2�h��å”Y˜r‘]”]�Ý”W˜Q¥b¤mÐ4Ñ4Ô4�Ø˜2˜r 2Ð&�Ý# CÑ(Ô(ð ð �Ø•s˜1‘v”v‘��ØˆJr>   zInvalid use ofz&found multiple definitions of variablerŠ  r'  s      r<   Útest_34zTestMixedTupleUnroll.test_34Ð  sä   € å	ð	ð 	ñ 
Œð	ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ&­¨FÔ,<Ñ(=Ô(=Ñ>Ô>Ð>Ø�ŠÐ>Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-rì  c                 óN  — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |dgd¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óf   — | }ddg}t          |¦  «        D ]}|}||xx         ||         z  cc<   Œ|S rŒ   r6  )rG   rÓ   ÚvÚtemp_vr�   s        r<   rH   z)TestMixedTupleUnroll.test_35.<locals>.fooê  sM   € àˆAØ˜�VˆFÝ# AÑ&Ô&ð "ð "�Ø�Ø�q�	�	”	˜Q˜qœTÑ!�	�	‘	�	ØˆMr>   rç   )r   úInvalid use of literal_unrollz*found multiple definitions of variable "v"rŠ  r'  s      r<   Útest_35zTestMixedTupleUnroll.test_35è  sê   € å	ð	ð 	ñ 
Œð	ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC���T‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ5µs¸6Ô;KÑ7LÔ7LÑMÔMÐMØ�ŠÐBÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-s   °A
Á
AÁAN)*r^   r_   r`   r  r  r  r  r#  r   rö   r+  r3  r<  rM  rs  r{  r  r…  r�  r”  r˜  r¯  rº  r¿  rÍ  rÑ  rÛ  rß  rä  rë  rõ  r   r   r  r  r  r!  r(  r/  r=  r@  rF  rE   r>   r<   rø   rø   Í  s}  € € € € € ð7ð 7ð 7ð&7ð 7ð 7ð(7ð 7ð 7ð,5ð 5ð 5ðCð Cð Cð4 €X„]Ð3Ñ4Ô4ð5ð 5ñ 5Ô4ð5ð"5ð 5ð 5ðCð Cð Cð0#;ð #;ð #;ðJ*/ð */ð */ðX/ð /ð /ð$/ð /ð /ð$7ð 7ð 7ð.-ð -ð -ð@/ð /ð /ð=ð =ð =ð&'/ð '/ð '/ðR//ð //ð //ðb/ð /ð /ð/ð /ð /ð"/ð /ð /ð1ð 1ð 1ð*+-ð +-ð +-ðZ-ð -ð -ð:2ð 2ð 2ð/ð /ð /ð8ð 8ð 8ð2 ð1ð 1ñ Ôð1ð  ð;ð ;ñ Ôð;ð" ð1ð 1ñ Ôð1ð"/ð /ð /ð 4ð 4ð 4ð,/ð /ð /ð,ð ,ð ,ð,-ð -ð -ð0-ð -ð -ð -ð -r>   rø   c                   ób   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestConstListUnrollc                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó¢   — g d¢} d}t          t          t          | ¦  «        ¦  «        ¦  «        D ]}|| |         z  }|j        dk     r|dz  }Œ |S ©Nr  r   rÿ   rB   r   )rQ   rŽ   r�   s      r<   rH   z(TestConstListUnroll.test_01.<locals>.fooÿ  sd   € à!Ð!Ð!ˆAØˆCÝ�3�~¨aÑ0Ô0Ñ1Ô1Ñ2Ô2ð ð �Ø�q˜”t‘�Ø”8˜b’=�=Ø˜1‘H�C�CàØˆJr>   r  rL   s     r<   r  zTestConstListUnroll.test_01ý  sG   € å	ð		ð 		ñ 
Œð		ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ób   — g d¢} d}t          | ¦  «        D ]}||z  }|j        dk     r|dz  }Œ |S rK  r  r“  s      r<   rH   z(TestConstListUnroll.test_02.<locals>.foo  sP   € à!Ð!Ð!ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�CàØˆJr>   r  rL   s     r<   r  zTestConstListUnroll.test_02  sI   € õ 
ð		ð 		ñ 
Œð		ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  óœ   — g d¢} ddg}d}t          | ¦  «        D ]1}||z  }|j        dk     r|dz  }Œt          |¦  «        D ]	}||du z  }Œ
 |S )Nr  rH   rÕ  r   rÿ   rB   Fr  ©rG   rÓ   rŽ   rQ   r  s        r<   rH   z(TestConstListUnroll.test_03.<locals>.foo   s€   € à!Ð!Ð!ˆAØ˜�
ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�Cå+¨AÑ.Ô.ð *ð *˜Ø˜q E˜zÑ)˜˜ØØˆJr>   r  rL   s     r<   r  zTestConstListUnroll.test_03  óG   € å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó˜   — g d¢} d}d}t          | ¦  «        D ]1}||z  }|j        dk     r|dz  }Œt          |¦  «        D ]	}||du z  }Œ
 |S )Nr  )rH   rÕ  r   rÿ   rB   Fr  rP  s        r<   rH   z(TestConstListUnroll.test_04.<locals>.foo3  s|   € à!Ð!Ð!ˆAØˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�Cå+¨AÑ.Ô.ð *ð *˜Ø˜q E˜zÑ)˜˜ØØˆJr>   r  rL   s     r<   r  zTestConstListUnroll.test_041  rQ  r>   c                 ó4  — t           d„ ¦   «         }d}t          j        d¦  «        t          j        d¦  «        g}t          j        |f¦  «        t          j        ||f¦  «        t          j        |||f¦  «        t          j        ||||f¦  «        t          j        |||||f¦  «        f}|                      t
          j        ¦  «        5 } |||¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j	        ¦  «        ¦  «         d S )Nc                 ó€   — d}t          | ¦  «        D ]+}|d         dk    r||d                              ¦   «         z  }Œ,|S rñ   r  r   s       r<   rH   z(TestConstListUnroll.test_05.<locals>.fooF  sG   € àˆCÝ# DÑ)Ô)ð )ð )�Ø�Q”4˜!’8�8Ø˜4 œ7Ÿ;š;™=œ=Ñ(�CøØˆJr>   r(   z6Invalid use of literal_unroll with a function argument)
r   r  Úzerosr  rW   r   r‹  rY   rZ   r[   )r6   rH   rò   r!  r"  rL  rê  s          r<   r#  zTestConstListUnroll.test_05D  sC  € å	ð	ð 	ñ 
Œð	ð ˆÝ”˜‘”�bœh r™lœlÐ+ˆÝ”˜˜‘”�rœw¨¨1 v™œµ´¸¸A¸q¸	Ñ0BÔ0BÝ”˜˜A˜q !˜Ñ%Ô%¥r¤w°°1°a¸¸A¨Ñ'?Ô'?ðAˆð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC��d‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð GˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   Ã
C#Ã#C'Ã*C'c                 óø   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                  ó¸   — d} t          j        | f¦  «        t          j        | | f¦  «        dddh d£g}d}t          |¦  «        D ]}|t          |¦  «        z  }Œ|S )Nr(   r/  rA   r0  r1  r   )r  r  r
   r´   )rò   r�   rŽ   rQ   s       r<   rH   z(TestConstListUnroll.test_06.<locals>.foo[  sh   € àˆAÝ”7˜A˜4‘=”=¥"¤'¨1¨a¨&¡/¤/°<ÀØ'¨¨¨ð:ˆCàˆCÝ# CÑ(Ô(ð ð �Ø•s˜1‘v”v‘��ØˆJr>   z&Found non-constant value at position 0rŠ  r'  s      r<   r+  zTestConstListUnroll.test_06Y  sÄ   € å	ð	ð 	ñ 
Œð	ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ>Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-rì  c                 óÆ   ‡— d„ Št          ‰d¬¦  «        d„ ¦   «         }t          ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                 óL   — | dk    rdS | dk    rdS | dk    rdS | dk    rd| z   S d S rP  rE   rV  s    r<   rW  z&TestConstListUnroll.test_7.<locals>.dtn  rX  r>   rY  rZ  c                 óè   ‡— t          | t          j        ¦  «        r&| j        Š‰dk    rd„ }n‰dk    rd„ }n	‰dk    rd„ }|S t          | t          j        ¦  «        r| j        Š‰dk    r	ˆfd„}|S d S d S )	NrQ  c                 ó   — dS r@  rE   r^  s    r<   r9  z7TestConstListUnroll.test_7.<locals>.ol_dt.<locals>.impl}  r`  r>   rR  c                 ó   — dS rD  rE   r^  s    r<   r9  z7TestConstListUnroll.test_7.<locals>.ol_dt.<locals>.impl€  r`  r>   rS  c                 ó   — dS rG  rE   r^  s    r<   r9  z7TestConstListUnroll.test_7.<locals>.ol_dt.<locals>.implƒ  r`  r>   rT  c                 ó   •— d‰z   S rd  rE   re  s    €r<   r9  z7TestConstListUnroll.test_7.<locals>.ol_dt.<locals>.impl‰  rf  r>   rg  rk  s     @r<   rl  z)TestConstListUnroll.test_7.<locals>.ol_dtx  rm  r>   c                  óP   •— d} t          g d¢¦  «        D ]}|  ‰|¦  «        z  } Œ| S ro  r6  rp  s     €r<   rH   z'TestConstListUnroll.test_7.<locals>.fooŽ  s>   ø€ àˆCÝ#Ð$MÐ$MÐ$MÑNÔNð ð �Ø�r�r˜!‘u”u‘��ØˆJr>   rq  rr  s      @r<   Útest_7zTestConstListUnroll.test_7k  rt  r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó   — g } g d¢}t          t          t          |¦  «        ¦  «        ¦  «        D ]]}||         }|dk    r|                      d¦  «         Œ&|dk    r|                      |¦  «         ŒB|dk    r|                      d¦  «         Œ^| S rw  ry  rz  s       r<   rH   z'TestConstListUnroll.test_8.<locals>.foo™  s”   € àˆAØ-Ð-Ð-ˆAÝ�3�~¨aÑ0Ô0Ñ1Ô1Ñ2Ô2ð $ð $�Ø�a”D�Ø˜’<�<Ø—H’H˜S‘M”M�M�MØ˜(’]�]Ø—H’H˜Q‘K”K�K�KØ˜(’]�]Ø—H’H˜U‘O”O�OøØˆHr>   r  rL   s     r<   Útest_8zTestConstListUnroll.test_8—  r|  r>   c                 ó–   — t           d„ ¦   «         }d}|}|                       |d|¦  «        |                     d|¦  «        ¦  «         d S )Nc                 ó²   — g d¢}d}t          |¦  «        D ]/}||z  }|j        dk     r|dz  }Œt          |¦  «        D ]}||z  }Œ |d         dk     r|dz  }|S )Nr  r   rÿ   rB   rƒ  rC   r  r„  s         r<   rH   z'TestConstListUnroll.test_9.<locals>.foo«  sˆ   € à!Ð!Ð!ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�Cå+¨AÑ.Ô.ð !ð !˜Ø˜q™˜˜ØØ�Œt�bŠyˆyØ�q‘�ØˆJr>   ré   rC   r  r  s       r<   Útest_9zTestConstListUnroll.test_9©  r†  r>   c                 ó  — t           d„ ¦   «         }d}|}|                      t          j        ¦  «        5 } |d|¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óR  — dddd|d|z  f}g d¢}d}t          |¦  «        D ]]}||z  }|j        dk     r|d	z  }n.t          |¦  «        D ]}t          |¦  «        D ]}||z  }Œ||z  }Œt          |¦  «        D ]}||z  }ŒŒ^t          |¦  «        D ]}||z  }Œ|d         d
k     r|dz  }|S )Nrü   rý   rþ   rV   rC   r  r   rÿ   rB   rƒ  r  )r  r  rQ   r›   rŽ   r�   rG   rÔ   s           r<   rH   z(TestConstListUnroll.test_10.<locals>.fooÂ  s  € à�T˜2˜q ! Q¨¡UÐ+ˆAØ!Ð!Ð!ˆAØˆCÝ# AÑ&Ô&ð 
ð 
�Ø�q‘�Ø”8˜b’=�=Ø˜1‘H�C�Cå+¨AÑ.Ô.ð !ð !˜Ý!/°Ñ!2Ô!2ð %ð %˜AØ 1™H˜C˜CØ˜q™˜˜Ý'¨Ñ*Ô*ð ð �AØ˜1‘H�C�Cðå# AÑ&Ô&ð ð �Ø�q‘��Ø�Œt�bŠyˆyØ�q‘�ØˆJr>   ré   rC   r‰  rŠ  rŒ  s        r<   rs  zTestConstListUnroll.test_10À  sÒ   € å	ð	ð 	ñ 
Œð	ð* ˆØˆà×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC��1‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ@Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-rŽ  c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó@   — g d¢} d}t          | ¦  «        D ]}||z  }Œ|S r‘  r6  r“  s      r<   rH   z(TestConstListUnroll.test_11.<locals>.fooå  s7   € à��ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘��ØˆHr>   r  rL   s     r<   r{  zTestConstListUnroll.test_11á  sI   € õ 
ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 óø   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                  óZ   — d} g d¢}t          |¦  «        D ]}| t          |¦  «        z  } Œ|S )Nr   )rB   rC   rQ   )r
   Úbool)rŽ   rG   rQ   s      r<   rH   z(TestConstListUnroll.test_12.<locals>.fooñ  s=   € àˆCØ��ˆAÝ# AÑ&Ô&ð ð �Ø•t˜A‘w”w‘��ØˆHr>   r—  ©r   rW   r   rK  rY   rZ   r[   r'  s      r<   r…  zTestConstListUnroll.test_12ï  s¸   € å	ð	ð 	ñ 
Œð	ð ×Ò�vÔ1Ñ2Ô2ð 	°fØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š�n¥c¨&Ô*:Ñ&;Ô&;Ñ<Ô<Ð<Ð<Ð<rì  c                 óø   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                  óP   — g d¢} d}t          | d d…         ¦  «        D ]}||z  }Œ|S )Nr¬  r   rC   r6  r“  s      r<   rH   z(TestConstListUnroll.test_13.<locals>.foo  sA   € à(Ð(Ð(ˆAØˆCÝ# A b q b¤EÑ*Ô*ð ð �Ø�q‘��ØˆJr>   rE  rŠ  r'  s      r<   r�  zTestConstListUnroll.test_13þ  s»   € õ 
ð	ð 	ñ 
Œð	ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ5µs¸6Ô;KÑ7LÔ7LÑMÔMÐMÐMÐMrì  c                 óø   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                  ój   — g d¢} d}t          | ¦  «        D ]}||z  }Œ|                      d¦  «         |S )Nr¬  r   r(   )r
   r)  r“  s      r<   rH   z(TestConstListUnroll.test_14.<locals>.foo  sH   € à(Ð(Ð(ˆAØˆCÝ# AÑ&Ô&ð ð �Ø�q‘��Ø�HŠH�R‰LŒLˆLØˆJr>   z(Unknown attribute 'append' of type Tuplero  r'  s      r<   r”  zTestConstListUnroll.test_14  sÆ   € õ 
ð	ð 	ñ 
Œð	ð ×Ò�vÔ1Ñ2Ô2ð 	°fØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ@Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-rì  N)r^   r_   r`   r  r  r  r  r#  r+  ra  rd  rg  rs  r{  r…  r�  r”  rE   r>   r<   rH  rH  û  së   € € € € € ð/ð /ð /ð /ð /ð /ð"/ð /ð /ð&/ð /ð /ð&2ð 2ð 2ð*-ð -ð -ð$*/ð */ð */ðX/ð /ð /ð$7ð 7ð 7ð.-ð -ð -ðB/ð /ð /ð=ð =ð =ðNð Nð Nð -ð -ð -ð -ð -r>   rH  c                   óä   — e Zd Zd„ Zd„ Z ej        d¦  «        d„ ¦   «         Z ej        d¦  «        d„ ¦   «         Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestMorec                 óø   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                  ó>   — d} d}t          | | ¦  «        D ]}||z  }Œ|S )N)r(   rÂ  r   r6  ©rG   ÚrrQ   s      r<   rH   z2TestMore.test_invalid_use_of_unroller.<locals>.foo#  s5   € àˆAØˆAÝ# A qÑ)Ô)ð ð �Ø�Q‘��ØˆHr>   z*literal_unroll takes one argument, found 2rŠ  r'  s      r<   Útest_invalid_use_of_unrollerz%TestMore.test_invalid_use_of_unroller"  sÂ   € Ý	ð	ð 	ñ 
Œð	ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØ8Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
rì  c                 óú   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ó@   — d| g}d}t          |¦  «        D ]}||z  }Œ|S ©Nr(   r   r6  ©rÓ   rG   ry  rQ   s       r<   rH   z,TestMore.test_non_constant_list.<locals>.foo4  ó7   € à�Q�ˆAØˆAÝ# AÑ&Ô&ð ð �Ø�Q‘��ØˆHr>   r(   zKFound non-constant value at position 1 in a list argument to literal_unrollrŠ  r'  s      r<   Útest_non_constant_listzTestMore.test_non_constant_list2  sÆ   € å	ð	ð 	ñ 
Œð	ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆC�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Šðå�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
s   °AÁAÁAz!numba.literally not supported yetc                 óˆ   ‡‡— ddl mŠ t          ˆfd„¦   «         Š ‰d¦  «         t          ˆfd„¦   «         } |¦   «          d S )Nr   )Ú	literallyc                 óT   •— d ‰| ¦  «        g}d}t          |¦  «        D ]}||z  }Œ|S r}  r6  )rÓ   rG   ry  rQ   r‚  s       €r<   rH   z2TestMore.test_literally_constant_list.<locals>.fooI  sA   ø€ à�Y�Y˜q‘\”\Ð"ˆAØˆAÝ# AÑ&Ô&ð ð �Ø�Q‘��ØˆHr>   rü   c                  ó   •—  ‰ d¦  «        S ©Nrü   rE   ©rH   s   €r<   ró   z2TestMore.test_literally_constant_list.<locals>.barU  ó   ø€ à�3�r‘7”7ˆNr>   )Únumbar‚  r   )r6   ró   rH   r‚  s     @@r<   Útest_literally_constant_listz%TestMore.test_literally_constant_listD  s~   øø€ ð 	$Ð#Ð#Ð#Ð#Ð#å	ð	ð 	ð 	ð 	ñ 
Œð	ð 	ˆˆB‰Œˆå	ð	ð 	ð 	ð 	ñ 
Œð	ð
 	ˆ‰Œˆˆˆr>   z8inlining of foo doesn't have const prop so y isn't constc                 óš   ‡— t          d¬¦  «        d„ ¦   «         Št           ˆfd„¦   «         }|                       |¦   «         d¦  «         d S )NrY  rZ  c                 ó@   — d| g}d}t          |¦  «        D ]}||z  }Œ|S r}  r6  r~  s       r<   rH   z.TestMore.test_inlined_unroll_list.<locals>.foo_  r  r>   c                  ó   •—  ‰ d¦  «        S r…  rE   r†  s   €r<   ró   z.TestMore.test_inlined_unroll_list.<locals>.barg  r‡  r>   é   )r   rJ   )r6   ró   rH   s     @r<   Útest_inlined_unroll_listz!TestMore.test_inlined_unroll_list]  sq   ø€ å	�XÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ Ñ(Ô(Ð(Ð(Ð(r>   c                 óî   — t           d„ ¦   «         }|                       |d¦  «        |                     d¦  «        ¦  «         |                       |d¦  «        |                     d¦  «        ¦  «         d S )Nc                 ó@   — d| f}d}t          |¦  «        D ]}||z  }Œ|S r}  r6  r~  s       r<   rH   z+TestMore.test_unroll_tuple_arg.<locals>.foon  r  r>   rü   ç333333ó?r  rL   s     r<   Útest_unroll_tuple_argzTestMore.test_unroll_tuple_argm  su   € Ý	ð	ð 	ñ 
Œð	ð 	×Ò˜˜˜R™œ #§+¢+¨b¡/¤/Ñ2Ô2Ð2Ø×Ò˜˜˜S™œ 3§;¢;¨sÑ#3Ô#3Ñ4Ô4Ð4Ð4Ð4r>   c                 óî   — t           d„ ¦   «         }|                       |d¦  «        |                     d¦  «        ¦  «         |                       |d¦  «        |                     d¦  «        ¦  «         d S )Nc                 ó8   — d}t          | ¦  «        D ]}||z  }Œ|S rŒ   r6  rx  s      r<   rH   z,TestMore.test_unroll_tuple_arg2.<locals>.fooz  s.   € àˆAÝ# AÑ&Ô&ð ð �Ø�Q‘��ØˆHr>   )rü   r‘  r  rL   s     r<   Útest_unroll_tuple_arg2zTestMore.test_unroll_tuple_arg2y  sw   € Ý	ð	ð 	ñ 
Œð	ð 	×Ò˜˜˜Y™œ¨¯ª°YÑ)?Ô)?Ñ@Ô@Ð@Ø×Ò˜˜˜Y™œ¨¯ª°YÑ)?Ô)?Ñ@Ô@Ð@Ð@Ð@r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  óP   — d} d}t          | ¦  «        D ]}|}|}|||z   |z   z  }Œ|S )N©r(   r‘  r   r6  )rG   Úoutr�   rÔ   r  s        r<   rH   z-TestMore.test_unroll_tuple_alias.<locals>.foo…  sF   € àˆAØˆCÝ# AÑ&Ô&ð !ð !�Ø�Ø�Ø�q˜1‘u˜q‘yÑ ��ØˆJr>   r  rL   s     r<   Útest_unroll_tuple_aliasz TestMore.test_unroll_tuple_alias„  sG   € Ý	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 óL  — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d}|                      t          |j        ¦  «        |¦  «         d S )Nc                  óF   — d} d}t          | ¦  «        D ]}|D ]}||z  }ŒŒ|S )N)r˜  )rU   g      @r   r6  )rG   r™  r�   rÔ   s       r<   rH   z.TestMore.test_unroll_tuple_nested.<locals>.foo“  sG   € à%ˆAØˆCÝ# AÑ&Ô&ð ð �Øð ð �AØ˜1‘H�C�CðàˆJr>   r¯   z#.*Tuple\(int[0-9][0-9], float64\).*)r   rW   r   rK  rY   rZ   r[   ÚassertRegex)r6   rH   rL  Úres       r<   Útest_unroll_tuple_nestedz!TestMore.test_unroll_tuple_nested‘  sÞ   € å	ð	ð 	ñ 
Œð	ð ×Ò�vÔ1Ñ2Ô2ð 	°fØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š�i¥ VÔ%5Ñ!6Ô!6Ñ7Ô7Ð7Ø3ˆØ×Ò�˜VÔ-Ñ.Ô.°Ñ3Ô3Ð3Ð3Ð3rì  c                 ó  — t           d„ ¦   «         }t          ¦   «         5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «                              ¦   «         }|                      |g d¢¦  «         d S )Nc                  ó²   — i } d| d<   d| d<   i }d|d<   d|d<   t          | |f¦  «        D ],}|                     ¦   «         D ]\  }}t          ||¦  «         ŒŒ-d S )	NrB   rQ   rC   r›   r  rD   rŸ  rV   )r
   Úitemsré  )rG   rÓ   Úitr  rC  s        r<   rH   z/TestMore.test_unroll_tuple_of_dict.<locals>.foo¥  s„   € àˆAØˆAˆc‰FØˆAˆc‰FØˆAØˆAˆa‰DØˆAˆa‰Då$ a¨ VÑ,Ô,ð  ð  �ØŸHšH™JœJð  ð  ‘D�A�qÝ˜!˜Q‘K”K�K�Kð ð ð  r>   )za 1zb 2z3 cz4 d)r   r   ÚgetvalueÚ
splitlinesrJ   )r6   rH   ÚstdoutÚliness       r<   Útest_unroll_tuple_of_dictz"TestMore.test_unroll_tuple_of_dict£  sÏ   € å	ð
	 ð 
	 ñ 
Œð
	 õ ÑÔð 	 &ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à—’Ñ!Ô!×,Ò,Ñ.Ô.ˆØ×ÒØØ(Ð(Ð(ñ	
ô 	
ð 	
ð 	
ð 	
s   Ÿ6¶:½:c                 ó°   ‡— t          dg d¢¦  «        Št          ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )NÚABCrI  c                  óT   •—  ‰ddd¦  «        } d}t          | ¦  «        D ]}||z  }Œ|S )NrB   rï  ç333333@r   r6  ©Úabcr™  r�   rª  s      €r<   rH   z-TestMore.test_unroll_named_tuple.<locals>.foo½  s@   ø€ à�#�a˜˜S‘/”/ˆCØˆCÝ# CÑ(Ô(ð ð �Ø�q‘��ØˆJr>   ©r   r   rJ   rK   ©r6   rH   rª  s     @r<   Útest_unroll_named_tuplez TestMore.test_unroll_named_tupleº  óe   ø€ Ý˜   Ñ0Ô0ˆå	ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 óÈ   — t          dg d¢¦  «        }t          d„ ¦   «         } |ddd¦  «        }|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nrª  rI  c                 ó8   — d}t          | ¦  «        D ]}||z  }Œ|S rŒ   r6  ©rG   r™  r�   s      r<   rH   z1TestMore.test_unroll_named_tuple_arg.<locals>.fooÊ  ó.   € àˆCÝ# AÑ&Ô&ð ð �Ø�q‘��ØˆJr>   rB   rï  r¬  r¯  ©r6   rª  rH   r®  s       r<   Útest_unroll_named_tuple_argz$TestMore.test_unroll_named_tuple_argÇ  sq   € Ý˜   Ñ0Ô0ˆå	ð	ð 	ñ 
Œð	ð ˆc�!�R˜‰oŒoˆà×Ò˜˜˜S™œ 3§;¢;¨sÑ#3Ô#3Ñ4Ô4Ð4Ð4Ð4r>   c                 ó°   ‡— t          dg d¢¦  «        Št          ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nrª  rI  c                  óT   •—  ‰ddd¦  «        } d}t          | ¦  «        D ]}||z  }Œ|S )NrB   rC   rD   r   r6  r­  s      €r<   rH   z0TestMore.test_unroll_named_unituple.<locals>.fooØ  s@   ø€ à�#�a˜˜A‘,”,ˆCØˆCÝ# CÑ(Ô(ð ð �Ø�q‘��ØˆJr>   r¯  r°  s     @r<   Útest_unroll_named_unituplez#TestMore.test_unroll_named_unitupleÕ  r²  r>   c                 óÈ   — t          dg d¢¦  «        }t          d„ ¦   «         } |ddd¦  «        }|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nrª  rI  c                 ó8   — d}t          | ¦  «        D ]}||z  }Œ|S rŒ   r6  rµ  s      r<   rH   z4TestMore.test_unroll_named_unituple_arg.<locals>.fooå  r¶  r>   rB   rC   rD   r¯  r·  s       r<   Útest_unroll_named_unituple_argz'TestMore.test_unroll_named_unituple_argâ  sq   € Ý˜   Ñ0Ô0ˆå	ð	ð 	ñ 
Œð	ð ˆc�!�Q˜‰lŒlˆà×Ò˜˜˜S™œ 3§;¢;¨sÑ#3Ô#3Ñ4Ô4Ð4Ð4Ð4r>   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  óB   — d} t          t          ¦  «        D ]}| |z  } Œ| S rŒ   )r
   Ú	_X_GLOBAL)r™  r�   s     r<   rH   z.TestMore.test_unroll_global_tuple.<locals>.fooò  s.   € àˆCÝ#¥IÑ.Ô.ð ð �Ø�q‘��ØˆJr>   r  rL   s     r<   Útest_unroll_global_tuplez!TestMore.test_unroll_global_tupleð  sG   € å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó�   ‡— dŠt           ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nr'   c                  ó:   •— d} t          ‰¦  «        D ]}| |z  } Œ| S rŒ   r6  )r™  r�   rG   s     €r<   rH   z/TestMore.test_unroll_freevar_tuple.<locals>.fooþ  s/   ø€ àˆCÝ# AÑ&Ô&ð ð �Ø�q‘��ØˆJr>   r  )r6   rH   rG   s     @r<   Útest_unroll_freevar_tuplez"TestMore.test_unroll_freevar_tupleû  sW   ø€ Øˆå	ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 óÔ   ‡— t           d„ ¦   «         }t           d„ ¦   «         }||fŠt           ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó   — dS r@  rE   rE   r>   r<   rQ   z.TestMore.test_unroll_function_tuple.<locals>.a  rB  r>   c                  ó   — dS rD  rE   rE   r>   r<   r›   z.TestMore.test_unroll_function_tuple.<locals>.b  rB  r>   c                  óJ   •— d} t          ‰¦  «        D ]}|  |¦   «         z  } Œ| S rŒ   r6  )r™  r  rG   s     €r<   rH   z0TestMore.test_unroll_function_tuple.<locals>.foo  s5   ø€ àˆCÝ# AÑ&Ô&ð ð �Ø�q�q‘s”s‘
��ØˆJr>   r  )r6   rQ   r›   rH   rG   s       @r<   Útest_unroll_function_tuplez#TestMore.test_unroll_function_tuple  s‘   ø€ Ý	ð	ð 	ñ 
Œð	õ 
ð	ð 	ñ 
Œð	ð �ˆFˆå	ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 óæ  — t           d„ ¦   «         }d„ t          d¦  «        D ¦   «         }t          ¦   «         5  |                       ||¦  «        |                     |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «                              ¦   «         }|                      |g d¢¦  «         d S )Nc                 ó�   — d}d}d„ | D ¦   «         }d}t          |¦  «        D ]!}|||         z  }|dz  }t          |¦  «         Œ"||fS )Nr   c                 ó   — g | ]}|‘ŒS rE   rE   )r¦   rQ   s     r<   r§   zCTestMore.test_unroll_indexing_list.<locals>.foo.<locals>.<listcomp>!  s   € Ð+Ð+Ð+ ˜1Ð+Ð+Ð+r>   )rQ   é   gq=
×£pÍ?NrB   rè  )Úcontr�   rŽ   Únormal_listÚheter_tupleÚitems         r<   rH   z/TestMore.test_unroll_indexing_list.<locals>.foo  sh   € àˆAØˆCØ+Ð+ dÐ+Ñ+Ô+ˆKØ/ˆKÝ& {Ñ3Ô3ð ð �Ø�{ 1”~Ñ%�Ø�Q‘�Ý�d‘”��Ø�c�6ˆMr>   c                 ó   — g | ]}|‘ŒS rE   rE   )r¦   rÔ   s     r<   r§   z6TestMore.test_unroll_indexing_list.<locals>.<listcomp>)  s   € Ð$Ð$Ð$�a�Ð$Ð$Ð$r>   rV   )rQ   Ú25z0.23ÚNone)r   rÑ   r   rJ   rK   r¤  r¥  )r6   rH   Údatar¦  r§  s        r<   Útest_unroll_indexing_listz"TestMore.test_unroll_indexing_list  sy  € å	ð		ð 		ñ 
Œð		ð %Ð$�5 ™8œ8Ð$Ñ$Ô$ˆõ ÑÔð 	;ð 	;Ø×Ò˜S˜S ™YœY¨¯ª°DÑ(9Ô(9Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;õ ÑÔð 	 &ØˆC�‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à—’Ñ!Ô!×,Ò,Ñ.Ô.ˆØ×ÒØØ'Ð'Ð'ñ	
ô 	
ð 	
ð 	
ð 	
s#   ¸3A7Á7A;Á>A;ÂB(Â(B,Â/B,c                 ó  ‡‡— t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        fŠddlmŠ t          ˆˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )N)rB   )rB   rB   )rB   rB   rB   r   r6  c                  ó<   •— d}  ‰‰¦  «        D ]}| |j         z  } Œ| S rŒ   )Úndim)r™  r�   Úfreevar_unrollÚmixeds     €€r<   rH   z.TestMore.test_unroller_as_freevar.<locals>.foo<  s3   ø€ àˆCØ#�^ EÑ*Ô*ð ð �Ø�q”v‘��ØˆJr>   )r  r  rˆ  r
   r   rJ   rK   )r6   rH   rÛ  rÜ  s     @@r<   Útest_unroller_as_freevarz!TestMore.test_unroller_as_freevar8  s�   øø€ Ý”˜‘”¥¤¨¡¤µ´¸Ñ1CÔ1CÐDˆØ:Ð:Ð:Ð:Ð:Ð:å	ð	ð 	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r>   c                 ó6   — t          d¦  «        d„ ¦   «         }d S )Nz(Tuple((int64, float64)),)c                 óN   — t          | ¦  «        D ]}Œd}|dk    r
d}|dk    °d S d S )NrB   r   r6  )r�   r  rG   s      r<   rH   zCTestMore.test_unroll_with_non_conformant_loops_present.<locals>.fooH  sB   € å# CÑ(Ô(ð ð �ØàˆAØ�q’&�&Ø�ð �q’&�&�&�&�&�&r>   r:  rL   s     r<   Ú-test_unroll_with_non_conformant_loops_presentz6TestMore.test_unroll_with_non_conformant_loops_presentE  s1   € õ 
Ð*Ñ	+Ô	+ð	ð 	ñ 
,Ô	+ð	ð 	ð 	r>   c                 óô   ‡— t          j        ddgddg¬¦  «        }t          |j        j                             ¦   «         ¦  «        Št          ˆfd„¦   «         }|                       ||¦  «        d¦  «         d S )Nr  ©rC   rD   )rË  Úf8)rÌ  rã  rÃ  c                 óŽ   •— d}t          ‰¦  «        D ]1}|t          j        | |         ¦  «                             ¦   «         z   }Œ2|S rŒ   ©r
   r  Úabsr  ©ÚarrÚresr  Úfieldss      €r<   rH   z>TestMore.test_literal_unroll_legalize_var_names01.<locals>.fooV  óH   ø€ àˆCÝ# FÑ+Ô+ð 1ð 1�Ø�BœF 3 q¤6™NœN×.Ò.Ñ0Ô0Ñ0��ØˆJr>   ç       @©r  ÚarrayÚtuplerÄ  rê  rª   r   rJ   ©r6   ÚtestrH   rê  s      @r<   Ú(test_literal_unroll_legalize_var_names01z1TestMore.test_literal_unroll_legalize_var_names01Q  sˆ   ø€ åŒx˜ Ð(°¸|Ð0LÐMÑMÔMˆÝ�t”zÔ(×-Ò-Ñ/Ô/Ñ0Ô0ˆå	ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜˜T™œ CÑ(Ô(Ð(Ð(Ð(r>   c                 óô   ‡— t          j        ddgddg¬¦  «        }t          |j        j                             ¦   «         ¦  «        Št          ˆfd„¦   «         }|                       ||¦  «        d¦  «         d S )Nr  râ  )za1[0]rã  )za2[1]rã  rÃ  c                 óŽ   •— d}t          ‰¦  «        D ]1}|t          j        | |         ¦  «                             ¦   «         z   }Œ2|S rŒ   rå  rç  s      €r<   rH   z>TestMore.test_literal_unroll_legalize_var_names02.<locals>.fooe  rë  r>   rì  rí  rð  s      @r<   Ú(test_literal_unroll_legalize_var_names02z1TestMore.test_literal_unroll_legalize_var_names02_  s’   ø€ åŒx˜ Ð(Ø.°Ð@ðBñ Bô Bˆå�t”zÔ(×-Ò-Ñ/Ô/Ñ0Ô0ˆå	ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜˜T™œ CÑ(Ô(Ð(Ð(Ð(r>   N)r^   r_   r`   rz  r€  r   rö   r‰  rŽ  r’  r•  rš  rŸ  r¨  r±  r¸  r»  r¾  rÂ  rÅ  rÊ  r×  rÝ  rà  rò  rõ  rE   r>   r<   ru  ru  !  s‡  € € € € € ð
ð 
ð 
ð 
ð 
ð 
ð$ €X„]Ð6Ñ7Ô7ðð ñ 8Ô7ðð0 €X„]ÐMÑNÔNð)ð )ñ OÔNð)ð
5ð 
5ð 
5ð	Að 	Að 	Að/ð /ð /ð4ð 4ð 4ð$
ð 
ð 
ð./ð /ð /ð5ð 5ð 5ð/ð /ð /ð5ð 5ð 5ð	/ð 	/ð 	/ð
/ð 
/ð 
/ð/ð /ð /ð(
ð 
ð 
ð:/ð /ð /ð
ð 
ð 
ð)ð )ð )ð)ð )ð )ð )ð )r>   ru  c                 ó`   ‡ — t          dd¬¦  «         G ˆ fd„dt          ¦  «        ¦   «         }|S )zg Returns a compiler pass that captures the mutation state reported
    by the pass used in the argumentFTra   c                   ó8   •— e Zd Zd” j        z  Z” Zd„ Zˆ fd„ZdS )úcapture.<locals>.ResultCapturerz
capture_%sc                 ó.   — t          j        | ¦  «         d S rh   ri   rk   s    r<   rj   z(capture.<locals>.ResultCapturer.__init__w  s   € ÝÔ! $Ñ'Ô'Ð'Ð'Ð'r>   c                 ó‚   •—  ‰¦   «                               |¦  «        }|j                             di ¦  «        }||‰<   |S )NÚmutation_results)rp   r’   Ú
setdefault)r6   ro   Úresultrû  Ú	real_passs       €r<   rp   z(capture.<locals>.ResultCapturer.run_passz  sE   ø€ Ø�Y‘[”[×)Ò)¨%Ñ0Ô0ˆFØ$œ~×8Ò8Ð9KÈRÑPÔPÐØ*0Ð˜YÑ'ØˆMr>   N)r^   r_   r`   rq   Ú
_real_passrj   rp   )rþ  s   €r<   ÚResultCapturerrø  r  sN   ø€ € € € € à˜yœÑ.ˆØˆ
ð	(ð 	(ð 	(ð	ð 	ð 	ð 	ð 	ð 	ð 	r>   r   )r   r   )rþ  r   s   ` r<   Úcapturer  o  sY   ø€ õ ˜u°DÐ9Ñ9Ô9ðð ð ð ð ð ð �ñ ô ñ :Ô9ðð Ðr>   c                   ó   — e Zd ZdZd„ ZdS )ÚCapturingCompilerz? Simple pipeline that wraps passes with the ResultCapturer passc                 ój  ‡— t          d¦  «        Šˆfd„} |t          d¦  «          |t          d¦  «          |t          d¦  «          |t          d¦  «          |t
          d¦  «          |t          d¦  «          |t          d	¦  «          |t          d
¦  «         ‰ 	                    ¦   «          ‰gS )NzCapturing Compilerc                 óJ   •— ‰                      t          | ¦  «        |¦  «        S rh   )r~   r  )rG   rÓ   r€   s     €r<   r~   z4CapturingCompiler.define_pipelines.<locals>.add_pass‰  s   ø€ Ø—;’;�w q™zœz¨1Ñ-Ô-Ð-r>   ry   zfix up argsrz   zhandles literal_unrollr{   z$ensure IR is legal prior to loweringr|   r}   )
r   r   r   r   r   r   r    r#   r!   r   )r6   r~   r€   s     @r<   rƒ   z"CapturingCompiler.define_pipelines†  sä   ø€ ÝÐ-Ñ.Ô.ˆð	.ð 	.ð 	.ð 	.ð 	.ð 	ˆÕ"Ð$8Ñ9Ô9Ð9Øˆ•˜MÑ*Ô*Ð*Øˆ•˜Ñ/Ô/Ð/Øˆ•Ð 8Ñ9Ô9Ð9ð 	ˆÕ&Ð(;Ñ<Ô<Ð<ð 	ˆ•Ø7ñ	9ô 	9ð 	9ð 	ˆ•Ð!2Ñ3Ô3Ð3Øˆ•Ð"9Ñ:Ô:Ð:Ø
�Š‰ŒˆØˆtˆr>   N)r^   r_   r`   Ú__doc__rƒ   rE   r>   r<   r  r  ƒ  s)   € € € € € ØIÐIðð ð ð ð r>   r  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLiteralUnrollPassTriggeringc                 óÜ   — t          t          ¬¦  «        d„ ¦   «         } |¦   «          |j        |j        d                  }|                      |j        d         t                   ¦  «         d S )Nr‰   c                  ó   — d} dD ]}| |z  } Œ| S rÆ   rE   rÇ   s     r<   rH   zLTestLiteralUnrollPassTriggering.test_literal_unroll_not_invoked.<locals>.foo¢  s&   € àˆCØð ð �Ø�q‘��ØˆJr>   r   rû  ©r   r  r.   r/   ÚassertFalser’   r   ©r6   rH   r9   s      r<   Útest_literal_unroll_not_invokedz?TestLiteralUnrollPassTriggering.test_literal_unroll_not_invoked¡  so   € Ý	Õ.Ð	/Ñ	/Ô	/ð	ð 	ñ 
0Ô	/ð	ð 	ˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ×Ò˜œÐ'9Ô:½=ÔIÑJÔJÐJÐJÐJr>   c                 óÜ   — t          t          ¬¦  «        d„ ¦   «         } |¦   «          |j        |j        d                  }|                      |j        d         t                   ¦  «         d S )Nr‰   c                  ó8   — d} t          d¦  «        D ]}| |z  } Œ| S rÆ   r6  rÇ   s     r<   rH   zKTestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked.<locals>.foo®  s.   € àˆCÝ# IÑ.Ô.ð ð �Ø�q‘��ØˆJr>   r   rû  )r   r  r.   r/   r2   r’   r   r  s      r<   Útest_literal_unroll_is_invokedz>TestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked­  sm   € Ý	Õ.Ð	/Ñ	/Ô	/ð	ð 	ñ 
0Ô	/ð	ð 	ˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ�Š˜œÐ&8Ô9½-ÔHÑIÔIÐIÐIÐIr>   c                 óð   ‡— t           Št          t          ¬¦  «        ˆfd„¦   «         } |¦   «          |j        |j        d                  }|                      |j        d         t                   ¦  «         d S )Nr‰   c                  ó2   •— d}  ‰d¦  «        D ]}| |z  } Œ| S rÆ   rE   )rŽ   r�   Úaliass     €r<   rH   zUTestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked_via_alias.<locals>.foo¼  s1   ø€ àˆCØ�U˜9Ñ%Ô%ð ð �Ø�q‘��ØˆJr>   r   rû  )r
   r   r  r.   r/   r2   r’   r   )r6   rH   r9   r  s      @r<   Ú(test_literal_unroll_is_invoked_via_aliaszHTestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked_via_alias¹  s}   ø€ Ýˆå	Õ.Ð	/Ñ	/Ô	/ð	ð 	ð 	ð 	ñ 
0Ô	/ð	ð 	ˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ�Š˜œÐ&8Ô9½-ÔHÑIÔIÐIÐIÐIr>   c                 óÜ   — t          t          ¬¦  «        d„ ¦   «         } |¦   «          |j        |j        d                  }|                      |j        d         t                   ¦  «         d S )Nr‰   c                  ó   — d S rh   rE   rE   r>   r<   rH   zVTestLiteralUnrollPassTriggering.test_literal_unroll_assess_empty_function.<locals>.fooÈ  s   € àˆDr>   r   rû  r  r  s      r<   Ú)test_literal_unroll_assess_empty_functionzITestLiteralUnrollPassTriggering.test_literal_unroll_assess_empty_functionÇ  so   € Ý	Õ.Ð	/Ñ	/Ô	/ð	ð 	ñ 
0Ô	/ð	ð 	ˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ×Ò˜œÐ'9Ô:½=ÔIÑJÔJÐJÐJÐJr>   c                 ó  — d}i }t          |i |¦  «          t          t          ¬¦  «        |d         ¦  «        } |¦   «          |j        |j        d                  }|                      |j        d         t                   ¦  «         d S )Nzdef foo():
	passr‰   rH   r   rû  )Úexecr   r  r.   r/   r  r’   r   )r6   r  rÐ  rH   r9   s        r<   Ú"test_literal_unroll_not_in_globalszBTestLiteralUnrollPassTriggering.test_literal_unroll_not_in_globalsÐ  s   € Ø$ˆØˆÝˆQ��A‰ŒˆØ4�dÕ"3Ð4Ñ4Ô4°Q°u´XÑ>Ô>ˆØˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ×Ò˜œÐ'9Ô:½=ÔIÑJÔJÐJÐJÐJr>   c                 ó´  — d}i }t          |i |¦  «          t          t          ¬¦  «        |d         ¦  «        }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         i }t          |dt          i|¦  «          t          t          ¬¦  «        |d         ¦  «        } |¦   «          |j
        |j        d                  }|                      |j        d         t                   ¦  «         ddlm} d	}i }t           ||¦  «        i |¦  «          t          t          ¬¦  «        |d
         ¦  «        } |¦   «          |j
        |j        d                  }|                      |j        d         t                   ¦  «         ddlm} d}i }t           ||¦  «        i |¦  «          t          t          ¬¦  «        |d
         ¦  «        } |¦   «          |j
        |j        d                  }|                      |j        d         t                   ¦  «         d S )Nz1def foo():
	for x in literal_unroll((1,)):
		passr‰   rH   z$Untyped global name 'literal_unroll'r
   r   rû  )Údedentzó
            def gen():
                from numba import literal_unroll
                def foo():
                    for x in literal_unroll((1,)):
                        pass
                return foo
            bar = gen()
            ró   a  
            def gen():
                from numba import literal_unroll as something_else
                def foo():
                    for x in something_else((1,)):
                        pass
                return foo
            bar = gen()
            )r  r   r  rW   r   rK  rY   rZ   r[   r
   r.   r/   r2   r’   r   Útextwrapr  )r6   r  rÐ  rH   rL  r9   r  s          r<   Ú&test_literal_unroll_globals_and_localszFTestLiteralUnrollPassTriggering.test_literal_unroll_globals_and_localsÙ  s†  € ØHˆØˆÝˆQ��A‰ŒˆØ4�dÕ"3Ð4Ñ4Ô4°Q°u´XÑ>Ô>ˆØ×Ò�vÔ1Ñ2Ô2ð 	°fØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐ<Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð ˆÝˆQÐ!¥>Ð2°AÑ6Ô6Ð6Ø4�dÕ"3Ð4Ñ4Ô4°Q°u´XÑ>Ô>ˆØˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ�Š˜œÐ&8Ô9½-ÔHÑIÔIÐIð 	$Ð#Ð#Ð#Ð#Ð#ðˆð ˆÝˆVˆV�A‰YŒY˜˜AÑÔÐØ4�dÕ"3Ð4Ñ4Ô4°Q°u´XÑ>Ô>ˆØˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ�Š˜œÐ&8Ô9½-ÔHÑIÔIÐIð 	$Ð#Ð#Ð#Ð#Ð#ðˆð ˆÝˆVˆV�A‰YŒY˜˜AÑÔÐØ4�dÕ"3Ð4Ñ4Ô4°Q°u´XÑ>Ô>ˆØˆ‰ŒˆØŒ}˜Sœ^¨AÔ.Ô/ˆØ�Š˜œÐ&8Ô9½-ÔHÑIÔIÐIÐIÐIs   ÁA0Á0A4Á7A4N)	r^   r_   r`   r  r  r  r  r  r  rE   r>   r<   r  r  Ÿ  s‚   € € € € € ð
Kð 
Kð 
Kð
Jð 
Jð 
JðJð Jð JðKð Kð KðKð Kð Kð4Jð 4Jð 4Jð 4Jð 4Jr>   r  Ú__main__)=Úcollectionsr   Únumpyr  Únumba.tests.supportr   r   r   r   rˆ  r   r	   r
   r   Ú
numba.corer   r   r   Únumba.testingr   Únumba.core.extendingr   Únumba.core.compiler_machineryr   r   r   r   Únumba.core.compilerr   Únumba.core.untyped_passesr   r   r   r   r   r   r   r   Únumba.core.typed_passesr   r    r!   r"   r#   Únumba.core.ir_utilsr$   r%   Únumba.core.types.functionsr&   rÁ  r+   re   rs   rø   rH  ru  r  r  r  r^   ÚmainrE   r>   r<   ú<module>r.     s  ðØ "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð ðLð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Là 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø "Ð "Ð "Ð "Ð "Ð "Ø )Ð )Ð )Ð )Ð )Ð )ðGð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gà ,Ð ,Ð ,Ð ,Ð ,Ð ,ðBð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð JÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 3Ð 3Ð 3Ð 3Ð 3Ð 3à€	ð%7ð %7ð %7ð %7ð %7 _°hñ %7ô %7ð %7ðP €˜5°Ð6Ñ6Ô6ð
ð 
ð 
ð 
ð 
�Lñ 
ô 
ñ 7Ô6ð
ðzCð zCð zCð zCð zC˜°ñ zCô zCð zCðzk-ð k-ð k-ð k-ð k-˜?¨Hñ k-ô k-ð k-ð\c-ð c-ð c-ð c-ð c-˜/¨8ñ c-ô c-ð c-ðL	K)ð K)ð K)ð K)ð K)ˆxñ K)ô K)ð K)ð\
ð ð ð(ð ð ð ð ˜ñ ô ð ð8nJð nJð nJð nJð nJ hñ nJô nJð nJðb ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr>   