
;>"^BU              R   @   s  d  Z  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	 d d l
 m Z d d l
 m Z d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY gR Z e j Z e j j Z e j Z i  Z g  Z d Z dZ dU   Z d[ d	   Z d\ d]   Z d^ dE   Z d_ d`   Z da dF   Z db d   Z dc d   Z dd dC   Z de d   Z  df d6   Z! dg d)   Z" dh di   Z# dj dk   Z$ dl d;   Z% dm dL   Z& dn dP   Z' do dK   Z( dp dN   Z) dq d#   Z* dr d9   Z+ ds d8   Z, dt d    Z- du d(   Z. dv dM   Z/ dw dQ   Z0 dx dy   Z1 dz dO   Z2 d{ d|   Z3 d} d~   Z4 d d   Z5 d dD   Z6 d d   Z7 d d   Z8 d d>   Z9 d d=   Z: d d&   Z; d d'   Z< d dH   Z= d dI   Z> d d   Z? d dB   Z@ d d7   ZA d d<   ZB d d:   ZC d d!   ZD d d"   ZE d dG   ZF d d   ZG d dJ   ZH d d   ZI d d?   ZJ d d%   ZK d dA   ZL d d0   ZM d d1   ZN d d4   ZO d d/   ZP d d3   ZQ d d+   ZR d d   ZS d d-   ZT d d5   ZU d d,   ZV d d2   ZW d d*   ZX d d   ZY d d   ZZ d d   Z[ eM d eN d eO d eP d eS d eR d eJ d eW d eY d eZ d e[ d i Z\ d d@   Z] d d   Z^ d d   Z_ d d   Z` d d   Za d d   Zb d d   Zc d d   Zd d d   Ze d d   Zf d d   Zg d d   Zh Gd d   d ei  Zj Gd dY   dY ek  Zl d dR   Zm d dT   Zn d dS   Zo d d$   Zp d d   Zq d d d d  Zr d d   Zs i  d d  Zt d d   Zu d d   Zv d d   Zw d d   Zx d d   Zy d d   Zz d d   Z{ d d   Z| d dX   Z} d d dV  Z~ d d
   Z i  d d  Z d S)aW  

Auxiliary functions for f2py2e.

Copyright 1999,2000 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@ioc.ee>
Permission to use, modify, and distribute this software is given under the
terms of the NumPy (BSD style) LICENSE.


NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
$Date: 2005/07/24 19:01:55 $
Pearu Peterson

    )divisionabsolute_importprint_functionN)reduce   )__version__)cfuncs
applyrules	debugcapi
dictappenderrmessgentitlegetargs2getcallprotoargumentgetcallstatementgetfortrannamegetpymethoddef
getrestdocgetusercodegetusercode1hasbodyhascallstatement	hascommonhasexternalshasinitvaluehasnotehasresultnoteisallocatableisarrayisarrayofstrings	iscomplexiscomplexarrayiscomplexfunctioniscomplexfunction_warnisdoubleisdummyroutine
isexternal
isfunctionisfunction_wrapisint1array	isintegerisintent_aux
isintent_cisintent_callbackisintent_copyisintent_dictisintent_hideisintent_inisintent_inoutisintent_inplaceisintent_nothideisintent_outisintent_overwrite	islogicalislogicalfunctionislong_complexislong_doubleislong_doublefunctionislong_longislong_longfunctionismoduleismoduleroutine
isoptional	isprivate
isrequired	isroutineisscalarissigned_long_longarrayisstringisstringarrayisstringfunctionissubroutineissubroutine_wrapisthreadsafe
isunsignedisunsigned_charisunsigned_chararrayisunsigned_long_longisunsigned_long_longarrayisunsigned_shortisunsigned_shortarrayl_andl_notl_oroutmessreplaceshow
stripcommathrow_errorc             C   s&   t  j d d  r" t j j |   d  S)Nverboser   )optionsgetsysstdoutwrite)t rb   E/home/birch/.local/lib/python3.5/site-packages/numpy/f2py/auxfuncs.pyrV   @   s    c             C   s
   d t  k S)NZcapi)debugoptions)varrb   rb   rc   r
   E   s    c             C   s'   d |  k o& |  d d k o& t  |   S)Ntypespec	character)r&   )re   rb   rb   rc   	_isstringI   s    rh   c             C   s   t  |   o t |   S)N)rh   r   )re   rb   rb   rc   rF   N   s    c             C   s   t  |   o d |  k S)NZcharselector)rF   )re   rb   rb   rc   ischaracterR   s    ri   c             C   s   t  |   o t |   S)N)r   rh   )re   rb   rb   rc   rG   V   s    c             C   s   t  |   o |  d d d k S)N	dimensionr   z(*))rG   )re   rb   rb   rc   r   Z   s    c             C   s   d |  k o t  |   S)Nrj   )r&   )re   rb   rb   rc   r   `   s    c             C   s#   t  |   p! t |   p! t |   S)N)r   rF   r&   )re   rb   rb   rc   rD   d   s    c             C   s   t  |   o |  j d  d k S)Nrf   complexdouble complex)zcomplexrm   )rD   r]   )re   rb   rb   rc   r    h   s    c             C   s   t  |   o |  j d  d k S)Nrf   logical)rD   r]   )re   rb   rb   rc   r7   m   s    c             C   s   t  |   o |  j d  d k S)Nrf   integer)rD   r]   )re   rb   rb   rc   r*   q   s    c             C   s   t  |   o |  j d  d k S)Nrf   real)rD   r]   )re   rb   rb   rc   isrealu   s    rq   c             C   sN   y |  d d SWn7 t  k
 rI y |  d d SWn t  k
 rD Yn XYn Xd  S)NZkindselector*kind)KeyError)re   rb   rb   rc   get_kindy   s    ru   c             C   s9   t  |   s d S|  j d  d k r) d St |   d k S)Nr   rf   ro   rn   8)zintegerzlogical)rD   r]   ru   )re   rb   rb   rc   r<      s
    c             C   s9   t  |   s d S|  j d  d k r) d St |   d k S)Nr   rf   ro   z-1)rD   r]   ru   )re   rb   rb   rc   rM      s
    c             C   s9   t  |   s d S|  j d  d k r) d St |   d k S)Nr   rf   ro   z-2)rD   r]   ru   )re   rb   rb   rc   rQ      s
    c             C   s9   t  |   s d S|  j d  d k r) d St |   d k S)Nr   rf   ro   z-4)rD   r]   ru   )re   rb   rb   rc   rL      s
    c             C   s9   t  |   s d S|  j d  d k r) d St |   d k S)Nr   rf   ro   z-8)rD   r]   ru   )re   rb   rb   rc   rO      s
    c             C   s9   t  |   s d S|  j d  d k s) d St |   d k S)Nr   rf   rp   rv   )rD   r]   ru   )re   rb   rb   rc   r$      s
    c             C   s9   t  |   s d S|  j d  d k s) d St |   d k S)Nr   rf   rp   Z16)rD   r]   ru   )re   rb   rb   rc   r:      s
    c             C   s    t  |   s d St |   d k S)Nr   32)r    ru   )re   rb   rb   rc   r9      s    c             C   s   t  |   o |  j d  d k S)Nrf   rl   double complex)zcomplexrx   )r   r]   )re   rb   rb   rc   r!      s    c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   1)r   r]   ru   )re   rb   rb   rc   r)      s    !c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   z-1)zintegerzlogical)r   r]   ru   )re   rb   rb   rc   rN      s    !c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   z-2)zintegerzlogical)r   r]   ru   )re   rb   rb   rc   rR      s    !c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   z-4)zintegerzlogical)r   r]   ru   )re   rb   rb   rc   isunsignedarray   s    !rz   c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   z-8)zintegerzlogical)r   r]   ru   )re   rb   rb   rc   rP      s    !c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   ry   )zintegerzlogical)r   r]   ru   )re   rb   rb   rc   issigned_chararray   s    !r{   c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   2)zintegerzlogical)r   r]   ru   )re   rb   rb   rc   issigned_shortarray   s    !r}   c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   4)zintegerzlogical)r   r]   ru   )re   rb   rb   rc   issigned_array   s    !r   c             C   s1   t  |   o0 |  j d  d k o0 t |   d k S)Nrf   ro   rn   rv   )zintegerzlogical)r   r]   ru   )re   rb   rb   rc   rE      s    !c             C   s   d |  k o d |  d k S)NattrspecZallocatablerb   )re   rb   rb   rc   r      s    c             C   s   d |  k p t  |   S)Nrj   )rF   )re   rb   rb   rc   	ismutable   s    r   c             C   s
   d |  k S)N
modulenamerb   )routrb   rb   rc   r?      s    c             C   s   d |  k o d |  d k S)Nblockmodulerb   )r   rb   rb   rc   r>      s    c             C   s   d |  k o d |  d k S)Nr   functionrb   )r   rb   rb   rc   r'     s    c             C   s-   t  |   r d St o, t |   o, t |   S)Nr   )r,   	wrapfuncsr'   r&   )r   rb   rb   rc   r(     s    c             C   s   d |  k o d |  d k S)Nr   Z
subroutinerb   )r   rb   rb   rc   rI     s    c             C   s&   t  |   r d St |   o% t |   S)Nr   )r,   rI   hasassumedshape)r   rb   rb   rc   rJ     s    c             C   ss   |  j  d  r d SxY |  d D]M } xD |  d j  | i   j  d g   D]  } | d k rG d |  d <d SqG Wq Wd S)Nr   Targsvarsrj   :F)r]   )r   adrb   rb   rc   r     s    )
r   c             C   s   t  |   p t |   S)N)r'   rI   )r   rb   rb   rc   rC   !  s    c             C   sY   t  |   s d Sd |  k r) |  d } n
 |  d } | |  d k rU t |  d |  Sd S)Nr   resultnamer   )r'   r7   )r   r   rb   rb   rc   r8   %  s    
c             C   sY   t  |   s d Sd |  k r) |  d } n
 |  d } | |  d k rU t |  d |  Sd S)Nr   r   r   r   )r'   r<   )r   r   rb   rb   rc   r=   1  s    
c             C   sY   t  |   s d Sd |  k r) |  d } n
 |  d } | |  d k rU t |  d |  Sd S)Nr   r   r   r   )r'   r:   )r   r   rb   rb   rc   r;   =  s    
c             C   sY   t  |   s d Sd |  k r) |  d } n
 |  d } | |  d k rU t |  d |  Sd S)Nr   r   r   r   )r'   r    )r   r   rb   rb   rc   r"   I  s    
c             C   s   t  |   r t d  d Sd S)Na      **************************************************************
        Warning: code with a function returning complex value
        may not work correctly with your Fortran compiler.
        Run the following test before using it in your applications:
        $(f2py install dir)/test-site/{b/runme_scalar,e/runme}
        When using GNU gcc/g77 compilers, codes should work correctly.
    **************************************************************
r   r   )r"   rV   )r   rb   rb   rc   r#   U  s
    c             C   sY   t  |   s d Sd |  k r) |  d } n
 |  d } | |  d k rU t |  d |  Sd S)Nr   r   r   r   )r'   rF   )r   r   rb   rb   rc   rH   c  s    
c             C   s   d |  k o |  d S)NZ	externalsrb   )r   rb   rb   rc   r   o  s    c             C   s   d |  k o d |  d k S)Nf2pyenhancementsZ
threadsaferb   )r   rb   rb   rc   rK   s  s    c             C   s   d |  k o |  d S)Nr   rb   )r   rb   rb   rc   hasvariablesx  s    r   c             C   s6   d |  k o5 d |  d k o5 d |  d k o5 t  |   S)Nr   optionalrequired)r4   )re   rb   rb   rc   r@   |  s    c             C   s   d |  k o d |  d k S)Nr   Zexternalrb   )re   rb   rb   rc   r&     s    c             C   s   t  |   o t |   S)N)r@   r4   )re   rb   rb   rc   rB     s    c             C   s   d |  k r d Sd |  d k r$ d Sd |  d k r8 d Sd |  d k rL d Sd |  d k r` d Sd |  d k rt d Sd	 |  d k r d Sd S)
Nintentr   hider   inplaceinoutinoutoutinrb   )re   rb   rb   rc   r1     s    c             C   sZ   d |  k oY d |  d k s, d |  d k oY d |  d k oY d |  d k oY d |  d k S)Nr   r   r   r   r   r   rb   )re   rb   rb   rc   r2     s     c             C   s   d |  j  d g   k S)Nr   r   )r]   )re   rb   rb   rc   r5     s    c             C   sP   d |  k oO d |  d k pO d |  d k oO d |  d k oO t  t t  |   S)Nr   r   r   r   )rU   r2   r3   )re   rb   rb   rc   r0     s     c             C   s   t  |   S)N)r0   )re   rb   rb   rc   r4     s    c             C   s   d |  j  d g   k S)Ncr   )r]   )re   rb   rb   rc   r,     s    c             C   s   d |  j  d g   k S)Ncacher   )r]   )re   rb   rb   rc   isintent_cache  s    r   c             C   s   d |  j  d g   k S)Ncopyr   )r]   )re   rb   rb   rc   r.     s    c             C   s   d |  j  d g   k S)NZ	overwriter   )r]   )re   rb   rb   rc   r6     s    c             C   s   d |  j  d g   k S)Ncallbackr   )r]   )re   rb   rb   rc   r-     s    c             C   s   d |  j  d g   k S)Nr   r   )r]   )re   rb   rb   rc   r3     s    c             C   s   d |  j  d g   k S)NZauxr   )r]   )re   rb   rb   rc   r+     s    c             C   s   d |  j  d g   k S)NZaligned4r   )r]   )re   rb   rb   rc   isintent_aligned4  s    r   c             C   s   d |  j  d g   k S)NZaligned8r   )r]   )re   rb   rb   rc   isintent_aligned8  s    r   c             C   s   d |  j  d g   k S)NZ	aligned16r   )r]   )re   rb   rb   rc   isintent_aligned16  s    r   Z	INTENT_INZINTENT_INOUTZ
INTENT_OUTZINTENT_HIDEZINTENT_CACHEZINTENT_COPTIONALZINTENT_INPLACEZINTENT_ALIGNED4ZINTENT_ALIGNED8ZINTENT_ALIGNED16c             C   s   d |  k o d |  d k S)Nr   Zprivaterb   )re   rb   rb   rc   rA     s    c             C   s
   d |  k S)N=rb   )re   rb   rb   rc   r     s    c             C   s"   t  |   s d S|  d d d k S)Nr   r   "')r   r   )r   )re   rb   rb   rc   hasinitvalueasstring  s    r   c             C   s
   d |  k S)NZnoterb   )re   rb   rb   rc   r     s    c             C   sY   t  |   s d Sd |  k r) |  d } n
 |  d } | |  d k rU t |  d |  Sd S)Nr   r   r   r   )r'   r   )r   r   rb   rb   rc   r     s    
c             C   s
   d |  k S)Ncommonrb   )r   rb   rb   rc   r     s    c             C   sE   t  |   r d St |   rA x" |  d D] } t |  r' d Sq' Wd S)Nr   bodyr   )r   r   containscommon)r   brb   rb   rc   r     s    r   c             C   sI   t  |   r d St |   s  d Sx" |  d D] } t |  r+ d Sq+ Wd S)Nr   r   r   )r>   r   containsmodule)r   r   rb   rb   rc   r     s    r   c             C   s
   d |  k S)Nr   rb   )r   rb   rb   rc   r     s    c             C   s   t  |   d  k	 S)N)r   )r   rb   rb   rc   r     s    c             C   s   d S)Nr   rb   )re   rb   rb   rc   istrue  s    r   c             C   s   d S)Nr   rb   )re   rb   rb   rc   isfalse#  s    r   c               @   s   e  Z d  Z d S)	F2PYErrorN)__name__
__module____qualname__rb   rb   rb   rc   r   '  s   r   c               @   s(   e  Z d  Z d d   Z d d   Z d S)rZ   c             C   s   | |  _  d  S)N)mess)selfr   rb   rb   rc   __init__-  s    zthrow_error.__init__c             C   s#   d | |  j  f } t |   d  S)Nz

  var = %s
  Message: %s
)r   r   )r   re   r   rb   rb   rc   __call__0  s    zthrow_error.__call__N)r   r   r   r   r   rb   rb   rb   rc   rZ   +  s   c              G   sk   d g  } } x> t  t |    D]* } d | | | f } | j d |  q  Wt d | d j |  f  S)Nzlambda vz%s,f%d=f[%d]zf%d(v)z%s:%sz and )rangelenappendevaljoin)fll2irb   rb   rc   rS   5  s
    c              G   sk   d g  } } x> t  t |    D]* } d | | | f } | j d |  q  Wt d | d j |  f  S)Nzlambda vz%s,f%d=f[%d]zf%d(v)z%s:%sz or )r   r   r   r   r   )r   r   r   r   rb   rb   rc   rU   =  s
    c             C   s
   t  d  S)Nzlambda v,f=f:not f(v))r   )r   rb   rb   rc   rT   E  s    c             C   s3   y |  d d d k SWn t  k
 r. d SYn Xd  S)Nr   fortranname r   )rt   )r   rb   rb   rc   r%   I  s    c             C   se   yB |  d d } | d k r# t   | sA t d |  d  t   Wn t  k
 r` |  d } Yn X| S)Nr   r   r   z"Failed to use fortranname from %s
r   )rt   r   )r   r   rb   rb   rc   r   P  s    
c             C   sS  y |  d j  |  } Wn t k
 r/ d  SYn X| s: d  S| d k rY t | t  rY d  St | t  r | t |  k r~ d  S| | } | d  d  d k rO| r d | d t |  d | d d   } n | d d   } | d d   d k r5| r"| d  d  d t |  d	 } qO| d  d  } n t d
 | t |  f  | S)Nr   r      z'''z
	/* start z multiline (z) */
z
	/* end multiline (z)*/z-%s multiline block should end with `'''`: %s
r   r   )r]   rt   
isinstancestrlistr   reprr   )r   Z	blocknamecommentcounterrrb   rb   rc   getmultilineblock^  s.    	
-%r   c             C   s   t  |  d  S)NZcallstatement)r   )r   rb   rb   rc   r   |  s    c       
      C   sn  t  |  d d d } | r | St |   r9 t d  d  Sd d l m } g  g  } } t t t t   |   r | j	 d d g  x |  d	 D] } |  d
 | } t
 |  r q | | k r | | d } nk | |  } t t t t t   |  r n t |  rn
 | d } t |  s-t |  r:| j d  | j |  q Wd j | |  }	 |	 sjd }	 |	 S)NZcallprotoargumentr   r   z<warning: callstatement is defined without callprotoargument
r   )getctypezchar*Zsize_tr   r   Z_typedefrr   ,void)r   r   rV   Z	capi_mapsr   rS   rH   rT   r(   extendr-   r,   rU   rD   r    rF   r   r   r   )
r   Zcb_mapr   r   Z	arg_typesZ
arg_types2nre   ctypeZ
proto_argsrb   rb   rc   r     s<    
c             C   s   t  |  d  S)Nusercode)r   )r   rb   rb   rc   r     s    c             C   s   t  |  d d d S)Nr   r   r   )r   )r   rb   rb   rc   r     s    c             C   s   t  |  d  S)NZpymethoddef)r   )r   rb   rb   rc   r     s    c             C   s   g  g  } } d |  k r |  d } d |  k r x+ |  d D] } | | k r: | j  |  q: Wx4 | D] } | | k rd | j  |  qd Wn
 |  d } | | f S)Nr   sortvars)r   )r   sortargsr   r   rb   rb   rc   getargs  s    

r   c                s   g   j  d g   }      f d d    d j   D } |     d  k r x+  d D] } |   k r` | j |  q` Wx8   D] } | | k r | j |  q Wn |  d }   | f S)Nr   c                s6   g  |  ], } t   d  |  r |   k r |  q S)r   )r+   ).0r   )r   r   rb   rc   
<listcomp>  s   	 zgetargs2.<locals>.<listcomp>r   r   )r]   keysr   )r   r   Zauxvarsr   rb   )r   r   rc   r     s    &
c             C   sN   d |  k r d  Sd  } |  d d k r: |  d |  d f } |  d j  | d   S)NZf2pymultilinesr   zpython moduler   )r]   )r   krb   rb   rc   r     s    c             C   s1   d t  |   d d } d | d |  | d f S)NP         z/*%s %s %s*/rr   )r   )r   r   rb   rb   rc   r     s    c             C   s/   t  |  t  r( t t d d  |  g   S|  g S)Nc             S   s   |  | |  S)Nrb   )xyr   rb   rb   rc   <lambda>  s    zflatlist.<locals>.<lambda>)r   r   r   flatlist)r   rb   rb   rc   r     s    r   c             C   s(   |  r$ |  d d k r$ |  d  d  S|  S)Nr   r   rk   rk   rb   )srb   rb   rc   rY     s    r   c                s  t    t  r)   f d d     D St   t  rR    f d d    D Sx d t   j    D] } | d k r~ qi d   k r |   d k r   d | } n  } t    | t  r  j d | | j t   |     qi  j d |   |   qi W S)Nc                s"   g  |  ] } t   |     q Srb   )rW   )r   _m)
defaultsepr   rb   rc   r     s   	 zreplace.<locals>.<listcomp>c                s"   g  |  ] } t  |      q Srb   )rW   )r   r   )r   r   rb   rc   r     s   	 r   separatorsforz#%s#)r   r   r   rW   r   r   )r   r   r   r   seprb   )r   r   r   rc   rW     s    ,c             C   s  t  | t  r3 x | D] } t |  |  }  q W|  SxP| j   D]B} | d d k rY q@ | |  k rtt  |  | t  r |  | g |  | <t  |  | t  r t  | | t  r |  | | | |  | <qq|  | j | |  qt  |  | t  rt  | | t  r| d k rVx\ | | j   D], } | |  | k r#| | | |  | | <q#Wqt |  | | |  |  | <q@ | | |  | <q@ W|  S)Nr   _r   )r   r   r   r   r   r   dict)Zrdarr   r   k1rb   rb   rc   r     s.    c             C   sh  i  } t  |  t  rX x< |  D]4 } t | | |  } t | |  } d | k r Pq W| Sd |  k ry |  d |  ry | Sd |  k r t d |  d i | |  } d | k r t j | d  x|  j   D]} | d k r |  | | | <q t  |  | t  rt |  | |  | | <nt  |  | t  rg  | | <x|  | D]? } t | | i | |  }	 | |	 k rC| | j	 |	 |  qCWn| d d k rq not  |  | t
  rg  | | <xO|  | j   D]"}
 t  |
 t j  r|
 |  rt  |  | |
 t  rx |  | |
 D]f } t  | t
  rct d | i | |  } d | k r]| d } n d	 } | | j	 t | |   qWq|  | |
 } t  | t
  rt d | i |  } d | k r| d } n d	 } | | j	 t | |   qWn t d
 t |  |   t  | | t  r t | |  d k rI| | d | | <| | g  k r | | =q W| S)N_break_checkZneedZneedsr   r   r   Z	supertextr   zapplyrules: ignoring rule %s.
r   )r   r   r	   r   r   Zappend_needsr   r   rW   r   r   typesFunctionTyper   r   r   )rulesr   re   retr   Zrrresr   r   r   r   rb   rb   rc   r	     sl    

!!)__doc__
__future__r   r   r   pprintr^   r   	functoolsr   r   r   r   __all__versionZf2py_versionstderrr`   r   rX   r\   rd   r   rV   r
   rh   rF   ri   rG   r   r   rD   r    r7   r*   rq   ru   r<   rM   rQ   rL   rO   r$   r:   r9   r!   r)   rN   rR   rz   rP   r{   r}   r   rE   r   r   r?   r>   r'   r(   rI   rJ   r   rC   r8   r=   r;   r"   r#   rH   r   rK   r   r@   r&   rB   r1   r2   r5   r0   r4   r,   r   r.   r6   r-   r3   r+   r   r   r   r/   rA   r   r   r   r   r   r   r   r   r   r   r   	Exceptionr   objectrZ   rS   rU   rT   r%   r   r   r   r   r   r   r   r   r   r   r   r   rY   rW   r   r	   rb   rb   rb   rc   <module>   s$  							


$	