§
    OŠtj-  ã                   ó²   — d dl mZ d dlmZ d dlmZ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 dd	lmZ dd
lmZ  G d„ d¦  «        Z G d„ d¦  «        ZdS )é    )Úoo)Úsymbols)ÚFiniteFieldÚQQÚRationalFieldÚFF)ÚPoly)Úsolve)Úis_sequence)Úas_inté   )Údivisors)Úpolynomial_congruencec                   óÊ   — e Zd ZdZdd„Zdd„Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚEllipticCurvea_  
    Create the following Elliptic Curve over domain.

    `y^{2} + a_{1} x y + a_{3} y = x^{3} + a_{2} x^{2} + a_{4} x + a_{6}`

    The default domain is ``QQ``. If no coefficient ``a1``, ``a2``, ``a3``,
    is given then it creates a curve with the following form:

    `y^{2} = x^{3} + a_{4} x + a_{6}`

    Examples
    ========

    References
    ==========

    .. [1] J. Silverman "A Friendly Introduction to Number Theory" Third Edition
    .. [2] https://mathworld.wolfram.com/EllipticDiscriminant.html
    .. [3] G. Hardy, E. Wright "An Introduction to the Theory of Numbers" Sixth Edition

    r   c                 ó   — |dk    rt           }nt          |¦  «        }t          |j        |||||f¦  «        \  }}}}}|| _        || _        |dz  d|z  z   }d|z  ||z  z   }	|dz  d|z  z   }
|dz  |z  d|z  |z  z   ||z  |z  z
  ||dz  z  z   |dz  z
  }||	|
|f\  | _        | _        | _        | _	        |dz   |z  d|	dz  z  z
  d|
dz  z  z
  d|z  |	z  |
z  z   | _
        || _        || _        || _        || _        || _        t!          d¦  «        \  }}}|||c| _        | _        | _        t)          |dz  |z  ||z  |z  |z  z   ||z  |dz  z  z   |dz  z
  ||dz  z  |z  z
  ||z  |dz  z  z
  ||dz  z  z
  |¬	¦  «        | _        t-          | j        t.          ¦  «        r	d| _        d S t-          | j        t2          ¦  «        r	d | _        d S d S )
Nr   é   é   é   é   é   é	   zx y z)Údomain)r   r   ÚmapÚconvertÚ_domainÚmodulusÚ_b2Ú_b4Ú_b6Ú_b8Ú_discrimÚ_a1Ú_a2Ú_a3Ú_a4Ú_a6r   ÚxÚyÚzr	   Ú_polyÚ
isinstancer   Ú_rankr   )ÚselfÚa4Úa6Úa1Úa2Úa3r   r   Úb2Úb4Úb6Úb8r(   r)   r*   s                  úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/ntheory/elliptic_curve.pyÚ__init__zEllipticCurve.__init__#   s2  € Ø�aŠ<ˆ<ÝˆFˆFå˜‘[”[ˆFÝ  ¤°"°b¸"¸bÀ"Ð1EÑFÔFÑˆˆB��B˜ØˆŒØˆŒà�‰U�Q˜‘V‰^ˆØ�‰V�b˜2‘gÑˆØ�‰U�Q˜‘V‰^ˆØ�‰U�R‰Z˜!˜b™& 2™+Ñ%¨¨R©°"©Ñ4°r¸BÀ¹E±zÑAÀBÈÁEÑIˆØ13°R¸¸R°Ñ.ˆŒ�$”(˜DœH d¤hØ˜Q™˜ ™ a¨"¨a©%¡iÑ/°"°r¸1±u±*Ñ<¸qÀ2¹vÈ¹{ÈRÑ?OÑOˆŒØˆŒØˆŒØˆŒØˆŒØˆŒÝ˜'Ñ"Ô"‰ˆˆ1ˆaØ!" A qÐˆŒ�”˜œÝ˜!˜Q™$˜q™& 2 a¡4¨¡6¨!¡8Ñ+¨b°©d°1°a±4©iÑ7¸!¸Q¹$Ñ>ÀÀAÀqÁDÁÈÁÑJÈRÐPQÉTÐRSÐUVÑRVÉYÑVÐY[Ð\]Ð_`Ñ\`ÑY`Ñ`ÐioÐpÑpÔpˆŒ
Ý�d”l¥KÑ0Ô0ð 	ØˆDŒJˆJˆJÝ˜œ¥mÑ4Ô4ð 	ØˆDŒJˆJˆJð	ð 	ó    r   c                 ó&   — t          |||| ¦  «        S ©N©ÚEllipticCurvePoint)r.   r(   r)   r*   s       r8   Ú__call__zEllipticCurve.__call__?   s   € Ý! ! Q¨¨4Ñ0Ô0Ð0r:   c                 óx  — t          |¦  «        r,t          |¦  «        dk    rd}n|d         }|d d…         \  }}n:t          |t          ¦  «        r|j        |j        |j        }}}nt          d¦  «        ‚| j        dk    r|dk    rdS | j	         
                    | j        || j        || j        |i¦  «        dk    S )Nr   r   zInvalid point.r   T)r   Úlenr,   r>   r(   r)   r*   Ú
ValueErrorÚcharacteristicr+   Úsubs)r.   ÚpointÚz1Úx1Úy1s        r8   Ú__contains__zEllipticCurve.__contains__B   sÂ   € Ý�uÑÔð 		/Ý�5‰zŒz˜QŠˆØ��à˜1”X�Ø˜2˜A˜2”Y‰FˆB��Ý˜Õ1Ñ2Ô2ð 	/Øœ %¤'¨5¬7�B�ˆBˆBåÐ-Ñ.Ô.Ð.ØÔ !Ò#Ð#¨¨aª¨Ø�4ØŒz�Š ¤¨¨D¬F°B¸¼ÀÐCÑDÔDÈÒIÐIr:   c                 ó4   — | j                              ¦   «         S r<   )r+   Ú__repr__©r.   s    r8   rK   zEllipticCurve.__repr__Q   s   € ØŒz×"Ò"Ñ$Ô$Ð$r:   c                 óB  — | j         }|dk    r| S |dk    r0t          | j        dz  | j        dz  | j        dz  | j        ¬¦  «        S | j        dz  d| j        z  z
  }| j        dz   d| j        z  | j        z  z   d| j        z  z
  }t          d|z  d	|z  | j        ¬
¦  «        S )a<  
        Return minimal Weierstrass equation.

        Examples
        ========

        >>> from sympy.ntheory.elliptic_curve import EllipticCurve

        >>> e1 = EllipticCurve(-10, -20, 0, -1, 1)
        >>> e1.minimal()
        Poly(-x**3 + 13392*x*z**2 + y**2*z + 1080432*z**3, x, y, z, domain='QQ')

        r   r   r   )r2   r   é   é$   éØ   iåÿÿÿiÊÿÿÿ)r   )rC   r   r   r    r   r   )r.   ÚcharÚc4Úc6s       r8   ÚminimalzEllipticCurve.minimalT   s¯   € ð Ô"ˆØ�1Š9ˆ9ØˆKØ�1Š9ˆ9Ý  ¤¨!¡¨T¬X°a©Z¸D¼HÀQ¹JÐPTÔP\Ð]Ñ]Ô]Ð]ØŒX�q‰[˜2˜dœh™;Ñ&ˆØŒh˜‰kˆ\˜B˜tœx™K¨¬Ñ0Ñ0°3°t´x±<Ñ?ˆÝ˜S ™V S¨¡V°T´\ÐBÑBÔBÐBr:   c                 ó<  ‡— | j         }t          ¦   «         }|dk    rrt          |¦  «        D ]`Š| j                             | j        ‰| j        di¦  «        j        }t          ||¦  «        }| 	                    ˆfd„|D ¦   «         ¦  «         Œa|S t          d¦  «        ‚)a5  
        Return points of curve over Finite Field.

        Examples
        ========

        >>> from sympy.ntheory.elliptic_curve import EllipticCurve
        >>> e2 = EllipticCurve(1, 1, 1, 1, 1, modulus=5)
        >>> e2.points()
        {(0, 2), (1, 4), (2, 0), (2, 2), (3, 0), (3, 1), (4, 0)}

        r   c              3   ó    •K  — | ]}‰|fV — Œ	d S r<   © )Ú.0ÚnumÚis     €r8   ú	<genexpr>z'EllipticCurve.points.<locals>.<genexpr>   s'   øè è € Ð6Ð6¨3˜q #˜hÐ6Ð6Ð6Ð6Ð6Ð6r:   zInfinitely many points)rC   ÚsetÚranger+   rD   r(   r*   Úexprr   ÚupdaterB   )r.   rQ   Úall_ptÚcongruence_eqÚsolrZ   s        @r8   ÚpointszEllipticCurve.pointsk   s¤   ø€ ð Ô"ˆÝ‘”ˆØ�1Š9ˆ9Ý˜4‘[”[ð 7ð 7�Ø $¤
§¢°´¸¸D¼FÀAÐ0FÑ GÔ GÔ L�Ý+¨M¸4Ñ@Ô@�Ø—’Ð6Ð6Ð6Ð6°#Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6ØˆMåÐ5Ñ6Ô6Ð6r:   c                 ór  — g }| j         t          k    rHt          | j                             | j        |¦  «        ¦  «        D ]}|                     ||f¦  «         Œn\| j                             | j        || j        di¦  «        j        }t          || j
        ¦  «        D ]}|                     ||f¦  «         Œ|S )z7Returns points on the curve for the given x-coordinate.r   )r   r   r
   r+   rD   r(   Úappendr*   r^   r   rC   )r.   r(   Úptr)   ra   s        r8   Úpoints_xzEllipticCurve.points_x„   sº   € àˆØŒ<�2ÒÐÝ˜4œ:Ÿ?š?¨4¬6°1Ñ5Ô5Ñ6Ô6ð "ð "�Ø—	’	˜1˜a˜&Ñ!Ô!Ð!Ð!ð"ð !œJŸOšO¨T¬V°Q¸¼ÀÐ,BÑCÔCÔHˆMÝ*¨=¸$Ô:MÑNÔNð "ð "�Ø—	’	˜1˜a˜&Ñ!Ô!Ð!Ð!Øˆ	r:   c           	      ó–  — | j         dk    rt          d¦  «        ‚t                               | ¦  «        g}t	          | j                             | j        d| j        di¦  «        ¦  «        D ](}|j	        r| 
                     | |d¦  «        ¦  «         Œ)t          | j        d¬¦  «        D ]ž}t          |dz  ¦  «        }|dz  |k    r�t	          | j                             | j        || j        di¦  «        ¦  «        D ]K}|j	        sŒ
 | ||¦  «        }|                     ¦   «         t          k    r|                     || g¦  «         ŒLŒŸ|S )al  
        Return torsion points of curve over Rational number.

        Return point objects those are finite order.
        According to Nagell-Lutz theorem, torsion point p(x, y)
        x and y are integers, either y = 0 or y**2 is divisor
        of discriminent. According to Mazur's theorem, there are
        at most 15 points in torsion collection.

        Examples
        ========

        >>> from sympy.ntheory.elliptic_curve import EllipticCurve
        >>> e2 = EllipticCurve(-43, 166)
        >>> sorted(e2.torsion_points())
        [(-5, -16), (-5, 16), O, (3, -8), (3, 8), (11, -32), (11, 32)]

        r   z"No torsion point for Finite Field.r   T)Ú	generatorg      à?r   )rC   rB   r>   Úpoint_at_infinityr
   r+   rD   r)   r*   Úis_rationalre   r   ÚdiscriminantÚintÚorderr   Úextend)r.   ÚlÚxxrZ   ÚjÚps         r8   Útorsion_pointszEllipticCurve.torsion_points�   sI  € ð& Ô Ò"Ð"ÝÐAÑBÔBÐBÝ×1Ò1°$Ñ7Ô7Ð8ˆÝ˜œ
Ÿš¨¬°°D´F¸AÐ(>Ñ?Ô?Ñ@Ô@ð 	&ð 	&ˆBØŒ~ð &Ø—’˜˜˜b !™œÑ%Ô%Ð%øÝ˜$Ô+°tÐ<Ñ<Ô<ð 	*ð 	*ˆAÝ�A�r‘E‘
”
ˆAØ�!‰t�qŠyˆyÝ ¤
§¢°´¸¸D¼FÀAÐ0FÑ GÔ GÑHÔHð *ð *�BØœ>ð !Ø Ø˜˜R ™œ�AØ—w’w‘y”y¥B’�ØŸš ! a R Ñ)Ô)Ð)øøØˆr:   c                 ó4   — | j                              ¦   «         S )zè
        Return domain characteristic.

        Examples
        ========

        >>> from sympy.ntheory.elliptic_curve import EllipticCurve
        >>> e2 = EllipticCurve(-43, 166)
        >>> e2.characteristic
        0

        )r   rC   rL   s    r8   rC   zEllipticCurve.characteristic´   s   € ð Œ|×*Ò*Ñ,Ô,Ð,r:   c                 ó*   — t          | j        ¦  «        S )zæ
        Return curve discriminant.

        Examples
        ========

        >>> from sympy.ntheory.elliptic_curve import EllipticCurve
        >>> e2 = EllipticCurve(0, 17)
        >>> e2.discriminant
        -124848

        )rm   r"   rL   s    r8   rl   zEllipticCurve.discriminantÄ   s   € õ �4”=Ñ!Ô!Ð!r:   c                 ó   — | j         dk    S )zE
        Return True if curve discriminant is equal to zero.
        r   )rl   rL   s    r8   Úis_singularzEllipticCurve.is_singularÔ   s   € ð
 Ô  AÒ%Ð%r:   c                 óv   — | j         dz  d| j        z  z
  }| j                             |dz  | j        z  ¦  «        S )zñ
        Return curve j-invariant.

        Examples
        ========

        >>> from sympy.ntheory.elliptic_curve import EllipticCurve
        >>> e1 = EllipticCurve(-2, 0, 0, 1, 1)
        >>> e1.j_invariant
        1404928/389

        r   rN   r   )r   r   r   Úto_sympyr"   )r.   rR   s     r8   Új_invariantzEllipticCurve.j_invariantÛ   s;   € ð ŒX�q‰[˜2˜dœh™;Ñ&ˆØŒ|×$Ò$ R¨¡U¨T¬]Ñ%:Ñ;Ô;Ð;r:   c                 óx   — | j         dk    rt          d¦  «        ‚t          |                      ¦   «         ¦  «        S )zì
        Number of points in Finite field.

        Examples
        ========

        >>> from sympy.ntheory.elliptic_curve import EllipticCurve
        >>> e2 = EllipticCurve(1, 0, modulus=19)
        >>> e2.order
        19

        r   úStill not implemented)rC   ÚNotImplementedErrorrA   rc   rL   s    r8   rn   zEllipticCurve.orderì   s7   € ð Ô !Ò#Ð#Ý%Ð&=Ñ>Ô>Ð>Ý�4—;’;‘=”=Ñ!Ô!Ð!r:   c                 ó<   — | j         �| j         S t          d¦  «        ‚)zj
        Number of independent points of infinite order.

        For Finite field, it must be 0.
        Nr}   )r-   r~   rL   s    r8   ÚrankzEllipticCurve.rankþ   s#   € ð Œ:Ð!Ø”:ÐÝ!Ð"9Ñ:Ô:Ð:r:   N)r   r   r   r   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   r?   rI   rK   rT   rc   rg   rt   ÚpropertyrC   rl   rx   r{   rn   r€   rW   r:   r8   r   r      sI  € € € € € ðð ð,ð ð ð ð81ð 1ð 1ð 1ðJð Jð Jð%ð %ð %ðCð Cð Cð.7ð 7ð 7ð2
ð 
ð 
ð"ð "ð "ðH ð-ð -ñ „Xð-ð ð"ð "ñ „Xð"ð ð&ð &ñ „Xð&ð ð<ð <ñ „Xð<ð  ð"ð "ñ „Xð"ð" ð;ð ;ñ „Xð;ð ;ð ;r:   r   c                   ó^   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ ZdS )r>   a  
    Point of Elliptic Curve

    Examples
    ========

    >>> from sympy.ntheory.elliptic_curve import EllipticCurve
    >>> e1 = EllipticCurve(-17, 16)
    >>> p1 = e1(0, -4, 1)
    >>> p2 = e1(1, 0)
    >>> p1 + p2
    (15, -56)
    >>> e3 = EllipticCurve(-1, 9)
    >>> e3(1, -3) * 3
    (664/169, 17811/2197)
    >>> (e3(1, -3) * 3).order()
    oo
    >>> e2 = EllipticCurve(-2, 0, 0, 1, 1)
    >>> p = e2(-1,1)
    >>> q = e2(0, -1)
    >>> p+q
    (4, 8)
    >>> p-q
    (1, 0)
    >>> 3*p-5*q
    (328/361, -2800/6859)
    c                 ó&   — t          ddd| ¦  «        S ©Nr   r   r=   )Úcurves    r8   rj   z$EllipticCurvePoint.point_at_infinity'  s   € å! ! Q¨¨5Ñ1Ô1Ð1r:   c                 ó   — |j         j        } ||¦  «        | _         ||¦  «        | _         ||¦  «        | _        || _        | j        j         | _         | j                             | ¦  «        st          d¦  «        ‚d S )Nz%The curve does not contain this point)r   r   r(   r)   r*   Ú_curverI   rB   )r.   r(   r)   r*   r‰   Údoms         r8   r9   zEllipticCurvePoint.__init__+  s€   € ØŒmÔ#ˆØ��Q‘”ˆŒØ��Q‘”ˆŒØ��Q‘”ˆŒØˆŒØ”{Ô*ˆŒØŒ{×'Ò'¨Ñ-Ô-ð 	FÝÐDÑEÔEÐEð	Fð 	Fr:   c                 óÆ  — | j         dk    r|S |j         dk    r| S | j        | j         z  | j        | j         z  }}|j        |j         z  |j        |j         z  }}| j        j        }| j        j        }| j        j        }| j        j        }	| j        j        }
||k    r||z
  ||z
  z  }||z  ||z  z
  ||z
  z  }ns||z   dk    r|  	                    | j        ¦  «        S d|dz  z  d|z  |z  z   |	z   ||z  z
  ||z  |z   d|z  z   z  }|dz   |	|z  z   d|
z  z   ||z  z
  ||z  |z   d|z  z   z  }|dz  ||z  z   |z
  |z
  |z
  }||z    |z  |z
  |z
  }|                      ||d¦  «        S )Nr   r   r   r   )
r*   r(   r)   r‹   r#   r$   r%   r&   r'   rj   )r.   rs   rG   rH   Úx2Úy2r1   r2   r3   r/   r0   ÚslopeÚyintÚx3Úy3s                  r8   Ú__add__zEllipticCurvePoint.__add__5  s¦  € ØŒ6�QŠ;ˆ;ØˆHØŒ3�!Š8ˆ8ØˆKØ”˜œ‘ ¤ t¤v¡ˆBˆØ”�Q”S‘˜!œ#˜aœc™'ˆBˆØŒ[Œ_ˆØŒ[Œ_ˆØŒ[Œ_ˆØŒ[Œ_ˆØŒ[Œ_ˆØ�Š8ˆ8Ø˜"‘W  b¡Ñ)ˆEØ˜‘G˜b 2™gÑ%¨"¨r©'Ñ2ˆDˆDà�R‘˜AŠ~ˆ~Ø×-Ò-¨d¬kÑ:Ô:Ð:Ø˜˜Q™‘Y  2¡ b¡Ñ(¨2Ñ-°°2±Ñ5¸"¸r¹'ÀB¹,ÈÈRÉÑ:OÑPˆEØ˜‘U�F˜R ™U‘N Q r¡TÑ)¨B¨r©EÑ1°b¸±e¸b±jÀ1ÀRÁ4Ñ6GÑHˆDØ�A‰X˜˜5™Ñ  2Ñ%¨Ñ*¨RÑ/ˆØ�r‰zˆ]˜RÑ $Ñ&¨Ñ+ˆØ�{Š{˜2˜r 1Ñ%Ô%Ð%r:   c                 óV   — | j         | j        | j        f|j         |j        |j        fk     S r<   )r(   r)   r*   ©r.   Úothers     r8   Ú__lt__zEllipticCurvePoint.__lt__M  s'   € Ø”˜œ ¤Ð'¨5¬7°E´G¸U¼WÐ*EÒEÐEr:   c                 ó¶   — t          |¦  «        }|                      | j        ¦  «        }|dk    r|S |dk     r|  | z  S | }|r|dz  r||z   }|dz  }||z   }|°|S rˆ   )r   rj   r‹   )r.   ÚnÚrrs   s       r8   Ú__mul__zEllipticCurvePoint.__mul__P  sŒ   € Ý�1‰IŒIˆØ×"Ò" 4¤;Ñ/Ô/ˆØ�Š6ˆ6ØˆHØˆqŠ5ˆ5Ø�5˜A˜2‘:ÐØˆØð 	Ø�1‰uð Ø˜‘E�Ø�!‰GˆAØ�A‘ˆAð	 ð 	ð
 ˆr:   c                 ó   — | |z  S r<   rW   )r.   rš   s     r8   Ú__rmul__zEllipticCurvePoint.__rmul___  s   € Ø�a‰xˆr:   c                 ó”   — t          | j        | j         | j        j        | j        z  z
  | j        j        z
  | j        | j        ¦  «        S r<   )r>   r(   r)   r‹   r#   r%   r*   rL   s    r8   Ú__neg__zEllipticCurvePoint.__neg__b  s=   € Ý! $¤&¨4¬6¨'°D´K´OÀDÄFÑ4JÑ*JÈTÌ[Ì_Ñ*\Ð^bÔ^dÐfjÔfqÑrÔrÐrr:   c                 ó"  — | j         dk    rdS | j        j        }	 d                     |                     | j        ¦  «        |                     | j        ¦  «        ¦  «        S # t          $ r Y nw xY wd                     | j        | j        ¦  «        S )Nr   ÚOz({}, {}))r*   r‹   r   Úformatrz   r(   r)   Ú	TypeError)r.   rŒ   s     r8   rK   zEllipticCurvePoint.__repr__e  s�   € ØŒ6�QŠ;ˆ;Ø�3ØŒkÔ!ˆð	Ø×$Ò$ S§\¢\°$´&Ñ%9Ô%9¸3¿<º<ÈÌÑ;OÔ;OÑPÔPÐPøÝð 	ð 	ð 	ØˆDð	øøøà× Ò  ¤¨¬Ñ0Ô0Ð0s   ›AA! Á!
A.Á-A.c                 ó.   — |                       | ¦  «        S r<   )r”   r–   s     r8   Ú__sub__zEllipticCurvePoint.__sub__o  s   € Ø�|Š|˜U˜FÑ#Ô#Ð#r:   c                 ó¬  — | j         dk    rdS | j        dk    rdS | dz  }|j        | j         k    rdS d}| j        t          k    r’t	          |j        ¦  «        |j        k    rnt	          |j        ¦  «        |j        k    rQ| |z   }|dz  }|j         dk    r|S t	          |j        ¦  «        |j        k    rt	          |j        ¦  «        |j        k    °Qt          S |j        j        |j        k    rc|j        j        |j        k    rN| |z   }|dz  }|dk    rt          S |j         dk    r|S |j        j        |j        k    r|j        j        |j        k    °Nt          S )z5
        Return point order n where nP = 0.

        r   r   r   r   é   )r*   r)   r   r   rm   r(   r   Ú	numerator)r.   rs   rZ   s      r8   rn   zEllipticCurvePoint.orderr  sC  € ð
 Œ6�QŠ;ˆ;Ø�1ØŒ6�QŠ;ˆ;Ø�1Ø�1‰HˆØŒ3�4”6�'Š>ˆ>Ø�1ØˆØŒ<�2ÒÐÝ�a”c‘(”(˜aœc’/�/¥c¨!¬#¡h¤h°!´#¢o oØ˜1‘H�Ø�Q‘�Ø”3˜!’8�8Ø�Hõ	 �a”c‘(”(˜aœc’/�/¥c¨!¬#¡h¤h°!´#¢o oõ
 ˆIØŒcŒm˜qœsÒ"Ð" q¤s¤}¸¼Ò';Ð';Ø�q‘ˆAØ�‰FˆAØ�2ŠvˆvÝ�	ØŒs�aŠxˆxØ�ð ŒcŒm˜qœsÒ"Ð" q¤s¤}¸¼Ò';Ð';õ ˆ	r:   N)r�   r‚   rƒ   r„   Ústaticmethodrj   r9   r”   r˜   rœ   rž   r    rK   r¦   rn   rW   r:   r8   r>   r>   
  sÉ   € € € € € ðð ð8 ð2ð 2ñ „\ð2ðFð Fð Fð&ð &ð &ð0Fð Fð Fðð ð ðð ð ðsð sð sð1ð 1ð 1ð$ð $ð $ðð ð ð ð r:   r>   N)Úsympy.core.numbersr   Úsympy.core.symbolr   Úsympy.polys.domainsr   r   r   r   Úsympy.polys.polytoolsr	   Úsympy.solvers.solversr
   Úsympy.utilities.iterablesr   Úsympy.utilities.miscr   Úfactor_r   Úresidue_ntheoryr   r   r>   rW   r:   r8   ú<module>r´      s&  ðØ !Ð !Ð !Ð !Ð !Ð !Ø %Ð %Ð %Ð %Ð %Ð %Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ &Ð &Ð &Ð &Ð &Ð &Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð{;ð {;ð {;ð {;ð {;ñ {;ô {;ð {;ð|Cð Cð Cð Cð Cñ Cô Cð Cð Cð Cr:   