Ë
    7^(hG©  ã                   óv  — d dl mZ d dl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 d dlmZ d d	lmZ d d
lmZ d dl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#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJmKZKmLZLmMZM d dlNmOZO  edd¬«      \  ZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_ edd¬«      \  Z`ZaZbZcZdZeZf edd¬«      \  ZgZhZi edd¬«      Zjd„ Zkd„ Zld„ Zmd„ Znd„ Zod„ Zpd„ Zqd„ Zrd„ Zsd „ Ztd!„ Zud"„ Zvd#„ ZweKd$„ «       Zxd%„ Zyd&„ Zzd'„ Z{d(„ Z|d)„ Z}d*„ Z~d+„ Zd,„ Z€d-„ Z�d.„ Z‚d/„ Zƒd0„ Z„d1„ Z…d2„ Z†d3„ Z‡d4„ Zˆd5„ Z‰d6„ ZŠd7„ Z‹d8„ ZŒd9„ Z�d:„ ZŽd;„ Z�d<„ Z�d=„ Z‘d>„ Z’d?„ Z“d@„ Z”eMdA„ «       Z•dB„ Z–dC„ Z—dD„ Z˜dE„ Z™dF„ ZšdG„ Z›eMdH„ «       ZœdI„ Z�dJ„ ZždK„ ZŸdL„ Z dM„ Z¡yN)Oé    )ÚAdd)ÚMul)ÚRationalÚooÚpi)ÚEq)ÚS)Úsymbols)ÚMatrix)Ú	factorint)Úpowsimp)Ú_mexpand)Údefault_sort_keyÚordered)Úsin)Údiophantine),Údiop_DNÚ
diop_solveÚdiop_ternary_quadratic_normalÚdiop_general_pythagoreanÚdiop_ternary_quadraticÚdiop_linearÚdiop_quadraticÚdiop_general_sum_of_squaresÚdiop_general_sum_of_even_powersÚdescentÚ
diop_bf_DNÚ	divisibleÚ
equivalentÚfind_DNÚldescentÚlengthÚreconstructÚ	partitionÚpower_representationÚprime_as_sum_of_two_squaresÚsquare_factorÚsum_of_four_squaresÚsum_of_three_squaresÚtransformation_to_DNÚtransformation_to_normalÚclassify_diopÚbase_solution_linearÚ
cornacchiaÚ
sqf_normalÚgaussian_reduceÚholzerÚcheck_paramÚparametrize_ternary_quadraticÚsum_of_powersÚsum_of_squaresÚ_diop_ternary_quadratic_normalÚ_nint_or_floorÚ_oddÚ_evenÚ_remove_gcdÚ_can_do_sum_of_squaresÚDiophantineSolutionSetÚGeneralPythagoreanÚBinaryQuadratic)ÚslowÚraisesÚXFAIL)Úsigned_permutationsz.a, b, c, d, p, q, x, y, z, w, t, u, v, X, Y, ZT©Úintegerzt_:7zm1:4Ún1c                 ó<   — t        t        t        | «      «      «      S ©N)r   r   ©Úeqs    ún/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/solvers/diophantine/tests/test_diophantine.pyÚdiop_simplifyrK   '   s   € Ü”GœH R›LÓ)Ó*Ð*ó    c                  óH   — t        t        d„ «       t        t        d„ «       y )Nc                  ó2   — t        t        t        «      «      S rG   )r   r   Úx© rL   rJ   ú<lambda>z#test_input_format.<locals>.<lambda>,   s   € œk¬#¬a«&Ó1€ rL   c                  ó4   — t        t        t        z  dz
  «      S ©Né   )r   rO   r   rP   rL   rJ   rQ   z#test_input_format.<locals>.<lambda>-   s   € œk¬!¬B©$°©(Ó3€ rL   )r@   Ú	TypeErrorrP   rL   rJ   Útest_input_formatrV   +   s   € Ü
Œ9Ñ1Ô2Ü
Œ9Ñ3Õ4rL   c                  óv   — t        d«      t        «       k(  sJ ‚t        t        d«      «      t        «       k(  sJ ‚y rS   )r   Úsetr	   rP   rL   rJ   Útest_nosolsrY   0   s/   € ä�q‹>œS›UÒ"Ð"Ð"Ü”q˜“tÓ¤£Ò%Ð%Ñ%rL   c                  ó–   — t        t        dz
  t        dz
  dz  z  «      ddhk(  sJ ‚t        t        dz
  t        dz
  z  «      ddhk(  sJ ‚y )Né   é   ©r[   ©r\   ©r   rO   rP   rL   rJ   Útest_univariater`   6   sM   € Ü”q˜1‘uœq 1™u q™jÑ(Ó)¨d°D¨\Ò9Ð9Ð9Ü”q˜1‘uœq 1™u‘oÓ&¨4°¨,Ò6Ð6Ñ6rL   c            
      ó¦  — t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t	        dt
        dz  z  dt
        z  z   dz
  «      t
        gd	d
t
        dt
        dz  didfk(  sJ ‚t	        t
        t        z  t        z   «      t
        t        t        gt
        t        z  d	t        d	idfk(  sJ ‚t	        t
        t        z  t        z   t        z   t
        dz  z   «      t        t
        t        t        gt
        t        z  d	t        d	t
        dz  d	t        d	idfk(  sJ ‚t	        t
        t        z  t
        t        z  z   t
        dz  z   d	z   «      t
        t        t        gt
        t        z  d	t
        t        z  d	t
        dz  d	d	d	idfk(  sJ ‚t	        t
        t        z  t        z   t        z   dz   «      t        t
        t        t        gt
        t        z  d	t        d	d	dt        d	idfk(  sJ ‚t	        t
        t        z  t        t        z  z   «      t        t
        t        t        gt
        t        z  d	t        t        z  d	idfk(  sJ ‚t	        t
        t        dz  z  d	z   «      t
        t        gt
        t        dz  z  d	d	d	idfk(  sJ ‚t	        t
        dz  t        dz  z   t        dz  z   dz
  «      t
        t        t        gd	dt
        dz  d	t        dz  d	t        dz  d	idfk(  sJ ‚t	        t
        dz  t        dz  z   t        dz  z   «      t
        t        t        gt
        dz  d	t        dz  d	t        dz  d	idfk(  sJ ‚y )Nc                  ó2   — t        t        dz  dz  dz
  «      S )Nr\   rT   r[   )r,   rO   rP   rL   rJ   rQ   z$test_classify_diop.<locals>.<lambda><   s   € œm¬A¨q©D°©F°Q©JÓ7€ rL   c                  ó   — t        d«      S ©Nr[   ©r,   rP   rL   rJ   rQ   z$test_classify_diop.<locals>.<lambda>=   s   € œ}¨QÓ/€ rL   c                  óP   — t        t        t        z  t        z  t        z  dz
  «      S rd   )r,   ÚwrO   ÚyÚzrP   rL   rJ   rQ   z$test_classify_diop.<locals>.<lambda>>   s   € ¬´a¼±c¼!±e¼A±gÀ±kÓ(B€ rL   c                  óT   — t        t        dz  t        dz  z   t        dz  z   dz
  «      S )NrT   é   éZ   )r,   rO   rh   ri   rP   rL   rJ   rQ   z$test_classify_diop.<locals>.<lambda>?   s%   € ¬´a¸±d¼QÀ¹T±kÄAÀqÁDÑ6HÈ2Ñ6MÓ(N€ rL   é   r\   é   é*   r[   iÖÿÿÿÚ
univariateÚinhomogeneous_ternary_quadraticÚinhomogeneous_general_quadraticÚhomogeneous_general_quadraticÚ
cubic_thuerk   éb   ižÿÿÿÚgeneral_sum_of_even_powersÚ$homogeneous_ternary_quadratic_normal)	r@   rU   Ú
ValueErrorÚNotImplementedErrorr,   rO   rh   ri   rg   rP   rL   rJ   Útest_classify_dioprz   ;   s)  € Ü
Œ9Ñ7Ô8Ü
Œ:Ñ/Ô0Ü
ÔÑ BÔCÜ
ÔÑ NÔOÜ˜œA˜q™D™ 2¤a¡4™¨"Ñ,Ó-Ü	
ˆˆa�”a˜œQ ™T 2Ð&¨ð26ò 6ð 6ð 6äœœ1™œq™Ó!Ü	
ŒAŒqˆ	”A”a‘C˜œA˜q�>Ð#Dð&Fò Fð Fð Fäœœ1™œq™¤1™¤q¨!¡tÑ+Ó,Ü	
ŒAŒq”!ˆ”qœ‘s˜Aœq !¤Q¨¡T¨1¬a°Ð3Ð5Vð1Xò Xð Xð Xäœœ1™œq¤™s™¤Q¨¡TÑ)¨AÑ-Ó.Ü	
ŒAŒqˆ	”A”a‘C˜œAœa™C ¤A q¡D¨!¨Q°Ð2Ð4Uð3Wò Wð Wð Wäœœ1™œq™¤1™ rÑ)Ó*Ü	
ŒAŒq”!ˆ”qœ‘s˜Aœq ! Q¨¬A¨qÐ1Ð3Tð/Vò Vð Vð Väœœ1™œq¤™s™Ó#Ü	
ŒAŒq”!ˆ”qœ‘s˜Aœq¤™s AÐ&Ð(Gð(Iò Ið Ið Iäœœ1˜a™4™ !™Ó$Ü	
ŒAˆ””1�a‘4‘˜˜A˜qÐ! <ð)1ò 1ð 1ð 1äœ˜A™¤ 1¡™¤q¨!¡tÑ+¨{Ñ;Ó<Ü	
ŒAŒqˆ	�A�sœA˜q™D !¤Q¨¡T¨1¬a°©d°AÐ6Ð8TðAVò Vð Vð Väœ˜A™¤ 1¡™¤q¨!¡tÑ+Ó,Ü	
ŒAŒqˆ	”A�q‘D˜!œQ ™T 1¤a¨¡d¨AÐ.Ð0Vð1Xò Xð Xñ XrL   c                  ó`	  — t        t        «      dk(  sJ ‚t        dt        z  «      dk(  sJ ‚t        dt        z  «      dk(  sJ ‚t        t        dz   «      dk(  sJ ‚t        dt        z  dz   «      dk(  sJ ‚t        dt        z  dz   «      dk(  sJ ‚t        t        t        z   «      t        t         fk(  sJ ‚t        t        t        z   d	z   «      t        t         fk(  sJ ‚t        t        t        z   d	z
  «      t        t         fk(  sJ ‚t        d	t        z  t        z
  d
z
  «      dk(  sJ ‚t        dt        z  dt        z  z   d
z
  «      dt        z  d
z
  dt        z  d
z   fk(  sJ ‚t        dt        z  dt        z  z
  d
z
  «      dt        z  d
z
  dt        z  d
z
  fk(  sJ ‚t        dt        z  dt        z  z
  d
z
  «      dt        z  d
z   dt        z  d
z
  fk(  sJ ‚t        dt        z  d
t        z  z   «      d
t        z  dt        z  fk(  sJ ‚t        dt        z  dt        z  z   «      dt        z  t        fk(  sJ ‚t        dt        z  dt        z  z   dz
  «      dt        z  dz
  dt        z  dz   fk(  sJ ‚t        dt        z  dt        z  z   dz
  «      dk(  sJ ‚t        d	t        z  dt        z  z   dt        z  z
  d
z   «      dt        z  d
z   dt        z  d
z   fk(  sJ ‚t        dt        z  dt        z  z   dt        z  z
  d
z   «      t        dt        z  dt
        z  z   d
z   dt        z  dt
        z  z   d
z   fk(  sJ ‚t        dt        z  dt        z  z   dt        z  z
  d
z   d «      dk(  sJ ‚t        dt        z  dt        z  z   dt        z  z   d
z
  «      dk(  sJ ‚t        d
t        z  dt        z  z   dt        z  z
  dz
  «      t        dt        z  dt
        z  z   dz   dt        z  dt
        z  z   dz   fk(  sJ ‚t        dt        z  dt        z  z
  dt        z  z   dz
  «      dt        z  dz   t        dt
        z  z   t
        fk(  sJ ‚t        dt        z  dt        z  z   dt        z  z   t        z
  «      t        t
        t
        t        z   dt        z  dt
        z  z   dt        z  z   fk(  sJ ‚t        t        d„ «       y )N)r   r[   rT   )éÿÿÿÿr\   rG   rk   )éþÿÿÿr   é   )éûÿÿÿr}   é   éùÿÿÿé   )NNé   )r   r~   r~   ©NNNéýÿÿÿéøÿÿÿé   é   é	   é   é   c                  ó&   — t        t        dz  «      S ©Nr\   r_   rP   rL   rJ   rQ   ztest_linear.<locals>.<lambda>o   s   € œj¬¨1©›o€ rL   )
r   rO   rh   Út_0ri   Út_1rg   Út_2r@   rU   rP   rL   rJ   Útest_linearr‘   T   sP  € Ü”a‹=˜DÒ Ð Ð Ü�aœ‘c‹?˜dÒ"Ð"Ð"Ü�aœ‘c‹?˜dÒ"Ð"Ð"Ü”a˜!‘eÓ Ò%Ð%Ð%Ü�aœ‘c˜A‘gÓ 'Ò)Ð)Ð)Ü�aœ‘c˜A‘gÓ %Ò'Ð'Ð'Ü”aœ!‘eÓ¤¤s d Ò+Ð+Ð+Ü”aœ!‘e˜a‘iÓ ¤S¬3¨$ KÒ/Ð/Ð/Ü”aœ!‘e˜a‘iÓ ¤S¬3¨$ KÒ/Ð/Ð/Ü�aœ‘cœA‘g ‘kÓ" eÒ+Ð+Ð+Ü�aœ‘c˜Aœa™C‘i !‘mÓ$¨¬3©°©°B´s±F¸Q±JÐ(?Ò?Ð?Ð?Ü�aœ‘c˜Aœa™C‘i !‘mÓ$¨¬3©°©°A´c±E¸A±IÐ(>Ò>Ð>Ð>Ü�bœ‘d˜Qœq™S‘j 1‘nÓ%¨!¬C©%°!©)°R¼±V¸a±ZÐ)@Ò@Ð@Ð@Ü�aœ‘c˜Aœa™C‘iÓ  Q¤s¡U¨B¬s©F OÒ3Ð3Ð3Ü�aœ‘c˜Aœa™C‘iÓ  R¬¡V¬S MÒ1Ð1Ð1Ü�aœ‘c˜Aœa™C‘i !‘mÓ$¨¬3©°©°B´s±F¸Q±JÐ(?Ò?Ð?Ð?Ü�aœ‘c˜Aœa™C‘i !‘mÓ$¨Ò4Ð4Ð4Ü�aœ‘c˜Aœa™C‘i !¤A¡#‘o¨Ñ)Ó*¨q´©u°q©y¸!¼C¹%À!¹)Ð.DÒDÐDÐDÜ�aœ‘c˜Aœa™C‘i !¤A¡#‘o¨Ñ)Ó*¬s°A´c±E¸A¼c¹E±MÀAÑ4EÀqÌÁuÈqÔQTÉuÁ}ÐWXÑGXÐ.YÒYÐYÐYÜ�aœ‘c˜Aœa™C‘i !¤A¡#‘o¨Ñ)¨4Ó0°IÒ=Ð=Ð=Ü�aœ‘c˜Aœa™C‘i !¤A¡#‘o¨Ñ)Ó*Ð.@Ò@Ð@Ð@Ü�aœ‘c˜Aœa™C‘i !¤A¡#‘o¨Ñ)Ó*¬s°B´s±F¸Q¼s¹U±NÀQÑ4FÈÌ3ÉÐQRÔSVÑQVÉÐY[ÑH[Ð.\Ò\Ð\Ð\Ü�aœ‘c˜Aœa™C‘i "¤Q¡$Ñ&¨Ñ*Ó+°´#±¸±	¼3ÀÄ3Á¹;ÌÐ/LÒLÐLÐLÜ�aœ‘c˜Aœa™C‘i "¤Q¡$Ñ&¬Ñ*Ó+´´S¼#Ä¹)ÀQÄsÁUÈRÔPSÉVÁ^ÐVXÔY\ÑV\ÑE\Ð/]Ò]Ð]Ð]ô Œ9Ñ-Õ.rL   c                  óV  — t        dt        z  t        z  dt        z  z   dt        z  z
  dz   «      ddhk(  sJ ‚t        dt        z  t        z  dt        z  z   dt        z  z   dz   «      t        «       k(  sJ ‚t        d	t        z  t        z  dt        z  z   d
t        z  z
  dz
  «      dhk(  sJ ‚t        dt        z  t        z  dt        z  z
  dt        z  z
  dz
  «      dhk(  sJ ‚t        dt        z  t        z  dt        z  z   dt        z  z   dz   «      h d£k(  sJ ‚t        dt        z  t        z  dt        z  z   dt        z  z   dz   «      t        «       k(  sJ ‚t        t        t        z  t        z   t        z   dz   «      dt        ft        dfhk(  sJ ‚t        dt        z  t        z  «      sJ ‚y )NrT   é"   rˆ   r[   )i{ÿÿÿéõÿÿÿ)r~   iÇÿÿÿr‚   r\   éóÿÿÿrk   é6   )é   r   éåÿÿÿé   )éòÿÿÿr|   r~   é8   r€   >   ©i_ÿÿÿr…   ©iÑÿÿÿéúÿÿÿ©iÝÿÿÿéôÿÿÿ©iãÿÿÿi»ÿÿÿ©iëÿÿÿr€   ©éi   r}   ©r˜   é@   ©é÷ÿÿÿr[   r‰   r|   é0   )r   rO   rh   rX   Útr   rP   rL   rJ   Ú%test_quadratic_simple_hyperbolic_caser«   r   s‘  € ä�aœ‘cœ!‘e˜b¤™d‘l R¬¡TÑ)¨AÑ-Ó.Ø˜Ð"ò#ð #ð #ä�aœ‘cœ!‘e˜a¤™c‘k A¤a¡CÑ'¨!Ñ+Ó,´³Ò5Ð5Ð5Ü�cœ!‘eœA‘g ¤!¡‘m a¬¡cÑ)¨BÑ.Ó/°G°9Ò<Ð<Ð<Ü�cœ!‘eœA‘g ¤1¡‘n r¬!¡tÑ+¨bÑ0Ó1°i°[Ò@Ð@Ð@Ü�aœ‘cœ!‘e˜a¤™c‘k B¤q¡DÑ(¨1Ñ,Ó-ò 2Fò Fð Fð Fô �aœ‘cœ!‘e˜a¤™c‘k A¤a¡CÑ'¨!Ñ+Ó,´³Ò5Ð5Ð5Ü”aœ‘cœA‘g¤‘k A‘oÓ&¨B´¨7´Q¸°GÐ*<Ò<Ð<Ð<Ü�rœ!‘tœA‘vÔÐÑrL   c                  ó¼  — t        dt        dz  z  dt        z  t        z  z   dt        dz  z  z   dt        z  z   dt        z  z   dz
  «      dhk(  sJ ‚t        d	t        dz  z  d
t        dz  z  z   dt        z  z   dt        z  z
  dz   «      t        «       k(  sJ ‚t        t        dz  t        dz  z   dt        z  z   dt        z  z   dz   «      dhk(  sJ ‚t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   dt        z  z
  dt        z  z
  dz
  «      dhk(  sJ ‚t        dt        dz  z  dt        z  t        z  z   dt        dz  z  z   dz
  «      h d£k(  sJ ‚y )Nro   r\   rƒ   rn   é   é   i3  )r”   r|   rk   rT   r~   é   rˆ   ©r|   r|   r‰   rm   éV  )éñÿÿÿr‚   é
   r“   ¾   ©r|   r\   ©r[   r[   ©r[   r}   r°   )r   rO   rh   rX   rP   rL   rJ   Útest_quadratic_elliptical_caser¸   �   sW  € ô �bœ˜A™‘g ¤!¡¤A¡‘o¨¬1¨a©4©Ñ/°"´Q±$Ñ6¸¼A¹Ñ=ÀÑDÓEÈ)ÈÒTÐTÐTÜ�aœ˜1™‘f˜q¤ A¡™v‘o¨¬!©Ñ+¨b´©dÑ2°RÑ7Ó8¼C»EÒAÐAÐAÜ”a˜‘dœQ ™T‘k A¤a¡CÑ'¨!¬A©#Ñ-°Ñ1Ó2°x°jÒ@Ð@Ð@Ü�bœ˜A™‘g ¤!¡¤A¡‘o¨¬1¨a©4©Ñ/°"´Q±$Ñ6¸¼A¹Ñ=ÀÑDÓEÈ(ÈÒSÐSÐSÜ�bœ˜A™‘g ¤1¡¤Q¡Ñ&¨¬A¨q©D©Ñ0°2Ñ5Ó6Ú/ò0ð 0ñ 0rL   c                  ó¤  — t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   dt        z  z   dt        z  z   dz   «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   dt        z  z   d	t        z  z   dz
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z   dt        dz  z  z   d
t        z  z   dt        z  z   dz
  «      sJ ‚t        dt        dz  z  d
t        z  t        z  z   t        dz  z
  dt        z  z   dz
  «      sJ ‚t        t        dz  dt        z  t        z  z   t        dz  z   dt        z  z   dt        z  z   dz   «      sJ ‚t        t        dz  dt        z  t        z  z
  t        dz  z   dt        z  z   dt        z  z   dz   «      sJ ‚t        t        dz  dt        z  z
  dz   «      sJ ‚y )Nrƒ   r\   é   r‡   r~   r€   é   r‚   rˆ   rk   éüÿÿÿrT   r[   é)   é(   ©Úcheck_solutionsrO   rh   rP   rL   rJ   Útest_quadratic_parabolic_caserÁ   Œ   s¨  € ä˜1œQ ™T™6 B¤q¡D¬¡F™?¨R´°1±©WÑ4°q¼±sÑ:¸Q¼q¹SÑ@À2ÑEÔFÐFÐFÜ˜1œQ ™T™6 B¤q¡D¬¡F™?¨R´°1±©WÑ4°q¼±sÑ:¸RÄ¹TÑAÀAÑEÔFÐFÐFÜ˜1œQ ™T™6 B¤q¡D¬¡F™?¨R´°1±©WÑ4°q¼±sÑ:¸Q¼q¹SÑ@À1ÑDÔEÐEÐEÜ˜2œa ™d™7 Q¤q¡S¬¡U™?¬Q°©TÑ1°A´a±CÑ7¸!Ñ;Ô<Ð<Ð<Üœ1˜a™4 !¤A¡#¤a¡%™<¬!¨Q©$Ñ.°´1±Ñ4°q¼±sÑ:¸QÑ>Ô?Ð?Ð?Üœ1˜a™4 !¤A¡#¤a¡%™<¬!¨Q©$Ñ.°´1±Ñ4°q¼±sÑ:¸QÑ>Ô?Ð?Ð?Üœ1˜a™4 "¤Q¡$™;¨Ñ+Ô,Ð,Ñ,rL   c                  ó¬  — t        dt        z  t        z  «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  t        dz  z   dz   «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   dt        z  z
  dt        z  z
  dz   «      sJ ‚t        d	t        dz  z  d
t        z  t        z  z   dt        dz  z  z   dt        z  z
  dt        z  z   d	z
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z   dt        dz  z  z   dt        z  z
  d
t        z  z
  dz
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  dt        z  z
  dt        z  z
  dz
  «      sJ ‚t        dt        z  t        z  dt        dz  z  z
  dt        z  z
  dt        z  z
  dz
  «      sJ ‚t        t        dz  t        dz  z
  dt        z  z
  dt        z  z
  «      sJ ‚t        t        dz  dt        dz  z  z
  dt        z  z
  dt        z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        z  z
  d	t        z  z
  dz
  «      sJ ‚y )Nr©   rk   r\   r~   r}   rT   r®   é   rˆ   é   rƒ   r³   é    r­   r¼   r‰   r‚   r¿   rP   rL   rJ   Útest_quadratic_perfect_squarerÆ   —   s%  € ô ˜2œa™4¤™6Ô"Ð"Ð"Ü˜1œQ ™T™6 A¤a¡C¬¡E™>¬A¨q©DÑ0°1Ñ4Ô5Ð5Ð5Ü˜2œa ™d™7 Q¤q¡S¬¡U™?¨Q¬q°!©t©VÑ3°Q´q±SÑ8¸2¼a¹4Ñ?À"ÑDÔEÐEÐEÜ˜2œa ™d™7 R¬¡T¬!¡VÑ+¨a´°1±©fÑ4°q¼±sÑ:¸Q¼q¹SÑ@À2ÑEÔFÐFÐFÜ˜1œQ ™T™6 B¤q¡D¬¡F™?¨Q¬q°!©t©VÑ3°b¼±dÑ:¸RÄ¹TÑAÀBÑFÔGÐGÐGÜ˜1œQ ™T™6 A¤a¡C¬¡E™>¨A¬a©CÑ/°´1±Ñ4°qÑ8Ô9Ð9Ð9Ü˜3œq™5¤™7 Q¤q¨!¡t¡VÑ+¨a´©cÑ1°1´Q±3Ñ6¸Ñ;Ô<Ð<Ð<Üœ1˜a™4¤! Q¡$™;¨¬1©Ñ,¨q´©sÑ2Ô3Ð3Ð3Üœ1˜a™4 !¤A q¡D¡&™=¨1¬Q©3Ñ.°´1±Ñ4Ô5Ð5Ð5Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¨Q¬q©SÑ0°2´a±4Ñ7¸!Ñ;Ô<Ð<Ñ<rL   c                  ó.  — t        t        dz  dt        z  z
  dt        dz  z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        z  z
  dt        z  z
  «      sJ ‚t        t        dz  t        t        z  z
  t        dz  z
  dt        z  z
  «      sJ ‚t        t        dz  dt        dz  z  z
  dt        z  z
  dt        z  z
  «      sJ ‚t        t        dz  t        dz  z   dt        z  z   dt        z  z   dz   «      j	                  «       dhk(  sJ ‚y )Nr\   r~   rT   r‰   r‚   r°   )rÀ   rO   rh   r>   ÚsolverP   rL   rJ   Ú!test_quadratic_non_perfect_squarerÉ   ¦   sü   € ô œ1˜a™4 !¤A¡#™:¨¬!¨Q©$©Ñ.Ô/Ð/Ð/Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¨Q¬q©SÑ0°1´Q±3Ñ6Ô7Ð7Ð7Üœ1˜a™4¤!¤A¡#™:¬¨1©Ñ,¨q´©sÑ2Ô3Ð3Ð3Üœ1˜a™4 !¤A q¡D¡&™=¨1¬Q©3Ñ.°´1±Ñ4Ô5Ð5Ð5Üœ1˜a™4¤! Q¡$™;¨¬1©Ñ,¨q´©sÑ2°QÑ6Ó7×=Ñ=Ó?ÀHÀ:ÒMÐMÑMrL   c                  óô   — ddt         z  dt         z  dz
  z  z
  t        dt        z  dz
  z  z   } t         t        f}t        | «      D ]1  }t        | j	                  t        t        ||«      «      «      «      sŒ1J ‚ y )NiÐÿÿÿr\   rT   r[   ©rO   rh   r   rK   ÚxreplaceÚdictÚzip©rI   ÚvÚsols      rJ   Útest_issue_9106rÒ   ±   sm   € Ø	ˆq”‰s�A”a‘C˜!‘G‰}Ñ	œq !¤A¡#¨¡'™{Ñ	*€BÜ	
ŒAˆ€AÜ˜2‹ò AˆÜ  §¡¬T´#°a¸³+Ó->Ó!?Õ@Ð@Ð@ñArL   c                  óÎ   — t         dz  t         z
  t        dz  z
  } t         t        f}t        | «      D ]1  }t        | j	                  t        t        ||«      «      «      «      sŒ1J ‚ y r�   rË   rÏ   s      rJ   Útest_issue_18138rÔ   ¸   sW   € Ü	
ˆA‰”‰”A�q‘D‰€BÜ	
ŒAˆ€AÜ˜2‹ò AˆÜ  §¡¬T´#°a¸³+Ó->Ó!?Õ@Ð@Ð@ñArL   c                  ó>  — t        dt        dz  z  dt        z  t        z  z   dt        dz  z  z
  dt        z  z
  dt        z  z
  dz
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   d	t        z  z
  dz
  «      sJ ‚t        d
t        z
  dt        dz  z  z   t        z
  dt        z  t        z  z
  dt        dz  z  z
  «      sJ ‚t        ddt        z  z   dt        dz  z  z   dt        z  z   t        t        z  z   dt        dz  z  z
  «      sJ ‚y )Nrƒ   r\   r³   rÅ   rÄ   r­   r…   r€   r~   r¼   rk   rT   r[   r¿   rP   rL   rJ   Útest_quadratic_non_perfect_slowrÖ   ¿   s  € ä˜1œQ ™T™6 B¤q¡D¬¡F™?¨Q¬q°!©t©VÑ3°b¼±dÑ:¸RÄ¹TÑAÀBÑFÔGÐGÐGô ˜2œa ™d™7 Q¤q¡S¬¡U™?¨Q¬q°!©t©VÑ3°a¼±cÑ9¸AÑ=Ô>Ð>Ð>Ü˜2¤™6 A¤a¨¡d¡F™?¬QÑ.°´1±´Q±Ñ6¸¼1¸a¹4¹Ñ?Ô@Ð@Ð@Ü˜1˜q¤™s™7 Q¤q¨!¡t¡VÑ+¨a´©cÑ1´A´a±CÑ7¸!¼A¸q¹D¹&Ñ@ÔAÐAÑArL   c                  ó"  — t        dd«      dgk(  sJ ‚t        dd«      g k(  sJ ‚t        dd«      dgk(  sJ ‚t        d	d
«      dgk(  sJ ‚t        dd«      g k(  sJ ‚t        dd«      g k(  sJ ‚t        dd«      dt        fgk(  sJ ‚t        dd«      dt        z  t        fgk(  sJ ‚t        dd«      g k(  sJ ‚t        dd«      dgk(  sJ ‚t        dd«      dgk(  sJ ‚t        dd«      dgk(  sJ ‚t        dd«      ddgk(  sJ ‚t        dd«      g d¢k(  sJ ‚t        dd«      dgk(  sJ ‚t        dd«      dgk(  sJ ‚t        dd«      dgk(  sJ ‚t        d d«      d!gk(  sJ ‚t        d"d«      d#gk(  sJ ‚t        d
d«      d$gk(  sJ ‚t        d%d«      d&gk(  sJ ‚t        dd«      d'gk(  sJ ‚t        d"d«      g k(  sJ ‚t        d(d«      d)gk(  sJ ‚t        d*d«      d+gk(  sJ ‚t        d,d«      d-gk(  sJ ‚t        d.d«      g k(  sJ ‚t        dd/«      g d0¢k(  sJ ‚t        d1dd2d3dd/«      d4k(  sJ ‚t        dd5«      g d6¢k(  sJ ‚t        t        d7d8«      «      h d9£k(  sJ ‚t        dd:«      d;gk(  sJ ‚t        d<d=«      g k(  sJ ‚t        dd«      d>d?gk(  sJ ‚t        d@dA«      dBgk(  sJ ‚t        d@dC«      g k(  sJ ‚t        dDdC«      dEgk(  sJ ‚t        dFddGddDdC«      sJ ‚t        dDdH«      dIdJgk(  sJ ‚t        ddt        «      dt        fgk(  sJ ‚t        ddt        «      g k(  sJ ‚y )KNrT   r   ©r   r   éïÿÿÿr   iíÿÿÿr­   ©r\   r[   r•   r®   r²   rÄ   r~   r‰   r»   rº   é´   )r‡   rk   iLÿÿÿ)rˆ   r‚   r€   r|   ©r[   r\   é©   ))rˆ   r~   )r~   rˆ   )rÄ   r   )r   rÄ   r[   )i‰  rÛ   iÔ  )i�Ê  ix  iÕ  )l   IN�d? l   ”j\iÚ  )i“À  i"  iß  )l   ÐWíRlQ]>I2l   A€AJtWj«Uˆ^	 )é!   rƒ   é   )éª   é'   )r‡   r~   r½   )rÅ   r~   i"  )r®   r[   é	S  ©l   !K�2l   uGÔoX rÅ   r¼   )©rT   r[   )é‰  ém   ©é$   r³   r…   rå   ræ   Tr—   ))éÜ   é=   ©r¾   r¯   )é   éÕ   ©rˆ   rT   é�   rˆ   >   ©iXÖ iŽ´  ©ipÖi"'M©i§)  iS  ©l   )fMÚOl   ƒ­?_©l   ;>x< i¹Êÿ|©rÄ   r[   rÃ   )i­  i„  éÀ   r‡   )rž   r[   )r‚   r[   é§   r\   rõ   r}   é{   )r¯   r[   r¯   r”   iéÿÿÿ)éöÿÿÿr[   )r³   r[   )r   rª   r   rX   rP   rL   rJ   Útest_DNrú   É   sÏ  € ô �1�a‹=˜V˜HÒ$Ð$Ð$Ü�3˜Ó˜rÒ!Ð!Ð!Ü�3˜Ó ˜xÒ'Ð'Ð'Ü�3˜Ó ˜xÒ'Ð'Ð'Ü�3˜Ó˜rÒ!Ð!Ð!Ü�1�a‹=˜BÒÐÐÜ�1�a‹=˜a¤˜V˜HÒ$Ð$Ð$Ü�1�a‹=˜a¤™c¤1˜X˜JÒ&Ð&Ð&Ü�2�r‹?˜bÒ Ð Ð Ü�1�c‹?˜w˜iÒ'Ð'Ð'Ü�1�dÓ ˜yÒ(Ð(Ð(Ü�1�a‹=˜V˜HÒ$Ð$Ð$ô �2�q‹>˜f fÐ-Ò-Ð-Ð-Ü�2�sÓÒCÒCÐCÐCô
 �2�q‹>˜j˜\Ò)Ð)Ð)Ü�3˜‹?˜}˜oÒ-Ð-Ð-Ü�3˜‹?Ð?Ð@Ò@Ð@Ð@Ü�3˜‹?˜}˜oÒ-Ð-Ð-Ü�3˜‹?Ð^Ð_Ò_Ð_Ð_Ü�2�q‹>˜g˜YÒ&Ð&Ð&Ü�2�q‹>˜i˜[Ò(Ð(Ð(ô �2�r‹?˜w˜iÒ'Ð'Ð'Ü�3˜Ó˜rÒ!Ð!Ð!Ü�2�r‹?˜w˜iÒ'Ð'Ð'Ü�3˜Ó ˜yÒ(Ð(Ð(Ü�5˜"ÓÐ"?Ð!@Ò@Ð@Ð@Ü�2�r‹?˜bÒ Ð Ð ô �2�r‹?Ò<Ò<Ð<Ð<ô �b˜!˜S # r¨2Ó.°$Ò6Ð6Ð6ä�2�r‹?ÒHÒHÐHÐHÜŒw�s˜BÓÓ ò %Fò Fð Fð Fô �2�r‹?˜{˜mÒ+Ð+Ð+Ü�3˜Ó˜rÒ!Ð!Ð!Ü�2�r‹?˜w¨Ð/Ò/Ð/Ð/Ü�3˜‹?˜w˜iÒ'Ð'Ð'Ü�3˜Ó˜rÒ!Ð!Ð!ä�3˜Ó ˜yÒ(Ð(Ð(ô �b˜!˜S ! S¨"Ô-Ð-Ð-ä�3˜Ó ¨7Ð 3Ò3Ð3Ð3ä�1�aœÓ ¤A ˜xÒ'Ð'Ð'Ü�1�bœ!Ó Ò"Ð"Ñ"rL   c                  ó*  — t        dd«      g d¢k(  sJ ‚t        dd«      g d¢k(  sJ ‚t        dd«      g k(  sJ ‚t        dd	«      d
gk(  sJ ‚t        dd«      ddgk(  sJ ‚t        dd«      dgk(  sJ ‚t        dd«      dgk(  sJ ‚t        ddt        «      dgk(  sJ ‚t        ddt        «      dt        fgk(  sJ ‚t        ddt        «      dt        z  t        fdt        z  t        fgk(  sJ ‚t        ddt        «      dgk(  sJ ‚t        d	dt        «      g k(  sJ ‚y )NrÄ   r¼   )rä   )r…   r[   rç   r—   )rî   )r    rT   rë   )iØÿÿÿr¯   r÷   r}   éÁ  r[   )l   éuÒL" l   ¼EñçéY   r†   ©r‰   r[   r§   râ   r|   rã   iT  )iô  r½   r   rØ   rk   r\   rT   )r   rª   rP   rL   rJ   Útest_bf_pellrÿ     s8  € Ü�b˜"ÓÒ!<Ò<Ð<Ð<Ü�b˜"ÓÒ!IÒIÐIÐIÜ�c˜2Ó "Ò$Ð$Ð$Ü�d˜AÓÐ#BÐ"CÒCÐCÐCÜ�b˜"Ó &¨'Ð!2Ò2Ð2Ð2Ü�e˜RÓ Ð%BÐ$CÒCÐCÐCÜ�c˜2Ó 9 +Ò-Ð-Ð-Ü�b˜!œQÓ F 8Ò+Ð+Ð+Ü�a˜œAÓ A¤q 6 (Ò*Ð*Ð*Ü�a˜œAÓ A¤a¡C¬ 8¨b´©d´A¨YÐ"7Ò7Ð7Ð7Ü�a˜œAÓ 6 (Ò*Ð*Ð*Ü�a˜œQÓ 2Ò%Ð%Ñ%rL   c                  óÜ   — t        ddd«      dk(  sJ ‚t        ddd«      dk(  sJ ‚t        ddd	«      dk(  sJ ‚t        ddd
«      dk(  sJ ‚t        dd
d«      dk(  sJ ‚t        ddd«      dk(  sJ ‚y )Nr\   r[   r   r}   rk   r~   rT   r   r®   rÄ   r‚   r€   r¯   r­   )r"   rP   rL   rJ   Útest_lengthr  #  sŠ   € Ü�!�Q˜‹?˜aÒÐÐÜ�"�a˜Ó˜qÒ Ð Ð Ü�"�a˜Ó Ò!Ð!Ð!Ü�!�Q˜Ó˜qÒ Ð Ð Ü�!�R˜Ó Ò"Ð"Ð"Ü�!�Q˜‹?˜aÒÐÑrL   c                 óÞ  — t        | «      \  }}|t        t        t        g«      z  |z   d   }|t        t        t        g«      z  |z   d   }t	        | j                  t        t        t        f||f«      «      «      }t        |j                  D �cg c]$  }t         |j                  t        t        gŽ «      ‘Œ& c}«      }t        t        z  t        t        fD ]  }||j                  «       v sŒ y t        dz  t        dz  dfD ]  }||j                  «       vsŒd||<   Œ |t        dz     dk7  r;t        |t        dz     |t        dz     «      xr t        |d   |t        dz     «      S yc c}w )a9  
    Test whether X*Y, X, or Y terms are present in the equation
    after transforming the equation using the transformation returned
    by transformation_to_pell(). If they are not present we are good.
    Moreover, coefficient of X**2 should be a divisor of coefficient of
    Y**2 and the constant term.
    r   r[   Fr\   T)r*   r   ÚXÚYrK   ÚsubsrÎ   rO   rh   rÍ   ÚargsÚreversedÚas_independentÚkeysr   )	rI   ÚAÚBÚurÐ   Ú
simplifiedrª   ÚcoeffÚterms	            rJ   Úis_pell_transformation_okr  ,  sS  € ô   Ó#�D€A€qØ	
Œ6”1”a�&‹>Ñ	˜AÑ	˜qÑ!€AØ	
Œ6”1”a�&‹>Ñ	˜AÑ	˜qÑ!€AÜ˜rŸw™w¤s¬A¬q¨6°A°q°6Ó':Ó;Ó<€Jä¸z¿¹ÖO¸!”(Ð+˜1×+Ñ+¬a´¨VÐ4Õ5ÒOÓP€Eä”1‘”aœ�ò ˆØ�5—:‘:“<ÒÙðô �A‘”q˜!‘t˜Q�ò ˆØ�u—z‘z“|Ò#ØˆE�$ŠKðð ŒQ�‰T�{�aÒÜ˜œq !™t™ e¬A¨q©D¡kÓ2ò )Ü�%˜‘(˜E¤! Q¡$™KÓ(ð	)ð ùò Ps   Â)E*c                  ó  — t        dt        dz  z  dt        z  t        z  z
  t        dz  z   dt        z  z   dt        z  z
  dz
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z   dt        dz  z  z
  dt        z  z
  dt        z  z
  d	z
  «      sJ ‚t        t        dz  t        dz  z
  d
z   «      sJ ‚t        t        dz   dt        dz  z  z   d	z
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   dt        z  z
  dt        z  z
  dz   «      sJ ‚t        dt        dz  z  dt        z  t        z  z   t        dz  z   dt        z  z
  dt        z  z
  dz
  «      sJ ‚t        t        dz  dt        z  t        z  z
  dt        dz  z  z
  dt        z  z
  d	t        z  z
  dz
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   d	t        z  z
  dt        z  z
  dz
  «      sJ ‚y )Nr•   r\   r€   rm   rÙ   rß   r~   rÄ   r­   r®   rÃ   é-   r³   é¾   r™   rT   rà   é‚   rý   rn   r‰   r±   )r  rO   rh   rP   rL   rJ   Útest_transformation_to_pellr  J  sâ  € Ü$ S¬¨A©¡X°´!±´A±Ñ%5¼¸1¹Ñ%<¸qÄ¹sÑ%BÀQÄqÁSÑ%HÈ2Ñ%MÔNÐNÐNÜ$ S¬¨A©¡X°´1±´Q±Ñ%6¸¼1¸a¹4¹Ñ%?À!ÄAÁ#Ñ%EÈÌ1ÉÑ%LÈrÑ%QÔRÐRÐRÜ$¤Q¨¡T¬A¨q©D¡[°2Ñ%5Ô6Ð6Ð6Ü$¤a¨¡d U¨Q¬q°!©t©V¡^°bÑ%8Ô9Ð9Ð9Ü$ R¬¨1©¡W¨r´!©t´A©vÑ%5¸¼!¸Q¹$¹Ñ%>ÀÄ1ÁÑ%DÀrÌ!ÁtÑ%KÈaÑ%OÔPÐPÐPÜ$ S¬¨A©¡X°´1±´Q±Ñ%6¼¸A¹Ñ%=ÀÄ!ÁÑ%CÀcÌ!ÁeÑ%KÈcÑ%QÔRÐRÐRÜ$¤Q¨¡T¨A¬a©C´©E¡\°3´q¸!±t±8Ñ%;¸aÄ¹cÑ%AÀBÄqÁDÑ%HÈ2Ñ%MÔNÐNÐNÜ$ R¬¨1©¡W¨q´©s´1©u¡_°r¼!¸Q¹$±wÑ%>ÀÄAÁÑ%EÈÌ1ÉÑ%LÈtÑ%SÔTÐTÑTrL   c                  óú  — t        t        dz  dt        z  z
  t        dz  z
  «      dk(  sJ ‚t        t        dz  dt        dz  z  z
  dz
  «      dk(  sJ ‚t        t        dz  dt        z  t        z  z
  dt        dz  z  z
  dz
  «      dk(  sJ ‚t        dt        dz  z  d	t        z  t        z  z
  t        dz  z
  d
z
  «      dk(  sJ ‚t        dt        dz  z  dt        z  t        z  z
  t        dz  z
  dz
  «      dk(  sJ ‚t        dt        dz  z  dt        z  t        z  z   t        dz  z
  «      dk(  sJ ‚t        dt        dz  z  dt        z  t        z  z
  t        dz  z   dt        z  z   dt        z  z
  dz
  «      dk(  sJ ‚y )Nr\   r¶   rT   r~   )rT   r~   rk   r€   )r~   r€   rƒ   r‰   )rŠ   rè   rˆ   )rƒ   éT   r…   )r[   r   r•   rm   )ée   i¸—ˆÿ)r    rO   rh   rP   rL   rJ   Útest_find_DNr  U  si  € Ü”1�a‘4˜!œA™#‘:¤ 1¡Ñ$Ó%¨Ò/Ð/Ð/Ü”1�a‘4˜!œA˜q™D™&‘= 1Ñ$Ó%¨Ò/Ð/Ð/Ü”1�a‘4˜!œA™#œa™%‘< !¤A q¡D¡&Ñ(¨1Ñ,Ó-°Ò7Ð7Ð7Ü�1”Q˜‘T‘6˜Aœa™C¤™E‘>¤A q¡DÑ(¨1Ñ,Ó-°Ò9Ð9Ð9Ü�1”Q˜‘T‘6˜Aœa™C¤™E‘>¤A q¡DÑ(¨2Ñ-Ó.°'Ò9Ð9Ð9Ü�2”a˜‘d‘7˜Qœq™S¤™U‘?¤A q¡DÑ(Ó)¨VÒ3Ð3Ð3Ü�3”q˜!‘t‘8˜a¤™c¤!™eÑ#¤a¨¡dÑ*¨Q¬q©SÑ0°1´Q±3Ñ6¸Ñ:Ó;¸ÒNÐNÑNrL   c                  óª   — g d¢} | D ].  \  }}t        ||«      \  }}}||dz  z  ||dz  z  z   |dz  k(  rŒ.J ‚ t        dd«      �J ‚t        dd«      �J ‚y )N)©rÄ   r­   ©rT   r”   ©r½   i�ÿÿÿ)rk   r�   )r�   rk   ©é[   r…   r¶   ©r[   r|   )rk   rÅ   ©r®   rÄ   ©i)ã r[   ©rß   iÆýÿÿr\   r|   r‚   )r!   ©r  ÚaÚbrg   rO   rh   s         rJ   Útest_ldescentr'  _  sz   € ò
4€Aàò '‰ˆˆ1Ü˜1˜a“.‰ˆˆ1ˆaØ��A‘‰v˜˜!˜Q™$™‰ ! Q¡$Ó&Ð&Ð&ð'ô �B˜ÓÐ#Ð#Ð#Ü�A�q‹>Ð!Ð!Ñ!rL   c                  óZ  — t        dt        dz  z  dt        dz  z  z
  t        dz  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z   t        dz  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z   t        dz  z
  «      sJ ‚t        dt        dz  z  d	t        dz  z  z   dt        dz  z  z
  «      sJ ‚t        t        dz  dt        dz  z  z   t        dz  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z   t        dz  z
  «      sJ ‚t        t        dz  t        dz  z   t        dz  z
  «      sJ ‚t        d
t        dz  z  t        dz  z   dt        dz  z  z
  «      sJ ‚t        d	t        dz  z  t        dz  z
  dt        dz  z  z   «      sJ ‚t        dt        dz  z  dt        dz  z  z   dt        dz  z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        dz  z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        dz  z  z
  «      sJ ‚y )Néê   r\   éA  r­   ih  r~   rk   rT   r‚   r»   rÃ   r³   rí   rˆ   r‰   r“   i-  é|   r™   é1  ©rÀ   rO   rh   ri   rP   rL   rJ   Ú"test_diop_ternary_quadratic_normalr.  j  s  € Ü˜3œq !™t™8 e¬A¨q©D¡jÑ0´1°a±4Ñ7Ô8Ð8Ð8Ü˜2œa ™d™7 S¬¨A©¡XÑ-´°1±Ñ4Ô5Ð5Ð5Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¬Q°©TÑ1Ô2Ð2Ð2Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¨Q¬q°!©t©VÑ3Ô4Ð4Ð4Üœ1˜a™4 !¤A q¡D¡&™=¬1¨a©4Ñ/Ô0Ð0Ð0Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¬Q°©TÑ1Ô2Ð2Ð2Üœ1˜a™4¤! Q¡$™;¬¨A©Ñ-Ô.Ð.Ð.Ü˜2œa ™d™7¤Q¨¡T™>¨B¬q°!©t©GÑ3Ô4Ð4Ð4Ü˜1œQ ™T™6¤A q¡D™=¨2¬a°©d©7Ñ2Ô3Ð3Ð3Ü˜3œq !™t™8 b¬¨A©¡gÑ-°´!°Q±$±Ñ6Ô7Ð7Ð7Ü˜2œa ™d™7 Q¤q¨!¡t¡VÑ+¨c´!°Q±$©hÑ6Ô7Ð7Ð7Ü˜3œq !™t™8 b¬¨A©¡gÑ-°´Q¸±T±	Ñ9Ô:Ð:Ñ:rL   c                 ó˜  — t        | «      }|t        t        t        t        g«      z  \  }}}t        | j                  t        t        t        t        f|||f«      «      «      }t        |j                  D �cg c]  }t         |j                  |||gŽ «      ‘Œ c}«      }||z  ||z  ||z  fD ]  }||j                  «       v sŒ y yc c}w )NFT)r+   r   rO   rh   ri   rK   r  rÎ   rÍ   r  r  r  r	  )	rI   r
  r  r  ÚZr  rª   r  r  s	            rJ   Úis_normal_transformation_okr1  y  s¼   € Ü  Ó$€AØ”œœ1œa�yÓ!Ñ!�G€A€qˆ!Ü˜rŸw™w¤s¬A¬q´!¨9°q¸!¸Q°iÓ'@ÓAÓB€JäÀ*Ç/Á/ÖR¸Q”(Ð+˜1×+Ñ+¨a°°A¨YÐ7Õ8ÒRÓS€EØ�1‘�a˜‘c˜1˜Q™3�ò ˆØ�5—:‘:“<ÒÙðð ùò Ss   Á6"Cc                  óº  — t        t        dz  dt        dz  z  z   t        dz  z   dt        z  t        z  z
  dt        z  t        z  z
  dt        z  t        z  z   «      sJ ‚t        t        dz  dt        dz  z  z   dt        dz  z  z
  «      sJ ‚t        t        dz  dt        z  t        z  z   «      sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        z  t        z  z
  «      sJ ‚t        t        dz  dt        z  t        z  z   dt        z  t        z  z
  dt        z  t        z  z   «      sJ ‚t        t        dz  dt        z  t        z  z   dt        z  t        z  z
  t        t        z  z   «      sJ ‚t        t        dz  t        dz  z   t        dz  z   t        t        z  z
  t        t        z  z
  t        t        z  z
  «      sJ ‚t        t        dz  dt        z  t        z  z   dt        dz  z  z   «      sJ ‚t        t        t        z  dt        z  t        z  z   dt        z  t        z  z   «      sJ ‚t        dt        z  t        z  dt        z  t        z  z   «      sJ ‚y )	Nr\   rT   rÄ   r»   rˆ   éd   r­   r“   )r1  rO   rh   ri   rP   rL   rJ   Útest_transformation_to_normalr4  †  sð  € Ü&¤q¨!¡t¨a´°1±©f¡}´q¸!±tÑ';¸bÄ¹dÄ1¹fÑ'DÀrÌ!ÁtÌAÁvÑ'MÐPRÔSTÑPTÔUVÑPVÑ'VÔWÐWÐWÜ&¤q¨!¡t¨a´°1±©f¡}°s¼1¸a¹4±xÑ'?Ô@Ð@Ð@Ü&¤q¨!¡t¨b´©d´1©f¡}Ô5Ð5Ð5Ü& q¬¨A©¡v°´A°q±D±Ñ'8¸2¼a¹4Ä¹6Ñ'AÔBÐBÐBÜ&¤q¨!¡t¨b´©d´1©f¡}°r¼!±t¼A±vÑ'=ÀÄ1ÁÄQÁÑ'FÔGÐGÐGÜ&¤q¨!¡t¨b´©d´1©f¡}°r¼!±t¼A±vÑ'=ÄÄ!ÁÑ'CÔDÐDÐDÜ&¤q¨!¡t¬a°©d¡{´Q¸±TÑ'9¼A¼a¹CÑ'?Ä!ÄAÁ#Ñ'EÌÌ!ÉÑ'KÔLÐLÐLÜ&¤q¨!¡t¨a´©c´!©e¡|°a¼¸1¹±fÑ'<Ô=Ð=Ð=Ü&¤q¬¡s¨Q¬q©S´©U¡{°Q´q±S¼±UÑ':Ô;Ð;Ð;Ü& q¬¡s¬1¡u¨q´©s´1©u¡}Ô5Ð5Ñ5rL   c                  ó*  — t        dt        dz  z  t        dz  z   t        dz  z   dt        z  t        z  z
  «      sJ ‚t        t        dz  t        dz  z
  t        dz  z
  t        t        z  z
  t        t        z  z
  «      sJ ‚t        dt        dz  z  t        t        z  z
  t        t        z  z
  t        t        z  z
  «      sJ ‚t        t        dz  t        t        z  z
  t        t        z  z
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  t        t        z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z
  t        t        z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z   t        dz  z
  dt        z  t        z  z
  dt        z  t        z  z   dt        z  t        z  z
  «      sJ ‚t        dt        dz  z  dt        z  t        z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        z  t        z  z
  t        dz  z
  «      sJ ‚t        t        dz  d	t        dz  z  z
  t        dz  z
  d
t        z  t        z  z   dt        z  t        z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z   dt        z  t        z  z   dt        z  t        z  z   dt        z  t        z  z   «      sJ ‚t        t        dz  dt        dz  z  z   t        dz  z   t        t        z  z
  dt        z  t        z  z
  «      sJ ‚t        t        dz  dt        dz  z  z   t        dz  z   t        t        z  z
  dt        z  t        z  z
  dt        z  t        z  z   «      sJ ‚t        t        dz  dt        dz  z  z   t        dz  z   d
t        z  t        z  z
  dt        z  t        z  z
  dt        z  t        z  z   «      sJ ‚t        t        t        z  dt        z  t        z  z
  d
t        z  t        z  z   «      sJ ‚t	        t        dz  t        dz  z   t        dz  z   «      dk(  sJ ‚t	        t        dz  t        dz  z   «      �J ‚t        t        d„ «       dt        z  t        z  dt        z  t        z  z
  dt        dz  z  z   dt        z  t        z  z
  dt        dz  z  z   } t        | «      dk(  sJ ‚t	        dt        dz  z  dt        dz  z  z   t        dz  z
  «      dk(  sJ ‚t        t        t        z  dt        z  t        z  z   «      ddt        fk(  sJ ‚dt        z  t        z  dt        z  t        z  z
  dt        z  t        z  z
  dt        dz  z  z   } t        | «      dt        dz  z  dt        z  t        z  z
  dt        z  t        z  dt        dz  z  z   dt        z  t        z  fk(  sJ ‚t        t        t        z  dt        z  t        z  z   «      dt        z  t        z  t         t        dz  z  t        dz  z   t        t        z  fk(  sJ ‚y )Nr\   rk   rT   r~   r€   rƒ   rˆ   r  é1   rÄ   rl   r®   r»   r„   c                  óˆ   — t        t        t        t        ft        t        z  dt        dz  dt        dz  dt        dz  di«      S )Nr[   r\   rT   r   )r6   rO   rh   ri   rP   rL   rJ   rQ   z-test_diop_ternary_quadratic.<locals>.<lambda>¦  s;   € Ü&¬¬1¬a yÜ	
Œ1‰ˆa”�A‘�qœ!˜Q™$ ¤1 a¡4¨Ð+ó	-ð rL   r}   r‚   )r€   r\   r   )r[   r   r\   r   r   r†   )rÀ   rO   ri   rh   r   r@   rx   r   rE   r3   ÚpÚqr   rH   s    rJ   Útest_diop_ternary_quadraticr:  “  s+  € Ü˜1œQ ™T™6¤A q¡D™=¬1¨a©4Ñ/°!´A±#´a±%Ñ7Ô8Ð8Ð8Üœ1˜a™4¤! Q¡$™;¬¨A©Ñ-´´!±Ñ3´a¼±cÑ9Ô:Ð:Ð:Ü˜1œQ ™T™6¤A¤a¡C™<¬!¬A©#Ñ-´´!±Ñ3Ô4Ð4Ð4Üœ1˜a™4¤!¤A¡#™:¬¬!©Ñ+Ô,Ð,Ð,Ü˜1œQ ™T™6 A¤a¡C¬¡E™>¬A¬a©CÑ/Ô0Ð0Ð0Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¬Q¬q©SÑ0Ô1Ð1Ð1Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¬Q°©TÑ1°A´a±C¼±EÑ9¸A¼a¹CÄ¹EÑAÀAÄaÁCÌÁEÑIÔJÐJÐJÜ˜1œQ ™T™6 B¤q¡D¬¡F™?Ô+Ð+Ð+Ü˜2œa ™d™7 Q¤q¨!¡t¡VÑ+¨a´©c´!©eÑ3´a¸±dÑ:Ô;Ð;Ð;Üœ1˜a™4 "¤Q¨¡T¡'™>¬A¨q©DÑ0°2´a±4¼±6Ñ9¸1¼Q¹3¼q¹5Ñ@ÔAÐAÐAÜ˜2œa ™d™7 Q¤q¨!¡t¡VÑ+¨a´©c´!©eÑ3°a¼±c¼!±eÑ;¸aÄ¹cÄ!¹eÑCÔDÐDÐDÜœ1˜a™4 !¤A q¡D¡&™=¬1¨a©4Ñ/´!´A±#Ñ5¸¼1¹¼Q¹Ñ>Ô?Ð?Ð?Üœ1˜a™4 !¤A q¡D¡&™=¬1¨a©4Ñ/´!´A±#Ñ5¸¼1¹¼Q¹Ñ>ÀÄAÁÄaÁÑGÔHÐHÐHÜœ1˜a™4 !¤A q¡D¡&™=¬1¨a©4Ñ/°"´Q±$´q±&Ñ8¸2¼a¹4Ä¹6ÑAÀBÄqÁDÌÁFÑJÔKÐKÐKÜœ1œQ™3 ¤1¡¤Q¡™;¨¬A©¬a©Ñ/Ô0Ð0Ð0ä(¬¨A©´°1±©´q¸!±tÑ);Ó<Ð@RÒRÐRÐRÜ(¬¨A©´°1±©Ó5Ð=Ð=Ð=Ü
Œ:ñ -ô .ð 
ŒA‰Œa‰�!”A‘#”a‘%‰˜!œA˜q™D™&Ñ	  1¤Q¡3¤q¡5Ñ	(¨1¬Q°©T©6Ñ	1€BÜ! "Ó%¨Ò2Ð2Ð2Ü(¨¬1¨a©4©°!´A°q±D±&©¼1¸a¹4Ñ)?Ó@Øòð ð ä!¤!¤A¡#¨¬!©¬A©¡+Ó.Ø	ˆQ”ˆòð ð à	ŒA‰Œa‰�!”A‘#”a‘%‰˜!œA™#œa™%Ñ	 !¤A q¡D¡&Ñ	(€BÜ(¨Ó,Ø	
Œ1ˆa‰4‰�!”A‘#”a‘%‰˜œA™œa™ !¤A q¡D¡&™¨!¬A©#¬a©%Ð0ò1ð 1ð 1ô ”aœ‘c˜Aœa™C¤™E‘kÓ" r¬!¡t¬A¡v´¨s´1°a±4©x¼!¸Q¹$©ÄÄ!ÁÐ&DÒDÐDÑDrL   c                  ó  — t        d«      t        d«      cxk(  rdk(  sJ ‚ J ‚t        d«      dk(  sJ ‚t        d«      t        d«      cxk(  rdk(  sJ ‚ J ‚t        d«      t        d«      cxk(  rdk(  sJ ‚ J ‚t        d	«      t        d
«      cxk(  rdk(  sJ ‚ J ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        t        d
«      «      dk(  sJ ‚y )Nr[   r|   r   r~   r   rk   r¼   r\   rˆ   r    r‚   r‡   rT   é4   r6  r€   iˆ  rm   )r'   r   rP   rL   rJ   Útest_square_factorr=  ·  s  € Ü˜Óœ}¨RÓ0Ô5°AÒ5Ð5Ñ5Ð5Ð5Ü˜Ó˜qÒ Ð Ð Ü˜Óœ}¨RÓ0Ô5°AÒ5Ð5Ñ5Ð5Ð5Ü˜Óœ}¨RÓ0Ô5°AÒ5Ð5Ñ5Ð5Ð5Ü˜Ó¤¨cÓ 2Ô7°aÒ7Ð7Ñ7Ð7Ð7Ü˜Ó˜qÒ Ð Ð Ü˜Ó Ò!Ð!Ð!Ü˜Ó Ò!Ð!Ð!Ü˜Ó Ò!Ð!Ð!Ü˜Ó Ò#Ð#Ð#Üœ 3›Ó(¨AÒ-Ð-Ñ-rL   c                  ó$  — t        t        dz  t        dz  z   t        dz  z
  «      sJ ‚t        t        dz  dt        z  t        z  z   t        dz  z   «      sJ ‚t        dt        dz  z  dt        dz  z  z
  t        dz  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z   t        dz  z
  dt        z  t        z  z
  dt        z  t        z  z   dt        z  t        z  z
  «      sJ ‚t        t        dz  t        dz  z
  t        dz  z
  «      sJ ‚t        t        dz  dt        dz  z  z
  t        dz  z
  dt        z  t        z  z   d	t        z  t        z  z
  «      sJ ‚t        d	t        z  t        z  t        dz  z   «      sJ ‚t        d
t        dz  z  dt        dz  z  z
  dt        dz  z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        z  t        z  z
  dt        z  t        z  z
  dt        z  t        z  z
  «      sJ ‚t        dt        dz  z  dt        dz  z  z   dt        z  t        z  z   dt        z  t        z  z   dt        z  t        z  z   «      sJ ‚t        d
t        dz  z  dt        dz  z  z
  dt        dz  z  z
  «      sJ ‚y )Nr\   r)  r*  rT   r~   r€   r6  rÄ   rƒ   r+  r™   r,  éì   éá   r¯   r®   rl   r-  rP   rL   rJ   Ú"test_parametrize_ternary_quadraticrA  Å  s@  € Üœ1˜a™4¤! Q¡$™;¬¨A©Ñ-Ô.Ð.Ð.Üœ1˜a™4 !¤A¡#¤a¡%™<¬!¨Q©$Ñ.Ô/Ð/Ð/Ü˜3œq !™t™8 e¬A¨q©D¡jÑ0´1°a±4Ñ7Ô8Ð8Ð8Ü˜1œQ ™T™6 A¤a¨¡d¡F™?¬Q°©TÑ1°A´a±C¼±EÑ9¸A¼a¹CÄ¹EÑAÀAÄaÁCÌÁEÑIÔJÐJÐJÜœ1˜a™4¤! Q¡$™;¬¨A©Ñ-Ô.Ð.Ð.Üœ1˜a™4 "¤Q¨¡T¡'™>¬A¨q©DÑ0°2´a±4¼±6Ñ9¸A¼a¹CÄ¹EÑAÔBÐBÐBÜ˜1œQ™3œq™5¤1 a¡4™<Ô(Ð(Ð(Ü˜3œq !™t™8 b¬¨A©¡gÑ-°´Q¸±T±	Ñ9Ô:Ð:Ð:Ü˜3œq !™t™8 c¬!¨Q©$¡hÑ.°´A±´a±Ñ7¸"¼Q¹$¼q¹&Ñ@À2ÄaÁ4ÌÁ6ÑIÔJÐJÐJÜ˜2œa ™d™7 Q¤q¨!¡t¡VÑ+¨a´©c´!©eÑ3°a¼±c¼!±eÑ;¸aÄ¹cÄ!¹eÑCÔDÐDÐDÜ˜3œq !™t™8 b¬¨A©¡gÑ-°´Q¸±T±	Ñ9Ô:Ð:Ñ:rL   c                  ó,  — t        dt        z  t        z  t        t        z  z   dt        z  t        z  z
  «      sJ ‚t        dt        z  t        z  dt        z  t        z  z
  dt        z  t        z  z
  «      sJ ‚t        dt        z  t        z  dt        z  t        z  z   «      sJ ‚t        t        t        z  t        t        z  z   t        t        z  z   «      sJ ‚t        dt        z  t        z  dt        z  t        z  z   dt        z  t        z  z   «      sJ ‚y )Nr\   rT   é½   iY  rˆ   r­   r“   r-  rP   rL   rJ   Ú test_no_square_ternary_quadraticrD  Ó  sÐ   € Ü˜1œQ™3œq™5¤1¤Q¡3™;¨¬1©¬Q©Ñ.Ô/Ð/Ð/Ü˜3œq™5¤™7 S¬¡U¬1¡WÑ,¨r´!©t´A©vÑ5Ô6Ð6Ð6Ü˜2œa™4¤™6 B¤q¡D¬¡F™?Ô+Ð+Ð+Üœ1œQ™3¤¤1¡™9¤q¬¡s™?Ô+Ð+Ð+Ü˜2œa™4¤™6 B¤q¡D¬¡F™?¨R´©T´!©VÑ3Ô4Ð4Ñ4rL   c                  óØ   — g d¢} | D ].  \  }}t        ||«      \  }}}||dz  z  ||dz  z  z   |dz  k(  rŒ.J ‚ t        t        d„ «       t        t        d„ «       t        t        d„ «       y )N)	r  r  r  r  r¶   r   r!  r"  r#  r\   c                  ó   — t        dd«      S )Nr|   r…   ©r   rP   rL   rJ   rQ   ztest_descent.<locals>.<lambda>ã  s   € œg b¨"›o€ rL   c                  ó   — t        dd«      S )Nr   rT   rG  rP   rL   rJ   rQ   ztest_descent.<locals>.<lambda>å  s   € ¤g¨a°£m€ rL   c                  ó   — t        dd«      S )Nrk   rT   rG  rP   rL   rJ   rQ   ztest_descent.<locals>.<lambda>ç  s   € œg a¨›m€ rL   )r   r@   rU   ÚZeroDivisionErrorr$  s         rJ   Útest_descentrK  Û  su   € â	g€AØò '‰ˆˆ1Ü˜!˜Q“-‰ˆˆ1ˆaØ��A‘‰v˜˜!˜Q™$™‰ ! Q¡$Ó&Ð&Ð&ð'ô
 Œ9Ñ-Ô.ä
ÔÑ3Ô4ä
Œ9Ñ+Õ,rL   c                  ó’  — t        t        t        z
  t        t        z
  z  t        t        z
  z  «      sJ ‚t        t        t        z
  t        dz  t        dz  z   t        dz  z
  z  «      sJ ‚t        t        dt        z  z
  dt        z  z   t        dz  t        dz  z   t        dz  z
  z  «      sJ ‚t        t        dz  dt        dz  z  z
  dz
  «      sJ ‚t        t        dz  dt        z  t        z  z   «      sJ ‚t        t        dz  dt        z  t        z  z
  t        dz  z   «      sJ ‚t        t        t        dz  t        dz  z
  dz
  z  «      sJ ‚t        t        dt        z  dt        z  z
  dz   z  «      sJ ‚t        t        dz  dt        dz  z  z
  dz
  t        dz  t        dz  z
  dz
  z  «      sJ ‚t        t        dz  dt        dz  z  z
  dz
  t        dt        z  z
  z  «      sJ ‚t        t        dz  t        dz  z   t        dz  z
  t        dt        z  z
  dt        z  z
  dt        z  z   z  «      sJ ‚t        t        dz  dt        z  t        z  z
  dt        z  t        z  z   «      sJ ‚t        t        dz  dt        z  z
  dz   «      sJ ‚t        t        t        z
  «      t        t        t        t        «      «      k(  sJ ‚t        dz  t        dz  z   dz
  } t        | d	¬
«      t        |  d	¬
«      k(  sJ ‚t        dt        z  t        z  dt        z  t        z  z
  «      dt        z  dt        z  fhk(  sJ ‚t        dz  t        dz  z   t        dz  z   dz
  } dh}t        | «      |k(  sJ ‚t        t        |j                  «       «      «      }t        | d	¬
«      |k(  sJ ‚t        t        dz  t        t        dd«      z  z   dz
  «      t        «       k(  sJ ‚dt        dz  z  dt        dz  z  z
  t        dz  z
  } | j                  «       }t        t        t        t        f|«      dhk(  sJ ‚t        | «      dt        dz  z  dt         dz  z  z   dt        dz  z  dt        z  t         z  z
  dt         dz  z  z   dt        dz  z  dt        z  t         z  z
  dt         dz  z  z
  fhk(  sJ ‚dt        dz  z  dt        dz  z  z   t        dz  z
  } | j                  «       }t        t        t        t        f|«      dhk(  sJ ‚t        | «      dt        dz  z  t         dz  z
  dt        dz  z  dt        z  t         z  z   t         dz  z
  dt        dz  z  dt        z  t         z  z
  dt         dz  z  z   fhk(  sJ ‚dt        dz  z  dt        dz  z  z   dt        dz  z  z
  } | j                  «       }t        t        t        t        f|«      dhk(  sJ ‚t        | «      dt        dz  z  dt         dz  z  z
  dt        dz  z  d t        z  t         z  z   d!t         dz  z  z
  d"t        dz  z  d#t        z  t         z  z
  d$t         dz  z  z   fhk(  sJ ‚d%t        dz  z  d&t        dz  z  z   d't        dz  z  z
  } | j                  «       }t        t        t        t        f|«      d(hk(  sJ ‚t        | «      d)t        dz  z  d*t         dz  z  z
  d+t        dz  z  d,t        z  t         z  z   d-t         dz  z  z
  d.t        dz  z  d/t        z  t         z  z
  d0t         dz  z  z   fhk(  sJ ‚t        dz  dt        dz  z  z   d1t        dz  z  z
  } | j                  «       }t        t        t        t        f|«      d2hk(  sJ ‚t        | «      d3t        z  t         z  dt        dz  z  d3t         dz  z  z
  t        dz  d1t         dz  z  z   fhk(  sJ ‚t#        t$        d4„ «       t        dt        z  «      t        «       k(  sJ ‚t        dt        z  dt        z  z   t&        j(                  z
  «      h d5£k(  sJ ‚t        t        dz  t        dz  z   dt        z  z   dz
  d	¬
«      h d6£k(  sJ ‚t        t        dz  t        dz  z   d7z
  d8z
  t        t        fd	¬9«      h d:£k(  sJ ‚t        t        dz  t        dz  z   d7z
  d8z
  t        t        fd	¬9«      h d:£k(  sJ ‚t        t        dz  t        z
  «      sJ ‚t        t        dz  t        z
  «      sJ ‚t        t        dz  t        z
  t*        «      t*        t*        dz  fhk(  sJ ‚t        t        dz  t        z
  t*        «      t*        dz  t*        fhk(  sJ ‚y );Nr\   rT   r€   r[   rn   r~   rk   éa   T©Úpermuterm   ©r[   r\   rT   é\   éc   )r‰   r€   é3   i{  r‰   iKýÿÿéf   i¹  ij  rS  )r[   r[   r\   r}   i›  é9   éÝ   )iå  iU
  iú  iýÁ i±Ð i³ýÿi¤­ iaë iªª iÚ™ iÒV
 i=  i  iØ  )r6  éé   é   i	  iÈ>  iÿ®ÿÿipE iˆ* i',  i¢  i¸¢  rˆ   )r   r\   r[   rº   c                  ó:   — t        t        t        dz  z  dz   «      S )Nr\   r[   ©r   rO   rh   rP   rL   rJ   rQ   z"test_diophantine.<locals>.<lambda>-  s   € ¬´A´a¸±d±F¸Q±JÓ(?€ rL   >   ©rT   r‚   ©rk   rk   ©r‚   rT   ©r}   r[   r·   >   ©rk   r[   ©rk   r|   ©r¼   r[   ©r¼   r|   ©r|   r[   r¶   r   r°   r»   éQ   )ÚsymsrO  >   ©r\   r…   ©rT   r}   ©r…   r\   ©r…   r}   ©r}   rT   ©r}   r…   ©r\   rT   ©rT   r\   )rÀ   rO   rh   ri   rg   r   r   r   rŽ   rX   rB   Úpopr   Úas_coefficients_dictr6   r8  r9  r@   ry   r	   ÚHalfrª   )rI   Úbase_solÚcomplete_solnr  s       rJ   Útest_diophantiners  ê  sÔ  € ÜœA¤™E¤A¬¡E™?¬A´©EÑ2Ô3Ð3Ð3ÜœA¤™E¤A q¡D¬1¨a©4¡K´!°Q±$Ñ$6Ñ7Ô8Ð8Ð8ÜœA ¤!¡™G a¬¡c™M¬A¨q©D´1°a±4©K¼!¸Q¹$Ñ,>Ñ?Ô@Ð@Ð@Üœ1˜a™4 !¤A q¡D¡&™=¨1Ñ,Ô-Ð-Ð-Üœ1˜a™4 !¤A¡#¤a¡%™<Ô(Ð(Ð(Üœ1˜a™4 !¤A¡#¤a¡%™<¬!¨Q©$Ñ.Ô/Ð/Ð/Üœ1œa ™d¤Q¨¡T™k¨BÑ.Ñ/Ô0Ð0Ð0Üœ1˜a¤™c A¤a¡C™i¨!™mÑ,Ô-Ð-Ð-ÜœA˜q™D 1¤Q¨¡T¡6™M¨AÑ-´°1±´q¸!±t±¸bÑ0@ÑAÔBÐBÐBÜœA˜q™D 1¤Q¨¡T¡6™M¨AÑ-´°A´a±C±Ñ8Ô9Ð9Ð9ÜœA˜q™D¤1 a¡4™K¬!¨Q©$Ñ.´°Q´q±S±¸1¼Q¹3±ÀÄ1ÁÑ1DÑEÔFÐFÐFô œ1˜a™4 !¤A¡#¤a¡%™<¨!¬A©#¬a©%Ñ/Ô0Ð0Ð0Üœ1˜a™4 !¤A¡#™:¨™>Ô*Ð*Ð*ä”qœ1‘uÓ¤¬R´´1«XÓ!6Ò6Ð6Ð6ä	
ˆA‰”�1‘‰�rÑ	€BÜ�r 4Ô(¬K¸¸ÀTÔ,JÒJÐJÐJÜ�qœ‘sœ2‘v ¤!¡¤B¡‘Ó'¨Q¬s©U°A´c±E¨NÐ+;Ò;Ð;Ð;Ü	
ˆA‰”�1‘‰”q˜!‘tÑ	˜bÑ	 €BØˆ{€HÜ�r‹?˜hÒ&Ð&Ð&ÜÔ+¨H¯L©L«NÓ;Ó<€MÜ�r 4Ô(¨MÒ9Ð9Ð9ä”q˜!‘tœa¤¨¨RÓ 0Ñ0Ñ0°1Ñ4Ó5¼»Ò>Ð>Ð>à	ŒAˆq‰D‰�2”a˜‘d‘7Ñ	œQ ™TÑ	!€BØ×#Ñ#Ó%€EÜ)¬1¬a´¨)°UÓ;Øˆ<òð ð ä�r‹?ØŒAˆq‰D‰�1”Q˜‘T‘6Ñ˜4¤ 1¡™9 s¬1¡u¬Q¡wÑ.°´1°a±4±Ñ7ØŒQ�‰T‰	�Dœ‘Fœ1‘HÑ˜r¤! Q¡$™wÑ&ð (ð )ò )ð )ð )ð 
Œ1ˆa‰4‰�!”A�q‘D‘&‰œ1˜a™4Ñ	€BØ×#Ñ#Ó%€EÜ)¬1¬a´¨)°UÓ;Øˆ;òð ð ä�r‹?Ø	Œ!ˆQ‰$‰”�A‘‰�rœ!˜Q™$‘w ¤1¡¤Q¡‘¬¨A©Ñ-Ø	Œ!ˆQ‰$‰�”1‘”Q‘‰˜œ1˜a™4™Ñð !ð "ò "ð "ð "ð 
ŒQ�‰T‰�"”Q˜‘T‘'Ñ	˜#œa ™d™(Ñ	"€BØ×#Ñ#Ó%€EÜ)¬1¬a´¨)°UÓ;ØÐò ð  ð  ä�r‹?Ø”A�q‘D‰[˜6¤! Q¡$™;Ñ&¨´°1±©°w¼q±yÄ±{Ñ(BØ”A�q‘D‰[ñ)Ø ¤ A¡™+¨¬q©´©
Ñ2°V¼A¸q¹D±[Ñ@ðBð CòCð Cð Cð 
ŒQ�‰T‰�#”a˜‘d‘(Ñ	˜3œq !™t™8Ñ	#€BØ×#Ñ#Ó%€EÜ)¬1¬a´¨)°UÓ;ØÐòð ð ä�r‹?Ø”!�Q‘$‰Y˜œq !™t™Ñ# V¬A¨q©D¡[°5¼±7¼1±9Ñ%<¸uÄQÈÁT¹zÑ%IØ”1�a‘4‰Z˜%¤™'¤!™)Ñ# e¬A¨q©D¡jÑ0ð2ð 3ò3ð 3ð 3ô 
ˆA‰�”!�Q‘$‘‰˜œA˜q™D™Ñ	 €BØ×#Ñ#Ó%€EÜ)¬1¬a´¨)°UÓ;Øˆ;òð ð ä�r‹?Ø”‰T”!‰V�Q”q˜!‘t‘V˜b¤ A¡™gÑ%¤q¨!¡t¨b´°A±©g¡~Ð6Ð7ò8ð 8ð 8ô ÔÑ ?Ô@ô �qœ‘sÓœs›uÒ$Ð$Ð$Ü�qœ‘s˜Qœq™S‘y¤1§6¡6Ñ)Ó*Ò.XÒXÐXÐXÜ”q˜!‘tœa ™d‘{ A¤a¡CÑ'¨Ñ*°DÔ9ÚSòTð Tð Tô
 ”q˜!‘tœa ™d‘{ TÑ)¨DÑ0¼¼1°vÀtÔLÚSòTð Tð Tä”q˜!‘tœa ™d‘{ TÑ)¨DÑ0¼¼1°vÀtÔLÚSòTð Tð Tô œ1˜a™4¤!™8Ô$Ð$Ð$Üœ1˜a™4¤!™8Ô$Ð$Ð$Üœ˜1™œq™¤1Ó%¬1¬a°©d¨)¨Ò4Ð4Ð4Üœ˜1™œq™¤1Ó%¬1¨a©4´¨)¨Ò4Ð4Ñ4rL   c                  óÄ  — ddl m} m}m}m}m} t        | dz  |dz  z   |dz  z   |dz  z
  «      sJ ‚t        | dz  d|dz  z  z   d|dz  z  z   |dz  z
  «      sJ ‚t        d| dz  z  d|dz  z  z   d|dz  z  z   |dz  z
  «      sJ ‚t        d| dz  z  d|dz  z  z   d|dz  z  z
  d|dz  z  z   «      sJ ‚t        d| dz  z  d|dz  z  z
  d|dz  z  z   d|dz  z  z   «      sJ ‚t        |dz   d| dz  z  z   d|dz  z  z   d|dz  z  z   d|dz  z  z   «      sJ ‚t        d| dz  z  |dz  z
  d|dz  z  z   |dz  z   d|dz  z  z   «      sJ ‚t        | dz  |dz  z   |dz  z   |dz  z
  «      j                  t        t        t        g¬«      t        dz  t        dz  z   t        dz  z
  dt        z  t        z  dt        z  t        z  t        dz  t        dz  z   t        dz  z   fhk(  sJ ‚y )	Nr   ©r%  r&  ÚcÚdÚer\   rk   r‰   rÃ   r»   ©Ú
parameters)Ú	sympy.abcr%  r&  rv  rw  rx  rÀ   r=   rÈ   rO   rh   ri   ru  s        rJ   Útest_general_pythagoreanr|  C  s7  € ß'Õ'ä˜1˜a™4 ! Q¡$™;¨¨A©Ñ-°°1±Ñ4Ô5Ð5Ð5Ü˜1˜a™4 ! A q¡D¡&™=¨1¨Q°©T©6Ñ1°A°q±DÑ8Ô9Ð9Ð9Ü˜1˜Q ™T™6 A a¨¡d¡F™?¨Q¨q°!©t©VÑ3°a¸±dÑ:Ô;Ð;Ð;Ü˜1˜Q ™T™6 A a¨¡d¡F™?¨R°°1±©WÑ4°q¸¸A¹±vÑ=Ô?Ð?Ð?Ü˜1˜Q ™T™6 B q¨!¡t¡GÑ+¨a°°1±©fÑ4°q¸¸A¹±vÑ=Ô>Ð>Ð>Ü˜A˜q™D˜5 1 Q¨¡T¡6™>¨A¨a°©d©FÑ2°Q°q¸!±t±VÑ;¸bÀÀAÁ¹gÑEÔFÐFÐFÜ˜2˜a ™d™7 Q¨¡T™>¨A¨a°©d©FÑ2°Q¸±TÑ9¸B¸qÀ!¹t¹GÑCÔDÐDÐDä˜a ™d Q¨¡T™k¨A¨q©DÑ0°1°a±4Ñ7Ó8×>Ñ>Ì1ÌaÔQRÈ)Ð>ÓTÜ�‰T”A�q‘D‰[œ1˜a™4Ñ ¤1¡¤Q¡¨¬!©¬A©¬q°!©t´a¸±d©{¼QÀ¹TÑ/AÐBÐCòDð Dñ DrL   c            
      óØ  ‡— t        dd«      D ].  } t        t        d„ t        d| z  «      D «       «      | z
  «      rŒ.J ‚ t	        t
        dz  t        dz  z   dz
  «      �J ‚t	        t
        dz  t        dz  z   t        dz  z   dz   «      t        «       k(  sJ ‚t
        dz  t        dz  z   t        dz  z   dz
  Št	        ‰«      dhk(  sJ ‚t        dz  t        dz  z   t
        dz  z   t        dz  z   t        dz  z   dz
  Št        t	        ‰d«      «      dk(  sJ ‚t        d	«      t        d
d¬«      fz   }t        |D � cg c]  } | dz  ‘Œ	 c} Ž dz
  Šh d£}t        ‰«      |k(  sJ ‚t        t        ‰d¬«      «      dk(  sJ ‚t        dt
        dz  z
  t        dz  z
  t        dz  z
  «      dhk(  sJ ‚t        dz  t        dz  z   t         dz  z   t"        dz  z   dz
  Št%        t&        ˆfd„«       y c c} w )NrT   r³   c              3   ó&   K  — | ]	  }|d z  –— Œ y­w©r\   NrP   ©Ú.0Úis     rJ   ú	<genexpr>z9test_diop_general_sum_of_squares_quick.<locals>.<genexpr>T  s   è ø€ Ò"D¨A 1 a¥4Ñ"Dùó   ‚z:%ir\   rm   rP  i!  z:5Ú6T©Únegativeép   >   ©r   r   r\   r\   r\   rù   ©r   r   r\   r‚   r‚   rž   ©r   r   rk   rk   rk   r†   ©r   r[   r[   r[   rT   rù   ©r   r[   r[   r\   r~   r¨   ©r   r[   r[   r~   r‚   r�   ©r   r[   r\   rT   r€   r�   ©r   r[   r~   r~   r~   rž   ©r   r\   r\   r\   r‚   r†   ©r   r\   rT   rT   rT   r¨   ©r   r\   rT   r~   r~   r�   ©r   rT   rT   rT   r‚   r�   ©r[   r[   r[   rT   r‚   r†   ©r[   r[   r\   rT   rk   r¨   ©r[   r[   rT   rk   r‚   r�   ©r[   r\   rT   rT   r~   r†   ©r[   rT   rk   r~   r~   rž   ©r\   r\   rk   rk   r‚   rž   ©r\   rT   rT   rk   r~   r�   rN  iÀ  rˆ   )r\   r\   r\   rk   c                  ó   •— t        ‰  «      S rG   re   rH   s   €rJ   rQ   z8test_diop_general_sum_of_squares_quick.<locals>.<lambda>o  s   ø€ ¬°r°cÓ(:€ rL   )ÚrangerÀ   Úsumr
   r   rO   rh   ri   rX   r  rÐ   Úlenr   r   r%  r&  rv  rw  r@   ry   )r‚  ÚvarÚ	base_solnrI   s      @rJ   Ú&test_diop_general_sum_of_squares_quickr¢  R  sò  ø€ Ü�1�b‹\ò JˆÜœsÑ"D´¸À¹Ó1CÔ"DÓDÀqÑHÕIÐIÐIðJô '¤q¨!¡t¬a°©d¡{°Q¡Ó7Ð?Ð?Ð?Ü&¤q¨!¡t¬a°©d¡{´Q¸±TÑ'9¸AÑ'=Ó>Ä#Ã%ÒGÐGÐGÜ	
ˆA‰”�1‘‰”q˜!‘tÑ	˜yÑ	)€BÜ& rÓ*Øˆ;òð ð ä	
ˆA‰”�1‘‰”q˜!‘tÑ	œa ™dÑ	"¤Q¨¡TÑ	)¨DÑ	0€BÜÔ*¨2¨qÓ1Ó2°aÒ7Ð7Ð7ä
�$‹-œ7 3°Ô6Ð8Ñ
8€CÜ	˜SÖ!˜ˆq�!‹tÒ!Ð	" SÑ	(€BòP€Iô
 �r‹?˜iÒ'Ð'Ð'ÜŒ{˜2 tÔ,Ó-°Ò7Ð7Ð7ô �rœA˜q™D‘y¤1 a¡4Ñ'¬!¨Q©$Ñ.Ó/°I°;Ò>Ð>Ð>ô 
ˆA‰”�1‘‰”q˜!‘tÑ	œa ™dÑ	" QÑ	&€BÜ
ÔÓ :Õ;ùò! "s   Ä8G'c                  ól   — t         dz  t        dz  z   t        dz  z   dz
  } h d£}t        | «      |k(  sJ ‚y )Nr\   i@B >   ©i¨  éà  rì   ©r   r   éè  ©r   é  éÀ  ©r   éX  é   ©r   é`  i¨  ©rº   é€  rì   ©r©  é@  rì   ©é`   éh  i   ©rµ  r¥  ih  ©r¯  r¶  é`  ©r¶  r¥  r­  ©é˜   r¥  r¹  ©é¨   r³  r­  ©r¾  éà   rª  ©rö   r±  iè  ©rö   r¥  iX  ©rÀ  r¬  rì   ©r¥  r¬  r±  )rO   rh   ri   r   )rI   r¡  s     rJ   Útest_issue_23807rÅ  r  s=   € ä	
ˆA‰”�1‘‰”q˜!‘tÑ	˜gÑ	%€BòB€Iô
 �r‹?˜iÒ'Ð'Ñ'rL   c                  óê  — dD ]4  } t        dd«      D ]#  }t        | |«      D ]  }t        |«      |k(  rŒJ ‚ Œ% Œ6 t        t        dd«      «      g k(  sJ ‚t        ddd«      D �cg c]  }t        |«      ‘Œ c}g d¢g d¢g d¢gk(  sJ ‚t        t        d	«      «      d
gk(  sJ ‚t        t        dd	«      «      d
gk(  sJ ‚t        d«      D �cg c]  }t        |«      ‘Œ c}g d¢ddgdggk(  sJ ‚y c c}w c c}w )N)rƒ   r³   r[   rƒ   rT   r~   )r   r   r   r   rT   )r   r   r   r[   r\   )r   r   r[   r[   r[   r   rP   )r[   r[   r[   r\   )r�  r$   rŸ  Úlist)ÚnÚkr8  r‚  s       rJ   Útest_diop_partitionrÊ  }  s  € Øò #ˆÜ�q˜!“ò 	#ˆAÜ˜q !“_ò #�Ü˜1“v “{Ð"�{ñ#ñ	#ð#ô ”	˜!˜Q“Ó  BÒ&Ð&Ð&Ü& q¨!¨QÓ/Ö0˜ŒD��GÒ0Úšª/ð5;ò ;ð ;ð ;ä”	˜!“Ó " Ò%Ð%Ð%Ü”	˜!˜Q“Ó  R DÒ(Ð(Ð(Ü& q›\Ö*˜ŒD��GÒ*ªy¸1¸a¸&À1À#Ð.FÒFÐFÑFùò	 1ùò +s   Á#C+ÃC0c                  ó´   — dD ]   } t        | «      \  }}|dz  |dz  z   | k(  rŒ J ‚ t        d«      �J ‚t        d«      }|dk(  rt        |d   «      t        u sJ ‚y )N)
r~   rÄ   r®   r‹   é%   r½   i%	  iå  iˆ  iYü  r\   r€   i5 )iÂ  i  r   )r&   ÚtypeÚint)r‚  r%  r&  Úanss       rJ   Ú test_prime_as_sum_of_two_squaresrÐ  Š  sv   € Ø>ò  ˆÜ*¨1Ó-‰ˆˆ1Ø�!‰t�a˜‘d‰{˜aÓÐÐð ô ' qÓ)Ð1Ð1Ð1Ü
% fÓ
-€CØ�*Ò¤ c¨!¡f£´Ñ!4Ð4Ð4Ð!4rL   c                  ó   — dD ].  } t        | «      \  }}}|dz  |dz  z   |dz  z   | k(  sJ ‚|dk\  rŒ.J ‚ t        t        d„ «       t        d«      �J ‚t        d«      �J ‚t        d«      dk(  sJ ‚t        d	«      d
k(  sJ ‚y )N)r   r[   r\   r“   rø   l   Ámy l   ý85JdÎl   8l9þ_	 r­  i!  i"  i#  i$  i%  i&  r\   r   c                  ó   — t        d«      S ©Nr|   )r)   rP   rL   rJ   rQ   z+test_sum_of_three_squares.<locals>.<lambda>›  s   € Ô3°BÓ7€ rL   r€   i <  rÃ   )r   r   r~   rk   ©r   r   r\   )r)   r@   rx   )r‚  r%  r&  rv  s       rJ   Útest_sum_of_three_squaresrÕ  “  s¨   € ð1ò ˆä& qÓ)‰ˆˆ1ˆaØ�!‰t�a˜‘d‰{˜Q ™TÑ! QÒ&Ð&Ð&Ø�A‹vˆˆvð	ô Œ:Ñ7Ô8ä Ó"Ð*Ð*Ð*Ü 	Ó*Ð2Ð2Ð2ô   Ó# yÒ0Ð0Ð0Ü Ó" iÒ/Ð/Ñ/rL   c                  ób  — ddl m}   | dd«      }t        d„ t        |«      D «       «      |k(  sJ ‚t	        t
        d„ «       t        d«      D ]a  }t        |«      }t        |«      dk(  sJ ‚t        d	„ |D «       «      sJ ‚t        d
„ |D «       «      |k(  sJ ‚t        |«      t        |«      k(  rŒaJ ‚ y )Nr   )Úrandintr[   l    @ô Ìk c              3   ó&   K  — | ]	  }|d z  –— Œ y­wr  rP   r€  s     rJ   rƒ  z+test_sum_of_four_squares.<locals>.<genexpr>«  s   è ø€ Ò4˜ˆq�!�tÑ4ùr„  c                  ó   — t        d«      S rÓ  )r(   rP   rL   rJ   rQ   z*test_sum_of_four_squares.<locals>.<lambda>®  s   € Ô2°2Ó6€ rL   r§  rk   c              3   ó&   K  — | ]	  }|d k\  –— Œ y­w©r   NrP   ©r�  Úrs     rJ   rƒ  z+test_sum_of_four_squares.<locals>.<genexpr>³  s   è ø€ Ò*˜a�1˜•6Ñ*ùr„  c              3   ó&   K  — | ]	  }|d z  –— Œ y­wr  rP   rÜ  s     rJ   rƒ  z+test_sum_of_four_squares.<locals>.<genexpr>´  s   è ø€ Ò(˜A�1�a•4Ñ(ùr„  )Úsympy.core.randomr×  rž  r(   r@   rx   r�  rŸ  ÚallrÇ  Úsorted)r×  rÈ  Úresults      rJ   Útest_sum_of_four_squaresrã  ¦  s±   € Ý)ñ 	��?Ó#€AÜÑ4Ô0°Ó3Ô4Ó4¸Ò9Ð9Ð9ô Œ:Ñ6Ô7ä�4‹[ò .ˆÜ$ QÓ'ˆÜ�6‹{˜aÒÐÐÜÑ* 6Ô*Ô*Ð*Ð*ÜÑ( Ô(Ó(¨AÒ-Ð-Ð-Ü�F‹|œv f›~Ó-Ð-Ð-ñ.rL   c            	      ó8  — g d¢} | D ]K  }|\  }}}t        |||«      }	 	 t        |«      }t        |«      |k(  sJ ‚d}|D ]
  }|||z  z   }Œ ||k(  sJ ‚	 Œ6 t	        t        dddd«      «      ddgk(  sJ ‚t        t        d	„ «       t        t        d
„ «       t        t        d„ «       t	        t        ddd«      «      g k(  sJ ‚t	        t        ddd«      «      dgk(  sJ ‚t	        t        ddd«      «      g k(  sJ ‚t	        t        ddd«      «      dgk(  sJ ‚t	        t        dddd¬«      «      ddgk(  sJ ‚t	        t        dddd¬«      «      g k(  sJ ‚t	        t        ddd«      «      dgk(  sJ ‚t	        t        ddd«      «      g k(  sJ ‚t	        t        dddd«      «      dgk(  sJ ‚t	        t        dddd«      «      g k(  sJ ‚t        t	        t        ddd«      «      «      dk(  sJ ‚d}	dD ]   }
t	        t        |	d|	|
z
  «      «      g k(  rŒ J ‚ y # t        $ r Y �Œw xY w)N))rü   rT   r\   )r)  r\   rk   )r\   r[   r\   )rT   r[   rT   )r~   r\   r\   )i@0  r\   rk   )iø  r\   rT   Tr   rŠ   r\   rk   )r[   r[   rT   rT   )r   r   r\   rk   c                  ó.   — t        t        ddd«      «      S )Ng333333ó?r\   ©rÇ  r%   rP   rL   rJ   rQ   z+test_power_representation.<locals>.<lambda>Ï  s   € œtÔ$8¸¸aÀÓ$CÓD€ rL   c                  ó.   — t        t        ddd«      «      S ©Nr\   r   ræ  rP   rL   rJ   rQ   z+test_power_representation.<locals>.<lambda>Ð  ó   € œtÔ$8¸¸A¸qÓ$AÓB€ rL   c                  ó.   — t        t        ddd«      «      S rè  ræ  rP   rL   rJ   rQ   z+test_power_representation.<locals>.<lambda>Ñ  ré  rL   r|   r[   r]   rT   r^   rd  r‚   )Úzeros)r[   r\   r\   r\   r\   r\   )r   r   r   r   r   rT   r~   Fr}   r°   rØ   i  pi   @)rÄ   r³   r€   r~   rk   r\   r[   )r%   ÚnextrŸ  ÚStopIterationrÇ  r@   rx   r4   )ÚtestsÚtestrÈ  r8  rÉ  ÚfÚlÚchk_sumÚl_iÚbigr‚  s              rJ   Útest_power_representationrõ  ¸  s  € ò€Eð ò ˆØ‰ˆˆ1ˆaÜ   A qÓ)ˆàð
Ü˜“G�Ü˜1“v ’{Ð"�{à�Øò /�CØ%¨¨Q©Ñ.‘Gð/à !’|Ð#‘|ð ð	ô" Ô$ R¨¨A¨tÓ4Ó5Ø	�|Ð$ò%ð %ð %ä
Œ:ÑDÔEÜ
Œ:ÑBÔCÜ
Œ:ÑBÔCÜÔ$ R¨¨AÓ.Ó/°2Ò5Ð5Ð5ÜÔ$ Q¨¨1Ó-Ó.°4°&Ò8Ð8Ð8ÜÔ$ Q¨¨1Ó-Ó.°"Ò4Ð4Ð4ÜÔ$ Q¨¨1Ó-Ó.°4°&Ò8Ð8Ð8ÜÔ$ T¨1¨a°tÔ<Ó=Ø	Ð/Ð0ò1ð 1ð 1äÔ$ T¨1¨a°uÔ=Ó>À"ÒDÐDÐDÜÔ$ R¨¨AÓ.Ó/°H°:Ò=Ð=Ð=ÜÔ$ R¨¨AÓ.Ó/°2Ò5Ð5Ð5ÜÔ$ Q¨¨1¨dÓ3Ó4¸¸Ò@Ð@Ð@ÜÔ$ Q¨¨1¨eÓ4Ó5¸Ò;Ð;Ð;äŒtÔ(Ð)9¸1¸aÓ@ÓAÓBÀaÒGÐGÐGà
€CØ$ò :ˆÜ”M # q¨#°©'Ó2Ó3°rÓ9Ð9Ð9ñ:øô/ !ò Úðús   Ÿ3HÈ	HÈHc                  ó8  — t        ddd¬«      \  } }t        |dz  | |z  z   dz
  «      }|h d£k(  sJ ‚t        ddd¬«      \  }}t        ||z  d|z  z   d	|z  z   d
z
  «      }|h d£k(  sJ ‚t        dd¬«      \  }}t        d|dz  z  d|z  |z  z   d	|z  z
  «      }|h d£k(  sJ ‚t        ddd¬«      \  }}t        d|dz  z  d|z  |z  z   d	|z  z
  «      }|t        «       k(  sJ ‚t        ddd¬«      \  }}t        d|dz  z  d|z  |z  z   d	|z  z
  «      }|dhk(  sJ ‚y)z<
    Test whether diophantine respects the assumptions.
    zm nT)rD   Úpositiver\   iô  >   ©ió  r[   ©r~   rŠ   ©r¾   r³   ©é_   r~   ©éy   rk   ©éø   r\   za bFrT   r‚   >   ©r²   r…   ©r¨   r¼   ©r�   r   ©rž   rž   ©r   r†   ©r¼   rš   zx yrC   r³   r~   >   ©r[   r   ©r…   r~   rØ   )rD   r‡  rØ   N)r
   r   rX   )ÚmrÈ  Údiofr%  r&  rO   rh   s          rJ   Útest_assumptionsr  å  sZ  € ô �5 $°Ô6�D€A€qÜ�q˜!‘t˜a ™c‘z CÑ'Ó(€DØÒMÒMÐMÐMä�5 $°Ô7�D€A€qÜ�q˜‘s˜Q˜q™S‘y 1 Q¡3‘¨Ñ*Ó+€DØÒQÒQÐQÐQä�5 $Ô'�D€A€qÜ�r˜!˜Q™$‘w  1¡ Q¡‘¨¨1©Ñ,Ó-€DØÒ-Ò-Ð-Ð-ä�5 $°Ô6�D€A€qÜ�r˜!˜Q™$‘w  1¡ Q¡‘¨¨1©Ñ,Ó-€DØ”3“5Š=Ðˆ=ä�5 $°Ô7�D€A€qÜ�r˜!˜Q™$‘w  1¡ Q¡‘¨¨1©Ñ,Ó-€DØ�F�8ÒÐÑrL   c           	      ó&  — t        | «      }t        j                  | «      }t        | j                  «      }|j                  t        ¬«       |rD|j                  «       }|D ]+  }t        |j                  t        ||«      «      «      dk(  sŒ+ n y|rŒDy)zá
    Determines whether solutions returned by diophantine() satisfy the original
    equation. Hope to generalize this so we can remove functions like check_ternay_quadratic,
    check_solutions_normal, check_solutions()
    )Úkeyr   FT)r   r   Ú	make_argsrÇ  Úfree_symbolsÚsortr   rn  rK   r  rÎ   )rI   ÚsÚfactorsr   Úsolutionrð  s         rJ   rÀ   rÀ      s„   € ô 	�B‹€Aä�m‰m˜BÓ€Gä
ˆr�‰Ó
€CØ‡H�HÔ!€HÔ"á
Ø—5‘5“7ˆØò 	ˆAÜ˜QŸV™V¤C¨¨XÓ$6Ó7Ó8¸AÓ=Ùð	ð ò ð rL   c            	      óD  — dt         z  t        z   dz   dz  } t        | «      t        dt        z  dz
  fhk(  sJ ‚dt         dz  z  dt         z  t        z  z   dt         z  z   dt        dz  z  z   dt        z  z   dz   } t        | «      t        t         dz
  fdt        z  dz
  t        fhk(  sJ ‚t        t         t        dz  z   dz
  «      t        dz   dz   t        fhk(  sJ ‚t        t         t        z   dz
  «      t        dt        z
  fk(  sJ ‚t        d	ddd ¬
«      dk(  sJ ‚dt        z  dz
  dt        z  dz   f}t        dddt        «      |k(  sJ ‚t        dddd ¬
«      t        d„ |D «       «      k(  sJ ‚t        ddd«      t        «       k(  sJ ‚t        ddd«      dhk(  sJ ‚t        ddd«      dhk(  sJ ‚t        t        d„ «       t        ddd«      dk(  sJ ‚t        dz   t         dz  z
  t        dz  z
  t        dz  z   } t!        | «      t!        |  «      cxk(  r\t"        dz  t$        dz  z   t&        dz  z
  dt"        z  t&        z  dt$        z  t&        z  t"        dz  t$        dz  z   t&        dz  z   fk(  sJ ‚ J ‚t)        t+        t-        d«      t         dz  z   t-        d«      t         dz  z   t-        d«      t         g«      «      d	k(  sJ ‚t)        t+        t/        dd«      t-        d«      t         z   t-        d«      t         g«      «      d	k(  sJ ‚t)        t+        t-        d«      t         z   t/        dd«      t-        d«      t         g«      «      d	k(  sJ ‚t1        dd«      dk(  sJ ‚t3        d«      t5        d«       cxk(  rdk(  sJ ‚ J ‚t3        d	«      t5        d	«       cxk(  rdk(  sJ ‚ J ‚t7        ddd«      dk(  sJ ‚t        t8        d„ «       t;        ddd«      dk(  sJ ‚t        t<        d„ «       t        t<        d „ «       t        t         dz  t        dz  z   dz
  d!z
  «      h d"£k(  sJ ‚y )#Nr\   r[   r}   r‚   rˆ   rk   r‡   rT   r   ©rª   rØ   rƒ   c              3   óH   K  — | ]  }|j                  t        d «      –— Œ y­wrÛ  )r  rª   )r�  Ú_s     rJ   rƒ  z$test_diopcoverage.<locals>.<genexpr>#  s   è ø€ Ò:UÈA¸1¿6¹6Ä!ÀQ¿<Ñ:Uùs   ‚ "rŠ   r~   rÚ   r®   rm  c                  ó   — t        ddd«      S )Nrk   rŠ   r[   )r#   rP   rL   rJ   rQ   z#test_diopcoverage.<locals>.<lambda>)  s   € œ{¨1¨b°!Ó4€ rL   r¶   r»   r³   TFrP  c                  ó   — t        d«      S )N)r\   rk   r‚   )r:   rP   rL   rJ   rQ   z#test_diopcoverage.<locals>.<lambda>;  s   € œk¨)Ó4€ rL   rl   én   i6  )r¯   r[   r~   c                  ó~   — t        t        dz  t        dz  z   t        t        z  z   dt        z  t        z  z   dz
  «      S )Nr\   rˆ   ©r   rO   rh   ri   rP   rL   rJ   rQ   z#test_diopcoverage.<locals>.<lambda>@  s3   € ¬´A°q±D¼1¸a¹4±KÄ!ÄAÁ#Ñ4EÈÌ!ÉÌAÉÑ4MÐPRÑ4RÓ(S€ rL   c                  ó:   — t        t        dz  t        dz  z   «      S )NrT   r\   rZ  rP   rL   rJ   rQ   z#test_diopcoverage.<locals>.<lambda>A  s   € ¬´A°q±D¼1¸a¹4±KÓ(@€ rL   rd  >   ©r[   r‰   ©r[   r¨   ©r‰   r|   ©r¨   r|   ©r|   r‰   ©r|   r¨   rþ   r§   )rO   rh   r   rŽ   rª   r   r   r-   Útupler.   rX   r@   rx   r0   rg   ri   r   Úm1Úm2Úm3rŸ  r2   r	   r   r7   r8   r9   r:   rU   r/   ry   )rI   rÏ  s     rJ   Útest_diopcoverager(    sý  € Ø
ŒA‰#”‰'�A‰+˜Ñ	€BÜ�b‹>œs B¤s¡F¨Q¡JÐ/Ð0Ò0Ð0Ð0Ø	
Œ1ˆa‰4‰�!”A‘#”a‘%‰˜"œQ™$Ñ	 ¤1 a¡4¡Ñ	'¨"¬Q©$Ñ	.°Ñ	3€BÜ�b‹>œq¤1 " q¡&˜k¨B¬q©D°1©H´a¨=Ð9Ò9Ð9Ð9Üœ!œa ™d™( Q™,Ó'¬a°©d¨U°Q©Y¼¨NÐ+;Ò;Ð;Ð;ä”qœ1‘u˜q‘yÓ!¤c¨1¬s©7 ^Ò3Ð3Ð3ä  1 a¨4Ô0°FÒ:Ð:Ð:ØŒQ‰3�‰7�B”q‘D˜1‘HÐ
€CÜ  1 b¬!Ó,°Ò3Ð3Ð3Ü  1 b¨DÔ1´UÑ:UÐQTÔ:UÓ5UÒUÐUÐUä�a˜˜BÓ¤3£5Ò(Ð(Ð(Ü�a˜˜AÓ 6 (Ò*Ð*Ð*Ü�a˜˜BÓ F 8Ò+Ð+Ð+ä
Œ:Ñ4Ô5ä˜1˜a Ó# vÒ-Ð-Ð-Ü
ˆQ‰$ˆ”�A‘‰œ˜1™Ñ	œq !™tÑ	#€Bä# BÓ'Ü  " Ó%ô,ä�‰U”R˜‘U‰]œR ™UÑ" A¤b¡D¬¡GØŒb‰D”‰G”R˜‘UœR ™U‘]¤R¨¡UÑ*ð,ò,ð ,ñ ,ð ,ð ,ô
 Œ{œ1˜Q›4¤! A¡#™:¤q¨£t¬a°©c¡z´1°Q³4¼!¸Ó=Ó>À!ÒCÐCÐCÜŒ{œ8 A q›>¬1¨Q«4´!©8´Q°q³T¼A¸3Ó?Ó@ÀAÒEÐEÐEÜŒ{œ1˜Q›4¤!™8¤X¨a°£^´Q°q³T¼A¸3Ó?Ó@ÀAÒEÐEÐEä˜"˜bÓ! QÒ&Ð&Ð&Ü�‹7œ5 ›8�|Ô,¨Ò,Ð,Ñ,Ð,Ð,Ü�‹7œ5 ›8�|Ô-¨Ò-Ð-Ñ-Ð-Ð-Ü�q˜!˜QÓ 9Ò,Ð,Ð,Ü
Œ9Ñ4Ô5Ü�h ¨	Ó2Øòð ð ô ÔÑ SÔTÜ
ÔÑ @ÔAÜœ!˜Q™$¤ A¡™+¨Ñ,¨tÑ3Ó4ÚSòTð Tñ TrL   c                  óz   — t        dddddd«      dk(  sJ ‚t        dddd	d	d
«      dk(  sJ ‚t        t        d„ «       y )Nr\   r€   rÄ   rk   éO   r­   ©r\   r€   rÄ   r‚   r[   r³   )r\   r‚   r\   c                  ó"   — t        dddddd«      S )Nr\   r€   rm   rk   r*  r­   )r1   rP   rL   rJ   rQ   ztest_holzer.<locals>.<lambda>O  s   € œv a¨¨B°°2°rÓ:€ rL   )r1   r@   rx   rP   rL   rJ   Útest_holzerr-  F  sK   € ô �!�Q˜˜A˜r 2Ó&¨*Ò4Ð4Ð4ô �!�Q˜˜1˜a Ó$¨	Ò1Ð1Ð1ä
Œ:Ñ:Õ;rL   c                  óB  ‡
‡‡— ˆ
ˆˆfd„} d\  Š
ŠŠdx\  }}}}dx\  }}}} | |Ž dk(  sJ ‚ | |Ž dk(  sJ ‚t        ‰
|dz  z  ‰|dz  z  ‰|dz  z  «      ‰
‰z  ‰z  k  sJ ‚t        ‰
|dz  z  ‰|dz  z  ‰|dz  z  «      ‰
‰z  ‰z  k  sJ ‚t        |||‰
‰‰«      }	|	|k(  sJ ‚y )Nc                 ó8   •— ‰| dz  z  ‰|dz  z  z   ‰|dz  z  z
  S r�   rP   )rO   rh   ri   r%  r&  rv  s      €€€rJ   rQ   z"test_fail_holzer.<locals>.<lambda>T  s(   ø€ ˜˜1˜a™4™ ! A q¡D¡&™¨1¨Q°©T©6Ñ1€ rL   )rk   r*  r­   )é   r[   r¯   r+  r   r\   )Úmaxr1   )rI   rO   rh   ri   Úxyzr  r  r0  rÏ  Úhr%  r&  rv  s             @@@rJ   Útest_fail_holzerr4  R  sà   ú€ å	1€BØ�G€A€qˆ!ØÐ�G€A€qˆ!ˆcØÐ�G€A€qˆ!ˆcÙˆsˆ8�qŠ=Ðˆ=Ùˆsˆ8�qŠ=Ðˆ=Üˆq��A‘‰v�q˜˜A™‘v˜q  A¡™vÓ&¨!¨A©#¨a©%Ò/Ð/Ð/Üˆq��A‘‰v�q˜˜A™‘v˜q  A¡™vÓ&¨!¨A©#¨a©%Ò/Ð/Ð/Üˆq�!�Q˜˜1˜aÓ €AØ�Š8€O‰8rL   c                  óÎ   — t        dt        z  dt        z  z   dt        z  z   t        z
  «      t
        t        t        t        z   dt
        z  dt        z  z   dt        z  z   fhk(  sJ ‚y )Nr‚   r‰   rŠ   r‹   )r   rg   rh   rO   ri   rŽ   r�   r�   rP   rL   rJ   Útest_issue_9539r6  `  s[   € Ü�qœ‘s˜Qœq™S‘y 2¤a¡4Ñ'¬!Ñ+Ó,Ü”#”sœS‘y !¤C¡%¨"¬S©&¡.°1´S±5Ñ"8Ð9Ð:ò;ð ;ñ ;rL   c                  ó¼   — t        dt        dz  t        dz  z   t        dz  z   z  dt        t        z  t        t        z  z   t        t        z  z   z  z
  «      dhk(  sJ ‚y )NrT   r\   rm   ©r   r   r   r  rP   rL   rJ   Útest_issue_8943r9  e  sY   € ÜØ	Œ1ˆa‰4”!�Q‘$‰;œ˜A™ÑÑ ¤Q¤q¡S¬1¬Q©3¡Y´´1±¡_Ñ!5Ñ5ó7àˆ;òð ñ rL   c                  óÞ  ‡— t         dz  t        dz  z   t        dz  z   dz
  Št        ‰«      ddhk(  sJ ‚t	        ‰d«      ddhk(  sJ ‚t        t        ˆfd„«       t        dd¬	«      } t         dz  t        dz  z   | dz  z   dz
  Št	        ‰«      d
hk(  sJ ‚t        t         dz  t        dz  z   dz   «      t        «       k(  sJ ‚t	        t         dz  t        dz  z   dz
  d¬«      t        «       k(  sJ ‚y )Nrk   iq
  )rT   r‚   r‚   )r\   rk   r€   r\   c                  ó   •— t        ‰  d«      S r�   )r   rH   s   €rJ   rQ   z.test_diop_sum_of_even_powers.<locals>.<lambda>o  s   ø€ Ô(GÈÈÈQÓ(O€ rL   ÚnegTr†  )r…   r‚   r‚   r   )Úlimit)
rO   rh   ri   r   r   r@   ry   r
   r   rX   )r<  rI   s    @rJ   Útest_diop_sum_of_even_powersr>  k  së   ø€ Ü	
ˆA‰”�1‘‰”q˜!‘tÑ	˜dÑ	"€BÜ�b‹>˜i¨Ð3Ò3Ð3Ð3Ü*¨2¨qÓ1°iÀÐ5KÒKÐKÐKÜ
ÔÓ OÔPÜ
�% $Ô
'€CÜ	
ˆA‰”�1‘‰�s˜A‘vÑ	 Ñ	$€BÜ*¨2Ó.°:°,Ò>Ð>Ð>Ü”q˜!‘tœa ™d‘{ Q‘Ó'¬3«5Ò0Ð0Ð0Ü*¬1¨a©4´!°Q±$©;¸©?À!ÔDÌËÒMÐMÑMrL   c                  ó’  ‡— h d£} t         dz  t        dz  z   t        dz  z   t        dz  z   t        dz  z   dz
  }t        |t        «      }t        |«      dk(  sJ ‚|| k(  sJ ‚t        t        d„ «       t        t        dd«      «      dgk(  sJ ‚t        t        dd«      «      g k(  sJ ‚t        t        ddd«      «      d	gk(  sJ ‚t        t        d
d«      «      g k(  sJ ‚t        t        dd«      «      g k(  sJ ‚t        t        ddd«      «      dgk(  sJ ‚t        t        dd«      «      g k(  sJ ‚t        t        dd«      «      dgk(  sJ ‚t        t        dd«      «      g k(  sJ ‚t        t        dd«      «      ddgk(  sJ ‚t        t        ddd«      «      ddgk(  sJ ‚t        t        dd«      «      dgk(  sJ ‚t        d«      D �cg c]!  }t        t        t        |dd«      «      «      ‘Œ# c}g d¢k(  sJ ‚t        d«      D �cg c]   }t        t        t        |d«      «      «      ‘Œ" c}g d¢k(  sJ ‚t        d«      D ][  Št        t        ‰dd«      «      }|rt        ˆfd„|D «       «      sJ ‚t        t        ‰d«      «      }t        ˆfd„|D «       «      rŒ[J ‚ t        t        d„ «       t        t        d„ «       t        t        d dd«      «      d!gk(  sJ ‚t        t        d dd«      «      g k(  sJ ‚t        t        ddd«      «      dgk(  sJ ‚t        t        dddd«      «      d"d#gk(  sJ ‚t        t        dddd«      «      g d$¢k(  sJ ‚t        t        d%dd«      «      g k(  sJ ‚t        t        d&dd«      «      g k(  sJ ‚t        t        d'dd«      «      d(gk(  rd'd'k(  sJ ‚t        t        dd)z  dd«      «      g k(  sJ ‚y c c}w c c}w )*N>   ©r   r   r[   r[   r¯   ©r   r   r~   r€   r€   ©r   r[   rT   r€   rƒ   ©r   r[   rk   r~   r‰   ©r   rT   rk   r€   r€   ©r   rT   r~   r~   rƒ   ©r[   r[   r\   r‚   r‰   ©r[   r[   r‚   r‚   r€   ©r[   r\   rT   rT   r³   ©r[   rT   rk   rk   r‰   ©r[   r~   r~   r‚   r‚   ©r\   r\   rT   r~   r‰   ©r\   rT   r~   r‚   r€   ©rT   rT   rk   r~   rƒ   r\   rø   rm   c                  ó,   — t        t        dd«      «      S )Nr³   r|   )rÇ  r5   rP   rL   rJ   rQ   z,test_sum_of_squares_powers.<locals>.<lambda>€  s   € œt¤N°2°rÓ$:Ó;€ rL   r[   r]   T)r   r[   rù   rT   r   r8  rk   r^   r~   é2   )r~   r~   )r[   r€   r¯   )r[   r[   r[   r\   r\   )r   r   r[   r[   rT   rƒ   )r[   r[   r[   r[   r[   r[   r[   r[   r™   )r[   r[   r[   r[   r\   r\   r[   r[   r\   r\   r\   r\   r\   rT   r\   r[   rT   rT   rT   rT   rk   rT   rT   r\   r\   rk   rk   rk   rk   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[   r[   r[   r[   rT   c              3   óH   •K  — | ]  }t        d „ |D «       «      ‰k(  –— Œ y­w)c              3   ó&   K  — | ]	  }|d z  –— Œ y­wr  rP   ©r�  Újs     rJ   rƒ  z7test_sum_of_squares_powers.<locals>.<genexpr>.<genexpr>Ÿ  s   è ø€ Ò 1¨!  A¥Ñ 1ùr„  N©rž  ©r�  rª   r‚  s     €rJ   rƒ  z-test_sum_of_squares_powers.<locals>.<genexpr>Ÿ  s!   øè ø€ ÒC¸1œSÑ 1¨qÔ 1Ó1°QÕ6ÑCùó   ƒ"c              3   óH   •K  — | ]  }t        d „ |D «       «      ‰k(  –— Œ y­w)c              3   ó&   K  — | ]	  }|d z  –— Œ y­wr  rP   rR  s     rJ   rƒ  z7test_sum_of_squares_powers.<locals>.<genexpr>.<genexpr>¡  s   è ø€ Ò' �q˜!•tÑ'ùr„  NrT  rU  s     €rJ   rƒ  z-test_sum_of_squares_powers.<locals>.<genexpr>¡  s!   øè ø€ Ò9°”3Ñ' QÔ'Ó'¨1Õ,Ñ9ùrV  c                  ó.   — t        t        ddd«      «      S )Nr\   r|   r[   ©rÇ  r4   rP   rL   rJ   rQ   z,test_sum_of_squares_powers.<locals>.<lambda>£  s   € œt¤M°!°R¸Ó$;Ó<€ rL   c                  ó.   — t        t        ddd«      «      S )Nr\   r[   r|   rZ  rP   rL   rJ   rQ   z,test_sum_of_squares_powers.<locals>.<lambda>¤  s   € œt¤M°!°Q¸Ó$;Ó<€ rL   r}   r°   rÔ  )r   r[   r[   ))r   r~   )r[   rk   rl  r‚   éó   iÙ  )r‰   r§  )r  rÐ   rO   rh   ri   r   r   rŸ  r@   rx   rÇ  r5   r�  rX   rà  r4   )ÚtrurI   rÏ  r‚  Ús1Ús2s      `  rJ   Útest_sum_of_squares_powersr`  w  sÞ  ø€ ò-€Cô 
ˆA‰”�1‘‰”q˜!‘tÑ	œa ™dÑ	"¤Q¨¡TÑ	)¨CÑ	/€BÜ
% b¬"Ó
-€CÜˆs‹8�rŠ>Ðˆ>Ø�#Š:Ðˆ:ä
Œ:Ñ;Ô<Ü”˜q !Ó$Ó%¨$¨Ò/Ð/Ð/Ü”˜q !Ó$Ó%¨Ò+Ð+Ð+Ü”˜q ! TÓ*Ó+°¨xÒ7Ð7Ð7Ü”˜s AÓ&Ó'¨2Ò-Ð-Ð-Ü”˜q !Ó$Ó%¨Ò+Ð+Ð+Ü”˜q ! TÓ*Ó+°	¨{Ò:Ð:Ð:Ü”˜q !Ó$Ó%¨Ò+Ð+Ð+Ü”˜q !Ó$Ó%¨$¨Ò/Ð/Ð/Ü”˜q !Ó$Ó%¨Ò+Ð+Ð+Ü”˜r 1Ó%Ó&¨6°6Ð*:Ò:Ð:Ð:Ü”˜r 1 dÓ+Ó,Ø˜ð1*ò *ð *ð *ä”˜q !Ó$Ó%Ð*BÐ)CÒCÐCÐCä;@À»9ÖE°aŒC””^ A q¨$Ó/Ó0Õ1ÒEò Jò ð ð ô 6;¸2³YÖ?°ŒC””^ A qÓ)Ó*Õ+Ò?ò Dò ð ð ô �2‹Yò :ˆÜ”  1 dÓ+Ó,ˆÙœÓCÀÔCÔCÐCÐCÜ”  1Ó%Ó&ˆÜÓ9°bÔ9Õ9Ð9Ð9ð	:ô Œ:Ñ<Ô=Ü
Œ:Ñ<Ô=Ü”˜b ! QÓ'Ó(¨X¨JÒ6Ð6Ð6Ü”˜b ! QÓ'Ó(¨BÒ.Ð.Ð.Ü”˜a  AÓ&Ó'¨D¨6Ò1Ð1Ð1Ü”˜a  A tÓ,Ó-°)¸YÐ1GÒGÐGÐGÜ”˜a  A tÓ,Ó-Ò1IÒIÐIÐIÜ”˜a  AÓ&Ó'¨2Ò-Ð-Ð-Ü”˜d A qÓ)Ó*¨bÒ0Ð0Ð0Ü”˜d A qÓ)Ó*¨t¨fÒ4¸$À$º,ÐGÐGÜ”˜a ™g q¨!Ó,Ó-°Ò3Ð3Ñ3ùò= Fùò @s   Ç&N?È %Oc                  óÔ   — t        dd«      du sJ ‚t        dd«      du sJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd«      du sJ ‚y )	NrT   r|   Fr…   r[   r   rk   r\   )r;   rP   rL   rJ   Útest__can_do_sum_of_squaresrb  °  s�   € Ü! ! RÓ(¨EÑ1Ð1Ð1Ü! " aÓ(¨EÑ1Ð1Ð1Ü! ! QÔ'Ð'Ð'Ü! ! QÔ'Ð'Ð'Ü! ! QÔ'Ð'Ð'Ü! ! QÔ'Ð'Ð'Ü! ! QÓ'¨5Ñ0Ð0Ñ0rL   c                  óô  — ddl m} m}m}m}m} | dz  |dz  z   dz
  }dh}t        |«      |k(  sJ ‚t        t        |j                  «       «      «      }t        |d¬«      |k(  sJ ‚| dz  |dz  z   |dz  z   |dz  z   |dz  z   d	z
  }t        t        |«      «      d
k(  sJ ‚t        t        |d¬«      «      dk(  sJ ‚h d£}t        dt        dz  z  dt        z  t        z  z   dt        dz  z  z   dz
  d¬«      |k(  sJ ‚y )Nr   ru  rk   rM  rl  TrN  r\   r)  é#   i0ò  r´   r³   rˆ   r“   )r{  r%  r&  rv  rw  rx  r   rX   rB   rn  rŸ  rO   rh   )	r%  r&  rv  rw  rx  rI   rq  rr  Úsolns	            rJ   Útest_diophantine_permute_signrf  º  s  € ß'Õ'Ø	
ˆA‰��1‘‰˜Ñ	$€BØˆx€HÜ�r‹?˜hÒ&Ð&Ð&ÜÔ+¨H¯L©L«NÓ;Ó<€MÜ�r 4Ô(¨MÒ9Ð9Ð9à	
ˆA‰��1‘‰�q˜!‘tÑ	˜a ™dÑ	" Q¨¡TÑ	)¨CÑ	/€BÜŒ{˜2‹Ó 2Ò%Ð%Ð%ÜŒ{˜2 tÔ,Ó-°Ò6Ð6Ð6Ú/€DÜ�rœ!˜Q™$‘w ¤A¡¤a¡Ñ'¨"¬Q°©T©'Ñ1°BÑ6ÀÔEÈÒMÐMÑMrL   c                  ór   — t         dz  t        dz  z   dz
  dz
  } t        | t         t        g¬«      ddhk(  sJ ‚y )Nr\   rk   r[   rd  ©re  rþ   )r[   rT   ©rO   rh   r   rH   s    rJ   Útest_not_implementedrj  É  s;   € ä	
ˆA‰”�1‘‰�tÑ	˜dÑ	"€BÜ�r¤¤A Ô'¨F°FÐ+;Ò;Ð;Ñ;rL   c                  ó¬   ‡ — t         dt        z  z
  dz   Š t        ‰ t        t         g¬«      t        dt        z  dz
  fhk(  sJ ‚t	        t
        ˆ fd„«       y )NrT   r\   rh  c                  ó2   •— t        ‰ t        t        h¬«      S )Nrh  )r   rh   rO   rH   s   €rJ   rQ   z!test_issue_9538.<locals>.<lambda>Ò  s   ø€ œk¨"´A´q°6Ô:€ rL   )rO   rh   r   rŽ   r@   rU   rH   s   @rJ   Útest_issue_9538rm  Ï  sH   ø€ Ü	
ˆQŒq‰S‰�1‰€BÜ�r¤¤1 Ô&¬C°´3±¸±Ð+;Ð*<Ò<Ð<Ð<Ü
Œ9Ó:Õ;rL   c                  óÐ  — t        dt        dz  z  t        dz  z   dt        dz  z  z
  «      } t	        t        | «      j                  «      \  }}}| |dz  d|dz  z  z
  d|dz  z  d|z  |z  z   d|z  |z  z
  d|dz  z  z
  |dz  d|z  |z  z
  d|dz  z  z   d|z  |z  z
  fhk(  sJ ‚t        t        dz  dt        dz  z  z   dt        dz  z  z
  «      } | d|z  |z  |dz  d|dz  z  z
  |dz  d|dz  z  z   fhk(  sJ ‚t        dt        dz  z  dt        dz  z  z   t        dz  z
  «      } | d|dz  z  |dz  z
  d|dz  z  d|z  |z  z   |dz  z
  d|dz  z  d|z  |z  z
  d|dz  z  z   fhk(  sJ ‚t        dt        dz  z  dt        dz  z  z   dt        dz  z  z
  «      } | d|dz  z  d|dz  z  z
  d	|z  |z  d
|dz  z  d|dz  z  z   fhk(  sJ ‚t        dt        dz  z  dt        dz  z  z   t        dz  z
  dt        z  t        z  z
  dt        z  t        z  z   dt        z  t        z  z
  «      d|dz  z  d|z  |z  z
  |dz  z
  d|dz  z  d|z  |z  z   |dz  z
  d|dz  z  d|z  |z  z
  d|dz  z  z   fk(  sJ ‚t        dt        dz  z  dt        dz  z  z
  dt        dz  z  z
  «      d|dz  z  d|dz  z  z
  d|dz  z  d|z  |z  z   d|dz  z  z
  d|dz  z  d|z  |z  z   d|dz  z  z   fk(  sJ ‚y )Nr\   r}   rk   rT   éH   r—   rº   r‰   r‚   rƒ   r~   r€   r+  r™   r,  i~úÿÿiÿŠ iŒ
  iÄx  i:�
 iÄÿÿÿi  ib<  )r   rO   rh   ri   r   r	   r  r3   )r  r8  r9  rÝ  s       rJ   Útest_ternary_quadraticrp  Õ  s»  € ä�A”a˜‘d‘FœQ ™T‘M A¤a¨¡d¡FÑ*Ó+€AÜ”a˜“d×'Ñ'Ó(�G€A€qˆ!ØØ	ˆ1‰ˆq��A‘‰v‰Ø
ˆ1ˆa‰4‰�!�A‘#�a‘%‰˜!˜A™#˜a™%Ñ ! A q¡D¡&Ñ(Ø	ˆ1‰ˆq�‰s�1‰u‰�q˜˜A™‘vÑ  !¡ A¡Ñ%ð'ð (ò (ð (ð (ô
 	”A�q‘D˜1œQ ™T™6‘M A¤a¨¡d¡FÑ*Ó+€AØ�!�A‘#�a‘%˜˜A™  ! Q¡$¡™¨¨1©¨q°°A±©v©Ð6Ð7Ò7Ð7Ð7ä�A”a˜‘d‘F˜Qœq !™t™V‘O¤a¨¡dÑ*Ó+€AØ�!�A�q‘D‘&˜1˜a™4‘-  A q¡D¡¨1¨Q©3¨q©5¡°1°a±4Ñ!7Ø	ˆ!ˆQ‰$‰��1‘�Q‘‰˜˜1˜a™4™Ñð!ð "ò "ð "ð "ô 	�A”a˜‘d‘F˜R¤ 1¡™WÑ$ r¬!¨Q©$¡wÑ.Ó/€AØ�"�Q˜‘T‘'˜A˜a ™d™FÑ" A a¡C¨¡E¨1¨Q°©T©6°A°a¸±d±F©?Ð;Ð<Ò<Ð<Ð<Ü(Ø	Œ!ˆQ‰$‰�”1�a‘4‘‰œ!˜Q™$Ñ ¤1¡¤Q¡Ñ&¨¬1©¬Q©Ñ.°´1±´Q±Ñ6ó8à	ˆ!ˆQ‰$‰��1‘�Q‘‰˜˜A™Ñ˜q  A¡™v¨¨!©¨A©™~°°1±Ñ4°a¸¸1¹±fØ	ˆ!‰ˆA‰ñ7Ø�!�Q‘$‘ñ7ð<òð ð ô )ØŒAˆq‰D‰�2”a˜‘d‘7Ñ˜T¤! Q¡$™YÑ&ó(àˆa�‰d‰
�V˜A˜q™D‘[Ñ  $ q¨!¡t¡)¨e°A©g°a©iÑ"7Øˆq�!‰t‰ñ#Ø˜˜A™‘X  Q¡ q¡Ñ(¨5°°A±©:Ñ5ð,7ò7ð 7ñ 7rL   c                  ó&	  ‡‡‡— t        g g «      Št        ‰«      t        «       k(  sJ ‚‰j                  dk(  sJ ‚‰j                  dk(  sJ ‚t	        t
        ˆfd„«       t        ‰j                  «       «      g k(  sJ ‚t        t        t        gt        t        g«      Š‰j                  t        t        fk(  sJ ‚‰j                  t        t        fk(  sJ ‚t	        t
        ˆfd„«       ‰j                  d«       t        ‰«      dhk(  sJ ‚‰j                  ddt        f«       t        ‰«      ddt        fhk(  sJ ‚t	        t
        ˆˆfd„«       t        ‰j                  «       «      t        dt        t        it        dt        digk(  sJ ‚t        t        t        t        gt        t        g«      Št        ‰j                  «      d	k(  sJ ‚‰j                  t        d	z  t        z   t        t        z
  d
f«       t        ‰«      t        d	z  t        z   t        t        z
  d
fhk(  sJ ‚‰j!                  t        d	«      t        dz   d	t        z
  d
fhk(  sJ ‚ ‰d	«      t        dz   d	t        z
  d
fhk(  sJ ‚‰j!                  t        dt        di«      dhk(  sJ ‚ ‰dd«      dhk(  sJ ‚‰j!                  t        di«      t        dz   dt        z
  d
fhk(  sJ ‚ ‰d«      t        dz   dt        z
  d
fhk(  sJ ‚‰j!                  t        d«      t        d	z  dz
  t        dz   d
fhk(  sJ ‚ ‰d d«      t        d	z  dz
  t        dz   d
fhk(  sJ ‚‰j!                  t        d	t        di«      dhk(  sJ ‚ ‰d	d«      dhk(  sJ ‚‰j!                  t        dt        di«      dhk(  sJ ‚ ‰dd«      dhk(  sJ ‚t	        t"        ˆfd„«       t	        t"        ˆfd„«       t	        t
        ˆfd„«       t	        t
        ˆfd„«       t	        t
        ˆfd„«       t	        t
        ˆfd„«       t	        t"        ˆfd„«       t        t        t        gt        t        g«      } | j                  t        dt        z  f«       | j                  t         dt        z  f«        | dd«      dhk(  sJ ‚y )NrP   c                  ó0   •— ‰ j                  t        f«      S rG   )ÚaddrO   )r^  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>ö  s   ø€ ˜rŸv™v¤q d›|€ rL   c                  ó&   •— ‰ j                  d«      S )Nr]   ©rs  )r_  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>ü  s   ø€ ˜rŸv™v d›|€ rL   )rT   rk   r|   c                  ó&   •— ‰ j                  ‰«      S rG   )Úupdate)r^  r_  s   €€rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸy™y¨›}€ rL   rT   rk   r\   r[   r€   rƒ   )rU  r|   r[   r~   rÃ   r…   )rˆ   rž   r[   )é   rƒ   r[   c                  ó(   •— ‰ j                  d¬«      S )Nr[   )rO   ©r  ©Ús3s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜bŸg™g¨˜g›l€ rL   c                  ó*   •— ‰ j                  ddd«      S ©Nr[   r\   rT   rz  r{  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜bŸg™g a¨¨AÓ.€ rL   c                  ó&   •— ‰ j                  d«      S )NrP   ru  r{  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸv™v b›z€ rL   c                  ó&   •— ‰ j                  d«      S )N)r[   r\   rT   rk   ru  r{  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸv™v lÓ3€ rL   c                  ó&   •— ‰ j                  d«      S )NrÜ   ru  r{  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸv™v f›~€ rL   c                  ó   •—  ‰ ddd«      S r~  rP   r{  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ™r ! Q¨›{€ rL   c                  ó   •—  ‰ d¬«      S )Nr[   r  rP   r{  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ™b 1œg€ rL   r¯   rx  r   rØ   )r<   rX   r
   rz  r@   rx   rÇ  Údict_iteratorrO   rh   rª   r  rs  rw  ri   rŸ  r  rU   )Ús4r^  r_  r|  s    @@@rJ   Útest_diophantine_solution_setr†  ñ  sð  ú€ Ü	  BÓ	'€BÜˆr‹7”c“eÒÐÐØ�:‰:˜ÒÐÐØ�=‰=˜BÒÐÐÜ
Œ:Ó+Ô,Ü�× Ñ Ó"Ó# rÒ)Ð)Ð)ä	¤¤A ¬¬A¨Ó	/€BØ�:‰:œ!œQ˜ÒÐÐØ�=‰=œQ¤˜FÒ"Ð"Ð"Ü
Œ:Ó+Ô,Ø‡F�Fˆ6„NÜˆr‹7�v�hÒÐÐØ‡I�Iˆf�rœ1�gÔÜˆr‹7�v ¤A˜wÐ'Ò'Ð'Ð'Ü
Œ:Ô,Ô-Ü�× Ñ Ó"Ó#¬¨B´´1¨¼¸1¼aÀ°|Ð'DÒDÐDÐDä	¤¤A¤q 	¬A¬q¨6Ó	2€BÜˆr�}‰}Ó Ò"Ð"Ð"Ø‡F�FŒAˆq‰D”1‰H”aœ!‘e˜QÐÔ Üˆr‹7œ˜1™œq™¤!¤a¡%¨Ð+Ð,Ò,Ð,Ð,Ø�7‰7”1�a‹=œa !™e Q¬¡U¨AÐ.Ð/Ò/Ð/Ð/Ùˆa‹5”a˜!‘e˜Q¤™U AÐ&Ð'Ò'Ð'Ð'Ø�7‰7”A�qœ!˜Q�<Ó  [ MÒ1Ð1Ð1Ùˆa�‹8˜�}Ò$Ð$Ð$Ø�7‰7”A�q�6‹?¤ B¡¨¬A©¨qÐ1Ð2Ò2Ð2Ð2Ùˆa‹5”a˜"‘f˜a¤!™e QÐ'Ð(Ò(Ð(Ð(Ø�7‰7”1�b‹>œq !™t a™x¬¨Q©°Ð2Ð3Ò3Ð3Ð3Ùˆd�B‹<œQ ™T A™X¤q¨1¡u¨aÐ0Ð1Ò1Ð1Ð1Ø�7‰7”A�qœ!˜Q�<Ó  [ MÒ1Ð1Ð1Ùˆa�‹8˜�}Ò$Ð$Ð$Ø�7‰7”A�qœ!˜R�=Ó! j \Ò1Ð1Ð1Ùˆa�‹9˜˜Ò$Ð$Ð$Ü
Œ9Ó*Ô+Ü
Œ9Ó.Ô/Ü
Œ:Ó)Ô*Ü
Œ:Ó3Ô4Ü
Œ:Ó-Ô.Ü
Œ:Ó*Ô+Ü
Œ9“oÔ&ä	¤¤A ¬¬A¨Ó	/€BØ‡F�FŒAˆr”!‰tˆ9ÔØ‡F�FŒQˆB�”1‘ˆ:ÔÙˆa�‹8˜�xÒÐÑrL   c                  óì   — dt         z  t        z  dt        dz  z  z   } t        | «      j                  t        t
        g¬«      }|t        dt        z  ft        dt        z  fhk(  sJ ‚ |dd«      dhk(  sJ ‚y )	NißÿÿÿrT   r\   ry  r¯   iêÿÿÿr   rØ   )rO   rh   r>   rÈ   rª   r  )rI   r  s     rJ   Ú test_quadratic_parameter_passingrˆ  "  sq   € Ø	ŒQ‰Œq‰�1”Q˜‘T‘6Ñ	€BÜ˜rÓ"×(Ñ(´Q¼°FÐ(Ó;€Hàœ˜Bœq™D˜	¤A s¬1¡u :Ð.Ò.Ð.Ð.Ù�A�q‹>˜f˜XÒ%Ð%Ñ%rL   c                  ó   — t         dz  dt         z  z
  t        dz  z   dt        z  z
  } t        | «      }|h d£k(  sJ ‚dt         dz  z  dt         z  z
  dt        dz  z  z   dt        z  z
  dz   }t        |«      }|dhk(  sJ ‚y )	Nr\   rn   rƒ   >   ©r   rƒ   ©rn   r   ©rn   rƒ   ©r»   rk   ©r|   rk   rØ   r‰   rk   rm   rÚ   ri  )Úeq1rÑ   Úeq2s      rJ   Útest_issue_18628r‘  )  s†   € Ü
ˆQ‰$�”A‘‰+œ˜1™Ñ
˜q¤™sÑ
"€CÜ
�cÓ
€CØÒFÒFÐFÐFØ
ŒAˆq‰D‰&�1”Q‘3‰,˜œ1˜a™4™Ñ
 !¤A¡#Ñ
%¨Ñ
*€CÜ
�cÓ
€CØ�6�(Š?Ð‰?rL   N)¢Úsympy.core.addr   Úsympy.core.mulr   Úsympy.core.numbersr   r   r   Úsympy.core.relationalr   Úsympy.core.singletonr	   Úsympy.core.symbolr
   Úsympy.matrices.denser   Úsympy.ntheory.factor_r   Úsympy.simplify.powsimpr   Úsympy.core.functionr   Úsympy.core.sortingr   r   Ú(sympy.functions.elementary.trigonometricr   Úsympy.solvers.diophantiner   Ú%sympy.solvers.diophantine.diophantiner   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.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   Úsympy.testing.pytestr?   r@   rA   Úsympy.utilities.iterablesrB   r%  r&  rv  rw  r8  r9  rO   rh   ri   rg   rª   r  rÐ   r  r  r0  rŽ   r�   r�   Út_3Út_4Út_5Út_6r%  r&  r'  rE   rK   rV   rY   r`   rz   r‘   r«   r¸   rÁ   rÆ   rÉ   rÒ   rÔ   rÖ   rú   rÿ   r  r  r  r  r'  r.  r1  r4  r:  r=  rA  rD  rK  rs  r|  r¢  rÅ  rÊ  rÐ  rÕ  rã  rõ  r  rÀ   r(  r-  r4  r6  r9  r>  r`  rb  rf  rj  rm  rp  r†  rˆ  r‘  rP   rL   rJ   ú<module>r¦     s<  ðÝ Ý ß 1Ñ 1Ý $Ý "Ý %Ý 'Ý +Ý *Ý (ß 8Ý 8Ý 1÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ó ÷ 5Ñ 4õñ 29Ø4¸dô2DÑ .€€1€aˆˆAˆq�!�Q˜˜1˜a  A q¨!¨Qá$+¨F¸DÔ$AÑ !€€Sˆ#ˆs�C˜˜cÙ�V TÔ*�
€€BˆÙˆT˜4Ô €ò+ò5ò
&ò7ò
Xò2/ò<ò0ò-ò=òNòAòAð ñBó ðBòH#òV&ò òò<UòOò"ò;ò
ò
6ò!EòH.ò;ò5ò-òV5òrDò<ò@(ò
Gò5ò0ò&.ò$*:òZò6ò.,Tò^	<ð ñ
ó ð
ò;ò
ò	Nò64òr1òNð ñ<ó ð<ò
<ò7ò8. òb&órL   