
\K]c           @` s   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d d l m Z m	 Z	 m
 Z
 m Z m Z 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 m Z d e f d	     YZ d
 e f d     YZ d S(   i    (   t   print_functiont   divisiont   absolute_importNi   (   t   configt   irt   controlflowt   dataflowt   utilst   errorst   six(   t   builtinst	   PYVERSION(   t   NotDefinedError(   t   BINOPS_TO_OPERATORSt   INPLACE_BINOPS_TO_OPERATORSt   UNARY_BUITINS_TO_OPERATORSt   OPERATORS_TO_BUILTINSt   Assignerc           B` s)   e  Z d  Z d   Z d   Z d   Z RS(   s  
    This object keeps track of potential assignment simplifications
    inside a code block.
    For example `$O.1 = x` followed by `y = $0.1` can be simplified
    into `y = x`, but it's not possible anymore if we have `x = z`
    in-between those two instructions.

    NOTE: this is not only an optimization, but is actually necessary
    due to certain limitations of Numba - such as only accepting the
    returning of an array passed as function argument.
    c         C` s+   i  |  _  t j t  |  _ t   |  _ d  S(   N(   t   dest_to_srct   collectionst   defaultdictt   listt   src_invalidatet   sett   unused_dests(   t   self(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   __init__   s    	c         C` s   | j  } | j  } | |  j k rQ x- |  j j |  D] } |  j j |  q4 Wn  | |  j k rp |  j | } n  | j r | |  j | <|  j | j |  |  j j |  n  | S(   s   
        Assign *srcvar* to *destvar*. Return either *srcvar* or a possible
        simplified assignment source (earlier assigned to *srcvar*).
        (   t   nameR   t   popR   t   is_tempt   appendR   t   add(   R   t   srcvart   destvart   srcnamet   destnamet   d(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   assign'   s    			c         C` s.   | |  j  k r |  j  | S|  j j |  d S(   su   
        Get a possible assignment source (a ir.Var instance) to replace
        *destname*, otherwise None.
        N(   R   R   t   discardt   None(   R   R#   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   get_assignment_source:   s    (   t   __name__t
   __module__t   __doc__R   R%   R(   (    (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyR      s   		t   Interpreterc           B` s  e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z d   Z e d  Z d   Z d d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ d    Z% d!   Z& d"   Z' d#   Z( d$   Z) d%   Z* d&   Z+ d'   Z, e, Z- e, Z. d(   Z/ d)   Z0 d*   Z1 d+   Z2 d,   Z3 d-   Z4 d.   Z5 d/   Z6 d0   Z7 d1   Z8 d2   Z9 d3   Z: d4   Z; e< d k  r7d7   Z= e= Z> n d8   Z= d9   Z? d:   Z@ d;   ZA d<   ZB d=   ZC d>   ZD d?   ZE d@   ZF dA   ZG dB   ZH dC   ZI dD   ZJ dE   ZK dF   ZL dG   ZM dH   ZN dI   ZO dJ   ZP dK   ZQ dL   ZR dM   ZS dN   ZT dO   ZU dP   ZV dQ   ZW dR   ZX dS   ZY dT   ZZ dU   Z[ dV   Z\ dW   Z] dX   Z^ dY   Z_ dZ   Z` d[   Za d\   Zb d]   Zc d^   Zd d_   Ze d`   Zf da   Zg db   Zh dc   Zi dd   Zj de   Zk df   Zl dg   Zm dh   Zn di   Zo dj   Zp dk   Zq dl   Zr dm   Zs dn   Zt do   Zu dp   Zv dq   Zw dr   Zx ds   Zy dt   Zz du   Z{ dv   Z| dw   Z} dx   Z~ dy   Z dz   Z d{   Z d|   Z d}   Z d~   Z d   Z RS(   s2   A bytecode interpreter that builds up the IR.
    c         C` sh   | |  _  | j |  _ | j |  _ t j j |  |  _ |  _ | j |  _ i  |  _	 t
 j t  |  _ d  S(   N(   t   func_idt	   arg_countt	   arg_namesR   t   Loct   from_function_idt   loct	   first_loct   is_generatort   blocksR   R   R   t   definitions(   R   R-   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyR   I   s    		c         C` s\  | |  _  g  |  _ t j d d d |  j  } |  j j |  t j |  |  _	 |  j	 j
   t j ru |  j	 j   n  t j |  j	  |  _ |  j j
   d |  _ d |  _ g  |  _ d |  _ t |  j	 j j    } |  j j t j d |  j d |  j   x* |  j   D] \ } } |  j | |  qWt j |  j |  j |  j |  j |  j |  j  |  j!  S(   s0   
        Generate IR for this bytecode.
        t   parentR2   N("   t   bytecodet   scopesR   t   ScopeR'   R2   R   R   t   ControlFlowAnalysist   cfat   runR   t   DUMP_CFGt   dumpR   t   DataFlowAnalysist   dfat   current_blockt   current_block_offsett   syntax_blockst   dfainfot   minR5   t   keyst   current_scopet
   _iter_instt	   _dispatcht
   FunctionIRR4   R-   R3   R6   R.   R/   (   R   R8   t   global_scopet   firstblkt   instt   kws(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt	   interpretU   s*    							(c         C` sU   xN t  |  j  D]= \ } } t j d | d | d |  j  } |  j | |  q Wd  S(   Nt   indexR   R2   (   t	   enumerateR/   R   t   ArgR2   t   store(   R   RQ   R   t   val(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   init_first_blocky   s    !c         c` s   x t  |  j j    D] \ } } |  j | j d } |  j |  | d k rt |  j j | j  |  _ |  j	   n  xJ |  j
 j D]< \ } } |  j | } |  j j | j  |  _ | | f Vq W|  j   q Wd  S(   Ni    (   RR   R<   t   iterliveblocksR8   t   bodyt   _start_new_blockR2   t   with_linenot   linenoRV   RE   t   instst   _end_current_block(   R   t   blkctt   blockt	   firstinstt   offsetRO   RN   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRI      s    "c         C` s   |  j  } |  j | j  | d  k	 rZ | j rZ t j | j d |  j } | j |  n  |  j	 j
 |  j |  _ t   |  _ x7 |  j r | j |  j d j k r |  j j   q Pq Wd  S(   NR2   i(   RB   t   insert_blockRa   R'   t   is_terminatedR   t   JumpR2   R   RA   t   infosRC   RE   R   t   assignerRD   t   exitR   (   R   RN   t   oldblockt   jmp(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRY      s    	c         C` s   |  j    |  j   d  S(   N(   t   _remove_unused_temporariest   _insert_outgoing_phis(   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyR]      s    
c         C` sv   g  } x] |  j  j D]O } t | t j  rU | j j rU | j j |  j j	 k rU q n  | j
 |  q W| |  j  _ d S(   sb   
        Remove assignments to unused temporary variables from the
        current block.
        N(   RB   RX   t
   isinstanceR   t   Assignt   targetR   R   Rf   R   R   (   R   t   new_bodyRN   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRj      s    c         C` s   x |  j  j j   D] \ } } |  j j | d |  j } t j d |  j |  d | d |  j  } |  j	 | j
 j | j  |  j j s |  j j |  q |  j j |  q Wd S(   sd   
        Add assignments to forward requested outgoing values
        to subsequent blocks.
        R2   t   valueRn   N(   RE   t   outgoing_phist   itemsRH   t   get_or_defineR2   R   Rm   t   getR6   R   R   Rp   RB   Rc   t   insert_before_terminator(   R   t   phinamet   varnameRn   t   stmt(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRk      s    c         C` sC   y t  j |  j j  | SWn! t k
 r> t t | t j  SXd S(   s   
        Get a global value from the func_global (first) or
        as a builtins (second).  If both failed, return a ir.UNDEFINED.
        N(	   R   t   get_function_globalsR-   t   funct   KeyErrort   getattrR
   R   t	   UNDEFINED(   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   get_global_value   s    c         C` s:   |  j  j j | } y | j SWn t k
 r5 t j SXd S(   s|   
        Get a value from the cell contained in this function's closure.
        If not set, return a ir.UNDEFINED.
        N(   R-   Rz   t   __closure__t   cell_contentst
   ValueErrorR   R}   (   R   RQ   t   cell(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   get_closure_value   s
    c         C` s   |  j  d S(   Ni(   R9   (   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRH      s    c         C` s
   |  j  j S(   N(   R8   t	   co_consts(   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   code_consts   s    c         C` s
   |  j  j S(   N(   R8   t   co_varnames(   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   code_locals   s    c         C` s
   |  j  j S(   N(   R8   t   co_names(   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt
   code_names   s    c         C` s
   |  j  j S(   N(   R8   t   co_cellvars(   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   code_cellvars   s    c         C` s
   |  j  j S(   N(   R8   t   co_freevars(   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   code_freevars   s    c         C` s   |  j  d  k	 s t  d | j j d d  } y t |  |  } Wn t k
 r` t |   n Xy | | |  SWnt t j	 k
 r } | j
 d  k r |  j
 } n	 | j
 } t j	 | j d | } t j s t j | d   q |  n Xd  S(   Ns   op_%st   +t   _R2   (   RB   R'   t   AssertionErrort   opnamet   replaceR|   t   AttributeErrort   NotImplementedErrorR   R   R2   R   R   t   FULL_TRACEBACKSR	   t
   raise_from(   R   RN   RO   t   fnamet   fnt   eR2   t   err(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRJ      s     		c         C` s   | s |  j  |  j j k rN | |  j k } |  j j | d |  j d | } n |  j j | d |  j } t | t	 j
  r |  j j | |  } n  t	 j d | d | d |  j  } |  j j |  |  j | j j |  d S(   so   
        Store *value* (a Expr or Var instance) into the variable named *name*
        (a str object).
        R2   t   renameRp   Rn   N(   RC   R<   t   backboneR   RH   t   redefineR2   Rs   Rl   R   t   VarRf   R%   Rm   RB   R   R6   R   (   R   Rp   R   R   R   Rn   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRT     s    $!c         C` sm   | d d k r6 | d j    r6 d j | d  } n  |  j j |  } | d k ri |  j j |  } n  | S(   sJ   
        Get the variable (a Var instance) with the given *name*.
        i    t   .i   s
   implicit{}N(   t   isdigitt   formatRf   R(   R'   RH   Rt   (   R   R   t   var(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRt     s     c         C` sY   | p |  j  } | p |  j } t j d | d |  } | |  j | <| |  _ | |  _ | S(   Nt   scopeR2   (   RH   R2   R   t   BlockR5   RB   RC   (   R   Ra   R   R2   t   blk(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyRb   (  s    		c         C` s   |  j  |  } t j d t d |  j } |  j d | d |  t j j |  j  |  | f d d |  j } |  j d | d |  d  S(   Nt   printR2   Rp   R   (    (   Rt   R   t   GlobalR   R2   RT   t   Exprt   call(   R   RN   t   itemt   printvart   rest   printgvR   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_PRINT_ITEM3  s
    -c         C` su   t  j d t d |  j } |  j d | d |  t  j j |  j |  d d d |  j } |  j d | d |  d  S(   NR   R2   Rp   R   (    (    (   R   R   R   R2   RT   R   R   Rt   (   R   RN   R   R   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_PRINT_NEWLINE:  s    *c   
   	   C` s   t  |  } t j j d |  j |  d |  j d |  } |  j d | d |  xZ t |  D]L \ } } t j j |  j |  d | d d  d |  j }	 |  j |	 |  q\ Wd  S(   NRp   R2   t   countR   RQ   t	   index_var(
   t   lenR   R   t   exhaust_iterRt   R2   RT   RR   t   static_getitemR'   (
   R   RN   t   iterablet   storest   tupleobjR   t   tupt   it   stt   expr(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_UNPACK_SEQUENCE@  s    $	c   	      C` s   |  j  |  } |  j  |  } t j d t d |  j } |  j d | d |  | d  k r t j j |  j  |  | | f d d |  j } nB |  j  |  } t j j |  j  |  | | | f d d |  j } |  j d | d |  d  S(   Nt   sliceR2   Rp   R   (    (    (	   Rt   R   R   R   R2   RT   R'   R   R   (	   R   RN   t   startt   stopt   stepR   t   slicevart   slicegvt	   sliceinst(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_SLICEN  s    $!c         C` s  |  j  |  } t j d t d |  j } |  j d | d |  t j d  d |  j } |  j d | d |  |  j  |  }	 t j j	 |  j  |  |	 |	 f d d |  j }
 |  j d |
 d |  t j j
 | |  j  |  d |  j } |  j d | d |  d  S(   NR   R2   Rp   R   (    (   Rt   R   R   R   R2   RT   t   ConstR'   R   R   t   getitem(   R   RN   t   baseR   R   t   indexvart   nonevarR   t   nonegvt   noneRQ   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt
   op_SLICE_0^  s    0'c         C` s  |  j  |  } |  j  |  } t j d  d |  j } |  j d | d |  |  j  |  }	 t j d t d |  j }
 |  j d |
 d |  t j j	 |  j  |  | |	 f d d |  j } |  j d | d |  t j j
 | |  j  |  d |  j } |  j d | d |  d  S(   NR2   Rp   R   R   (    (   Rt   R   R   R'   R2   RT   R   R   R   R   R   (   R   RN   R   R   R   R   R   R   R   R   R   RQ   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt
   op_SLICE_1n  s    $'c         C` s  |  j  |  } |  j  |  } t j d  d |  j } |  j d | d |  |  j  |  }	 t j d t d |  j }
 |  j d |
 d |  t j j	 |  j  |  |	 | f d d |  j } |  j d | d |  t j j
 | |  j  |  d |  j } |  j d | d |  d  S(   NR2   Rp   R   R   (    (   Rt   R   R   R'   R2   RT   R   R   R   R   R   (   R   RN   R   R   R   R   R   R   R   R   R   RQ   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt
   op_SLICE_2  s    $'c         C` s   |  j  |  } |  j  |  } |  j  |  } t j d t d |  j } |  j d | d |  t j j |  j  |  | | f d d |  j }	 |  j d |	 d |  t j j | |  j  |  d |  j }
 |  j d |
 d |  d  S(   NR   R2   Rp   R   (    (	   Rt   R   R   R   R2   RT   R   R   R   (   R   RN   R   R   R   R   R   R   R   RQ   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt
   op_SLICE_3  s    $'c         C` s  |  j  |  } t j d t d |  j } |  j d | d |  t j d  d |  j } |  j d | d |  |  j  |  }	 t j j	 |  j  |  |	 |	 f d d |  j }
 |  j d |
 d |  t j
 | |  j  |  |  j  |  d |  j } |  j j |  d  S(   NR   R2   Rp   R   (    (   Rt   R   R   R   R2   RT   R   R'   R   R   t   SetItemRB   R   (   R   RN   R   Rp   R   R   R   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_SLICE_0  s    0$c         C` s  |  j  |  } |  j  |  } t j d  d |  j } |  j d | d |  |  j  |  }	 t j d t d |  j }
 |  j d |
 d |  t j j	 |  j  |  | |	 f d d |  j } |  j d | d |  t j
 | |  j  |  |  j  |  d |  j } |  j j |  d  S(   NR2   Rp   R   R   (    (   Rt   R   R   R'   R2   RT   R   R   R   R   R   RB   R   (   R   RN   R   R   R   Rp   R   R   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_SLICE_1  s    $$c         C` s  |  j  |  } |  j  |  } t j d  d |  j } |  j d | d |  |  j  |  }	 t j d t d |  j }
 |  j d |
 d |  t j j	 |  j  |  |	 | f d d |  j } |  j d | d |  t j
 | |  j  |  |  j  |  d |  j } |  j j |  d  S(   NR2   Rp   R   R   (    (   Rt   R   R   R'   R2   RT   R   R   R   R   R   RB   R   (   R   RN   R   R   R   Rp   R   R   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_SLICE_2  s    $$c         C` s   |  j  |  } |  j  |  } |  j  |  } t j d t d |  j } |  j d | d |  t j j |  j  |  | | f d d |  j }	 |  j d |	 d |  t j | |  j  |  |  j  |  d |  j }
 |  j	 j
 |
  d  S(   NR   R2   Rp   R   (    (   Rt   R   R   R   R2   RT   R   R   R   RB   R   (   R   RN   R   R   R   Rp   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_SLICE_3  s    $$c         C` s   |  j  |  } t j d t d |  j } |  j d | d |  t j d  d |  j } |  j d | d |  |  j  |  } t j j	 |  j  |  | | f d d |  j }	 |  j d |	 d |  t j
 | |  j  |  d |  j }
 |  j j |
  d  S(   NR   R2   Rp   R   (    (   Rt   R   R   R   R2   RT   R   R'   R   R   t   DelItemRB   R   (   R   RN   R   R   R   R   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_DELETE_SLICE_0  s    0$c         C` s
  |  j  |  } |  j  |  } t j d  d |  j } |  j d | d |  |  j  |  } t j d t d |  j }	 |  j d |	 d |  t j j	 |  j  |  | | f d d |  j }
 |  j d |
 d |  t j
 | |  j  |  d |  j } |  j j |  d  S(   NR2   Rp   R   R   (    (   Rt   R   R   R'   R2   RT   R   R   R   R   R   RB   R   (   R   RN   R   R   R   R   R   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_DELETE_SLICE_1  s    $$c         C` s
  |  j  |  } |  j  |  } t j d  d |  j } |  j d | d |  |  j  |  } t j d t d |  j }	 |  j d |	 d |  t j j	 |  j  |  | | f d d |  j }
 |  j d |
 d |  t j
 | |  j  |  d |  j } |  j j |  d  S(   NR2   Rp   R   R   (    (   Rt   R   R   R'   R2   RT   R   R   R   R   R   RB   R   (   R   RN   R   R   R   R   R   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_DELETE_SLICE_2  s    $$c   
      C` s   |  j  |  } |  j  |  } |  j  |  } t j d t d |  j } |  j d | d |  t j j |  j  |  | | f d d |  j } |  j d | d |  t j | |  j  |  d |  j }	 |  j	 j
 |	  d  S(   NR   R2   Rp   R   (    (   Rt   R   R   R   R2   RT   R   R   R   RB   R   (
   R   RN   R   R   R   R   R   R   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_DELETE_SLICE_3  s    $$c         C` s3   |  j  | j } |  j d |  j |  d |  d  S(   NRp   R   (   R   t   argRT   Rt   (   R   RN   R   R"   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LOAD_FAST,  s    c         C` s9   |  j  | j } |  j |  } |  j d | d |  d  S(   NRp   R   (   R   R   Rt   RT   (   R   RN   Rp   t   dstname(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_FAST0  s    c         C` sC   x< t  | |  D]+ \ } } |  j d |  j |  d |  q Wd  S(   NRp   R   (   t   zipRT   Rt   (   R   RN   t   origt   dupedt   srct   dst(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_DUP_TOPX5  s    c      	   C` s]   |  j  | j } t j d |  j |  d |  j |  d | d |  j  } |  j j |  d  S(   NRn   Rp   t   attrR2   (   R   R   R   t   SetAttrRt   R2   RB   R   (   R   RN   Rn   Rp   R   t   sa(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_ATTR<  s    'c         C` sN   |  j  | j } t j d |  j |  d | d |  j  } |  j j |  d  S(   NRn   R   R2   (   R   R   R   t   DelAttrRt   R2   RB   R   (   R   RN   Rn   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_DELETE_ATTRB  s    *c         C` sQ   |  j  |  } |  j | j } t j j | | d |  j } |  j | |  d  S(   NR2   (   Rt   R   R   R   R   R|   R2   RT   (   R   RN   R   R   R   R|   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LOAD_ATTRG  s    c         C` s<   |  j  | j } t j | d |  j } |  j | |  d  S(   NR2   (   R   R   R   R   R2   RT   (   R   RN   R   Rp   t   const(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LOAD_CONSTM  s    c         C` sN   |  j  | j } |  j |  } t j | | d |  j } |  j | |  d  S(   NR2   (   R   R   R~   R   R   R2   RT   (   R   RN   R   R   Rp   t   gl(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LOAD_GLOBALR  s    c         C` s   t  |  j  } | j | k  r@ |  j | j } |  j |  } nG | j | } |  j | } |  j |  } t j | | | d |  j } |  j	 | |  d  S(   NR2   (
   R   R   R   Rt   R   R   R   t   FreeVarR2   RT   (   R   RN   R   t
   n_cellvarsR   R   t   idxRp   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LOAD_DEREFX  s    c         C` sn   t  |  j  } | j | k  r1 |  j | j } n |  j | j | } |  j |  } |  j d | d |  d  S(   NRp   R   (   R   R   R   R   Rt   RT   (   R   RN   Rp   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_DEREFd  s    c         C` sU   |  j  | j |  j k s t  t j | j d | j | j } |  j j	 |  d  S(   NRg   (
   R5   Ra   RB   R   R   t   Loopt   nextR   RD   R   (   R   RN   t   loop(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_SETUP_LOOPm  s    "c      
   C` s   |  j  | j |  j k s t  | j | j } t j | j d | } |  j j	 |  |  j j	 t j
 d |  j |  d | j d | d |  j   d  S(   NRg   t   contextmanagert   begint   endR2   (   R5   Ra   RB   R   R   R   R   t   WithRD   R   t	   EnterWithRt   R2   (   R   RN   R   t   exitptt   wth(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_SETUP_WITHr  s    c         C` s   d S(   s   no-opN(    (   R   RN   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_WITH_CLEANUP|  t    c         C` s   d S(   s   no-opN(    (   R   RN   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_WITH_CLEANUP_START  R  c         C` s   d S(   s   no-opN(    (   R   RN   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_WITH_CLEANUP_FINISH  R  c         C` s   d S(   s   no-opN(    (   R   RN   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_END_FINALLY  R  i   i   c         C` sN  |  j  |  } g  | D] } |  j  |  ^ q } | d  k	 rO |  j  |  } n  g  } g  }	 x | D] \ }
 } |  j  |
  |  j  |  }
 } x^ |  j j D]P } t | t j  r | j |
 k r |	 j |  | j | j	 j	 | f  q q Wqb Wx |	 D] } |  j j
 |  q Wt j j | | | d |  j d | } |  j | |  d  S(   NR2   t   vararg(   Rt   R'   RB   RX   Rl   R   Rm   Rn   R   Rp   t   removeR   R   R2   RT   (   R   RN   Rz   t   argsRO   R   R  t   xt	   keyvaluest   removetheset   kt   vR   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_CALL_FUNCTION  s"    "!$	c         C` sf   |  j  |  } g  | D] } |  j  |  ^ q } t j j | | d d |  j } |  j | |  d  S(   NR2   (    (   Rt   R   R   R   R2   RT   (   R   RN   Rz   R  R   R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyR    s    "!c         C` s  |  j  |  } g  | D] } |  j  |  ^ q } |  j  |  } xU |  j j D]G } t | t j  rM | j | k rM |  j j |  | j j } PqM qM Wt	 |  } | |  }	 | | }
 t
 t | |
   } t j j | |	 | d |  j } |  j | |  d  S(   NR2   (   Rt   RB   RX   Rl   R   Rm   Rn   R  Rp   R   R   R   R   R   R2   RT   (   R   RN   Rz   R  t   namesR   R  RG   t   nkeyst   posvalst   kwvalsR	  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_CALL_FUNCTION_KW  s    "!!c         C` sY   |  j  |  } |  j  |  } t j j | g  g  d |  j d | } |  j | |  d  S(   NR2   R  (   Rt   R   R   R   R2   RT   (   R   RN   Rz   R  R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_CALL_FUNCTION_EX  s    'c      
   C` s   |  j  | d  } xy t t |  j  | d  |  D]X \ } } t j j d t j d | d | d |  j  } |  j	 | |  |  j  |  } q3 Wd  S(   Ni    i   R   t   lhst   rhsR2   (
   Rt   R   t   mapR   R   t   binopt   operatorR   R2   RT   (   R   RN   t   tuplest   tempst   firstt   othert   tmpt   out(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   _build_tuple_unpack  s    ,!c         C` s   |  j  | | |  d  S(   N(   R  (   R   RN   R  R  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_TUPLE_UNPACK_WITH_CALL  s    c         C` s   |  j  | | |  d  S(   N(   R  (   R   RN   R  R  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_TUPLE_UNPACK  s    c         C` sH  |  j  |  } xU |  j j D]G } t | t j  r | j | k r |  j j |  | j j } Pq q Wt	 |  t	 |  k s t
  g  | D]! } t j d | d |  j  ^ q }	 x- t |	 |  D] \ }
 } |  j |
 |  q Wt t t |  j  |  t |  j  |    } t j j d | d d d |  j  } |  j | |  d  S(   NRp   R2   Rr   t   sizei   (   Rt   RB   RX   Rl   R   Rm   Rn   R  Rp   R   R   R   R2   R   RT   R   R  R   t	   build_map(   R   RN   RG   t   keytmpst   valuesR   t   keyvart   keytupR  t	   keyconstst   kvalR  Rr   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_CONST_KEY_MAP  s    !.-$c         C` s;   t  j j d |  j |  d |  j  } |  j | |  d  S(   NRp   R2   (   R   R   t   getiterRt   R2   RT   (   R   RN   Rp   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_GET_ITER  s    'c      	   C` s  | j  |  j k s t d   |  j |  } t j j d | d |  j  } |  j | |  t j j	 d |  j |  d |  j  } |  j | |  t j j
 d |  j |  d |  j  }	 |  j |	 |  t j d |  j |  d | j d | j   d |  j  }
 |  j j |
  d S(   s:   
        Assign new block other this instruction.
        s   FOR_ITER must be block headRp   R2   t   condt   truebrt   falsebrN(   Ra   R5   R   Rt   R   R   t   iternextR2   RT   t
   pair_firstt   pair_secondt   BranchR   t   get_jump_targetRB   R   (   R   RN   t   iteratort   pairt   indvalt   predRU   t   pairvalR0  t   isvalidt   br(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_FOR_ITER  s    ''!c         C` sS   |  j  |  } |  j  |  } t j j | d | d |  j } |  j | |  d  S(   NRQ   R2   (   Rt   R   R   R   R2   RT   (   R   RN   Rn   RQ   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_SUBSCR   s    !c      	   C` sh   |  j  |  } |  j  |  } |  j  |  } t j d | d | d | d |  j  } |  j j |  d  S(   NRn   RQ   Rp   R2   (   Rt   R   R   R2   RB   R   (   R   RN   Rn   RQ   Rp   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_SUBSCR  s    c         C` sS   |  j  |  } |  j  |  } t j d | d | d |  j  } |  j j |  d  S(   NRn   RQ   R2   (   Rt   R   R   R2   RB   R   (   R   RN   Rn   RQ   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_DELETE_SUBSCR  s    !c         C` sN   t  j j d g  | D] } |  j |  ^ q d |  j  } |  j | |  d  S(   NRr   R2   (   R   R   t   build_tupleRt   R2   RT   (   R   RN   Rr   R   R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_TUPLE  s    .c         C` sN   t  j j d g  | D] } |  j |  ^ q d |  j  } |  j | |  d  S(   NRr   R2   (   R   R   t
   build_listRt   R2   RT   (   R   RN   Rr   R   R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_LIST  s    .c         C` sN   t  j j d g  | D] } |  j |  ^ q d |  j  } |  j | |  d  S(   NRr   R2   (   R   R   t	   build_setRt   R2   RT   (   R   RN   Rr   R   R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_SET  s    .c         C` so   g  | D]* \ } } |  j  |  |  j  |  f ^ q } t j j d | d | d |  j  } |  j | |  d  S(   NRr   R"  R2   (   Rt   R   R   R#  R2   RT   (   R   RN   Rr   R"  R   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BUILD_MAP#  s    7$c      	   C` sV   t  j d |  j |  d |  j |  d |  j |  d |  j  } |  j j |  d  S(   Nt   dctt   keyRp   R2   (   R   t   StoreMapRt   R2   RB   R   (   R   RN   RG  RH  Rp   Rx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_STORE_MAP(  s    'c         C` s@   |  j  |  } t j j d d | d |  j } |  j | |  S(   Nt   -Rp   R2   (   Rt   R   R   t   unaryR2   RT   (   R   RN   Rp   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_UNARY_NEGATIVE-  s    !c         C` s@   |  j  |  } t j j d d | d |  j } |  j | |  S(   NR   Rp   R2   (   Rt   R   R   RL  R2   RT   (   R   RN   Rp   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_UNARY_POSITIVE2  s    !c         C` s@   |  j  |  } t j j d d | d |  j } |  j | |  S(   Nt   ~Rp   R2   (   Rt   R   R   RL  R2   RT   (   R   RN   Rp   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_UNARY_INVERT7  s    !c         C` s@   |  j  |  } t j j d d | d |  j } |  j | |  S(   Nt   notRp   R2   (   Rt   R   R   RL  R2   RT   (   R   RN   Rp   R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_UNARY_NOT<  s    !c         C` sc   t  | } |  j |  } |  j |  } t j j | d | d | d |  j } |  j | |  d  S(   NR  R  R2   (   R   Rt   R   R   R  R2   RT   (   R   t   opR  R  R   R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   _binopA  s
    
'c      	   C` st   t  | } t | d } |  j |  } |  j |  } t j j | | d | d | d |  j } |  j | |  d  S(   Nt   =R  R  R2   (   R   R   Rt   R   R   t   inplace_binopR2   RT   (   R   RS  R  R  R   t   immuopR   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   _inplace_binopH  s    
c         C` s   |  j  d | | |  d  S(   NR   (   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_ADDQ  s    c         C` s   |  j  d | | |  d  S(   NRK  (   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_SUBTRACTT  s    c         C` s   |  j  d | | |  d  S(   Nt   *(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_MULTIPLYW  s    c         C` s   |  j  d | | |  d  S(   Ns   /?(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_DIVIDEZ  s    c         C` s   |  j  d | | |  d  S(   Nt   /(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_TRUE_DIVIDE]  s    c         C` s   |  j  d | | |  d  S(   Ns   //(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_FLOOR_DIVIDE`  s    c         C` s   |  j  d | | |  d  S(   Nt   %(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_MODULOc  s    c         C` s   |  j  d | | |  d  S(   Ns   **(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_POWERf  s    c         C` s   |  j  d | | |  d  S(   Nt   @(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_MATRIX_MULTIPLYi  s    c         C` s   |  j  d | | |  d  S(   Ns   <<(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_LSHIFTl  s    c         C` s   |  j  d | | |  d  S(   Ns   >>(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_RSHIFTo  s    c         C` s   |  j  d | | |  d  S(   Nt   &(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_ANDr  s    c         C` s   |  j  d | | |  d  S(   Nt   |(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_ORu  s    c         C` s   |  j  d | | |  d  S(   Nt   ^(   RT  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BINARY_XORx  s    c         C` s   |  j  d | | |  d  S(   NR   (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_ADD{  s    c         C` s   |  j  d | | |  d  S(   NRK  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_SUBTRACT~  s    c         C` s   |  j  d | | |  d  S(   NR[  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_MULTIPLY  s    c         C` s   |  j  d | | |  d  S(   Ns   /?(   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_DIVIDE  s    c         C` s   |  j  d | | |  d  S(   NR^  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_TRUE_DIVIDE  s    c         C` s   |  j  d | | |  d  S(   Ns   //(   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_FLOOR_DIVIDE  s    c         C` s   |  j  d | | |  d  S(   NRa  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_MODULO  s    c         C` s   |  j  d | | |  d  S(   Ns   **(   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_POWER  s    c         C` s   |  j  d | | |  d  S(   NRd  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_MATRIX_MULTIPLY  s    c         C` s   |  j  d | | |  d  S(   Ns   <<(   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_LSHIFT  s    c         C` s   |  j  d | | |  d  S(   Ns   >>(   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_RSHIFT  s    c         C` s   |  j  d | | |  d  S(   NRh  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_AND  s    c         C` s   |  j  d | | |  d  S(   NRj  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_OR  s    c         C` s   |  j  d | | |  d  S(   NRl  (   RX  (   R   RN   R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_INPLACE_XOR  s    c         C` s2   t  j | j   d |  j } |  j j |  d  S(   NR2   (   R   Rd   R4  R2   RB   R   (   R   RN   Ri   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_JUMP_ABSOLUTE  s    c         C` s2   t  j | j   d |  j } |  j j |  d  S(   NR2   (   R   Rd   R4  R2   RB   R   (   R   RN   Ri   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_JUMP_FORWARD  s    c         C` s   |  j  j   d  S(   N(   RD   R   (   R   RN   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_POP_BLOCK  s    c         C` sc   |  j  t j j |  j |  d |  j |  t j |  j |  d |  j } |  j j |  d  S(   NR2   (	   RT   R   R   t   castRt   R2   t   ReturnRB   R   (   R   RN   t   retvalt   castvalt   ret(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_RETURN_VALUE  s    .!c         C` s   t  j | j } | d k s( | d k r8 | | } } n  | d k r |  j d | | |  |  j |  } t j j d d | d |  j } |  j	 | |  n |  j | | | |  d  S(   Nt   ins   not inRQ  Rp   R2   (
   t   dist   cmp_opR   RT  Rt   R   R   RL  R2   RT   (   R   RN   R  R  R   RS  R  R  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_COMPARE_OP  s    !c         C` sW   |  j  d } t | t j  s% t  t j d | j d |  j  } |  j j	 |  d  S(   NiRn   R2   (
   RD   Rl   R   R   R   Rd   Rg   R2   RB   R   (   R   RN   R   Ri   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_BREAK_LOOP  s    c      	   C` sv   i | j    t 6| j t 6} | | } | | } t j d |  j |  d | d | d |  j  } |  j j	 |  d  S(   NR-  R.  R/  R2   (
   R4  t   TrueR   t   FalseR   R3  Rt   R2   RB   R   (   R   RN   R8  t   iftruet   brsR.  R/  t   bra(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   _op_JUMP_IF  s    
$c         C` s   |  j  | d | d t d  S(   NR8  R  (   R  R  (   R   RN   R8  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_JUMP_IF_FALSE  s    c         C` s   |  j  | d | d t d  S(   NR8  R  (   R  R  (   R   RN   R8  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_JUMP_IF_TRUE  s    c         C` s   |  j  | d | d t d  S(   NR8  R  (   R  R  (   R   RN   R8  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_POP_JUMP_IF_FALSE  s    c         C` s   |  j  | d | d t d  S(   NR8  R  (   R  R  (   R   RN   R8  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_POP_JUMP_IF_TRUE  s    c         C` s   |  j  | d | d t d  S(   NR8  R  (   R  R  (   R   RN   R8  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_JUMP_IF_FALSE_OR_POP  s    c         C` s   |  j  | d | d t d  S(   NR8  R  (   R  R  (   R   RN   R8  (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_JUMP_IF_TRUE_OR_POP  s    c         C` sM   | d  k	 r |  j |  } n  t j d | d |  j  } |  j j |  d  S(   Nt	   exceptionR2   (   R'   Rt   R   t   RaiseR2   RB   R   (   R   RN   t   excRx   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_RAISE_VARARGS  s    c         C` s@   d  } t j d |  j |  d | d |  j  } |  j | |  S(   NRp   RQ   R2   (   R'   R   t   YieldRt   R2   RT   (   R   RN   Rp   R   RQ   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_YIELD_VALUE  s    *c	         C` s   | d  k r t d   n  | d  k r6 t d   n  t | t  rp t g  | D] } |  j |  ^ qO  } n  |  j | d j }	 | r |  j |  } n  | r |  j |  } n  t j j	 | |	 | | |  j
  }
 |  j |
 |  d  S(   Ns4   op_MAKE_FUNCTION with annotations is not implementeds3   op_MAKE_FUNCTION with kwdefaults is not implementedi    (   R'   R   Rl   t   tupleRt   R6   Rp   R   R   t   make_functionR2   RT   (   R   RN   R   t   codet   closuret   annotationst
   kwdefaultst   defaultsR   t   fcodeR   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_MAKE_FUNCTION  s    +!c	   	   	   C` s&   |  j  | | | | | | | |  d  S(   N(   R  (	   R   RN   R   R  R  R  R  R  R   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_MAKE_CLOSURE   s    c   	      C` s   t  |  j  } | j | k  rf |  j | j } y |  j |  } Wq t k
 rb } t d   q XnG | j | } |  j | } |  j |  } t j	 | | | d |  j
 } |  j | |  d  S(   Ns.   Unsupported use of op_LOAD_CLOSURE encounteredR2   (   R   R   R   Rt   R   R   R   R   R   R   R2   RT   (	   R   RN   R   R   R   R   R   R   Rp   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LOAD_CLOSURE  s    c         C` s   |  j  |  } |  j  |  } t j j | d d |  j } |  j d | d |  t j j |  j  |  | f d d |  j } |  j d | d |  d  S(   NR   R2   Rp   R   (    (   Rt   R   R   R|   R2   RT   R   (   R   RN   Rn   Rp   t	   appendvarR   t
   appendattrt
   appendinst(    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LIST_APPEND  s    -c         O` s   |  j  | |   d  S(   N(   R   (   R   R  RO   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_LOAD_METHOD#  s    c         O` s   |  j  | |   d  S(   N(   R  (   R   R  RO   (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   op_CALL_METHOD&  s    N(   i   i   (   R)   R*   R+   R   RP   RV   RI   RY   R]   Rj   Rk   R~   R   t   propertyRH   R   R   R   R   R   RJ   R  RT   Rt   R'   Rb   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t
   op_DUP_TOPt   op_DUP_TOP_TWOR   R   R   R   R   R   R   R   R   R   R  R  R  R   R  t   op_CALL_FUNCTION_VARR  R  R  R   R!  R*  R,  R<  R=  R>  R?  RA  RC  RE  RF  RJ  RM  RN  RP  RR  RT  RX  RY  RZ  R\  R]  R_  R`  Rb  Rc  Re  Rf  Rg  Ri  Rk  Rm  Rn  Ro  Rp  Rq  Rr  Rs  Rt  Ru  Rv  Rw  Rx  Ry  Rz  R{  R|  R}  R~  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  (    (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyR,   E   s  		$							
																																
																																																																														(   t
   __future__R    R   R   R   R  R  R  R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   t   objectR   R,   (    (    (    s0   lib/python2.7/site-packages/numba/interpreter.pyt   <module>   s   4"3