§
    ŠŠtjJ|  ã            	       ó   — U d dl Z d dlZd dlmZ d dlmZ d dlZd dlmZmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$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/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z=m>Z? i Z@eAeBeCeCf         ef         eDd<   i ZEeAeBeCeCf         ef         eDd <   d!d"gZFd#„ ZGe G d$„ d%¦  «        ¦   «         ZHd&„ ZId'„ ZJd(„ ZKd)„ ZLd*ed+ed,efd-„ZM eGe
e
¦  «        d.„ ¦   «         ZN eGee¦  «        d/„ ¦   «         ZO eGee¦  «        d0„ ¦   «         ZP eGee¦  «        d1„ ¦   «         ZQ eGee¦  «        d2„ ¦   «         ZR eGee¦  «        d3„ ¦   «         ZS eGee¦  «        d4„ ¦   «         ZT eGee¦  «        d5„ ¦   «         ZU eGee¦  «        d6„ ¦   «         ZV eGe"e"¦  «        d7„ ¦   «         ZW eGe e ¦  «        d8„ ¦   «         ZX eGe$e$¦  «        d9„ ¦   «         ZY eGe(e(¦  «        d:„ ¦   «         ZZ eGe,e,¦  «        d;„ ¦   «         Z[ eGe/e,¦  «        d<„ ¦   «         Z\ eGe,e/¦  «        d=„ ¦   «         Z] eGe/e/¦  «        d>„ ¦   «         Z^ eGe1e1¦  «        d?„ ¦   «         Z_ eGe3e3¦  «        d@„ ¦   «         Z` eGe5e5¦  «        dA„ ¦   «         Za eGe7e7¦  «        dB„ ¦   «         Zb eGe9e9¦  «        dC„ ¦   «         Zc eGe;e;¦  «        dD„ ¦   «         Zd eGe
e7¦  «        dE„ ¦   «         Ze eGee¦  «        dF„ ¦   «         Zf eGee5¦  «        dG„ ¦   «         Zg eGee¦  «        dH„ ¦   «         Zh eGee¦  «        dI„ ¦   «         Zi eGee1¦  «        dJ„ ¦   «         Zj eGee;¦  «        dK„ ¦   «         Zk eGee5¦  «        dL„ ¦   «         Zl eGee¦  «        dM„ ¦   «         Zm eGee1¦  «        dN„ ¦   «         Zn eGee;¦  «        dO„ ¦   «         Zo eGee¦  «         eGee¦  «         eGee5¦  «         eGee;¦  «        dP„ ¦   «         ¦   «         ¦   «         ¦   «         Zp eGee¦  «        dQ„ ¦   «         Zq eGee"¦  «        dR„ ¦   «         Zr eGee1¦  «        dS„ ¦   «         Zs eGee¦  «         eGee¦  «         eGee5¦  «         eGee;¦  «        dT„ ¦   «         ¦   «         ¦   «         ¦   «         Zt eGee¦  «        dU„ ¦   «         Zu eGee"¦  «        dV„ ¦   «         Zv eGee1¦  «        dW„ ¦   «         Zw eGe"e¦  «         eGe"e¦  «         eGe"e¦  «         eGe"e¦  «         eGe"e5¦  «         eGe"e;¦  «        dX„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zx eGe"e1¦  «        dY„ ¦   «         Zy eGe(e¦  «         eGe(e¦  «         eGe(e¦  «         eGe(e¦  «         eGe(e5¦  «         eGe(e;¦  «        dZ„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zz eGe(e1¦  «        d[„ ¦   «         Z{ eGe1e¦  «         eGe1e¦  «         eGe1e¦  «         eGe1e¦  «         eGe1e5¦  «         eGe1e;¦  «        d\„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z| eGe1e"¦  «        d]„ ¦   «         Z} eGe1e(¦  «        d^„ ¦   «         Z~ eGe5e¦  «         eGe5e¦  «         eGe5e;¦  «        d_„ ¦   «         ¦   «         ¦   «         Z eGe5e¦  «        d`„ ¦   «         Z€ eGe5e¦  «        da„ ¦   «         Z� eGe5e1¦  «        db„ ¦   «         Z‚ eGe7e
¦  «         eGe7e¦  «        dc„ ¦   «         ¦   «         Zƒ eGe;e¦  «        dd„ ¦   «         Z„ eGe;e¦  «        de„ ¦   «         Z… eGe;e¦  «        df„ ¦   «         Z† eGe;e¦  «        dg„ ¦   «         Z‡ eGe;e"¦  «        dh„ ¦   «         Zˆ eGe;e1¦  «        di„ ¦   «         Z‰ eGe;e5¦  «        dj„ ¦   «         ZŠ eGe&e&¦  «        dk„ ¦   «         Z‹ eGee¦  «        dl„ ¦   «         ZŒdm„ Z�dS )né    N)ÚCallable)Útotal_ordering)ÚinfÚTensoré   )Ú	Bernoulli)ÚBeta)ÚBinomial)ÚCategorical)ÚCauchy)ÚContinuousBernoulli)Ú	Dirichlet)ÚDistribution)ÚExponentialFamily)ÚExponential)ÚGamma)Ú	Geometric)ÚGumbel)Ú
HalfNormal)ÚIndependent)ÚLaplace)Ú_batch_lowrank_logdetÚ_batch_lowrank_mahalanobisÚLowRankMultivariateNormal)Ú_batch_mahalanobisÚMultivariateNormal)ÚNormal)ÚOneHotCategorical)ÚPareto)ÚPoisson)ÚTransformedDistribution)ÚUniform)Ú_sum_rightmostÚeuler_constantÚ_KL_REGISTRYÚ_KL_MEMOIZEÚregister_klÚkl_divergencec                 ó  ‡ ‡— t          ‰ t          ¦  «        s't          ‰ t          ¦  «        rt	          d‰ › �¦  «        ‚t          ‰t          ¦  «        s't          ‰t          ¦  «        rt	          d‰› �¦  «        ‚ˆ ˆfd„}|S )a[  
    Decorator to register a pairwise function with :meth:`kl_divergence`.
    Usage::

        @register_kl(Normal, Normal)
        def kl_normal_normal(p, q):
            # insert implementation here

    Lookup returns the most specific (type,type) match ordered by subclass. If
    the match is ambiguous, a `RuntimeWarning` is raised. For example to
    resolve the ambiguous situation::

        @register_kl(BaseP, DerivedQ)
        def kl_version1(p, q): ...
        @register_kl(DerivedP, BaseQ)
        def kl_version2(p, q): ...

    you should register a third most-specific implementation, e.g.::

        register_kl(DerivedP, DerivedQ)(kl_version1)  # Break the tie.

    Args:
        type_p (type): A subclass of :class:`~torch.distributions.Distribution`.
        type_q (type): A subclass of :class:`~torch.distributions.Distribution`.
    z6Expected type_p to be a Distribution subclass but got z6Expected type_q to be a Distribution subclass but got c                 óR   •— | t           ‰‰f<   t                               ¦   «          | S ©N)r%   r&   Úclear)ÚfunÚtype_pÚtype_qs    €€úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/distributions/kl.pyÚ	decoratorzregister_kl.<locals>.decoratorV   s(   ø€ Ø'*��V˜V�^Ñ$Ý×ÒÑÔÐØˆ
ó    )Ú
isinstanceÚtypeÚ
issubclassr   Ú	TypeError)r.   r/   r1   s   `` r0   r'   r'   3   s®   øø€ õ4 �f�dÑ#Ô#ð 
­
°6½<Ñ(HÔ(Hð 
ÝØMÀVÐMÐMñ
ô 
ð 	
õ �f�dÑ#Ô#ð 
­
°6½<Ñ(HÔ(Hð 
ÝØMÀVÐMÐMñ
ô 
ð 	
ðð ð ð ð ð ð
 Ðr2   c                   ó&   — e Zd ZdgZd„ Zd„ Zd„ ZdS )Ú_MatchÚtypesc                 ó   — || _         d S r+   ©r9   )Úselfr9   s     r0   Ú__init__z_Match.__init__b   s   € ØˆŒ
ˆ
ˆ
r2   c                 ó"   — | j         |j         k    S r+   r;   )r<   Úothers     r0   Ú__eq__z_Match.__eq__e   s   € ØŒz˜Uœ[Ò(Ð(r2   c                 óx   — t          | j        |j        ¦  «        D ]\  }}t          ||¦  «        s dS ||ur nŒdS )NFT)Úzipr9   r5   )r<   r?   ÚxÚys       r0   Ú__le__z_Match.__le__h   sT   € Ý˜œ
 E¤KÑ0Ô0ð 	ð 	‰DˆAˆqÝ˜a Ñ#Ô#ð Ø�u�uØ˜ˆzˆzØ�ð àˆtr2   N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r=   r@   rE   © r2   r0   r8   r8   ^   sH   € € € € € à�	€Iðð ð ð)ð )ð )ðð ð ð ð r2   r8   c                 ó†  ‡ ‡— ˆ ˆfd„t           D ¦   «         }|st          S t          d„ |D ¦   «         ¦  «        j        \  }}t          d„ |D ¦   «         ¦  «        j        \  }}t           ||f         }t           ||f         }||ur=t	          j        d‰ j        › d‰j        › d|j        › d|j        › d�	t          d¬	¦  «         |S )
zP
    Find the most specific approximate match, assuming single inheritance.
    c                 ó^   •— g | ])\  }}t          ‰|¦  «        ¯t          ‰|¦  «        ¯%||f‘Œ*S rJ   )r5   )Ú.0Úsuper_pÚsuper_qr.   r/   s      €€r0   ú
<listcomp>z _dispatch_kl.<locals>.<listcomp>u   sV   ø€ ð ð ð áˆG�WÝ�f˜gÑ&Ô&ðõ ,6°f¸gÑ+FÔ+FðØ	�'Ððð ð r2   c              3   ó(   K  — | ]}t          |Ž V — Œd S r+   )r8   ©rM   Úms     r0   ú	<genexpr>z_dispatch_kl.<locals>.<genexpr>   s&   è è € Ð5Ð5¨� ˜Ð5Ð5Ð5Ð5Ð5Ð5r2   c              3   óB   K  — | ]}t          t          |¦  «        Ž V — Œd S r+   )r8   ÚreversedrR   s     r0   rT   z_dispatch_kl.<locals>.<genexpr>€   s-   è è € ÐAÐA°A�6¥8¨A¡;¤;Ð/ÐAÐAÐAÐAÐAÐAr2   zAmbiguous kl_divergence(z, z). Please register_kl(ú)é   )Ú
stacklevel)r%   ÚNotImplementedÚminr9   ÚwarningsÚwarnrF   ÚRuntimeWarning)	r.   r/   ÚmatchesÚleft_pÚleft_qÚright_qÚright_pÚleft_funÚ	right_funs	   ``       r0   Ú_dispatch_klrf   q   s'  øø€ ðð ð ð ð å ,ðñ ô €Gð
 ð ÝÐõ Ð5Ð5¨WÐ5Ñ5Ô5Ñ5Ô5Ô;�N€FˆFÝÐAÐA¸ÐAÑAÔAÑAÔAÔGÑ€GˆWÝ˜F F˜NÔ+€HÝ˜W gÐ-Ô.€IØ�yÐ Ð ÝŒðI v¤ð Ið I¸&¼/ð Ið IØ"(¤/ðIð IØ5<Ô5EðIð Ið IåØð		
ñ 	
ô 	
ð 	
ð €Or2   c                 ó6   — t          j        | t          ¦  «        S )zI
    Helper function for obtaining infinite KL Divergence throughout
    )ÚtorchÚ	full_liker   ©Útensors    r0   Ú_infinite_likerl   �   s   € õ Œ?˜6¥3Ñ'Ô'Ð'r2   c                 óB   — t           j                             | | ¦  «        S )z2
    Utility function for calculating x log x
    )rh   ÚspecialÚxlogyrj   s    r0   Ú_x_log_xrp   ”   s   € õ Œ=×Ò˜v vÑ.Ô.Ð.r2   c                 ó  — |                       d¦  «        }|                       d¦  «        }|                      d||z  ¦  «                             d¦  «                             d¦  «        }|                     | j        dd…         ¦  «        S )zp
    Utility function for calculating the trace of XX^{T} with X having arbitrary trailing batch dimensions
    éÿÿÿÿéþÿÿÿrX   N)ÚsizeÚreshapeÚpowÚsumÚshape)ÚbmatÚnrS   Ú
flat_traces       r0   Ú_batch_trace_XXTr|   ›   ss   € ð 	�	Š	�"‰Œ€AØ�	Š	�"‰Œ€AØ—’˜b ! a¡%Ñ(Ô(×,Ò,¨QÑ/Ô/×3Ò3°BÑ7Ô7€JØ×Ò˜dœj¨¨"¨œoÑ.Ô.Ð.r2   ÚpÚqÚreturnc                 ó”  — 	 t           t          | ¦  «        t          |¦  «        f         }n`# t          $ rS t          t          | ¦  «        t          |¦  «        ¦  «        }|t           t          | ¦  «        t          |¦  «        f<   Y nw xY w|t          u r)t          d| j        j        › d|j        j        › �¦  «        ‚ || |¦  «        S )a"  
    Compute Kullback-Leibler divergence :math:`KL(p \| q)` between two distributions.

    .. math::

        KL(p \| q) = \int p(x) \log\frac {p(x)} {q(x)} \,dx

    Args:
        p (Distribution): A :class:`~torch.distributions.Distribution` object.
        q (Distribution): A :class:`~torch.distributions.Distribution` object.

    Returns:
        Tensor: A batch of KL divergences of shape `batch_shape`.

    Raises:
        NotImplementedError: If the distribution types have not been registered via
            :meth:`register_kl`.
    z(No KL(p || q) is implemented for p type z and q type )r&   r4   ÚKeyErrorrf   rZ   ÚNotImplementedErrorÚ	__class__rF   )r}   r~   r-   s      r0   r(   r(   ¥   sË   € ð&,Ý�$˜q™'œ'¥4¨¡7¤7Ð*Ô+ˆˆøÝð ,ð ,ð ,Ý�4 ™7œ7¥D¨¡G¤GÑ,Ô,ˆØ(+�•D˜‘G”G�T !™WœWÐ$Ñ%Ð%Ð%ð,øøøð �nÐÐÝ!Øo°q´{Ô7KÐoÐoÐYZÔYdÔYmÐoÐoñ
ô 
ð 	
ð ˆ3ˆq�!‰9Œ9Ðs   ‚), ¬AB	ÂB	c                 ó  — | j         t          j        j                             |j         ¦  «        t          j        j                             | j         ¦  «        z
  z  }t          ||j         dk    <   d|| j         dk    <   d| j         z
  t          j        j                             |j        ¦  «        t          j        j                             | j        ¦  «        z
  z  }t          ||j         dk    <   d|| j         dk    <   ||z   S ©Nr   r   )Úprobsrh   ÚnnÚ
functionalÚsoftplusÚlogitsr   ©r}   r~   Út1Út2s       r0   Ú_kl_bernoulli_bernoullirŽ   Ë   sÖ   € à	
ŒÝŒÔ×$Ò$ a¤h YÑ/Ô/Ý
Œ(Ô
×
&Ò
&¨¬ yÑ
1Ô
1ñ	2ñ
€Bõ €B€q„w�!‚|ÑØ€B€q„w�!‚|ÑØ
ˆaŒg‰+ÝŒÔ×$Ò$ Q¤XÑ.Ô.µ´Ô1D×1MÒ1MÈaÌhÑ1WÔ1WÑWñ
€Bõ €B€q„w�!‚|ÑØ€B€q„w�!‚|ÑØ�‰7€Nr2   c                 óR  — | j         | j        z   }|j         |j        z   }|j                              ¦   «         |j                             ¦   «         z   |                     ¦   «         z   }| j                              ¦   «         | j                             ¦   «         z   |                     ¦   «         z   }| j         |j         z
  t          j        | j         ¦  «        z  }| j        |j        z
  t          j        | j        ¦  «        z  }||z
  t          j        |¦  «        z  }||z
  |z   |z   |z   S r+   )Úconcentration1Úconcentration0Úlgammarh   Údigamma)	r}   r~   Úsum_params_pÚsum_params_qrŒ   r�   Út3Út4Út5s	            r0   Ú_kl_beta_betar™   Û   s	  € àÔ# aÔ&6Ñ6€LØÔ# aÔ&6Ñ6€LØ	
Ô	×	 Ò	 Ñ	"Ô	" QÔ%5×%<Ò%<Ñ%>Ô%>Ñ	>À,×AVÒAVÑAXÔAXÑ	X€BØ	
Ô	×	 Ò	 Ñ	"Ô	" QÔ%5×%<Ò%<Ñ%>Ô%>Ñ	>À,×AVÒAVÑAXÔAXÑ	X€BØ
Ô
˜QÔ-Ñ
-µ´¸qÔ?OÑ1PÔ1PÑ	P€BØ
Ô
˜QÔ-Ñ
-µ´¸qÔ?OÑ1PÔ1PÑ	P€BØ
˜Ñ
%­¬°|Ñ)DÔ)DÑ	D€BØ�‰7�R‰<˜"Ñ˜rÑ!Ð!r2   c                 ób  — | j         |j         k                          ¦   «         rt          d¦  «        ‚| j         | j        | j        |j        z
  z  | j                              ¦   «         z   |j                              ¦   «         z
  z  }| j         |j         k    }t          ||         ¦  «        ||<   |S )NzKKL between Binomials where q.total_count > p.total_count is not implemented)Útotal_countÚanyr‚   r†   rŠ   Úlog1prl   )r}   r~   ÚklÚinf_idxss       r0   Ú_kl_binomial_binomialr    ç   s«   € ð 	
Œ˜œÒ%×*Ò*Ñ,Ô,ð 
Ý!ØYñ
ô 
ð 	
ð 
ŒØ	Œ�1”8˜aœhÑ&Ñ'¨A¬G¨8×*:Ò*:Ñ*<Ô*<Ñ<ÀÄÀ×?OÒ?OÑ?QÔ?QÑQñ
€Bð Œ}˜qœ}Ò,€HÝ! " X¤,Ñ/Ô/€B€x�LØ€Ir2   c                 óè   — | j         | j        |j        z
  z  }t          ||j         dk                         |¦  «        <   d|| j         dk                         |¦  «        <   |                     d¦  «        S )Nr   rr   )r†   rŠ   r   Ú	expand_asrw   )r}   r~   Úts      r0   Ú_kl_categorical_categoricalr¤   ÷   sc   € à	Œ�1”8˜aœhÑ&Ñ'€AÝ%(€A€q„w�!‚|×Ò˜qÑ!Ô!Ñ"Ø%&€A€q„w�!‚|×Ò˜qÑ!Ô!Ñ"Ø�5Š5�‰9Œ9Ðr2   c                 óþ   — | j         | j        |j        z
  z  }|                      ¦   «         t          j        | j         ¦  «        z   }|                     ¦   «          t          j        |j         ¦  «        z
  }||z   |z   S r+   )ÚmeanrŠ   Ú_cont_bern_log_normrh   r�   r†   ©r}   r~   rŒ   r�   r–   s        r0   Ú-_kl_continuous_bernoulli_continuous_bernoullir©   ÿ   sp   € à	
Œ�1”8˜aœhÑ&Ñ	'€BØ	
×	Ò	Ñ	 Ô	 ¥5¤;°´¨xÑ#8Ô#8Ñ	8€BØ
×
Ò
Ñ
!Ô
!Ð	!¥E¤K°´°Ñ$9Ô$9Ñ	9€BØ�‰7�R‰<Ðr2   c                 ó$  — | j                              d¦  «        }|j                              d¦  «        }|                     ¦   «         |                     ¦   «         z
  }| j                              ¦   «         |j                              ¦   «         z
                       d¦  «        }| j         |j         z
  }| j                              ¦   «         |                     ¦   «                              d¦  «        z
  }||z
  ||z                       d¦  «        z   S )Nrr   )Úconcentrationrw   r’   r“   Ú	unsqueeze)r}   r~   Úsum_p_concentrationÚsum_q_concentrationrŒ   r�   r–   r—   s           r0   Ú_kl_dirichlet_dirichletr¯     sç   € ð œ/×-Ò-¨bÑ1Ô1ÐØœ/×-Ò-¨bÑ1Ô1ÐØ	×	#Ò	#Ñ	%Ô	%Ð(;×(BÒ(BÑ(DÔ(DÑ	D€BØ
Œ/×
 Ò
 Ñ
"Ô
" Q¤_×%;Ò%;Ñ%=Ô%=Ñ
=×	BÒ	BÀ2Ñ	FÔ	F€BØ	
Œ˜1œ?Ñ	*€BØ	
Œ×	 Ò	 Ñ	"Ô	"Ð%8×%@Ò%@Ñ%BÔ%B×%LÒ%LÈRÑ%PÔ%PÑ	P€BØ�‰7�b˜2‘g—]’] 2Ñ&Ô&Ñ&Ð&r2   c                 óZ   — |j         | j         z  }|                     ¦   «          }||z   dz
  S ©Nr   ©ÚrateÚlog)r}   r~   Ú
rate_ratiorŒ   s       r0   Ú_kl_exponential_exponentialr¶     s0   € à”˜!œ&‘€JØ
�.Š.Ñ
Ô
Ð	€BØ�
‰?˜QÑÐr2   c                 ó°  — t          | ¦  «        t          |¦  «        urt          d¦  «        ‚d„ | j        D ¦   «         }|j        } | j        |Ž }t          j                             |                     ¦   «         |d¬¦  «        } |j        |Ž |z
  }t          |||¦  «        D ]3\  }}}	||z
  |	z  }
|t          |
t          |j        ¦  «        ¦  «        z  }Œ4|S )Nz‡The cross KL-divergence between different exponential families cannot                             be computed using Bregman divergencesc                 óZ   — g | ](}|                      ¦   «                              ¦   «         ‘Œ)S rJ   )ÚdetachÚrequires_grad_)rM   Únps     r0   rP   z+_kl_expfamily_expfamily.<locals>.<listcomp>!  s,   € ÐJÐJÐJ°"�—’‘”×+Ò+Ñ-Ô-ÐJÐJÐJr2   T)Úcreate_graph)r4   r‚   Ú_natural_paramsÚ_log_normalizerrh   ÚautogradÚgradrw   rB   r#   ÚlenÚevent_shape)r}   r~   Ú	p_nparamsÚ	q_nparamsÚ	lg_normalÚ	gradientsÚresultÚpnpÚqnpÚgÚterms              r0   Ú_kl_expfamily_expfamilyrÌ     sì   € åˆA�w„w•d˜1‘g”gÐÐÝ!ðCñ
ô 
ð 	
ð KÐJ¸Ô8IÐJÑJÔJ€IØÔ!€IØ!�Ô! 9Ð-€IÝ”×#Ò# I§M¢M¡O¤O°YÈTÐ#ÑRÔR€IØˆQÔ 	Ð*¨YÑ6€FÝ˜9 i°Ñ;Ô;ð ;ð ;‰ˆˆS�!Ø�c‘	˜Q‰ˆØ•. ¥s¨1¬=Ñ'9Ô'9Ñ:Ô:Ñ:ˆˆØ€Mr2   c                 ó`  — |j         | j        |j        z                       ¦   «         z  }t          j        |j         ¦  «        t          j        | j         ¦  «        z
  }| j         |j         z
  t          j        | j         ¦  «        z  }|j        | j        z
  | j         | j        z  z  }||z   |z   |z   S r+   )r«   r³   r´   rh   r’   r“   ©r}   r~   rŒ   r�   r–   r—   s         r0   Ú_kl_gamma_gammarÏ   ,  s‘   € à	
Œ˜AœF Q¤V™O×0Ò0Ñ2Ô2Ñ	2€BÝ	Œ�a”oÑ	&Ô	&­¬°a´oÑ)FÔ)FÑ	F€BØ
Œ/˜AœOÑ
+­u¬}¸Q¼_Ñ/MÔ/MÑ	M€BØ
Œ&�1”6‰/˜aœo°´Ñ6Ñ	7€BØ�‰7�R‰<˜"ÑÐr2   c                 ó*  — | j         |j         z  }|j        |j         z  }| j        |j         z  }|                     ¦   «          |z
  |z   }|t          z  }t	          j        |d|z                        ¦   «         z   |z
  ¦  «        }||z   |z   dt          z   z
  S r±   )ÚscaleÚlocr´   Ú_euler_gammarh   Úexpr’   )r}   r~   Úct1Úct2Úct3rŒ   r�   r–   s           r0   Ú_kl_gumbel_gumbelrØ   5  sŽ   € à
Œ'�A”GÑ
€CØ
Œ%�!”'‰/€CØ
Œ%�!”'‰/€CØ
�'Š'‰)Œ)ˆ�cÑ	˜CÑ	€BØ	�|Ñ	€BÝ	Œ�3˜!˜c™'×)Ò)Ñ+Ô+Ñ+¨cÑ1Ñ	2Ô	2€BØ�‰7�R‰<˜1�|Ñ+Ñ,Ð,r2   c                 ó‚   — |                       ¦   «          t          j        |j         ¦  «        | j        z  z
  |j        z
  S r+   )Úentropyrh   r�   r†   rŠ   ©r}   r~   s     r0   Ú_kl_geometric_geometricrÜ   @  s3   € à�IŠI‰KŒKˆ<�%œ+ q¤w hÑ/Ô/°!´'Ñ9Ñ9¸A¼HÑDÐDr2   c                 ó6   — t          | j        |j        ¦  «        S r+   )Ú_kl_normal_normalÚ	base_distrÛ   s     r0   Ú_kl_halfnormal_halfnormalrà   E  s   € å˜Qœ[¨!¬+Ñ6Ô6Ð6r2   c                 óö   — | j         |j         z  }| j        |j        z
                       ¦   «         }|                     ¦   «          }||j         z  }|t	          j        | | j         z  ¦  «        z  }||z   |z   dz
  S r±   )rÑ   rÒ   Úabsr´   rh   rÔ   )r}   r~   Úscale_ratioÚloc_abs_diffrŒ   r�   r–   s          r0   Ú_kl_laplace_laplacerå   J  sy   € ð ”'˜AœGÑ#€KØ”E˜AœE‘M×&Ò&Ñ(Ô(€LØ
�/Š/Ñ
Ô
Ð	€BØ	˜œÑ	€BØ	•u”y , °´Ñ!8Ñ9Ô9Ñ	9€BØ�‰7�R‰<˜!ÑÐr2   c                 óŽ  — | j         |j         k    rt          d¦  «        ‚t          |j        |j        |j        ¦  «        t          | j        | j        | j        ¦  «        z
  }t          |j        |j        |j        | j        z
  |j        ¦  «        }|j        j        |j         	                    d¦  «        z  }t          j                             |j        |d¬¦  «        }| j        |j        z                       d¦  «        }t          | j        |j                             ¦   «          	                    d¦  «        z  ¦  «        }t          || j                             ¦   «          	                    d¦  «        z  ¦  «        }t          |                     | j        ¦  «        ¦  «        }	||z   |z
  |	z
  }
d||
z   |z   | j         d         z
  z  S )NzKL-divergence between two Low Rank Multivariate Normals with                          different event shapes cannot be computedrs   F©Úupperrr   ç      à?r   )rÂ   Ú
ValueErrorr   Ú_unbroadcasted_cov_factorÚ_unbroadcasted_cov_diagÚ_capacitance_trilr   rÒ   ÚmTr¬   rh   ÚlinalgÚsolve_triangularrw   r|   ÚrsqrtÚsqrtÚmatmul)r}   r~   Úterm1Úterm3Ú	qWt_qDinvÚAÚterm21Úterm22Úterm23Úterm24Úterm2s              r0   Ú7_kl_lowrankmultivariatenormal_lowrankmultivariatenormalrý   U  s³  € à„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
õ
 "Ø	Ô# QÔ%>ÀÔ@Sñô åØ	Ô# QÔ%>ÀÔ@Sñ	ô 	ñ€Eõ
 'Ø	Ô#Ø	Ô!Ø	Œ�”‰Ø	Ôñ	ô €Eð Ô+Ô.°Ô1J×1TÒ1TÐUWÑ1XÔ1XÑX€IÝŒ×%Ò% aÔ&9¸9ÈEÐ%ÑRÔR€AØÔ'¨!Ô*CÑC×HÒHÈÑLÔL€FÝØ	Ô# aÔ&?×&EÒ&EÑ&GÔ&G×&QÒ&QÐRTÑ&UÔ&UÑUñô €Fõ ˜a !Ô";×"@Ò"@Ñ"BÔ"B×"LÒ"LÈRÑ"PÔ"PÑPÑQÔQ€FÝ˜aŸhšh qÔ'BÑCÔCÑDÔD€FØ�V‰O˜fÑ$ vÑ-€EØ�%˜%‘- %Ñ'¨!¬-¸Ô*:Ñ:Ñ;Ð;r2   c                 ó  — | j         |j         k    rt          d¦  «        ‚t          |j        |j        |j        ¦  «        d| j                             dd¬¦  «                             ¦   «          	                    d¦  «        z  z
  }t          |j        |j        |j        | j        z
  |j        ¦  «        }|j        j        |j                             d¦  «        z  }t          j                             |j        |d¬¦  «        }t#          | j        |j                             ¦   «                              d¦  «        z  ¦  «        }t#          |                     | j        ¦  «        ¦  «        }||z
  }d||z   |z   | j         d	         z
  z  S )
Nú�KL-divergence between two (Low Rank) Multivariate Normals with                          different event shapes cannot be computedrX   rs   rr   ©Údim1Údim2Frç   ré   r   )rÂ   rê   r   rë   rì   rí   Ú_unbroadcasted_scale_trilÚdiagonalr´   rw   r   rÒ   rî   r¬   rh   rï   rð   r|   rñ   ró   )	r}   r~   rô   rõ   rö   r÷   rø   rù   rü   s	            r0   Ú0_kl_multivariatenormal_lowrankmultivariatenormalr  w  sx  € à„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
õ
 "Ø	Ô# QÔ%>ÀÔ@Sñô à	ˆAÔ'×0Ò0°b¸rÐ0ÑBÔB×FÒFÑHÔH×LÒLÈRÑPÔPÑPñQ€Eõ 'Ø	Ô#Ø	Ô!Ø	Œ�”‰Ø	Ôñ	ô €Eð Ô+Ô.°Ô1J×1TÒ1TÐUWÑ1XÔ1XÑX€IÝŒ×%Ò% aÔ&9¸9ÈEÐ%ÑRÔR€AÝØ	Ô# aÔ&?×&EÒ&EÑ&GÔ&G×&QÒ&QÐRTÑ&UÔ&UÑUñô €Fõ ˜aŸhšh qÔ'BÑCÔCÑDÔD€FØ�V‰O€EØ�%˜%‘- %Ñ'¨!¬-¸Ô*:Ñ:Ñ;Ð;r2   c                 ó  — | j         |j         k    rt          d¦  «        ‚d|j                             dd¬¦  «                             ¦   «                              d¦  «        z  t          | j        | j        | j	        ¦  «        z
  }t          |j        |j        | j        z
  ¦  «        }t          j                             |j        j        d d…         | j        j        d d…         ¦  «        }| j         d         }|j                             |||fz   ¦  «        }| j                             ||| j                             d¦  «        fz   ¦  «        }t          j        | j                             ¦   «         ¦  «                             |||fz   ¦  «        }t+          t          j                             ||d¬¦  «        ¦  «        }	t+          t          j                             ||d¬¦  «        ¦  «        }
|	|
z   }d	||z   |z   | j         d         z
  z  S )
Nrÿ   rX   rs   rr   r   r   Frç   ré   )rÂ   rê   r  r  r´   rw   r   rë   rì   rí   r   rÒ   rh   Ú_CÚ_infer_sizerx   ÚexpandÚ
cov_factorrt   Ú
diag_embedrò   r|   rï   rð   )r}   r~   rô   rõ   Úcombined_batch_shaperz   Úq_scale_trilÚp_cov_factorÚ
p_cov_diagrø   rù   rü   s               r0   Ú0_kl_lowrankmultivariatenormal_multivariatenormalr  •  s  € à„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
ð
 �Ô+×4Ò4¸"À2Ð4ÑFÔF×JÒJÑLÔL×PÒPØ
ñô ñ åØ	Ô# QÔ%>ÀÔ@Sñ	ô 	ñ€Eõ
 ˜qÔ:¸Q¼UÀQÄU¹]ÑLÔL€Eõ !œ8×/Ò/Ø	Ô#Ô)¨#¨2¨#Ô.°Ô0KÔ0QÐRUÐSUÐRUÔ0Vñô Ðð 	
Œ�aÔ€AØÔ.×5Ò5Ð6JÈaÐQRÈVÑ6SÑTÔT€LØÔ.×5Ò5Ø  1¤<×#4Ò#4°RÑ#8Ô#8Ð9Ñ9ñô €Lõ Ô! !Ô";×"@Ò"@Ñ"BÔ"BÑCÔC×JÒJØ  1˜vÑ%ñô €Jõ ÝŒ×%Ò% l°LÈÐ%ÑNÔNñô €Fõ ÝŒ×%Ò% l°JÀeÐ%ÑLÔLñô €Fð �V‰O€EØ�%˜%‘- %Ñ'¨!¬-¸Ô*:Ñ:Ñ;Ð;r2   c                 ó"  — | j         |j         k    rt          d¦  «        ‚|j                             dd¬¦  «                             ¦   «                              d¦  «        | j                             dd¬¦  «                             ¦   «                              d¦  «        z
  }t          j                             |j        j	        d d…         | j        j	        d d…         ¦  «        }| j         d         }|j         
                    |||fz   ¦  «        }| j         
                    |||fz   ¦  «        }t          t          j                             ||d¬¦  «        ¦  «        }t          |j        |j        | j        z
  ¦  «        }|d||z   |z
  z  z   S )	NzvKL-divergence between two Multivariate Normals with                          different event shapes cannot be computedrs   rr   r   r   Frç   ré   )rÂ   rê   r  r  r´   rw   rh   r  r  rx   r	  r|   rï   rð   r   rÒ   )	r}   r~   Ú
half_term1r  rz   r  Úp_scale_trilrü   rõ   s	            r0   Ú)_kl_multivariatenormal_multivariatenormalr  º  sŽ  € ð 	„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
ð
 Ô,×5Ò5¸2ÀBÐ5ÑGÔG×KÒKÑMÔM×QÒQØ
ñô à	Ô#×,Ò,°"¸2Ð,Ñ>Ô>×BÒBÑDÔD×HÒHÈÑLÔLñM€Jõ !œ8×/Ò/Ø	Ô#Ô)¨#¨2¨#Ô.°Ô0KÔ0QÐRUÐSUÐRUÔ0Vñô Ðð 	
Œ�aÔ€AØÔ.×5Ò5Ð6JÈaÐQRÈVÑ6SÑTÔT€LØÔ.×5Ò5Ð6JÈaÐQRÈVÑ6SÑTÔT€LÝÝŒ×%Ò% l°LÈÐ%ÑNÔNñô €Eõ ˜qÔ:¸Q¼UÀQÄU¹]ÑLÔL€EØ˜˜u u™}¨qÑ0Ñ1Ñ1Ð1r2   c                 óÚ   — | j         |j         z                       d¦  «        }| j        |j        z
  |j         z                       d¦  «        }d||z   dz
  |                     ¦   «         z
  z  S ©NrX   ré   r   ©rÑ   rv   rÒ   r´   )r}   r~   Ú	var_ratiorŒ   s       r0   rÞ   rÞ   Ó  sa   € à”˜1œ7Ñ"×'Ò'¨Ñ*Ô*€IØŒ5�1”5‰=˜AœGÑ
#×	(Ò	(¨Ñ	+Ô	+€BØ�)˜b‘. 1Ñ$ y§}¢}¡¤Ñ6Ñ7Ð7r2   c                 ó6   — t          | j        |j        ¦  «        S r+   )r¤   Ú_categoricalrÛ   s     r0   Ú'_kl_onehotcategorical_onehotcategoricalr  Ú  s   € å& q¤~°q´~ÑFÔFÐFr2   c                 óþ   — | j         |j         z  }|j        | j        z  }|j        |                     ¦   «         z  }|                     ¦   «          }||z   |z   dz
  }t          || j        j        |j        j        k     <   |S r±   )rÑ   Úalphar´   r   ÚsupportÚlower_bound)r}   r~   rã   Úalpha_ratiorŒ   r�   rÇ   s          r0   Ú_kl_pareto_paretor!  ß  sy   € ð ”'˜AœGÑ#€KØ”'˜AœGÑ#€KØ	
Œ�;—?’?Ñ$Ô$Ñ	$€BØ
�/Š/Ñ
Ô
Ð	€BØ�"‰W�{Ñ" QÑ&€FÝ<?€Fˆ1Œ9Ô  1¤9Ô#8Ò8Ñ9Ø€Mr2   c                 ó˜   — | j         | j                              ¦   «         |j                              ¦   «         z
  z  | j         |j         z
  z
  S r+   r²   rÛ   s     r0   Ú_kl_poisson_poissonr#  ë  s5   € àŒ6�Q”V—Z’Z‘\”\ A¤F§J¢J¡L¤LÑ0Ñ1°Q´V¸a¼f±_ÑEÐEr2   c                 ó’   — | j         |j         k    rt          ‚| j        |j        k    rt          ‚t          | j        |j        ¦  «        S r+   )Ú
transformsr‚   rÂ   r(   rß   rÛ   s     r0   Ú_kl_transformed_transformedr&  ð  s@   € à„|�q”|Ò#Ð#Ý!Ð!Ø„}˜œÒ%Ð%Ý!Ð!Ý˜œ a¤kÑ2Ô2Ð2r2   c                 óº   — |j         |j        z
  | j         | j        z
  z                       ¦   «         }t          ||j        | j        k    |j         | j         k     z  <   |S r+   )ÚhighÚlowr´   r   ©r}   r~   rÇ   s      r0   Ú_kl_uniform_uniformr+  ù  sL   € àŒv˜œ‰~ !¤&¨1¬5¡.Ñ1×6Ò6Ñ8Ô8€FÝ25€FˆAŒE�A”EŠM˜aœf q¤všoÑ.Ñ/Ø€Mr2   c                 ó€   — |                       ¦   «          | j        |j                             ¦   «         z  |j        z
  z
  S r+   )rÚ   r†   r³   r´   rÛ   s     r0   Ú_kl_bernoulli_poissonr-    s/   € à�IŠI‰KŒKˆ<˜1œ7 Q¤V§Z¢Z¡\¤\Ñ1°A´FÑ:Ñ;Ð;r2   c                 ó¬   — |                       ¦   «          | j        |j        z  z
  t          j        |j         ¦  «        z
  |                     ¦   «         z
  S r+   )rÚ   r¦   rŠ   rh   r�   r†   r§   rÛ   s     r0   Ú_kl_beta_continuous_bernoullir/    sS   € ð 
�Š‰ŒˆØ
Œ&�1”8Ñ
ñ	å
Œ+�q”w�hÑ
Ô
ñ	 ð ×
Ò
Ñ
!Ô
!ñ	"ðr2   c                 ó*   — t          | j        ¦  «        S r+   )rl   r�   rÛ   s     r0   Ú_kl_beta_infinityr1    s   € å˜!Ô*Ñ+Ô+Ð+r2   c                 ó    — |                       ¦   «          |j                             ¦   «         z
  |j        | j        | j        | j        z   z  z  z   S r+   )rÚ   r³   r´   r�   r‘   rÛ   s     r0   Ú_kl_beta_exponentialr3    sK   € ð 
�Š‰ŒˆØ
Œ&�*Š*‰,Œ,ñ	à
Œ&�AÔ$¨Ô(8¸1Ô;KÑ(KÑLÑ
Mñ	Nðr2   c                 ó‚  — |                       ¦   «          }|j                             ¦   «         |j        |j                             ¦   «         z  z
  }|j        dz
  | j                             ¦   «         | j        | j        z                        ¦   «         z
  z  }|j        | j        z  | j        | j        z   z  }||z   |z
  |z   S r±   )rÚ   r«   r’   r³   r´   r�   r“   r‘   rÎ   s         r0   Ú_kl_beta_gammar5    s­   € à
�)Š)‰+Œ+ˆ€BØ	
Œ×	Ò	Ñ	!Ô	! A¤O°a´f·j²j±l´lÑ$BÑ	B€BØ
Œ/˜AÑ
Ø	Ô× Ò Ñ"Ô" aÔ&6¸Ô9IÑ&I×%RÒ%RÑ%TÔ%TÑTñ
€Bð 
Œ�!Ô"Ñ	" aÔ&6¸Ô9IÑ&IÑ	J€BØ�‰7�R‰<˜"ÑÐr2   c                 ó´  — | j         | j         | j        z   z  }|j                             d¦  «        }|                      ¦   «          }d|dz  t
          j        z                       ¦   «         z  }|d|z
  z  | j         | j        z   dz   z  |                     d¦  «        z   dz  }|j        |z  }|j                             d¦  «        dz  }||z   ||z
  |z   |z  z   S r  )	r�   r‘   rÑ   rv   rÚ   ÚmathÚpir´   rÒ   )	r}   r~   ÚE_betaÚ
var_normalrŒ   r�   r–   r—   r˜   s	            r0   Ú_kl_beta_normalr;  ,  s×   € àÔ Ô!1°AÔ4DÑ!DÑE€FØ”—’˜Q‘”€JØ
�)Š)‰+Œ+ˆ€BØ	�
˜Q‘¥¤Ñ(×-Ò-Ñ/Ô/Ñ	/€Bà�!�f‘*Ñ Ô!1°AÔ4DÑ!DÀqÑ!HÑIØ
�*Š*�Q‰-Œ-ñ	àñ
€Bð 
Œ�‰€BØ	
Œ�Š�1‰Œ˜Ñ	€BØ�‰7�b˜2‘g ‘l jÑ0Ñ0Ð0r2   c                 óÚ   — |                       ¦   «          |j        |j        z
                       ¦   «         z   }t          ||j        | j        j        k    |j        | j        j        k     z  <   |S r+   )rÚ   r(  r)  r´   r   r  r  Úupper_boundr*  s      r0   Ú_kl_beta_uniformr>  ;  sV   € à�iŠi‰kŒkˆ\˜QœV a¤e™^×0Ò0Ñ2Ô2Ñ2€FÝQT€FˆAŒE�A”IÔ)Ò)¨a¬f°q´yÔ7LÒ.LÑMÑNØ€Mr2   c                 ó*   — t          | j        ¦  «        S r+   )rl   r†   rÛ   s     r0   Ú!_kl_continuous_bernoulli_infinityr@  E  s   € å˜!œ'Ñ"Ô"Ð"r2   c                 ó€   — |                       ¦   «          t          j        |j        ¦  «        z
  |j        | j        z  z   S r+   )rÚ   rh   r´   r³   r¦   rÛ   s     r0   Ú$_kl_continuous_bernoulli_exponentialrB  J  s0   € à�IŠI‰KŒKˆ<�%œ) A¤FÑ+Ô+Ñ+¨a¬f°q´v©oÑ=Ð=r2   c                 óž  — |                       ¦   «          }dt          j        dt          j        z  ¦  «        t	          j        |j        |j        z  ¦  «        z   z  t	          j        |j        ¦  «        z   }| j        t	          j        | j	        ¦  «        z   d|j        z  | j	        z  z
  dt	          j        |j        ¦  «        z  z  }||z   |z   S )Nré   g       @)
rÚ   r7  r´   r8  rh   ÚsquarerÒ   rÑ   Úvariancer¦   r¨   s        r0   Ú_kl_continuous_bernoulli_normalrF  S  s±   € à
�)Š)‰+Œ+ˆ€BØ	•”˜�tœw™Ñ'Ô'­%¬,°q´u¸q¼w±Ñ*GÔ*GÑGÑ	HÍ5Ì9Ø	ŒñLô Lñ 
€Bð Œ*•u”| A¤FÑ+Ô+Ñ
+¨c°A´E©k¸A¼FÑ.BÑ
BØ�eŒl˜1œ7Ñ#Ô#Ñ#ñ
€Bð �‰7�R‰<Ðr2   c           	      ó~  — |                       ¦   «          |j        |j        z
                       ¦   «         z   }t	          j        t	          j        t	          j        |j        | j        j	        ¦  «        t	          j
        |j        | j        j        ¦  «        ¦  «        t	          j        |¦  «        t          z  |¦  «        S r+   )rÚ   r(  r)  r´   rh   ÚwhereÚmaxÚger  r  Úler=  Ú	ones_liker   r*  s      r0   Ú _kl_continuous_bernoulli_uniformrM  _  s�   € à�iŠi‰kŒkˆ\˜QœV a¤e™^×0Ò0Ñ2Ô2Ñ2€FÝŒ;ÝŒ	ÝŒH�Q”U˜AœIÔ1Ñ2Ô2ÝŒH�Q”V˜QœYÔ2Ñ3Ô3ñ	
ô 	
õ 	Œ˜ÑÔ¥#Ñ%Øñô ð r2   c                 ó*   — t          | j        ¦  «        S r+   ©rl   r³   rÛ   s     r0   Ú_kl_exponential_infinityrP  l  s   € õ
 ˜!œ&Ñ!Ô!Ð!r2   c                 óÎ   — |j         | j         z  }|j         t          j        |¦  «        z  }||z   |j                             ¦   «         z   |j        t
          z  z   dt
          z   z
  S r±   )r³   r«   rh   r´   r’   rÓ   )r}   r~   ÚratiorŒ   s       r0   Ú_kl_exponential_gammarS  t  sn   € àŒF�Q”V‰O€EØ
Œ/Ð	�EœI eÑ,Ô,Ñ	,€Bà
Ø
ñ	à
Œ/×
 Ò
 Ñ
"Ô
"ñ	#ð Œ/�LÑ
(ñ	)ð �|Ññ		ðr2   c                 óä   — | j         |j        z  }|j        |j        z  }|                     ¦   «         dz
  }t	          j        |¦  «        |z  |dz   z  }|                     ¦   «         }||z
  |z   |z   S r±   )r³   rÑ   rÒ   r´   rh   rÔ   Ú
reciprocal)r}   r~   Úscale_rate_prodÚloc_scale_ratiorŒ   r�   r–   s          r0   Ú_kl_exponential_gumbelrX  �  sw   € à”f˜qœwÑ&€OØ”e˜aœg‘o€OØ	×	Ò	Ñ	Ô	 Ñ	"€BÝ	Œ�?Ñ	#Ô	# oÑ	5¸È1Ñ9LÑ	M€BØ	×	#Ò	#Ñ	%Ô	%€BØ�Ñ "Ñ$ rÑ)Ð)r2   c                 ó`  — |j                              d¦  «        }| j                             d¦  «        }dt          j        ||z  dz  t
          j        z  ¦  «        z  }|                     ¦   «         }|j        | j        z  }|j                             d¦  «        dz  }|dz
  ||z
  |z   |z  z   S r  )	rÑ   rv   r³   rh   r´   r7  r8  rU  rÒ   )r}   r~   r:  Úrate_sqrrŒ   r�   r–   r—   s           r0   Ú_kl_exponential_normalr[  Ž  s™   € à”—’˜Q‘”€JØŒv�zŠz˜!‰}Œ}€HØ	�uŒy˜ JÑ.°Ñ2µT´WÑ<Ñ=Ô=Ñ	=€BØ	×	Ò	Ñ	Ô	€BØ	
Œ�”‰€BØ	
Œ�Š�1‰Œ˜Ñ	€BØ�‰6�R˜"‘W˜r‘\ ZÑ/Ñ/Ð/r2   c                 ó*   — t          | j        ¦  «        S r+   )rl   r«   rÛ   s     r0   Ú_kl_gamma_infinityr]  ™  s   € õ
 ˜!œ/Ñ*Ô*Ð*r2   c                 ó�   — |                       ¦   «          |j                             ¦   «         z
  |j        | j        z  | j        z  z   S r+   )rÚ   r³   r´   r«   rÛ   s     r0   Ú_kl_gamma_exponentialr_  ¡  s6   € à�IŠI‰KŒKˆ<˜!œ&Ÿ*š*™,œ,Ñ&¨¬°!´/Ñ)AÀAÄFÑ)JÑJÐJr2   c                 ó¨  — | j         |j        z  }|j        |j        z  }| j        dz
  | j                             ¦   «         z  | j                             ¦   «         z
  | j        z
  }|                     ¦   «         | j        |z  z   }t          j        |¦  «        d| 	                    ¦   «         z    
                    | j         ¦  «        z  |z
  }||z   |z   S r±   )r³   rÑ   rÒ   r«   r“   r’   r´   rh   rÔ   rU  rv   )r}   r~   Úbeta_scale_prodrW  rŒ   r�   r–   s          r0   Ú_kl_gamma_gumbelrb  ¦  sÕ   € à”f˜qœwÑ&€OØ”e˜aœg‘o€Oà	
Œ˜1Ñ	 ¤× 7Ò 7Ñ 9Ô 9Ñ9Ø
Œ/×
 Ò
 Ñ
"Ô
"ñ	#à
Œ/ñ	ð ð
 
×	Ò	Ñ	Ô	 ¤°?Ñ!BÑ	B€BåŒ	�/Ñ"Ô"Øˆ×)Ò)Ñ+Ô+Ñ+×
0Ò
0°!´/Ð1AÑ
BÔ
Bñ	Cà
ñ	ð ð
 �‰7�R‰<Ðr2   c                 ó   — |j                              d¦  «        }| j                             d¦  «        }dt          j        ||z  dz  t
          j        z  ¦  «        z  | j        z
  | j                             ¦   «         z
  }d| j                             d¦  «        | j        z   z  |z  }|j	        | j        z  | j        z  }d|j	                             d¦  «        z  }|| j        dz
  | j         
                    ¦   «         z  z   ||z
  |z   |z  z   S r  )rÑ   rv   r³   rh   r´   r7  r8  r«   r’   rÒ   r“   )r}   r~   r:  Úbeta_sqrrŒ   r�   r–   r—   s           r0   Ú_kl_gamma_normalre  »  sþ   € à”—’˜Q‘”€JØŒv�zŠz˜!‰}Œ}€Hà�eŒi˜ :Ñ-°Ñ1µD´GÑ;Ñ<Ô<Ñ<Ø
Œ/ñ	à
Œ/×
 Ò
 Ñ
"Ô
"ñ	#ð ð
 
�”×#Ò# AÑ&Ô&¨¬Ñ8Ñ	9¸HÑ	D€BØ	
Œ�”Ñ	  1¤6Ñ	)€BØ	ˆqŒu�yŠy˜‰|Œ|Ñ	€Bà
ØŒ?˜QÑ !¤/×"9Ò"9Ñ";Ô";Ñ
;ñ	<à�‰7�R‰<˜:Ñ
%ñ	&ðr2   c                 ó*   — t          | j        ¦  «        S r+   ©rl   rÒ   rÛ   s     r0   Ú_kl_gumbel_infinityrh  Î  ó   € õ ˜!œ%Ñ Ô Ð r2   c                 ó~  — | j         |j         z  }|t          j        dt          j        z  ¦  «        z                       ¦   «         }t          j        |z  dz                       d¦  «        dz  }| j        | j         t          z  z   |j        z
  |j         z                       d¦  «        dz  }| |z   |z   t          dz   z
  S )NrX   ré   é   r   )rÑ   r7  rò   r8  r´   rv   rÒ   rÓ   )r}   r~   Úparam_ratiorŒ   r�   r–   s         r0   Ú_kl_gumbel_normalrm  Û  s¨   € à”'˜AœGÑ#€KØ
�œ	 !¥d¤g¡+Ñ.Ô.Ñ
.×	3Ò	3Ñ	5Ô	5€BÝ
Œ'�KÑ
 #Ñ
%×	*Ò	*¨1Ñ	-Ô	-°Ñ	1€BØŒ5�1”7�\Ñ)Ñ)¨A¬EÑ1°Q´WÑ
<×	AÒ	AÀ!Ñ	DÔ	DÀsÑ	J€BØˆ3�‰8�b‰=�L¨1Ñ,Ñ-Ð-r2   c                 ó*   — t          | j        ¦  «        S r+   rg  rÛ   s     r0   Ú_kl_laplace_infinityro  ä  ri  r2   c                 óz  — |j                              d¦  «        }| j                              d¦  «        |z  }dt          j        d|z  t          j        z  ¦  «        z  }d| j                             d¦  «        z  }| j        |j        z  }d|j                             d¦  «        z  }| |z   ||z
  |z   |z  z   dz
  S r  )rÑ   rv   rh   r´   r7  r8  rÒ   )r}   r~   r:  Úscale_sqr_var_ratiorŒ   r�   r–   r—   s           r0   Ú_kl_laplace_normalrr  î  s©   € à”—’˜Q‘”€JØœ'Ÿ+š+ a™.œ.¨:Ñ5ÐØ	�uŒy˜Ð0Ñ0µ4´7Ñ:Ñ;Ô;Ñ	;€BØ	ˆqŒu�yŠy˜‰|Œ|Ñ	€BØ	
Œ�”‰€BØ	ˆqŒu�yŠy˜‰|Œ|Ñ	€BØˆ3Ð$Ñ$¨¨R©°"©¸
Ñ'BÑBÀQÑFÐFr2   c                 ó*   — t          | j        ¦  «        S r+   rg  rÛ   s     r0   Ú_kl_normal_infinityrt  ù  ri  r2   c                 óX  — | j         |j        z  }| j        |j        z                       d¦  «        }|j         |j        z  }|                     ¦   «         dz  }||z
  }t	          j        | d|z  z   |z   ¦  «        }| |z   |z   ddt          j        dt          j        z  ¦  «        z   z  z
  S r  )rÒ   rÑ   rv   r´   rh   rÔ   r7  r8  )r}   r~   Úmean_scale_ratioÚvar_scale_sqr_ratiorW  rŒ   r�   r–   s           r0   Ú_kl_normal_gumbelrx    s¬   € à”u˜qœw‘ÐØœ7 Q¤WÑ,×1Ò1°!Ñ4Ô4ÐØ”e˜aœg‘o€OØ	×	 Ò	 Ñ	"Ô	" SÑ	(€BØ	˜OÑ	+€BÝ	ŒÐ$Ð$ sÐ-@Ñ'@Ñ@À?ÑRÑ	SÔ	S€BØˆ3�‰8�b‰=˜C 1¥t¤x°µD´G±Ñ'<Ô'<Ñ#<Ñ=Ñ>Ð>r2   c                 óì  — | j         |j         z
  }| j        |j        z  }|| j        z  }t          j        |¦  «        }t	          j        dt          j        z  ¦  «        | j        z  t          j        d|                     d¦  «        z  ¦  «        z  }|t          j	        t	          j        d¦  «        |z  ¦  «        z  }| ||z   |j        z  z   ddt	          j        dt          j        z  ¦  «        z   z  z
  S )NrX   g      à¿ré   r   )
rÒ   rÑ   rh   r´   r7  rò   r8  rÔ   rv   Úerf)r}   r~   Úloc_diffrã   Úloc_diff_scale_ratiorŒ   r�   r–   s           r0   Ú_kl_normal_laplacer}    s×   € àŒu�q”u‰}€HØ”'˜AœGÑ#€KØ# a¤gÑ-ÐÝ	Œ�;Ñ	Ô	€BåŒ	�!•d”g‘+ÑÔ ¤Ñ(­5¬9°TÐ<P×<TÒ<TÐUVÑ<WÔ<WÑ5WÑ+XÔ+XÑXð ð 
•E”I�dœi¨™nœnÐ/CÑCÑDÔDÑ	D€BØˆ3�"�r‘'˜QœWÑ$Ñ$¨¨qµ4´8¸CÅ$Ä'¹MÑ3JÔ3JÑ/JÑ(KÑLÐLr2   c                 ó*   — t          | j        ¦  «        S r+   )rl   rÑ   rÛ   s     r0   Ú_kl_pareto_infinityr    s   € õ ˜!œ'Ñ"Ô"Ð"r2   c                 óô   — | j         |j        z  }| j        |z                       ¦   «         }| j                             ¦   «         }| j        |z  | j        dz
  z  }||z
  |z   dz
  }t
          || j        dk    <   |S r±   )rÑ   r³   r  r´   rU  r   )r}   r~   rV  rŒ   r�   r–   rÇ   s          r0   Ú_kl_pareto_exponentialr�  "  sy   € à”g ¤Ñ&€OØ
Œ'�OÑ
#×	(Ò	(Ñ	*Ô	*€BØ	
Œ×	Ò	Ñ	Ô	€BØ	
Œ�?Ñ	" a¤g°¡kÑ	2€BØ�"‰W�r‰\˜AÑ€FÝ€Fˆ1Œ7�aŠ<ÑØ€Mr2   c                 óº  — | j                              ¦   «         | j                             ¦   «         z   }| j                             ¦   «         |z
  }|j                             ¦   «         |j        |j                             ¦   «         z  z
  }d|j        z
  |z  }|j        | j        z  | j         z  | j        dz
  z  }||z   |z   |z   dz
  }t          || j        dk    <   |S r±   )rÑ   r´   r  rU  r«   r’   r³   r   ©r}   r~   Úcommon_termrŒ   r�   r–   r—   rÇ   s           r0   Ú_kl_pareto_gammar…  -  s¾   € à”'—+’+‘-”- !¤'×"4Ò"4Ñ"6Ô"6Ñ6€KØ	
Œ�Š‰Œ˜Ñ	$€BØ	
Œ×	Ò	Ñ	!Ô	! A¤O°a´f·j²j±l´lÑ$BÑ	B€BØ
ˆaŒoÑ
 Ñ	,€BØ	
Œ�!”'Ñ	˜AœGÑ	# q¤w°¡{Ñ	3€BØ�"‰W�r‰\˜BÑ Ñ"€FÝ€Fˆ1Œ7�aŠ<ÑØ€Mr2   c                 ó  — d|j                              d¦  «        z  }| j         | j        dz
  z  }t          j        dt          j        z  ¦  «        |j         z  | j        z  | j         z                       ¦   «         }| j                             ¦   «         }| j        |                     d¦  «        z  | j        dz
  z  }| j        |z  |j        z
                       d¦  «        }||z
  ||z   |z  z   dz
  }t          || j        dk    <   |S )NrX   r   )
rÑ   rv   r  r7  rò   r8  r´   rU  rÒ   r   )	r}   r~   r:  r„  rŒ   r�   r–   r—   rÇ   s	            r0   Ú_kl_pareto_normalr‡  <  sè   € à�Q”W—[’[ ‘^”^Ñ#€JØ”'˜QœW q™[Ñ)€KÝ
Œ)�A�œ‘KÑ
 Ô
  1¤7Ñ
*¨Q¬WÑ
4°q´wÑ
>×	CÒ	CÑ	EÔ	E€BØ	
Œ×	Ò	Ñ	Ô	€BØ	
Œ�;—?’? 1Ñ%Ô%Ñ	%¨¬°1©Ñ	5€BØ
Œ'�KÑ
 !¤%Ñ
'×	,Ò	,¨QÑ	/Ô	/€BØ�"‰W˜˜R™ :Ñ-Ñ-°Ñ1€FÝ€Fˆ1Œ7�aŠ<ÑØ€Mr2   c                 ó*   — t          | j        ¦  «        S r+   rO  rÛ   s     r0   Ú_kl_poisson_infinityr‰  I  s   € õ ˜!œ&Ñ!Ô!Ð!r2   c                 óf  — | j         | j        z
  }t          j        |¦  «        }|j        dz
  t          | j         ¦  «        t          | j        ¦  «        z
  |z
  z  |z  }|j        dz
  t          d| j         z
  ¦  «        t          d| j        z
  ¦  «        z
  |z   z  |z  }|j                             ¦   «         |j                             ¦   «         z   |j        |j        z                        ¦   «         z
  }||z   |z
  |z
  }t          || j         |j	        j
        k    | j        |j	        j        k     z  <   |S r±   )r(  r)  rh   r´   r�   rp   r‘   r’   r   r  r=  r  rƒ  s           r0   Ú_kl_uniform_betar‹  O  s2  € à”&˜1œ5‘.€KÝ	Œ�;Ñ	Ô	€Bà	
Ô	˜AÑ	Ý�A”FÑÔ�h q¤u™oœoÑ-°Ñ;ñ	=à
ñ	ð ð 
Ô	˜AÑ	Ý�A˜œ‘JÑÔ¥(¨1¨q¬u©9Ñ"5Ô"5Ñ5¸ÑCñ	Eà
ñ	ð ð 	
Ô×ÒÑ!Ô!Ø
Ô
×
!Ò
!Ñ
#Ô
#ñ	$àÔ˜aÔ.Ñ.×
6Ò
6Ñ
8Ô
8ñ	9ð ð
 �"‰W�r‰\˜BÑ€FÝQT€FˆAŒF�Q”YÔ*Ò*¨q¬u°q´yÔ7LÒ/LÑMÑNØ€Mr2   c           	      óº  — |                       ¦   «          | j        |j        z  z
  t          j        |j         ¦  «        z
  |                     ¦   «         z
  }t          j        t          j        t          j	        | j
        |j        j        ¦  «        t          j        | j        |j        j        ¦  «        ¦  «        t          j        |¦  «        t"          z  |¦  «        S r+   )rÚ   r¦   rŠ   rh   r�   r†   r§   rH  rI  rJ  r(  r  r=  rK  r)  r  rL  r   r*  s      r0   Ú _kl_uniform_continuous_bernoullir�  g  s»   € ð 
�Š‰ŒˆØ
Œ&�1”8Ñ
ñ	å
Œ+�q”w�hÑ
Ô
ñ	 ð ×
Ò
Ñ
!Ô
!ñ	"ð õ Œ;ÝŒ	ÝŒH�Q”V˜QœYÔ2Ñ3Ô3ÝŒH�Q”U˜AœIÔ1Ñ2Ô2ñ	
ô 	
õ 	Œ˜ÑÔ¥#Ñ%Øñô ð r2   c                 óÈ   — |j         | j        | j        z   z  dz  | j        | j        z
  |j         z                       ¦   «         z
  }t          || j        |j        j        k     <   |S )NrX   )r³   r(  r)  r´   r   r  r  r*  s      r0   Ú_kl_uniform_exponetialr�  y  sV   € àŒV�q”v ¤‘~Ñ&¨Ñ*¨q¬v¸¼©~ÀÄÑ.G×-LÒ-LÑ-NÔ-NÑN€FÝ,/€Fˆ1Œ5�1”9Ô(Ò(Ñ)Ø€Mr2   c                 ó¼  — | j         | j        z
  }|                     ¦   «         }|j                             ¦   «         |j        |j                             ¦   «         z  z
  }d|j        z
  t          | j         ¦  «        t          | j        ¦  «        z
  |z
  z  |z  }|j        | j         | j        z   z  dz  }| |z   |z   |z   }t          || j        |j        j	        k     <   |S )Nr   rX   )
r(  r)  r´   r«   r’   r³   rp   r   r  r  rƒ  s           r0   Ú_kl_uniform_gammar‘  €  sÌ   € à”&˜1œ5‘.€KØ	�ŠÑ	Ô	€BØ	
Œ×	Ò	Ñ	!Ô	! A¤O°a´f·j²j±l´lÑ$BÑ	B€Bà	
ˆQŒ_Ñ	Ý�A”FÑÔ�h q¤u™oœoÑ-°Ñ;ñ	=à
ñ	ð ð
 
Œ�1”6˜AœE‘>Ñ	" QÑ	&€BØˆS�2‰X˜‰]˜RÑ€FÝ,/€Fˆ1Œ5�1”9Ô(Ò(Ñ)Ø€Mr2   c                 ó,  — |j         | j        | j        z
  z  }| j        |j        z
  |j         z  }| j        |j        z
  |j         z  }|                     ¦   «         d||z   z  z   }|t          j        | ¦  «        t          j        | ¦  «        z
  z  }||z
  S )Nré   )rÑ   r(  r)  rÒ   r´   rh   rÔ   )r}   r~   r„  Úhigh_loc_diffÚlow_loc_diffrŒ   r�   s          r0   Ú_kl_uniform_gumbelr•  �  sŒ   € à”'˜QœV a¤e™^Ñ,€KØ”V˜aœe‘^ q¤wÑ.€MØ”E˜AœE‘M Q¤WÑ,€LØ	�ŠÑ	Ô	˜S M°LÑ$@ÑAÑ	A€BØ	�œ	 = .Ñ1Ô1µE´I¸|¸mÑ4LÔ4LÑLÑ	M€BØ�‰7€Nr2   c                 óx  — | j         | j        z
  }t          j        t          j        dz  ¦  «        |j        z  |z                       ¦   «         }|                     d¦  «        dz  }| j         | j        z   d|j        z  z
  dz                       d¦  «        }|d||z   z  |j                             d¦  «        z  z   S )NrX   é   ré   )	r(  r)  r7  rò   r8  rÑ   r´   rv   rÒ   )r}   r~   r„  rŒ   r�   r–   s         r0   Ú_kl_uniform_normalr˜  �  s£   € à”&˜1œ5‘.€KÝ
Œ)•D”G˜a‘KÑ
 Ô
  1¤7Ñ
*¨[Ñ
8×	=Ò	=Ñ	?Ô	?€BØ
×	Ò	˜1Ñ	Ô	 Ñ	"€BØŒ6�A”E‰>˜A ¤™IÑ%¨Ñ
*×	/Ò	/°Ñ	2Ô	2€BØ��r˜B‘w‘ !¤'§+¢+¨a¡.¤.Ñ0Ñ0Ð0r2   c                 óT  — | j         | j        z
  }|j        |j                             |j        ¦  «        z  |z                       ¦   «         }t          | j         ¦  «        t          | j        ¦  «        z
  |z
  |z  }||j        dz   z  |z
  }t          || j        |j        j	        k     <   |S r±   )
r(  r)  r  rÑ   rv   r´   rp   r   r  r  )r}   r~   Úsupport_uniformrŒ   r�   rÇ   s         r0   Ú_kl_uniform_paretor›  ¦  s’   € à”f˜qœu‘n€OØ
Œ'�A”G—K’K ¤Ñ(Ô(Ñ
(¨OÑ
<×	AÒ	AÑ	CÔ	C€BÝ
�1”6Ñ
Ô
�X a¤e™_œ_Ñ
,¨Ñ
>À/Ñ	Q€BØ�1”7˜Q‘;Ñ "Ñ$€FÝ,/€Fˆ1Œ5�1”9Ô(Ò(Ñ)Ø€Mr2   c                 óŽ   — | j         |j         k    rt          ‚t          | j        |j        ¦  «        }t	          || j         ¦  «        S r+   )Úreinterpreted_batch_ndimsr‚   r(   rß   r#   r*  s      r0   Ú_kl_independent_independentrž  °  s?   € àÔ" aÔ&AÒAÐAÝ!Ð!Ý˜1œ;¨¬Ñ4Ô4€FÝ˜& !Ô"=Ñ>Ô>Ð>r2   c                 ó  — | j         |j         z                        d¦  «        | j        |j        z
                       d¦  «        z                        ¦   «         }d| j         z  |j         z                       ¦   «         }||z
  S )NrX   é   r  r‹   s       r0   Ú_kl_cauchy_cauchyr¡  ¸  sn   € ð Œ7�Q”WÑ×
!Ò
! !Ñ
$Ô
$¨¬°´©×':Ò':¸1Ñ'=Ô'=Ñ
=×	BÒ	BÑ	DÔ	D€BØ
ˆaŒg‰+˜œÑ
×	$Ò	$Ñ	&Ô	&€BØ�‰7€Nr2   c                  ó  — dg} t          t          d„ ¬¦  «        D ]+\  }}|                      d|j        › d|j        › d�¦  «         Œ,d                     | ¦  «        }t
          j        rt
          xj        |z  c_        dS dS )	zHAppends a list of implemented KL functions to the doc for kl_divergence.zLKL divergence is currently implemented for the following distribution pairs:c                 ó6   — | d         j         | d         j         fS r…   )rF   )Úp_qs    r0   ú<lambda>z_add_kl_info.<locals>.<lambda>Æ  s   €  s¨1¤v¤¸¸A¼¼Ð&H€ r2   )Úkeyz* :class:`~torch.distributions.z#` and :class:`~torch.distributions.ú`z
	N)Úsortedr%   ÚappendrF   Újoinr(   Ú__doc__)Úrowsr}   r~   Úkl_infos       r0   Ú_add_kl_infor®  À  s·   € ð 	Wð€Dõ ÝÐHÐHðñ ô ð 
ð 
‰ˆˆ1ð 	�ŠØj¨a¬jÐjÐjÐ]^Ô]gÐjÐjÐjñ	
ô 	
ð 	
ð 	
ð �kŠk˜$ÑÔ€GÝÔð )åÐÔ Ñ(ÐÔÐÐð)ð )r2   )Žr7  r\   Úcollections.abcr   Ú	functoolsr   rh   r   r   Ú	bernoullir   Úbetar	   Úbinomialr
   Úcategoricalr   Úcauchyr   Úcontinuous_bernoullir   Ú	dirichletr   Údistributionr   Ú
exp_familyr   Úexponentialr   Úgammar   Ú	geometricr   Úgumbelr   Úhalf_normalr   Úindependentr   Úlaplacer   Úlowrank_multivariate_normalr   r   r   Úmultivariate_normalr   r   Únormalr   Úone_hot_categoricalr   Úparetor   Úpoissonr    Útransformed_distributionr!   Úuniformr"   Úutilsr#   r$   rÓ   r%   ÚdictÚtupler4   Ú__annotations__r&   Ú__all__r'   r8   rf   rl   rp   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-  r/  r1  r3  r5  r;  r>  r@  rB  rF  rM  rP  rS  rX  r[  r]  r_  rb  re  rh  rm  ro  rr  rt  rx  r}  r  r�  r…  r‡  r‰  r‹  r�  r�  r‘  r•  r˜  r›  rž  r¡  r®  rJ   r2   r0   ú<module>rÎ     s±  ðà €€€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $à €€€Ø Ð Ð Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &Ø )Ð )Ð )Ð )Ð )Ð )Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 HÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Að
 ð ˆdØ	ˆ$�ˆ*Ô�xÐôð ð ñ ð
 ð ˆTØ	ˆ$�ˆ*Ô�xÐôð ð ñ ð ˜/Ð
*€ð(ð (ð (ðV ðð ð ð ð ñ ô ñ „ðð$ð ð ð8(ð (ð (ð/ð /ð /ð/ð /ð /ð�\ð  lð °vð ð ð ð ðL €ˆY˜	Ñ"Ô"ðð ñ #Ô"ðð €ˆT�4ÑÔð"ð "ñ Ôð"ð €ˆX�xÑ Ô ðð ñ !Ô ðð €ˆ[˜+Ñ&Ô&ðð ñ 'Ô&ðð €Ð Ð"5Ñ6Ô6ðð ñ 7Ô6ðð €ˆY˜	Ñ"Ô"ð'ð 'ñ #Ô"ð'ð €ˆ[˜+Ñ&Ô&ðð ñ 'Ô&ðð €ÐÐ 1Ñ2Ô2ðð ñ 3Ô2ðð" €ˆU�EÑÔðð ñ Ôðð €ˆV�VÑÔð-ð -ñ Ôð-ð €ˆY˜	Ñ"Ô"ðEð Eñ #Ô"ðEð €ˆZ˜Ñ$Ô$ð7ð 7ñ %Ô$ð7ð €ˆW�gÑÔðð ñ Ôðð €Ð&Ð(AÑBÔBð<ð <ñ CÔBð<ðB €ÐÐ!:Ñ;Ô;ð<ð <ñ <Ô;ð<ð: €Ð&Ð(:Ñ;Ô;ð!<ð !<ñ <Ô;ð!<ðH €ÐÐ!3Ñ4Ô4ð2ð 2ñ 5Ô4ð2ð0 €ˆV�VÑÔð8ð 8ñ Ôð8ð €ÐÐ 1Ñ2Ô2ðGð Gñ 3Ô2ðGð €ˆV�VÑÔðð ñ Ôðð €ˆW�gÑÔðFð Fñ ÔðFð €Ð$Ð&=Ñ>Ô>ð3ð 3ñ ?Ô>ð3ð €ˆW�gÑÔðð ñ Ôðð €ˆY˜Ñ Ô ð<ð <ñ !Ô ð<ð €ˆTÐ&Ñ'Ô'ðð ñ (Ô'ðð €ˆT�6ÑÔð,ð ,ñ Ôð,ð €ˆT�;ÑÔðð ñ  Ôðð €ˆT�5ÑÔðð ñ Ôðð €ˆT�6ÑÔð1ð 1ñ Ôð1ð €ˆT�7ÑÔðð ñ Ôðð €Ð  &Ñ)Ô)ð#ð #ñ *Ô)ð#ð €Ð  +Ñ.Ô.ð>ð >ñ /Ô.ð>ð €Ð  &Ñ)Ô)ðð ñ *Ô)ðð €Ð  'Ñ*Ô*ð	ð 	ñ +Ô*ð	ð €ˆ[˜$ÑÔØ€ˆ[Ð-Ñ.Ô.Ø€ˆ[˜&Ñ!Ô!Ø€ˆ[˜'Ñ"Ô"ð"ð "ñ #Ô"ñ "Ô!ñ /Ô.ñ  Ôð"ð €ˆ[˜%Ñ Ô ð	ð 	ñ !Ô ð	ð €ˆ[˜&Ñ!Ô!ð*ð *ñ "Ô!ð*ð €ˆ[˜&Ñ!Ô!ð0ð 0ñ "Ô!ð0ð €ˆU�DÑÔØ€ˆUÐ'Ñ(Ô(Ø€ˆU�FÑÔØ€ˆU�GÑÔð+ð +ñ Ôñ Ôñ )Ô(ñ Ôð+ð €ˆU�KÑ Ô ðKð Kñ !Ô ðKð €ˆU�FÑÔðð ñ Ôðð( €ˆU�FÑÔðð ñ Ôðð$ €ˆV�TÑÔØ€ˆVÐ(Ñ)Ô)Ø€ˆV�[Ñ!Ô!Ø€ˆV�UÑÔØ€ˆV�VÑÔØ€ˆV�WÑÔð!ð !ñ Ôñ Ôñ Ôñ "Ô!ñ *Ô)ñ Ôð!ð €ˆV�VÑÔð.ð .ñ Ôð.ð €ˆW�dÑÔØ€ˆWÐ)Ñ*Ô*Ø€ˆW�kÑ"Ô"Ø€ˆW�eÑÔØ€ˆW�fÑÔØ€ˆW�gÑÔð!ð !ñ Ôñ Ôñ Ôñ #Ô"ñ +Ô*ñ Ôð!ð €ˆW�fÑÔðGð Gñ ÔðGð €ˆV�TÑÔØ€ˆVÐ(Ñ)Ô)Ø€ˆV�[Ñ!Ô!Ø€ˆV�UÑÔØ€ˆV�VÑÔØ€ˆV�WÑÔð!ð !ñ Ôñ Ôñ Ôñ "Ô!ñ *Ô)ñ Ôð!ð €ˆV�VÑÔð?ð ?ñ Ôð?ð €ˆV�WÑÔð	Mð 	Mñ Ôð	Mð €ˆV�TÑÔØ€ˆVÐ(Ñ)Ô)Ø€ˆV�WÑÔð#ð #ñ Ôñ *Ô)ñ Ôð#ð €ˆV�[Ñ!Ô!ðð ñ "Ô!ðð €ˆV�UÑÔðð ñ Ôðð €ˆV�VÑÔð	ð 	ñ Ôð	ð €ˆW�iÑ Ô Ø€ˆW�hÑÔð"ð "ñ  Ôñ !Ô ð"ð €ˆW�dÑÔðð ñ Ôðð. €ˆWÐ)Ñ*Ô*ðð ñ +Ô*ðð" €ˆW�kÑ"Ô"ðð ñ #Ô"ðð €ˆW�eÑÔðð ñ Ôðð €ˆW�fÑÔðð ñ Ôðð €ˆW�fÑÔð1ð 1ñ Ôð1ð €ˆW�fÑÔðð ñ Ôðð €ˆ[˜+Ñ&Ô&ð?ð ?ñ 'Ô&ð?ð €ˆV�VÑÔðð ñ Ôðð)ð )ð )ð )ð )r2   