§
    xÅjî!  ã                   ót  — d dl Z d dlZddlmZ g add„Zg add„Z G d„ de¦  «        Z	 e	de
fi ¦  «        Z G d	„ d
e¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zd„ ZdS )é    Né   )Úcallablec                 óD   — t                                | ||||g¦  «         d S ©N)Ú_transition_gathererÚappend)ÚeventÚfrom_ÚtoÚactionÚguards        úOC:\Projects\Historical\venv\Lib\site-packages\invoke/vendor/fluidity/machine.pyÚ
transitionr   	   s'   € Ý×Ò ¨¨r°6¸5Ð AÑBÔBÐBÐBÐBó    c                 ó@   — t                                | ||g¦  «         d S r   )Ú_state_gathererr   ©ÚnameÚenterÚexits      r   Ústater      s#   € Ý×Ò˜D %¨Ð.Ñ/Ô/Ð/Ð/Ð/r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚMetaStateMachinec                 óÒ   •— t          t          | ¦  «                             | |||¦  «        }g |_        i |_        t
          D ]} |j        |Ž  Œt          D ]} |j        |Ž  Œg ag a|S r   )	Úsuperr   Ú__new__Ú_class_transitionsÚ_class_statesr   Ú_add_class_stater   Ú_add_class_transition)Úclsr   ÚbasesÚ
dictionaryÚMachineÚsÚiÚ	__class__s          €r   r   zMetaStateMachine.__new__   s‹   ø€ åÕ(¨#Ñ.Ô.×6Ò6°s¸DÀ%ÈÑTÔTˆØ%'ˆÔ"Ø "ˆÔÝ ð 	)ð 	)ˆAØ$ˆGÔ$ aÐ(Ð(Ð(Ý%ð 	.ð 	.ˆAØ)ˆGÔ)¨1Ð-Ð-Ð-Ø!ÐØˆØˆr   )Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__©r'   s   @r   r   r      s8   ø€ € € € € ðð ð ð ð ð ð ð ð r   r   ÚStateMachineBasec                   óÊ   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zed„ ¦   «         Z	dd„Z
d	„ Z ee¦  «        Zd
„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚStateMachinec                 ór  — |                       ¦   «          |                      ¦   «          |                      ¦   «          t          | j        ¦  «        r|                      ¦   «         | _        |                      | j        ¦  «        | _        | j                             | ¦  «         |                      ¦   «          d S r   )	Ú"_bring_definitions_to_object_levelÚ_inject_into_partsÚ_validate_machine_definitionsr   Úinitial_stateÚ_state_by_nameÚ_current_state_objectÚ	run_enterÚ_create_state_getters©Úselfs    r   Ú__init__zStateMachine.__init__'   s§   € Ø×/Ò/Ñ1Ô1Ð1Ø×ÒÑ!Ô!Ð!Ø×*Ò*Ñ,Ô,Ð,Ý�DÔ&Ñ'Ô'ð 	6Ø!%×!3Ò!3Ñ!5Ô!5ˆDÔØ%)×%8Ò%8¸Ô9KÑ%LÔ%LˆÔ"ØÔ"×,Ò,¨TÑ2Ô2Ð2Ø×"Ò"Ñ$Ô$Ð$Ð$Ð$r   c                 ót   •— t          t          | ¦  «                             | ¦  «        }i |_        g |_        |S r   )r   r/   r   Ú_statesÚ_transitions)r!   ÚargsÚkwargsÚobjr'   s       €r   r   zStateMachine.__new__1   s4   ø€ Ý•L #Ñ&Ô&×.Ò.¨sÑ3Ô3ˆØˆŒØˆÔØˆ
r   c                 ó–   — | j                              | j        j        ¦  «         | j                             | j        j        ¦  «         d S r   )r=   Úupdater'   r   r>   Úextendr   r9   s    r   r1   z/StateMachine._bring_definitions_to_object_level7   s?   € ØŒ×Ò˜DœNÔ8Ñ9Ô9Ð9ØÔ× Ò  ¤Ô!BÑCÔCÐCÐCÐCr   c                 ód   — | j                              ¦   «         | j        fD ]}|D ]	}| |_        Œ
Œd S r   )r=   Úvaluesr>   Úmachine)r:   Ú
collectionÚ	components      r   r2   zStateMachine._inject_into_parts;   sP   € Øœ<×.Ò.Ñ0Ô0°$Ô2CÐDð 	)ð 	)ˆJØ'ð )ð )�	Ø$(�	Ô!Ð!ð)ð	)ð 	)r   c                 ó”   — t          | j        ¦  «        dk     rt          d¦  «        ‚t          | dd ¦  «        st          d¦  «        ‚d S )Né   z!There must be at least two statesr4   z!There must exist an initial state)Úlenr=   ÚInvalidConfigurationÚgetattrr9   s    r   r3   z*StateMachine._validate_machine_definitions@   sV   € ÝˆtŒ|ÑÔ˜qÒ Ð Ý&Ð'JÑKÔKÐKÝ�t˜_¨dÑ3Ô3ð 	LÝ&Ð'JÑKÔKÐKð	Lð 	Lr   c                 ó8   — t          |||¦  «        | j        |<   d S r   )Ú_Stater   )r!   r   r   r   s       r   r   zStateMachine._add_class_stateF   s!   € å"(¨¨u°dÑ";Ô";ˆÔ˜$ÑÐÐr   Nc                 óØ   — t          |||¦  «        }t          | |                     ¦   «         |                     ¦   «                              | | j        ¦  «        ¦  «         || j        |<   d S r   )rP   ÚsetattrÚgetter_nameÚgetter_methodÚ__get__r'   r=   )r:   r   r   r   r   s        r   Ú	add_statezStateMachine.add_stateJ   sa   € Ý�t˜U DÑ)Ô)ˆÝ��e×'Ò'Ñ)Ô)¨5×+>Ò+>Ñ+@Ô+@×+HÒ+HÈÈtÌ~Ñ+^Ô+^Ñ_Ô_Ð_Ø"ˆŒ�TÑÐÐr   c                 ó   — | j         j        S r   )r6   r   r9   s    r   Ú_current_state_namez StateMachine._current_state_nameO   s   € ØÔ)Ô.Ð.r   c                 ó   — dS )zK
        This method is called whenever a state change is executed
        N© )r:   r
   r   s      r   Úchanging_statezStateMachine.changing_stateT   s	   € ð 	ˆr   c                 ó^   — |                       | j        j        |j        ¦  «         || _        d S r   )r[   r6   r   ©r:   r   s     r   Ú
_new_statezStateMachine._new_stateZ   s.   € Ø×Ò˜DÔ6Ô;¸U¼ZÑHÔHÐHØ%*ˆÔ"Ð"Ð"r   c                 óN   — t          | j                             ¦   «         ¦  «        S r   )Úlistr=   rF   r9   s    r   Ú_state_objectszStateMachine._state_objects^   s   € Ý�D”L×'Ò'Ñ)Ô)Ñ*Ô*Ð*r   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]	}|j         ‘Œ
S rZ   ©r   )Ú.0r%   s     r   ú
<listcomp>z'StateMachine.states.<locals>.<listcomp>b   s   € Ð6Ð6Ð6˜1�”Ð6Ð6Ð6r   )ra   r9   s    r   ÚstateszStateMachine.statesa   s"   € Ø6Ð6 × 3Ò 3Ñ 5Ô 5Ð6Ñ6Ô6Ð6r   c                 óð   ‡ — t          |ˆ fd„t          |¦  «        D ¦   «         ‰ j        |         ||¦  «        }‰ j                             |¦  «         t          ‰ ||                     ¦   «         ¦  «         d S )Nc                 ó*   •— g | ]}‰j         |         ‘ŒS rZ   )r   )re   r%   r!   s     €r   rf   z6StateMachine._add_class_transition.<locals>.<listcomp>f   s!   ø€ Ð(WÐ(WÐ(WÀ!¨Ô):¸1Ô)=Ð(WÐ(WÐ(Wr   )Ú_TransitionÚ_listizer   r   r   rR   Úevent_method)r!   r	   r
   r   r   r   r   s   `      r   r    z"StateMachine._add_class_transitiond   s|   ø€ å  Ð(WÐ(WÐ(WÐ(WÅxÐPUÁÄÐ(WÑ(WÔ(WØÔ˜bÔ! 6¨5ñ2ô 2ˆ
àÔ×%Ò% jÑ1Ô1Ð1Ý��U˜J×3Ò3Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6r   c                 ó2  ‡ — t          |ˆ fd„t          |¦  «        D ¦   «         ‰                      |¦  «        ||¦  «        }‰ j                             |¦  «         t          ‰ ||                     ¦   «                              ‰ ‰ j        ¦  «        ¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS rZ   )r5   )re   r%   r:   s     €r   rf   z/StateMachine.add_transition.<locals>.<listcomp>l   s'   ø€ Ð(YÐ(YÐ(YÀA¨×)<Ò)<¸QÑ)?Ô)?Ð(YÐ(YÐ(Yr   )	rj   rk   r5   r>   r   rR   rl   rU   r'   )r:   r	   r
   r   r   r   r   s   `      r   Úadd_transitionzStateMachine.add_transitionk   s”   ø€ Ý  Ð(YÐ(YÐ(YÐ(YÍÐRWÉÌÐ(YÑ(YÔ(YØ×Ò Ñ#Ô# V¨Uñ4ô 4ˆ
àÔ× Ò  Ñ,Ô,Ð,Ý��e˜Z×4Ò4Ñ6Ô6×>Ò>¸tÀTÄ^ÑTÔTÑUÔUÐUÐUÐUr   c                 ó¦   — |                       |¦  «        }|                      |¦  «        }|                      |¦  «        } |j        | g|¢R i |¤Ž d S r   )Ú_transitions_by_nameÚ_ensure_from_validityÚ_check_guardsÚrun)r:   Ú
event_namer?   r@   ÚtransitionsÚthis_transitions         r   Ú_process_transitionsz!StateMachine._process_transitionsq   sd   € Ø×/Ò/°
Ñ;Ô;ˆØ×0Ò0°Ñ=Ô=ˆØ×,Ò,¨[Ñ9Ô9ˆØˆÔ˜DÐ2 4Ð2Ð2Ð2¨6Ð2Ð2Ð2Ð2Ð2r   c           	      óÐ   — |                       ¦   «         D ]P}t          | |                     ¦   «         |                     ¦   «                              | | j        ¦  «        ¦  «         ŒQd S r   )ra   rR   rS   rT   rU   r'   r]   s     r   r8   z"StateMachine._create_state_gettersw   sl   € Ø×(Ò(Ñ*Ô*ð 	dð 	dˆEÝ�D˜%×+Ò+Ñ-Ô-¨u×/BÒ/BÑ/DÔ/D×/LÒ/LÈTÐSWÔSaÑ/bÔ/bÑcÔcÐcÐcð	dð 	dr   c                 óR   — |                       ¦   «         D ]}|j        |k    r|c S Œd S r   )ra   r   )r:   r   r   s      r   r5   zStateMachine._state_by_name{   sB   € Ø×(Ò(Ñ*Ô*ð 	ð 	ˆEØŒz˜TÒ!Ð!Ø���ð "ð	ð 	r   c                 óN   ‡— t          t          ˆfd„| j        ¦  «        ¦  «        S )Nc                 ó   •— | j         ‰k    S r   )r	   )r   r   s    €r   ú<lambda>z3StateMachine._transitions_by_name.<locals>.<lambda>�   s   ø€ ¨jÔ.>À$Ò.F€ r   )r`   Úfilterr>   )r:   r   s    `r   rq   z!StateMachine._transitions_by_name€   s(   ø€ Ý•FÐFÐFÐFÐFÈÔHYÑZÔZÑ[Ô[Ð[r   c                 ó¸   ‡ — t          t          ˆ fd„|¦  «        ¦  «        }t          |¦  «        dk    r%t          d|d         j        ›d‰ j        ›�¦  «        ‚|S )Nc                 ó8   •— |                       ‰j        ¦  «        S r   )Úis_valid_fromr6   )r   r:   s    €r   r}   z4StateMachine._ensure_from_validity.<locals>.<lambda>…   s   ø€ ˜Z×5Ò5°dÔ6PÑQÔQ€ r   r   zCannot z from )r`   r~   rL   ÚInvalidTransitionr	   Úcurrent_state)r:   rv   Úvalid_transitionss   `  r   rr   z"StateMachine._ensure_from_validityƒ   s|   ø€ Ý ¥Ø
QÐ
QÐ
QÐ
QØ
ñ"ô "ñ ô Ðõ Ð Ñ!Ô! QÒ&Ð&Ý#Ð#Ø˜A”Ô$Ð$Ð$ dÔ&8Ð&8ð%:ñ ;ô ;ð ;à Ð r   c                 óü   — g }|D ],}|                      | ¦  «        r|                     |¦  «         Œ-t          |¦  «        dk    rt          d¦  «        ‚t          |¦  «        dk    rt	          d¦  «        ‚|d         S )Nr   z*Guard is not satisfied for this transitionr   z3More than one transition was allowed for this event)Úcheck_guardr   rL   ÚGuardNotSatisfiedÚForkedTransition)r:   rv   Úallowed_transitionsr   s       r   rs   zStateMachine._check_guardsŒ   s“   € Ø ÐØ%ð 	7ð 	7ˆJØ×%Ò% dÑ+Ô+ð 7Ø#×*Ò*¨:Ñ6Ô6Ð6øÝÐ"Ñ#Ô# qÒ(Ð(Ý#Ð$PÑQÔQÐQÝÐ$Ñ%Ô%¨Ò)Ð)Ý"Ð#XÑYÔYÐYØ" 1Ô%Ð%r   ©NN)r(   r)   r*   r;   r   r1   r2   r3   Úclassmethodr   rV   rX   Úpropertyrƒ   r[   r^   ra   rg   r    ro   rx   r8   r5   rq   rr   rs   r+   r,   s   @r   r/   r/   %   s™  ø€ € € € € ð%ð %ð %ðð ð ð ð ðDð Dð Dð)ð )ð )ð
Lð Lð Lð ð<ð <ñ „[ð<ð#ð #ð #ð #ð
/ð /ð /ð �HÐ0Ñ1Ô1€Mðð ð ð+ð +ð +ð+ð +ð +ð7ð 7ð 7ð ð7ð 7ñ „[ð7ðVð Vð Vð Vð3ð 3ð 3ðdð dð dðð ð ð
\ð \ð \ð!ð !ð !ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&r   r/   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )rj   c                 óf   — || _         || _        || _        || _        t	          |¦  «        | _        d S r   )r	   r
   r   r   Ú_Guardr   )r:   r	   r
   r   r   r   s         r   r;   z_Transition.__init__š   s/   € ØˆŒ
ØˆŒ
ØˆŒØˆŒÝ˜E‘]”]ˆŒ
ˆ
ˆ
r   c                 óH   ‡ — ˆ fd„}d‰ j         z  |_        ‰ j         |_        |S )Nc                 ó4   •—  | j         ‰j        g|¢R i |¤Ž}d S r   )rx   r	   )rG   r?   r@   Úthese_transitionsr:   s       €r   Úgenerated_eventz1_Transition.event_method.<locals>.generated_event¢   s/   ø€ Ø < Ô <¸T¼ZÐ YÈ$Ð YÐ YÐ YÐRXÐ YÐ YÐÐÐr   zevent %s)r	   Ú__doc__r(   )r:   r“   s   ` r   rl   z_Transition.event_method¡   s@   ø€ ð	Zð 	Zð 	Zð 	Zð 	Zà",¨t¬zÑ"9ˆÔØ#'¤:ˆÔ ØÐr   c                 ó.   — |t          | j        ¦  «        v S r   )rk   r
   )r:   r
   s     r   r�   z_Transition.is_valid_from¨   s   € Ø� ¤Ñ,Ô,Ð,Ð,r   c                 ó6   — | j                              |¦  «        S r   )r   Úcheck©r:   rG   s     r   r†   z_Transition.check_guard«   s   € ØŒz×Ò Ñ(Ô(Ð(r   c                 óè   — |j                              |¦  «         |                     | j        ¦  «         | j                             |¦  «          t          |¦  «        j        | j        g|¢R i |¤Ž d S r   )r6   Úrun_exitr^   r   r7   Ú_ActionRunnerrt   r   )r:   rG   r?   r@   s       r   rt   z_Transition.run®   sx   € ØÔ%×.Ò.¨wÑ7Ô7Ð7Ø×Ò˜4œ7Ñ#Ô#Ð#ØŒ×Ò˜'Ñ"Ô"Ð"Ø"��gÑÔÔ" 4¤;Ð@°Ð@Ð@Ð@¸Ð@Ð@Ð@Ð@Ð@r   N)r(   r)   r*   r;   rl   r�   r†   rt   rZ   r   r   rj   rj   ˜   sd   € € € € € ð#ð #ð #ðð ð ð-ð -ð -ð)ð )ð )ðAð Að Að Að Ar   rj   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )r�   c                 ó   — || _         d S r   )r   )r:   r   s     r   r;   z_Guard.__init__·   s   € ØˆŒˆˆr   c                 ó~   — | j         €dS t          | j         ¦  «        }d}|D ]}|o|                      ||¦  «        }Œ|S )NT)r   rk   Ú	_evaluate)r:   rG   ÚitemsÚresultÚitems        r   r—   z_Guard.checkº   sQ   € ØŒ;ÐØ�4Ý˜œÑ%Ô%ˆØˆØð 	>ð 	>ˆDØÐ= §¢¨w¸Ñ =Ô =ˆFˆFØˆr   c                 óŒ   — t          |¦  «        r ||¦  «        S t          ||¦  «        }t          |¦  «        r
 |¦   «         }|S r   )r   rN   )r:   rG   r¢   r   s       r   rŸ   z_Guard._evaluateÃ   sK   € Ý�D‰>Œ>ð 	Ø�4˜‘=”=Ð å˜G TÑ*Ô*ˆEÝ˜‰Œð  Ø˜™œ�ØˆLr   N)r(   r)   r*   r;   r—   rŸ   rZ   r   r   r�   r�   µ   sA   € € € € € ðð ð ðð ð ðð ð ð ð r   r�   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )rP   c                 ó0   — || _         || _        || _        d S r   r   )r:   r   r   r   s       r   r;   z_State.__init__Ï   s   € ØˆŒ	ØˆŒ
ØˆŒ	ˆ	ˆ	r   c                 ó   — d| j         z  S )Nzis_%srd   r9   s    r   rS   z_State.getter_nameÔ   s   € Ø˜œÑ"Ð"r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó$   •— | j         ‰j        k    S r   )rƒ   r   )Úself_machiner:   s    €r   Ústate_getterz*_State.getter_method.<locals>.state_getterØ   s   ø€ ØÔ-°´Ò:Ð:r   rZ   )r:   rª   s   ` r   rT   z_State.getter_method×   s"   ø€ ð	;ð 	;ð 	;ð 	;ð 	;àÐr   c                 óT   — t          |¦  «                             | j        ¦  «         d S r   )r›   rt   r   r˜   s     r   r7   z_State.run_enterÜ   s&   € Ý�gÑÔ×"Ò" 4¤:Ñ.Ô.Ð.Ð.Ð.r   c                 óT   — t          |¦  «                             | j        ¦  «         d S r   )r›   rt   r   r˜   s     r   rš   z_State.run_exitß   s&   € Ý�gÑÔ×"Ò" 4¤9Ñ-Ô-Ð-Ð-Ð-r   N)r(   r)   r*   r;   rS   rT   r7   rš   rZ   r   r   rP   rP   Í   s_   € € € € € ðð ð ð
#ð #ð #ðð ð ð
/ð /ð /ð.ð .ð .ð .ð .r   rP   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )r›   c                 ó   — || _         d S r   )rG   r˜   s     r   r;   z_ActionRunner.__init__å   s   € ØˆŒˆˆr   c                 óX   — |sd S t          |¦  «        }|D ]} | j        |g|¢R i |¤Ž Œd S r   )rk   Ú_run_action)r:   Úaction_paramr?   r@   Úaction_itemsÚaction_items         r   rt   z_ActionRunner.runè   s[   € Øð 	ØˆFÝ Ñ-Ô-ˆØ'ð 	;ð 	;ˆKØˆDÔ˜[Ð:¨4Ð:Ð:Ð:°6Ð:Ð:Ð:Ð:ð	;ð 	;r   c                 óž   — t          |¦  «        r | j        || j        g|¢R i |¤Ž d S  | j        t          | j        |¦  «        g|¢R i |¤Ž d S r   )r   Ú_try_to_run_with_argsrG   rN   ©r:   r   r?   r@   s       r   r°   z_ActionRunner._run_actionï   su   € Ý�FÑÔð 	WØ&ˆDÔ& v¨t¬|ÐM¸dÐMÐMÐMÀfÐMÐMÐMÐMÐMà&ˆDÔ&¥w¨t¬|¸VÑ'DÔ'DÐVÀtÐVÐVÐVÈvÐVÐVÐVÐVÐVr   c                 óN   — 	  ||i |¤Ž d S # t           $ r  |¦   «          Y d S w xY wr   )Ú	TypeErrorr¶   s       r   rµ   z#_ActionRunner._try_to_run_with_argsõ   sN   € ð	ØˆF�DÐ#˜FÐ#Ð#Ð#Ð#Ð#øÝð 	ð 	ð 	ØˆF‰HŒHˆHˆHˆHˆHð	øøøs   ‚ Œ$£$N)r(   r)   r*   r;   rt   r°   rµ   rZ   r   r   r›   r›   ã   sS   € € € € € ðð ð ð;ð ;ð ;ðWð Wð Wðð ð ð ð r   r›   c                   ó   — e Zd ZdS )rM   N©r(   r)   r*   rZ   r   r   rM   rM   ü   ó   € € € € € Ø€Dr   rM   c                   ó   — e Zd ZdS )r‚   Nrº   rZ   r   r   r‚   r‚      r»   r   r‚   c                   ó   — e Zd ZdS )r‡   Nrº   rZ   r   r   r‡   r‡     r»   r   r‡   c                   ó   — e Zd ZdS )rˆ   Nrº   rZ   r   r   rˆ   rˆ     r»   r   rˆ   c                 óF   — t          | ¦  «        t          t          fv r| p| gS r   )Útyper`   Útuple)Úvalues    r   rk   rk     s#   € Ý�‰;Œ;�4¥˜-Ð'Ð1¨EÐ<°e°WÐ<r   rŠ   )ÚreÚinspectÚbackwardscompatr   r   r   r   r   rÀ   r   Úobjectr-   r/   rj   r�   rP   r›   Ú	ExceptionrM   r‚   r‡   rˆ   rk   rZ   r   r   ú<module>rÈ      sM  ðØ 	€	€	€	Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %ð Ð ðCð Cð Cð Cð €ð0ð 0ð 0ð 0ðð ð ð ð �tñ ô ð ð  $Ð#Ð$6¸¸
ÀBÑGÔGÐ ðp&ð p&ð p&ð p&ð p&Ð#ñ p&ô p&ð p&ðfAð Að Að Að A�&ñ Aô Að Að:ð ð ð ð ˆVñ ô ð ð0.ð .ð .ð .ð .ˆVñ .ô .ð .ð,ð ð ð ð �Fñ ô ð ð2	ð 	ð 	ð 	ð 	˜9ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�yñ 	ô 	ð 	ð=ð =ð =ð =ð =r   