ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
V~gc           @   s  d  d d g Z  d d l Z d d l Z d d l Z 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
 m Z d d l m Z m Z m Z m Z d d l m Z m Z d Z d	 Z d
 Z e j   Z d Z d g Z e e d  rd Z e d g 7Z n  e j d k r4d Z e d g 7Z n  e d  Z d   Z d   Z d   Z  d e! f d     YZ" d d d  Z$ e j d k re% d  Z& n d d l m' Z' e% d  Z& d e! f d     YZ( d   Z) e j d k r
d e! f d     YZ* d   Z+ n  d Z, d Z- d  Z. d! Z/ d"   Z0 d#   Z1 d$   Z2 d% e! f d&     YZ3 d'   Z4 d(   Z5 d) e" f d*     YZ6 d+   Z7 d S(,   t   Clientt   Listenert   PipeiN(   t   current_processt   AuthenticationError(   t   get_temp_dirt   Finalizet	   sub_debugt   debug(   t	   duplicatet   closei    g      4@t   sha256t   AF_INETt   AF_UNIXt   win32t   AF_PIPEc         C   s   t  j    |  S(   N(   t   time(   t   timeout(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   _init_timeoutM   s    c         C   s   t  j    |  k S(   N(   R   (   t   t(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   _check_timeoutP   s    c         C   s}   |  d k r d S|  d k r5 t  j d d d t    S|  d k rm t  j d d	 t j   t j   f d d
  St d   d S(   s?   
    Return an arbitrary free address for the given family
    R   t	   localhosti    R   t   prefixs	   listener-t   dirR   s   \\.\pipe\pyc-%d-%d-t    s   unrecognized familyN(   R   i    (   t   tempfilet   mktempR   t   ost   getpidt   _mmap_countert   nextt
   ValueError(   t   family(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   arbitrary_addressW   s     c         C   se   t  |   t k r d St  |   t k r; |  j d  r; d St  |   t k rQ d St d |    d S(   s]   
    Return the types of the address

    This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE'
    R   s   \\R   R   s   address type of %r unrecognizedN(   t   typet   tuplet   strt
   startswithR   (   t   address(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   address_typef   s    !c           B   sS   e  Z d  Z d d d d d  Z d   Z d   Z e d    Z e d    Z	 RS(   s   
    Returns a listener object.

    This is a wrapper for a bound socket which is 'listening' for
    connections, or for a Windows named pipe.
    i   c         C   s   | p | r t  |  p t } | p- t |  } | d k rQ t | |  |  _ n t | | |  |  _ | d  k	 r t | t  r t	 d  n  | |  _
 d  S(   NR   s   authkey should be a byte string(   R'   t   default_familyR!   t   PipeListenert	   _listenert   SocketListenert   Nonet
   isinstancet   bytest	   TypeErrort   _authkey(   t   selfR&   R    t   backlogt   authkey(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   __init__   s    c         C   s?   |  j  j   } |  j r; t | |  j  t | |  j  n  | S(   sz   
        Accept a connection on the bound socket or named pipe of `self`.

        Returns a `Connection` object.
        (   R*   t   acceptR0   t   deliver_challenget   answer_challenge(   R1   t   c(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR5      s
    	c         C   s   |  j  j   S(   sA   
        Close the bound socket or named pipe of `self`.
        (   R*   R
   (   R1   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR
      s    c         C   s
   |  j  j S(   N(   R*   t   _address(   R1   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   <lambda>   R   c         C   s
   |  j  j S(   N(   R*   t   _last_accepted(   R1   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR:      R   N(
   t   __name__t
   __module__t   __doc__R,   R4   R5   R
   t   propertyR&   t   last_accepted(    (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR   y   s   		c         C   s   | p t  |   } | d k r- t |   } n t |   } | d k	 ra t | t  ra t d  n  | d k	 r t | |  t | |  n  | S(   s=   
    Returns a connection to the address of a `Listener`
    R   s   authkey should be a byte stringN(	   R'   t
   PipeClientt   SocketClientR,   R-   R.   R/   R7   R6   (   R&   R    R3   R8   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR       s    c         C   s   |  r t  j   \ } } | j t  | j t  t j t j | j     } t j t j | j     } | j	   | j	   n< t j
   \ } } t j | d t } t j | d t } | | f S(   sL   
        Returns pair of connection objects at either end of a pipe
        t   writablet   readable(   t   sockett
   socketpairt   setblockingt   Truet   _multiprocessingt
   ConnectionR   t   dupt   filenoR
   t   pipet   False(   t   duplext   s1t   s2t   c1t   c2t   fd1t   fd2(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR      s    
(   R   c      	   C   sU  t  d  } |  r; t j } t j t j B} t t } } n t j } t j } d t } } t j | | t j t j	 Bt j
 Bd | | t j t j  } t j | | d t j t j d t j  } t j | t j	 d d  y t j | t j  Wn/ t k
 r } | j d t j k r!  q!n Xt j | d |  }	 t j | d |  }
 |	 |
 f S(   sL   
        Returns pair of connection objects at either end of a pipe
        R   i    i   RC   RD   N(   R!   R   t   PIPE_ACCESS_DUPLEXt   GENERIC_READt   GENERIC_WRITEt   BUFSIZEt   PIPE_ACCESS_INBOUNDt   CreateNamedPipet   PIPE_TYPE_MESSAGEt   PIPE_READMODE_MESSAGEt	   PIPE_WAITt   NMPWAIT_WAIT_FOREVERt   NULLt
   CreateFilet   OPEN_EXISTINGt   SetNamedPipeHandleStateR,   t   ConnectNamedPipet   WindowsErrort   argst   ERROR_PIPE_CONNECTEDRI   t   PipeConnection(   RO   R&   t   openmodet   accesst   obsizet   ibsizet   h1t   h2t   eRR   RS   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR      s2    			$
R+   c           B   s,   e  Z d  Z d d  Z d   Z d   Z RS(   sO   
    Representation of a socket which is bound to an address and listening
    i   c         C   s   t  j  t t  |   |  _ yb |  j j t  j t  j d  |  j j t  |  j j |  |  j j	 |  |  j j
   |  _ Wn$ t  j k
 r |  j j     n X| |  _ d  |  _ | d k r t |  t j d | f d d |  _ n	 d  |  _ d  S(   Ni   R   Rf   t   exitpriorityi    (   RE   t   getattrt   _sockett
   setsockoptt
   SOL_SOCKETt   SO_REUSEADDRRG   RH   t   bindt   listent   getsocknameR9   t   errorR
   t   _familyR,   R;   R   R   t   unlinkt   _unlink(   R1   R&   R    R2   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR4      s     		$c         C   s   x\ t  r^ y |  j j   \ } |  _ Wn2 t j k
 rY } | j d t j k r[   q[ q XPq W| j	 t   t
 | j    } t j |  } | j   | S(   Ni    (   RH   Rr   R5   R;   RE   Ry   Rf   t   errnot   EINTRRG   R	   RL   RI   RJ   R
   (   R1   t   sRo   t   fdt   conn(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR5     s    	

c         C   sA   z |  j  j   Wd  |  j } | d  k	 r< d  |  _ |   n  Xd  S(   N(   Rr   R
   R|   R,   (   R1   R{   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR
   #  s    		(   R<   R=   R>   R4   R5   R
   (    (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR+      s   	c         C   s   t  t t |    } t   } x t j |  } | j t  y | j |   Wnb t j k
 r } | j   | j	 d t
 j k s t |  r t d |     n  t j d  q! XPq! W  t | j    } t j |  } | j   | S(   sO   
    Return a connection object connected to the socket given by `address`
    i    s   failed to connect to address %sg{Gz?(   Rq   RE   R'   R   RG   RH   t   connectRy   R
   Rf   R}   t   ECONNREFUSEDR   R   R   t   sleepR	   RL   RI   RJ   (   R&   R    R   R   Ro   R   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyRB   -  s&    	
"
R)   c           B   s2   e  Z d  Z d d  Z d   Z e d    Z RS(   s0   
        Representation of a named pipe
        c      	   C   s   | |  _  t j | t j t j t j Bt j Bt j t t t j	 t j
  } | g |  _ d  |  _ t d |  j   t |  t j d |  j |  j  f d d |  _ d  S(   Ns    listener created with address=%rRf   Rp   i    (   R9   R   R[   RV   R\   R]   R^   t   PIPE_UNLIMITED_INSTANCESRY   R_   R`   t   _handle_queueR,   R;   R   R   R)   t   _finalize_pipe_listenerR
   (   R1   R&   R2   t   handle(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR4   S  s    			c      	   C   s   t  j |  j t  j t  j t  j Bt  j Bt  j t t t  j	 t  j
  } |  j j |  |  j j d  } y t  j | t  j
  Wn8 t k
 r } | j d t  j t  j f k r   q n Xt j |  S(   Ni    (   R   R[   R9   RV   R\   R]   R^   R   RY   R_   R`   R   t   appendt   popRd   Re   Rf   Rg   t   ERROR_NO_DATARI   Rh   (   R1   t	   newhandleR   Ro   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR5   f  s    
c         C   s,   t  d |  x |  D] } t |  q Wd  S(   Ns    closing listener with address=%r(   R   R
   (   t   queueR&   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR   z  s    N(   R<   R=   R>   R,   R4   R5   t   staticmethodR   (    (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR)   O  s   	c         C   s   t    } x yH t j |  d  t j |  t j t j Bd t j t j d t j  } WnD t k
 r } | j	 d t j
 t j f k s t |  r   q q XPq W  t j | t j d d  t j |  S(   sU   
        Return a connection object connected to the pipe given by `address`
        i  i    N(   R   R   t   WaitNamedPipeRa   RW   RX   R`   Rb   Re   Rf   t   ERROR_SEM_TIMEOUTt   ERROR_PIPE_BUSYR   Rc   R]   R,   RI   Rh   (   R&   R   t   hRo   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyRA     s     	"
i   s   #CHALLENGE#s	   #WELCOME#s	   #FAILURE#c          C   s   d d  l  }  t |  t  S(   Ni(   t   hashlibRq   t   HMAC_DIGEST_NAME(   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   get_digestmod_for_hmac  s    c         C   s   d d  l  } t | t  s! t  t j t  } |  j t |  | j	 | | t
    j   } |  j d  } | | k r |  j t  n |  j t  t d   d  S(   Nii   s   digest received was wrong(   t   hmacR-   R.   t   AssertionErrorR   t   urandomt   MESSAGE_LENGTHt
   send_bytest	   CHALLENGEt   newR   t   digestt
   recv_bytest   WELCOMEt   FAILURER   (   t
   connectionR3   R   t   messageR   t   response(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR6     s    c         C   s   d d  l  } t | t  s! t  |  j d  } | t t   t k sV t d |   | t t  } | j | | t    j	   } |  j
 |  |  j d  } | t k r t d   n  d  S(   Nii   s   message = %rs   digest sent was rejected(   R   R-   R.   R   R   t   lenR   R   R   R   R   R   R   (   R   R3   R   R   R   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR7     s    &t   ConnectionWrapperc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   sO   | |  _  | |  _ | |  _ x- d D]% } t | |  } t |  | |  q" Wd  S(   NRL   R
   t   pollR   R   (   RL   R
   R   R   R   (   t   _connt   _dumpst   _loadsRq   t   setattr(   R1   R   t   dumpst   loadst   attrt   obj(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR4     s    			c         C   s#   |  j  |  } |  j j |  d  S(   N(   R   R   R   (   R1   R   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   send  s    c         C   s   |  j  j   } |  j |  S(   N(   R   R   R   (   R1   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   recv  s    (   R<   R=   R4   R   R   (    (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR     s   		c         C   s   t  j |  f d  d  d  d  S(   Ni   (   t	   xmlrpclibR   R,   (   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt
   _xml_dumps  s    c         C   s   t  j |   \ \ } } | S(   N(   R   R   (   R   R   t   method(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt
   _xml_loads  s    t   XmlListenerc           B   s   e  Z d    Z RS(   c         C   s+   d d  l  a  t j |   } t | t t  S(   Ni(   R   R   R5   R   R   R   (   R1   R   (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR5     s    (   R<   R=   R5   (    (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyR     s   c          O   s%   d d  l  a  t t |  |   t t  S(   Ni(   R   R   R    R   R   (   Rf   t   kwds(    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt	   XmlClient  s    (8   t   __all__R   t   sysRE   R}   R   R   t	   itertoolsRI   t   multiprocessingR   R   t   multiprocessing.utilR   R   R   R   t   multiprocessing.forkingR	   R
   RY   t   CONNECTION_TIMEOUTR   t   countR   R(   t   familiest   hasattrt   platformR   R   R!   R'   t   objectR   R,   R    RH   R   R   R+   RB   R)   RA   R   R   R   R   R   R6   R7   R   R   R   R   R   (    (    (    s?   /opt/alt/python27/lib64/python2.7/multiprocessing/connection.pyt   <module>#   sd   "				,*2	 1					