U
    «Ì0eÐP  ã                   @   sX  d Z ddlmZ ddlmZ ddlmZmZmZm	Z	 ddl
mZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZ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'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z3m4Z4m5Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@mAZA ddlBmCZC ddlDmEZEmFZF e G¡ ZHdd„ ZIdd„ ZJdd„ ZKdd„ ZLd d!„ ZMd"d#„ ZNd$d%„ ZOd&d'„ ZPd(d)„ ZQd*d+„ ZRd,d-„ ZSd.d/„ ZTd0d1„ ZUd2d3„ ZVd4d5„ ZWd6d7„ ZXeFd8d9„ ƒZYd:d;„ ZZd<d=„ Z[d>d?„ Z\d@dA„ Z]dBdC„ Z^eFdDdE„ ƒZ_dFdG„ Z`dHdI„ ZadJdK„ ZbdLdM„ ZcdNS )OzFTests for tools for solving inequalities and systems of inequalities. é    )ÚSum)ÚFunction)ÚIÚRationalÚooÚpi)ÚEqÚGeÚGtÚLeÚLtÚNe)ÚS)ÚDummyÚSymbol)ÚAbs)ÚexpÚlog)ÚrootÚsqrt)Ú	Piecewise)ÚcosÚsinÚtan)ÚIntegral)ÚAndÚOr)ÚPolyÚPurePoly)Ú	FiniteSetÚIntervalÚUnion)Úreduce_inequalitiesÚsolve_poly_inequalityÚreduce_rational_inequalitiesÚsolve_univariate_inequalityÚreduce_abs_inequalityÚ_solve_inequality)Úrootof)Úsolve)Úsolveset)ÚxÚy)ÚMod)ÚraisesÚXFAILc                   C   sd   t tdtƒdƒtjgkst‚t tdtƒdƒtjgks8t‚t ttd tƒdƒtdt	ddƒgks`t‚d S )Nr   z==é   ú>éÿÿÿÿTF)
Úpsolver   r+   r   ÚRealsÚAssertionErrorÚEmptySetr   r    r   © r7   r7   úI/tmp/pip-unpacked-wheel-_6tpq7m6/sympy/solvers/tests/test_inequalities.pyÚtest_solve_poly_inequality%   s    r9   c               	   C   sÞ  t ttd dƒggtddtdƒks(t‚t ttd dƒggtddtdƒksPt‚t ttd dƒggtddtjksvt‚tj	r t t
td dƒggtddtjks°ntt tƒs°t‚t ttd dƒggtddtdƒ tj¡ksàt‚t ttd dƒggtddtdƒ tj¡kst‚t ttd dƒggtddtddƒks>t‚t ttd dƒggtddtddƒksjt‚t ttd dƒggtddtddddƒksšt‚t t
td dƒggtddttt dƒtdtƒƒksÔt‚t ttd dƒggtddtddƒ tj¡kst‚t ttd dƒggtddtddƒ tj¡ks<t‚t ttd dƒggtddtd	dƒ ¡ kslt‚t ttd dƒggtddtd	dƒks˜t‚t ttd dƒggtddtd	dddƒksÈt‚t t
td dƒggtddttt d	ƒtdtƒƒkst‚t ttd dƒggtddttt d	dd
tdtddƒksDt‚t ttd dƒggtddtd	dƒ tj¡ksxt‚tdƒ} t ttd d dƒttd d dƒggtddtjks¼t‚t ttd d dƒt
td d dƒggtddtddƒksüt‚t ttd d dƒt
td d dƒggtddtt|  dddƒtd| ddƒƒksRt‚t ttd d dƒttd d dƒggtddtt|  dddƒtd| ddƒƒks¨t‚t ttd d dƒt
td d dƒggtddtt|  dddƒtd| ddƒƒksþt‚t ttd d dƒttd d dƒggtddtt|  dddƒtd| ddƒƒksTt‚t ttd d dƒttd d dƒggtddtt|  dddƒtddddƒtd| ddƒƒks¶t‚t ttd d	ƒggtƒtjksÚt‚d S )Né   r   F©Z
relationalr0   r2   Tç      ð?g      ð¿)Z
right_open)Z	left_open)r$   r   r+   r   r5   r   r   r   r6   Zis_realr	   r4   r    r   r
   Z
complementr   r!   ÚevalfÚinfr   Úfalse)Úsr7   r7   r8   Ú+test_reduce_poly_inequalities_real_interval+   sˆ     ÿÿ  ÿÿ  ÿÿþ  ÿþ
þ  ÿþ  ÿþ
  ÿÿ
  ÿÿ
  ÿÿ
  ÿþ
  ÿþ
  ÿþ
 ÿ ÿÿ
  ÿÿ
 ÿ ÿÿ
  ÿþ
  ÿÿþ
 ÿ ÿþ

 ÿÿ ÿÿ

 ÿ ÿÿ
$  ÿþ
$  ÿþ
$  ÿþ
$  ÿþ
$  ÿÿþ
rA   c               
   C   s&  t ttd dƒggtddttdƒks*t‚t ttd dƒggtddttdƒksTt‚t ttd dƒggtdddksxt‚t ttd dƒggtddttt tƒtttƒƒks°t‚t t	td dƒggtddtt	tt ƒtttƒt
tdƒƒksðt‚t t
td dƒggtddtt	tt ƒtttƒt
tdƒƒks2t‚tjtdƒfD ]Þ} | t }t ttd | ƒggtddttt|  ƒtt| ƒƒksˆt‚t ttd | ƒggtddttt|  tƒtt| ƒƒƒksÆt‚t ttd | ƒggtddttt|  tƒtt| ƒƒƒkst‚t ttd | ƒggtddtttt| tƒtt|ƒƒttt|  ƒt| tƒƒƒƒks\t‚t t	td | ƒggtddtttt| tƒtt|  ƒƒtt| tƒtt|ƒƒƒƒks´t‚t t
td | ƒggtddttt| tƒtt|  ƒƒtt|  tƒtt| ƒƒtt| tƒtt|ƒƒƒks@t‚q@d S )Nr:   r   Tr;   Fr<   )r$   r   r+   r5   r   r   r	   r   r   r
   r   r   ÚOner   )Zoner>   r7   r7   r8   Ú0test_reduce_poly_inequalities_complex_relationalv   s²      ÿÿ  ÿÿ  ÿÿ  ÿÿ  ÿþ  ÿþ
  ÿþ
  ÿþ
  ÿþ
  ÿ4þ
  ÿ4þ
  ÿþþrC   c                   C   s\  t g tƒdkst‚t td dt  d td d  dkggtddtt t d¡tdd	ƒt d
t¡ƒkslt‚t dt d dt  td d td d   dk ggtddtt dd¡t dd¡ƒksÈt‚t td td  dkggtddt d	d¡ksút‚t td d
t  d td  dkggtddtt dd	¡t dt¡ƒksHt‚t td d td d  dk ggtddtt dd¡t dd
¡ƒks’t‚t dt d td
  dkggtddtt t d¡t tddƒt¡ƒksàt‚t td t dt kggtddtt 	t d¡t 	dd
¡ƒks$t‚t ttk tdkt tk ggtddtdtƒksXt‚d S )NFr:   é   é   r   r;   éüÿÿÿéþÿÿÿr2   é   é
   é   éûÿÿÿr0   éýÿÿÿé   )
r$   r+   r5   r!   r    Úopenr   ÚRopenr   ÚLopenr7   r7   r7   r8   Ú1test_reduce_rational_inequalities_real_relationalž   s^    &  ÿ"þ2 þýÿ
þ&ÿþ
"ÿþ
ÿ þ
ÿþ
  ÿÿrQ   c               	      s¨  t td ƒdk } ttdtƒttdƒƒ}t| ƒ|ks6t‚t| tƒ|ksHt‚tt td ƒƒttdƒksft‚tt dt d ƒdkƒtttt	ddƒtƒttt
ƒƒtttt	ddƒƒtt
 tƒƒƒks¾t‚tt td ƒt dt d ƒ dk ƒtttjtƒttdƒƒksþt‚tt td ƒt dt tƒ d ƒ dk ƒtttdƒtk td	k ƒttjtk tdk ƒƒksXt‚td
dd‰ tt‡ fdd„ƒ ttdk tˆ gdtt
 tk tdk ƒks¤t‚d S )NrJ   rD   r:   rM   iõÿÿÿrH   é   rG   r2   ÚnrF)Zextended_realc                      s   t tˆ d ƒdk ƒS )NrJ   rD   )r"   Úabsr7   ©rS   r7   r8   Ú<lambda>Ñ   ó    z.test_reduce_abs_inequalities.<locals>.<lambda>©Úsymbols)rT   r+   r   r   r"   r5   r   r   r   r   r   r   ÚHalfr   r.   Ú	TypeError)ÚeÚansr7   rU   r8   Útest_reduce_abs_inequalitiesÂ   s2    ÿÿÿ
ÿÿÿ&*ÿ
r^   c                   C   s`   t ttdƒt dƒƒttdƒd tkttk ƒks4t‚t td dkƒttjtk ttk ƒks\t‚d S )Nr:   r0   r   )	r"   r	   r   r+   r   r   r5   r   ÚNegativeOner7   r7   r7   r8   Ú test_reduce_inequalities_generalÕ   s    4r`   c                   C   s`   t ttd dƒdgƒttdƒks$t‚t ttd dƒdgƒdksBt‚t td dkƒtjks\t‚d S )Nr:   r   TF)r"   r   r+   r5   r   Útruer7   r7   r7   r8   Ú test_reduce_inequalities_booleanÚ   s    ÿÿrb   c                
   C   sŽ   t ttd dƒttd dƒgƒtttttjtƒt	tt
ƒƒtttdƒt	t
 tƒƒƒttttjtƒt	tt
ƒƒtttdƒt	t
 tƒƒƒƒksŠt‚d S )Nr:   r0   r2   )r"   r	   r+   r,   r   r   r   r   rB   r   r   r5   r7   r7   r7   r8   Ú%test_reduce_inequalities_multivariateá   s     00þrc   c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t tttƒt dƒƒS )Nr0   )r"   r	   r   r+   r7   r7   r7   r8   rV   è   rW   z1test_reduce_inequalities_errors.<locals>.<lambda>c                   S   s   t ttd t t dƒƒS ©Nr:   r0   )r"   r	   r+   r,   r7   r7   r7   r8   rV   é   rW   )r.   ÚNotImplementedErrorr7   r7   r7   r8   Útest_reduce_inequalities_errorsç   s    rf   c                   C   s¦   t tt dk tgdtdt k ks&t‚t tt dktgdttk tt d k@ ksVt‚t tdtt ƒtgdtttƒks|t‚t tdtt ƒtgdtttƒks¢t‚d S )Nr0   rX   r   )r"   r+   r,   r5   r   r   r   r7   r7   r7   r8   Útest__solve_inequalitiesì   s    &0&rg   c                  C   st   dt d  d t tddƒ  tddƒ dk} t| ƒtt tddƒtdƒd  k tdƒ d td	dƒ t k ƒkspt‚d S )
NrL   r:   é-   rH   é!   r   iñÿÿÿi‘  é   )r+   r   r"   r   r   r5   )Úeqr7   r7   r8   Útest_issue_6343ó   s    ,6ÿrl   c                  C   sr  t td d dk ƒttjtk tdk ƒks,t‚t td d dkƒttjtktdkƒksXt‚t td d dkƒttt tk tdk ƒtttk tjtk ƒƒksšt‚t td d dkƒttt tk tdkƒttjtkttk ƒƒksÜt‚td t d } t	| dkƒ}ttt
| dƒtkttk ƒtt tk tt
| dƒkƒƒ}||ks:t‚t	tt d d ƒdk ƒttjtk tdk ƒksnt‚d S )Nr:   r0   r   r2   rM   é	   )r"   r+   r   r   r_   r5   r   r   rB   r)   r(   r   ÚZero)rk   ZsolZtrur7   r7   r8   Útest_issue_8235ù   s"    ÿÿ(ÿ(ÿ4ro   c                  C   s¬   t dtttd tddfƒ d ktgƒtttd tddfƒ d kksJt‚tdƒ} t| tƒtddfƒ}t dt| td  ktgƒttd  t| tƒtddfƒ kks¨t‚d S )Nr   r:   r0   rD   Úf)r"   r+   r   r,   r5   r   r   )rp   r\   r7   r7   r8   Útest_issue_5526  s    ÿÿþ ÿrq   c                     s  t td dktddttt dƒtdtƒƒks2t‚t td dktƒtttdtƒt	ttƒƒtttdƒt	t tƒƒƒksxt‚t td td  td  dktddttddƒtdtƒƒks¸t‚t td td  td  dktƒtttdtƒttdƒƒttdtƒt	ttƒƒƒkst‚t td td  td  dk tt
ddƒd	tttdƒttdƒƒksVt‚t td dt  d dktddttd
tdƒ d tj ddƒttjtdƒd  tddƒƒksºt‚t td td  t d dktddtdtdƒksòt‚t tt tdt   dk tƒttdƒks t‚t td td  t td td  dt   dk tƒtttdƒttdƒƒksrt‚t td td  t td td  dt   td  dktƒttdƒksÀt‚ttdd„ ƒ t td t d dktƒtttd t d dƒtk ttk ƒkst‚t dtd  dktƒttdƒtk ttk ƒksDt‚td td   ¡ } t td |  dktƒtt ktdk @ ttdƒ@ kst‚tdƒ‰tt‡fdd„ƒ tddd‰ tt‡ ‡fdd„ƒ tddd‰t ˆˆ  dkˆ ƒˆ d ˆ k ksüt‚t ˆˆ  dk ˆ ƒdkst‚t ˆˆ  dkˆ ƒdks4t‚tdƒd tdƒd  d ‰tt‡fdd„ƒ tt‡fdd„ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ td t ttd   ‰t ˆdk tddtjksÔt‚t ˆdktddtjksòt‚ttdd„ ƒ d S )Nr:   rH   Fr;   rG   r0   rD   r   ©Údomainr2   rJ   Tc                   S   s&   t td dt t  d t dk tƒS )Nr:   rD   r   ©Úisolver+   r   r7   r7   r7   r8   rV   ,  rW   z2test_solve_univariate_inequality.<locals>.<lambda>rR   Únc                      s   t ttƒˆ ktddS )NFr;   )ru   r   r+   r7   ©rv   r7   r8   rV   ;  rW   Úc1©Zpositivec                      s   t ˆˆ  dk ˆ ƒS ©Nr   )ru   r7   )rx   rv   r7   r8   rV   =  rW   )Únegativec                      s   t td ˆ k tƒS ©Nr:   )ru   r+   r7   ©Úzeror7   r8   rV   D  rW   c                      s   t td ˆ t k tƒS r|   rt   r7   r}   r7   r8   rV   E  s    ÿc                   S   s   t dtt  dk tƒS )Nr0   r:   ©ru   r+   r,   r7   r7   r7   r8   rV   G  rW   c                   S   s   t dtt  dk tƒS )Nr0   r   r   r7   r7   r7   r8   rV   H  rW   c                   S   s   t tt dk tƒS rz   rt   r7   r7   r7   r8   rV   I  rW   c                   S   s$   t tttƒd ttƒd  dƒtƒS rd   )ru   r   r   r+   r   r7   r7   r7   r8   rV   P  s    ÿ)ru   r+   r!   r    r   r5   r   r   r   r   r   r   r   r   rZ   r   r.   Ú
ValueErrorr(   Úexpandr   r   re   r   r   r[   r6   r4   )Zdenr7   )rx   rv   r~   r8   Ú test_solve_univariate_inequality  sj     ÿ
0
ÿ$ÿ ,ÿ
*ÿ
 ÿÿ
$
ÿ
.RN"ÿ
2ÿ
&r‚   c                	   C   s  t ttƒtjk tddttdtd ddƒt tt	ddƒ dt ¡ƒksJt
‚t ttƒtjktddttd tt	ddƒ ddƒks‚t
‚t ttƒtjk tddttd tt	ddƒ ddƒksºt
‚t ttƒtjktddttdtd ƒt tt	ddƒ dt ¡ƒkst
‚t ttƒtjk tddtt dtd	 ¡t td t¡ƒksBt
‚t ttƒtjktddtttjƒt tdt ¡ƒks|t
‚t ttƒtjktddtjks t
‚t ttƒtd
ƒk tddtjksÆt
‚t ttƒtjktddtjksêt
‚t ttƒtjktddtjkst
‚d S )NFr;   r   é   TrJ   r:   rD   rH   rG   )ru   r   r+   r   rZ   r!   r    r   rN   r   r5   r   rn   rO   r   rB   r   r4   r6   r_   r7   r7   r7   r8   Útest_trig_inequalitiesT  s,    ,ÿÿÿ(ÿ
 ÿ
ÿ
$&$r„   c                   C   s   t td dktddtjks t‚t td dktddtj t¡ksFt‚t td dk tddtjksft‚t td dk tddtj t¡ksŒt‚d S )Nr:   r   Fr;   T)ru   r+   r   r4   r5   Zas_relationalr6   r7   r7   r7   r8   Útest_issue_9954k  s     & r…   c                  C   sn   t td td  d dƒ} tttƒdttdƒ  dkƒttdtk t| d k ƒt| d tk ttk ƒƒksjt‚d S )NrJ   r:   r0   r   rD   rƒ   )	r(   r+   r)   r   r   r   r   r   r5   )Úrr7   r7   r8   Útest_slow_general_univariater  s    ,ÿr‡   c                  C   sn   dt  tdt  ƒ } ttdt ƒtt tƒƒ}t| dt ƒ|ks>t‚dt  tdt  d ƒ } t| dk ƒ|ksjt‚d S )Nr0   ú<r:   r   )	r+   rT   r   r   r   r&   r5   r   r"   )rk   r]   r7   r7   r8   Útest_issue_8545y  s
    r‰   c                   C   sR   t t tk tƒtt tk ttk ƒks(t‚t ttktƒtt tk ttk ƒksNt‚d S )N)ru   r   r+   r   r5   r7   r7   r7   r8   Útest_issue_8974  s    (rŠ   c                	   C   sì   t ddtdt d ƒ  dk ƒtt kttdƒd k @ ttdƒ@ ksHt‚t tdttƒ ƒd tƒttdƒkspt‚t	ddtddt  ƒ  dtƒt
tt tk tdk ƒttjtk ttddƒk ƒttddƒtk ttk ƒƒksÚt‚ttd	d
„ ƒ d S )Nr2   r0   r   r:   rL   rˆ   rD   rH   c                   S   s$   t ddtddttƒ  ƒ  dtƒS )NrL   r0   rˆ   )r&   rT   r   r+   r7   r7   r7   r8   rV   Ž  s
   ÿ ÿz"test_issue_10198.<locals>.<lambda>)r"   rT   r+   r   r   r   r5   r   r   r&   r   r   rn   r   r.   r€   r7   r7   r7   r8   Útest_issue_10198†  s    ÿ"ÿ( ÿÿr‹   c                   C   s<   t ttƒdk ƒdkst‚tttƒdk tjdtjks8t‚d S )Nr:   Trr   )r)   r   r+   r5   r*   r   r4   r7   r7   r7   r8   Útest_issue_10047’  s    rŒ   c                   C   s0   t ttƒdk ƒttjtk ttdƒk ƒks,t‚d S )Niè  )r)   r   r+   r   r   rn   r   r5   r7   r7   r7   r8   Útest_issue_10268  s    r   c                  C   sF   t dƒ} tttƒ| ktddttj| dk ft|  | ƒdfƒksBt‚d S )Nrv   Fr;   r   T)	r   ru   r   r+   r   r   r6   r    r5   rw   r7   r7   r8   Útest_isolve_Sets¡  s    ÿrŽ   c                  C   sŠ  t ddƒ} tddd}t|d |d  |d  dk || d	t|dƒksJt‚tdƒ}t|d dk |tjd	|d
k|t k@ tt|dƒdƒ@ kst‚td| d dk|tjd	|dk|tk @ tt|dƒdƒ@ ksÐt‚t|d d|  d dk |tjd	|d
k|dk@ tt|dƒdƒ@ kst‚t|d d|  d dk|tjd	|dk|tk @ tt|dƒdƒ@ |dk|t k@ tt|dƒdƒ@ B ks†t‚d S )Nr   rD   r+   Fr}   r0   r:   rH   rr   rL   r2   rF   )	r   r   ru   r   r5   r   ZIntegersr   r-   )Údomr+   r7   r7   r8   Ú%test_integer_domain_relational_isolve¨  s$    
4 ÿÿ"ÿ
" ÿÿr   c                  C   s‚   t ttƒttdtƒƒtdtƒks$t‚tddƒ} t dt  t¡dk t| ƒ| ksPt‚t t	td ƒt dktt
jƒt dd¡ks~t‚d S )Nr   r0   rI   rƒ   rR   )r*   r   r,   r    r   r   r5   r+   Zdiffr   r   r4   rP   )Úir7   r7   r8   Útest_issue_10671_12466º  s    $
"
ÿr’   c                  C   s†  t tttttfD ]:} t| tdƒtƒjtks.t	‚t| t
jtƒtƒjtkst	‚qttdt d tƒtƒttdƒksrt	‚tt
jtƒ}t|tƒ|kst	‚td ttƒttƒttƒ tdt  fD ]@}dD ]6}d| | dk}t|tdd||t
dƒ kksÀt	‚qÀq¸tdtd  dt  d dk tddttd  t
jk ks8t	‚tttt dƒtƒttt dƒks`t	‚tddd}ttt| dƒtƒttd| ƒks”t	‚tt| dk tƒt| dk ks¸t	‚td	dd
}t|t dktƒt
jtk t|k @ ksît	‚t|t dktdddt d| kkst	‚tdt tdt d  ƒ}t|tƒttdƒksNt	‚tttdt d  k tƒtt
jk ttdƒ@ ks‚t	‚d S )Nr0   r:   )r   r0   r   T)ZlinearÚnz)ZnonzeroÚary   )r
   r   r   r	   r   r   r'   r+   Úlhsr5   r   rB   r,   r   r   r   rZ   r   rn   )ÚopZieZfxÚcr\   r“   r”   r7   r7   r8   Útest__solve_inequalityÂ  s2    &,ÿ$ÿ
(($*,r˜   c                      sf  ddl m‰  ˆ t tƒdks t‚ˆ tjtdƒƒdks8t‚ˆ tjtƒˆ ttjƒ  kr\dksbn t‚ˆ tjt ƒˆ t tjƒ  krŒtjks’n t‚ˆ tjtƒˆ ttjƒ  kr¼tddƒksÂn t‚ˆ tjt ƒˆ t tjƒ  krêdksðn t‚ˆ t	tƒˆ tt	ƒ  krt	d ksn t‚ˆ t	t ƒˆ t t	ƒ  krJt	d ksPn t‚t
t‡ fdd	„ƒ d S )
Nr   ©Ú_ptrD   r:   r2   rG   r0   c                      s   ˆ t dddtjƒS )Nr‘   T)Zinfinite)r   r   rB   r7   r™   r7   r8   rV   è  rW   ztest__pt.<locals>.<lambda>)Úsympy.solvers.inequalitiesrš   r   r5   r   rB   rZ   r_   r   r+   r.   r€   r7   r7   r™   r8   Útest__ptÞ  s    *00..2rœ   N)dÚ__doc__Zsympy.concrete.summationsr   Zsympy.core.functionr   Zsympy.core.numbersr   r   r   r   Zsympy.core.relationalr   r	   r
   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.miscellaneousr   r   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   r   r   Zsympy.integrals.integralsr   Zsympy.logic.boolalgr   r   Zsympy.polys.polytoolsr   r   Zsympy.sets.setsr   r    r!   r›   r"   r#   r3   r$   r%   ru   r&   r'   Zsympy.polys.rootoftoolsr(   Zsympy.solvers.solversr)   Zsympy.solvers.solvesetr*   Z	sympy.abcr+   r,   Zsympy.core.modr-   Zsympy.testing.pytestr.   r/   r=   r>   r9   rA   rC   rQ   r^   r`   rb   rc   rf   rg   rl   ro   rq   r‚   r„   r…   r‡   r‰   rŠ   r‹   rŒ   r   rŽ   r   r’   r˜   rœ   r7   r7   r7   r8   Ú<module>   sh     K($
>

