£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    `                 @   s   d dl Z d dlZd dlZd dlmZ yd dlmZ W n  ek
rT   d dlmZ Y nX dddgZG dd de	Z
ejd	krd
d Zndd ZdddZdddZdd Zdd Zdd adddZdddZdS )    N)partial)	monotonic)timeNoWayToWaitForSocketErrorwait_for_readwait_for_writec               @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   B/opt/alt/python37/lib/python3.7/site-packages/urllib3/util/wait.pyr      s   )      c             C   s   | |S )Nr   )fntimeoutr   r   r   _retry_on_intr*   s    r   c          
   C   s   |d krt d}n
t | }xry| |S  ttjfk
r } z@|jd tjkrR n(|t  }|dk rhd}|t dkrxd }wW d d }~X Y qX qW d S )Ninfr   )floatr   OSErrorselecterrorargserrnoZEINTR)r   r   Zdeadlineer   r   r   r   0   s    


Fc       
      C   sd   |s|st dg }g }|r&||  |r4||  ttj|||}t||\}}}	t|p`|p`|	S )Nz2must specify at least one of read=True, write=True)RuntimeErrorappendr   r   r   bool)
sockreadwriter   ZrcheckZwcheckr   ZrreadyZwreadyZxreadyr   r   r   select_wait_for_socketG   s    

r    c                s^   |s|st dd}|r"|tjO }|r0|tjO }t   | |  fdd}tt||S )Nz2must specify at least one of read=True, write=Truer   c                s   | d k	r| d9 }   | S )Ni  )poll)t)poll_objr   r   do_pollf   s    z%poll_wait_for_socket.<locals>.do_poll)r   r   POLLINPOLLOUTr!   registerr   r   )r   r   r   r   maskr$   r   )r#   r   poll_wait_for_socketZ   s    

r)   c              O   s   t dd S )Nzno select-equivalent available)r   )r   kwargsr   r   r   null_wait_for_socketn   s    r+   c           	   C   s:   yt  } t| jd W n ttfk
r0   dS X dS d S )Nr   FT)r   r!   r   AttributeErrorr   )r#   r   r   r   _have_working_pollr   s    r-   c              O   s*   t  rtanttdrtantat| |S )Nr   )r-   r)   wait_for_sockethasattrr   r    r+   )r   r*   r   r   r   r.      s    
r.   c             C   s   t | d|dS )zWaits for reading to be available on a given socket.
    Returns True if the socket is readable, or False if the timeout expired.
    T)r   r   )r.   )r   r   r   r   r   r      s    c             C   s   t | d|dS )zWaits for writing to be available on a given socket.
    Returns True if the socket is readable, or False if the timeout expired.
    T)r   r   )r.   )r   r   r   r   r   r      s    )FFN)FFN)N)N)r   r   sys	functoolsr   r   r   ImportError__all__	Exceptionr   version_infor   r    r)   r+   r-   r.   r   r   r   r   r   r   <module>   s&   





