§
    �ŠtjOD  ã            "       ó|  — d dl mZ d dl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mZmZmZmZmZmZmZ ddgZ G d„ de¦  «        Zd	d
e› de	› de› de› de› d�z   e_        dee         dee         dee         dee         dee         dedededededededededdfd„Zdee         dee         dee         dee         dee         dedededededededededdfd„Z ee¬¦  «        	 	 	 	 	 d#dee         dee         dee         dee         dee         d!edz  dedededededededededdf d"„¦   «         ZdS )$é    )ÚcastN)ÚTensoré   )Ú_capturable_docÚ_default_to_fused_or_foreachÚ_differentiable_docÚ_disable_dynamo_if_unsupportedÚ_foreach_docÚ!_get_capturable_supported_devicesÚ_get_scalar_dtypeÚ
_get_valueÚ_maximize_docÚ_params_docÚ
_to_scalarÚ_use_grad_for_differentiableÚ_view_as_realÚ	OptimizerÚParamsTÚAdamaxÚadamaxc                   ó¢   ‡ — e Zd Z	 	 	 	 	 dddddœded	eez  d
eeef         dedededz  dedededdfˆ fd„Zˆ fd„Z	d„ Z
edd„¦   «         Zˆ xZS )r   çü©ñÒMb`?©gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?ç:Œ0âŽyE>r   NF)ÚmaximizeÚdifferentiableÚ
capturableÚparamsÚlrÚbetasÚepsÚweight_decayÚforeachr   r   r   Úreturnc          	      ó  •— t          |t          ¦  «        r'|                     ¦   «         dk    rt          d¦  «        ‚d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚d|d         cxk    rdk     sn t          d|d         › �¦  «        ‚d|d         cxk    rdk     sn t          d	|d         › �¦  «        ‚d|k    st          d
|› �¦  «        ‚||||||||	dœ}
t	          ¦   «                              ||
¦  «         d S )Nr   zTensor lr must be 1-elementç        zInvalid learning rate: zInvalid epsilon value: r   ç      ð?z#Invalid beta parameter at index 0: z#Invalid beta parameter at index 1: zInvalid weight_decay value: )r   r    r!   r"   r#   r   r   r   )Ú
isinstancer   ÚnumelÚ
ValueErrorÚsuperÚ__init__)Úselfr   r   r    r!   r"   r#   r   r   r   ÚdefaultsÚ	__class__s              €úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/optim/adamax.pyr,   zAdamax.__init__   s\  ø€ õ �b�&Ñ!Ô!ð 	< b§h¢h¡j¤j°A¢o oÝÐ:Ñ;Ô;Ð;Ø�bŠyˆyÝÐ;°rÐ;Ð;Ñ<Ô<Ð<Ø�cŠzˆzÝÐ<°sÐ<Ð<Ñ=Ô=Ð=Ø�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�lÒ"Ð"ÝÐJ¸LÐJÐJÑKÔKÐKð ØØØ(ØØ Ø,Ø$ð	
ð 	
ˆõ 	‰Œ×Ò˜ Ñ*Ô*Ð*Ð*Ð*ó    c                 óŒ  •— t          ¦   «                              |¦  «         | j        D �]}|                     dd ¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |d         D ]´}| j                             |g ¦  «        }t          |¦  «        dk    r„t          j        |d         ¦  «        sjt          |d         ¦  «        }|d         r(t          j
        |t          ¦   «         |j        ¬	¦  «        n!t          j
        |t          ¦   «         ¬
¦  «        |d<   Œµ�Œd S )Nr#   r   Fr   r   r   r   Ústep©ÚdtypeÚdevice©r5   )r+   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r6   )r-   r;   ÚgroupÚpÚp_stateÚstep_valr/   s         €r0   r8   zAdamax.__setstate__D   sO  ø€ Ý‰Œ×Ò˜UÑ#Ô#Ð#ØÔ&ð 	ñ 	ˆEØ×Ò˜Y¨Ñ-Ô-Ð-Ø×Ò˜Z¨Ñ/Ô/Ð/Ø×ÒÐ-¨uÑ5Ô5Ð5Ø×Ò˜\¨5Ñ1Ô1Ð1Ø˜8”_ð 
ð 
�Øœ*Ÿ.š.¨¨BÑ/Ô/�Ý�w‘<”< 1Ò$Ð$­U¬_¸WÀV¼_Ñ-MÔ-MÐ$Ý$ W¨V¤_Ñ5Ô5�Hð
 ! Ô.ðO�œØ$Õ,=Ñ,?Ô,?ÈÌðñ ô ð õ #œ\¨(Õ:KÑ:MÔ:MÐNÑNÔNð ˜F‘Oøñ	
ð	ð 	r1   c                 ó  — d}|d         D �]x}|j         €Œ|t          j        |¦  «        z  }|                     |¦  «         |j         j        rt          d¦  «        ‚|                     |j         ¦  «         | j        |         }	t          |	¦  «        dk    r›|d         r(t          j        dt          ¦   «         |j
        ¬¦  «        n!t          j        dt          ¦   «         ¬	¦  «        |	d
<   t          j        |t          j        ¬¦  «        |	d<   t          j        |t          j        ¬¦  «        |	d<   |                     |	d         ¦  «         |                     |	d         ¦  «         |                     |	d
         ¦  «         �Œz|S )NFr   z(Adamax does not support sparse gradientsr   r   © r4   r&   r7   r3   )Úmemory_formatÚexp_avgÚexp_inf)Úgradr>   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr;   r=   Úzerosr   r6   rA   Ú
zeros_likeÚpreserve_format)
r-   rB   Úparams_with_gradÚgradsÚexp_avgsÚexp_infsÚstate_stepsÚhas_complexrC   r;   s
             r0   Ú_init_groupzAdamax._init_groupW   sŠ  € ð ˆØ�x”ð 	.ñ 	.ˆAØŒvˆ~ØØ�5Ô+¨AÑ.Ô.Ñ.ˆKØ×#Ò# AÑ&Ô&Ð&ØŒvÔð OÝ"Ð#MÑNÔNÐNØ�LŠL˜œÑ Ô Ð à”J˜q”MˆEõ �5‰zŒz˜QŠˆð ˜\Ô*ðF•E”K Õ*;Ñ*=Ô*=ÀaÄhÐOÑOÔOÐOåœ cÕ1BÑ1DÔ1DÐEÑEÔEð �f‘õ
 $)Ô#3Ø¥UÔ%:ð$ñ $ô $��iÑ õ $)Ô#3Ø¥UÔ%:ð$ñ $ô $��iÑ ð �OŠO˜E )Ô,Ñ-Ô-Ð-Ø�OŠO˜E )Ô,Ñ-Ô-Ð-Ø×Ò˜u Vœ}Ñ-Ô-Ð-Ñ-àÐr1   c                 ó¾  — |                       ¦   «          d}|�5t          j        ¦   «         5   |¦   «         }ddd¦  «         n# 1 swxY w Y   | j        D ]‡}g }g }g }g }g }|d         \  }	}
|d         }|d         }|d         }|d         }|d         }|d         }|d	         }|                      ||||||¦  «        }t          |||||||	|
|||||||¬
¦  «         Œˆ|S )z±Performs a single optimization step.

        Args:
            closure (Callable, optional): A closure that reevaluates the model
                and returns the loss.
        Nr    r!   r   r"   r#   r   r   r   )
r!   Úbeta1Úbeta2r   r"   r#   r   r   r   rX   )Ú'_accelerator_graph_capture_health_checkr>   Úenable_gradr9   rY   r   )r-   ÚclosureÚlossrB   rS   rT   rU   rV   rW   r[   r\   r!   r   r"   r#   r   r   r   rX   s                      r0   r3   zAdamax.stepz   s…  € ð 	×4Ò4Ñ6Ô6Ð6àˆØÐÝÔ"Ñ$Ô$ð !ð !Ø�w‘y”y�ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð Ô&ð $	ð $	ˆEØ-/ÐØ"$ˆEØ%'ˆHØ%'ˆHØ(*ˆKà  œ>‰LˆE�5Ø˜”,ˆCØ�t”ˆBØ  Ô0ˆLØ˜IÔ&ˆGØ˜ZÔ(ˆHØ"Ð#3Ô4ˆNØ˜|Ô,ˆJà×*Ò*ØÐ'¨°¸(ÀKñô ˆKõ Ø ØØØØØØØØØ)ØØ!Ø-Ø%Ø'ðñ ô ð ð ð$ ˆs   ¬AÁAÁ
A)r   r   r   r   N©N)Ú__name__Ú
__module__Ú__qualname__r   r@   r   ÚtupleÚboolr,   r8   rY   r   r3   Ú__classcell__)r/   s   @r0   r   r      s&  ø€ € € € € ð "Ø%1ØØØ#ð$+ð Ø$Ø ð$+ð $+ð $+àð$+ð �F‰Nð$+ð �U˜E�\Ô"ð	$+ð
 ð$+ð ð$+ð ˜‘ð$+ð ð$+ð ð$+ð ð$+ð 
ð$+ð $+ð $+ð $+ð $+ð $+ðLð ð ð ð ð&!ð !ð !ðF "ð4ð 4ð 4ñ "Ô!ð4ð 4ð 4ð 4ð 4r1   aÁ  Implements Adamax algorithm (a variant of Adam based on infinity norm).

    .. math::
       \begin{aligned}
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{input}      : \gamma \text{ (lr)}, \beta_1, \beta_2
                \text{ (betas)},\theta_0 \text{ (params)},f(\theta) \text{ (objective)},
                \: \lambda \text{ (weight decay)},                                                \\
            &\hspace{13mm}    \epsilon \text{ (epsilon)}                                          \\
            &\textbf{initialize} :  m_0 \leftarrow 0 \text{ ( first moment)},
                u_0 \leftarrow 0 \text{ ( infinity norm)}                                 \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do}                         \\
            &\hspace{5mm}g_t           \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})           \\
            &\hspace{5mm}if \: \lambda \neq 0                                                    \\
            &\hspace{10mm} g_t \leftarrow g_t + \lambda  \theta_{t-1}                            \\
            &\hspace{5mm}m_t      \leftarrow   \beta_1 m_{t-1} + (1 - \beta_1) g_t               \\
            &\hspace{5mm}u_t      \leftarrow   \mathrm{max}(\beta_2 u_{t-1}, |g_{t}|+\epsilon)   \\
            &\hspace{5mm}\theta_t \leftarrow \theta_{t-1} - \frac{\gamma m_t}{(1-\beta^t_1) u_t} \\
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
            &\bf{return} \:  \theta_t                                                     \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
       \end{aligned}

    For further details regarding the algorithm we refer to `Adam: A Method for Stochastic Optimization`_.
    z
    Args:
        a›  
        lr (float, Tensor, optional): learning rate (default: 2e-3)
        betas (Tuple[float, float], optional): coefficients used for computing
            running averages of gradient and its square
        eps (float, optional): term added to the denominator to improve
            numerical stability (default: 1e-8)
        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
        z	
        zd

    .. _Adam\: A Method for Stochastic Optimization:
        https://arxiv.org/abs/1412.6980

    r   rT   rU   rV   rW   r!   r[   r\   r   r"   r   r   r   rX   r$   c       	         ó¬  — t           j                             ¦   «         st          |¦  «        }t	          | ¦  «        D �]•\  }}||         }|
s|n| }||         }||         }||         }t           j                             ¦   «         sK|rIt          ¦   «         }|j        j	        |j        j	        k    r|j        j	        |v st          d|› d�¦  «        ‚|dz  }|	dk    r|                     ||	¬¦  «        }t          j        |¦  «        rPt          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }|                     |d|z
  ¦  «         |sPt          j        |                     |¦  «        |                     ¦   «                              |¦  «        |¬¦  «         nŸt          j        |                     |¦  «                             d¦  «        |                     ¦   «                              |¦  «                             d¦  «        gd¦  «        }|                     t          j        |dd¬¦  «        ¦  «         |r:||z  dz
  }|                     |¦  «         ||z  }|                     ||¦  «         �Œbd|t5          |¦  «        z  z
  }||z  }|                     ||| ¬	¦  «         �Œ—d S )
NúIIf capturable=True, params and state_steps must be on supported devices: ú.r   r   ©Úalpha)ÚoutF)Úkeepdim)Úvalue)r>   ÚjitÚis_scriptingr   Ú	enumerateÚcompilerÚis_compilingr   r6   ÚtypeÚAssertionErrorÚaddrL   Úview_as_realÚlerp_ÚmaximumÚmul_ÚabsÚadd_ÚcatÚ	unsqueezeÚ
unsqueeze_Úcopy_ÚamaxÚdiv_Úaddcdiv_r   )r   rT   rU   rV   rW   r!   r[   r\   r   r"   r   r   r   rX   ÚiÚparamrK   rI   rJ   Ústep_tÚcapturable_supported_devicesÚnorm_bufÚneg_bias_correctionÚdenomÚbias_correctionÚclrs                             r0   Ú_single_tensor_adamaxrŽ   â   sæ  € õ" Œ9×!Ò!Ñ#Ô#ð Ý˜‰^Œ^ˆå˜fÑ%Ô%ð 99ñ 99‰ˆˆ5Ø�QŒxˆØ#Ð.ˆtˆt¨$¨ˆØ˜1”+ˆØ˜1”+ˆØ˜Q”ˆõ Œ~×*Ò*Ñ,Ô,ð 	°ð 	Ý+LÑ+NÔ+NÐ(à”Ô! V¤]Ô%7Ò7Ð7Ø”LÔ%Ð)EÐEÐEå$ØÐ`|ÐÐÐñô ð ð
 	�!‰ˆà˜1ÒÐØ—8’8˜E¨�8Ñ6Ô6ˆDåÔ˜EÑ"Ô"ð 	2ÝÔ& uÑ-Ô-ˆEÝÔ% dÑ+Ô+ˆDÝÔ(¨Ñ1Ô1ˆGÝÔ(¨Ñ1Ô1ˆGð 	�Š�d˜A ™IÑ&Ô&Ð&àð 	BÝŒMØ—’˜UÑ#Ô#Ø—’‘
”
—’ Ñ$Ô$Øðñ ô ð ð õ ”yØ—’˜eÑ$Ô$×.Ò.¨qÑ1Ô1°4·8²8±:´:·?²?À3Ñ3GÔ3G×3RÒ3RÐSTÑ3UÔ3UÐVØñô ˆHð �MŠM�%œ* X¨q¸%Ð@Ñ@Ô@ÑAÔAÐAàð 	9ð #(¨¡-°!Ñ"3ÐØ×$Ò$ RÑ(Ô(Ð(ØÐ1Ñ1ˆEØ�NŠN˜7 EÑ*Ô*Ð*Ñ*à %­:°fÑ+=Ô+=Ñ"=Ñ=ˆOØ�Ñ&ˆCà�NŠN˜7 G°C°4ˆNÑ8Ô8Ð8Ñ8ðs99ð 99r1   c       	         óö  ‡‡‡— |rt          d¦  «        ‚t          | ¦  «        dk    rd S t          j                             ¦   «         sP|rNt          d¬¦  «        Št          ˆfd„t          | |d¬¦  «        D ¦   «         ¦  «        st          d‰› d	�¦  «        ‚t          ‰¦  «        Št          j
        | ||||g¦  «        }|                     ¦   «         D �]£\  \  }}}}}}t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }|rt          ||||¦  «         |
rt          j        |¦  «        }t          j                             ¦   «         s9|d         j        r,t          j        |t          j        d
d¬¦  «        d
¬¦  «         nt          j        |d¦  «         |	dk    r1|
rt          j        |||	¬¦  «         nt          j        |||	¬¦  «        }t          j        ||d‰z
  ¦  «         t          j        ||¦  «         |
s|	dk    rt          j        |¦  «        }nt          j        |¦  «         t          j        ||¦  «         t          j        ||¦  «         |rlt          j        ‰|¦  «        }t          j        |d¦  «         t          j        |‰¦  «         t          j        ||¦  «        }t          j        |||¦  «         �Œpˆfd„|D ¦   «         }ˆfd„|D ¦   «         }t          j        ||||¦  «         �Œ¥d S )Nz#_foreach ops don't support autogradr   F)Úsupports_xlac              3   ón   •K  — | ]/\  }}|j         j        |j         j        k    o|j         j        ‰v V — Œ0d S ra   )r6   ru   )Ú.0rC   r3   rˆ   s      €r0   ú	<genexpr>z'_multi_tensor_adamax.<locals>.<genexpr>N  s]   øè è € ð 
ð 
ñ ��4ð ŒHŒM˜Tœ[Ô-Ò-ð >Ø””Ð!=Ð=ð
ð 
ð 
ð 
ð 
ð 
r1   T)Ústrictri   rj   r'   Úcpu)r6   rk   r   c                 ó:   •— g | ]}d ‰t          |¦  «        z  z
  ‘ŒS )r   ©r   )r’   r3   r[   s     €r0   ú
<listcomp>z(_multi_tensor_adamax.<locals>.<listcomp>Ÿ  s8   ø€ ð  ð  ð  Ø26��E�Z¨Ñ-Ô-Ñ-Ñ-ð ð  ð  r1   c                 ó:   •— g | ]}t          ‰¦  «        |z  d z  ‘ŒS )éÿÿÿÿr—   )r’   Úbcr   s     €r0   r˜   z(_multi_tensor_adamax.<locals>.<listcomp>¢  s)   ø€ ÐOÐOÐO¸�* R™.œ.¨2Ñ-°Ñ3ÐOÐOÐOr1   )rv   r=   r>   rs   rt   r   ÚallÚzipr   r   Ú"_group_tensors_by_device_and_dtypeÚvaluesr   Úlistr   r   Ú_foreach_negÚis_cpuÚ_foreach_add_rA   Ú_foreach_addÚ_foreach_lerp_Ú_foreach_mul_Ú_foreach_absÚ_foreach_abs_Ú_foreach_maximum_Ú_foreach_powÚ_foreach_sub_Ú_foreach_div_Ú_foreach_mulÚ_foreach_addcdiv_)r   rT   rU   rV   rW   r!   r[   r\   r   r"   r   r   r   rX   Úgrouped_tensorsÚgrouped_params_Úgrouped_grads_Úgrouped_exp_avgs_Úgrouped_exp_infs_Úgrouped_state_steps_Ú_Úgrouped_paramsÚgrouped_gradsÚgrouped_exp_avgsÚgrouped_exp_infsÚgrouped_state_stepsÚbias_correctionsr‹   Ú	step_sizerˆ   s         ` `                    @r0   Ú_multi_tensor_adamaxr½   2  s  øøø€ ð" ð DÝÐBÑCÔCÐCå
ˆ6�{„{�aÒÐØˆõ Œ>×&Ò&Ñ(Ô(ð ¨Zð Ý'HØð(
ñ (
ô (
Ð$õ ð 
ð 
ð 
ð 
õ ˜v {¸4Ð@Ñ@Ô@ð
ñ 
ô 
ñ 
ô 
ð 	õ
 !Ø{Ð\xÐ{Ð{Ð{ñô ð õ 
�B‰Œ€BåÔBØ	�˜ (¨KÐ8ñô €Oð ×"Ò"Ñ$Ô$ðIñ Iñ 		ñ 	ØØØØØØÝ�d¥6œl¨OÑ<Ô<ˆÝ�T¥&œ\¨>Ñ:Ô:ˆÝ¥¥V¤Ð.?Ñ@Ô@ÐÝ¥¥V¤Ð.?Ñ@Ô@ÐÝ"¥4­¤<Ð1EÑFÔFÐàð 	ÝØ Ð/?ÐAQñô ð ð ð 	>Ý!Ô.¨}Ñ=Ô=ˆMõ Œ~×*Ò*Ñ,Ô,ð 	8Ð1DÀQÔ1GÔ1Nð 	8ÝÔØ#¥U¤\°#¸eÐ%DÑ%DÔ%DÈCðñ ô ð ð õ ÔÐ 3°QÑ7Ô7Ð7à˜1ÒÐØð åÔ# M°>ÈÐVÑVÔVÐVÐVå %Ô 2Ø! >¸ð!ñ !ô !�õ
 	ÔÐ-¨}¸aÀ%¹iÑHÔHÐHõ 	ÔÐ,¨eÑ4Ô4Ð4ð ð 	/˜L¨AÒ-Ð-Ý!Ô.¨}Ñ=Ô=ˆMˆMåÔ Ñ.Ô.Ð.åÔ˜M¨3Ñ/Ô/Ð/ÝÔÐ 0°-Ñ@Ô@Ð@ð ð 	Ý$Ô1°%Ð9LÑMÔMÐåÔÐ 0°!Ñ4Ô4Ð4ÝÔÐ 0°"Ñ5Ô5Ð5åÔ&Ð'7Ð9IÑJÔJˆEÝÔ# NÐ4DÀeÑLÔLÐLÑLð ð  ð  ð  Ø:Mð ñ  ô  Ðð PÐOÐOÐOÐ>NÐOÑOÔOˆIÝÔ#ØÐ 0Ð2BÀIñô ð ñ ðOIð Ir1   )Úsingle_tensor_fnFr#   c
                ó®  — t           j                             ¦   «         s(t          d„ |D ¦   «         ¦  «        st	          d¦  «        ‚|€t          | |d¬¦  «        \  }}|r-t           j                             ¦   «         rt	          d¦  «        ‚|r&t           j                             ¦   «         st          }nt          } || |||||
|||||||	|¬¦  «         dS )zrFunctional API that performs adamax algorithm computation.

    See :class:`~torch.optim.Adamax` for details.
    c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S ra   )r(   r>   r   )r’   Úts     r0   r“   zadamax.<locals>.<genexpr>Â  s?   è è € ð 5ð 5Ø()�
�1•e”lÑ#Ô#ð5ð 5ð 5ð 5ð 5ð 5r1   zPAPI has changed, `state_steps` argument must contain a list of singleton tensorsNF)Ú	use_fusedz6torch.jit.script not supported with foreach optimizers)	r!   r[   r\   r   r"   r   r   rX   r   )
r>   rs   rt   rœ   rO   r   rp   rq   r½   rŽ   )r   rT   rU   rV   rW   r#   r   r   r   rX   r!   r[   r\   r   r"   rµ   Úfuncs                    r0   r   r   ¨  s*  € õ4 Œ>×&Ò&Ñ(Ô(ð 
µð 5ð 5Ø-8ð5ñ 5ô 5ñ 2ô 2ð 
õ Ø^ñ
ô 
ð 	
ð €Ý1Ø�N¨eð
ñ 
ô 
‰
ˆˆ7ð ð U•5”9×)Ò)Ñ+Ô+ð UÝÐSÑTÔTÐTàð %•u”y×-Ò-Ñ/Ô/ð %Ý#ˆˆå$ˆà€DØØØØØØØØØØ!ØØ%ØØðñ ô ð ð ð r1   )NFFFF)Útypingr   r>   r   Ú	optimizerr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Ú__all__r   Ú__doc__r    r@   rf   rŽ   r½   r   rG   r1   r0   ú<module>rÈ      s!  ðà Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð& �XÐ
€ðRð Rð Rð Rð RˆYñ Rô Rð Rðlð4à	ðð ð 
ðð ð 
ðð ð 
ðð ð 
ðð ð ñ5+ð „ð`M9Ø�ŒLðM9à�Œ<ðM9ð �6ŒlðM9ð �6Œlð	M9ð
 �f”ðM9ð 
ðM9ð ðM9ð ðM9ð 	ðM9ð ðM9ð ðM9ð ðM9ð ðM9ð ðM9ð  
ð!M9ð M9ð M9ð M9ð`sØ�ŒLðsà�Œ<ðsð �6Œlðsð �6Œlð	sð
 �f”ðsð 
ðsð ðsð ðsð 	ðsð ðsð ðsð ðsð ðsð ðsð  
ð!sð sð sð sðl  ÐÐ1FÐGÑGÔGð  ØØ ØØð<ð <Ø�ŒLð<à�Œ<ð<ð �6Œlð<ð �6Œlð	<ð
 �f”ð<ð �D‰[ð<ð ð<ð ð<ð ð<ð ð<ð 
ð<ð ð<ð  ð!<ð" 	ð#<ð$ ð%<ð& 
ð'<ð <ð <ñ HÔGð<ð <ð <r1   