§
    PŠtjG©  ã                   ó¢  — 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¡dNS )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          t          | ¦  «        ¦  «        ¦  «        S ©N)r   r   ©Úeqs    ún/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/solvers/diophantine/tests/test_diophantine.pyÚdiop_simplifyrK   '   s   € Ý•G�H R™LœLÑ)Ô)Ñ*Ô*Ð*ó    c                  ó^   — t          t          d„ ¦  «         t          t          d„ ¦  «         d S )Nc                  óD   — t          t          t          ¦  «        ¦  «        S rG   )r   r   Úx© rL   rJ   ú<lambda>z#test_input_format.<locals>.<lambda>,   s   € �k­#­a©&¬&Ñ1Ô1€ rL   c                  ó@   — 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Ô3€ rL   )r@   Ú	TypeErrorrP   rL   rJ   Útest_input_formatrV   +   s0   € Ý
�9Ð1Ð1Ñ2Ô2Ð2Ý
�9Ð3Ð3Ñ4Ô4Ð4Ð4Ð4rL   c                  ó¤   — t          d¦  «        t          ¦   «         k    sJ ‚t          t          d¦  «        ¦  «        t          ¦   «         k    sJ ‚d S rS   )r   Úsetr	   rP   rL   rJ   Útest_nosolsrY   0   sF   € å�q‰>Œ>�S™UœUÒ"Ð"Ð"Ð"Ý•q˜‘t”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 ‚d S )Né   é   ©r[   ©r\   ©r   rO   rP   rL   rJ   Útest_univariater`   6   s_   € Ý•q˜1‘u�q 1™u q™jÑ(Ñ)Ô)¨d°D¨\Ò9Ð9Ð9Ð9Ý•q˜1‘u�q 1™u‘oÑ&Ô&¨4°¨,Ò6Ð6Ð6Ð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 ‚d S )Nc                  ó<   — 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Ô7€ rL   c                  ó    — t          d¦  «        S ©Nr[   ©r,   rP   rL   rJ   rQ   z$test_classify_diop.<locals>.<lambda>=   s   € �}¨QÑ/Ô/€ rL   c                  ó`   — 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Ô(B€ rL   c                  ób   — 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Ô(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Ð7Ñ8Ô8Ð8Ý
�:Ð/Ð/Ñ0Ô0Ð0Ý
ÕÐ BÐ BÑCÔCÐCÝ
ÕÐ NÐ NÑOÔOÐOÝ˜�A˜q™D™ 2¥a¡4™¨"Ñ,Ñ-Ô-Ý	
ˆˆa�•a˜�Q ™T 2Ð&¨ð26ò 6ð 6ð 6ð 6å��1™�q™Ñ!Ô!Ý	
�A�qˆ	•A•a‘C˜�A˜q�>Ð#Dð&Fò 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ð 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ð Wå��1™�q™¥1™ rÑ)Ñ*Ô*Ý	
�A�q•!ˆ•q�‘s˜A�q ! Q¨­A¨qÐ1Ð3Tð/Vò Vð Vð Vð Vå��1™�q¥™s™Ñ#Ô#Ý	
�A�q•!ˆ•q�‘s˜A�q¥™s AÐ&Ð(Gð(Iò Ið Ið Ið Iå��1˜a™4™ !™Ñ$Ô$Ý	
�Aˆ••1�a‘4‘˜˜A˜qÐ! <ð)1ò 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ð Vå�˜A™¥ 1¡™¥q¨!¡tÑ+Ñ,Ô,Ý	
�A�qˆ	•A�q‘D˜!�Q ™T 1¥a¨¡d¨AÐ.Ð0Vð1Xò Xð Xð Xð 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„ ¦  «         d S )N)r   r[   rT   )éÿÿÿÿr\   rG   rk   )éþÿÿÿr   é   )éûÿÿÿr}   é   éùÿÿÿé   )NNé   )r   r~   r~   ©NNNéýÿÿÿéøÿÿÿé   é   é	   é   é   c                  ó0   — t          t          dz  ¦  «        S ©Nr\   r_   rP   rL   rJ   rQ   ztest_linear.<locals>.<lambda>o   s   € �j­¨1©™oœo€ rL   )
r   rO   rh   Út_0ri   Út_1rg   Út_2r@   rU   rP   rL   rJ   Útest_linearr‘   T   sì  € Ý•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Ð3Ý�a�‘c˜A�a™C‘iÑ Ô  R­¡V­S MÒ1Ð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Ð4Ý�a�‘c˜A�a™C‘i !¥A¡#‘o¨Ñ)Ñ*Ô*¨qµ©u°q©y¸!½C¹%À!¹)Ð.DÒ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ÐYÝ�a�‘c˜A�a™C‘i !¥A¡#‘o¨Ñ)¨4Ñ0Ô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ÐLÝ�a�‘c˜A�a™C‘i "¥Q¡$Ñ&­Ñ*Ñ+Ô+µµS½#Å¹)ÀQÅsÁUÈRÕPSÉVÁ^ÐVXÕY\ÑV\ÑE\Ð/]Ò]Ð]Ð]Ð]õ �9Ð-Ð-Ñ.Ô.Ð.Ð.Ð.rL   c                  óö  — 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 ‚d S )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Ð5Ý�c�!‘e�A‘g ¥!¡‘m a­¡cÑ)¨BÑ.Ñ/Ô/°G°9Ò<Ð<Ð<Ð<Ý�c�!‘e�A‘g ¥1¡‘n r­!¡tÑ+¨bÑ0Ñ1Ô1°i°[Ò@Ð@Ð@Ð@Ý�a�‘c�!‘e˜a¥™c‘k B¥q¡DÑ(¨1Ñ,Ñ-Ô-ð 2Fð 2Fð 2Fò Fð Fð Fð Fõ �a�‘c�!‘e˜a¥™c‘k A¥a¡CÑ'¨!Ñ+Ñ,Ô,µ±´Ò5Ð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 ‚d S )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¸   �   s‰  € õ �b�˜A™‘g ¥!¡¥A¡‘o¨­1¨a©4©Ñ/°"µQ±$Ñ6¸½A¹Ñ=ÀÑDÑEÔEÈ)ÈÒTÐTÐTÐTÝ�a�˜1™‘f˜q¥ A¡™v‘o¨­!©Ñ+¨bµ©dÑ2°RÑ7Ñ8Ô8½C¹E¼EÒAÐAÐAÐAÝ•a˜‘d�Q ™T‘k A¥a¡CÑ'¨!­A©#Ñ-°Ñ1Ñ2Ô2°x°jÒ@Ð@Ð@Ð@Ý�b�˜A™‘g ¥!¡¥A¡‘o¨­1¨a©4©Ñ/°"µQ±$Ñ6¸½A¹Ñ=ÀÑDÑEÔEÈ(ÈÒSÐSÐSÐSÝ�b�˜A™‘g ¥1¡¥Q¡Ñ&¨­A¨q©D©Ñ0°2Ñ5Ñ6Ô6Ø/Ð/Ð/ò0ð 0ð 0ð 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 ‚d S )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ÐFÐFÝ˜1�Q ™T™6 B¥q¡D­¡F™?¨Rµ°1±©WÑ4°q½±sÑ:¸RÅ¹TÑAÀAÑEÑFÔFÐ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Ð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                  óZ  — 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 ‚d S )Nr©   rk   r\   r~   r}   rT   r®   é   rˆ   é   rƒ   r³   é    r­   r¼   r‰   r‚   r¿   rP   rL   rJ   Útest_quadratic_perfect_squarerÆ   —   sg  € õ ˜2�a™4¥™6Ñ"Ô"Ð"Ð"Ð"Ý˜1�Q ™T™6 A¥a¡C­¡E™>­A¨q©DÑ0°1Ñ4Ñ5Ô5Ð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ÐEÐEÝ˜2�a ™d™7 R­¡T­!¡VÑ+¨aµ°1±©fÑ4°q½±sÑ:¸Q½q¹SÑ@À2ÑEÑFÔFÐ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ÐGÐGÝ˜1�Q ™T™6 A¥a¡C­¡E™>¨A­a©CÑ/°µ1±Ñ4°qÑ8Ñ9Ô9Ð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Ð3Ð3Ý�1˜a™4 !¥A q¡D¡&™=¨1­Q©3Ñ.°µ1±Ñ4Ñ5Ô5Ð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   ¦  «                             ¦   «         dhk    sJ ‚d S )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Ð7Ð7Ý�1˜a™4¥!¥A¡#™:­¨1©Ñ,¨qµ©sÑ2Ñ3Ô3Ð3Ð3Ð3Ý�1˜a™4 !¥A q¡D¡&™=¨1­Q©3Ñ.°µ1±Ñ4Ñ5Ô5Ð5Ð5Ð5Ý�1˜a™4¥! Q¡$™;¨­1©Ñ,¨qµ©sÑ2°QÑ6Ñ7Ô7×=Ò=Ñ?Ô?ÀHÀ:ÒMÐMÐMÐ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 ]A}t          |                      t          t          ||¦  «        ¦  «        ¦  «        ¦  «        rJ ‚ŒBd S )NiÐÿÿÿr\   rT   r[   ©rO   rh   r   rK   ÚxreplaceÚdictÚzip©rI   ÚvÚsols      rJ   Útest_issue_9106rÒ   ±   sŒ   € Ø	ˆq•‰s�A•a‘C˜!‘G‰}Ñ	�q !¥A¡#¨¡'™{Ñ	*€BÝ	
�Aˆ€AÝ˜2‰Œð Að AˆÝ  §¢­Tµ#°a¸±+´+Ñ->Ô->Ñ!?Ô!?Ñ@Ô@Ð@Ð@Ð@Ð@ðAð ArL   c                  óþ   — t           dz  t           z
  t          dz  z
  } t           t          f}t          | ¦  «        D ]A}t          |                      t          t          ||¦  «        ¦  «        ¦  «        ¦  «        rJ ‚ŒBd S r�   rË   rÏ   s      rJ   Útest_issue_18138rÔ   ¸   sv   € Ý	
ˆA‰•‰•A�q‘D‰€BÝ	
�Aˆ€AÝ˜2‰Œð Að AˆÝ  §¢­Tµ#°a¸±+´+Ñ->Ô->Ñ!?Ô!?Ñ@Ô@Ð@Ð@Ð@Ð@ð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 ‚d S )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Ð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ÐAÐAÐ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 ‚d S )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Ð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Ð6å�2�r‰?Œ?ÐHÐHÐHÒHÐHÐHÐHÝ�w�s˜BÑÔÑ Ô ð %Fð %Fð %Fò 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Ð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 ‚d S )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ÿ     s’  € Ý�b˜"ÑÔÐ!<Ð!<Ð!<Ò<Ð<Ð<Ð<Ý�b˜"ÑÔÐ!IÐ!IÐ!IÒIÐIÐIÐIÝ�c˜2ÑÔ "Ò$Ð$Ð$Ð$Ý�d˜AÑÔÐ#BÐ"CÒCÐCÐCÐCÝ�b˜"ÑÔ &¨'Ð!2Ò2Ð2Ð2Ð2Ý�e˜RÑ Ô Ð%BÐ$CÒ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Ð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 ‚d S )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	          |                      t          t          t          f||f¦  «        ¦  «        ¦  «        }t          d„ |j
        D ¦   «         ¦  «        }t          t          z  t          t          fD ]}||                     ¦   «         v r dS Œt          dz  t          dz  dfD ]}||                     ¦   «         vrd||<   Œ|t          dz           dk    rPt          |t          dz           |t          dz           ¦  «        o#t          |d         |t          dz           ¦  «        S dS )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[   c                 óT   — g | ]%}t           |j        t          t          gŽ ¦  «        ‘Œ&S rP   )ÚreversedÚas_independentÚXÚY)Ú.0rª   s     rJ   ú
<listcomp>z-is_pell_transformation_ok.<locals>.<listcomp>9  s/   € ÐOÐOÐO¸!•(Ð+˜1Ô+­aµ¨VÐ4Ñ5Ô5ÐOÐOÐOrL   Fr\   T)r*   r   r  r  rK   ÚsubsrÎ   rO   rh   rÍ   ÚargsÚkeysr   )rI   ÚAÚBÚurÐ   Ú
simplifiedÚcoeffÚterms           rJ   Úis_pell_transformation_okr  ,  sh  € õ   Ñ#Ô#�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åÐOÐO¸z¼ÐOÑOÔOÑPÔP€Eå•1‘•a��ð ð ˆØ�5—:’:‘<”<ÐÐØ�5�5ð  õ �A‘•q˜!‘t˜Q�ð ð ˆØ�u—z’z‘|”|Ð#Ð#ØˆE�$‰Køà�Q�‰T„{�aÒÐÝ˜�q !™tœ e­A¨q©D¤kÑ2Ô2ð )Ý�%˜”(˜E¥! Q¡$œKÑ(Ô(ð	)ð ˆ4rL   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 ‚d S )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ÐNÐNÝ$ S­¨A©¡X°µ1±µQ±Ñ%6¸½1¸a¹4¹Ñ%?À!ÅAÁ#Ñ%EÈÍ1ÉÑ%LÈrÑ%QÑRÔRÐRÐRÐRÝ$¥Q¨¡T­A¨q©D¡[°2Ñ%5Ñ6Ô6Ð6Ð6Ð6Ý$¥a¨¡d U¨Q­q°!©t©V¡^°bÑ%8Ñ9Ô9Ð9Ð9Ð9Ý$ R­¨1©¡W¨rµ!©tµA©vÑ%5¸½!¸Q¹$¹Ñ%>ÀÅ1ÁÑ%DÀrÍ!ÁtÑ%KÈaÑ%OÑPÔPÐPÐPÐPÝ$ S­¨A©¡X°µ1±µQ±Ñ%6½¸A¹Ñ%=ÀÅ!ÁÑ%CÀcÍ!ÁeÑ%KÈcÑ%QÑRÔRÐ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ÐNÐNÝ$ R­¨1©¡W¨qµ©sµ1©u¡_°r½!¸Q¹$±wÑ%>ÀÅAÁÑ%EÈÍ1ÉÑ%LÈtÑ%SÑTÔTÐTÐTÐTÐTÐTrL   c                  óx  — 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 ‚d S )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  s™  € Ý•1�a‘4˜!�A™#‘:¥ 1¡Ñ$Ñ%Ô%¨Ò/Ð/Ð/Ð/Ý•1�a‘4˜!�A˜q™D™&‘= 1Ñ$Ñ%Ô%¨Ò/Ð/Ð/Ð/Ý•1�a‘4˜!�A™#�a™%‘< !¥A q¡D¡&Ñ(¨1Ñ,Ñ-Ô-°Ò7Ð7Ð7Ð7Ý�1•Q˜‘T‘6˜A�a™C¥™E‘>¥A q¡DÑ(¨1Ñ,Ñ-Ô-°Ò9Ð9Ð9Ð9Ý�1•Q˜‘T‘6˜A�a™C¥™E‘>¥A q¡DÑ(¨2Ñ-Ñ.Ô.°'Ò9Ð9Ð9Ð9Ý�2•a˜‘d‘7˜Q�q™S¥™U‘?¥A q¡DÑ(Ñ)Ô)¨VÒ3Ð3Ð3Ð3Ý�3•q˜!‘t‘8˜a¥™c¥!™eÑ#¥a¨¡dÑ*¨Q­q©SÑ0°1µQ±3Ñ6¸Ñ:Ñ;Ô;¸ÒNÐNÐNÐNÐNÐNrL   c                  óÂ   — g d¢} | D ]3\  }}t          ||¦  «        \  }}}||dz  z  ||dz  z  z   |dz  k    sJ ‚Œ4t          dd¦  «        �J ‚t          dd¦  «        �J ‚d S )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*  _  s•   € ð
4ð 
4ð 
4€Aàð 'ð '‰ˆˆ1Ý˜1˜a‘.”.‰ˆˆ1ˆaØ��A‘‰v˜˜!˜Q™$™‰ ! Q¡$Ò&Ð&Ð&Ð&Ð&Ý�B˜ÑÔÐ#Ð#Ð#Ý�A�q‰>Œ>Ð!Ð!Ð!Ð!Ð!rL   c                  ó  — 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 ‚d S )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_normalr1  j  s]  € Ý˜3�q !™t™8 e­A¨q©D¡jÑ0µ1°a±4Ñ7Ñ8Ô8Ð8Ð8Ð8Ý˜2�a ™d™7 S­¨A©¡XÑ-µ°1±Ñ4Ñ5Ô5Ð5Ð5Ð5Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q°©TÑ1Ñ2Ô2Ð2Ð2Ð2Ý˜1�Q ™T™6 A¥a¨¡d¡F™?¨Q­q°!©t©VÑ3Ñ4Ô4Ð4Ð4Ð4Ý�1˜a™4 !¥A q¡D¡&™=­1¨a©4Ñ/Ñ0Ô0Ð0Ð0Ð0Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q°©TÑ1Ñ2Ô2Ð2Ð2Ð2Ý�1˜a™4¥! Q¡$™;­¨A©Ñ-Ñ.Ô.Ð.Ð.Ð.Ý˜2�a ™d™7¥Q¨¡T™>¨B­q°!©t©GÑ3Ñ4Ô4Ð4Ð4Ð4Ý˜1�Q ™T™6¥A q¡D™=¨2­a°©d©7Ñ2Ñ3Ô3Ð3Ð3Ð3Ý˜3�q !™t™8 b­¨A©¡gÑ-°µ!°Q±$±Ñ6Ñ7Ô7Ð7Ð7Ð7Ý˜2�a ™d™7 Q¥q¨!¡t¡VÑ+¨cµ!°Q±$©hÑ6Ñ7Ô7Ð7Ð7Ð7Ý˜3�q !™t™8 b­¨A©¡gÑ-°µQ¸±T±	Ñ9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:rL   c           
      óœ  ‡‡‡— t          | ¦  «        }|t          t          t          t          g¦  «        z  \  ŠŠŠt          |                      t          t          t          t          f‰‰‰f¦  «        ¦  «        ¦  «        }t          ˆˆˆfd„|j	        D ¦   «         ¦  «        }‰‰z  ‰‰z  ‰‰z  fD ]}|| 
                    ¦   «         v r dS ŒdS )Nc           	      óD   •— g | ]}t           |j        ‰‰‰gŽ ¦  «        ‘ŒS rP   )r  r  )r  rª   r  r  ÚZs     €€€rJ   r	  z/is_normal_transformation_ok.<locals>.<listcomp>~  s2   ø€ ÐRÐRÐR¸Q•(Ð+˜1Ô+¨a°°A¨YÐ7Ñ8Ô8ÐRÐRÐRrL   FT)r+   r   rO   rh   ri   rK   r
  rÎ   rÍ   r  r  )rI   r  r  r  r  r  r  r4  s        @@@rJ   Úis_normal_transformation_okr5  y  sÐ   øøø€ Ý  Ñ$Ô$€AØ•��1�a�yÑ!Ô!Ñ!�G€A€qˆ!Ý˜rŸwšw¥s­A­qµ!¨9°q¸!¸Q°iÑ'@Ô'@ÑAÔAÑBÔB€JåÐRÐRÐRÐRÐRÐRÀ*Ä/ÐRÑRÔRÑSÔS€EØ�1‘�a˜‘c˜1˜Q™3�ð ð ˆØ�5—:’:‘<”<ÐÐØ�5�5ð  ð ˆ4rL   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 ‚d S )	Nr\   rT   rÄ   r»   rˆ   éd   r­   r“   )r5  rO   rh   ri   rP   rL   rJ   Útest_transformation_to_normalr8  †  s2  € Ý&¥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ÐWÐWÝ&¥q¨!¡t¨aµ°1±©f¡}°s½1¸a¹4±xÑ'?Ñ@Ô@Ð@Ð@Ð@Ý&¥q¨!¡t¨bµ©dµ1©f¡}Ñ5Ô5Ð5Ð5Ð5Ý& q­¨A©¡v°µA°q±D±Ñ'8¸2½a¹4Å¹6Ñ'AÑBÔBÐBÐBÐBÝ&¥q¨!¡t¨bµ©dµ1©f¡}°r½!±t½A±vÑ'=ÀÅ1ÁÅQÁÑ'FÑGÔGÐGÐGÐGÝ&¥q¨!¡t¨bµ©dµ1©f¡}°r½!±t½A±vÑ'=ÅÅ!ÁÑ'CÑDÔDÐDÐDÐDÝ&¥q¨!¡t­a°©d¡{µQ¸±TÑ'9½A½a¹CÑ'?Å!ÅAÁ#Ñ'EÍÍ!ÉÑ'KÑLÔLÐ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Ð5Ð5Ð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 ‚d S )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Ð8Ð8Ý�1˜a™4¥! Q¡$™;­¨A©Ñ-µµ!±Ñ3µa½±cÑ9Ñ:Ô:Ð:Ð:Ð:Ý˜1�Q ™T™6¥A¥a¡C™<­!­A©#Ñ-µµ!±Ñ3Ñ4Ô4Ð4Ð4Ð4Ý�1˜a™4¥!¥A¡#™:­­!©Ñ+Ñ,Ô,Ð,Ð,Ð,Ý˜1�Q ™T™6 A¥a¡C­¡E™>­A­a©CÑ/Ñ0Ô0Ð0Ð0Ð0Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q­q©SÑ0Ñ1Ô1Ð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Ð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ÐAÐAÝ˜2�a ™d™7 Q¥q¨!¡t¡VÑ+¨aµ©cµ!©eÑ3°a½±c½!±eÑ;¸aÅ¹cÅ!¹eÑCÑDÔDÐ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Ð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ÐKÐKÝ�1�Q™3 ¥1¡¥Q¡™;¨­A©­a©Ñ/Ñ0Ô0Ð0Ð0Ð0å(­¨A©µ°1±©µq¸!±tÑ);Ñ<Ô<Ð@RÒRÐRÐRÐRÝ(­¨A©µ°1±©Ñ5Ô5Ð=Ð=Ð=Ý
�:ð -ð -ñ .ô .ð .ð 
�A‰�a‰�!•A‘#•a‘%‰˜!�A˜q™D™&Ñ	  1¥Q¡3¥q¡5Ñ	(¨1­Q°©T©6Ñ	1€BÝ! "Ñ%Ô%¨Ò2Ð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ð 1õ •a�‘c˜A�a™C¥™E‘kÑ"Ô" r­!¡t­A¡vµ¨sµ1°a±4©x½!¸Q¹$©ÅÅ!ÁÐ&DÒDÐDÐDÐDÐDÐDrL   c                  óž  — t          d¦  «        t          d¦  «        cxk    rdk    sn J ‚t          d¦  «        dk    sJ ‚t          d¦  «        t          d¦  «        cxk    rdk    sn J ‚t          d¦  «        t          d¦  «        cxk    rdk    sn J ‚t          d	¦  «        t          d
¦  «        cxk    rdk    sn 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 ‚d S )Nr[   r|   r   r~   r   rk   r¼   r\   rˆ   r    r‚   r‡   rT   é4   r:  r€   iˆ  rm   )r'   r   rP   rL   rJ   Útest_square_factorrA  ·  s‘  € Ý˜ÑÔ�}¨RÑ0Ô0Ð5Ð5Ò5Ð5°AÒ5Ð5Ð5Ð5Ð5Ð5Ý˜ÑÔ˜qÒ Ð Ð Ð Ý˜ÑÔ�}¨RÑ0Ô0Ð5Ð5Ò5Ð5°AÒ5Ð5Ð5Ð5Ð5Ð5Ý˜ÑÔ�}¨RÑ0Ô0Ð5Ð5Ò5Ð5°AÒ5Ð5Ð5Ð5Ð5Ð5Ý˜ÑÔ¥¨cÑ 2Ô 2Ð7Ð7Ò7Ð7°aÒ7Ð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 ‚d S )Nr\   r,  r-  rT   r~   r€   r:  rÄ   rƒ   r.  r™   r/  éì   éá   r¯   r®   rl   r0  rP   rL   rJ   Ú"test_parametrize_ternary_quadraticrE  Å  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Ð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Ð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Ð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ÐJÐJÝ˜2�a ™d™7 Q¥q¨!¡t¡VÑ+¨aµ©cµ!©eÑ3°a½±c½!±eÑ;¸aÅ¹cÅ!¹eÑCÑDÔDÐ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 ‚d S )Nr\   rT   é½   iY  rˆ   r­   r“   r0  rP   rL   rJ   Ú test_no_square_ternary_quadraticrH  Ó  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Ð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Ð4Ð4Ð4Ð4Ð4rL   c                  óþ   — g d¢} | D ]3\  }}t          ||¦  «        \  }}}||dz  z  ||dz  z  z   |dz  k    sJ ‚Œ4t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         d S )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œo€ rL   c                  ó"   — t          dd¦  «        S )Nr   rT   rK  rP   rL   rJ   rQ   ztest_descent.<locals>.<lambda>å  s   € ¥g¨a°¡m¤m€ rL   c                  ó"   — t          dd¦  «        S )Nrk   rT   rK  rP   rL   rJ   rQ   ztest_descent.<locals>.<lambda>ç  s   € �g a¨™mœm€ rL   )r   r@   rU   ÚZeroDivisionErrorr'  s         rJ   Útest_descentrO  Û  s¤   € à	gÐ	gÐ	g€AØð 'ð '‰ˆˆ1Ý˜!˜Q‘-”-‰ˆˆ1ˆaØ��A‘‰v˜˜!˜Q™$™‰ ! Q¡$Ò&Ð&Ð&Ð&Ð&õ �9Ð-Ð-Ñ.Ô.Ð.å
ÕÐ3Ð3Ñ4Ô4Ð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          |                     ¦   «         ¦  «        ¦  «        }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
  } |                      ¦   «         }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
  } |                      ¦   «         }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
  } |                      ¦   «         }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
  } |                      ¦   «         }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
  } |                      ¦   «         }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 ‚d S );Nr\   rT   r€   r[   rn   r~   rk   éa   T©Úpermuterm   ©r[   r\   rT   é\   éc   )r‰   r€   é3   i{  r‰   iKýÿÿéf   i¹  ij  rW  )r[   r[   r\   r}   i›  é9   éÝ   )iå  iU
  iú  iýÁ i±Ð i³ýÿi¤­ iaë iªª iÚ™ iÒV
 i=  i  iØ  )r:  éé   é   i	  iÈ>  iÿ®ÿÿipE iˆ* i',  i¢  i¸¢  rˆ   )r   r\   r[   rº   c                  óF   — 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   )ÚsymsrS  >   ©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   r<  r=  r@   ry   r	   ÚHalfrª   )rI   Úbase_solÚcomplete_solnr  s       rJ   Útest_diophantinerw  ê  s-
  € Ý�A¥™E¥A­¡E™?­Aµ©EÑ2Ñ3Ô3Ð3Ð3Ð3Ý�A¥™E¥A q¡D­1¨a©4¡Kµ!°Q±$Ñ$6Ñ7Ñ8Ô8Ð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Ð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ÐBÐBÝ�A˜q™D 1¥Q¨¡T¡6™M¨AÑ-µ°Aµa±C±Ñ8Ñ9Ô9Ð9Ð9Ð9Ý�A˜q™D¥1 a¡4™K­!¨Q©$Ñ.µ°Qµq±S±¸1½Q¹3±ÀÅ1ÁÑ1DÑEÑFÔFÐFÐFÐFõ �1˜a™4 !¥A¡#¥a¡%™<¨!­A©#­a©%Ñ/Ñ0Ô0Ð0Ð0Ð0Ý�1˜a™4 !¥A¡#™:¨™>Ñ*Ô*Ð*Ð*Ð*å•q�1‘uÑÔ¥­Rµµ1©X¬XÑ!6Ô!6Ò6Ð6Ð6Ð6å	
ˆA‰•�1‘‰�rÑ	€BÝ�r 4Ð(Ñ(Ô(­K¸¸ÀTÐ,JÑ,JÔ,JÒ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¬NÑ;Ô;Ñ<Ô<€MÝ�r 4Ð(Ñ(Ô(¨MÒ9Ð9Ð9Ð9å•q˜!‘t�a¥¨¨RÑ 0Ô 0Ñ0Ñ0°1Ñ4Ñ5Ô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ð 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ð 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ð 8õ ÕÐ ?Ð ?Ñ@Ô@Ð@õ �q�‘sÑÔ�s™uœuÒ$Ð$Ð$Ð$Ý�q�‘s˜Q�q™S‘y¥1¤6Ñ)Ñ*Ô*Ð.XÐ.XÐ.XÒXÐXÐXÐXÝ•q˜!‘t�a ™d‘{ A¥a¡CÑ'¨Ñ*°DÐ9Ñ9Ô9ØSÐSÐSòTð Tð Tð Tõ
 •q˜!‘t�a ™d‘{ TÑ)¨DÑ0½½1°vÀtÐLÑLÔLØSÐSÐSòTð Tð Tð Tå•q˜!‘t�a ™d‘{ TÑ)¨DÑ0½½1°vÀtÐLÑLÔLØSÐSÐSòTð Tð Tð Tõ �1˜a™4¥!™8Ñ$Ô$Ð$Ð$Ð$Ý�1˜a™4¥!™8Ñ$Ô$Ð$Ð$Ð$Ý�˜1™�q™¥1Ñ%Ô%­1­a°©d¨)¨Ò4Ð4Ð4Ð4Ý�˜1™�q™¥1Ñ%Ô%­1¨a©4µ¨)¨Ò4Ð4Ð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
  ¦  «                             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 ‚d S )	Nr   ©r(  r)  ÚcÚdÚer\   rk   r‰   rÃ   r»   ©Ú
parameters)Ú	sympy.abcr(  r)  rz  r{  r|  rÀ   r=   rÈ   rO   rh   ri   ry  s        rJ   Útest_general_pythagoreanr€  C  s�  € Ø'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'å˜1˜a™4 ! Q¡$™;¨¨A©Ñ-°°1±Ñ4Ñ5Ô5Ð5Ð5Ð5Ý˜1˜a™4 ! A q¡D¡&™=¨1¨Q°©T©6Ñ1°A°q±DÑ8Ñ9Ô9Ð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ÐFÐFÝ˜2˜a ™d™7 Q¨¡T™>¨A¨a°©d©FÑ2°Q¸±TÑ9¸B¸qÀ!¹t¹GÑCÑDÔDÐDÐDÐDå˜a ™d Q¨¡T™k¨A¨q©DÑ0°1°a±4Ñ7Ñ8Ô8×>Ò>Í1ÍaÕQRÈ)Ð>ÑTÔTÝ�‰T•A�q‘D‰[�1˜a™4Ñ ¥1¡¥Q¡¨­!©­A©­q°!©tµa¸±d©{½QÀ¹TÑ/AÐBÐCòDð Dð Dð Dð Dð DrL   c            
      ó„  ‡— t          dd¦  «        D ]=} t          t          d„ t          d| z  ¦  «        D ¦   «         ¦  «        | z
  ¦  «        s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„ |D ¦   «         Ž 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„¦  «         d S )NrT   r³   c              3   ó    K  — | ]	}|d z  V — Œ
dS ©r\   NrP   ©r  Úis     rJ   ú	<genexpr>z9test_diop_general_sum_of_squares_quick.<locals>.<genexpr>T  s&   è è € Ð"DÐ"D¨A 1 a¡4Ð"DÐ"DÐ"DÐ"DÐ"DÐ"DrL   z:%ir\   rm   rT  i!  z:5Ú6T©Únegativec                 ó   — g | ]}|d z  ‘ŒS r^   rP   r„  s     rJ   r	  z:test_diop_general_sum_of_squares_quick.<locals>.<listcomp>_  s   € Ð!Ð!Ð!˜ˆq�!‰tÐ!Ð!Ð!rL   é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�   rR  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)  rz  r{  r@   ry   )r…  ÚvarÚ	base_solnrI   s      @rJ   Ú&test_diop_general_sum_of_squares_quickr¥  R  sa  ø€ Ý�1�b‰\Œ\ð Jð JˆÝ�sÐ"DÐ"Dµ¸À¹Ñ1CÔ1CÐ"DÑ"DÔ"DÑDÔDÀqÑHÑIÔIÐIÐIÐIÐIå&¥q¨!¡t­a°©d¡{°Q¡Ñ7Ô7Ð?Ð?Ð?Ý&¥q¨!¡t­a°©d¡{µQ¸±TÑ'9¸AÑ'=Ñ>Ô>Å#Á%Ä%ÒGÐGÐGÐGÝ	
ˆA‰•�1‘‰•q˜!‘tÑ	˜yÑ	)€BÝ& rÑ*Ô*Øˆ;òð ð ð å	
ˆA‰•�1‘‰•q˜!‘tÑ	�a ™dÑ	"¥Q¨¡TÑ	)¨DÑ	0€BÝÕ*¨2¨qÑ1Ô1Ñ2Ô2°aÒ7Ð7Ð7Ð7å
�$‰-Œ-�7 3°Ð6Ñ6Ô6Ð8Ñ
8€CÝ	Ð!Ð!˜SÐ!Ñ!Ô!Ð	" SÑ	(€BðPð Pð P€Iõ
 �r‰?Œ?˜iÒ'Ð'Ð'Ð'Ý�{˜2 tÐ,Ñ,Ô,Ñ-Ô-°Ò7Ð7Ð7Ð7õ �r�A˜q™D‘y¥1 a¡4Ñ'­!¨Q©$Ñ.Ñ/Ô/°I°;Ò>Ð>Ð>Ð>õ 
ˆA‰•�1‘‰•q˜!‘tÑ	�a ™dÑ	" QÑ	&€BÝ
ÕÐ :Ð :Ð :Ð :Ñ;Ô;Ð;Ð;Ð;rL   c                  ó~   — t           dz  t          dz  z   t          dz  z   dz
  } h d£}t          | ¦  «        |k    sJ ‚d S )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  sT   € å	
ˆA‰•�1‘‰•q˜!‘tÑ	˜gÑ	%€BðBð Bð B€Iõ
 �r‰?Œ?˜iÒ'Ð'Ð'Ð'Ð'Ð'rL   c                  óü  — dD ]=} t          dd¦  «        D ]*}t          | |¦  «        D ]}t          |¦  «        |k    sJ ‚ŒŒ+Œ>t          t          dd¦  «        ¦  «        g k    sJ ‚d„ t          ddd¦  «        D ¦   «         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 ‚d„ t          d¦  «        D ¦   «         g d¢ddgdggk    sJ ‚d S )N)rƒ   r³   r[   rƒ   rT   r~   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rP   ©Úlist)r  r<  s     rJ   r	  z'test_diop_partition.<locals>.<listcomp>ƒ  s   € Ð0Ð0Ð0˜�D�‰GŒGÐ0Ð0Ð0rL   )r   r   r   r   rT   )r   r   r   r[   r\   )r   r   r[   r[   r[   r   rP   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rP   rË  r„  s     rJ   r	  z'test_diop_partition.<locals>.<listcomp>‡  s   € Ð*Ð*Ð*˜�D�‰GŒGÐ*Ð*Ð*rL   )r[   r[   r[   r\   )r   r$   r¢  rÌ  )ÚnÚkr<  s      rJ   Útest_diop_partitionrÐ  }  sJ  € Øð #ð #ˆÝ�q˜!‘”ð 	#ð 	#ˆAÝ˜q !‘_”_ð #ð #�Ý˜1‘v”v ’{�{�{�{�{ð#ð	#õ •	˜!˜Q‘”Ñ Ô  BÒ&Ð&Ð&Ð&Ø0Ð0�Y q¨!¨QÑ/Ô/Ð0Ñ0Ô0Øˆˆ˜˜˜¨/¨/¨/ð5;ò ;ð ;ð ;ð ;å•	˜!‘”ÑÔ " Ò%Ð%Ð%Ð%Ý•	˜!˜Q‘”Ñ Ô  R DÒ(Ð(Ð(Ð(Ø*Ð*�Y q™\œ\Ð*Ñ*Ô*¨y¨y¨y¸1¸a¸&À1À#Ð.FÒFÐFÐFÐFÐFÐFrL   c                  óÞ   — dD ]%} t          | ¦  «        \  }}|dz  |dz  z   | k    sJ ‚Œ&t          d¦  «        �J ‚t          d¦  «        }|dk    rt          |d         ¦  «        t          u sJ ‚d S )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Ö  Š  sŽ   € Ø>ð  ð  ˆÝ*¨1Ñ-Ô-‰ˆˆ1Ø�!‰t�a˜‘d‰{˜aÒÐÐÐÐÝ& qÑ)Ô)Ð1Ð1Ð1Ý
% fÑ
-Ô
-€CØ�*ÒÐ¥ c¨!¤f¡¤µÐ!4Ð!4Ð!4Ð4Ð!4Ð!4rL   c                  ó8  — dD ]4} t          | ¦  «        \  }}}|dz  |dz  z   |dz  z   | k    sJ ‚|dk    sJ ‚Œ5t          t          d„ ¦  «         t          d¦  «        �J ‚t          d¦  «        �J ‚t          d¦  «        dk    sJ ‚t          d	¦  «        d
k    sJ ‚d S )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Ô7€ rL   r€   i <  rÃ   )r   r   r~   rk   ©r   r   r\   )r)   r@   rx   )r…  r(  r)  rz  s       rJ   Útest_sum_of_three_squaresrÛ  “  sÓ   € ð1ð ð ˆå& qÑ)Ô)‰ˆˆ1ˆaØ�!‰t�a˜‘d‰{˜Q ™TÑ! QÒ&Ð&Ð&Ð&Ø�AŠvˆvˆvˆvˆvõ �:Ð7Ð7Ñ8Ô8Ð8å Ñ"Ô"Ð*Ð*Ð*Ý 	Ñ*Ô*Ð2Ð2Ð2õ   Ñ#Ô# yÒ0Ð0Ð0Ð0Ý Ñ"Ô" iÒ/Ð/Ð/Ð/Ð/Ð/rL   c                  óÒ  — ddl m}   | dd¦  «        }t          d„ t          |¦  «        D ¦   «         ¦  «        |k    sJ ‚t	          t
          d„ ¦  «         t          d¦  «        D ]‚}t          |¦  «        }t          |¦  «        dk    sJ ‚t          d	„ |D ¦   «         ¦  «        sJ ‚t          d
„ |D ¦   «         ¦  «        |k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚Œƒd S )Nr   )Úrandintr[   l    @ô Ìk c              3   ó    K  — | ]	}|d z  V — Œ
dS rƒ  rP   r„  s     rJ   r†  z+test_sum_of_four_squares.<locals>.<genexpr>«  s&   è è € Ð4Ð4˜ˆq�!‰tÐ4Ð4Ð4Ð4Ð4Ð4rL   c                  ó    — t          d¦  «        S rÙ  )r(   rP   rL   rJ   rQ   z*test_sum_of_four_squares.<locals>.<lambda>®  s   € Õ2°2Ñ6Ô6€ rL   rª  rk   c              3   ó"   K  — | ]
}|d k    V — ŒdS ©r   NrP   ©r  Úrs     rJ   r†  z+test_sum_of_four_squares.<locals>.<genexpr>³  s&   è è € Ð*Ð*˜a�1˜’6Ð*Ð*Ð*Ð*Ð*Ð*rL   c              3   ó    K  — | ]	}|d z  V — Œ
dS rƒ  rP   râ  s     rJ   r†  z+test_sum_of_four_squares.<locals>.<genexpr>´  s&   è è € Ð(Ð(˜A�1�a‘4Ð(Ð(Ð(Ð(Ð(Ð(rL   )Úsympy.core.randomrÝ  r¡  r(   r@   rx   r   r¢  ÚallrÌ  Úsorted)rÝ  rÎ  Úresults      rJ   Útest_sum_of_four_squaresré  ¦  s  € Ø)Ð)Ð)Ð)Ð)Ð)ð 	ˆ��?Ñ#Ô#€AÝÐ4Ð4Õ0°Ñ3Ô3Ð4Ñ4Ô4Ñ4Ô4¸Ò9Ð9Ð9Ð9õ �:Ð6Ð6Ñ7Ô7Ð7å�4‰[Œ[ð .ð .ˆÝ$ QÑ'Ô'ˆÝ�6‰{Œ{˜aÒÐÐÐÝÐ*Ð* 6Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*ÝÐ(Ð( Ð(Ñ(Ô(Ñ(Ô(¨AÒ-Ð-Ð-Ð-Ý�F‰|Œ|�v f™~œ~Ò-Ð-Ð-Ð-Ð-ð.ð .rL   c            	      ó\  — g d¢} | D ]h}|\  }}}t          |||¦  «        }	 	 t          |¦  «        }t          |¦  «        |k    sJ ‚d}|D ]
}|||z  z   }Œ||k    sJ ‚n# t          $ r Y nw xY wŒNŒit	          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    sJ ‚Œ*d S )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Ô$CÑDÔ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Ô$AÑBÔ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^   rh  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Î  r<  rÏ  ÚfÚlÚchk_sumÚl_iÚbigr…  s              rJ   Útest_power_representationrû  ¸  sQ  € ðð ð €Eð ð ð ˆØ‰ˆˆ1ˆaÝ   A qÑ)Ô)ˆð	ð
Ý˜‘G”G�Ý˜1‘v”v ’{�{�{�{à�Øð /ð /�CØ%¨¨Q©Ñ.�G�GØ !’|�|�|�|�|øå ð ð ð Ø�ðøøøð	ð åÕ$ R¨¨A¨tÑ4Ô4Ñ5Ô5Ø	�|Ð$ò%ð %ð %ð %å
�:ÐDÐDÑEÔEÐEÝ
�:ÐBÐBÑCÔCÐCÝ
�:ÐBÐBÑCÔCÐCÝÕ$ R¨¨AÑ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5ÝÕ$ Q¨¨1Ñ-Ô-Ñ.Ô.°4°&Ò8Ð8Ð8Ð8ÝÕ$ Q¨¨1Ñ-Ô-Ñ.Ô.°"Ò4Ð4Ð4Ð4ÝÕ$ Q¨¨1Ñ-Ô-Ñ.Ô.°4°&Ò8Ð8Ð8Ð8ÝÕ$ T¨1¨a°tÐ<Ñ<Ô<Ñ=Ô=Ø	Ð/Ð0ò1ð 1ð 1ð 1åÕ$ T¨1¨a°uÐ=Ñ=Ô=Ñ>Ô>À"ÒDÐDÐDÐDÝÕ$ R¨¨AÑ.Ô.Ñ/Ô/°H°:Ò=Ð=Ð=Ð=ÝÕ$ R¨¨AÑ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5ÝÕ$ Q¨¨1¨dÑ3Ô3Ñ4Ô4¸¸Ò@Ð@Ð@Ð@ÝÕ$ Q¨¨1¨eÑ4Ô4Ñ5Ô5¸Ò;Ð;Ð;Ð;å�tÕ(Ð)9¸1¸aÑ@Ô@ÑAÔAÑBÔBÀaÒGÐGÐGÐGà
€CØ$ð :ð :ˆÝ•M # q¨#°©'Ñ2Ô2Ñ3Ô3°rÒ9Ð9Ð9Ð9Ð9ð:ð :s   ¢;AÁ
A+Á*A+c                  óœ  — 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 ‚dS )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  å  s®  € õ �5 $°Ð6Ñ6Ô6�D€A€qÝ�q˜!‘t˜a ™c‘z CÑ'Ñ(Ô(€DØÐMÐMÐMÒMÐMÐMÐMå�5 $°Ð7Ñ7Ô7�D€A€qÝ�q˜‘s˜Q˜q™S‘y 1 Q¡3‘¨Ñ*Ñ+Ô+€DØÐQÐQÐQÒQÐQÐQÐQå�5 $Ð'Ñ'Ô'�D€A€qÝ�r˜!˜Q™$‘w  1¡ Q¡‘¨¨1©Ñ,Ñ-Ô-€DØÐ-Ð-Ð-Ò-Ð-Ð-Ð-å�5 $°Ð6Ñ6Ô6�D€A€qÝ�r˜!˜Q™$‘w  1¡ Q¡‘¨¨1©Ñ,Ñ-Ô-€DØ•3‘5”5Š=ˆ=ˆ=ˆ=å�5 $°Ð7Ñ7Ô7�D€A€qÝ�r˜!˜Q™$‘w  1¡ Q¡‘¨¨1©Ñ,Ñ-Ô-€DØ�F�8ÒÐÐÐÐÐrL   c           	      óT  — t          | ¦  «        }t          j        | ¦  «        }t          | j        ¦  «        }|                     t          ¬¦  «         |rS|                     ¦   «         }|D ]8}t          | 	                    t          ||¦  «        ¦  «        ¦  «        dk    r nŒ9dS |°SdS )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   rr  rK   r
  rÎ   )rI   ÚsÚfactorsr£  Úsolutionrö  s         rJ   rÀ   rÀ      s±   € õ 	�B‰Œ€AåŒm˜BÑÔ€Gå
ˆrŒÑ
Ô
€CØ‡H‚HÕ!€HÑ"Ô"Ð"à
ð Ø—5’5‘7”7ˆØð 	ð 	ˆAÝ˜QŸVšV¥C¨¨XÑ$6Ô$6Ñ7Ô7Ñ8Ô8¸AÒ=Ð=Ø�ð >ð �5ð ð ð ˆ4rL   c            	      ó.
  — 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    rft"          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n 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n J ‚t3          d	¦  «        t5          d	¦  «         cxk    rdk    sn 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 ‚d S )#Nr\   r[   r}   r‚   rˆ   rk   r‡   rT   r   ©rª   rØ   rƒ   c              3   óL   K  — | ]}|                      t          d ¦  «        V — Œ dS rá  )r
  rª   )r  Ú_s     rJ   r†  z$test_diopcoverage.<locals>.<genexpr>#  s.   è è € Ð:UÐ:UÈA¸1¿6º6Å!ÀQ¹<¼<Ð:UÐ:UÐ:UÐ:UÐ:UÐ:UrL   rŠ   r~   rÚ   r®   rq  c                  ó$   — t          ddd¦  «        S )Nrk   rŠ   r[   )r#   rP   rL   rJ   rQ   z#test_diopcoverage.<locals>.<lambda>)  s   € �{¨1¨b°!Ñ4Ô4€ rL   r¶   r»   r³   TFrT  c                  ó    — t          d¦  «        S )N)r\   rk   r‚   )r:   rP   rL   rJ   rQ   z#test_diopcoverage.<locals>.<lambda>;  s   € �k¨)Ñ4Ô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>@  s6   € ­µA°q±D½1¸a¹4±KÅ!ÅAÁ#Ñ4EÈÍ!ÉÍAÉÑ4MÐPRÑ4RÑ(SÔ(S€ rL   c                  óF   — t          t          dz  t          dz  z   ¦  «        S )NrT   r\   r^  rP   rL   rJ   rQ   z#test_diopcoverage.<locals>.<lambda>A  s   € ­µA°q±D½1¸a¹4±KÑ(@Ô(@€ rL   rh  >   ©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Ð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Ð9Ý�!�a ™d™( Q™,Ñ'Ô'­a°©d¨U°Q©Y½¨NÐ+;Ò;Ð;Ð;Ð;å•q�1‘u˜q‘yÑ!Ô!¥c¨1­s©7 ^Ò3Ð3Ð3Ð3å  1 a¨4Ð0Ñ0Ô0°FÒ:Ð:Ð:Ð:Ø�Q‰3�‰7�B•q‘D˜1‘HÐ
€CÝ  1 b­!Ñ,Ô,°Ò3Ð3Ð3Ð3Ý  1 b¨DÐ1Ñ1Ô1µUÐ:UÐ:UÐQTÐ:UÑ:UÔ:UÑ5UÔ5UÒUÐUÐUÐUå�a˜˜BÑÔ¥3¡5¤5Ò(Ð(Ð(Ð(Ý�a˜˜AÑÔ 6 (Ò*Ð*Ð*Ð*Ý�a˜˜BÑÔ F 8Ò+Ð+Ð+Ð+å
�:Ð4Ð4Ñ5Ô5Ð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œ4¥! A¡#™:¥q¨¡t¤t­a°©c¡zµ1°Q±4´4½!¸Ñ=Ô=Ñ>Ô>À!ÒCÐCÐCÐCÝ�{�8 A q™>œ>­1¨Q©4¬4µ!©8µQ°q±T´T½A¸3Ñ?Ô?Ñ@Ô@ÀAÒEÐEÐEÐEÝ�{�1˜Q™4œ4¥!™8¥X¨a°¡^¤^µQ°q±T´T½A¸3Ñ?Ô?Ñ@Ô@ÀAÒEÐEÐEÐEå˜"˜bÑ!Ô! QÒ&Ð&Ð&Ð&Ý�‰7Œ7�5 ™8œ8�|Ð,Ð,Ò,Ð,¨Ò,Ð,Ð,Ð,Ð,Ð,Ý�‰7Œ7�5 ™8œ8�|Ð-Ð-Ò-Ð-¨Ò-Ð-Ð-Ð-Ð-Ð-Ý�q˜!˜QÑÔ 9Ò,Ð,Ð,Ð,Ý
�9Ð4Ð4Ñ5Ô5Ð5Ý�h ¨	Ñ2Ô2Øòð ð ð õ ÕÐ SÐ SÑTÔTÐTÝ
ÕÐ @Ð @ÑAÔAÐAÝ�!˜Q™$¥ A¡™+¨Ñ,¨tÑ3Ñ4Ô4ØSÐSÐSòTð Tð Tð Tð Tð TrL   c                  óš   — 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„ ¦  «         d S )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   r0  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_holzerr3  F  sf   € õ �!�Q˜˜A˜r 2Ñ&Ô&¨*Ò4Ð4Ð4Ð4õ �!�Q˜˜1˜a Ñ$Ô$¨	Ò1Ð1Ð1Ð1å
�:Ð:Ð:Ñ;Ô;Ð;Ð;Ð;rL   c                  óf  ‡
‡‡— ˆ
ˆˆ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 ‚d S )Nc                 ó8   •— ‰| dz  z  ‰|dz  z  z   ‰|dz  z  z
  S r�   rP   )rO   rh   ri   r(  r)  rz  s      €€€rJ   rQ   z"test_fail_holzer.<locals>.<lambda>T  s(   ø€ ˜˜1˜a™4™ ! A q¡D¡&™¨1¨Q°©T©6Ñ1€ rL   )rk   r0  r­   )é   r[   r¯   r1  r   r\   )Úmaxr1   )rI   rO   rh   ri   Úxyzr  r  r4  rÕ  Úhr(  r)  rz  s             @@@rJ   Útest_fail_holzerr:  R  s  øøø€ à	1Ð	1Ð	1Ð	1Ð	1Ð	1€BØ�G€A€qˆ!ØÐ�G€A€qˆ!ˆcØÐ�G€A€qˆ!ˆcØˆ2ˆsˆ8�qŠ=ˆ=ˆ=ˆ=Øˆ2ˆ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ˆ8ˆ8ˆ8ˆ8ˆ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 ‚d S )Nr‚   r‰   rŠ   r‹   )r   rg   rh   rO   ri   rŽ   r�   r�   rP   rL   rJ   Útest_issue_9539r<  `  sm   € Ý�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 ‚d S )NrT   r\   rm   ©r   r   r   r"  rP   rL   rJ   Útest_issue_8943r?  e  sm   € ÝØ	�1ˆa‰4•!�Q‘$‰;�˜A™ÑÑ ¥Q¥q¡S­1­Q©3¡Yµµ1±¡_Ñ!5Ñ5ñ7ô 7àˆ;òð ð ð ð ð rL   c                  óF  ‡— 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 ‚d S )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Ô(O€ rL   ÚnegTrˆ  )r…   r‚   r‚   r   )Úlimit)
rO   rh   ri   r   r   r@   ry   r
   r   rX   )rB  rI   s    @rJ   Útest_diop_sum_of_even_powersrD  k  s*  ø€ Ý	
ˆA‰•�1‘‰•q˜!‘tÑ	˜dÑ	"€BÝ�b‰>Œ>˜i¨Ð3Ò3Ð3Ð3Ð3Ý*¨2¨qÑ1Ô1°iÀÐ5KÒKÐKÐKÐKÝ
ÕÐ OÐ OÐ OÐ OÑPÔPÐPÝ
�% $Ð
'Ñ
'Ô
'€CÝ	
ˆA‰•�1‘‰�s˜A‘vÑ	 Ñ	$€BÝ*¨2Ñ.Ô.°:°,Ò>Ð>Ð>Ð>Ý•q˜!‘t�a ™d‘{ Q‘Ñ'Ô'­3©5¬5Ò0Ð0Ð0Ð0Ý*­1¨a©4µ!°Q±$©;¸©?À!ÐDÑDÔDÍÉÌÒMÐMÐMÐ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 ‚d„ t          d¦  «        D ¦   «         g d¢k    sJ ‚d„ t          d¦  «        D ¦   «         g d¢k    sJ ‚t          d¦  «        D ]yŠt          t          ‰dd¦  «        ¦  «        }|rt          ˆfd„|D ¦   «         ¦  «        sJ ‚t          t          ‰d¦  «        ¦  «        }t          ˆfd„|D ¦   «         ¦  «        sJ ‚Œzt          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 ‚d S ),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   r>  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[   c                 ód   — g | ]-}t          t          t          |d d¦  «        ¦  «        ¦  «        ‘Œ.S )r~   T©r¢  rÌ  r5   r„  s     rJ   r	  z.test_sum_of_squares_powers.<locals>.<listcomp>�  s4   € ÐEÐEÐE°a�C••^ A q¨$Ñ/Ô/Ñ0Ô0Ñ1Ô1ÐEÐEÐErL   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~   c           
      ób   — g | ],}t          t          t          |d ¦  «        ¦  «        ¦  «        ‘Œ-S )r~   rW  r„  s     rJ   r	  z.test_sum_of_squares_powers.<locals>.<listcomp>–  s2   € Ð?Ð?Ð?°�C••^ A qÑ)Ô)Ñ*Ô*Ñ+Ô+Ð?Ð?Ð?rL   )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   óR   •K  — | ]!}t          d „ |D ¦   «         ¦  «        ‰k    V — Œ"dS )c              3   ó    K  — | ]	}|d z  V — Œ
dS rƒ  rP   ©r  Újs     rJ   r†  z7test_sum_of_squares_powers.<locals>.<genexpr>.<genexpr>Ÿ  s&   è è € Ð 1Ð 1¨!  A¡Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1rL   N©r¡  ©r  rª   r…  s     €rJ   r†  z-test_sum_of_squares_powers.<locals>.<genexpr>Ÿ  s?   øè è € ÐCÐC¸1�SÐ 1Ð 1¨qÐ 1Ñ 1Ô 1Ñ1Ô1°QÒ6ÐCÐCÐCÐCÐCÐCrL   c              3   óR   •K  — | ]!}t          d „ |D ¦   «         ¦  «        ‰k    V — Œ"dS )c              3   ó    K  — | ]	}|d z  V — Œ
dS rƒ  rP   r[  s     rJ   r†  z7test_sum_of_squares_powers.<locals>.<genexpr>.<genexpr>¡  s&   è è € Ð'Ð' �q˜!‘tÐ'Ð'Ð'Ð'Ð'Ð'rL   Nr]  r^  s     €rJ   r†  z-test_sum_of_squares_powers.<locals>.<genexpr>¡  s?   øè è € Ð9Ð9°•3Ð'Ð' QÐ'Ñ'Ô'Ñ'Ô'¨1Ò,Ð9Ð9Ð9Ð9Ð9Ð9rL   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|   rb  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   rp  r‚   éó   iÙ  )r‰   rª  )r  rÐ   rO   rh   ri   r   r   r¢  r@   rx   rÌ  r5   r   rX   ræ  r4   )ÚtrurI   rÕ  Ús1Ús2r…  s        @rJ   Útest_sum_of_squares_powersrh  w  s  ø€ ð-ð -ð -€Cõ 
ˆA‰•�1‘‰•q˜!‘tÑ	�a ™dÑ	"¥Q¨¡TÑ	)¨CÑ	/€BÝ
% b­"Ñ
-Ô
-€CÝˆs‰8Œ8�rŠ>ˆ>ˆ>ˆ>Ø�#Š:ˆ:ˆ:ˆ:å
�:Ð;Ð;Ñ<Ô<Ð<Ý•˜q !Ñ$Ô$Ñ%Ô%¨$¨Ò/Ð/Ð/Ð/Ý•˜q !Ñ$Ô$Ñ%Ô%¨Ò+Ð+Ð+Ð+Ý•˜q ! TÑ*Ô*Ñ+Ô+°¨xÒ7Ð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ÐCàEÐE½5À¹9¼9ÐEÑEÔEð Jð Jð Jò ð ð ð ð @Ð?µU¸2±Y´YÐ?Ñ?Ô?ð Dð Dð Dò ð ð ð õ �2‰YŒYð :ð :ˆÝ•  1 dÑ+Ô+Ñ,Ô,ˆØÐC�ÐCÐCÐCÐCÀÐCÑCÔCÑCÔCÐCÐCÐCÝ•  1Ñ%Ô%Ñ&Ô&ˆÝÐ9Ð9Ð9Ð9°bÐ9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9å
�:Ð<Ð<Ñ=Ô=Ð=Ý
�:Ð<Ð<Ñ=Ô=Ð=Ý•˜b ! QÑ'Ô'Ñ(Ô(¨X¨JÒ6Ð6Ð6Ð6Ý•˜b ! QÑ'Ô'Ñ(Ô(¨BÒ.Ð.Ð.Ð.Ý•˜a  AÑ&Ô&Ñ'Ô'¨D¨6Ò1Ð1Ð1Ð1Ý•˜a  A tÑ,Ô,Ñ-Ô-°)¸YÐ1GÒGÐGÐGÐGÝ•˜a  A tÑ,Ô,Ñ-Ô-Ð1IÐ1IÐ1IÒIÐIÐIÐIÝ•˜a  AÑ&Ô&Ñ'Ô'¨2Ò-Ð-Ð-Ð-Ý•˜d A qÑ)Ô)Ñ*Ô*¨bÒ0Ð0Ð0Ð0Ý•˜d A qÑ)Ô)Ñ*Ô*¨t¨fÒ4Ð4¸$À$º,¸,¸,ÐGÝ•˜a ™g q¨!Ñ,Ô,Ñ-Ô-°Ò3Ð3Ð3Ð3Ð3Ð3rL   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 ‚d S )	NrT   r|   Fr…   r[   r   rk   r\   )r;   rP   rL   rJ   Útest__can_do_sum_of_squaresrj  °  s±   € Ý! ! RÑ(Ô(¨EÐ1Ð1Ð1Ð1Ý! " aÑ(Ô(¨EÐ1Ð1Ð1Ð1Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'¨5Ð0Ð0Ð0Ð0Ð0Ð0rL   c                  óX  — ddl m} m}m}m}m} | dz  |dz  z   dz
  }dh}t          |¦  «        |k    sJ ‚t          t          | 	                    ¦   «         ¦  «        ¦  «        }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 ‚d S )Nr   ry  rk   rQ  rp  TrR  r\   r,  é#   i0ò  r´   r³   rˆ   r“   )r  r(  r)  rz  r{  r|  r   rX   rB   rr  r¢  rO   rh   )	r(  r)  rz  r{  r|  rI   ru  rv  Úsolns	            rJ   Útest_diophantine_permute_signrn  º  sh  € Ø'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø	
ˆA‰��1‘‰˜Ñ	$€BØˆx€HÝ�r‰?Œ?˜hÒ&Ð&Ð&Ð&ÝÕ+¨H¯LªL©N¬NÑ;Ô;Ñ<Ô<€MÝ�r 4Ð(Ñ(Ô(¨MÒ9Ð9Ð9Ð9à	
ˆA‰��1‘‰�q˜!‘tÑ	˜a ™dÑ	" Q¨¡TÑ	)¨CÑ	/€BÝ�{˜2‰ŒÑÔ 2Ò%Ð%Ð%Ð%Ý�{˜2 tÐ,Ñ,Ô,Ñ-Ô-°Ò6Ð6Ð6Ð6Ø/Ð/Ð/€DÝ�r�!˜Q™$‘w ¥A¡¥a¡Ñ'¨"­Q°©T©'Ñ1°BÑ6ÀÐEÑEÔEÈÒMÐMÐMÐMÐMÐMrL   c                  ó†   — t           dz  t          dz  z   dz
  dz
  } t          | t           t          g¬¦  «        ddhk    sJ ‚d S )Nr\   rk   r[   rh  ©ri  rþ   )r[   rT   ©rO   rh   r   rH   s    rJ   Útest_not_implementedrr  É  sJ   € å	
ˆ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„¦  «         d S )NrT   r\   rp  c                  ó>   •— t          ‰ t          t          h¬¦  «        S )Nrp  )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_9538ru  Ï  sf   ø€ Ý	
ˆQ�q‰S‰�1‰€BÝ�r¥¥1 Ð&Ñ&Ô&­C°µ3±¸±Ð+;Ð*<Ò<Ð<Ð<Ð<Ý
�9Ð:Ð:Ð:Ð:Ñ;Ô;Ð;Ð;Ð;rL   c                  óD  — 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 ‚d S )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  r<  r=  rã  s       rJ   Útest_ternary_quadraticrx  Õ  s÷  € å�A•a˜‘d‘F�Q ™T‘M A¥a¨¡d¡FÑ*Ñ+Ô+€AÝ•a˜‘d”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Ð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ô 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ð 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          ‰                     ¦   «         ¦  «        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„¦  «         ‰                     d¦  «         t          ‰¦  «        dhk    sJ ‚‰                     ddt          f¦  «         t          ‰¦  «        ddt          fhk    sJ ‚t	          t
          ˆˆfd„¦  «         t          ‰                     ¦   «         ¦  «        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 ‚‰                     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 ‚‰                     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 ‚‰                     t          dt          di¦  «        dhk    sJ ‚ ‰dd¦  «        dhk    s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 ‚‰                     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 ‚‰                     t          d	t          di¦  «        dhk    sJ ‚ ‰d	d¦  «        dhk    s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¦  «        } |                      t          dt          z  f¦  «         |                      t           dt          z  f¦  «          | dd¦  «        dhk    sJ ‚d S )NrP   c                  ó:   •— ‰                       t          f¦  «        S rG   )ÚaddrO   )rf  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>ö  s   ø€ ˜rŸvšv¥q d™|œ|€ rL   c                  ó.   •— ‰                       d¦  «        S )Nr]   ©r{  )rg  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>ü  s   ø€ ˜rŸvšv d™|œ|€ rL   )rT   rk   r|   c                  ó.   •— ‰                       ‰¦  «        S rG   )Úupdate)rf  rg  s   €€rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸyšy¨™}œ}€ rL   rT   rk   r\   r[   r€   rƒ   )rY  r|   r[   r~   rÃ   r…   )rˆ   rž   r[   )é   rƒ   r[   c                  ó0   •— ‰                       d¬¦  «        S )Nr[   )rO   ©r
  ©Ús3s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜bŸgšg¨˜g™lœl€ rL   c                  ó2   •— ‰                       ddd¦  «        S ©Nr[   r\   rT   r‚  rƒ  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜bŸgšg a¨¨AÑ.Ô.€ rL   c                  ó.   •— ‰                       d¦  «        S )NrP   r}  rƒ  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸvšv b™zœz€ rL   c                  ó.   •— ‰                       d¦  «        S )N)r[   r\   rT   rk   r}  rƒ  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸvšv lÑ3Ô3€ rL   c                  ó.   •— ‰                       d¦  «        S )NrÜ   r}  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˜r ! Q¨™{œ{€ rL   c                  ó   •—  ‰ d¬¦  «        S )Nr[   r  rP   rƒ  s   €rJ   rQ   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜b˜b 1˜g™gœg€ rL   r¯   r€  r   rØ   )r<   rX   r
   r~  r@   rx   rÌ  Údict_iteratorrO   rh   rª   r  r{  r  ri   r¢  r
  rU   )Ús4rf  rg  r„  s    @@@rJ   Útest_diophantine_solution_setrŽ  ñ  s8  øøø€ Ý	  BÑ	'Ô	'€BÝˆr‰7Œ7•c‘e”eÒÐÐÐØŒ:˜ÒÐÐÐØŒ=˜BÒÐÐÐÝ
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ý�× Ò Ñ"Ô"Ñ#Ô# rÒ)Ð)Ð)Ð)å	¥¥A ­­A¨Ñ	/Ô	/€BØŒ:�!�Q˜ÒÐÐÐØŒ=�Q¥˜FÒ"Ð"Ð"Ð"Ý
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ø‡F‚Fˆ6�N„N€NÝˆr‰7Œ7�v�hÒÐÐÐØ‡I‚Iˆf�r�1�gÑÔÐÝˆr‰7Œ7�v ¥A˜wÐ'Ò'Ð'Ð'Ð'Ý
�:Ð,Ð,Ð,Ð,Ð,Ñ-Ô-Ð-Ý�× Ò Ñ"Ô"Ñ#Ô#­¨Bµµ1¨½¸1½aÀ°|Ð'DÒDÐDÐDÐDå	¥¥A¥q 	­A­q¨6Ñ	2Ô	2€BÝˆrŒ}ÑÔ Ò"Ð"Ð"Ð"Ø‡F‚F�Aˆq‰D•1‰H•a�!‘e˜QÐÑ Ô Ð Ýˆr‰7Œ7�˜1™�q™¥!¥a¡%¨Ð+Ð,Ò,Ð,Ð,Ð,Ø�7Š7•1�a‰=Œ=�a !™e Q­¡U¨AÐ.Ð/Ò/Ð/Ð/Ð/Øˆ2ˆa‰5Œ5•a˜!‘e˜Q¥™U AÐ&Ð'Ò'Ð'Ð'Ð'Ø�7Š7•A�q�!˜Q�<Ñ Ô  [ MÒ1Ð1Ð1Ð1Øˆ2ˆa�‰8Œ8˜�}Ò$Ð$Ð$Ð$Ø�7Š7•A�q�6‰?Œ?¥ B¡¨­A©¨qÐ1Ð2Ò2Ð2Ð2Ð2Øˆ2ˆa‰5Œ5•a˜"‘f˜a¥!™e QÐ'Ð(Ò(Ð(Ð(Ð(Ø�7Š7•1�b‰>Œ>�q !™t a™x­¨Q©°Ð2Ð3Ò3Ð3Ð3Ð3Øˆ2ˆd�B‰<Œ<�Q ™T A™X¥q¨1¡u¨aÐ0Ð1Ò1Ð1Ð1Ð1Ø�7Š7•A�q�!˜Q�<Ñ Ô  [ MÒ1Ð1Ð1Ð1Øˆ2ˆa�‰8Œ8˜�}Ò$Ð$Ð$Ð$Ø�7Š7•A�q�!˜R�=Ñ!Ô! j \Ò1Ð1Ð1Ð1Øˆ2ˆa�‰9Œ9˜˜Ò$Ð$Ð$Ð$Ý
�9Ð*Ð*Ð*Ð*Ñ+Ô+Ð+Ý
�9Ð.Ð.Ð.Ð.Ñ/Ô/Ð/Ý
�:Ð)Ð)Ð)Ð)Ñ*Ô*Ð*Ý
�:Ð3Ð3Ð3Ð3Ñ4Ô4Ð4Ý
�:Ð-Ð-Ð-Ð-Ñ.Ô.Ð.Ý
�:Ð*Ð*Ð*Ð*Ñ+Ô+Ð+Ý
�9�o�o�o�oÑ&Ô&Ð&å	¥¥A ­­A¨Ñ	/Ô	/€BØ‡F‚F�Aˆr•!‰tˆ9ÑÔÐØ‡F‚F�QˆB�•1‘ˆ:ÑÔÐØˆ2ˆa�‰8Œ8˜�xÒÐÐÐÐÐrL   c                  ó  — dt           z  t          z  dt          dz  z  z   } t          | ¦  «                             t          t
          g¬¦  «        }|t          dt          z  ft          dt          z  fhk    sJ ‚ |dd¦  «        dhk    sJ ‚d S )	NißÿÿÿrT   r\   r}  r¯   iêÿÿÿr   rØ   )rO   rh   r>   rÈ   rª   r  )rI   r  s     rJ   Ú test_quadratic_parameter_passingr�  "  s‡   € Ø	�Q‰�q‰�1•Q˜‘T‘6Ñ	€BÝ˜rÑ"Ô"×(Ò(µQ½°FÐ(Ñ;Ô;€Hà�˜B�q™D˜	¥A s­1¡u :Ð.Ò.Ð.Ð.Ð.Øˆ8�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 ‚d S )	Nr\   rn   rƒ   >   ©r   rƒ   ©rn   r   ©rn   rƒ   ©r»   rk   ©r|   rk   rØ   r‰   rk   rm   rÚ   rq  )Úeq1rÑ   Úeq2s      rJ   Útest_issue_18628r™  )  sš   € Ý
ˆQ‰$�•A‘‰+�˜1™Ñ
˜q¥™sÑ
"€CÝ
�cÑ
Ô
€CØÐFÐFÐFÒ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)  rz  r{  r<  r=  rO   rh   ri   rg   rª   r  rÐ   r  r  r4  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*  r1  r5  r8  r>  rA  rE  rH  rO  rw  r€  r¥  rÈ  rÐ  rÖ  rÛ  ré  rû  r  rÀ   r.  r3  r:  r<  r?  rD  rh  rj  rn  rr  ru  rx  rŽ  r�  r™  rP   rL   rJ   ú<module>r®     s9  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø $Ð $Ð $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð 29°Ø4¸dð2Dñ 2Dô 2DÑ .€€1€aˆˆAˆq�!�Q˜˜1˜a  A q¨!¨Qà$+ G¨F¸DÐ$AÑ$AÔ$AÑ !€€Sˆ#ˆs�C˜˜cØˆW�V TÐ*Ñ*Ô*�
€€BˆØ€WˆT˜4Ð Ñ Ô €ð+ð +ð +ð5ð 5ð 5ð
&ð &ð &ð7ð 7ð 7ð
Xð Xð Xð2/ð /ð /ð<ð ð ð0ð 0ð 0ð-ð -ð -ð=ð =ð =ðNð Nð NðAð Að AðAð Að Að ðBð Bñ „ðBðH#ð H#ð H#ðV&ð &ð &ð ð  ð  ðð ð ð<Uð Uð UðOð Oð Oð"ð "ð "ð;ð ;ð ;ð
ð 
ð 
ð
6ð 
6ð 
6ð!Eð !Eð !EðH.ð .ð .ð;ð ;ð ;ð5ð 5ð 5ð-ð -ð -ðV5ð V5ð V5ðrDð Dð Dð<ð <ð <ð@(ð (ð (ð
Gð 
Gð 
Gð5ð 5ð 5ð0ð 0ð 0ð&.ð .ð .ð$*:ð *:ð *:ðZð ð ð6ð ð ð.,Tð ,Tð ,Tð^	<ð 	<ð 	<ð ð
ð 
ñ „ð
ð;ð ;ð ;ð
ð ð ð	Nð 	Nð 	Nð64ð 64ð 64ðr1ð 1ð 1ðNð Nð Nð ð<ð <ñ „ð<ð
<ð <ð <ð7ð 7ð 7ð8. ð . ð . ðb&ð &ð &ðð ð ð ð rL   