Ë
    7^(hˆ¬  ã                  óØ  — d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZmZmZ d dlmZmZ d dlmZmZmZ d dlmZ d d	lmZ d d
l m!Z! d dl"m#Z#  G d„ de«      Z$ G d„ de«      Z% G d„ de«      Z& G d„ de«      Z' G d„ de«      Z( G d„ de«      Z) G d„ de«      Z* G d„ de«      Z+ G d„ de«      Z, G d„ de«      Z-d „ Z. G d!„ d"e«      Z/d(d#„Z0d)d$„Z1d(d%„Z2d*d'„Z3y&)+é    )Úannotations)ÚSÚAddÚMulÚsympifyÚSymbolÚDummyÚBasic)ÚExpr)Úfactor_terms)ÚDefinedFunctionÚ
DerivativeÚArgumentIndexErrorÚAppliedUndefÚ
expand_mulÚ	PoleError)Ú	fuzzy_notÚfuzzy_or)ÚpiÚIÚoo)ÚPow)ÚEq)Úsqrt)Ú	Piecewisec                  ód   — e Zd ZU dZded<   dZdZdZed„ «       Z	dd„Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zy)Úrea÷  
    Returns real part of expression. This function performs only
    elementary analysis and so it will fail to decompose properly
    more complicated expressions. If completely simplified result
    is needed then use ``Basic.as_real_imag()`` or perform complex
    expansion on instance of this function.

    Examples
    ========

    >>> from sympy import re, im, I, E, symbols
    >>> x, y = symbols('x y', real=True)
    >>> re(2*E)
    2*E
    >>> re(2*I + 17)
    17
    >>> re(2*I)
    0
    >>> re(im(x) + x*I + 2)
    2
    >>> re(5 + I + 2)
    7

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    expr : Expr
        Real part of expression.

    See Also
    ========

    im
    útuple[Expr]ÚargsTc                ó²  — |t         j                  u rt         j                  S |t         j                  u rt         j                  S |j                  r|S |j                  st
        |z  j                  rt         j                  S |j                  r|j                  «       d   S |j                  r(t        |t        «      rt        |j                  d   «      S g g g }}}t        j                  |«      }|D ]¥  }|j!                  t
        «      }|�|j                  rŒ'|j#                  |«       Œ9|j%                  t
        «      s|j                  r|j#                  |«       Œl|j                  |¬«      }|r|j#                  |d   «       Œ•|j#                  |«       Œ§ t'        |«      t'        |«      k7  r'd„ |||fD «       \  }	}
} | |	«      t)        |
«      z
  |z   S y )Nr   ©Úignorec              3  ó,   K  — | ]  }t        |Ž –— Œ y ­w©N©r   ©Ú.0Úxss     úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/functions/elementary/complexes.pyú	<genexpr>zre.eval.<locals>.<genexpr>i   ó   è ø€ ÒM¨œ3 œ8ÑMùó   ‚)r   ÚNaNÚComplexInfinityÚis_extended_realÚis_imaginaryr   ÚZeroÚ	is_MatrixÚas_real_imagÚis_FunctionÚ
isinstanceÚ	conjugater   r   r   Ú	make_argsÚas_coefficientÚappendÚhasÚlenÚim©ÚclsÚargÚincludedÚrevertedÚexcludedr   ÚtermÚcoeffÚ	real_imagÚaÚbÚcs               r)   Úevalzre.evalD   s…  € à”!—%‘%‰<Ü—5‘5ˆLØ”A×%Ñ%Ñ%Ü—5‘5ˆLØ×!Ò!ØˆJØ×Ò¤! C¡%×!9Ò!9Ü—6‘6ˆMØ�]Š]Ø×#Ñ#Ó% aÑ(Ð(Ø�_Š_¤¨C´Ô!;Ü�c—h‘h˜q‘k“?Ð"ð ,.¨r°2 �hˆHÜ—=‘= Ó%ˆDØò .�Ø×+Ñ+¬AÓ.�àÐ$Ø ×1Ó1Ø Ÿ™¨Õ.ØŸ™¤!œ¨×)>Ò)>Ø—O‘O DÕ)ð
 !%× 1Ñ 1¸Ð 1Ó =�IÙ Ø Ÿ™¨	°!©Õ5à Ÿ™¨Õ-ð!.ô$ �4‹yœC ›MÒ)ÙM¨x¸À8Ð.LÔM‘��1�aá˜1“v¤ 1£‘~¨Ñ)Ð)ð *ó    c                ó&   — | t         j                  fS )zF
        Returns the real number with a zero imaginary part.

        ©r   r1   ©ÚselfÚdeepÚhintss      r)   r3   zre.as_real_imagm   ó   € ð
 ”a—f‘fˆ~ÐrJ   c                ó8  — |j                   s| j                  d   j                   r$t        t        | j                  d   |d¬«      «      S |j                  s| j                  d   j                  r,t
         t        t        | j                  d   |d¬«      «      z  S y ©Nr   T©Úevaluate)r/   r   r   r   r0   r   r<   ©rN   Úxs     r)   Ú_eval_derivativezre._eval_derivativet   ó}   € Ø×Ò §¡¨1¡×!>Ò!>Ü”j §¡¨1¡¨q¸4Ô@ÓAÐAØ�>Š>˜TŸY™Y q™\×6Ò6Ü�2Ü”Z §	¡	¨!¡¨a¸$Ô?Ó@ñAð Að 7rJ   c                ó`   — | j                   d   t        t        | j                   d   «      z  z
  S ©Nr   )r   r   r<   ©rN   r?   Úkwargss      r)   Ú_eval_rewrite_as_imzre._eval_rewrite_as_im{   s'   € Ø�y‰y˜‰|œa¤ 4§9¡9¨Q¡<Ó 0Ñ0Ñ0Ð0rJ   c                ó4   — | j                   d   j                  S r[   ©r   Úis_algebraic©rN   s    r)   Ú_eval_is_algebraiczre._eval_is_algebraic~   ó   € Ø�y‰y˜‰|×(Ñ(Ð(rJ   c                óx   — t        | j                  d   j                  | j                  d   j                  g«      S r[   )r   r   r0   Úis_zerorb   s    r)   Ú_eval_is_zerozre._eval_is_zero�   s.   € ä˜Ÿ™ 1™×2Ñ2°D·I±I¸a±L×4HÑ4HÐIÓJÐJrJ   c                ó8   — | j                   d   j                  ryy ©Nr   T©r   Ú	is_finiterb   s    r)   Ú_eval_is_finitezre._eval_is_finite…   ó   € Ø�9‰9�Q‰<×!Ò!Øð "rJ   c                ó8   — | j                   d   j                  ryy ri   rj   rb   s    r)   Ú_eval_is_complexzre._eval_is_complex‰   rm   rJ   N©T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r/   Ú
unbranchedÚ_singularitiesÚclassmethodrI   r3   rX   r^   rc   rg   rl   ro   © rJ   r)   r   r      sX   … ñ'ðR ÓàÐØ€JØ€Nàñ&*ó ð&*óPòAò1ò)òKòórJ   r   c                  ód   — e Zd ZU dZded<   dZdZdZed„ «       Z	dd„Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zy)r<   aï  
    Returns imaginary part of expression. This function performs only
    elementary analysis and so it will fail to decompose properly more
    complicated expressions. If completely simplified result is needed then
    use ``Basic.as_real_imag()`` or perform complex expansion on instance of
    this function.

    Examples
    ========

    >>> from sympy import re, im, E, I
    >>> from sympy.abc import x, y
    >>> im(2*E)
    0
    >>> im(2*I + 17)
    2
    >>> im(x*I)
    re(x)
    >>> im(re(x) + y)
    im(y)
    >>> im(2 + 3*I)
    3

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    expr : Expr
        Imaginary part of expression.

    See Also
    ========

    re
    r   r   Tc                óÄ  — |t         j                  u rt         j                  S |t         j                  u rt         j                  S |j                  rt         j                  S |j
                  st        |z  j                  r
t         |z  S |j                  r|j                  «       d   S |j                  r)t        |t        «      rt        |j                  d   «       S g g g }}}t        j                  |«      }|D ]¥  }|j!                  t        «      }|�0|j                  s|j#                  |«       Œ8|j#                  |«       ŒJ|j%                  t        «      s|j                  rŒl|j                  |¬«      }|r|j#                  |d   «       Œ•|j#                  |«       Œ§ t'        |«      t'        |«      k7  r'd„ |||fD «       \  }	}
} | |	«      t)        |
«      z   |z   S y )Né   r   r!   c              3  ó,   K  — | ]  }t        |Ž –— Œ y ­wr$   r%   r&   s     r)   r*   zim.eval.<locals>.<genexpr>â   r+   r,   )r   r-   r.   r/   r1   r0   r   r2   r3   r4   r5   r6   r<   r   r   r7   r8   r9   r:   r;   r   r=   s               r)   rI   zim.eval¾   sŒ  € à”!—%‘%‰<Ü—5‘5ˆLØ”A×%Ñ%Ñ%Ü—5‘5ˆLØ×!Ò!Ü—6‘6ˆMØ×Ò¤! C¡%×!9Ò!9Ü�2˜‘8ˆOØ�]Š]Ø×#Ñ#Ó% aÑ(Ð(Ø�_Š_¤¨C´Ô!;Ü�s—x‘x ‘{“OÐ#Ð#à+-¨r°2 �hˆHÜ—=‘= Ó%ˆDØò .�Ø×+Ñ+¬AÓ.�àÐ$Ø ×1Ò1Ø Ÿ™¨Õ.à Ÿ™¨Õ.Ø—X‘Xœa”[¨×(=Ó(=ð !%× 1Ñ 1¸Ð 1Ó =�IÙ Ø Ÿ™¨	°!©Õ5à Ÿ™¨Õ-ð!.ô$ �4‹yœC ›MÒ)ÙM¨x¸À8Ð.LÔM‘��1�aá˜1“v¤ 1£‘~¨Ñ)Ð)ð *rJ   c                ó&   — | t         j                  fS )zC
        Return the imaginary part with a zero real part.

        rL   rM   s      r)   r3   zim.as_real_imagæ   rQ   rJ   c                ó8  — |j                   s| j                  d   j                   r$t        t        | j                  d   |d¬«      «      S |j                  s| j                  d   j                  r,t
         t        t        | j                  d   |d¬«      «      z  S y rS   )r/   r   r<   r   r0   r   r   rV   s     r)   rX   zim._eval_derivativeí   rY   rJ   c                ób   — t          | j                  d   t        | j                  d   «      z
  z  S r[   )r   r   r   r\   s      r)   Ú_eval_rewrite_as_rezim._eval_rewrite_as_reô   s)   € Üˆr�4—9‘9˜Q‘<¤" T§Y¡Y¨q¡\Ó"2Ñ2Ñ3Ð3rJ   c                ó4   — | j                   d   j                  S r[   r`   rb   s    r)   rc   zim._eval_is_algebraic÷   rd   rJ   c                ó4   — | j                   d   j                  S r[   ©r   r/   rb   s    r)   rg   zim._eval_is_zeroú   ó   € Ø�y‰y˜‰|×,Ñ,Ð,rJ   c                ó8   — | j                   d   j                  ryy ri   rj   rb   s    r)   rl   zim._eval_is_finiteý   rm   rJ   c                ó8   — | j                   d   j                  ryy ri   rj   rb   s    r)   ro   zim._eval_is_complex  rm   rJ   Nrp   )rq   rr   rs   rt   ru   r/   rv   rw   rx   rI   r3   rX   r�   rc   rg   rl   ro   ry   rJ   r)   r<   r<   Ž   sW   … ñ'ðR ÓàÐØ€JØ€Nàñ%*ó ð%*óNòAò4ò)ò-òórJ   r<   c                  ó�   ‡ — e Zd ZdZdZdZˆ fd„Zed„ «       Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )Úsignaæ  
    Returns the complex sign of an expression:

    Explanation
    ===========

    If the expression is real the sign will be:

        * $1$ if expression is positive
        * $0$ if expression is equal to zero
        * $-1$ if expression is negative

    If the expression is imaginary the sign will be:

        * $I$ if im(expression) is positive
        * $-I$ if im(expression) is negative

    Otherwise an unevaluated expression will be returned. When evaluated, the
    result (in general) will be ``cos(arg(expr)) + I*sin(arg(expr))``.

    Examples
    ========

    >>> from sympy import sign, I

    >>> sign(-1)
    -1
    >>> sign(0)
    0
    >>> sign(-3*I)
    -I
    >>> sign(1 + I)
    sign(1 + I)
    >>> _.evalf()
    0.707106781186548 + 0.707106781186548*I

    Parameters
    ==========

    arg : Expr
        Real or imaginary expression.

    Returns
    =======

    expr : Expr
        Complex sign of expression.

    See Also
    ========

    Abs, conjugate
    Tc                ó´   •— t         ‰| �  «       }|| k(  rC| j                  d   j                  du r(| j                  d   t	        | j                  d   «      z  S |S )Nr   F)ÚsuperÚdoitr   rf   ÚAbs)rN   rP   ÚsÚ	__class__s      €r)   rŒ   z	sign.doitC  sO   ø€ Ü‰G‰L‹NˆØ�Š9˜Ÿ™ 1™×-Ñ-°Ñ6Ø—9‘9˜Q‘<¤# d§i¡i°¡lÓ"3Ñ3Ð3ØˆrJ   c                óä  — |j                   ræ|j                  «       \  }}g }t        |«      }|D ]  }|j                  r| }Œ|j                  rŒ |j
                  rCt        |«      }|j                  r|t        z  }|j                  sŒY| }Œ]|j                  |«       Œo|j                  |«       Œ� |t        j                  u rt        |«      t        |«      k(  ry | |  |j                  |Ž «      z  S |t        j                  u rt        j                  S |j                  rt        j                   S |j                  rt        j                  S |j                  rt        j"                  S |j$                  rt'        |t        «      r|S |j
                  r^|j(                  r"|j*                  t        j,                  u rt        S t         |z  }|j                  rt        S |j                  rt         S y y r$   )Úis_MulÚas_coeff_mulr‰   Úis_extended_negativeÚis_extended_positiver0   r<   Úis_comparabler   r9   r   ÚOner;   Ú_new_rawargsr-   rf   r1   ÚNegativeOner4   r5   Úis_PowÚexpÚHalf)	r>   r?   rH   r   ÚunkrŽ   rF   ÚaiÚarg2s	            r)   rI   z	sign.evalI  s•  € ð �:Š:Ø×&Ñ&Ó(‰GˆAˆtØˆCÜ�Q“ˆAØò &�Ø×)Ò)Ø˜‘AØ×+Ò+Øà—~’~Ü ›U˜Ø×+Ò+Ø¤™F˜AØ!×6Ó6ð &' B¡àŸJ™J q�MàŸ
™
 1�ð#&ð$ ”A—E‘E‰zœc #›h¬#¨d«)Ò3ØØ‘sÐ+˜3×+Ñ+¨SÐ1Ó2Ñ2Ð2Ø”!—%‘%‰<Ü—5‘5ˆLØ�;Š;Ü—6‘6ˆMØ×#Ò#Ü—5‘5ˆLØ×#Ò#Ü—=‘=Ð Ø�?Š?Ü˜#œtÔ$Ø�
Ø×ÒØ�zŠz˜cŸg™g¬¯©Ñ/ô �Ü�2˜‘8ˆDØ×(Ò(Ü�Ø×(Ò(Ü�r�	ð )ð rJ   c                óh   — t        | j                  d   j                  «      rt        j                  S y r[   )r   r   rf   r   r–   rb   s    r)   Ú	_eval_Abszsign._eval_Abs{  s&   € Ü�T—Y‘Y˜q‘\×)Ñ)Ô*Ü—5‘5ˆLð +rJ   c                óD   — t        t        | j                  d   «      «      S r[   )r‰   r6   r   rb   s    r)   Ú_eval_conjugatezsign._eval_conjugate  s   € Ü”I˜dŸi™i¨™lÓ+Ó,Ð,rJ   c                ó`  — | j                   d   j                  r:ddlm} dt	        | j                   d   |d¬«      z   || j                   d   «      z  S | j                   d   j
                  rBddlm} dt	        | j                   d   |d¬«      z   |t         | j                   d   z  «      z  S y )Nr   )Ú
DiracDeltaé   TrT   )r   r/   Ú'sympy.functions.special.delta_functionsr¤   r   r0   r   )rN   rW   r¤   s      r)   rX   zsign._eval_derivative‚  sœ   € Ø�9‰9�Q‰<×(Ò(ÝJØ”z $§)¡)¨A¡,°¸DÔAÑAÙ˜TŸY™Y q™\Ó*ñ+ð +à�Y‰Y�q‰\×&Ò&ÝJØ”z $§)¡)¨A¡,°¸DÔAÑAÙœa˜R $§)¡)¨A¡,Ñ.Ó/ñ0ð 0ð 'rJ   c                ó8   — | j                   d   j                  ryy ri   )r   Úis_nonnegativerb   s    r)   Ú_eval_is_nonnegativezsign._eval_is_nonnegativeŒ  ó   € Ø�9‰9�Q‰<×&Ò&Øð 'rJ   c                ó8   — | j                   d   j                  ryy ri   )r   Úis_nonpositiverb   s    r)   Ú_eval_is_nonpositivezsign._eval_is_nonpositive�  rª   rJ   c                ó4   — | j                   d   j                  S r[   )r   r0   rb   s    r)   Ú_eval_is_imaginaryzsign._eval_is_imaginary”  rd   rJ   c                ó4   — | j                   d   j                  S r[   r„   rb   s    r)   Ú_eval_is_integerzsign._eval_is_integer—  r…   rJ   c                ó4   — | j                   d   j                  S r[   )r   rf   rb   s    r)   rg   zsign._eval_is_zeroš  s   € Ø�y‰y˜‰|×#Ñ#Ð#rJ   c                óœ   — t        | j                  d   j                  «      r*|j                  r|j                  rt
        j                  S y y y r[   )r   r   rf   Ú
is_integerÚis_evenr   r–   )rN   Úothers     r)   Ú_eval_powerzsign._eval_power�  s@   € ä�d—i‘i ‘l×*Ñ*Ô+Ø×ÒØ�MŠMä—5‘5ˆLð ð ð ,rJ   c                óü   — | j                   d   }|j                  |d«      }|dk7  r| j                  |«      S |dk7  r|j                  ||«      }t	        |«      dk  rt
        j                   S t
        j                  S r[   )r   ÚsubsÚfuncÚdirr   r   r–   )rN   rW   ÚnÚlogxÚcdirÚarg0Úx0s          r)   Ú_eval_nserieszsign._eval_nseries¥  si   € Ø�y‰y˜‰|ˆØ�Y‰Y�q˜!‹_ˆØ�Š7Ø—9‘9˜R“=Ð Ø�1Š9Ø—8‘8˜A˜tÓ$ˆDÜ˜D› Aš”—‘ˆvÐ0¬1¯5©5Ð0rJ   c                óJ   — |j                   rt        d|dkD  fd|dk  fd«      S y )Nr|   r   éÿÿÿÿ)r   T)r/   r   r\   s      r)   Ú_eval_rewrite_as_Piecewisezsign._eval_rewrite_as_Piecewise®  s/   € Ø×ÒÜ˜a  q¡˜\¨B°°a±¨=¸)ÓDÐDð  rJ   c                óD   — ddl m} |j                  r ||«      dz  dz
  S y )Nr   ©Ú	Heavisider¥   r|   ©r¦   rÇ   r/   ©rN   r?   r]   rÇ   s       r)   Ú_eval_rewrite_as_Heavisidezsign._eval_rewrite_as_Heaviside²  s'   € ÝEØ×ÒÙ˜S“> AÑ%¨Ñ)Ð)ð  rJ   c                óN   — t        dt        |d«      f|t        |«      z  df«      S ri   )r   r   r�   r\   s      r)   Ú_eval_rewrite_as_Abszsign._eval_rewrite_as_Abs·  s&   € Ü˜!œR  Q›Z˜¨3´°S³©>¸4Ð*@ÓAÐArJ   c                óP   — | j                  t        | j                  d   «      «      S r[   )rº   r   r   )rN   r]   s     r)   Ú_eval_simplifyzsign._eval_simplifyº  s   € Ø�y‰yœ d§i¡i°¡lÓ3Ó4Ð4rJ   ©r   )rq   rr   rs   rt   Ú
is_complexrw   rŒ   rx   rI   r    r¢   rX   r©   r­   r¯   r±   rg   r·   rÁ   rÄ   rÊ   rÌ   rÎ   Ú__classcell__)r�   s   @r)   r‰   r‰   	  sw   ø„ ñ4ðl €JØ€Nôð ñ/ó ð/òbò-ò0òòò)ò-ò$òó1òEò*ò
Bö5rJ   r‰   c                  óª   — e Zd ZU dZded<   dZdZdZdZdZ	dd„Z
ed„ «       Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r�   ab  
    Return the absolute value of the argument.

    Explanation
    ===========

    This is an extension of the built-in function ``abs()`` to accept symbolic
    values.  If you pass a SymPy expression to the built-in ``abs()``, it will
    pass it automatically to ``Abs()``.

    Examples
    ========

    >>> from sympy import Abs, Symbol, S, I
    >>> Abs(-1)
    1
    >>> x = Symbol('x', real=True)
    >>> Abs(-x)
    Abs(x)
    >>> Abs(x**2)
    x**2
    >>> abs(-x) # The Python built-in
    Abs(x)
    >>> Abs(3*x + 2*I)
    sqrt(9*x**2 + 4)
    >>> Abs(8*I)
    8

    Note that the Python built-in will return either an Expr or int depending on
    the argument::

        >>> type(abs(-1))
        <... 'int'>
        >>> type(abs(S.NegativeOne))
        <class 'sympy.core.numbers.One'>

    Abs will always return a SymPy object.

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    expr : Expr
        Absolute value returned can be an expression or integer depending on
        input arg.

    See Also
    ========

    sign, conjugate
    r   r   TFc                óT   — |dk(  rt        | j                  d   «      S t        | |«      ‚)zE
        Get the first derivative of the argument to Abs().

        r|   r   )r‰   r   r   )rN   Úargindexs     r)   Úfdiffz	Abs.fdiff   s+   € ð
 �qŠ=Ü˜Ÿ	™	 !™Ó%Ð%ä$ T¨8Ó4Ð4rJ   c           	     ó<
  ‡‡— ddl m} t        ‰d«      r‰j                  «       }|�|S t	        ‰t
        «      st        dt        ‰«      z  «      ‚ |‰d¬«      Š‰j                  «       \  }}|j                  r|j                  s | |«       | |«      z  S ‰j                  �r	g }g }‰j                  D ]Ç  }|j                  r‚|j                  j                  rl|j                  j                  rV | |j                   «      }	t	        |	| «      r|j#                  |«       Œk|j#                  t%        |	|j                  «      «       Œ‘ | |«      }
t	        |
| «      r|j#                  |«       Œ·|j#                  |
«       ŒÉ t'        |Ž }|r | t'        |Ž d¬«      nt(        j*                  }||z  S ‰t(        j,                  u rt(        j,                  S ‰t(        j.                  u rt0        S ddlm}m} ‰j                  �r‰j7                  «       \  }}|j8                  rš|j                  r>|j:                  r‰S |t(        j<                  u rt(        j*                  S t?        |«      |z  S |j@                  r|tC        |«      z  S |jD                  r)| tC        |«      z   |tF         tI        |«      z  «      z  S y |jK                  tL        «      s9 ||«      jO                  «       \  }}|tP        |z  z   } |tC        ||z  «      «      S t	        ‰|«      r |tC        ‰j                  d   «      «      S t	        ‰tR        «      r‰jT                  r‰S ‰j                  r‰ S y ‰jV                  rJ‰jK                  t0        t(        jX                  «      r&t[        d„ ‰jO                  «       D «       «      rt0        S ‰j\                  rt(        j^                  S ‰j@                  r‰S ‰j`                  r‰ S ‰jb                  rtP         ‰z  }|j@                  r|S ‰j8                  ry  |‰je                  «       d¬«      Š‰jg                  td        «      ‰jg                  td        «      z
  }|rti        ˆfd	„|D «       «      ry ‰‰k7  rš‰‰ k7  r“‰jg                  t>        «      }‰jk                  |D �ci c]  }|tm        d
¬«      “Œ c}«      }|j                  D �cg c]  }|j8                  �Œ|‘Œ }}|rti        ˆfd„|D «       «      sto        tq        ‰‰z  «      «      S y y y c c}w c c}w )Nr   )Úsignsimpr    zBad argument type for Abs(): %sFrT   )rš   Úlogc              3  ó4   K  — | ]  }|j                   –— Œ y ­wr$   )Úis_infinite)r'   rF   s     r)   r*   zAbs.eval.<locals>.<genexpr>P  s   è ø€ Ò= Q�1—=•=Ñ=ùs   ‚c              3  óZ   •K  — | ]"  }‰j                  |j                  d    «      –— Œ$ y­w)r   N)r:   r   )r'   Úir?   s     €r)   r*   zAbs.eval.<locals>.<genexpr>b  s"   øè ø€ ÒA°1˜CŸG™G A§F¡F¨1¡I×.ÑAùs   ƒ(+T)Úrealc              3  óR   •K  — | ]  }‰j                  t        |«      «      –— Œ  y ­wr$   )r:   r6   )r'   ÚuÚconjs     €r)   r*   zAbs.eval.<locals>.<genexpr>h  s   øè ø€ Ò!F¸Q $§(¡(¬9°Q«<×"8Ñ!Fùs   ƒ$')9Úsympy.simplify.simplifyr×   Úhasattrr    r5   r   Ú	TypeErrorÚtypeÚas_numer_denomÚfree_symbolsr‘   r   r™   rš   r´   Úis_negativeÚbaser9   r   r   r   r–   r-   r.   r   Ú&sympy.functions.elementary.exponentialrØ   Úas_base_expr/   rµ   r˜   r�   Úis_extended_nonnegativer   r“   r   r<   r:   r   r3   r   r   Úis_positiveÚis_AddÚNegativeInfinityÚanyrf   r1   Úis_extended_nonpositiver0   r6   ÚatomsÚallÚxreplacer	   r   r   )r>   r?   r×   Úobjr¼   ÚdÚknownrœ   ÚtÚbnewÚtnewrš   rØ   rè   ÚexponentrF   rG   Úzrž   Únew_conjr"   rÜ   Úabs_free_argrà   s    `                     @r)   rI   zAbs.eval
  s  ù€ å4ä�3˜Ô$Ø—-‘-“/ˆCØˆØ�
Ü˜#œtÔ$ÜÐ=ÄÀSÃ	ÑIÓJÐJñ �s UÔ+ˆØ×!Ñ!Ó#‰ˆˆ1Ø�>Š> !§.¢.Ù�q“6™#˜a›&‘=Ð à�:‹:ØˆEØˆCØ—X‘Xò +�Ø—8’8 §¡× 0Ò 0°Q·U±U×5FÒ5FÙ˜qŸv™v›;�DÜ! $¨Ô,ØŸ
™
 1�àŸ™¤S¨¨q¯u©uÓ%5Õ6á˜q›6�DÜ! $¨Ô,ØŸ
™
 1�àŸ™ TÕ*ð+ô ˜�KˆEÙ47‘#”c˜3�i¨%Õ0¼Q¿U¹UˆCØ˜‘9ÐØ”!—%‘%‰<Ü—5‘5ˆLØ”!×#Ñ#Ñ#ÜˆIßCà�:‹:Ø Ÿ_™_Ó.‰NˆD�(Ø×$Ò$Ø×&Ò&Ø×'Ò'Ø"˜
ØœqŸ}™}Ñ,Ü Ÿu™u˜Ü˜t›9 hÑ.Ð.Ø×/Ò/Ø¤ H£Ñ-Ð-Ø×,Ò,Ø!˜E¤B x£LÑ0±´b°S¼¸H»Ñ5EÓ1FÑFÐFØØ—X‘XœfÔ%á˜4“y×-Ñ-Ó/‘��1Øœ˜!™‘G�Ùœ2˜h q™j›>Ó*Ð*Ü�c˜3ÔÙ”r˜#Ÿ(™( 1™+“Ó'Ð'Ü�cœ<Ô(Ø�ŠØ�
Ø—’Ø�t�ØØ�:Š:˜#Ÿ'™'¤"¤a×&8Ñ&8Ô9ÜÑ=¨#×*:Ñ*:Ó*<Ô=Ô=Ü�	Ø�;Š;Ü—6‘6ˆMØ×&Ò&ØˆJØ×&Ò&Ø�4ˆKØ×ÒÜ�2˜‘8ˆDØ×+Ò+Ø�Ø×ÒØñ ˜Ÿ™›°%Ô8ˆØ—:‘:œiÓ(¨3¯9©9´YÓ+?Ñ?ˆÙœÓA¸ÔAÔAØØ�$Š;˜3 4 %š<Ø—Y‘Yœs“^ˆFØŸ<™<ÀfÖ(MÀ¨¬E°tÔ,<Ñ)<Ò(MÓNˆLØ*×7Ñ7ÖV˜¸1×;MÑ;MÑ;U’1ÐVˆCÐVÙœcÓ!FÀ#Ô!FÔFÜœJ s¨4¡xÓ0Ó1Ð1ð Gð	 (ˆ;ùâ(MùÚVs   Ò#TÓTÓTc                ó8   — | j                   d   j                  ryy ri   rj   rb   s    r)   Ú_eval_is_realzAbs._eval_is_realk  rm   rJ   c                óh   — | j                   d   j                  r| j                   d   j                  S y r[   )r   r/   r´   rb   s    r)   r±   zAbs._eval_is_integero  s,   € Ø�9‰9�Q‰<×(Ò(Ø—9‘9˜Q‘<×*Ñ*Ð*ð )rJ   c                óF   — t        | j                  d   j                  «      S r[   ©r   Ú_argsrf   rb   s    r)   Ú_eval_is_extended_nonzerozAbs._eval_is_extended_nonzeros  ó   € Ü˜Ÿ™ A™×.Ñ.Ó/Ð/rJ   c                ó4   — | j                   d   j                  S r[   )r  rf   rb   s    r)   rg   zAbs._eval_is_zerov  s   € Ø�z‰z˜!‰}×$Ñ$Ð$rJ   c                óF   — t        | j                  d   j                  «      S r[   r  rb   s    r)   Ú_eval_is_extended_positivezAbs._eval_is_extended_positivey  r  rJ   c                óh   — | j                   d   j                  r| j                   d   j                  S y r[   )r   r/   Úis_rationalrb   s    r)   Ú_eval_is_rationalzAbs._eval_is_rational|  s,   € Ø�9‰9�Q‰<×(Ò(Ø—9‘9˜Q‘<×+Ñ+Ð+ð )rJ   c                óh   — | j                   d   j                  r| j                   d   j                  S y r[   )r   r/   rµ   rb   s    r)   Ú_eval_is_evenzAbs._eval_is_even€  s,   € Ø�9‰9�Q‰<×(Ò(Ø—9‘9˜Q‘<×'Ñ'Ð'ð )rJ   c                óh   — | j                   d   j                  r| j                   d   j                  S y r[   )r   r/   Úis_oddrb   s    r)   Ú_eval_is_oddzAbs._eval_is_odd„  s,   € Ø�9‰9�Q‰<×(Ò(Ø—9‘9˜Q‘<×&Ñ&Ð&ð )rJ   c                ó4   — | j                   d   j                  S r[   r`   rb   s    r)   rc   zAbs._eval_is_algebraicˆ  rd   rJ   c                óö   — | j                   d   j                  r`|j                  rT|j                  r| j                   d   |z  S |t        j
                  ur$|j                  r| j                   d   |dz
  z  | z  S y )Nr   r|   )r   r/   r´   rµ   r   r˜   Ú
is_Integer)rN   rú   s     r)   r·   zAbs._eval_power‹  sj   € Ø�9‰9�Q‰<×(Ò(¨X×-@Ò-@Ø×ÒØ—y‘y ‘| XÑ-Ð-Ø¤§¡Ñ.°8×3FÒ3FØ—y‘y ‘| h°¡lÑ3°DÑ8Ð8ØrJ   c                ó(  — ddl m} | j                  d   j                  |«      d   }|j	                   ||«      «      r|j                   ||«      |«      }| j                  d   j                  |||¬«      }t        |«      |z  j                  «       S )Nr   )rØ   )r¼   r½   )	ré   rØ   r   Úleadtermr:   r¹   rÁ   r‰   Úexpand)rN   rW   r¼   r½   r¾   rØ   Ú	directionrŽ   s           r)   rÁ   zAbs._eval_nseries“  s}   € Ý>Ø—I‘I˜a‘L×)Ñ)¨!Ó,¨QÑ/ˆ	Ø�=‰=™˜Q›Ô Ø!Ÿ™¡s¨1£v¨tÓ4ˆIØ�I‰I�a‰L×&Ñ& q¨A°DÐ&Ó9ˆÜ�Y“ Ñ!×)Ñ)Ó+Ð+rJ   c                ó2  — | j                   d   j                  s| j                   d   j                  r=t        | j                   d   |d¬«      t	        t        | j                   d   «      «      z  S t        | j                   d   «      t        t        | j                   d   «      |d¬«      z  t        | j                   d   «      t        t        | j                   d   «      |d¬«      z  z   t        | j                   d   «      z  }|j                  t        «      S rS   )
r   r/   r0   r   r‰   r6   r   r<   r�   Úrewrite)rN   rW   Úrvs      r)   rX   zAbs._eval_derivative›  sã   € Ø�9‰9�Q‰<×(Ò(¨D¯I©I°a©L×,EÒ,EÜ˜dŸi™i¨™l¨A¸Ô=Ü”y §¡¨1¡Ó.Ó/ñ0ð 0ä�—‘˜1‘Ó¤¬B¨t¯y©y¸©|Ó,<¸aØô"ñ Ü §	¡	¨!¡Ó-´
¼2¸d¿i¹iÈ¹lÓ;KØ˜Dô1"ñ "ñ"ä%(¨¯©°1©Ó%6ñ7ˆð �z‰zœ$ÓÐrJ   c                óR   — ddl m} |j                  r| ||«       || «      z
  z  S y )Nr   rÆ   rÈ   rÉ   s       r)   rÊ   zAbs._eval_rewrite_as_Heaviside¤  s0   € õ 	FØ×ÒØ™	 #›©°C°4«Ñ8Ñ9Ð9ð  rJ   c                ó®   — |j                   rt        ||dk\  f| df«      S |j                  r)t        t        |z  t        |z  dk\  ft         |z  df«      S y ri   )r/   r   r0   r   r\   s      r)   rÄ   zAbs._eval_rewrite_as_Piecewise«  s\   € Ø×ÒÜ˜c 3¨!¡8˜_°¨t°T¨lÓ;Ð;Ø×ÒÜœa ™e¤Q s¡U¨a¡ZÐ0´A°2°c±6¸4°.ÓAÐAð rJ   c                ó   — |t        |«      z  S r$   )r‰   r\   s      r)   Ú_eval_rewrite_as_signzAbs._eval_rewrite_as_sign±  s   € Ø”4˜“9‰}ÐrJ   c                ó0   — t        |t        |«      z  «      S r$   )r   r6   r\   s      r)   Ú_eval_rewrite_as_conjugatezAbs._eval_rewrite_as_conjugate´  s   € Ü�Cœ	 #›Ñ&Ó'Ð'rJ   N)r|   rÏ   )rq   rr   rs   rt   ru   r/   r“   rë   rv   rw   rÕ   rx   rI   rÿ   r±   r  rg   r  r  r  r  rc   r·   rÁ   rX   rÊ   rÄ   r  r   ry   rJ   r)   r�   r�   ¾  s™   … ñ7ðr ÓàÐØ ÐØ"ÐØ€JØ€Nó5ð ñ^2ó ð^2ò@ò+ò0ò%ò0ò,ò(ò'ò)òó,ò ò:òBòó(rJ   r�   c                  óJ   — e Zd ZdZdZdZdZdZed„ «       Z	d„ Z
d„ Zd„ Zd	d„Zy)
r?   a©  
    Returns the argument (in radians) of a complex number. The argument is
    evaluated in consistent convention with ``atan2`` where the branch-cut is
    taken along the negative real axis and ``arg(z)`` is in the interval
    $(-\pi,\pi]$. For a positive number, the argument is always 0; the
    argument of a negative number is $\pi$; and the argument of 0
    is undefined and returns ``nan``. So the ``arg`` function will never nest
    greater than 3 levels since at the 4th application, the result must be
    nan; for a real number, nan is returned on the 3rd application.

    Examples
    ========

    >>> from sympy import arg, I, sqrt, Dummy
    >>> from sympy.abc import x
    >>> arg(2.0)
    0
    >>> arg(I)
    pi/2
    >>> arg(sqrt(2) + I*sqrt(2))
    pi/4
    >>> arg(sqrt(3)/2 + I/2)
    pi/6
    >>> arg(4 + 3*I)
    atan(3/4)
    >>> arg(0.8 + 0.6*I)
    0.643501108793284
    >>> arg(arg(arg(arg(x))))
    nan
    >>> real = Dummy(real=True)
    >>> arg(arg(arg(real)))
    nan

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    value : Expr
        Returns arc tangent of arg measured in radians.

    Tc                óÀ  — |}t        d«      D ]B  }t        || «      r|j                  d   }Œ|dk(  r|j                  rt        j
                  c S  n t        j
                  S ddlm}m} t        ||«      rt        |t        «      S t        ||«      ret        |j                  d   «      }|j                  rA|dt        j                  z  z  }|t        j                  kD  r|dt        j                  z  z  }|S |j                  sot        |«      j!                  «       \  }}|j"                  r8t%        |j                  D �cg c]  }t'        |«      dvr|n
t'        |«      ‘Œ c}Ž }t'        |«      |z  }n|}t)        d„ |j+                  t,        «      D «       «      ry ddlm}	 |j3                  «       \  }
} |	||
«      }|j4                  r|S ||k7  r
 | |d¬	«      S y c c}w )
Né   r   r¥   ©rš   Ú	exp_polar)rÃ   r|   c              3  ó8   K  — | ]  }|j                   d u –— Œ y ­wr$   )r”   )r'   rÜ   s     r)   r*   zarg.eval.<locals>.<genexpr>  s   è ø€ ÒP°!ˆq×%Ñ%¨Ô-ÑPùs   ‚©Úatan2FrT   )Úranger5   r   r/   r   r-   ré   rš   r%  Úperiodic_argumentr   r<   r•   ÚPiÚis_Atomr   Úas_coeff_Mulr‘   r   r‰   rï   rñ   r   Ú(sympy.functions.elementary.trigonometricr(  r3   Ú	is_number)r>   r?   rF   rÜ   rš   r%  Úi_rH   Úarg_r(  rW   Úyr  s                r)   rI   zarg.evalí  s�  € àˆÜ�q“ò 	ˆAÜ˜!˜SÔ!Ø—F‘F˜1‘I‘à˜’6˜a×0Ò0ÜŸ5™5’LÙð	ô —5‘5ˆLßIÜ�c˜9Ô%Ü$ S¬"Ó-Ð-Ü˜˜SÔ!Ü�C—H‘H˜Q‘K“ˆBØ×ÒØ�aœŸ™‘f‘�ØœŸ™’9Ø˜!œAŸD™D™&‘L�BØ�	à�{Š{Ü" 3Ó'×4Ñ4Ó6‰GˆAˆtØ�{Š{ÜØ%)§Y¡Yö0Ø !ô $(¨£7°'Ñ#9™QÜ˜“Gñò 0ð 1�ä˜“7˜4‘<‰DàˆDÜÑP°t·z±zÄ,Ó7OÔPÔPØÝBØ× Ñ Ó"‰ˆˆ1Ù�1�a‹[ˆØ�<Š<ØˆIØ�3Š;Ù�t eÔ,Ð,ð ùò0s   Ä?!Gc                ó    — | j                   d   j                  «       \  }}|t        ||d¬«      z  |t        ||d¬«      z  z
  |dz  |dz  z   z  S )Nr   TrT   r¥   )r   r3   r   )rN   r÷   rW   r2  s       r)   rX   zarg._eval_derivative  s`   € Ø�y‰y˜‰|×(Ñ(Ó*‰ˆˆ1Ø”J˜q !¨dÔ3Ñ3°aÜ˜q !¨dÔ3ñ74ñ 4Ø89¸1¹¸qÀ!¹t¹ñEð 	ErJ   c                ó`   — ddl m} | j                  d   j                  «       \  }} |||«      S )Nr   r'  )r.  r(  r   r3   )rN   r?   r]   r(  rW   r2  s         r)   Ú_eval_rewrite_as_atan2zarg._eval_rewrite_as_atan2  s+   € ÝBØ�y‰y˜‰|×(Ñ(Ó*‰ˆˆ1Ù�Q˜‹{ÐrJ   c                óþ   — | j                   d   }t        dd¬«      }|dk(  rd}|j                  |||z  «      }|j                  rt        j
                  S |j                  rt        j                  S t        d| z  «      ‚)Nr   r÷   T)Úpositiver|   zCannot expand %s around 0)	r   r	   r¹   rì   r   r1   rç   r+  r   )rN   rW   r½   r¾   r¿   r÷   rû   s          r)   Ú_eval_as_leading_termzarg._eval_as_leading_term   sl   € Ø�y‰y˜‰|ˆÜ�# Ô%ˆØ�1Š9ØˆDØ�I‰I�a˜˜a™Ó ˆØ�=Š=Ü—6‘6ˆMØ�]Š]Ü—4‘4ˆKäÐ7¸4Ñ@ÓAÐArJ   c                óP   — ddl m} |dk  r |d«      S | j                  |||¬«      S )Nr   )ÚOrderr|   )r½   r¾   )Úsympy.series.orderr:  r8  )rN   rW   r¼   r½   r¾   r:  s         r)   rÁ   zarg._eval_nseries-  s-   € Ý,Ø�Š6Ù˜“8ˆOØ×)Ñ)¨!°$¸TÐ)ÓBÐBrJ   NrÏ   )rq   rr   rs   rt   r/   Úis_realrk   rw   rx   rI   rX   r5  r8  rÁ   ry   rJ   r)   r?   r?   ¸  sI   „ ñ-ð^ ÐØ€GØ€IØ€Nàñ&-ó ð&-òPEò
ò
BôCrJ   r?   c                  óN   — e Zd ZdZdZed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zy)r6   a>  
    Returns the *complex conjugate* [1]_ of an argument.
    In mathematics, the complex conjugate of a complex number
    is given by changing the sign of the imaginary part.

    Thus, the conjugate of the complex number
    :math:`a + ib` (where $a$ and $b$ are real numbers) is :math:`a - ib`

    Examples
    ========

    >>> from sympy import conjugate, I
    >>> conjugate(2)
    2
    >>> conjugate(I)
    -I
    >>> conjugate(3 + 2*I)
    3 - 2*I
    >>> conjugate(5 - I)
    5 + I

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    arg : Expr
        Complex conjugate of arg as real, imaginary or mixed expression.

    See Also
    ========

    sign, Abs

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Complex_conjugation
    Tc                ó,   — |j                  «       }|�|S y r$   )r¢   ©r>   r?   rô   s      r)   rI   zconjugate.evalb  ó   € à×!Ñ!Ó#ˆØˆ?ØˆJð rJ   c                ó   — t         S r$   )r6   rb   s    r)   Úinversezconjugate.inverseh  s   € ÜÐrJ   c                ó6   — t        | j                  d   d¬«      S rS   ©r�   r   rb   s    r)   r    zconjugate._eval_Absk  ó   € Ü�4—9‘9˜Q‘<¨$Ô/Ð/rJ   c                ó2   — t        | j                  d   «      S r[   ©Ú	transposer   rb   s    r)   Ú_eval_adjointzconjugate._eval_adjointn  ó   € Ü˜Ÿ™ 1™Ó&Ð&rJ   c                ó    — | j                   d   S r[   ©r   rb   s    r)   r¢   zconjugate._eval_conjugateq  ó   € Ø�y‰y˜‰|ÐrJ   c                óÆ   — |j                   r$t        t        | j                  d   |d¬«      «      S |j                  r%t        t        | j                  d   |d¬«      «       S y rS   )r<  r6   r   r   r0   rV   s     r)   rX   zconjugate._eval_derivativet  sP   € Ø�9Š9ÜœZ¨¯	©	°!©°aÀ$ÔGÓHÐHØ�^Š^Üœj¨¯©°1©°qÀ4ÔHÓIÐIÐIð rJ   c                ó2   — t        | j                  d   «      S r[   ©Úadjointr   rb   s    r)   Ú_eval_transposezconjugate._eval_transposez  ó   € Ü�t—y‘y ‘|Ó$Ð$rJ   c                ó4   — | j                   d   j                  S r[   r`   rb   s    r)   rc   zconjugate._eval_is_algebraic}  rd   rJ   N)rq   rr   rs   rt   rw   rx   rI   rB  r    rI  r¢   rX   rR  rc   ry   rJ   r)   r6   r6   4  sE   „ ñ*ðV €Nàñó ðò
ò0ò'òòJò%ó)rJ   r6   c                  ó2   — e Zd ZdZed„ «       Zd„ Zd„ Zd„ Zy)rH  aŒ  
    Linear map transposition.

    Examples
    ========

    >>> from sympy import transpose, Matrix, MatrixSymbol
    >>> A = MatrixSymbol('A', 25, 9)
    >>> transpose(A)
    A.T
    >>> B = MatrixSymbol('B', 9, 22)
    >>> transpose(B)
    B.T
    >>> transpose(A*B)
    B.T*A.T
    >>> M = Matrix([[4, 5], [2, 1], [90, 12]])
    >>> M
    Matrix([
    [ 4,  5],
    [ 2,  1],
    [90, 12]])
    >>> transpose(M)
    Matrix([
    [4, 2, 90],
    [5, 1, 12]])

    Parameters
    ==========

    arg : Matrix
         Matrix or matrix expression to take the transpose of.

    Returns
    =======

    value : Matrix
        Transpose of arg.

    c                ó,   — |j                  «       }|�|S y r$   )rR  r?  s      r)   rI   ztranspose.evalª  r@  rJ   c                ó2   — t        | j                  d   «      S r[   ©r6   r   rb   s    r)   rI  ztranspose._eval_adjoint°  rJ  rJ   c                ó2   — t        | j                  d   «      S r[   rP  rb   s    r)   r¢   ztranspose._eval_conjugate³  rS  rJ   c                ó    — | j                   d   S r[   rL  rb   s    r)   rR  ztranspose._eval_transpose¶  rM  rJ   N)	rq   rr   rs   rt   rx   rI   rI  r¢   rR  ry   rJ   r)   rH  rH  �  s+   „ ñ&ðP ñó ðò
'ò%órJ   rH  c                  ó@   — e Zd ZdZed„ «       Zd„ Zd„ Zd„ Zd	d„Z	d„ Z
y)
rQ  aµ  
    Conjugate transpose or Hermite conjugation.

    Examples
    ========

    >>> from sympy import adjoint, MatrixSymbol
    >>> A = MatrixSymbol('A', 10, 5)
    >>> adjoint(A)
    Adjoint(A)

    Parameters
    ==========

    arg : Matrix
        Matrix or matrix expression to take the adjoint of.

    Returns
    =======

    value : Matrix
        Represents the conjugate transpose or Hermite
        conjugation of arg.

    c                óf   — |j                  «       }|�|S |j                  «       }|�t        |«      S y r$   )rI  rR  r6   r?  s      r)   rI   zadjoint.evalÕ  s<   € à×ÑÓ!ˆØˆ?ØˆJØ×!Ñ!Ó#ˆØˆ?Ü˜S“>Ð!ð rJ   c                ó    — | j                   d   S r[   rL  rb   s    r)   rI  zadjoint._eval_adjointÞ  rM  rJ   c                ó2   — t        | j                  d   «      S r[   rG  rb   s    r)   r¢   zadjoint._eval_conjugateá  rJ  rJ   c                ó2   — t        | j                  d   «      S r[   rX  rb   s    r)   rR  zadjoint._eval_transposeä  rJ  rJ   Nc                ób   — |j                  | j                  d   «      }d|z  }|r	d|›d|›d�}|S )Nr   z%s^{\dagger}z\left(z	\right)^{ú})Ú_printr   )rN   Úprinterrš   r   r?   Útexs         r)   Ú_latexzadjoint._latexç  s4   € Ø�n‰n˜TŸY™Y q™\Ó*ˆØ Ñ#ˆÚÚ-0²#Ð6ˆCØˆ
rJ   c                óš   — ddl m}  |j                  | j                  d   g|¢­Ž }|j                  r| |d«      z  }|S | |d«      z  }|S )Nr   )Ú
prettyFormu   â€ ú+)Ú sympy.printing.pretty.stringpictrg  rb  r   Ú_use_unicode)rN   rc  r   rg  Úpforms        r)   Ú_prettyzadjoint._prettyî  sV   € Ý?Ø�—‘˜tŸy™y¨™|Ð3¨dÒ3ˆØ×ÒØ™: lÓ3Ñ3ˆEð ˆð ™: c›?Ñ*ˆEØˆrJ   r$   )rq   rr   rs   rt   rx   rI   rI  r¢   rR  re  rl  ry   rJ   r)   rQ  rQ  º  s4   „ ñð4 ñ"ó ð"òò'ò'óórJ   rQ  c                  ó4   — e Zd ZdZdZdZed„ «       Zd„ Zd„ Z	y)Ú
polar_lifta¢  
    Lift argument to the Riemann surface of the logarithm, using the
    standard branch.

    Examples
    ========

    >>> from sympy import Symbol, polar_lift, I
    >>> p = Symbol('p', polar=True)
    >>> x = Symbol('x')
    >>> polar_lift(4)
    4*exp_polar(0)
    >>> polar_lift(-4)
    4*exp_polar(I*pi)
    >>> polar_lift(-I)
    exp_polar(-I*pi/2)
    >>> polar_lift(I + 2)
    polar_lift(2 + I)

    >>> polar_lift(4*x)
    4*polar_lift(x)
    >>> polar_lift(4*p)
    4*p

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    See Also
    ========

    sympy.functions.elementary.exponential.exp_polar
    periodic_argument
    TFc                ó  — ddl m} |j                  rD ||«      }|dt        dz  t         dz  t        fv r!ddlm}  |t        |z  «      t        |«      z  S |j                  r|j                  }n|g}g }g }g }|D ].  }|j                  r||gz  }Œ|j                  r||gz  }Œ)||gz  }Œ0 t        |«      t        |«      k  rC|rt        ||z   Ž t        t        |Ž «      z  S |rt        ||z   Ž S ddlm} t        |Ž  |d«      z  S y )Nr   ©r?   r¥   ©r%  )Ú$sympy.functions.elementary.complexesr?   r/  r   ré   r%  r   Úabsr‘   r   Úis_polarrì   r;   r   rn  )	r>   r?   ÚargumentÚarr%  r   r@   rB   r7  s	            r)   rI   zpolar_lift.eval%  s  € åHØ�=Š=Ù˜#“ˆBð
 �aœ˜A™¤˜s 1™u¤bÐ)Ñ)ÝLÙ ¤ 2¡“¤s¨3£xÑ/Ð/à�:Š:Ø—8‘8‰Dà�5ˆDØˆØˆØˆØò 	"ˆCØ�|Š|Ø˜S˜EÑ!‘Ø—’Ø˜S˜EÑ!‘à˜S˜EÑ!‘ð	"ô ˆx‹=œ3˜t›9Ò$ÙÜ˜X¨Ñ0Ð2´:¼cÀ8¸nÓ3MÑMÐMÙÜ˜X¨Ñ0Ð2Ð2åLÜ˜H�~¡i°£lÑ2Ð2ð %rJ   c                ó>   — | j                   d   j                  |«      S )z. Careful! any evalf of polar numbers is flaky r   )r   Ú_eval_evalf)rN   Úprecs     r)   rx  zpolar_lift._eval_evalfI  s   € à�y‰y˜‰|×'Ñ'¨Ó-Ð-rJ   c                ó6   — t        | j                  d   d¬«      S rS   rD  rb   s    r)   r    zpolar_lift._eval_AbsM  rE  rJ   N)
rq   rr   rs   rt   rt  r•   rx   rI   rx  r    ry   rJ   r)   rn  rn  ü  s1   „ ñ#ðJ €HØ€Màñ!3ó ð!3òF.ó0rJ   rn  c                  ó6   — e Zd ZdZed„ «       Zed„ «       Zd„ Zy)r*  aÅ  
    Represent the argument on a quotient of the Riemann surface of the
    logarithm. That is, given a period $P$, always return a value in
    $(-P/2, P/2]$, by using $\exp(PI) = 1$.

    Examples
    ========

    >>> from sympy import exp_polar, periodic_argument
    >>> from sympy import I, pi
    >>> periodic_argument(exp_polar(10*I*pi), 2*pi)
    0
    >>> periodic_argument(exp_polar(5*I*pi), 4*pi)
    pi
    >>> from sympy import exp_polar, periodic_argument
    >>> from sympy import I, pi
    >>> periodic_argument(exp_polar(5*I*pi), 2*pi)
    pi
    >>> periodic_argument(exp_polar(5*I*pi), 3*pi)
    -pi
    >>> periodic_argument(exp_polar(5*I*pi), pi)
    0

    Parameters
    ==========

    ar : Expr
        A polar number.

    period : Expr
        The period $P$.

    See Also
    ========

    sympy.functions.elementary.exponential.exp_polar
    polar_lift : Lift argument to the Riemann surface of the logarithm
    principal_branch
    c           	     ó  — ddl m}m} |j                  r|j                  }n|g}d}|D ]Û  }|j
                  s|t        |«      z  }Œt        ||«      r!||j                  j                  «       d   z  }ŒK|j                  rX|j                  j                  «       \  }}||t        |j                  «      z  | |t        |j                  «      «      z  z   z  }Œ¯t        |t        «      r|t        |j                  d   «      z  }ŒÛ y  |S )Nr   )r%  rØ   r|   )ré   r%  rØ   r‘   r   rt  r?   r5   rš   r3   r™   Úunbranched_argumentrè   rs  rn  )	r>   rv  r%  rØ   r   rv   rF   r   r<   s	            r)   Ú_getunbranchedz periodic_argument._getunbranchedz  sí   € çIØ�9Š9Ø—7‘7‰Dà�4ˆDØˆ
Øò 	ˆAØ—:’:Øœc !›fÑ$‘
Ü˜A˜yÔ)Ø˜aŸe™e×0Ñ0Ó2°1Ñ5Ñ5‘
Ø—’ØŸ™×+Ñ+Ó-‘��BØ˜bÔ!4Ø—F‘Fó"ñ Ø ¡¤S¨¯©£[Ó!1Ñ1ñ2ñ 2‘
ä˜AœzÔ*Øœc !§&¡&¨¡)›nÑ,‘
áð	ð ÐrJ   c                óº  — |j                   sy |t        k(  r"t        |t        «      rt	        |j
                  Ž S t        |t        «      r%|dt        z  k\  rt	        |j
                  d   |«      S |j                  rY|j
                  D �cg c]  }|j                  rŒ|‘Œ }}t        |«      t        |j
                  «      k7  rt	        t        |Ž |«      S | j                  |«      }|€y ddlm}m} |j!                  t        ||«      ry |t        k(  r|S |t        k7  r<ddlm}  |||z  t&        j(                  z
  «      |z  }	|	j!                  |«      s||	z
  S y y c c}w )Nr¥   r   )Úatanr(  ©Úceiling)r”   r   r5   Úprincipal_branchr*  r   rn  r   r‘   rì   r;   r   r~  r.  r€  r(  r:   Ú#sympy.functions.elementary.integersr‚  r   r›   )
r>   rv  ÚperiodrW   Únewargsrv   r€  r(  r‚  r¼   s
             r)   rI   zperiodic_argument.eval‘  s+  € ð ×*Ò*ØØ”RŠ<œJ rÔ+;Ô<Ü$ b§g¡gÐ.Ð.Ü�bœ*Ô%¨&°A´b±Dª.Ü$ R§W¡W¨Q¡Z°Ó8Ð8Ø�9Š9Ø"$§'¡'Ö?˜Q°·³’qÐ?ˆGÐ?Ü�7‹|œs 2§7¡7›|Ò+Ü(¬¨g¨¸Ó?Ð?Ø×'Ñ'¨Ó+ˆ
ØÐØßHØ�>‰>Ô+¨U°DÔ9ØØ”RŠ<ØÐØ”RŠ<ÝCÙ˜
 6Ñ)¬A¯F©FÑ2Ó3°FÑ:ˆAØ—5‘5˜”>Ø! A‘~Ð%ð "ð ùò @s   ÂEÂEc                ó2  — | j                   \  }}|t        k(  r*t        j                  |«      }|€| S |j	                  |«      S t        |t        «      j	                  |«      }ddlm} | |||z  t        j                  z
  «      |z  z
  j	                  |«      S )Nr   r�  )	r   r   r*  r~  rx  r„  r‚  r   r›   )rN   ry  rû   r…  rv   Úubr‚  s          r)   rx  zperiodic_argument._eval_evalf¯  s‰   € Ø—I‘I‰	ˆˆ6Ø”RŠ<Ü*×9Ñ9¸!Ó<ˆJØÐ!Ø�Ø×)Ñ)¨$Ó/Ð/Ü˜q¤"Ó%×1Ñ1°$Ó7ˆÝ?Ø‘W˜R ™Y¬¯©Ñ/Ó0°Ñ7Ñ7×DÑDÀTÓJÐJrJ   N)rq   rr   rs   rt   rx   r~  rI   rx  ry   rJ   r)   r*  r*  Q  s6   „ ñ&ðP ñó ðð, ñ&ó ð&ó:	KrJ   r*  c                ó"   — t        | t        «      S )a\  
    Returns periodic argument of arg with period as infinity.

    Examples
    ========

    >>> from sympy import exp_polar, unbranched_argument
    >>> from sympy import I, pi
    >>> unbranched_argument(exp_polar(15*I*pi))
    15*pi
    >>> unbranched_argument(exp_polar(7*I*pi))
    7*pi

    See also
    ========

    periodic_argument
    )r*  r   rp  s    r)   r}  r}  »  s   € ô& ˜S¤"Ó%Ð%rJ   c                  ó.   — e Zd ZdZdZdZed„ «       Zd„ Zy)rƒ  aÎ  
    Represent a polar number reduced to its principal branch on a quotient
    of the Riemann surface of the logarithm.

    Explanation
    ===========

    This is a function of two arguments. The first argument is a polar
    number `z`, and the second one a positive real number or infinity, `p`.
    The result is ``z mod exp_polar(I*p)``.

    Examples
    ========

    >>> from sympy import exp_polar, principal_branch, oo, I, pi
    >>> from sympy.abc import z
    >>> principal_branch(z, oo)
    z
    >>> principal_branch(exp_polar(2*pi*I)*3, 2*pi)
    3*exp_polar(0)
    >>> principal_branch(exp_polar(2*pi*I)*3*z, 2*pi)
    3*principal_branch(z, 2*pi)

    Parameters
    ==========

    x : Expr
        A polar number.

    period : Expr
        Positive real number or infinity.

    See Also
    ========

    sympy.functions.elementary.exponential.exp_polar
    polar_lift : Lift argument to the Riemann surface of the logarithm
    periodic_argument
    TFc                ó¬  — ddl m} t        |t        «      rt	        |j
                  d   |«      S |t        k(  r|S t        |t        «      }t        ||«      }||k7  rº|j                  t        «      s¥|j                  t        «      s�t        |«      }d„ }|j                  t        |«      }t        |t        «      }|j                  t        «      sG||k7  r |t        ||z
  z  «      |z  }n|}|j                  s|j                  |«      s| |d«      z  }|S |j                  s|d}
}	n |j                  |j                  Ž \  }	}
g }|
D ]  }|j                  r|	|z  }	Œ||gz  }Œ t        |«      }
t        |	|«      }|j                  t        «      ry |j                   rnt#        |	«      |k7  s|dk(  r[|
dk7  rV|	dk7  rQ|dk(  rt%        |	«      t	        t'        |
Ž |«      z  S t	         |t        |z  «      t'        |
Ž z  |«      t%        |	«      z  S |j                   r>t%        |«      |dz  k  dk(  s||dz  k(  r!|
dk(  r ||t        z  «      t%        |	«      z  S y y y )Nr   rq  c                ó<   — t        | t        «      st        | «      S | S r$   )r5   r   rn  )Úexprs    r)   Úmrz!principal_branch.eval.<locals>.mr
  s   € Ü! $¬Ô/Ü% dÓ+Ð+Ø�rJ   ry   r|   r¥   T)ré   r%  r5   rn  rƒ  r   r   r*  r:   Úreplacer   rt  ræ   r’   rì   Útupler/  r}  rs  r   )rN   rW   r…  r%  rˆ  ÚbargÚplrŽ  ÚresrH   ÚmÚothersr2  r?   s                 r)   rI   zprincipal_branch.evalý  s)  € åDÜ�aœÔ$Ü# A§F¡F¨1¡I¨vÓ6Ð6Ø”RŠ<ØˆHÜ˜q¤"Ó%ˆÜ   FÓ+ˆØ�Š:˜bŸf™fÔ%6Ô7ØŸ™Ô!2Ô3Ü˜A“ˆBòð —‘œJ¨Ó+ˆBä" 2¤rÓ*ˆBØ—6‘6œ*Ô%Ø˜’:Ù#¤A t¨b¡y¡MÓ2°2Ñ5‘Cà�CØ—|’|¨C¯G©G°IÔ,>Ø™9 Q›<Ñ'�CØ�
à�~Š~Ø�bˆq‰Aà!�1—>‘> 1§>¡>Ð2‰DˆAˆqØˆØò 	ˆAØ�}Š}Ø�Q‘‘à˜1˜#‘‘ð		ô
 �&‹MˆÜ  6Ó*ˆØ�7‰7Ô$Ô%ØØ�=Š=Ô1°!Ó4¸Ò;Ø" ašx¨A°ªG¸¸QºØ�aŠxÜ˜1“vÔ.¬s°A¨w¸Ó?Ñ?Ð?Ü#¡I¬a°©eÓ$4´S¸!°WÑ$<¸fÓEÄcÈ!ÃfÑLÐLØ�=Š=œs 3›x¨&°©(Ñ2°tÒ;¸sÀfÈQÁhºØ˜’GÙ˜S¤™UÓ#¤C¨£FÑ*Ð*ð ð @Oˆ=rJ   c                óò   — | j                   \  }}t        ||«      j                  |«      }t        |«      t        kD  s
|t         k(  r| S ddlm} t        |«       |t        |z  «      z  j                  |«      S )Nr   )rš   )r   r*  rx  rs  r   ré   rš   r   )rN   ry  rû   r…  Úprš   s         r)   rx  zprincipal_branch._eval_evalf1  sb   € Ø—I‘I‰	ˆˆ6Ü˜a Ó(×4Ñ4°TÓ:ˆÜˆq‹6”BŠ;˜!¤˜sš(ØˆKÝ>Ü�A“‘sœ1˜Q™3“x‘×,Ñ,¨TÓ2Ð2rJ   N)	rq   rr   rs   rt   rt  r•   rx   rI   rx  ry   rJ   r)   rƒ  rƒ  Ñ  s,   „ ñ&ðP €HØ€Màñ1+ó ð1+óf3rJ   rƒ  c           
     ó<  — ddl m} | j                  r| S | j                  r|st	        | «      S t        | t        «      r|s|rt	        | «      S | j                  r| S | j                  rB | j                  | j                  D �cg c]  }t        ||d¬«      ‘Œ c}Ž }|rt	        |«      S |S | j                  rS| j                  t        j                  k(  r6| j                  t        j                  t        | j                   |d¬«      «      S | j"                  r3 | j                  | j                  D �cg c]  }t        ||d¬«      ‘Œ c}Ž S t        | |«      rwt        | j$                  ||¬«      }g }| j                  dd  D ]9  }t        |d   d|¬«      }	t        |dd  ||¬«      }
|j'                  |	f|
z   «       Œ;  ||ft)        |«      z   Ž S  | j                  | j                  D �cg c]"  }t        |t*        «      rt        |||¬«      n|‘Œ$ c}Ž S c c}w c c}w c c}w )Nr   )ÚIntegralT)ÚpauseFr|   )Úliftrš  )Úsympy.integrals.integralsr™  rt  r/  rn  r5   r   r,  rí   rº   r   Ú	_polarifyr™   rè   r   ÚExp1rš   r4   Úfunctionr9   r�  r   )Úeqr›  rš  r™  r?   Úrrº   ÚlimitsÚlimitÚvarÚrests              r)   r�  r�  :  sØ  € Ý2Ø	‡{‚{Øˆ	Ø	‡|‚|™EÜ˜"‹~ÐÜ�"”fÔ¡e±Ü˜"‹~ÐØ	�ŠØˆ	Ø	�ŠØˆB�G‰GÀ"Ç'Á'ÖJ¸3”i  T°Ö6ÒJÐKˆÙÜ˜a“=Ð ØˆØ	�Š�r—w‘w¤!§&¡&Ò(Ø�w‰w”q—v‘vœy¨¯©°¸UÔCÓDÐDØ	�ŠØˆr�w‰wÀbÇgÁgÖN¸sœ 3¨°EÖ:ÒNÐOÐOÜ	�B˜Ô	!ä˜Ÿ™ d°%Ô8ˆØˆØ—W‘W˜Q˜R�[ò 	)ˆEÜ˜E !™H¨5¸Ô>ˆCÜ˜U 1 2˜Y¨T¸Ô?ˆDØ�M‰M˜3˜& 4™-Õ(ð	)ñ ˜4˜'¤E¨&£MÑ1Ð3Ð3àˆr�w‰wØFHÇgÁgöOØ?BœJ s¬DÔ1ô # 3¨°EÕ:Ø7:ñ;ò Oð Pð 	Pùò% Kùò OùòOs   ÂHÄ.HÇ$'Hc                ó  — |rd}t        t        | «      |«      } |s| S | j                  D �ci c]  }|t        |j                  d¬«      “Œ }}| j                  |«      } | |j                  «       D ��ci c]  \  }}||“Œ
 c}}fS c c}w c c}}w )aÓ  
    Turn all numbers in eq into their polar equivalents (under the standard
    choice of argument).

    Note that no attempt is made to guess a formal convention of adding
    polar numbers, expressions like $1 + x$ will generally not be altered.

    Note also that this function does not promote ``exp(x)`` to ``exp_polar(x)``.

    If ``subs`` is ``True``, all symbols which are not already polar will be
    substituted for polar dummies; in this case the function behaves much
    like :func:`~.posify`.

    If ``lift`` is ``True``, both addition statements and non-polar symbols are
    changed to their ``polar_lift()``ed versions.
    Note that ``lift=True`` implies ``subs=False``.

    Examples
    ========

    >>> from sympy import polarify, sin, I
    >>> from sympy.abc import x, y
    >>> expr = (-x)**y
    >>> expr.expand()
    (-x)**y
    >>> polarify(expr)
    ((_x*exp_polar(I*pi))**_y, {_x: x, _y: y})
    >>> polarify(expr)[0].expand()
    _x**_y*exp_polar(_y*I*pi)
    >>> polarify(x, lift=True)
    polar_lift(x)
    >>> polarify(x*(1+y), lift=True)
    polar_lift(x)*polar_lift(y + 1)

    Adds are treated carefully:

    >>> polarify(1 + sin((1 + I)*x))
    (sin(_x*polar_lift(1 + I)) + 1, {_x: x})
    FT)Úpolar)r�  r   ræ   r	   Únamer¹   Úitems)r   r¹   r›  rŽ   Úrepsr¡  s         r)   Úpolarifyr«  [  s†   € ñP ØˆÜ	”7˜2“; Ó	%€BÙØˆ	Ø24·/±/ÖB¨QˆAŒu�Q—V‘V 4Ô(Ñ(ÐB€DÐBØ	�‰�‹€BØ §¡£×.™˜˜A��1‘Ó.Ð.Ð.ùò Cùã.s   ¬BÁ2B	c           
     óX  — t        | t        «      r| j                  r| S |�s&ddlm}m} t        | |«      r |t        | j                  |«      «      S t        | t        «      r2| j                  d   dt        z  k(  rt        | j                  d   |«      S | j                  sN| j                  sB| j                  s6| j                  r[| j                  dv rd| j                  v s| j                  dvr1 | j                  | j                  D �cg c]  }t        ||«      ‘Œ c}Ž S t        | t         «      rt        | j                  d   |«      S | j"                  rBt        | j                  |«      }t        | j$                  ||j&                  xr |  «      }||z  S | j(                  rIt+        | j                  dd«      r2 | j                  | j                  D �cg c]  }t        |||«      ‘Œ c}Ž S  | j                  | j                  D �cg c]  }t        ||d«      ‘Œ c}Ž S c c}w c c}w c c}w )	Nr   r$  r|   r¥   )z==z!=rv   FT)r5   r
   r,  ré   rš   r%  Ú_unpolarifyrƒ  r   r   rí   r‘   Ú
is_BooleanÚis_RelationalÚrel_oprº   rn  r™   rè   r´   r4   Úgetattr)r   Úexponents_onlyrš  rš   r%  rW   Úexporè   s           r)   r­  r­  �  sÀ  € Ü�bœ%Ô  B§J¢JØˆ	âßIÜ�b˜)Ô$Ù”{ 2§6¡6¨>Ó:Ó;Ð;Ü�bÔ*Ô+°·±¸±
¸aÄ¹dÒ0BÜ˜rŸw™w q™z¨>Ó:Ð:à�IŠI˜Ÿš b§m¢mØ×ÒØ—	‘	˜\Ñ)¨a°2·7±7©lØ—	‘	 Ñ-à�2—7‘7ÀRÇWÁWÖMÀœ[¨¨NÕ;ÒMÐNÐNÜ�bœ*Ô%Ü˜rŸw™w q™z¨>Ó:Ð:à	‡y‚yÜ˜2Ÿ6™6 >Ó2ˆÜ˜2Ÿ7™7 NØ—‘Ò.¨ YÐ/ó1ˆà�T‰zÐà	‡~‚~œ' "§'¡'¨<¸Ô?Øˆr�w‰wØ—W‘WöØô % Q¨¸ÕGò ð ð 	ð ˆ2�7‰7À2Ç7Á7ÖK¸a”[  N°DÕ9ÒKÐLÐLùò Nùòùò Ls   ÄHÇH"ÈH'Nc                ó6  — t        | t        «      r| S t        | «      } |�t        | j	                  |«      «      S d}d}|rd}|r-d}t        | ||«      }|| k7  rd}|} t        |t        «      r|S |rŒ-ddlm} j	                   |d«      dt        d«      di«      S )a  
    If `p` denotes the projection from the Riemann surface of the logarithm to
    the complex line, return a simplified version `eq'` of `eq` such that
    `p(eq') = p(eq)`.
    Also apply the substitution subs in the end. (This is a convenience, since
    ``unpolarify``, in a certain sense, undoes :func:`polarify`.)

    Examples
    ========

    >>> from sympy import unpolarify, polar_lift, sin, I
    >>> unpolarify(polar_lift(I + 2))
    2 + I
    >>> unpolarify(sin(polar_lift(I + 7)))
    sin(7 + I)
    TFr   rq  r|   )	r5   Úboolr   Ú
unpolarifyr¹   r­  ré   r%  rn  )r   r¹   r²  Úchangedrš  r“  r%  s          r)   r¶  r¶  ®  s¨   € ô" �"”dÔØˆ	ä	�‹€BØÐÜ˜"Ÿ'™' $›-Ó(Ð(Ø€GØ€EÙØˆÙ
ØˆÜ˜"˜n¨eÓ4ˆØ�"Š9ØˆGØˆBÜ�cœ4Ô ØˆJò õ AØ�8‰8‘Y˜q“\ 1¤j°£m°QÐ7Ó8Ð8rJ   )F)TF)NF)4Ú
__future__r   Ú
sympy.corer   r   r   r   r   r	   r
   Úsympy.core.exprr   Úsympy.core.exprtoolsr   Úsympy.core.functionr   r   r   r   r   r   Úsympy.core.logicr   r   Úsympy.core.numbersr   r   r   Úsympy.core.powerr   Úsympy.core.relationalr   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   r   r<   r‰   r�   r?   r6   rH  rQ  rn  r*  r}  rƒ  r�  r«  r­  r¶  ry   rJ   r)   ú<module>rÃ     sù   ðÝ "ç A× AÑ AÝ  Ý -÷)÷ )ç 0ß (Ñ (Ý  Ý $Ý 9Ý :ôwˆô wôtuˆô uôvr5ˆ?ô r5ôjw(ˆ/ô w(ôtyCˆ/ô yCôxJ)�ô J)ôZ6�ô 6ôr;ˆoô ;ôDR0�ô R0ôjgK˜ô gKòT&ô,f3�ô f3óRPóB//ódMôB&9rJ   