§
    dŠtj4  ã                  óF  — d Z ddlm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	m
Z
 ddl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mZmZmZ dd
lmZ erddlmZmZ ddl m!Z! ddl"m#Z# ddlm$Z$  ed¦  «        Z% ed¦  «        Z& G d„ d¦  «        Z' G d„ d¦  «        Z(ddgZ)dS )zEAsync wrapper around :class:`ReadWriteLock` for use with ``asyncio``.é    )ÚannotationsN)ÚThreadPoolExecutor)Úasynccontextmanager)ÚTYPE_CHECKINGÚ	ParamSpecÚTypeVaré   )Ú_append_exception_contextÚ_ensure_current_processÚ_fork_transitionÚ_register_fork_object)Ú_BackendOutcomeÚ_capture_callÚ_drain_futureÚ_future_resultÚ_raise_cancelled_errorÚ_wait_until_done)ÚReadWriteLock)ÚAsyncGeneratorÚCallable)Úfutures)ÚTracebackType)ÚAcquireReturnProxyÚ_PÚ_Rc                  óp  — e Zd ZdZ	 d>dddddœd?d„Zed@d„¦   «         ZedAd„¦   «         ZedBd„¦   «         ZedCd„¦   «         Z	edDd„¦   «         Z
edEddœdFd„¦   «         ZedEddœdFd „¦   «         ZdGd#„Zd>ddœdHd%„Zd>ddœdHd&„Zd'd(œdId*„ZdJd+„ZdKd.„ZdLd6„ZdMd8„ZdJd9„ZedBd:„¦   «         ZdJd;„ZdJd<„ZdJd=„ZdS )NÚAsyncReadWriteLocka  
    Async wrapper around :class:`ReadWriteLock` for use in ``asyncio`` applications.

    This wrapper dispatches every blocking SQLite operation to a thread pool via ``loop.run_in_executor()`` because
    Python's :mod:`sqlite3` module has no async API. It delegates reentrancy, upgrade/downgrade rules, and singleton
    behavior to the underlying :class:`ReadWriteLock`.

    :param lock_file: path to the SQLite database file used as the lock
    :param timeout: maximum wait time in seconds; ``-1`` means block indefinitely
    :param blocking: if ``False``, raise :class:`~filelock.Timeout` immediately when the lock is unavailable
    :param is_singleton: if ``True``, reuse existing :class:`ReadWriteLock` instances for the same resolved path
    :param loop: event loop for ``run_in_executor``; ``None`` uses the running loop
    :param executor: executor for ``run_in_executor``. When ``None`` this lock creates and owns a dedicated
        single-thread executor so every operation runs on the same thread (SQLite affinity requires this) and shuts it
        down in :meth:`close`. This lock uses a caller-supplied executor as-is and never shuts it down, so after passing
        no executor call :meth:`close` to release the owned one.

    .. versionadded:: 3.21.0

    éÿÿÿÿTN)ÚblockingÚis_singletonÚloopÚexecutorÚ	lock_fileústr | os.PathLike[str]ÚtimeoutÚfloatr   Úboolr    r!   ú asyncio.AbstractEventLoop | Noner"   úfutures.Executor | NoneÚreturnÚNonec               ó’  — t          j        ¦   «         }|| _        d| _        d| _        t          | ¦  «         t          ¦   «         5  t          ||||¬¦  «        | _        || _	        |d u | _
        |pt          d¬¦  «        | _        t          j        ¦   «         |k    rd}t          |¦  «        ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NF)r   r    r	   )Úmax_workersz:AsyncReadWriteLock construction cannot continue after fork)ÚosÚgetpidÚ_creator_pidÚ_fork_invalidatedÚ_closedr   r   r   Ú_lockÚ_loopÚ_owns_executorr   Ú	_executorÚRuntimeError)	Úselfr#   r%   r   r    r!   r"   Úcreator_pidÚmsgs	            úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/filelock/_async_read_write.pyÚ__init__zAsyncReadWriteLock.__init__>   s  € õ ”i‘k”kˆØ'ˆÔØ!&ˆÔØˆŒÝ˜dÑ#Ô#Ð#ÝÑÔð 	(ð 	(Ý& y°'ÀHÐ[gÐhÑhÔhˆDŒJØˆDŒJØ"*¨dÐ"2ˆDÔØ%ÐJÕ);ÈÐ)JÑ)JÔ)JˆDŒNÝŒy‰{Œ{˜kÒ)Ð)ØR�Ý" 3Ñ'Ô'Ð'ð *ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   ÁA(B<Â<C ÃC Ústrc                ó   — | j         j        S )zThe path to the lock file.)r3   r#   ©r8   s    r;   r#   zAsyncReadWriteLock.lock_fileV   s   € ð ŒzÔ#Ð#ó    c                ó   — | j         j        S )zThe default timeout.)r3   r%   r?   s    r;   r%   zAsyncReadWriteLock.timeout[   s   € ð ŒzÔ!Ð!r@   c                ó   — | j         j        S )z'Whether blocking is enabled by default.)r3   r   r?   s    r;   r   zAsyncReadWriteLock.blocking`   s   € ð ŒzÔ"Ð"r@   c                ó   — | j         S )z2The event loop (or ``None`` for the running loop).)r4   r?   s    r;   r!   zAsyncReadWriteLock.loope   s   € ð ŒzÐr@   úfutures.Executorc                ó   — | j         S )z_The executor used for ``run_in_executor`` (a dedicated single-thread one if none was supplied).)r6   r?   s    r;   r"   zAsyncReadWriteLock.executorj   s   € ð Œ~Ðr@   ©r   úfloat | Noneúbool | NoneúAsyncGenerator[None]c              ó0  K  — |€| j         j        }|€| j         j        }|                      ||¬¦  «        ƒ d{V —† d}	 dW V — n# t          $ r}|}‚ d}~ww xY w	 |                      |¦  «        ƒ d{V —† dS # |                      |¦  «        ƒ d{V —† w xY w)aƒ  
        Async context manager that acquires and releases a shared read lock.

        Falls back to instance defaults for *timeout* and *blocking* when ``None``.

        :param timeout: maximum wait time in seconds, or ``None`` to use the instance default
        :param blocking: if ``False``, raise :class:`~filelock.Timeout` immediately; ``None`` uses the instance default

        NrF   )r3   r%   r   Úacquire_readÚBaseExceptionÚ_release_in_context©r8   r%   r   Ú
body_errorÚerrors        r;   Ú	read_lockzAsyncReadWriteLock.read_locko   sï   è è € ð ˆ?Ø”jÔ(ˆGØÐØ”zÔ*ˆHØ×Ò °(ÐÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ø+/ˆ
ð	7ØˆEˆEˆEˆEˆEøÝð 	ð 	ð 	ØˆJØøøøøð	øøøð ð
 ×*Ò*¨:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ø�$×*Ò*¨:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6øøøó)   ¿A ÁA8 Á
AÁAÁAÁA8 Á8Bc              ó0  K  — |€| j         j        }|€| j         j        }|                      ||¬¦  «        ƒ d{V —† d}	 dW V — n# t          $ r}|}‚ d}~ww xY w	 |                      |¦  «        ƒ d{V —† dS # |                      |¦  «        ƒ d{V —† w xY w)aˆ  
        Async context manager that acquires and releases an exclusive write lock.

        Falls back to instance defaults for *timeout* and *blocking* when ``None``.

        :param timeout: maximum wait time in seconds, or ``None`` to use the instance default
        :param blocking: if ``False``, raise :class:`~filelock.Timeout` immediately; ``None`` uses the instance default

        NrF   )r3   r%   r   Úacquire_writerL   rM   rN   s        r;   Ú
write_lockzAsyncReadWriteLock.write_lockˆ   sï   è è € ð ˆ?Ø”jÔ(ˆGØÐØ”zÔ*ˆHØ× Ò  °8Ð Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ø+/ˆ
ð	7ØˆEˆEˆEˆEˆEøÝð 	ð 	ð 	ØˆJØøøøøð	øøøð ð
 ×*Ò*¨:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ø�$×*Ò*¨:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6øøørR   rO   úBaseException | Nonec              ƒ  óŠ   K  — 	 |                       ¦   «         ƒ d {V —† d S # t          $ r}|�t          ||¦  «         ‚ d }~ww xY w©N)ÚreleaserL   r
   )r8   rO   Úrelease_errors      r;   rM   z&AsyncReadWriteLock._release_in_context¡   si   è è € ð	Ø—,’,‘.”.Ð Ð Ð Ð Ð Ð Ð Ð Ð øÝð 	ð 	ð 	ØÐ%Ý)¨-¸ÑDÔDÐDØøøøøð	øøøs   „   
Aª=½AÚ AsyncAcquireReadWriteReturnProxyc             ƒ  óÂ   K  — |                       ¦   «          |                      t          j        | j        j        ||¬¦  «        ¦  «        ƒ d{V —† t          | ¬¦  «        S )a7  
        Acquire a shared read lock.

        See :meth:`ReadWriteLock.acquire_read` for full semantics.

        :param timeout: maximum wait time in seconds; ``-1`` means block indefinitely
        :param blocking: if ``False``, raise :class:`~filelock.Timeout` immediately when the lock is unavailable

        :returns: a proxy that can be used as an async context manager to release the lock

        :raises RuntimeError: if a write lock is already held on this instance
        :raises Timeout: if the lock cannot be acquired within *timeout* seconds

        rF   N©Úlock)Ú_raise_if_unusableÚ_run_acquireÚ	functoolsÚpartialr3   rK   r[   ©r8   r%   r   s      r;   rK   zAsyncReadWriteLock.acquire_read©   si   è è € ð 	×ÒÑ!Ô!Ð!Ø×Ò¥	Ô 1°$´*Ô2IÈ7Ð]eÐ fÑ fÔ fÑgÔgÐgÐgÐgÐgÐgÐgÐgÝ/°TÐ:Ñ:Ô:Ð:r@   c             ƒ  óÂ   K  — |                       ¦   «          |                      t          j        | j        j        ||¬¦  «        ¦  «        ƒ d{V —† t          | ¬¦  «        S )aZ  
        Acquire an exclusive write lock.

        See :meth:`ReadWriteLock.acquire_write` for full semantics.

        :param timeout: maximum wait time in seconds; ``-1`` means block indefinitely
        :param blocking: if ``False``, raise :class:`~filelock.Timeout` immediately when the lock is unavailable

        :returns: a proxy that can be used as an async context manager to release the lock

        :raises RuntimeError: if a read lock is already held, or a write lock is held by a different thread
        :raises Timeout: if the lock cannot be acquired within *timeout* seconds

        rF   Nr]   )r_   r`   ra   rb   r3   rT   r[   rc   s      r;   rT   z AsyncReadWriteLock.acquire_write¼   si   è è € ð 	×ÒÑ!Ô!Ð!Ø×Ò¥	Ô 1°$´*Ô2JÈGÐ^fÐ gÑ gÔ gÑhÔhÐhÐhÐhÐhÐhÐhÐhÝ/°TÐ:Ñ:Ô:Ð:r@   F©Úforcerf   c             ƒ  ó†   K  — t          ¦   «          | j        rdS |                      | j        j        |¬¦  «        ƒ d{V —† dS )a2  
        Release one level of the current lock.

        See :meth:`ReadWriteLock.release` for full semantics.

        :param force: if ``True``, release the lock completely regardless of the current lock level

        :raises RuntimeError: if no lock is currently held and *force* is ``False``

        Nre   )r   Ú
_inheritedÚ_runr3   rY   )r8   rf   s     r;   rY   zAsyncReadWriteLock.releaseÏ   sV   è è € õ 	 Ñ!Ô!Ð!ØŒ?ð 	ØˆFØ�iŠi˜œ
Ô*°%ˆiÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8r@   c              ƒ  óF  K  — t          ¦   «          | j        rdS | j        rdS |                      | j        j        ¦  «        }	 t          |¦  «        ƒ d{V —† nq# t          j        $ r_}	 t          |¦  «        ƒ d{V —† n'# t          $ r}t          ||¦  «         Y d}~nd}~ww xY wd| _        |                      ¦   «          ‚ d}~ww xY wt          |¦  «         d| _        | j        r:t          j        t!          j        | j        j        d¬¦  «        ¦  «        ƒ d{V —† dS dS )z¤
        Release the lock (if held) and close the underlying SQLite connection.

        After calling this method, the lock instance is no longer usable.

        NT©Úwait)r   rh   r2   Ú_submitr3   Úcloser   ÚasyncioÚCancelledErrorr   rL   r   Ú_shutdown_owned_executorr   r5   Ú	to_threadra   rb   r6   Úshutdown)r8   Úclose_futureÚcancellationrP   s       r;   rn   zAsyncReadWriteLock.closeß   s„  è è € õ 	 Ñ!Ô!Ð!ØŒ?ð 	ØˆFØŒ<ð 	ØˆFØ—|’| D¤JÔ$4Ñ5Ô5ˆð		Ý" <Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0øÝÔ%ð 	ð 	ð 	ð<Ý# LÑ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1øÝ ð <ð <ð <Ý& |°UÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð<øøøàˆDŒLØ×)Ò)Ñ+Ô+Ð+Øøøøøð	øøøõ 	�|Ñ$Ô$Ð$ØˆŒð Ôð 	[ÝÔ#¥IÔ$5°d´nÔ6MÐTXÐ$YÑ$YÔ$YÑZÔZÐZÐZÐZÐZÐZÐZÐZÐZÐZð	[ð 	[s<   ÁA ÁCÁ)A?Á>CÁ?
B#Â	BÂCÂB#Â#CÃCÚacquireú Callable[[], AcquireReturnProxy]c              ƒ  óâ  K  — |                       |¦  «        }	 t          |¦  «        ƒ d {V —† n±# t          j        $ rŸ}	 t	          |¦  «        ƒ d {V —† n'# t
          $ r}t          ||¦  «         Y d }~nd }~ww xY w	 t	          |                       | j        j        ¦  «        ¦  «        ƒ d {V —† n'# t
          $ r}t          ||¦  «         Y d }~nd }~ww xY w‚ d }~ww xY wt          |¦  «         d S rX   )
rm   r   ro   rp   r   rL   r   r3   rY   r   )r8   rv   Úacquire_futureru   rP   s        r;   r`   zAsyncReadWriteLock._run_acquireý   sW  è è € ØŸš gÑ.Ô.ˆð	Ý" >Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2øÝÔ%ð 		ð 		ð 		ð<Ý# NÑ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øÝ ð <ð <ð <Ý& |°UÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð<øøøð<Ý# D§L¢L°´Ô1CÑ$DÔ$DÑEÔEÐEÐEÐEÐEÐEÐEÐEÐEøÝ ð <ð <ð <Ý& |°UÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð<øøøàøøøøð		øøøõ 	�~Ñ&Ô&Ð&Ð&Ð&sb   ™/ ¯C¿AÁCÁ
A9ÁA4Á/CÁ4A9Á9CÁ=2B0Â/CÂ0
CÂ:CÃ
CÃCÃCÃCÚfuncúCallable[_P, _R]Úargsú_P.argsÚkwargsú	_P.kwargsr   c              �  ó   K  —  | j         |g|¢R i |¤Ž}	 t          |¦  «        ƒ d {V —† nV# t          j        $ rD}	 t	          |¦  «        ƒ d {V —† n'# t
          $ r}t          ||¦  «         Y d }~nd }~ww xY w‚ d }~ww xY wt          |¦  «        S rX   )rm   r   ro   rp   r   rL   r   r   )r8   rz   r|   r~   Úfutureru   rP   s          r;   ri   zAsyncReadWriteLock._run  sê   è è € Ø�”˜dÐ4 TÐ4Ð4Ð4¨VÐ4Ð4ˆð	Ý" 6Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*øÝÔ%ð 	ð 	ð 	ð<Ý# FÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+øÝ ð <ð <ð <Ý& |°UÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð<øøøàøøøøð	øøøõ ˜fÑ%Ô%Ð%s8   •+ «A>»AÁA9Á
A5ÁA0Á+A9Á0A5Á5A9Á9A>ú#asyncio.Future[_BackendOutcome[_R]]c           	     óš   — | j         pt          j        ¦   «                              | j        t
          t          j        |g|¢R i |¤Ž¦  «        S rX   )r4   ro   Úget_running_loopÚrun_in_executorr6   r   ra   rb   )r8   rz   r|   r~   s       r;   rm   zAsyncReadWriteLock._submit  sR   € ð ”
Ð8�gÔ6Ñ8Ô8×IÒIØŒNÝÝÔ˜dÐ4 TÐ4Ð4Ð4¨VÐ4Ð4ñ
ô 
ð 	
r@   c                óN   — | j         r| j                             d¬¦  «         d S d S )NFrk   )r5   r6   rs   r?   s    r;   rq   z+AsyncReadWriteLock._shutdown_owned_executor"  s6   € ØÔð 	0ØŒN×#Ò#¨Ð#Ñ/Ô/Ð/Ð/Ð/ð	0ð 	0r@   c                óH   — | j         pt          j        ¦   «         | j        k    S rX   )r1   r.   r/   r0   r?   s    r;   rh   zAsyncReadWriteLock._inherited&  s   € àÔ%ÐI­¬©¬¸Ô8IÒ)IÐIr@   c                óž   — t          ¦   «          | j        rd| j        › d�}t          |¦  «        ‚| j        rd}t          j        |¦  «        ‚d S )NzAsyncReadWriteLock on z4 was invalidated by fork(); construct a new instancez$Cannot operate on a closed database.)r   rh   r#   r7   r2   Úsqlite3ÚProgrammingError)r8   r:   s     r;   r_   z%AsyncReadWriteLock._raise_if_unusable*  sb   € ÝÑ!Ô!Ð!ØŒ?ð 	$Øo¨4¬>ÐoÐoÐoˆCÝ˜sÑ#Ô#Ð#ØŒ<ð 	0Ø8ˆCÝÔ*¨3Ñ/Ô/Ð/ð	0ð 	0r@   c                ó   — d| _         d S )NT)r1   r?   s    r;   Ú_reset_after_fork_in_childz-AsyncReadWriteLock._reset_after_fork_in_child3  s   € Ø!%ˆÔÐÐr@   c                ó²   — t          j        ¦   «         t          | dd ¦  «        k    r.t          | dd¦  «        r| j                             d¬¦  «         d S d S d S )Nr0   r5   Frk   )r.   r/   Úgetattrr6   rs   r?   s    r;   Ú__del__zAsyncReadWriteLock.__del__6  sa   € õ Œ9‰;Œ;�' $¨¸Ñ=Ô=Ò=Ð=Å'È$ÐP`ÐbgÑBhÔBhÐ=ØŒN×#Ò#¨Ð#Ñ/Ô/Ð/Ð/Ð/ð >Ð=Ð=Ð=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*   rD   rX   )r%   rG   r   rH   r*   rI   )rO   rV   r*   r+   )r%   r&   r   r'   r*   r[   )rf   r'   r*   r+   )r*   r+   )rv   rw   r*   r+   )rz   r{   r|   r}   r~   r   r*   r   )rz   r{   r|   r}   r~   r   r*   r‚   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r<   Úpropertyr#   r%   r   r!   r"   r   rQ   rU   rM   rK   rT   rY   rn   r`   ri   rm   rq   rh   r_   rŒ   r�   © r@   r;   r   r   (   s£  € € € € € ðð ð0 ð(ð
 Ø!Ø15Ø,0ð(ð (ð (ð (ð (ð (ð0 ð$ð $ð $ñ „Xð$ð ð"ð "ð "ñ „Xð"ð ð#ð #ð #ñ „Xð#ð ðð ð ñ „Xðð ðð ð ñ „Xðð ð7ÐW[ð 7ð 7ð 7ð 7ð 7ñ Ôð7ð0 ð7ÐX\ð 7ð 7ð 7ð 7ð 7ñ Ôð7ð0ð ð ð ð;È$ð ;ð ;ð ;ð ;ð ;ð ;ð&;È4ð ;ð ;ð ;ð ;ð ;ð ;ð& .3ð 9ð 9ð 9ð 9ð 9ð 9ð [ð [ð [ð [ð<'ð 'ð 'ð 'ð 
&ð 
&ð 
&ð 
&ð
ð 
ð 
ð 
ð0ð 0ð 0ð 0ð ðJð Jð Jñ „XðJð0ð 0ð 0ð 0ð&ð &ð &ð &ð0ð 0ð 0ð 0ð 0ð 0r@   r   c                  ó*   — e Zd ZdZdd„Zdd„Zdd„ZdS )r[   zEContext-aware object that releases the async read/write lock on exit.r^   r   r*   r+   c                ó   — || _         d S rX   r]   )r8   r^   s     r;   r<   z)AsyncAcquireReadWriteReturnProxy.__init__@  s   € ØˆŒ	ˆ	ˆ	r@   c              ƒ  ó   K  — | j         S rX   r]   r?   s    r;   Ú
__aenter__z+AsyncAcquireReadWriteReturnProxy.__aenter__C  s   è è € ØŒyÐr@   Úexc_typeútype[BaseException] | NoneÚ	exc_valuerV   Ú	tracebackúTracebackType | Nonec              ƒ  óH   K  — | j                              ¦   «         ƒ d {V —† d S rX   )r^   rY   )r8   rš   rœ   r�   s       r;   Ú	__aexit__z*AsyncAcquireReadWriteReturnProxy.__aexit__F  s4   è è € ð Œi×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!r@   N)r^   r   r*   r+   )r*   r   )rš   r›   rœ   rV   r�   rž   r*   r+   )r�   r‘   r’   r“   r<   r™   r    r•   r@   r;   r[   r[   =  sV   € € € € € ØOÐOðð ð ð ðð ð ð ð"ð "ð "ð "ð "ð "r@   r[   )*r“   Ú
__future__r   ro   ra   r.   r‰   Úconcurrent.futuresr   Ú
contextlibr   Útypingr   r   r   Ú_apir
   r   r   r   Ú_asyncr   r   r   r   r   r   Ú_read_writer   Úcollections.abcr   r   Ú
concurrentr   Útypesr   r   r   r   r   r[   Ú__all__r•   r@   r;   ú<module>r¬      s  ðØ KÐ Kà "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø *Ð *Ð *Ð *Ð *Ð *Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 'Ð &Ð &Ð &Ð &Ð &àð )Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ø"Ð"Ð"Ð"Ð"Ð"Ø#Ð#Ð#Ð#Ð#Ð#à(Ð(Ð(Ð(Ð(Ð(à€Yˆt�_„_€Ø€WˆT�]„]€ðR0ð R0ð R0ð R0ð R0ñ R0ô R0ð R0ðj"ð "ð "ð "ð "ñ "ô "ð "ð& 'Øð€€€r@   