§
    ƒÛgH)  ã                   óD  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	Z	d dl
mZ d dlmZ d dlmZ d dlmZmZ ddlT  G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zd„ Zd„ Zd„ Zd„ Zedk    r ej        ¦   «          dS dS )é    N)Úget_context)ÚTypingError)ÚTestCase)Úresolve_dispatcher_from_str©ÚdumpsÚloadsé   )Ú*c                   ó¦   — e Zd Zd„ Zej        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S )ÚTestDispatcherPicklingc                 ó\   — t          t          j        dz   ¦  «        D ]} ||g|¢R i |¤Ž Œd S )Nr
   )ÚrangeÚpickleÚHIGHEST_PROTOCOL)ÚselfÚmethÚargsÚkwargsÚprotos        úP/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_serialize.pyÚrun_with_protocolsz)TestDispatcherPickling.run_with_protocols   sN   € Ý�6Ô2°QÑ6Ñ7Ô7ð 	)ð 	)ˆEØˆD�Ð(˜Ð(Ð(Ð( Ð(Ð(Ð(Ð(ð	)ð 	)ó    c              #   ó®   K  — d}t          |¦  «        }|j        } t          |j        ¦  «        |¦  «        |_        	 d V — ||_        d S # ||_        w xY w)NÚcpu)r   ÚtargetdescrÚtype)r   ÚhwstrÚdispatcher_clsÚ	old_descrs       r   Úsimulate_fresh_targetz,TestDispatcherPickling.simulate_fresh_target   so   è è € àˆÝ4°UÑ;Ô;ˆØ"Ô.ˆ	à%E¥T¨.Ô*DÑ%EÔ%EÀeÑ%LÔ%LˆÔ"ð	3ØˆEˆEˆEð *3ˆNÔ&Ð&Ð&ø¨ˆNÔ&Ð2Ð2Ð2Ð2s   ¾A Á	Ac                 óò   ‡ ‡‡— ˆˆˆ fd„} ||¦  «         t          j        ||¦  «        }‰                      ¦   «         5  t          j        |¦  «        } ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó°   •— t          ‰t          ¦  «        r&t          ‰t          ¦  «        r ‰j        ‰| g‰¢R Ž  d S ‰                      | ‰Ž ‰¦  «         d S )N)Ú
isinstancer   Ú
issubclassÚ	ExceptionÚassertRaisesÚassertPreciseEqual)Úfuncr   Úexpected_resultr   s    €€€r   Úcheck_resultz7TestDispatcherPickling.check_call.<locals>.check_result'   sn   ø€ Ý˜?­DÑ1Ô1ð FÝ˜µ	Ñ:Ô:ðFà!�Ô! /°4Ð?¸$Ð?Ð?Ð?Ð?Ð?Ð?à×'Ò'¨¨¨d¨°_ÑEÔEÐEÐEÐEr   )r   r   r!   r	   )r   r   r)   r*   r   r+   ÚpickledÚnew_funcs   `  ``   r   Ú
check_callz!TestDispatcherPickling.check_call&   sç   øøø€ ð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	ˆ�TÑÔÐÝ”,˜t UÑ+Ô+ˆØ×'Ò'Ñ)Ô)ð 	#ð 	#Ý”| GÑ,Ô,ˆHØˆL˜Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s   ¿ A,Á,A0Á3A0c                 óŽ   — |                       | j        t          dd¦  «         |                       | j        t          dd¦  «         d S )Né   ©r
   é   )ç333333ó?gÍÌÌÌÌÌ@)r   r.   Úadd_with_sig©r   s    r   Útest_call_with_sigz)TestDispatcherPickling.test_call_with_sig5   s@   € Ø×Ò ¤µ¸qÀ&ÑIÔIÐIà×Ò ¤µ¸qÀ*ÑMÔMÐMÐMÐMr   c                 óÒ   — |                       | j        t          dd¦  «         |                       | j        t          dd¦  «         |                       | j        t          dd¦  «         d S )Nr0   r1   ç      @©r3   g333333@Úabc)ÚaÚbc)r   r.   Úadd_without_sigr5   s    r   Útest_call_without_sigz,TestDispatcherPickling.test_call_without_sig:   s\   € Ø×Ò ¤µÀ!ÀVÑLÔLÐLØ×Ò ¤µÀ#ÀzÑRÔRÐRà×Ò ¤µÀ%ÈÑUÔUÐUÐUÐUr   c                 óÌ   — |                       | j        t          dd¦  «         |                       | j        t          t          t	          ¦   «         t	          ¦   «         f¦  «         d S )Nr8   r9   )r   r.   Úadd_nopythonr   Úobjectr5   s    r   Útest_call_nopythonz)TestDispatcherPickling.test_call_nopython@   sP   € Ø×Ò ¤µ¸sÀJÑOÔOÐOà×Ò ¤µ½{ÍVÉXÌXÕW]ÑW_ÔW_ÐL`ÑaÔaÐaÐaÐar   c                 óT   — |                       | j        t          t          d¦  «         d S )N©r
   é   )r   r.   Úadd_nopython_failr   r5   s    r   Útest_call_nopython_failz.TestDispatcherPickling.test_call_nopython_failE   s&   € à×Ò ¤Õ1BÅKÐQWÑXÔXÐXÐXÐXr   c                 óJ   — |                       | j        t          dd¦  «         d S )Ng      @)g      @)r   r.   Úget_global_objmoder5   s    r   Útest_call_objmode_with_globalz4TestDispatcherPickling.test_call_objmode_with_globalI   s%   € Ø×Ò ¤Õ1CÀSÈ&ÑQÔQÐQÐQÐQr   c                 ó^   — t          d¦  «        }|                      | j        |dd¦  «         d S )Nr
   é   )rE   é   )Úclosurer   r.   ©r   Úinners     r   Útest_call_closurez(TestDispatcherPickling.test_call_closureL   s/   € Ý˜‘
”
ˆØ×Ò ¤°¸¸6ÑBÔBÐBÐBÐBr   c                 óX   — t          di |¤Ž}|                      | j        |dd¦  «         d S )Nç      @g      @©ç      @)rS   )Úclosure_with_globalsr   r.   )r   Újit_argsrP   s      r   Úcheck_call_closure_with_globalsz6TestDispatcherPickling.check_call_closure_with_globalsP   s7   € Ý$Ð5Ð5¨HÐ5Ð5ˆØ×Ò ¤°¸¸VÑDÔDÐDÐDÐDr   c                 ó2   — |                       d¬¦  «         d S )NT)Únopython©rX   r5   s    r   Ú'test_call_closure_with_globals_nopythonz>TestDispatcherPickling.test_call_closure_with_globals_nopythonT   ó   € Ø×,Ò,°dÐ,Ñ;Ô;Ð;Ð;Ð;r   c                 ó2   — |                       d¬¦  «         d S )NT)Úforceobjr[   r5   s    r   Ú&test_call_closure_with_globals_objmodez=TestDispatcherPickling.test_call_closure_with_globals_objmodeW   r]   r   c                 ó^   — t          d¦  «        }|                      | j        |dd¦  «         d S )NrS   g      &@)rU   g      @)Úclosure_calling_other_functionr   r.   rO   s     r   Ú(test_call_closure_calling_other_functionz?TestDispatcherPickling.test_call_closure_calling_other_functionZ   s1   € Ý.¨sÑ3Ô3ˆØ×Ò ¤°¸¸jÑIÔIÐIÐIÐIr   c                 ó^   — t          d¦  «        }|                      | j        |dd¦  «         d S )NrS   g       @rT   )Úclosure_calling_other_closurer   r.   rO   s     r   Ú'test_call_closure_calling_other_closurez>TestDispatcherPickling.test_call_closure_calling_other_closure^   s1   € Ý-¨cÑ2Ô2ˆØ×Ò ¤°¸¸VÑDÔDÐDÐDÐDr   c                 óJ   — |                       | j        t          dd¦  «         d S ©Né$   )rL   )r   r.   Údyn_funcr5   s    r   Útest_call_dyn_funcz)TestDispatcherPickling.test_call_dyn_funcb   s$   € à×Ò ¤µ¸2¸tÑDÔDÐDÐDÐDr   c                 óJ   — |                       | j        t          dd¦  «         d S rh   )r   r.   Údyn_func_objmoder5   s    r   Útest_call_dyn_func_objmodez1TestDispatcherPickling.test_call_dyn_func_objmodef   s%   € à×Ò ¤Õ1AÀ2ÀtÑLÔLÐLÐLÐLr   c                 óh   — t          d¦  «        }|                      | j        t           |d¦  «         d S )Nç        )rp   )Úget_renamed_moduler   r.   )r   Úexpecteds     r   Útest_renamed_modulez*TestDispatcherPickling.test_renamed_modulej   s?   € õ & cÑ*Ô*ˆØ×Ò ¤Õ1CØ (¨&ñ	2ô 	2ð 	2ð 	2ð 	2r   c                 óŽ   — |                       | j        t          dd¦  «         |                       | j        t          dd¦  «         d S )Né.   rD   y      @      ð?)y              ð?rE   )r   r.   Úgenerated_addr5   s    r   Útest_call_generatedz*TestDispatcherPickling.test_call_generatedq   sR   € Ø×Ò ¤µØ " Fñ	,ô 	,ð 	,à×Ò ¤µØ &¨ñ	1ô 	1ð 	1ð 	1ð 	1r   c                 óÀ   — t          d¦  «        }t          j        |¦  «        } dj        di t	          ¦   «         ¤Ž}t          j        t          j        d|g¦  «         dS )z}
        Check that reconstructing doesn't depend on resources already
        instantiated in the original process.
        rS   z±if 1:
            import pickle

            data = {pickled!r}
            func = pickle.loads(data)
            res = func(4.0)
            assert res == 8.0, res
            ú-cN© )	re   r   r   ÚformatÚlocalsÚ
subprocessr.   ÚsysÚ
executable)r   r)   r,   Úcodes       r   Útest_other_processz)TestDispatcherPickling.test_other_processw   sp   € õ
 -¨SÑ1Ô1ˆÝ”,˜tÑ$Ô$ˆðð ô ð#ð #õ  ™œð#ð #ˆõ 	Ô�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r   c                 óô  — t          d¦  «        }t          j        |¦  «        }t          d¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }|                      ||¦  «         |                       |dd¦  «        d¦  «         |                     ¦   «          |                       |dd¦  «        d¦  «         |                      ||¦  «         |                       |dd¦  «        d¦  «         t          d¦  «        } |d	d
¦  «         t          j        |¦  «        }~t          j	        ¦   «          t          j        |¦  «        }t          j        |¦  «        }|                      ||¦  «         |                       |dd¦  «        d¦  «         |                     ¦   «          |                       |dd¦  «        d¦  «         dS )z¼
        Check that deserializing the same function multiple times re-uses
        the same dispatcher object.

        Note that "same function" is intentionally under-specified.
        r0   rL   rE   rM   é
   r2   é   é   é*   é+   é   é   N)
rN   r   r   r	   ÚassertIsÚassertEqualÚdisable_compileÚassertIsNotÚgcÚcollect)r   r)   r,   Úfunc2Úpickled2ÚfÚgÚhs           r   Ú
test_reusez!TestDispatcherPickling.test_reuseˆ   sÄ  € õ �q‰zŒzˆÝ”,˜tÑ$Ô$ˆÝ˜‘
”
ˆÝ”< Ñ&Ô&ˆåŒL˜Ñ!Ô!ˆÝŒL˜Ñ!Ô!ˆÝŒL˜Ñ"Ô"ˆØ�Š�a˜ÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%Ø	×ÒÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%à×Ò˜˜AÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%õ �q‰zŒzˆØˆˆR�‰ŒˆÝ”,˜tÑ$Ô$ˆØÝ
Œ
‰ŒˆåŒL˜Ñ!Ô!ˆÝŒL˜Ñ!Ô!ˆØ�Š�a˜ÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%Ø	×ÒÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%Ð%Ð%r   c                 óL   — d}t          j        t          j        d|g¦  «         dS )zN
        The imp module was deprecated in v3.4 in favour of importlib
        a  if 1:
            import pickle
            import warnings
            with warnings.catch_warnings(record=True) as w:
                warnings.simplefilter('always', DeprecationWarning)
                from numba import njit
                @njit
                def foo(x):
                    return x + 1
                foo(1)
                serialized_foo = pickle.dumps(foo)
            for x in w:
                if 'serialize.py' in x.filename:
                    assert "the imp module is deprecated" not in x.msg
        ry   N)r}   r.   r~   r   )r   r€   s     r   Útest_imp_deprecationz+TestDispatcherPickling.test_imp_deprecation­   s+   € ðˆõ 	Ô�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r   N)Ú__name__Ú
__module__Ú__qualname__r   Ú
contextlibÚcontextmanagerr!   r.   r6   r>   rB   rG   rJ   rQ   rX   r\   r`   rc   rf   rk   rn   rs   rw   r�   r•   r—   rz   r   r   r   r      s�  € € € € € ð)ð )ð )ð Ôð3ð 3ñ Ôð3ð#ð #ð #ðNð Nð Nð
Vð Vð Vðbð bð bð
Yð Yð YðRð Rð RðCð Cð CðEð Eð Eð<ð <ð <ð<ð <ð <ðJð Jð JðEð Eð EðEð Eð EðMð Mð Mð2ð 2ð 2ð1ð 1ð 1ð<ð <ð <ð"#&ð #&ð #&ðJ<ð <ð <ð <ð <r   r   c                   ó   — e Zd Zd„ ZdS )ÚTestSerializationMiscc                 ó4  — ddl m} t          ¦   «         }t          j        |¦  «        }t          |¦  «        } |t          |¦  «        ||¦  «        }|                      ||¦  «          |t          |¦  «        ||¦  «        }|                      ||¦  «         d S )Nr   )Ú_numba_unpickle)	Únumba.core.serializer    rA   r   r   ÚhashÚidr�   rŠ   )r   r    Ú
random_objÚbytebufÚhashedÚgot1Úgot2s          r   Útest_numba_unpicklez)TestSerializationMisc.test_numba_unpickleÄ   s›   € à8Ð8Ð8Ð8Ð8Ð8å‘X”Xˆ
Ý”,˜zÑ*Ô*ˆÝ�jÑ!Ô!ˆàˆ�r *™~œ~¨w¸Ñ?Ô?ˆà×Ò˜˜zÑ*Ô*Ð*Øˆ�r *™~œ~¨w¸Ñ?Ô?ˆà�Š�d˜DÑ!Ô!Ð!Ð!Ð!r   N)r˜   r™   rš   r©   rz   r   r   rž   rž   Ã   s#   € € € € € ð"ð "ð "ð "ð "r   rž   c                   ód   — e Zd ZdZdZd„ Z ej        e dk    d¦  «        d„ ¦   «         Zd„ Z	d„ Z
d	S )
ÚTestCloudPickleIssueszOThis test case includes issues specific to the cloudpickle implementation.
    Fc                 óä   ‡ ‡—  G d„ d¦  «        Šˆfd„}ˆˆ fd„}t          ‰¦  «        } |¦   «           |¦   «          t          |¦  «          |¦   «          t          |¦  «          |¦   «          d S )Nc                   ó   — e Zd ZdZdS )úITestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.KlassN©r˜   r™   rš   Úclassvarrz   r   r   ÚKlassr®   Ü   ó   € € € € € ØˆHˆHˆHr   r±   c                  ó   •— d‰ _         d S ©Néd   )r°   ©r±   s   €r   ÚmutatorzKTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.mutatorß   s   ø€ Ø ˆEŒNˆNˆNr   c                  ó>   •— ‰                      ‰ j        d¦  «         d S r´   )r‹   r°   )r±   r   s   €€r   ÚcheckzITestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.checkâ   s!   ø€ Ø×Ò˜Uœ^¨SÑ1Ô1Ð1Ð1Ð1r   r   )r   r·   r¹   Úsavedr±   s   `   @r   Ú$test_dynamic_class_reset_on_unpicklez:TestCloudPickleIssues.test_dynamic_class_reset_on_unpickleÚ   s¶   øø€ ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	!ð 	!ð 	!ð 	!ð 	!ð	2ð 	2ð 	2ð 	2ð 	2ð 	2õ �e‘”ˆØˆ‰	Œ	ˆ	Øˆ‰ŒˆÝˆe‰Œˆàˆ‰ŒˆÝˆe‰ŒˆØˆ‰Œˆˆˆr   Ú__main__z*Test cannot run as when module is __main__c                 óä   — t          d¦  «        }|                     t          ¬¦  «        }|                     ¦   «          |                     d¬¦  «         |                      |j        d¦  «         d S )NÚspawn)Útargeté<   ©Útimeoutr   )r   ÚProcessÚ"check_main_class_reset_on_unpickleÚstartÚjoinr‹   Úexitcode)r   ÚmpÚprocs      r   Ú!test_main_class_reset_on_unpicklez7TestCloudPickleIssues.test_main_class_reset_on_unpickleî   sd   € õ ˜Ñ!Ô!ˆØ�zŠzÕ!CˆzÑDÔDˆØ�
Š
‰ŒˆØ�	Š	˜"ˆ	ÑÔÐØ×Ò˜œ¨Ñ*Ô*Ð*Ð*Ð*r   c                 ó   —  G d„ d¦  «        }t          |¦  «        }t          d¦  «        }|                     t          |f¬¦  «        }|                     ¦   «          |                     d¬¦  «         |                      |j        d¦  «         d S )Nc                   ó   — e Zd ZdZdS )úRTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle_new_proc.<locals>.KlassNr¯   rz   r   r   r±   rÍ   ù   r²   r   r±   r¾   )r¿   r   rÀ   rÁ   r   )r   r   rÃ   Ú!check_unpickle_dyn_class_new_procrÅ   rÆ   r‹   rÇ   )r   r±   rº   rÈ   rÉ   s        r   Ú-test_dynamic_class_reset_on_unpickle_new_proczCTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle_new_proc÷   s�   € ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	õ �e‘”ˆõ ˜Ñ!Ô!ˆØ�zŠzÕ!BÈ%ÈˆzÑRÔRˆØ�
Š
‰ŒˆØ�	Š	˜"ˆ	ÑÔÐØ×Ò˜œ¨Ñ*Ô*Ð*Ð*Ð*r   c                 ót   — t          j        t          ¦  «        }|                       |¦   «         d¦  «         d S )N)rµ   rµ   )ÚnumbaÚnjitÚ
issue_7356r‹   )r   Úcfuncs     r   Útest_dynamic_class_issue_7356z3TestCloudPickleIssues.test_dynamic_class_issue_7356  s3   € Ý”
�:Ñ&Ô&ˆØ×Ò˜˜™œ *Ñ-Ô-Ð-Ð-Ð-r   N)r˜   r™   rš   Ú__doc__Ú_numba_parallel_test_r»   ÚunittestÚskipIfrÊ   rÏ   rÕ   rz   r   r   r«   r«   Õ   s‹   € € € € € ðð à!Ððð ð ð( €X„_�X Ò+ØAñCô Cð+ð +ñCô Cð+ð+ð +ð +ð.ð .ð .ð .ð .r   r«   c                   ó   — e Zd ZdZdS )ÚDynClassN)r˜   r™   rš   r;   rz   r   r   rÛ   rÛ     s   € € € € € à€A€A€Ar   rÛ   c                  ó  — t          j        d¬¦  «        5  dt          _        t          j        } d d d ¦  «         n# 1 swxY w Y   t          j        d¬¦  «        5  t          j        }d d d ¦  «         n# 1 swxY w Y   | |fS )NÚintp)Úbeforerµ   )Úafter)rÑ   ÚobjmoderÛ   r;   )rÞ   rß   s     r   rÓ   rÓ     só   € Ý	Œ˜fÐ	%Ñ	%Ô	%ð ð Ø�Œ
Ý”ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ˜VÐ	$Ñ	$Ô	$ð ð Ý”
ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�5ˆ=Ðs   –;»?Á?ÁA4Á4A8Á;A8c                  óÂ   — t          j        dd¬¦  «        } | d         }|j        dk    sJ ‚|j        dk    sJ ‚t	          |¦  «        }d|_        t          ||¦  «         d S )Nz"numba.tests.cloudpickle_main_classr¼   )Úrun_namer±   rµ   )ÚrunpyÚ
run_moduler™   r°   r   Ú_check_dyn_class)Úglbsr±   rº   s      r   rÄ   rÄ     sy   € åÔØ,Øðñ ô €Dð
 �ŒM€EØÔ˜zÒ)Ð)Ð)Ð)ØŒ>˜SÒ Ð Ð Ð Ý�%‰LŒL€Eà€E„Nå�U˜EÑ"Ô"Ð"Ð"Ð"r   c                 ól   — t          | ¦  «        }|j        dk    sJ ‚d|_        t          || ¦  «         d S r´   )r	   r°   rå   )rº   r±   s     r   rÎ   rÎ   *  s=   € Ý�%‰LŒL€EØŒ>˜SÒ Ð Ð Ð à€E„Nå�U˜EÑ"Ô"Ð"Ð"Ð"r   c                 óÖ   ‡ — ˆ fd„} |¦   «          t          |¦  «        }|‰ urt          d¦  «        ‚ |¦   «          t          |¦  «        }|‰ urt          d¦  «        ‚ |¦   «          d S )Nc                  ó<   •— ‰ j         dk    rt          d¦  «        ‚d S )Nrµ   zCheck failed. Klass reset.)r°   ÚAssertionErrorr¶   s   €r   r¹   z_check_dyn_class.<locals>.check4  s'   ø€ ØŒ>˜SÒ Ð Ý Ð!=Ñ>Ô>Ð>ð !Ð r   zExpected reuse)r	   rê   )r±   rº   r¹   Úloadeds   `   r   rå   rå   3  s�   ø€ ð?ð ?ð ?ð ?ð ?ð 
€E�G„G€GÝ�5‰\Œ\€FØ�UÐÐÝÐ-Ñ.Ô.Ð.à	€E�G„G€GÝ�5‰\Œ\€FØ�UÐÐÝÐ-Ñ.Ô.Ð.Ø	€E�G„G€G€G€Gr   r¼   )r›   rŽ   r   rã   r}   r~   rØ   Úmultiprocessingr   rÑ   Únumba.core.errorsr   Únumba.tests.supportr   Únumba.core.target_extensionr   Únumba.cloudpickler   r	   Úserialize_usecasesr   rž   r«   rA   rÛ   rÓ   rÄ   rÎ   rå   r˜   Úmainrz   r   r   ú<module>ró      sÓ  ðØ Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø (Ð (Ð (Ð (Ð (Ð (Ø CÐ CÐ CÐ CÐ CÐ CØ *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø !Ð !Ð !Ð !ðn<ð n<ð n<ð n<ð n<˜Xñ n<ô n<ð n<ðb"ð "ð "ð "ð "˜Hñ "ô "ð "ð$3.ð 3.ð 3.ð 3.ð 3.˜Hñ 3.ô 3.ð 3.ðlð ð ð ð ˆvñ ô ð ð
ð ð ð#ð #ð #ð"#ð #ð #ðð ð ð" ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   