python (3.11.7)

(root)/
lib/
python3.11/
multiprocessing/
__pycache__/
connection.cpython-311.pyc

e~~gdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddlm
Z
mZddlmZejZ	ddlZddlmZmZmZmZn#e$rejdkrdZYnwxYwd	Zd
Ze	jZdZdgZe edrdZedgz
Zejdkrd
Zed
gz
ZefdZ!dZ"dZ#dZ$dZ%GddZ&erGdde&Z'Gdde&Z(Gdde)Z*d<dZ+ejdkrd=dZ,nd=dZ,Gdd e)Z-d!Z.ejdkrGd"d#e)Z/d$Z0d%Z1d&Z2d'Z3d(Z4d)Z5d*Z6Gd+d,e)Z7d-Z8d.Z9Gd/d0e*Z:d1Z;ejdkrd2Z<ej=ej>hZ?d>d3Z@n#ddlAZAe eAd4reAjBZCneAjDZCd>d5Z@ejdkr0d6ZEd7ZFejGe(eEd8ZHd9ZIejGe'eHdSd:ZEd;ZFejGe(eEdS)?)ClientListenerPipewaitN)util)AuthenticationErrorBufferTooShort)	reduction)
WAIT_OBJECT_0WAIT_ABANDONED_0WAIT_TIMEOUTINFINITEwin32i g4@AF_INETAF_UNIXAF_PIPEc.tj|zSNtime	monotonic)timeouts N/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/multiprocessing/connection.py
_init_timeoutr<s>g%%c0tj|kSrr)ts r_check_timeoutr?s>arc|dkrdS|dkr'tjdtjS|dkr>tjdt	jt
tfzdStd	)
z?
    Return an arbitrary free address for the given family
    r)	localhostrrz	listener-)prefixdirrz\\.\pipe\pyc-%d-%d-zunrecognized family)	tempfilemktemprget_temp_dirosgetpidnext
_mmap_counter
ValueErrorfamilys rarbitrary_addressr/Fs	9		kt7H7J7JKKKK	9		&< "	T--@-@A'BGIKKK	K.///rctjdkr|dkrtd|ztjdkr-|dkr)tt|std|zdSdSdS)zD
    Checks if the family is valid for the current environment.
    rrzFamily %s is not recognized.rN)sysplatformr,hasattrsocketr-s r_validate_familyr5Ts|w6Y#6#67&@AAA
|w6Y#6#6vv&&	F;fDEEE#6#6	F	Frct|tkrdSt|tur|drdSt|tust	j|rdSt
d|z)z]
    Return the types of the address

    This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE'
    rz\\rrzaddress type of %r unrecognized)typetuplestr
startswithris_abstract_socket_namespacer,)addresss raddress_typer=`s}G}}y	
g#		'"4"4V"<"<	y	
g#		!B7!K!K	y:WDEEErceZdZdZddZdZdZdZdZdZ	e
d	Ze
d
Ze
dZ
dZd
ZddZdZddZddZdZddZdZdZdS)_ConnectionBaseNTc|}|dkrtd|s|std||_||_||_dS)Nrzinvalid handlez6at least one of `readable` and `writable` must be True)	__index__r,_handle	_readable	_writable)selfhandlereadablewritables    r__init__z_ConnectionBase.__init__vsm!!##A::-...	J	JHJJ
J!!rc@|j|dSdSrrB_closerEs r__del__z_ConnectionBase.__del__s#<#KKMMMMM$#rc2|jtddS)Nhandle is closed)rBOSErrorrMs r
_check_closedz_ConnectionBase._check_closeds!<,--- rc2|jstddS)Nzconnection is write-only)rCrQrMs r_check_readablez_ConnectionBase._check_readables%~	64555	6	6rc2|jstddS)Nzconnection is read-only)rDrQrMs r_check_writablez_ConnectionBase._check_writables%~	53444	5	5rcf|jrd|_n|td)NFzbad message length)rDrCcloserQrMs r_bad_message_lengthz#_ConnectionBase._bad_message_lengths1>	"DNNJJLLL*+++rc|jduS)z True if the connection is closedNrBrMs rclosedz_ConnectionBase.closeds|t##rc|jS)z"True if the connection is readable)rCrMs rrGz_ConnectionBase.readable~rc|jS)z"True if the connection is writable)rDrMs rrHz_ConnectionBase.writabler^rc8||jS)z+File descriptor or handle of the connection)rRrBrMs rfilenoz_ConnectionBase.filenos|rch|j*	|d|_dS#d|_wxYwdS)zClose the connectionNrKrMs rrXz_ConnectionBase.closesB<#
$


#t####	$#s&	/rc||t|}|jdkr|d}|j}|dkrt
d||krt
d|||z
}n-|dkrt
d||z|krt
d|||||zdS)	z,Send the bytes data from a bytes-like objectrBrzoffset is negativezbuffer length < offsetNzsize is negativezbuffer length < offset + size)rRrV
memoryviewitemsizecastnbytesr,_send_bytes)rEbufoffsetsizemns      r
send_bytesz_ConnectionBase.send_bytesssOO:>>sA
HA::1222v::5666<v:DD
AXX/000
d]Q

<===6&4-/011111rc|||t|dS)zSend a (picklable) objectN)rRrVri_ForkingPicklerdumpsrEobjs  rsendz_ConnectionBase.sendsN..s3344444rc||||dkrtd||}|||S)z7
        Receive bytes data as a bytes object.
        Nrznegative maxlength)rRrTr,_recv_bytesrYgetvalue)rE	maxlengthrjs   r
recv_bytesz_ConnectionBase.recv_bytess}	
 Y]]1222y));$$&&&||~~rcH||t|5}|j}|t	|z}|dkrtd||krtd|}|}|||zkr!t|	|
d||||z||z|z|cdddS#1swxYwYdS)zq
        Receive bytes data into a writeable bytes-like object.
        Return the number of bytes read.
        rznegative offsetzoffset too largeN)rRrTrerflenr,rwtellr
rxseekreadinto)rErjrkrmrfbytesizeresultrls        rrecv_bytes_intoz_ConnectionBase.recv_bytes_intosj
	

__	zH#a&&(Hzz !2333("" !3444%%''F;;==D&4-''$V__%6%6777KKNNNOOAf0%}9:;
<
<
<!																		sCDDDc|||}t|S)zReceive a (picklable) object)rRrTrwrqloads	getbuffer)rErjs  rrecvz_ConnectionBase.recvsS  $$S]]__555rc|||||S)z/Whether there is any input available to be read)rRrT_pollrErs  rpollz_ConnectionBase.polls8zz'"""rc|SrrMs r	__enter__z_ConnectionBase.__enter__rc.|dSrrXrEexc_type	exc_valueexc_tbs    r__exit__z_ConnectionBase.__exit__

r)TT)rNr)r)r)__name__
__module____qualname__rBrIrNrRrTrVrYpropertyr\rGrHrarXrorurzrrrrrrrrr?r?sssG	"	"	"	"...666555,,,$$X$XX
$$$2222(5552666####rr?cHeZdZdZdZdZejfdZdZ	d	dZ
dZdZdS)
PipeConnectionz
        Connection class based on a Windows named pipe.
        Overlapped I/O is used, so the handles must have been created
        with FILE_FLAG_OVERLAPPED.
        FNc`|j}||||jdSr)_send_ovcancelrB)rE_CloseHandleovs   rrLzPipeConnection._closes3B~		L&&&&&rcH|jtdtj|j|d\}}||_	|tjkr.tj|jgdt}|tksJn#|
xYwd|_|d\}}n$#d|_|d\}}wxYw|tjkrttjd|dksJ|t!|ksJdS)Nz/concurrent send_bytes() calls are not supportedT
overlappedFrPr)rr,_winapi	WriteFilerBERROR_IO_PENDINGWaitForMultipleObjectseventrrrGetOverlappedResultERROR_OPERATION_ABORTEDrQerrnoEPIPEr|)rErjrerrwaitresnwrittens      rrizPipeConnection._send_bytess:}( "5666'cdKKKGBDM

='222%<
E855G"m3333
		 $
 " 6 6t < <
##!%
 " 6 6t < <
#<<<<g555ek+=>>>!8888s3xx''''''s>A=<B7=BB77!Cc|jrd|_tjS|dnt|d}	t	j|j|d\}}	|tjkr.t	j|j	gdt}|tksJn#|xYw|
d\}}|dkr<tj}|||S|tjkr|||Sn#|
d\}}|dkr@tj}|||ccYS|tjkr|||ccYSwxYwn/#t$$r"}|jtjkrt*d}~wwxYwt-d)NFTrrz.shouldn't get here; expected KeyboardInterrupt)_got_empty_messageioBytesIOminrReadFilerBrrrrrrrwriterERROR_MORE_DATA_get_more_datarQwinerrorERROR_BROKEN_PIPEEOFErrorRuntimeError)	rEmaxsizebsizerrrnreadfes	         rrwzPipeConnection._recv_bytes6s&
*/'z||#&C4E4E%.t|U;?AAAGBD'":::&-&D!#
E8'='=G#*m#;#;#;#;		%'%;%;D%A%A
s!88 "
AGGBLLNN333#$H G$;;;#'#6#6r7#C#CC<&(%;%;D%A%A
s!88 "
AGGBLLNN333#$HHHHH G$;;;#'#6#6r7#C#CCCCCCCCCC<zW%>>>&	
OPPPsgF?>BD1B--D10AF?
%F?0F?1AF;F?(F;8F?:F;;F??
G+	G&&G+c|js#tj|jddkrdSt	t|g|S)NrT)rr
PeekNamedPiperBboolrrs  rrzPipeConnection._pollVsI'
-dl;;A>!CCtdVW--...rc|}tj}||t	j|jd}|dksJ|*t||z|kr|t	j	|j|d\}}|
d\}}|dksJ||ksJ|||S)NrrTr)rrrrrrrBr|rYrr)rErrrjrleftrrbytess        rrzPipeConnection._get_more_data\s,,..C
A
GGCLLL(66q9D!8888"s3xx$'@'@((***&t|TdKKKGB0066KFC!8888T>>>>
GGBLLNN###Hrr)
rrr__doc__rrrCloseHandlerLrirwrrrrrrrs		
#&-&9	'	'	'	'	(	(	(4	Q	Q	Q	Q@	/	/	/
	
	
	
	
	rrceZdZdZerejfdZejZ	ej
Znej
fdZejZ	ejZe	fdZefdZdZd
dZd	ZdS)
Connectionzo
    Connection class based on an arbitrary file descriptor (Unix only), or
    a socket handle (Windows).
    c&||jdSrr[rErLs  rrLzConnection._closesF4<     rc&||jdSrr[rs  rrLzConnection._closexrrctt|}	||j|}||z}|dkrdS||d}))NTr)r|rB)rErjr	remainingrns     r_sendzConnection._send}sNHH		dlC((ANIA~~abb'C	rctj}|j}|}|dkr]|||}t|}|dkr||krttd||||z}|dk]|S)Nrzgot end of file during message)rrrBr|rrQr)rErlreadrjrFrchunkrns        r_recvzConnection._recvsjll	!mmD++EE

AAvv$$"N!"BCCCIIeNI!mm
rct|}|dkrktjdd}tjd|}||||||dStjd|}|dkr,||||dS|||zdS)Ni!i!Qi@)r|structpackr)rErjrn
pre_headerheaders     rrizConnection._send_bytessHHz>>T2..J[q))FJJz"""JJvJJsOOOOO[q))F5yy

6"""

3

6C<(((((rNcD|d}tjd|\}|dkr>|d}tjd|\}|||krdS||S)Nrrr)rrunpackrx)rErrjrls    rrwzConnection._recv_bytessjjmm
dCLLNN332::**Q--CM$77ED4'>>4zz$rcBt|g|}t|Sr)rr)rErrs   rrzConnection._polls$!!Awwrr)rrrrr_multiprocessingclosesocketrLru_writer_readr(rXrrrrrirwrrrrrrls
	 0 <	!	!	!	!!& % "	!	!	!	!% % ))).    rrc^eZdZdZddZdZdZedZedZ	d	Z
d
ZdS)rz
    Returns a listener object.

    This is a wrapper for a bound socket which is 'listening' for
    connections, or for a Windows named pipe.
    Nrc8|p|rt|pt}|pt|}t||dkrt	|||_nt
||||_|$t|tstd||_
dS)Nrauthkey should be a byte string)r=default_familyr/r5PipeListener	_listenerSocketListener
isinstancebytes	TypeError_authkey)rEr<r.backlogauthkeys     rrIzListener.__init__s#G=W(=(=#"	6.v66   Y)'7;;DNN+GVWEEDNz'5'A'A=>>>


rc|jtd|j}|jr*t	||jt||j|S)zz
        Accept a connection on the bound socket or named pipe of `self`.

        Returns a `Connection` object.
        Nzlistener is closed)rrQacceptrdeliver_challengeanswer_challenge)rEcs  rrzListener.acceptsa>!.///N!!##=	/a///Q
...rcR|j}|d|_|dSdS)zA
        Close the bound socket or named pipe of `self`.
        N)rrX)rElisteners  rrXzListener.closes6>!DNNN rc|jjSr)r_addressrMs rr<zListener.addresss
~&&rc|jjSr)r_last_acceptedrMs r
last_acceptedzListener.last_accepteds
~,,rc|SrrrMs rrzListener.__enter__rrc.|dSrrrs    rrzListener.__exit__rr)NNrN)rrrrrIrrXrr<rrrrrrrrs     ''X'--X-rrc |pt|}t||dkrt|}nt|}|$t	|t
st
d| t||t|||S)z=
    Returns a connection to the address of a `Listener`
    rNr)	r=r5
PipeClientSocketClientrrrrr)r<r.rrs    rrrs
,|G,,FV
w!!:gu#=#=9:::G$$$!W%%%HrTc|rtj\}}|d|dt|}t|}n8tj\}}t|d}t|d}||fS)L
        Returns pair of connection objects at either end of a pipe
        TFrHrG)r4
socketpairsetblockingrdetachr(pipe)duplexs1s2c1c2fd1fd2s       rrrs		1&((FBNN4   NN4   BIIKK((BBIIKK((BBwyyHCC%000BC%000B2v
rc
&td}|r4tj}tjtjz}t
t
}}n!tj}tj}dt
}}tj||tjztj	ztj
tjztjzd||tj
tj}tj||dtjtjtjtj}tj|tjddtj|d}|d\}	}
|
dksJt)||}t)||}||fS)	rrrrNTrrr
)r/rPIPE_ACCESS_DUPLEXGENERIC_READ
GENERIC_WRITEBUFSIZEPIPE_ACCESS_INBOUNDCreateNamedPipeFILE_FLAG_OVERLAPPEDFILE_FLAG_FIRST_PIPE_INSTANCEPIPE_TYPE_MESSAGEPIPE_READMODE_MESSAGE	PIPE_WAITNMPWAIT_WAIT_FOREVERNULL
CreateFile
OPEN_EXISTINGSetNamedPipeHandleStateConnectNamedPiperr)
rr<openmodeaccessobsizeibsizeh1h2r_rrrs
             rrr'sb$I..	(1H)G,AAF$gFFF2H*FFF

$X <<12%(EE

vvw;L
VQg.C(',	'-tT			-bTBBB
//553axxxx
B
0
0
0
B
0
0
02v
rc&eZdZdZddZdZdZdS)rzO
    Representation of a socket which is bound to an address and listening
    rctjtt||_	tjdkr0|jtjtjd|jd|j	||j
||j|_n(#t$r|jwxYw||_d|_|dkr>t#j|s*t#j|tj|fd|_dSd|_dS)NposixrTrrargsexitpriority)r4getattr_socketr(name
setsockopt
SOL_SOCKETSO_REUSEADDRrbindlistengetsocknamerrQrX_familyrrr;Finalizeunlink_unlink)rEr<r.rs    rrIzSocketListener.__init__WsF}WVV%<%<==	w'!!''(9(.(;Q@@@L$$T***Lg&&&L((( L4466DMM			L   	"Yt'H'Q'Q=biwjqDLLL DLLLsB,C%Dc|j\}|_|dt	|S)NT)r9rrrrrrEss  rrzSocketListener.acceptpsE!%!4!4!6!64	

d!((**%%%rc	|j|j}|d|_|dSdS#|j}|d|_|wwxYwr)r9rXrD)rErCs  rrXzSocketListener.closeusr	L   \F!#"!\F!#"s	9AN)r)rrrrrIrrXrrrrrSsP    2&&&
rrc8t|}tjtt|5}|d||t|cdddS#1swxYwYdS)zO
    Return a connection object connected to the socket given by `address`
    TN)r=r4r8rconnectrr)r<r.rGs   rr	r	s'
"
"F	//	1	1&Q	

d			'!((**%%&&&&&&&&&&&&&&&&&&sABBBc>eZdZdZddZd	dZdZedZdS)
rz0
        Representation of a named pipe
        Nc||_|dg|_d|_t	jd|jt	j|tj|j|jfd|_	dS)NT)firstz listener created with address=%rrr5)
r_new_handle
_handle_queuerr	sub_debugrBr_finalize_pipe_listenerrX)rEr<rs   rrIzPipeListener.__init__su#DM"&"2"2"2">">!?D"&DN=t}MMMl:($-8qDJJJrFc
.tjtjz}|r|tjz}tj|j|tjtjztjztj	tttjtjSr)
rrr r!rrr"r#r$PIPE_UNLIMITED_INSTANCESrr%r&)rErMflagss   rrNzPipeListener._new_handlesp.1MME
?>>*
u)G,II!"0'7,gl
rcd|j||jd}	t	j|d}	t	j|jgdt}n.#|	t	j
|xYw	|d\}}|dksJnR#|d\}}|dksJwxYw#t$r }|j
tjkrYd}~nd}~wwxYwt|S)NrTrF)rOappendrNpoprr*rrrrrrrQr
ERROR_NO_DATAr)rErFrresr1rrs       rrzPipeListener.acceptsT%%d&6&6&8&8999'++A..F
$-fFFF	$!8
E855CCIIKKK'/// 33D99FAs!88888 33D99FAs!88888888


:!66676666
 "&)))s6C6!BC+B,,C"C36
D DD cbtjd||D]}tj|dS)Nz closing listener with address=%r)rrPrr)queuer<rFs   rrQz$PipeListener._finalize_pipe_listenersBN=wGGG
,
,#F++++
,
,rr)F)	rrrrrIrNrstaticmethodrQrrrrrsp										
	
	
	
		*	*	*.
	,	,
	,	,	,rrc	t}		tj|dtj|tjtjzdtjtjtjtj}nG#t$r9}|j
tjtjfvst|rYd}~nd}~wwxYwtj|tjddt!|S)zU
        Return a connection object connected to the pipe given by `address`
        rrN)rr
WaitNamedPiper'rrr&r(r rQrERROR_SEM_TIMEOUTERROR_PIPE_BUSYrr)r#r)r<rhrs    rrrs
OO	
%gt444&W1G4IIw|W%:0',


:g&?&-&=&???BPQRBSBS??????
	"	'
w,dD			a   sA.B
C
/B>>Cs#CHALLENGE#s	#WELCOME#s	#FAILURE#cddl}t|ts/tdt|t
jt}|	t|z|||d}|
d}||kr|	tdS|	tt!d)Nr Authkey must be bytes, not {0!s}md5zdigest received was wrong)hmacrrr,formatr7r(urandomMESSAGE_LENGTHro	CHALLENGEnewdigestrzWELCOMEFAILUREr	
connectionrrhmessagernresponses      rrrsKKKgu%%F.55d7mmDDFF	Fj((G)g-...
XXgw
.
.
5
5
7
7F$$S))H6g&&&&&g&&&!"=>>>rc6ddl}t|ts/tdt||d}|dtttks
Jd|z|ttd}|	||d
}|||d}|tkrtddS)Nrrergzmessage = %rrfzdigest sent was rejected)rhrrr,rir7rzr|rlrmrnroror	rqs      rrrsKKKgu%%F.55d7mmDDFF	F##C((G?C	NN?#y000.72J000c)nnoo&G
XXgw
.
.
5
5
7
7F&!!!$$S))H7!"<===rc eZdZdZdZdZdS)ConnectionWrapperc|||_||_||_dD]#}t||}t	|||$dS)N)rarXrrzro)_conn_dumps_loadsr8setattr)rEconnrrrattrrts      rrIzConnectionWrapper.__init__sT
K	%	%D$%%CD$$$$$	%	%rcd||}|j|dSr)rzryro)rErtrGs   rruzConnectionWrapper.sends/KK
a     rc^|j}||Sr)ryrzr{rFs  rrzConnectionWrapper.recvs%J!!##{{1~~rN)rrrrIrurrrrrwrw
sA%%%!!!rrwcft|fdddddS)Nrutf-8)	xmlrpclibrrencode)rts r
_xml_dumpsrs,??C64tQ77>>wGGGrcjt|d\\}}|S)Nr)rrdecode)rGrtmethods   r
_xml_loadsrs*__QXXg%6%677NFSFJrceZdZdZdS)XmlListenercxddlmat|}t|ttSNr)
xmlrpc.clientclientrrrrwrrrss  rrzXmlListener.accept$s7))))))ood## j*===rN)rrrrrrrrr#s#>>>>>rrcXddlmatt	|i|t
tSr)rrrrwrrr)r6kwdss  r	XmlClientr*s3%%%%%%VT2T22J
KKKrct|}g}|rtj|d|}|tkrnt|cxkrtt|zkrnn|tz}nDt|cxkrtt|zkrnn|tz}ntd|||||dzd}d}||S)NFzShould not get hererr)	listrrrrr|r
rrV)handlesrLreadyrYs     r_exhaustive_waitr5s
MM	0E7CCCl""#>>>>
A(>>>>>>}$!SDDDD+;c!ff+DDDDDD''"#8999LL3   #a%&&	AG	rc
|t}n|dkrd}nt|dzdz}t|}ig}t
t}	|D]B}	t	|d}	tj|dd\}}n*#t$r}d|j}}|tvrYd}~nd}~wwxYw|t
j
kr ||||j<|rptjdddkrQ	|d	\}	}n#t$r}|j}Yd}~nd}~wwxYw|st!|d
rd|_
|d}#t&$r||<Y@wxYwt+|}|D]}||D]}	|d\}	}n(#t$r}|j}|tvrYd}~nd}~wwxYw|t
jkr?|j}
||dkrt!|d
rd|_n#|D]}||D]}	|d\}	}n(#t$r}|j}|tvrYd}~nd}~wwxYw|t
jkr?|j}
||dkrt!|d
rd|_wxYw
fd|D
fd|DS)
        Wait till an object in object_list is ready/readable.

        Returns list of those objects in object_list which are ready/readable.
        Nrr^g?raT)rFrc3(K|]}|V
dSrr).0rbwaithandle_to_objs  r	<genexpr>zwait.<locals>.<genexpr>s)IIa.q1IIIIIIrcg|]}|v|	Srr)ro
ready_objectss  r
<listcomp>zwait.<locals>.<listcomp>s#===a!}*<*<*<*<*<r)rintrsetr8rrrQr
_ready_errorsrrVrr1getwindowsversionrr3raddAttributeErrorrArkeysrrupdate)object_listrov_list
ready_handlesrrarrrr1rrs          @@rrrKsX?GG
q[[GG'D.3.//G;''

6	8 
$
$$$Q11F
"")"26688Q"E"ECC"""""&
Cm33!43333"g666r***67)"(33
<#"7"9"9"1""="G"G1)+)?)?)F)F33#*111&'j1#&<716J+K+K<7; 4%))!,,,"#7&99978%akkmm4449:-->-C-C-E-EwOOM

		
8
833D99FAss*C-//0////'999)"(3A!%%a(((axx#1&:;;837A0
8	

		
8
833D99FAss*C-//0////'999)"(3A!%%a(((axx#1&:;;837A0
8 	IIII=IIIIII====;====sI3!E92!BI3
B;B61I36B;;AI3D)(I3)
E3D?:I3?E5I39!FI3F%I3!G::
HHH3L$J+*L$+
K	5K	L$K	AL$PollSelectorcnt5}|D]"}||tj#|t	j|z}	||}|rd|DcdddS|*|t	jz
}|dkr|cdddS\#1swxYwYdS)rNTc"g|]\}}|j
Sr)fileobj)rkeyeventss   rrzwait.<locals>.<listcomp>sCCCMS&CKCCCrr)
_WaitSelectorregister	selectors
EVENT_READrrselect)rrselectorrtdeadliners      rrrs4__	)"
=
=!!#y';<<<<">++g5
) 00)CCUCCC	)	)	)	)	)	)	)	)*"*T^-=-="="Q;;#(	)	)	)	)	)	)	)	)
)	)	)	)	)	)	)	)	)	)	)sA!B*=B*)B**B.1B.c|}tj|tjtj5}ddlm}||}t||j	|j
ffcdddS#1swxYwYdS)Nr)resource_sharer)rar4fromfdrSOCK_STREAMr$r	DupSocketrebuild_connectionrGrH)r}rFrGrdss     rreduce_connectionrs
]66>63E
F
F	J!)))))) **1--B%DM4='II	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	Js1A==BBcp|}t|||Srrr)rrGrHsocks    rrrs)yy{{$++--8<<<rc|jrtjnd|jrtjndz}tj||}t||j|jffSr)	rGrFILE_GENERIC_READrHFILE_GENERIC_WRITEr	DupHandlerarebuild_pipe_connection)r}r,dhs   rreduce_pipe_connectionrs^04
D7,,115E7--AG

 
7
7&T]DM(JJJrcL|}t|||Sr)rr)rrGrHrFs    rrrs!fh999rcztj|}t||j|jffSr)rDupFdrarrGrH)r}dfs  rrrs/
_T[[]]
+
+!B
t}#EEErcL|}t|||Srr)rrGrHfds    rrrs!
YY[["h111r)NN)Tr)J__all__rrr(r1r4rrr%	itertoolsrr$rr	r
contextrForkingPicklerrqrrr
rrImportErrorr2rCONNECTION_TIMEOUTcountr+rfamiliesr3rrr/r5r=r?rrobjectrrrrr	rrrkrlrorprrrwrrrrrrERROR_NETNAME_DELETEDrrrrrSelectSelectorrrrrrrrr<module>rs3
2
2								











11111111*NNNOOOOOOOOOOOOO
|w
GGG	!!
;
769NH<7NH-&&&&   000
F
F
F
F
F
F&TTTTTTTTn_]]]]]]]]@MMMMMMMMh:::::v:::z



*<7&&&&&X)))))V)))X&&&<76,6,6,6,6,v6,6,6,p!!!>	


?
?
?>>>$







HHH>>>>>(>>>LLL<7(.0MNML>L>L>L>L>`
wy.))1!.

!0
))))6<7JJJ===Iz#4555KKK
:::I~'=>>>>>FFF222Iz#455555s	AA0/A0