???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d«‰  ã                   @   s  d dl Z d dl T d dlZd dlZd dlZd dlZd dlmZmZ zd dlZW n e	k
rd   dZY nX e
eddƒZe
eddƒZe
eddƒZd	d
dddddgZe e e ¡¡ e dedd„ ¡ e dedd„ ¡ e dedd„ ¡ e dedd„ ¡ dZdZdd„ ZeZej ¡  d¡r i Zded< ded< d ed!< d"ed#< d$ed%< d&ed'< d(ed)< d*ed+< d,ed-< d.ed/< d0ed1< d2ed3< d4ed5< d6ed7< d8ed9< d:ed;< d<ed=< d>ed?< d@edA< dBedC< dDedE< dFedG< dHedI< dJedK< dLedM< dNedO< dPedQ< dRedS< dTedU< dVedW< dXedY< dZed[< d\ed]< d^ed_< d`eda< dbedc< ddede< dfedg< dhedi< djedk< dledm< dnedo< dpedq< dreds< dtedu< dvedw< dxedy< dzed{< d|ed}< d~ed< d€ed< d‚edƒ< d„ed…< d†ed‡< dˆed‰< dŠed‹< dŒed< dŽed< ded‘< d’ed“< d”ed•< d†ed–< d—ed˜< d™edš< d›edœ< dedž< dŸed < d¡ed¢< d£ed¤< d¥ed¦< d§ed¨< d©edª< d«ed¬< d­ed®< d¯ed°< d±ed²< d³ed´< dµed¶< d·ed¸< d¹edº< d»ed¼< d½ed¾< d¿edÀ< d¿edÁ< dÂedÃ< dÄedÅ< dÆedÇ< dÈedÉ< dÊedË< dÌedÍ< dÎedÏ< dÐedÑ< dÒedÓ< dÔedÕ< dÖed×< e dØ¡ G dÙdÚ„ dÚeƒZG dÛdÜ„ dÜe jƒZdðdÝd	„Ze e jdÞƒrldßdà„ Z!e dà¡ e e dáƒrŠde"d fdâdá„Z#ne$e"d fdãdá„Z#e dá¡ däe#_%eehZ&G dådæ„ dæej'ƒZ(dñdèd
„Z)e*ƒ Z+e+dfdéd„Z,dêd„ Z-e$ddëdëdìœdíd„Z.dòdîdï„Z/dS )óé    N)Ú*)ÚIntEnumÚIntFlagÚEBADFé	   ÚEAGAINé   ÚEWOULDBLOCKÚfromfdÚgetfqdnÚcreate_connectionÚcreate_serverÚhas_dualstack_ipv6ÚAddressFamilyÚ
SocketKindc                 C   s   |   ¡ o|  d¡S )NZAF_©ÚisupperÚ
startswith©ÚC© r   ú/usr/lib64/python3.8/socket.pyÚ<lambda>L   ó    r   c                 C   s   |   ¡ o|  d¡S )NZSOCK_r   r   r   r   r   r   Q   r   ZMsgFlagc                 C   s   |   ¡ o|  d¡S )NZMSG_r   r   r   r   r   r   V   r   ZAddressInfoc                 C   s   |   ¡ o|  d¡S )NZAI_r   r   r   r   r   r   [   r   z	127.0.0.1z::1c                 C   s(   z
|| ƒW S  t k
r"   |  Y S X d S ©N)Ú
ValueError)ÚvalueZ
enum_klassr   r   r   Ú_intenum_convertera   s    
r   Úwinz)Specified event object handle is invalid.é   zInsufficient memory available.é   z#One or more parameters are invalid.éW   zOverlapped operation aborted.iã  z2Overlapped I/O event object not in signaled state.iä  z)Overlapped operation will complete later.iå  zThe operation was interrupted.i'  zA bad file handle was passed.i'  zPermission denied.i'  z!A fault occurred on the network??i'  z#An invalid operation was attempted.i&'  zToo many open files.i('  z The socket operation would blocki3'  z,A blocking operation is already in progress.i4'  zOperation already in progress.i5'  zSocket operation on nonsocket.i6'  zDestination address required.i7'  zMessage too long.i8'  zProtocol wrong type for socket.i9'  zBad protocol option.i:'  zProtocol not supported.i;'  zSocket type not supported.i<'  zOperation not supported.i='  zProtocol family not supported.i>'  z0Address family not supported by protocol family.i?'  zThe network address is in use.i@'  z Cannot assign requested address.iA'  zNetwork is down.iB'  zNetwork is unreachable.iC'  z$Network dropped connection on reset.iD'  z!Software caused connection abort.iE'  zThe connection has been reset.iF'  zNo buffer space available.iG'  zSocket is already connected.iH'  zSocket is not connected.iI'  zThe network has been shut down.iJ'  zToo many references.iK'  zThe operation timed out.iL'  zConnection refused.iM'  zCannot translate name.iN'  zThe name is too long.iO'  zThe host is down.iP'  zThe host is unreachable.iQ'  zDirectory not empty.iR'  zToo many processes.iS'  zUser quota exceeded.iT'  zDisk quota exceeded.iU'  zStale file handle reference.iV'  zItem is remote.iW'  z!Network subsystem is unavailable.ik'  z!Winsock.dll version out of range.il'  z(Successful WSAStartup not yet performed.im'  zGraceful shutdown in progress.iu'  z*No more results from WSALookupServiceNext.iv'  zCall has been canceled.iw'  z Procedure call table is invalid.ix'  zService provider is invalid.iy'  z&Service provider failed to initialize.iz'  zSystem call failure.i{'  zService not found.i|'  zClass type not found.i}'  i~'  zCall was canceled.i'  zDatabase query was refused.i€'  zHost not found.iù*  z Nonauthoritative host not found.iú*  zThis is a nonrecoverable error.iû*  z*Valid name, no data record requested type.iü*  zQoS receivers.iý*  zQoS senders.iþ*  zNo QoS senders.iÿ*  zQoS no receivers.i +  zQoS request confirmed.i+  zQoS admission error.i+  zQoS policy failure.i+  zQoS bad style.i+  zQoS bad object.i+  zQoS traffic control error.i+  zQoS generic error.i+  zQoS service type error.i+  zQoS flowspec error.i	+  zInvalid QoS provider buffer.i
+  zInvalid QoS filter style.i+  i+  zIncorrect QoS filter count.i+  zInvalid QoS object length.i+  zIncorrect QoS flow count.i+  zUnrecognized QoS object.i+  zInvalid QoS policy object.i+  zInvalid QoS flow descriptor.i+  z'Invalid QoS provider-specific flowspec.i+  z)Invalid QoS provider-specific filterspec.i+  z&Invalid QoS shape discard mode object.i+  z Invalid QoS shaping rate object.i+  z!Reserved policy QoS element type.i+  ÚerrorTabc                   @   s   e Zd ZdS )Ú_GiveupOnSendfileN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r#   Ò   s    r#   c                       s(  e Zd ZdddgZd8dd„Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
d9ddddœdd„Zeedƒrvd:dd„Zn
d;dd„Zd<dd„Zdd „ Zd=d!d"„Zd#d$„ Zejfd%d&„Zd'd(„ Z‡ fd)d*„Ze‡ fd+d,„ƒZe‡ fd-d.„ƒZejd/krd0d1„ Zd2d3„ Znd4d1„ Zd5d3„ Zd6e_d7e_‡  ZS )>ÚsocketÚ__weakref__Ú_io_refsÚ_closedéÿÿÿÿNc                 C   sP   |d kr,|dkrt }|dkr t}|dkr,d}tj | ||||¡ d| _d| _d S )Nr+   r   F)ÚAF_INETÚSOCK_STREAMÚ_socketr'   Ú__init__r)   r*   )ÚselfÚfamilyÚtypeÚprotoÚfilenor   r   r   r/   Û   s    zsocket.__init__c                 C   s   | S r   r   ©r0   r   r   r   Ú	__enter__ë   s    zsocket.__enter__c                 G   s   | j s|  ¡  d S r   )r*   Úclose)r0   Úargsr   r   r   Ú__exit__î   s    zsocket.__exit__c                 C   s¸   t | ddƒ}d| jj| jj|r"dnd|  ¡ | j| j| jf }|s¬z |  ¡ }|r^|dt	|ƒ 7 }W n t
k
rt   Y nX z |  ¡ }|r”|dt	|ƒ 7 }W n t
k
rª   Y nX |d7 }|S )	Nr*   Fz,<%s.%s%s fd=%i, family=%s, type=%s, proto=%iz	 [closed]Ú z
, laddr=%sz
, raddr=%sú>)ÚgetattrÚ	__class__r%   r&   r4   r1   r2   r3   ÚgetsocknameÚstrÚerrorZgetpeername)r0   ÚclosedÚsZladdrZraddrr   r   r   Ú__repr__ò   s4    
úÿzsocket.__repr__c                 C   s   t d| jj›dƒ‚d S )Nzcannot pickle z object)Ú	TypeErrorr=   r$   r5   r   r   r   Ú__getstate__  s    zsocket.__getstate__c                 C   s6   t |  ¡ ƒ}| j| j| j| j|d}| |  ¡ ¡ |S )N©r4   )Údupr4   r=   r1   r2   r3   Ú
settimeoutÚ
gettimeout)r0   ÚfdÚsockr   r   r   rG     s    z
socket.dupc                 C   sF   |   ¡ \}}t| j| j| j|d}tƒ d kr>|  ¡ r>| d¡ ||fS )NrF   T)Z_acceptr'   r1   r2   r3   ZgetdefaulttimeoutrI   Úsetblocking)r0   rJ   ÚaddrrK   r   r   r   Úaccept  s
    
zsocket.acceptÚr)ÚencodingÚerrorsÚnewlinec                C   sü   t |ƒdddhks td|f ƒ‚d|k}d|kp4| }d|k}d}	|rN|	d7 }	|rZ|	d7 }	t| |	ƒ}
|  jd7  _|d kr~d}|dk rŒtj}|dkr¤|s td	ƒ‚|
S |r¼|r¼t |
|
|¡}n|rÎt |
|¡}nt |
|¡}|râ|S t 	||||¡}||_
|S )
NrO   ÚwÚbz&invalid mode %r (only r, w, b allowed)r:   é   r+   r   z!unbuffered streams must be binary)Úsetr   ÚSocketIOr)   ÚioÚDEFAULT_BUFFER_SIZEÚBufferedRWPairÚBufferedReaderÚBufferedWriterÚTextIOWrapperÚmode)r0   r^   Ú	bufferingrP   rQ   rR   ZwritingZreadingZbinaryZrawmodeÚrawÚbufferÚtextr   r   r   Úmakefile-  s<    
zsocket.makefileÚsendfiler   c              
   C   sò  |   |||¡ |  ¡ }z| ¡ }W n0 ttjfk
rR } zt|ƒ‚W 5 d }~X Y nX zt |¡j}W n* t	k
rŽ } zt|ƒ‚W 5 d }~X Y nX |s˜dS t
|p |dƒ}|  ¡ }	|	dkr¾tdƒ‚ttdƒrÒt ¡ }
nt ¡ }
|
 |tj¡ d}|
j}tj}zÒ|	r||	ƒst d¡‚|r0|| }|dkr0qÄz|||||ƒ}W n` tk
rh   |	s`|ƒ  Y qúY qú t	k
r¢ } z|dkrŒt|ƒ‚|d ‚W 5 d }~X Y qúX |dkr²qÄ||7 }||7 }qú|W ¢S |dkrìt|dƒrì| |¡ X d S )Nr   i   @ú&non-blocking sockets are not supportedÚPollSelectorÚseekz	timed out)Ú_check_sendfile_paramsr4   ÚAttributeErrorrX   ÚUnsupportedOperationr#   ÚosÚfstatÚst_sizeÚOSErrorÚminrI   r   ÚhasattrÚ	selectorsrf   ZSelectSelectorÚregisterZEVENT_WRITEZselectrd   rg   r.   ÚtimeoutÚBlockingIOError)r0   ÚfileÚoffsetÚcountZsocknor4   ÚerrZfsizeÚ	blocksizers   ZselectorÚ
total_sentZselector_selectZos_sendfileÚsentr   r   r   Ú_sendfile_use_sendfileY  s^    






zsocket._sendfile_use_sendfilec                 C   s   t dƒ‚d S )Nz,os.sendfile() not available on this platform)r#   ©r0   ru   rv   rw   r   r   r   r|   š  s    ÿc           
   
   C   sþ   |   |||¡ |  ¡ dkr"tdƒ‚|r0| |¡ |r>t|dƒnd}d}|j}| j}z„|rpt|| |ƒ}|dkrpqÐt||ƒƒ}|s‚qÐz||ƒ}	W n t	k
r¦   Y q‚Y q‚X ||	7 }|	t
|ƒk rÎ||	d … }q‚qTq‚qT|W ¢S |dkrøt|dƒrø| || ¡ X d S )Nr   re   i    rg   )rh   rI   r   rg   ro   ÚreadÚsendrp   Ú
memoryviewrt   Úlen)
r0   ru   rv   rw   ry   rz   Z	file_readZ	sock_sendÚdatar{   r   r   r   Ú_sendfile_use_sendž  s8    

zsocket._sendfile_use_sendc                 C   sd   dt |ddƒkrtdƒ‚| jt@ s*tdƒ‚|d k	r`t|tƒsJtd |¡ƒ‚|dkr`td |¡ƒ‚d S )NrT   r^   z$file should be opened in binary modez+only SOCK_STREAM type sockets are supportedz+count must be a positive integer (got {!r})r   )r<   r   r2   r-   Ú
isinstanceÚintrD   Úformatr}   r   r   r   rh   Â  s    

ÿÿzsocket._check_sendfile_paramsc                 C   s8   z|   |||¡W S  tk
r2   |  |||¡ Y S X d S r   )r|   r#   rƒ   r}   r   r   r   rd   Ï  s    zsocket.sendfilec                 C   s*   | j dkr|  j d8  _ | jr&|  ¡  d S )Nr   rU   )r)   r*   r7   r5   r   r   r   Ú_decref_socketiosæ  s    
zsocket._decref_socketiosc                 C   s   |  | ¡ d S r   )r7   )r0   Z_ssr   r   r   Ú_real_closeì  s    zsocket._real_closec                 C   s   d| _ | jdkr|  ¡  d S )NTr   )r*   r)   rˆ   r5   r   r   r   r7   ð  s    
zsocket.closec                    s   d| _ tƒ  ¡ S )NT)r*   ÚsuperÚdetachr5   ©r=   r   r   rŠ   ö  s    zsocket.detachc                    s   t tƒ jtƒS r   )r   r‰   r1   r   r5   r‹   r   r   r1      s    zsocket.familyc                    s   t tƒ jtƒS r   )r   r‰   r2   r   r5   r‹   r   r   r2     s    zsocket.typeÚntc                 C   s   t  |  ¡ ¡S r   )rk   Zget_handle_inheritabler4   r5   r   r   r   Úget_inheritable  s    zsocket.get_inheritablec                 C   s   t  |  ¡ |¡ d S r   )rk   Zset_handle_inheritabler4   ©r0   Zinheritabler   r   r   Úset_inheritable  s    zsocket.set_inheritablec                 C   s   t  |  ¡ ¡S r   )rk   r   r4   r5   r   r   r   r     s    c                 C   s   t  |  ¡ |¡ d S r   )rk   r   r4   rŽ   r   r   r   r     s    z&Get the inheritable flag of the socketz&Set the inheritable flag of the socket)r+   r+   r+   N)rO   N)r   N)r   N)r   N)r   N) r$   r%   r&   Ú	__slots__r/   r6   r9   rC   rE   rG   rN   rc   rp   rk   r|   rƒ   rh   rd   r‡   r.   r'   rˆ   r7   rŠ   Úpropertyr1   r2   Únamer   r   Ú__doc__Ú__classcell__r   r   r‹   r   r'   Õ   sD   

  ÿ*
A

$


r'   c                 C   s   t | ƒ}t||||ƒS r   )rG   r'   )rJ   r1   r2   r3   Znfdr   r   r   r
     s    Zsharec                 C   s   t ddd| ƒS ©Nr   )r'   )Úinfor   r   r   Ú	fromshare#  s    r—   Ú
socketpairc                 C   sh   | d kr*zt } W n tk
r(   t} Y nX t | ||¡\}}t| ||| ¡ ƒ}t| ||| ¡ ƒ}||fS r   )ZAF_UNIXÚ	NameErrorr,   r.   r˜   r'   rŠ   )r1   r2   r3   ÚarT   r   r   r   r˜   .  s    
c           
   	   C   s  | t krt}n| tkrt}ntdƒ‚|tkr4tdƒ‚|dkrDtdƒ‚t| ||ƒ}z¢| |df¡ | 	¡  | 
¡ d d… \}}t| ||ƒ}zP| d¡ z| ||f¡ W n ttfk
r¾   Y nX | d¡ | ¡ \}}	W n   | ¡  ‚ Y nX W 5 | ¡  X ||fS )Nz?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedr   zOnly protocol zero is supportedé   FT)r,   Ú
_LOCALHOSTÚAF_INET6Ú_LOCALHOST_V6r   r-   r'   r7   ÚbindÚlistenr>   rL   Úconnectrt   ÚInterruptedErrorrN   )
r1   r2   r3   ÚhostZlsockrM   ÚportZcsockZssockÚ_r   r   r   r˜   C  s8    


a8  socketpair([family[, type[, proto]]]) -> (socket object, socket object)
Create a pair of socket objects from the sockets returned by the platform
socketpair() function.
The arguments are the same as for socket() except the default family is AF_UNIX
if defined on the platform; otherwise, the default is AF_INET.
c                       sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Z‡ fdd„Zdd„ Z	e
dd„ ƒZe
dd„ ƒZdd„ Z‡  ZS )rW   c                 C   sZ   |dkrt d| ƒ‚tj | ¡ || _d|kr6|d7 }|| _d|k| _d|k| _d| _d S )N)rO   rS   ZrwÚrbÚwbZrwbzinvalid mode: %rrT   rO   rS   F)	r   rX   Ú	RawIOBaser/   Ú_sockÚ_modeÚ_readingÚ_writingÚ_timeout_occurred)r0   rK   r^   r   r   r   r/   ƒ  s    

zSocketIO.__init__c              
   C   sŠ   |   ¡  |  ¡  | jrtdƒ‚z| j |¡W S  tk
rH   d| _‚ Y q tk
r‚ } z|jd t	krpW Y ¢
d S ‚ W 5 d }~X Y qX qd S )Nz!cannot read from timed out objectTr   )
Ú_checkClosedÚ_checkReadabler­   rn   r©   Z	recv_intors   r@   r8   Ú_blocking_errnos©r0   rT   Úer   r   r   Úreadinto  s    
zSocketIO.readintoc              
   C   s`   |   ¡  |  ¡  z| j |¡W S  tk
rZ } z|jd tkrHW Y ¢
d S ‚ W 5 d }~X Y nX d S r•   )r®   Ú_checkWritabler©   r   r@   r8   r°   r±   r   r   r   Úwrite¦  s    
zSocketIO.writec                 C   s   | j rtdƒ‚| jS ©NzI/O operation on closed socket.)rA   r   r«   r5   r   r   r   Úreadable¶  s    zSocketIO.readablec                 C   s   | j rtdƒ‚| jS r¶   )rA   r   r¬   r5   r   r   r   Úwritable½  s    zSocketIO.writablec                    s   | j rtdƒ‚tƒ  ¡ S r¶   )rA   r   r‰   Úseekabler5   r‹   r   r   r¹   Ä  s    zSocketIO.seekablec                 C   s   |   ¡  | j ¡ S r   )r®   r©   r4   r5   r   r   r   r4   Ë  s    zSocketIO.filenoc                 C   s   | j s|  ¡ S dS d S )Nr+   )rA   r4   r5   r   r   r   r’   Ñ  s    zSocketIO.namec                 C   s   | j S r   )rª   r5   r   r   r   r^   Ø  s    zSocketIO.modec                 C   s*   | j r
d S tj | ¡ | j ¡  d | _d S r   )rA   rX   r¨   r7   r©   r‡   r5   r   r   r   r7   Ü  s
    
zSocketIO.close)r$   r%   r&   r/   r³   rµ   r·   r¸   r¹   r4   r‘   r’   r^   r7   r”   r   r   r‹   r   rW   r  s   

rW   r:   c                 C   sl   |   ¡ } | r| dkrtƒ } zt| ƒ\}}}W n tk
r@   Y n(X | d|¡ |D ]} d| krR qhqR|} | S )Nz0.0.0.0r   Ú.)ÚstripZgethostnameZgethostbyaddrr@   Úinsert)r’   ZhostnameÚaliasesZipaddrsr   r   r   r   ç  s    	c                 C   sÔ   | \}}d }t ||dtƒD ]’}|\}}}	}
}d }zDt|||	ƒ}|tk	rP| |¡ |r^| |¡ | |¡ d }|W   S  tk
rª } z|}|d k	rš| ¡  W 5 d }~X Y qX q|d k	rÈz|‚W 5 d }X ntdƒ‚d S )Nr   z!getaddrinfo returns an empty list)	Úgetaddrinfor-   r'   Ú_GLOBAL_DEFAULT_TIMEOUTrH   rŸ   r¡   r@   r7   )Úaddressrs   Zsource_addressr£   r¤   rx   ÚresÚafÚsocktyper3   Ú	canonnameÚsarK   r¥   r   r   r   r     s.    



c               	   C   sl   t rttdƒrttdƒsdS z4tttƒ } |  ttd¡ W 5 Q R £ W dS Q R X W n t	k
rf   Y dS X d S )NÚIPPROTO_IPV6ÚIPV6_V6ONLYFr   T)
Úhas_ipv6rp   r.   r'   r   r-   Ú
setsockoptrÆ   rÇ   r@   )rK   r   r   r   r   0  s    ÿþF)r1   ÚbacklogÚ
reuse_portÚdualstack_ipv6c             
   C   sn  |rt tdƒstdƒ‚|r8tƒ s(tdƒ‚|tkr8tdƒ‚t|tƒ}ztjdkr‚t tdƒr‚z| 	t
td¡ W n tk
r€   Y nX |r”| 	t
td¡ trÖ|tkrÖ|r´| 	ttd¡ n"t td	ƒrÖt td
ƒrÖ| 	ttd¡ z| | ¡ W n@ tk
r$ } z d|j| f }t|j|ƒd ‚W 5 d }~X Y nX |d kr:| ¡  n
| |¡ |W S  tk
rh   | ¡  ‚ Y nX d S )NÚSO_REUSEPORTz+SO_REUSEPORT not supported on this platformz-dualstack_ipv6 not supported on this platformz'dualstack_ipv6 requires AF_INET6 family)rŒ   ÚcygwinÚSO_REUSEADDRrU   r   rÇ   rÆ   z+%s (while attempting to bind on address %r))rp   r.   r   r   r   r'   r-   rk   r’   rÉ   Z
SOL_SOCKETrÏ   r@   rÍ   rÈ   rÆ   rÇ   rŸ   ÚstrerrorÚerrnor    r7   )rÀ   r1   rÊ   rË   rÌ   rK   rx   Úmsgr   r   r   r   @  sN    


ÿ
ÿÿ 


c                 C   sP   g }t  | |||||¡D ]2}|\}}	}}
}| t|tƒt|	tƒ||
|f¡ q|S r   )r.   r¾   Úappendr   r   r   )r£   r¤   r1   r2   r3   ÚflagsZaddrlistrÁ   rÂ   rÃ   rÄ   rÅ   r   r   r   r¾   …  s      þr¾   )r   )r:   )r   r   r   r   )0r.   rk   ÚsysrX   rq   Úenumr   r   rÑ   ÚImportErrorr<   r   r   r	   Ú__all__ÚextendÚ_get_exports_listÚ	_convert_r$   rœ   rž   r   r'   Z_realsocketÚplatformÚlowerr   r"   rÓ   Ú	Exceptionr#   r
   rp   r—   r-   r˜   r,   r“   r°   r¨   rW   r   Úobjectr¿   r   r   r   r¾   r   r   r   r   Ú<module>1   sF   
  ÿýýýý

  F
	
$
u
ÿ
-ÿE