
    .|h                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZmZmZmZmZ d dlmZmZmZmZ d dlmZ d dlmZ d Zd	 Zd
 Zd Zd Zd Zd Z ee ejB                  ejB                        d        Z" eejF                  ejB                  ejB                         eejH                  ejB                  ejB                        d               Z% eejL                  ejB                  ejB                         eejN                  ejB                  ejB                        d               Z( eejR                  ejB                  ejB                         eejT                  ejB                  ejB                        d               Z+d Z,d Z- eej\                  ejB                  ej^                         eej`                  ejB                  ej^                         eej\                  ejb                  ej^                         eej`                  ejb                  ej^                        d                             Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d  Z=d! Z>d" Z?d# Z@d$ ZAd% ZBd& ZCd' ZDd( ZEd) ZFd* ZGd+ ZHd, ZId- ZJd. ZK  eej                  ej                  ej                        e;         eej                  ej                  ej                        e<         eej                  ej                  ej                        e7         eej                  ej                  ej                        e8         eej                  ej                  ej                        e9         eej                  ej                  ej                        e:         eej                  ej                        eJ         eej                  ej                        eK       d/ ZUd0 ZV eU         eV        d1 ZWd2 ZXd3 ZYd4 ZZd5 Z[d6 Z\ ee ejb                  ejb                        dod7       Z]dod8Z^dod9Z_d: Z`d; Zad< Zbd= Zcd> Zdd? Zed@ ZfdA ZgdB ZhdC ZidD Zjejb                  Zk  eej                  ekek      eW         eej                  ekek      eW         eej                  ekek      eX         eej                  ekek      eX         eej                  ekek      eY         eej                  ekek      eY         eejF                  ekek      e_         eejH                  ekek      e_         eejL                  ekek      eZ         eejN                  ekek      eZ         eejR                  ekek      e^         eejT                  ekek      e^         eej\                  ekek      e`         eej`                  ekek      e`         ee.ekek      e`         eej                  ekek      ee         eej                  ekek      ef         eej                  ekek      ea         eej                  ekek      eb         eej                  ekek      ec         eej                  ekek      ed         eerek      eg         eej                  ek      eh         eej                  ek      ei       [k eej                  dE      dF        Zt eej                  dG      dH        Zu edIej                        dJ        ZvdK ZwdL ZxdM Zyejb                  ejB                  fD ]/  Zz  eezdE      ew         eezdG      ex         edIez      ey       1  eej\                  ej                  ej                         eej`                  ej                  ej                         ee.ej                  ej                        dN                      Z{dO Z|dP Z}dQ Z~ edR      ZdS ZdT ZdU ZdV ZdW ZdX Zej                  Zk  eej                  ekek      e|         eej                  ekek      e|         eej                  ekek      e}         eej                  ekek      e}         eej                  ekek      e~         eej                  ekek      e~         eejL                  ekek      e         eejN                  ekek      e         eej                  ek      e         eej                  ek      e         eej                  ekek      e         eej                  ekek      e         eerek      e       [k edYej                         edYej                        dZ               Zd[ Z eeej                        d\        Z eeejB                        d]        Z eeejb                        d^        Z eeej                        d_        ZejB                  ejb                  ej                  fD ]  Zk  eej                   ek      e          eej                   ej                        e        eej^                  ejB                         eej^                  ejb                         eej^                  ej                        d`                      Z eejB                  ejB                        da        Z eejB                  ej&                        db        Z eejb                  ejb                        dc        Z eejB                  ejb                        dd        Z eejb                  ejB                        de        Z eejb                  ej                         eejB                  ej                        df               Z eej                  ej                        dg        Z eej4                  ej                        dh        Z eej                  ej                        di        Z eej^                  ej                         eej:                  ej                        dj               Z eej                        dk        Z eejB                         eejb                         eej                        dl                      Zdm Z  eejb                  dn      e         eejB                  dn      e       y)p    N)ir)Constant)lower_builtinlower_getattr
lower_castlower_constantimpl_ret_untracked)typingtypeserrorscgutils)overload_methodviewerc                 $    | j                   rdgS g S )z;
    Return the modifier flags for integer arithmetic.
    nsw)signed)rettypes    X/var/www/html/test/engine/venv/lib/python3.12/site-packages/numba/cpython/new_numbers.py_int_arith_flagsr      s     ~~ w	    c                     |\  }}|j                   \  }}| j                  ||||j                        }| j                  ||||j                        }	|j                  ||	t	        |j                              }
t        | ||j                  |
      S N)flags)argscastreturn_typeaddr   r	   contextbuildersigr   vavbtatbabress              r   int_add_implr*   #   {    HRxxHRWb"coo6AWb"coo6A
++a"23??"C+
DCgwEEr   c                     |\  }}|j                   \  }}| j                  ||||j                        }| j                  ||||j                        }	|j                  ||	t	        |j                              }
t        | ||j                  |
      S r   )r   r   r   subr   r	   r   s              r   int_sub_implr.   ,   r+   r   c                     |\  }}|j                   \  }}| j                  ||||j                        }| j                  ||||j                        }	|j                  ||	t	        |j                              }
t        | ||j                  |
      S r   )r   r   r   mulr   r	   r   s              r   int_mul_implr1   5   r+   r   c           
         |j                   |j                   k(  sJ |j                  d      }|j                  d      }t        j                  ||      }t        j                  ||      }|j                  |j	                  d||j                  |j
                              |j	                  d||j                  d                  }	|j                  |j                  |	      d      5  |j                  ||      }
|j                  ||      }|j	                  d|j                  ||      |      }|j	                  d||      }|j                  ||      }|j                  |      5 \  }}|5  |j                  |
|       |j                  ||       d	d	d	       |5  |j                  |j                  |
|      |       |j                  |j                  ||      |       d	d	d	       d	d	d	       d	d	d	       |j                  |      |j                  |      fS # 1 sw Y   xY w# 1 sw Y   GxY w# 1 sw Y   KxY w# 1 sw Y   OxY w)
a@  
    Reference Objects/intobject.c
    xdivy = x / y;
    xmody = (long)(x - (unsigned long)xdivy * y);
    /* If the signs of x and y differ, and the remainder is non-0,
     * C89 doesn't define whether xdivy is now the floor or the
     * ceiling of the infinitely precise quotient.  We want the floor,
     * and we have it iff the remainder's sign matches y's.
     */
    if (xmody && ((y ^ xmody) < 0) /* i.e. and signs differ */) {
        xmody += y;
        --xdivy;
        assert(xmody && ((y ^ xmody) >= 0));
    }
    *p_xdivy = xdivy;
    *p_xmody = xmody;
    r      ==Tlikely<!=N)typer   alloca_once_valueand_icmp_signedminvalif_thennot_sdivsremxorif_elsestorer-   r   load)r    r!   tyxyZEROONEresdivresmodis_overflowxdivyxmodyy_xor_xmody_ltzxmody_istruecondif_different_signsif_same_signss                    r   int_divmod_signedrV   >   s   $ 66QVV66!9D
&&)C &&w5F&&w5F,,D!QVVBII%67D!QVVBZ02K 
k24	@ = Q"Q"!--c7;;q%3H$O**4=||L/:__T" 	=&I'9= -eV,eV,- $ =gkk%5v>gkk%3V<=	==& <<f!555- -= =	= 	== =sV   (A>H>&H2,%H
H2AH& H2(H>H#H2&H/+H22H;	7H>>Ic                     |j                   rt        | ||||      S |j                  ||      |j                  ||      fS )zD
    Integer divmod(x, y).  The caller must ensure that y != 0.
    )r   rV   udivurem)r    r!   rG   rH   rI   s        r   
int_divmodrZ   w   s?     
yy '2q!<<||Aq!7<<1#555r   c           	      <   |\  }}|j                   \  }}|j                  }	t        |	t        j                        r|	j
                  }	| j                  ||||	      }
| j                  ||||	      }t        j                  ||
j                  d      }t        j                  ||
j                  d      }|j                  t        j                  ||      d      5 \  }}|5  | j                  j                  ||f      s$|j                  ||       |j                  ||       d d d        |5  t        | ||	|
|      \  }}|j                  ||       |j                  ||       d d d        d d d        ||fS # 1 sw Y   VxY w# 1 sw Y   !xY w# 1 sw Y   ||fS xY w)NquotnameremFr6   )r   r   
isinstancer   UniTupledtyper   r   alloca_oncer:   rD   is_scalar_zeroerror_modelfp_zero_divisionrE   rZ   )r    r!   r"   r   zerodiv_messager#   r$   r%   r&   rG   r'   r(   r\   r_   if_zeroif_non_zeroqrs                     r   _int_divmod_implrl      s|   FBXXFB	B"enn%XXWb"b)AWb"b)AwV<D


gqvvE
:C	//;E 
 "4w 	&&&77/+-
 a&a%	&  	"gwAq9DAqMM!T"MM!S!	"" 9	& 	&	" 	"" 9s=   F AE7"
F,7F#F7F 	<FF	FFc                     t        | |||d      \  }}t        j                  ||j                  |      |j                  |      f      S )Nzinteger divmod by zero)rl   r   
pack_arrayrF   r    r!   r"   r   r\   r_   s         r   int_divmod_implrp      sN     '3!9;ID# g&||D17<<3DEG Gr   c                 H    t        | |||d      \  }}|j                  |      S )Nzinteger division by zerorl   rF   ro   s         r   int_floordiv_implrs      s,     !'3!;=ID#<<r   c                    |\  }}|j                   \  }}| j                  ||||j                        }| j                  ||||j                        }	t        j                  ||	      5  | j
                  j                  |d       d d d        |j                  ||	      }
t        | ||j                  |
      S # 1 sw Y   3xY w)Nzdivision by zero)	r   r   r   r   rh   re   rf   fdivr	   r   s              r   int_truediv_implrw      s     HRxxHRWb"coo6AWb"coo6A	!	$ M,,W6KLM
,,q!
CgwEEM Ms   'B66B?c                 H    t        | |||d      \  }}|j                  |      S )Nzinteger modulo by zerorr   ro   s         r   int_rem_implry      s,     !'3!9;ID#<<r   c                     t        |t        j                        r(| j                  j                  sd|j
                  dz
  z  S y)Nr5   r3   F)r`   r   Integerre   raise_on_fp_zero_divisionbitwidth)r    r   s     r   _get_power_zerodiv_returnr~      s8    ;.##==k**Q.//r   c                     t        |j                  d   t        j                        |j                  t        |       fd}| j                  ||||      }t        | ||j                  |      S )z@
    a ^ b, where a is an integer or real, and b an integer
    r   c                 0    d      } |       } |dk  r1d}| }|dk  rt         r#| dk(  rrS t        d      | dk7  r
| dk7  ryd}|}|dkD  rt        j                  | t	        |            S |dk7  r|dz  r|| z  }|dz  }| | z  } |dk7  r|rd|z  S |S )	Nr3   r   T&0 cannot be raised to a negative powerr5   F         ?)OverflowErrorZeroDivisionErrormathpowfloat)r'   r(   rk   invertexp
is_integertpzerodiv_returns        r   	int_powerz!int_power_impl.<locals>.int_power   s    qEqEq5F"CQw##6%--/0XYY6a2gFC=88AuQx((QhQwQAICFA	 Qh !sQw'a'r   )r`   r   r   r{   r   r~   compile_internalr	   )	r    r!   r"   r   r   r)   r   r   r   s	         @@@r   int_power_implr      sd     CHHQK7J	B.w;N(> 
"
"7IsD
ACgwEEr   c                 d   |j                   d   j                  }t        |t        j                        st
        t        |      dkD  rt
        |dk  }t        |      }|j                  }t        |t        j                        t        | |      | j                  |d   |j                   d   |      }|j                  }fd}	 |d      }
|}|dk7  r"|dz  r	 |	|
|      }
|dz  } |	||      }|dk7  r"|r4rfd}nd }| j                  |t        j                  ||      |
f      }
|
S )zH
    a ^ b, where a is an integer or real, and b a constant integer
    r3   r   r   c                 P    rj                  | |      S j                  | |      S N)r0   fmul)r'   r(   r!   r   s     r   r0   zstatic_power_impl.<locals>.mul  s(    ;;q!$$<<1%%r   c                 F    | dk(  rrS t        d      | dk7  r| dk7  ry| S )Nr   r   r3   r5   )r   )r'   r   s    r   invert_implz&static_power_impl.<locals>.invert_impl$  s4    6%--/0XYY6a2gHr   c                     d| z  S )Nr    )r'   s    r   r   z&static_power_impl.<locals>.invert_impl1  s    Qwr   )r   valuer`   numbersIntegralNotImplementedErrorabsr   r   r{   r~   r   r:   r   r
   	signature)r    r!   r"   r   r   r   r   valltyr0   r)   r'   r   r   r   s    `           @@r   static_power_implr      s/    ((1+

Cc7++,!!
3x'!!1WF
c(C	BB.J.w;N
,,wQ!b
9C
((C& a&CA
(7c3-C	#sm	 ( 	 &&w'-'7'7B'?#I Jr   c                 X     |j                   dg| }t        | ||j                  |      S Nr8   r=   r	   r   r    r!   r"   r   r)   s        r   int_slt_implr   :  .    
'

c
)D
)CgwEEr   c                 X     |j                   dg| }t        | ||j                  |      S Nz<=r   r   s        r   int_sle_implr   ?  .    
'

d
*T
*CgwEEr   c                 X     |j                   dg| }t        | ||j                  |      S N>r   r   s        r   int_sgt_implr   D  r   r   c                 X     |j                   dg| }t        | ||j                  |      S Nz>=r   r   s        r   int_sge_implr   I  r   r   c                 X     |j                   dg| }t        | ||j                  |      S r   icmp_unsignedr	   r   r   s        r   int_ult_implr   N  .    
'


+d
+CgwEEr   c                 X     |j                   dg| }t        | ||j                  |      S r   r   r   s        r   int_ule_implr   S  .    
'


,t
,CgwEEr   c                 X     |j                   dg| }t        | ||j                  |      S r   r   r   s        r   int_ugt_implr   X  r   r   c                 X     |j                   dg| }t        | ||j                  |      S r   r   r   s        r   int_uge_implr   ]  r   r   c                 X     |j                   dg| }t        | ||j                  |      S Nr4   r   r   s        r   int_eq_implr   b  r   r   c                 X     |j                   dg| }t        | ||j                  |      S Nr9   r   r   s        r   int_ne_implr   g  r   r   c                       fd}|S )Nc                 &   |\  }}|j                  d|t        |j                  d            }|j                  
|t        |j                  d            }|j                  
||      }|j	                  |||      }	t        | ||j                  |	      S Nr8   r   r=   r   r:   r   selectr	   r   r    r!   r"   r   leftrightcmp_zerolt_zeroge_zeror)   ops             r   implz%int_signed_unsigned_cmp.<locals>.implm  s    u &&sD(499a2HI%%b$A0FG''D%8nnXw8!'7COOSIIr   r   r   r   s   ` r   int_signed_unsigned_cmpr   l  s    J  Kr   c                       fd}|S )Nc                 &   |\  }}|j                  d|t        |j                  d            }|j                  
t        |j                  d      |      }|j                  
||      }|j	                  |||      }	t        | ||j                  |	      S r   r   r   s             r   r   z%int_unsigned_signed_cmp.<locals>.impl  s    u&&sE8EJJ3JK%%b(5::q*A5I''D%8nnXw8!'7COOSIIr   r   r   s   ` r   int_unsigned_signed_cmpr     s    J Kr   c                     |\  }t        |j                  d       }|j                  d||      }|j                  |      }|j	                  |||      }t        | ||j                  |      S r   )r   r:   r=   negr   r	   r   )	r    r!   r"   r   rH   rJ   ltznegatedr)   s	            r   int_abs_implr     sa    
CQAFFD!D


c1d
+Ckk!nG
..gq
)CgwEEr   c                 :    |\  }t        | ||j                  |      S r   r	   r   )r    r!   r"   r   rH   s        r   uint_abs_implr     s    
CQgwCCr   c                     |j                   \  }}|\  }}| j                  ||||j                        }| j                  ||||j                        }|j                  ||      }t	        | ||j                  |      S r   )r   r   r   shlr	   	r    r!   r"   r   valtyamttyr   amtr)   s	            r   int_shl_implr     sm    XXNUEJS#
,,wUCOO
<C
,,wUCOO
<C
++c3
CgwEEr   c                 H   |j                   \  }}|\  }}| j                  ||||j                        }| j                  ||||j                        }|j                  j                  r|j	                  ||      }n|j                  ||      }t        | ||j                  |      S r   )r   r   r   r   ashrlshrr	   r   s	            r   int_shr_implr     s    XXNUEJS#
,,wUCOO
<C
,,wUCOO
<C
ll3$ll3$gwEEr   c                     |j                   \  }}|\  }}| j                  ||||j                        }| j                  ||||j                        }	|j                  ||	      }
t	        | ||j                  |
      S r   )r   r   r   r<   r	   r    r!   r"   r   atbtavbvcavcbcr)   s              r   int_and_implr     sm    xxHRHR
,,wB
8C
,,wB
8C
,,sC
 CgwEEr   c                     |j                   \  }}|\  }}| j                  ||||j                        }| j                  ||||j                        }	|j                  ||	      }
t	        | ||j                  |
      S r   )r   r   r   or_r	   r   s              r   int_or_implr     m    xxHRHR
,,wB
8C
,,wB
8C
++c3
CgwEEr   c                     |j                   \  }}|\  }}| j                  ||||j                        }| j                  ||||j                        }	|j                  ||	      }
t	        | ||j                  |
      S r   )r   r   r   rC   r	   r   s              r   int_xor_implr     r   r   c                     |j                   \  }|\  }|j                  |      }| j                  ||||j                        }t	        | ||j                  |      S r   )r   r   r   r   r	   r    r!   r"   r   typr   r)   s          r   int_negate_implr     sO    HHESES
++c
C
,,wS#//
:CgwEEr   c                     |j                   \  }|\  }| j                  ||||j                        }t        | ||j                  |      S r   r   r   r   r	   r   s          r   int_positive_implr     A    HHESES
,,wS#//
:CgwEEr   c           
          |j                   \  }|\  }|j                  |t        |j                  t	        d|j                  j
                  z  d                  }| j                  ||||j                        }t        | ||j                  |      S )N1   )	r   rC   r   r:   intwidthr   r   r	   r   s          r   int_invert_implr    sp    HHESES
++c8CHHc#2F.JK
LC
,,wS#//
:CgwEEr   c                    |\  }t        |j                  d      }t        |j                  d      }t        |j                  d      }|j                  d||      }|j                  d||      }	t	        j
                  ||j                        }
|j                  d      }|j                  d      }|j                  d      }|j                  d	      }|j                  d
      }|j                  |||       |j                  |      5  |j                  ||
       |j                  |       ddd       |j                  |      5  |j                  |	||       ddd       |j                  |      5  |j                  ||
       |j                  |       ddd       |j                  |      5  |j                  ||
       |j                  |       ddd       |j                  |       |j                  |
      }t        | ||j                  |      S # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w)z
    np.sign(int)
    r3   r5   r   r4   r   z.zeroz.postestz.posz.negz.exitN)r   r:   r   r=   r   rc   append_basic_blockcbranch
goto_blockrE   branchposition_at_endrF   r	   r   )r    r!   r"   r   rH   POSNEGrJ   r   cmp_pospresultbb_zero
bb_postestbb_posbb_negbb_exitr)   s                    r   int_sign_implr    s    CQ
1661
C
1662
CAFFAD$$T1d3H!!#q$/G!!'1662G((1G++J7J''/F''/F((1GOOHgz2			G	$  dG$w  
		J	' 101 
		F	#  c7#w  
		F	#  c7#w  G$
,,w
CgwEE#   1 1      s0   $HH0$H+-$H7HH(+H47I c                     |j                   \  }|\  }| j                  ||||j                        }|j                  |      }t	        | ||j                  |      S r   )r   r   r   r   r	   r   s          r   bool_negate_implr    sO    HHESES
,,wS#//
:C
++c
CgwEEr   c                     |j                   \  }|\  }| j                  ||||j                        }t        | ||j                  |      S r   r   r   s          r   bool_unary_positive_implr    r   r   c                     t         j                  }  t        t        j                  | |       t
                t        t        j                  | |       t
                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                 t        t        j"                  | |       t$                t        t        j&                  | |       t$                t        t        j(                  | |       t*                t        t        j,                  | |       t*                t        t        j.                  |       t0                t        t        j2                  |       t4                t        t        j6                  | |       t8                t        t        j:                  | |       t8                t        t6        | |       t8               t         j<                  D ]@  }  t        t        j>                  | |       t@                t        t        jB                  | |       tD                t        t        jF                  | |       tH                t        t        jJ                  | |       tL                t        t        j6                  t         jN                  |       t8                t        t        j:                  t         jN                  |       t8                t        t6        t         jN                  |       t8                t        tP        |       tR               C  t        t        j>                  t         jT                  t         jT                        tV                t        t        jF                  t         jT                  t         jT                        tV                t        t        jB                  t         jT                  t         jT                        tV                t        t        jJ                  t         jT                  t         jT                        tV               tY        jZ                  t         j\                  t         j^                        D ]@  }  t        t        j>                  | |       tV                t        t        jB                  | |       t`                t        t        jF                  | |       tb                t        t        jJ                  | |       td                t        t        j6                  t         jN                  |       t8                t        t        j:                  t         jN                  |       t8                t        t6        t         jN                  |       t8                t        tP        |       tf               C y r   )4r   r{   r   operatorr   r*   iaddr-   r.   isubr0   r1   imuleqr   ner   lshiftr   ilshiftrshiftr   irshiftr   r   posr   r   r   ipownp_unsigned_domainltr   ler   gtr   ger   Floatr   r   IntegerLiteralr   	itertoolschainpy_signed_domainnp_signed_domainr   r   r   r   rG   s    r   _implement_integer_operatorsr4  &  s   	B'M(,,B'5(M(--R(6'M(,,B'5(M(--R(6'M(,,B'5(M(--R(6&M(++r2&{3&M(++r2&{3*M(//2r*<8+M(""B+L9*M(//2r*<8+M(""B+L9#M(,,#O4#M(,,#$56'M(,,B'7(M(--R(8M#r2~.&& .*hkk2r*<8*hkk2r*<8*hkk2r*<8*hkk2r*<84hllEKK4^D5hmmU[["5nE+c5;;+N;c2}-. KM(++u33U5I5IJ<XJM(++u33U5I5IJ<XJM(++u33U5I5IJ<XJM(++u33U5I5IJ<Xooe44#446 	-*hkk2r*<8*hkk2r*<8*hkk2r*<8*hkk2r*<84hllEKK4^D5hmmU[["5nE+c5;;+N;c2|,	-r   c                  V   t         j                  t         j                  fD ]  }  t        t        j
                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  | |       t                t        t        j                  |       t                y r   )r   Booleanr{   r   r  r<   r   iandr   r   iorrC   r   ixorr   r  r3  s    r   _implement_bitwise_operatorsr:  W  s    }}emm, <,hmmR,\:,hmmR,\:+hllB+K8+hllB+K8+hllB+L9,hmmR,\:*hoor*?;<r   c                 P     |j                   | }t        | ||j                  |      S r   )faddr	   r   r   s        r   real_add_implr=  g  '    
',,
CgwEEr   c                 P     |j                   | }t        | ||j                  |      S r   )fsubr	   r   r   s        r   real_sub_implrA  l  r>  r   c                 P     |j                   | }t        | ||j                  |      S r   )r   r	   r   r   s        r   real_mul_implrC  q  r>  r   c                     t        j                  ||d         5  | j                  j                  |d       d d d         |j                  | }t        | ||j                  |      S # 1 sw Y   0xY w)Nr3   ru   )r   rh   re   rf   rv   r	   r   r   s        r   real_div_implrE  v  si    	$q'	* M,,W6KLM
',,
CgwEEM Ms   A&&A/c                    |j                   |j                   k(  sJ |j                   }|j                  }| j                  d|j                   g      }t        j                  |||t        j
                  |      f      }t        j                  |||      }|j                  rod|_	        t        j                  |j                  d            }	|j                  \  }
}}t        | |	|
|      \  }}|	j                  ||       |	j                  |       t        j                   ||      }|j#                  ||||f      }||j%                  |      fS )Nz.numba.python.remlinkonce_odrentry)r:   modulemanglerr   FunctionTypePointerTyper   get_or_insert_functionis_declarationlinkage	IRBuilderr  r   real_divmod_func_bodyrE   retrc   callrF   )r    r!   rH   rI   floattyrI  fnamefntyfn	fnbuilderfxfypmoddivmodquotients                   r   real_divmodr_  }  s   66QVVffG^^FOO/!&&:E??7Wgr~~g7N$OPD		'	'e	<B	#
LL!6!6w!?@	wwB()RDST"cw0D||BAt-HW\\$'''r   c           	         t        j                  ||j                        }t        j                  ||j                        }t        j                  ||j                        }|j                  ||      }|j	                  |j                  ||      |      }|j                  ||       |j                  ||       |j                  d      }	|j                  d      }
|j                  d      }|j                  d||	      }|j                  d||	      }|j                  d||	      }|j                  |d      5 \  }}|5  |j                  d||      }|j                  |      5  |j                  |j                  ||      |       |j                  |j                  ||      |       d d d        d d d        |5  |j                  ||
|	      }|j                  ||       d d d        d d d        ~~|j                  |      }|j                  d||	      }|j                  |      5  t        j                   t        j"                  d}|t%        |j                           }| j'                  t(        j*                  t-        j.                  ||            } |||g      }|j                  ||      }|j                  ||      }t1        |j                  d	      }|j                  d
||      }|j                  |||      }|j                  ||       d d d        t        j2                  ||      5  |j5                  ||      }|j                  ||       |j	                  |j5                  ||      |      }|j                  ||       d d d        |j                  |      |j                  |      fS # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   kxY w)N        g       r   r9   r8   Tr6   )r   doubleg      ?r   )r   rc   r:   fremrv   r@  rE   fcmp_unorderedfcmp_orderedrD   r   r?   r<  r   rF   r   float32float64strget_functionr   floorr
   r   r   ifnotr   )r    r!   vxwxr[  pdiv	pfloordivr]  r\  rJ   NZEROrK   
mod_istruewx_ltzmod_ltzif_nonzero_modif_zero_modwx_ltz_ne_mod_ltz
div_istruerealtypemaprealtypefloorfnfloordivfloordivdifffloordivincrHALFpreds                              r   rQ  rQ    st   \ w0Dw0D##GRWW5I
,,r2
C
,,w||B,b
1CMM#tMM#t 773<DGGDME
''#,C''c48J!!#r40F""3T2G	D	1 %5Rnk 	; !( 5 5dFG L!23 ;gll34d;gll33T:;	;  	% ..5CMM#t$		%%  	S
,,t
C%%dC6J		$ + %!&0s277|,&&tzz'-'7'7('KM7SE*||C2||Hc2%##Ct<>>$h?h	*+ 
w
	+ +ll3$c4 <<S" 5r:h	*	+ <<	"GLL$666G; ;	; 	;	% 	%% %*+ ++ +so   8O>%N?#AN2(N?0
O:&O O'C*O&/AO22N<7N??O		OO	OO#&O/2O;c                    |\  }}t        j                  ||j                  d      }t        j                  ||j                  d      }|j                  t        j                  ||      d      5 \  }	}
|	5  | j
                  j                  |d|      sH|j                  ||      }|j                  ||      }|j                  ||       |j                  ||       d d d        |
5  t        | |||      \  }}|j                  ||       |j                  ||       d d d        d d d        t        j                  ||j                  |      |j                  |      f      S # 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   WxY w)Nr\   r]   r_   Fr6   zmodulo by zero)r   rc   r:   rD   rd   re   rf   rv   rc  rE   r_  rn   rF   )r    r!   r"   r   locrH   rI   r\   r_   rh   ri   rj   rk   s                r   real_divmod_implr    se   DAqwV<D


gqvvE
:C	//;E 
 "4w 	&&&77,c3 LLA&LLA&a&a%	&  	"wA6DAqMM!T"MM!S!	""  g&||D17<<3DEG G	& 	&	" 	"" "s=   1E;7A&E#
E;'6E/E;#E,	(E;/E8	4E;;Fc                 <   |\  }}t        j                  ||j                        }|j                  t        j                  ||      d      5 \  }}	|5  | j
                  j                  |d|      s$|j                  ||      }
|j                  |
|       d d d        |	5  t        | |||      \  }}
|j                  |
|       d d d        d d d        t        | ||j                  |j                  |            S # 1 sw Y   fxY w# 1 sw Y   DxY w# 1 sw Y   HxY w)NFr6   r  )r   rc   r:   rD   rd   re   rf   rc  rE   r_  r	   r   rF   )r    r!   r"   r   r  rH   rI   r)   rh   ri   r_   _s               r   real_mod_implr    s   DAq


gqvv
.C	//;E 
 $4w 	(&&77,c3 ll1a(c3'	(  	$ '1a8FAsMM#s#	$$ gw%ll3/1 1	( 	(	$ 	$$ $=   DAC:
D$DD:D	?DD	DDc                 <   |\  }}t        j                  ||j                        }|j                  t        j                  ||      d      5 \  }}	|5  | j
                  j                  |d|      s$|j                  ||      }
|j                  |
|       d d d        |	5  t        | |||      \  }
}|j                  |
|       d d d        d d d        t        | ||j                  |j                  |            S # 1 sw Y   fxY w# 1 sw Y   DxY w# 1 sw Y   HxY w)NFr6   ru   )r   rc   r:   rD   rd   re   rf   rv   rE   r_  r	   r   rF   )r    r!   r"   r   r  rH   rI   r)   rh   ri   r\   r  s               r   real_floordiv_implr  ,  s   DAq


gqvv
.C	//;E 
 %4w 	)&&77.5 ||Aq)dC(	)  	%!'7Aq9GD!MM$$	%% gw%ll3/1 1	) 	)	% 	%% %r  c                 "   |\  }}|j                   }| j                  r*| j                  t        j                  |      } |||      }n1|j                  d|j                  g      }	|j                  |	||f      }t        | ||j                  |      S )Nzllvm.pow)
rI  implement_powi_as_math_callri  r   r   declare_intrinsicr:   rS  r	   r   )
r    r!   r"   r   rH   rI   rI  impr)   rW  s
             r   real_power_implr  ?  s    DAq^^F**""488S1'4 %%j166(;ll21v&gwEEr   c                 X     |j                   dg| }t        | ||j                  |      S r   re  r	   r   r   s        r   real_lt_implr  K  .    
'

s
*T
*CgwEEr   c                 X     |j                   dg| }t        | ||j                  |      S r   r  r   s        r   real_le_implr  P  .    
'

t
+d
+CgwEEr   c                 X     |j                   dg| }t        | ||j                  |      S r   r  r   s        r   real_gt_implr  U  r  r   c                 X     |j                   dg| }t        | ||j                  |      S r   r  r   s        r   real_ge_implr  Z  r  r   c                 X     |j                   dg| }t        | ||j                  |      S r   r  r   s        r   real_eq_implr  _  r  r   c                 X     |j                   dg| }t        | ||j                  |      S r   )rd  r	   r   r   s        r   real_ne_implr  d  s.    
 '
 
 
-
-CgwEEr   c                     |j                   \  }t        j                  ||      }| j                  t        j
                  |      } |||      S r   )r   r
   r   ri  r   fabs)r    r!   r"   r   rG   r   s         r   real_abs_implr  i  sB    88DR


2r
"C		3/Dr   c                 h    ddl m} |j                  ||d         }t        | ||j                  |      S Nr   mathimpl)numba.cpythonr  negate_realr	   r   )r    r!   r"   r   r  r)   s         r   real_negate_implr  p  s0    &


wQ
0CgwEEr   c                     |j                   \  }|\  }| j                  ||||j                        }t        | ||j                  |      S r   r   r   s          r   real_positive_implr  v  r   r   c           	      4   |\  }t        |j                  d      }t        |j                  d      }t        |j                  d      }t        j                  ||j                        }|j	                  d||      }	|j	                  d||      }
|j                  |	      5 \  }}|5  |j                  ||       ddd       |5  |j                  |
      5 \  }}|5  |j                  ||       ddd       |5  |j                  ||       ddd       ddd       ddd       ddd       |j                  |      }t        | ||j                  |      S # 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   bxY w# 1 sw Y   fxY w# 1 sw Y   jxY w# 1 sw Y   nxY w)z
    np.sign(float)
    r3   r5   r   r   r8   N)
r   r:   r   rc   re  rD   rE   rF   r	   r   )r    r!   r"   r   rH   r  r  rJ   r  is_posis_neggt_zeronot_gt_zeror   not_lt_zeror)   s                   r   real_sign_implr  }  sz    CQ
1661
C
1662
CAFFAD!!'1662G!!#q$/F!!#q$/F		  
.$:Wk 	(MM#w'	( 	.( .,BWk 0MM#w/0  . MM!W-..	.
. ,,w
CgwEE	( 	(0 0. .. .	. 	.
. 
.s   F$E7
FFE6E	,
E66E*		E6FFE	FE'#E6*E3/E66E?;FF	FFrealc                 ^    | j                  |||      }|j                  }t        | |||      S Nr   )make_complexr  r	   r    r!   r   r   cplxr)   s         r   complex_real_implr    3    E:D
))CgwS99r   imagc                 ^    | j                  |||      }|j                  }t        | |||      S r  )r  r  r	   r  s         r   complex_imag_implr    r  r   zcomplex.conjugatec                     ddl m} | j                  ||j                  d   |d         }|j	                  ||j
                        |_        |j                         }t        | ||j                  |      S r  )	r  r  r  r   r  r  	_getvaluer	   r   )r    r!   r"   r   r  zr)   s          r   complex_conjugate_implr    s]    &Wchhqk47;A!!'1662AF
++-CgwEEr   c                     t        | |||      S r   )r	   )r    r!   r   r   s       r   real_real_implr    s    gwU;;r   c                 \    t        j                  |j                        }t        | |||      S r   )r   get_null_valuer:   r	   )r    r!   r   r   r)   s        r   real_imag_implr    s'    

 
 
,CgwS99r   c                 8    t        | ||j                  |d         S Nr   r   r    r!   r"   r   s       r   real_conjugate_implr    s    gwaIIr   c           	         |\  }}|j                   d   }|j                  }| j                  |||      }| j                  |||      }	| j                  ||      }
|j                  }|j	                         }|	j	                         }|
j	                         }| j                  |d      }| j                  |d      }|j                  d|	j                  |      }|j                  d|	j                  |      }|j                  ||      }|j                  |      5 \  }}|5  t        | ||||f      }| j                  |||      }|j                  |
_        |j                  |
_        d d d        |5  t        j                  dt        j                  di|   }t        j                   t        j"                         |j$                  gdz        }t'        j(                  |||      }|j+                  ||||f       d d d        d d d        |j-                  |      }t/        | ||j0                  |      S # 1 sw Y   xY w# 1 sw Y   FxY w# 1 sw Y   JxY w)Nr   r  r  r4   numba_cpowf
numba_cpow   )r   underlying_floatmake_helperrI  _getpointerget_constantre  r  r  r<   rD   complex_mul_implr   	complex64
complex128r   rK  VoidTyper:   r   rM  rS  rF   r	   r   )r    r!   r"   r   cacbrG   ftyr'   r(   crI  papbpcTWOrJ   b_real_is_twob_imag_is_zerob_is_twothen	otherwiser)   cres	func_namerV  cpows                              r   complex_power_implr    s&    HR	!B


CGRr2AGRr2AGR(A^^F	
B	
B	
B 

sA
&CQ'D((qvvs;M))$=N||M>:H		" -&7tY 	"7GS2r(CC&&w#&>DYYAFYYAF	  	-   , I ??2;;=277)a-@D11&$	JDLLB|,	--$ ,,r
CgwEE%	 		- 	-- -s>   IAH0%
I/BH<7I0H9	5I<I	IIc                    |\  }}|j                   d   }| j                  |||      }| j                  |||      }| j                  ||      }	|j                  }
|j                  }|j                  }|j                  }|j	                  |
|      |	_        |j	                  ||      |	_        |	j                         }t        | ||j                  |      S Nr   r  )r   r  r  r  r<  r  r	   r   r    r!   r"   r   cxcyrG   rH   rI   r  r'   r(   r  dr)   s                  r   complex_add_implr        HR	!BWb3AWb3AWb)A	A	A	A	A\\!QAF\\!QAF
++-CgwEEr   c                    |\  }}|j                   d   }| j                  |||      }| j                  |||      }| j                  ||      }	|j                  }
|j                  }|j                  }|j                  }|j	                  |
|      |	_        |j	                  ||      |	_        |	j                         }t        | ||j                  |      S r  )r   r  r  r  r@  r  r	   r   r  s                  r   complex_sub_implr    r  r   c                 :   |\  }}|j                   d   }| j                  |||      }| j                  |||      }| j                  ||      }	|j                  }
|j                  }|j                  }|j                  }|j	                  |
|      }|j	                  ||      }|j	                  |
|      }|j	                  ||      }|j                  ||      |	_        |j                  ||      |	_        |	j                         }t        | ||j                  |      S )z'
    (a+bi)(c+di)=(ac-bd)+i(ad+bc)
    r   r  )
r   r  r  r  r   r@  r<  r  r	   r   )r    r!   r"   r   r  r  rG   rH   rI   r  r'   r(   r  r  acbdadbcr)   s                      r   r  r  ,  s    HR	!BWb3AWb3AWb)A	A	A	A	A	a	B	a	B	a	B	a	B\\"b!AF\\"b!AF
++-CgwEEr   nanc                 `    d }| j                  ||||      }t        | ||j                  |      S )Nc                    | j                   }| j                  }|j                   }|j                  }|s|st        d      t        |      t        |      k\  rA|st	        t
        t
              S ||z  }|||z  z   }t	        |||z  z   |z  |||z  z
  |z        S |st	        t
        t
              S ||z  }||z  |z   }t	        | j                   |z  | j                  z   |z  | j                  |z  | j                   z
  |z        S )Nzcomplex division by zero)r  r  r   r   complexNAN)r'   r(   arealaimagbrealbimagratiodenoms           r   complex_divz%complex_div_impl.<locals>.complex_divF  s   U#$>??u:U#sC((EMEEEM)E&%/&%/1 1
 sC((EMEEME)E%!&&(E1%!&&(E13 3r   r   r	   r   )r    r!   r"   r   r  r)   s         r   complex_div_implr  E  s4    36 
"
"7Kd
CCgwEEr   c                 R   ddl m} |j                  \  }|\  }| j                  |||      }| j                  ||      }|j	                  ||j
                        |_        |j	                  ||j                        |_        |j                         }t        | ||j                  |      S )Nr   r  r  )
r  r  r   r  r  r  r  r  r	   r   )	r    r!   r"   r   r  r   r   cmplxr)   s	            r   complex_negate_implr  e  s    &HHESES  #S 9E


w
,C##GUZZ8CH##GUZZ8CH
--/CgwEEr   c                 :    |\  }t        | ||j                  |      S r   r   r    r!   r"   r   r   s        r   complex_positive_implr	  q  s    ESgwEEr   c                 j   |\  }}|j                   d   }| j                  |||      }| j                  |||      }|j                  d|j                  |j                        }	|j                  d|j                  |j                        }
|j                  |	|
      }t        | ||j                  |      S )Nr   r  r4   )r   r  re  r  r  r<   r	   r   )r    r!   r"   r   r  r  r   rH   rI   reals_are_eqimags_are_eqr)   s               r   complex_eq_implr  v  s    HR
((1+CWc4AWc4A''affaff=L''affaff=L
,,|\
2CgwEEr   c                 j   |\  }}|j                   d   }| j                  |||      }| j                  |||      }|j                  d|j                  |j                        }	|j                  d|j                  |j                        }
|j                  |	|
      }t        | ||j                  |      S )Nr   r  r9   )r   r  rd  r  r  r   r	   r   )r    r!   r"   r   r  r  r   rH   rI   reals_are_neimags_are_ner)   s               r   complex_ne_implr    s    HR
((1+CWc4AWc4A))$?L))$?L
++lL
1CgwEEr   c                 `    d }| j                  ||||      }t        | ||j                  |      S )z)
    abs(z) := hypot(z.real, z.imag)
    c                 V    t        j                  | j                  | j                        S r   )r   hypotr  r  )r  s    r   complex_absz%complex_abs_impl.<locals>.complex_abs  s    zz!&&!&&))r   r  )r    r!   r"   r   r  r)   s         r   complex_abs_implr    s4    * 
"
"7Kd
CCgwEEr   znumber.itemc                     |d   S )z;
    The no-op .item() method on booleans and numbers.
    r   r   r  s       r   number_item_implr    s     7Nr   c                     |j                   \  }|\  }| j                  ||||j                        }|j                  |      }t	        | ||j                  |      S r   )r   r   r   r@   r	   )r    r!   r"   r   r   r   istruer)   s           r   number_not_implr    sO    HHESES\\'3S__=F
,,v
CgwEEr   c                     |\  }|S r   r   r  s        r   bool_as_boolr    s    ESJr   c                 X    |\  }|j                  d|t        |j                  d            S )Nr9   r   )r   r   r:   r  s        r   int_as_boolr    s)    ES  sHSXXq,ABBr   c                 X    |\  }|j                  d|t        |j                  d            S )Nr9   ra  )rd  r   r:   r  s        r   float_as_boolr!    s)    ES!!$Xchh-DEEr   c                    |j                   \  }|\  }| j                  |||      }|j                  |j                  }}t	        |j
                  d      }	|j                  d||	      }
|j                  d||	      }|j                  |
|      S )Nra  r9   )r   r  r  r  r   r:   rd  r   )r    r!   r"   r   r   r   r  r  r  zeroreal_istrueimag_istrues               r   complex_as_boolr&    s    HHESES  #s3EUZZ$DDIIs#D((tT:K((tT:K;;{K00r   c                     | j                  ||j                  |j                        }| j                  |||j                  |      S r   )get_constant_genericliteral_typeliteral_valuer   r    r!   fromtytotyr   lits         r   literal_int_to_numberr/    sF     
&
&
C
 <<f&9&94@@r   c                 H   |j                   |j                   k(  r|S |j                   |j                   k  r!|j                  || j                  |            S |j                  r!|j	                  || j                  |            S |j                  || j                  |            S r   )r}   truncget_value_typer   sextzextr    r!   r,  r-  r   s        r   integer_to_integerr6    s    }}'
		(}}S'"8"8">??	||C!7!7!=>> ||C!7!7!=>>r   c                 D    |j                  || j                  |            S r   )inttoptrr2  r5  s        r   integer_to_voidptrr9    s     C!7!7!=>>r   c                     | j                  |      }|j                  |j                  k  r|j                  ||      S |j                  ||      S r   )r2  r}   fpextfptruncr    r!   r,  r-  r   r   s         r   float_to_floatr>  	  sD    

 
 
&C&}}S#&&sC((r   c                     | j                  |      }|j                  r|j                  ||      S |j                  ||      S r   )r2  r   sitofpuitofpr=  s         r   integer_to_floatrB    s;    

 
 
&C}}~~c3''~~c3''r   c                     | j                  |      }|j                  r|j                  ||      S |j                  ||      S r   )r2  r   fptosifptouir=  s         r   float_to_integerrF    s;    

 
 
&C{{~~c3''~~c3''r   c                     | j                  ||||j                        }| j                  |j                  d      }| j                  ||      }||_        ||_        |j                         S r  )r   r  r  r  r  r  r  )r    r!   r,  r-  r   r  r  r  s           r   non_complex_to_complexrH  !  sc     <<fd.C.CDD 5 5q9D  $/EEJEJ??r   c                 *   |j                   }|j                   }| j                  |||      }| j                  ||      }| j                  ||j                  ||      |_        | j                  ||j                  ||      |_        |j                         S r  )r  r  r   r  r  r  )	r    r!   r,  r-  r   srctydsttysrcdsts	            r   complex_to_complexrN  ,  s    ##E!!E


wc

:C


w
-C||GSXXue<CH||GSXXue<CH==?r   c                 (    | j                  |||      S r   )is_truer5  s        r   any_to_booleanrQ  7  s    ??7FC00r   c                     |j                  |t        j                  d            }| j                  ||t        j
                  |      S )N    )r4  r   IntTyper   r   int32)r    r!   r,  r-  r   asints         r   boolean_to_anyrW  ;  s5     LLbjjn-E<<T::r   c                     | j                  ||j                  |j                        }| j                  ||j                  |      S r   )r(  r)  r*  rP  r+  s         r   literal_int_to_booleanrY  A  sD     
&
&
C
 ??7F$7$7==r   c                     |j                   }| j                  |||j                        }| j                  |||j                        }t	        j
                  ||f      S r   )r  r(  r  r  r   literal_struct)r    r!   rG   pyvalr  r  r  s          r   constant_complexr]  N  sR    


C''ejjAD''ejjAD""D$<00r   c                 ~    t        |t        j                        rt        |      }| j	                  |      } ||      S r   )r`   npbool_boolr2  )r    r!   rG   r\  r   s        r   constant_integerrb  U  s5     %"U

 
 
$Cu:r   c                    t        | t        j                  t        j                  f      rbt        |t        j                  j
                        r=| j                  |j                  j                  k7  rt        j                  d      d }|S yy)z) Typing for the np scalar 'view' method. zOChanging the dtype of a 0d array is only supported if the itemsize is unchangedc                     t        | |      S r   r   )scalarviewtys     r   r   zscalar_view.<locals>.implo  s    &&))r   N)
r`   r   r-  r{   abstract	DTypeSpecr}   rb   r   TypingError)re  rf  r   s      r   scalar_viewrj  f  so    6EKK7865>>#;#;<??fll333$$() )	* = 	9r   viewr   )r   r   r/  numpyr_  r  llvmliter   llvmlite.irr   numba.core.imputilsr   r   r   r   r	   
numba.corer
   r   r   r   numba.core.extendingr   numba.cpython.unsafe.numbersr   r   r*   r.   r1   rV   rZ   rl   divmodr{   rp   r{  	ifloordivrs   truedivitruedivrw   r]  imodry   r~   r   r   r.  r'  r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   py_boolr!  r)  r*  r+  r,  r   r&  r4  r:  r=  rA  rC  rE  r_  rQ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rG   r   r  r-   r  r0   r  r   Complexr  r  r  r  r  r  clsr  r  r  r  r   r  r  r  r	  r  r  r  r6  Numberr  r  ra  r  r  r!  r&  r@   r/  r6  voidptrr9  r>  rB  rF  rH  rN  AnyrQ  rW  BooleanLiteralrY  r]  rb  rj  r   r   r   <module>r     s          5 5 6 5 0 /"FFF66r6< vu}}emm4G 5G x  %--?x!!5==%--@ A @ x>x  %--?F @ ?F x||U]]EMM:x}}emmU]]; < ;(FV x||U]]E,@,@Ax}}emmU-A-ABx||U[[%*>*>?x}}ekk5+?+?@: A @ C B:zF
F
F
F
F
F
F
F
F
F
(	FD
F	FFFFFFF'FTFF 9hkk5==%-- 8 E 8hkk5==%-- 8 E 8hkk5==%-- 8 F 8hkk5==%-- 8 F 8hkk5==%-- 8 F 8hkk5==%-- 8 F *hllEMM *+; < *hllEMM *+C D/-b	<    F
F
F
F(,i7X vu{{EKK0G 1G21&1&	FF
F
F
F
F
F
FFF< [[ #hllB #M 2 $hmmR $] 3 #hllB #M 2 $hmmR $] 3 #hllB #M 2 $hmmR $] 3 (hR (); < )h  "b )*< = 'hB ' 6 (hR ( 7 #hllB #M 2 $hmmR $] 3 #hllB #O 4 $hmmR $_ 5 c2r ? + "hkk2r "< 0 "hkk2r "< 0 "hkk2r "< 0 "hkk2r "< 0 "hkk2r "< 0 "hkk2r "< 0 c2 } % hllB  0 1 hllB  2 3 u}}f%: &:
 u}}f%: &:
 "EMM2F 3F<:J KK' ACM#v~.M#v~.+M%s+,?@A x||U]]EMM:x}}emmU]];sEMM5==1'F 2 < ;'FRF F F. ElF@	FF
	F	FF ]] #hllB #$4 5 $hmmR $%5 6 #hllB #$4 5 $hmmR $%5 6 #hllB #$4 5 $hmmR $%5 6 'hB '(8 9 (hR ()9 : hllB  3 4 hllB  5 6 #hkk2r "? 3 "hkk2r "? 3 c2 ' ( }emm,}ell+ , -F tU]]# $ tU]]#C $C tU[[!F "F tU]]#1 $1 ==%++u}}
5 6B$M(--$_56 ,hmmU]] +O < E  %--0E  %++.E  %--0A 1 / 1A EMM5==)? *? EMM5==)? *? EKK%) &) EMM5;;'( (( EKK'( (( EKK'EMM5==) * ( EMM5==) * EIIu}}%1 &1 EMM5<<(; );
 E  %--0E  %--0> 1 1> 1 1     %V $[ 1 &v &{ 3r   