ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
i f#                 @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z e j d k rf d d   Z d d   Z d d   Z n  e j d	 k r d
 d   Z n  e j d k r e  j d k r d  d l	 m
 Z d d   Z n e j d k rd  d l Z d  d l Z d d   Z e  j d k rd d   Z n d d   Z e  j j d%  rKd d   Z d d   Z qe  j d k rxd d   Z d d d  Z qd d    Z d! d   Z n  d" d#   Z e d$ k re   n  d S)&    Nntc              C   s   d }  t  j j |   } | d
 k r( d S| t |   } t  j | d  j d d  \ } } t | d d   d } t | d d   d } | d k r d	 } n  | d k r | | Sd S)zReturn the version of MSVC that was used to build Python.

        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        zMSC v.      N       g      $@r   )sysversionfindlensplitint)prefixisrestZmajorVersionZminorVersion r   0/opt/alt/python34/lib64/python3.4/ctypes/util.py_get_build_version   s    %	r   c              C   so   t    }  |  d k r d S|  d k r. d } n d |  d } d d l } d | j j k rg | d 7} n  | d	 S)
z%Return the name of the VC runtime dllNr   msvcrtzmsvcr%d
   r   z_d.pyddz.dll)r   importlib.machinery	machineryEXTENSION_SUFFIXES)r   Zclibname	importlibr   r   r   find_msvcrt   s    		r   c             C   s   |  d k r t    Sx t j d j t j  D]l } t j j | |   } t j j |  r^ | S| j   j	 d  ry q- n  | d } t j j |  r- | Sq- Wd  S)NcmPATHz.dll)r   r    )
r   osenvironr   pathseppathjoinisfilelowerendswith)nameZ	directoryZfnamer   r   r   find_library0   s     
r+   Zcec             C   s   |  S)Nr   )r*   r   r   r   r+   F   s    posixdarwin)	dyld_findc             C   s\   d |  d |  d |  |  f g } x4 | D], }  y t  |   SWq( t k
 rS w( Yq( Xq( Wd  S)Nzlib%s.dylibz%s.dylibz%s.framework/%s)
_dyld_find
ValueError)r*   Zpossibler   r   r   r+   K   s    c       	      C   s   d t  j |   } t j   \ } } t j |  d | d |  } z3 t j |  } z | j   } Wd  | j   } XWd  y t j |  Wn t	 k
 r Yn XX| d k r t
 d   n  t  j | |  } | s d  S| j d  S)Nz[^\(\)\s]*lib%s\.[^\(\)\s]*zif type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit 10; fi;LANG=C LC_ALL=C $CC -Wl,-t -o z 2>&1 -lr   zgcc or cc command not foundr   )reescapetempfileZmkstempr"   closepopenreadunlinkFileNotFoundErrorOSErrorsearchgroup)	r*   exprZfdoutZccoutcmdfZtracervresr   r   r   _findLib_gccZ   s&    rA   Zsunos5c          	   C   sj   |  s
 d  Sd |  } t  j t j |    }  |  j   } Wd  QXt j d |  } | s] d  S| j d  S)Nz#/usr/ccs/bin/dump -Lpv 2>/dev/null z\[.*\]\sSONAME\s+([^\s]+)r   )
contextlibclosingr"   r5   r6   r1   r:   r;   )r>   r=   datar@   r   r   r   _get_sonameu   s    
rE   c             C   s   |  s
 d  Sd |  } t  j |  }  z |  j   } Wd  |  j   } X| d k r^ t d   n  t j d |  } | sz d  S| j d  S)NzWif ! type objdump >/dev/null 2>&1; then exit 10; fi;objdump -p -j .dynamic 2>/dev/null r   zobjdump command not foundz\sSONAME\s+([^\s]+)r   )r"   r5   r6   r4   r9   r1   r:   r;   )r>   r=   dumpr?   r@   r   r   r   rE      s    freebsdopenbsd	dragonflyc             C   sg   |  j  d  } g  } y- x& | r@ | j d t | j     q WWn t k
 rV Yn X| pf t j g S)N.r   )r   insertr   popr0   r
   maxsize)ZlibnamepartsZnumsr   r   r   _num_version   s    	$rO   c          	   C   s   t  j |   } d | | f } t j t j d    } | j   } Wd  QXt  j | |  } | st t t	 |    S| j
 d t  | d S)Nz:-l%s\.\S+ => \S*/(lib%s\.\S+)z/sbin/ldconfig -r 2>/dev/nullkeyr   r   )r1   r2   rB   rC   r"   r5   r6   findallrE   rA   sortrO   )r*   Zenamer<   r>   rD   r@   r   r   r   r+      s    c             C   s   t  j j d  s d  S| r% d } n d } t j t  j |   L } xB | j   D]4 } | j   } | j d  rS | j	   d } qS qS WWd  QX| s d  SxF | j	 d  D]5 } t  j j
 | d |   } t  j j |  r | Sq Wd  S)Nz/usr/bin/crlez*env LC_ALL=C /usr/bin/crle -64 2>/dev/nullz&env LC_ALL=C /usr/bin/crle 2>/dev/nullzDefault Library Path (ELF):   :zlib%s.so)r"   r%   existsrB   rC   r5   	readlinesstrip
startswithr   r&   )r*   is64r=   r>   linepathsdirZlibfiler   r   r   _findLib_crle   s"    	r]   Fc             C   s   t  t |  |  p t |    S)N)rE   r]   rA   )r*   rY   r   r   r   r+      s    c             C   sH  d d  l  } | j d  d k r7 t j   j d } n t j   j d } i d d 6d d	 6d d
 6d d 6d d 6} | j | d  } t j d t j |   | f  } y t	 j
 d d g d t	 j d t	 j d t	 j d i d d 6d d 6> } t j | | j j    } | r(t j | j d   SWd  QXWn t k
 rCYn Xd  S)Nr   lrS   z-32z-64zlibc6,x86-64z	x86_64-64zlibc6,64bitzppc64-64z
sparc64-64zs390x-64zlibc6,IA-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%sz/sbin/ldconfigz-pstdinstderrstdoutenvCLC_ALLZLANGr   )structZcalcsizer"   unamemachinegetfsencoder1   r2   
subprocessPopenZDEVNULLPIPEr:   ra   r6   fsdecoder;   r9   )r*   re   rg   Zmach_mapZabi_typeZregexpr@   r   r   r   _findSoname_ldconfig   s0    
			 ro   c             C   s   t  |   p t t |    S)N)ro   rE   rA   )r*   r   r   r   r+      s    c              C   s,  d d l  m }  t j d k rR t |  j  t |  j d   t t d   n  t j d k r(t t d   t t d   t t d   t j	 d	 k r t |  j
 d
   t |  j
 d   t |  j
 d   t |  j
 d   q(t |  j
 d   t |  j
 d   t t d   n  d  S)Nr   )cdllr   r   r,   r    r   bz2r-   z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemzlibm.sozlibcrypt.soZcrypt)Zctypesrp   r"   r*   printr   loadr+   r
   platformZLoadLibrary)rp   r   r   r   test   s"    ru   __main__)rG   rH   rI   )r
   r"   rB   rj   r*   r   r   r+   rt   Zctypes.macholib.dyldr.   r/   r1   r3   rA   rE   rX   rO   r]   ro   ru   __name__r   r   r   r   <module>   s8   