Vc6dZdZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl m Z dd l mZdd l mZdd l mZdd l mZdd lmZdZGddejejZGddeejZGddeejZGddeZGddeejZGddeeejZ GddeeejZ!Gdde j"Z#dS)zEvent loop using a proactor and related classes. A proactor is a "notify-on-completion" multiplexer. Currently a proactor is only implemented on Windows with IOCP. )BaseProactorEventLoopN) base_events) constants)futures) exceptions) protocols)sslproto) transports)trsock)loggerctj||jd< ||jd<nE#tj$r3|jrtj d|dYnwxYwd|jvr? | |jd<dS#tj$rd|jd<YdSwxYwdS)Nsocketsocknamezgetsockname() failed on %rTexc_infopeername) r TransportSocket_extra getsocknamererror_loop get_debugr warning getpeername) transportsocks 0/usr/lib64/python3.11/asyncio/proactor_events.py_set_socket_extrars !'!7!=!=IXC'+'7'7'9'9 $$ <CCC ? $ $ & & C N,dT C C C CC ))0 0+/+;+;+=+=I Z ( ( (| 0 0 0+/I Z ( ( ( ( 000s!;?A=<A= B((CCczeZdZdZ dfd ZdZdZdZdZdZ d Z e j fd Z dd Zd ZdZdZxZS)_ProactorBasePipeTransportz*Base class for pipe and socket transports.Nct||||||_||||_d|_d|_d|_d|_ d|_ d|_ d|_ |j|j |j|jj||(|jt$j|ddSdS)NrF)super__init__ _set_extra_sock set_protocol_server_buffer _read_fut _write_fut_pending_write _conn_lost_closing _eof_written_attachr call_soon _protocolconnection_mader_set_result_unless_cancelledselflooprprotocolwaiterextraserver __class__s rr$z#_ProactorBasePipeTransport.__init__2s %%%   (###   ! < # L " " " T^;TBBB  / J !E!' / / / / / / /ct|jjg}|j|dn|jr|d|j/|d|j|j|d|j|j|d|j|jr*|dt|j|j r|dd d |S) Nclosedclosingzfd=zread=zwrite=zwrite_bufsize=z EOF writtenz<{}> ) r<__name__r&appendr.filenor*r+r)lenr/formatjoin)r6infos r__repr__z#_ProactorBasePipeTransport.__repr__Hs3'( : # KK ! ! ! ! ] # KK " " " : 5 KK3dj//1133 4 4 4 > 4 KK222 3 3 3 ? 6 KK444 5 5 5 < > KK<T\):):<< = = =   ' KK & & &}}SXXd^^,,,r=c||jd<dS)Npipe)rr6rs rr%z%_ProactorBasePipeTransport._set_extraZs" Fr=c||_dSNr2)r6r8s rr'z'_ProactorBasePipeTransport.set_protocol]s !r=c|jSrNrOr6s r get_protocolz'_ProactorBasePipeTransport.get_protocol`s ~r=c|jSrN)r.rQs r is_closingz%_ProactorBasePipeTransport.is_closingcs }r=c|jrdSd|_|xjdz c_|js'|j |j|jd|j"|jd|_dSdS)NTr) r.r-r)r+rr1_call_connection_lostr*cancelrQs rclosez _ProactorBasePipeTransport.closefs =  F  1| C C J !;T B B B > " N ! ! # # #!DNNN " "r=cv|j1|d|t||jdSdS)Nzunclosed transport )source)r&ResourceWarningrX)r6_warns r__del__z"_ProactorBasePipeTransport.__del__qsP :  E000/$ O O O O J         r=Fatal error on pipe transportc< t|tr2|jrt jd||dn$|j||||jd||dS#||wxYw)Nz%r: %sTr)message exceptionrr8) isinstanceOSErrorrrr debugcall_exception_handlerr2 _force_close)r6excr`s r _fatal_errorz'_ProactorBasePipeTransport._fatal_errorvs ##w'' :''))IL44HHHH 11&!$!% $ 33   c " " " " "D  c " " " "s A+BBc|jP|js7||jdn|j||jrdSd|_|xjdz c_|jr |jd|_|jr |jd|_d|_ d|_ |j |j |dS)NTrr) _empty_waiterdone set_result set_exceptionr.r-r+rWr*r,r)rr1rV)r6rgs rrfz'_ProactorBasePipeTransport._force_closes   6$2D2I2I2K2K 6 6"--d3333"00555 =  F  1 ? # O " " $ $ $"DO > " N ! ! # # #!DN  T7=====r=c |j|t|jdrA|jdkr$|jt j|jd|_|j }|| d|_ dSdS#t|jdrA|jdkr$|jt j|jd|_|j }|| d|_ wxYw)Nshutdown) r2connection_losthasattrr&rDror SHUT_RDWRrXr(_detach)r6rgr;s rrVz0_ProactorBasePipeTransport._call_connection_lostsL $ N * *3 / / / tz:.. 64:3D3D3F3F"3L 6 ##F$4555 J     DJ\F $   #  $ $ tz:.. 64:3D3D3F3F"3L 6 ##F$4555 J     DJ\F $   # ####s B::BEcP|j}|j|t|jz }|SrN)r,r)rE)r6sizes rget_write_buffer_sizez0_ProactorBasePipeTransport.get_write_buffer_sizes-" < & C %% %D r=NNN)r^)rB __module__ __qualname____doc__r$rIr%r'rRrTrXwarningswarnr]rhrfrVrw __classcell__r<s@rr!r!.s4448$(//////,---$###""" " " "%M # # # #>>>($$$"r=r!cNeZdZdZ d fd ZdZdZdZdZd Z d d Z xZ S) _ProactorReadPipeTransportzTransport for read pipes.Ncd|_d|_t||||||t ||_|j|jd|_dS)NrpTF) _pending_data_length_pausedr#r$ bytearray_datarr1 _loop_reading) r6r7rr8r9r:r; buffer_sizer<s rr$z#_ProactorReadPipeTransport.__init__sg$&!  tXvufEEE{++  T/000 r=c"|j o|j SrN)rr.rQs r is_readingz%_ProactorReadPipeTransport.is_readings<5 $55r=c|js|jrdSd|_|jrt jd|dSdS)NTz%r pauses reading)r.rrrr rdrQs r pause_readingz(_ProactorReadPipeTransport.pause_readings\ = DL  F  :   ! ! 4 L,d 3 3 3 3 3 4 4r=cf|js|jsdSd|_|j |j|jd|j}d|_|dkr.|j|j|jd|||j rtj d|dSdS)NFrpz%r resumes reading) r.rr*rr1rr_data_receivedrrr rd)r6lengths rresume_readingz)_ProactorReadPipeTransport.resume_readings =    F > ; J !3T : : :*$&! B; S J !4dj&6I6 R R R :   ! ! 5 L-t 4 4 4 4 4 5 5r=cF|jrtjd| |j}n?#t tf$rt$r!}| |dYd}~dSd}~wwxYw|s| dSdS)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.) rrr rdr2 eof_received SystemExitKeyboardInterrupt BaseExceptionrhrX)r6 keep_openrgs r _eof_receivedz(_ProactorReadPipeTransport._eof_receiveds :   ! ! 2 L*D 1 1 1 3355II-.          H J J J FFFFF    JJLLLLL  sA B%BBc|jr|jdksJ||_dS|dkr|dSt|jt jr\ t j|j|dS#ttf$rt$r!}| |dYd}~dSd}~wwxYw|j |dS)Nrprz3Fatal error: protocol.buffer_updated() call failed.) rrrrbr2r BufferedProtocol_feed_data_to_buffered_protorrrrh data_received)r6datarrgs rrz)_ProactorReadPipeTransport._data_receiveds < ,2 2 2 2(.D % F Q;     F dni&@ A A / 6t~tLLLLL 12       !!##1222   N ( ( . . . . .sA66B2B--B2cZd}d} ||j|us|j|jsJd|_|rK|}|dkr! |dkr|||dSdS|jd|}n||jr! |dkr|||dSdS|js/|jj |j |j|_|js|j |j n#t$rW}|js||dn/|jrt#jddYd}~nod}~wt&$r}||Yd}~nHd}~wt*$r }||dYd}~n d}~wt,j$r |jsYnwxYw|dkr|||dSdS#|dkr|||wwxYw)Nrprz"Fatal read error on pipe transportz*Read error on pipe transport while closingTr)r*r.rkresultrrrWrr _proactor recv_intor&add_done_callbackrConnectionAbortedErrorrhrr rdConnectionResetErrorrfrcrCancelledError)r6futrrrgs rrz(_ProactorReadPipeTransport._loop_readings- 2 !~,@@15@@@!%88:: ! ZZ\\F{D{ 2##D&11111 2 2A :gvg.DDJJLLL} 2{ 2##D&11111 2 2)< X!%!5!?!? DJ!W!W< E001CDDD& , , ,= ,!!#'KLLLL%%'' , I&*,,,,# # # #   c " " " " " " " " I I I   c#G H H H H H H H H(   =    { 2##D&11111 2 2v{ 2##D&1111 2smAD 7+D 6D 9'H G(*A E<7H < G( F#H # G(0G H G(%H 'G((H H*)NNNrrN) rBryrzr{r$rrrrrrr~rs@rrrs##486;666444&555$ ///20202020202020202r=rcReZdZdZdZfdZdZd dZdZdZ d Z d Z d Z xZ S) _ProactorBaseWritePipeTransportzTransport for write pipes.TcHtj|i|d|_dSrN)r#r$rjr6argskwr<s rr$z(_ProactorBaseWritePipeTransport.__init__Is-$%"%%%!r=ct|tttfs$t dt |j|jrtd|j td|sdS|j r;|j tj krtjd|xj dz c_ dS|j.|jJ|t|dS|js*t||_|dS|j||dS)Nz/data argument must be a bytes-like object, not zwrite_eof() already calledz(unable to write; sendfile is in progresszsocket.send() raised exception.r)r)rbbytesr memoryview TypeErrortyperBr/ RuntimeErrorrjr-r!LOG_THRESHOLD_FOR_CONNLOST_WRITESr rr+r) _loop_writing_maybe_pause_protocolextend)r6rs rwritez%_ProactorBaseWritePipeTransport.writeMsk$ : >?? .-Dzz*--.. .   =;<< <   KIJJ J  F ? )"MM B@AAA OOq OO F ? )< ' ' '   E$KK  0 0 0 0 0 )$T??DL  & & ( ( ( ( ( L   % % %  & & ( ( ( ( (r=Nc ||j |jrdS||jusJd|_d|_|r|||j}d|_|sg|jr |j|jd|jr$|j tj | n|jj|j ||_|jsU|jdksJt#||_|j|j|n|j|j|j#|j|jddSdSdS#t.$r }||Yd}~dSd}~wt2$r!}||dYd}~dSd}~wwxYw)Nrz#Fatal write error on pipe transport)r+r.r,rr)rr1rVr/r&rorSHUT_WR_maybe_resume_protocolrsendrkrErrrrjrlrrfrcrh)r6frrgs rrz-_ProactorBaseWritePipeTransport._loop_writingssJ& J  T] ' ' ' '"DO"#D    $|#  J=KJ(()CTJJJ$8J''777 ++----"&*"6";";DJ"M"M++--J.!3333*-d))D'O55d6HIII..0000O55d6HIII! 4$/ 4"--d33333 4 4 4 4# # # #   c " " " " " " " " " J J J   c#H I I I I I I I I I Js)F!FF!! G4+G G4G//G4cdSNTrQs r can_write_eofz-_ProactorBaseWritePipeTransport.can_write_eoftr=c.|dSrN)rXrQs r write_eofz)_ProactorBaseWritePipeTransport.write_eofs r=c0|ddSrNrfrQs rabortz%_ProactorBaseWritePipeTransport.abort $r=c|jtd|j|_|j|jd|jS)NzEmpty waiter is already set)rjrr create_futurer+rlrQs r_make_empty_waiterz2_ProactorBaseWritePipeTransport._make_empty_waiters\   ><== =!Z5577 ? 0   ) )$ / / /!!r=cd|_dSrN)rjrQs r_reset_empty_waiterz3_ProactorBaseWritePipeTransport._reset_empty_waiters!r=NN)rBryrzr{_start_tls_compatibler$rrrrrrrr~rs@rrrCs$$ """""$)$)$)L'J'J'J'JR   """"""""""r=rc$eZdZfdZdZxZS)_ProactorWritePipeTransportctj|i||jj|jd|_|j|jdS)N) r#r$rrrecvr&r*r _pipe_closedrs rr$z$_ProactorWritePipeTransport.__init__s\$%"%%%-224:rBB (():;;;;;r=cH|rdS|dksJ|jr |jJdS||jusJ||jfd|_|j#|t dS|dS)Nr=) cancelledrr.r*r+rfBrokenPipeErrorrX)r6rs rrz(_ProactorWritePipeTransport._pipe_closeds ==??  Fzz||s"""" = > ) ) ) Fdn$;;sDN&;;;; ?    o// 0 0 0 0 0 JJLLLLLr=)rBryrzr$rr~rs@rrrsG<<<<<       r=rcReZdZdZ d fd ZdZdZdZd dZd dZ d d Z xZ S) _ProactorDatagramTransportiNc||_d|_d|_t|||||t j|_|j |j dS)Nr)r9r:) _addressrj _buffer_sizer#r$ collectionsdequer)rr1r)r6r7rr8addressr9r:r<s rr$z#_ProactorDatagramTransport.__init__sp ! tXfEJJJ#(**  T/00000r=c&t||dSrNrrLs rr%z%_ProactorDatagramTransport._set_extra$%%%%%r=c|jSrN)rrQs rrwz0_ProactorDatagramTransport.get_write_buffer_sizes   r=c0|ddSrNrrQs rrz _ProactorDatagramTransport.abortrr=cZt|tttfst dt ||sdS|j"|d|jfvrtd|j|jrB|jr;|jtj krtj d|xjdz c_dS|j t||f|xjt!|z c_|j||dS)Nz,data argument must be bytes-like object (%r)z!Invalid address: must be None or z!socket.sendto() raised exception.r)rbrrrrrr ValueErrorr-rrr rr)rCrrEr+rr)r6raddrs rsendtoz!_ProactorDatagramTransport.sendtosJ$ : >?? (J JJ(( (  F = EdDM5J)J ECDMCCEE E ? t} )"MM DBCCC OOq OO F U4[[$/000 SYY& ? !     ""$$$$$r=c0 |jrdS||jusJd|_|r||jr|jr0|jr)|jr |j|jddS|j \}}|xj t|zc_ |j+|jj |j||_n,|jj |j|||_|j|j|dS#t&$r%}|j|Yd}~dSd}~wt,$r!}||dYd}~dSd}~wwxYw)N)rz'Fatal write error on datagram transport)r-r+rr)rr.rr1rVpopleftrrErrr&rrrrrcr2error_received Exceptionrh)r6rrrrgs rrz(_ProactorDatagramTransport._loop_writings * $/) ) ) )"DO  < DO   =KJ(()CTJJJ--//JD$   T *  } I"&*"6";";DJ<@#B#B#'*"6"="=dj>BCG#>#I#I O - -d.@ A A A  ' ' ) ) ) ) )  / / / N ) )# . . . . . . . . . N N N   c#L M M M M M M M M M Ns0D=A$D=1BD== FE'' F4FFcd} |jr" |r|j||dSdS|j|us|j|jsJd|_|U|}|jr$d} |r|j||dSdS|j ||j}}n|\}}|jr" |r|j||dSdS|j0|jj |j |j |_n/|jj |j |j |_|j|j |jnI#t$r$}|j|Yd}~n d}~wt"j$r |jsYnwxYw|r|j||dSdS#|r|j||wwxYwrN)r-r2datagram_receivedr*r.rrrrrr&max_sizerecvfromrrrcrrr)r6rrrresrgs rrz(_ProactorDatagramTransport._loop_readings' = H =00t<<<<< = =E>S( !>tz?C}"N"N~ E001CDDD / / / N ) )# . . . . . . . .(   =     =00t<<<<< = =t =00t<<<< =sME?EE A&E3'G F $F>GF GF  G G$rxrN) rBryrzrr$r%rwrrrrr~rs@rrrsH59$( 1 1 1 1 1 1&&&!!!   %%%%: * * * *D)=)=)=)=)=)=)=)=r=rceZdZdZdZdZdS)_ProactorDuplexPipeTransportzTransport for duplex pipes.cdS)NFrrQs rrz*_ProactorDuplexPipeTransport.can_write_eofPsur=ctrN)NotImplementedErrorrQs rrz&_ProactorDuplexPipeTransport.write_eofSs!!r=N)rBryrzr{rrrr=rrrKs:&%"""""r=rcReZdZdZejjZ dfd ZdZ dZ dZ xZ S)_ProactorSocketTransportz Transport for connected sockets.Nc|t||||||tj|dSrN)r#r$r _set_nodelayr5s rr$z!_ProactorSocketTransport.__init__^s< tXvufEEE &&&&&r=c&t||dSrNrrLs rr%z#_ProactorSocketTransport._set_extracrr=cdSrrrQs rrz&_ProactorSocketTransport.can_write_eoffrr=c|js|jrdSd|_|j&|jt jdSdSr)r.r/r+r&rorrrQs rrz"_ProactorSocketTransport.write_eofisU = D-  F  ? 0 J   / / / / / 0 0r=rx) rBryrzr{r _SendfileMode TRY_NATIVE_sendfile_compatibler$r%rrr~rs@rrrWs+*$2=48$('''''' &&&0000000r=rceZdZfdZ d dZ d!ddddddddZ d dZ d"dZ d"d Z d"d Z fd Z d Z d Z dZ d#dZdZdZdZdZdZdZdZdZd!dZdZ d$dZdZdZdZxZS)%rcttjd|jj||_||_d|_i|_ | || tj tjur-tj|jdSdS)NzUsing proactor: %s)r#r$r rdr<rBr _selector_self_reading_future_accept_futuresset_loop_make_self_pipe threadingcurrent_thread main_threadsignal set_wakeup_fd_csockrD)r6proactorr<s rr$zBaseProactorEventLoop.__init__ss  )8+=+FGGG!!$(!!$   # % %)>)@)@ @ 7  !3!3!5!5 6 6 6 6 6 7 7r=Nc*t||||||SrN)r)r6rr8r9r:r;s r_make_socket_transportz,BaseProactorEventLoop._make_socket_transports!'dHf(-v77 7r=F) server_sideserver_hostnamer:r;ssl_handshake_timeoutssl_shutdown_timeoutc ptj||||||| | } t||| ||| jS)N)rrr:r;)r SSLProtocolr_app_transport) r6rawsockr8 sslcontextr9rrr:r;rr ssl_protocols r_make_ssl_transportz)BaseProactorEventLoop._make_ssl_transports\  +h F_&;%9 ;;; !w ',V = = = =**r=c*t||||||SrN)r)r6rr8rr9r:s r_make_datagram_transportz.BaseProactorEventLoop._make_datagram_transports!)$h*0%99 9r=c(t|||||SrN)rr6rr8r9r:s r_make_duplex_pipe_transportz1BaseProactorEventLoop._make_duplex_pipe_transports"+D,0(FEKK Kr=c(t|||||SrN)rr s r_make_read_pipe_transportz/BaseProactorEventLoop._make_read_pipe_transports)$hNNNr=c(t|||||SrN)rr s r_make_write_pipe_transportz0BaseProactorEventLoop._make_write_pipe_transports$+4+/65JJ Jr=c|rtd|rdStjtjurt jd|| |j d|_ d|_ t dS)Nz!Cannot close a running event looprp) is_runningr is_closedrr r r r _stop_accept_futures_close_self_piperrXrr#)r6r<s rrXzBaseProactorEventLoop.closes ??   DBCC C >>    F  # % %)>)@)@ @ %   $ $ $ !!###    r=cHK|j||d{VSrN)rr)r6rns r sock_recvzBaseProactorEventLoop.sock_recvs0^((q111111111r=cHK|j||d{VSrN)rr)r6rbufs rsock_recv_intoz$BaseProactorEventLoop.sock_recv_intos0^--dC888888888r=cHK|j||d{VSrN)rr)r6rbufsizes r sock_recvfromz#BaseProactorEventLoop.sock_recvfroms0^,,T7;;;;;;;;;r=rclK|st|}|j|||d{VSrN)rEr recvfrom_into)r6rr/nbytess rsock_recvfrom_intoz(BaseProactorEventLoop.sock_recvfrom_intosE XXF^11$VDDDDDDDDDr=cHK|j||d{VSrN)rr)r6rrs r sock_sendallz"BaseProactorEventLoop.sock_sendalls0^((t444444444r=cLK|j||d|d{VS)Nr)rr)r6rrrs r sock_sendtoz!BaseProactorEventLoop.sock_sendtos4^**4q'BBBBBBBBBr=cHK|j||d{VSrN)rconnect)r6rrs r sock_connectz"BaseProactorEventLoop.sock_connects0^++D':::::::::r=cFK|j|d{VSrN)racceptrLs r sock_acceptz!BaseProactorEventLoop.sock_accepts.^**4000000000r=cK |}n2#ttjf$r}t jdd}~wwxYw t j|j}n"#t$rt jdwxYw|r|n|}|sdSt|d}|rt||z|n|} t||}d} t| |z |}|dkr| | dkr| |SS|j ||||d{V||z }| |z } e#| dkr| |wwxYw)Nznot a regular filerl)rDAttributeErrorioUnsupportedOperationrSendfileNotAvailableErrorosfstatst_sizercminseekrsendfile) r6rfileoffsetcountrDerrfsize blocksizeend_pos total_sents r_sock_sendfile_nativez+BaseProactorEventLoop._sock_sendfile_natives M[[]]FF 78 M M M67KLL L M MHV$$,EE M M M67KLL L M"-EE  1 ;// 05@#fune,,,5VU##  " (& 0)<< >&% A~ " &!!!! " n--dD&)LLLLLLLLL)#i'  (A~ " &!!!! "s2AAA A&&B D2.D22EcK|}||d{V ||j|||dd{V ||r|SS#||r|wwxYw)NF)fallback)rrr sock_sendfiler&rr)r6transprMrNrOrs r_sendfile_nativez&BaseProactorEventLoop._sendfile_natives **,,''))))))))) (++FL$5:,<<<<<<<< <  & & ( ( ( (%%'''' (  & & ( ( ( (%%'''' (s $B-Cc|j |jd|_|jd|_|jd|_|xjdzc_dS)Nr)rrW_ssockrXr  _internal_fdsrQs rr*z&BaseProactorEventLoop._close_self_pipesz  $ -  % , , . . .(,D %     ar=ctj\|_|_|jd|jd|xjdz c_dS)NFr)r socketpairr\r  setblockingr]rQs rrz%BaseProactorEventLoop._make_self_pipe s_#)#4#6#6  T[ &&& &&& ar=cr |||j|urdS|j|jd}||_||jdS#tj$rYdSttf$rt$r$}| d||dYd}~dSd}~wwxYw)Niz.Error on reading from the event loop self pipe)r`rar7) rrrrr\r_loop_self_readingrrrrrre)r6rrgs rrbz(BaseProactorEventLoop._loop_self_readings 9  (1 ##DK66A)*D %   7 8 8 8 8 8(    FF-.         ' 'K ))          s"A& A&&B68B6B11B6c|j}|dS |ddS#t$r$|jrt jddYdSYdSwxYw)Nz3Fail to write a null byte into the self-pipe socketTr)r rrc_debugr rd)r6csocks r_write_to_selfz$BaseProactorEventLoop._write_to_self-s     F , JJu      , , ,{ , 0&*,,,,,,, , , , ,s$'AAdc Zdfd dS)Nc F |||\}}jrtjd||} || dd|i n||d|irdSj }|j <| dS#t$r} dkr@ d|tj d n*jrtjd d Yd}~dSYd}~dSYd}~dSd}~wt"j$r YdSwxYw) Nz#%r got a new connection from %r: %rTr)rr:r;rrrrpzAccept failed on a socket)r`rarzAccept failed on socket %rr)rrer rdrrr(rr@rrDrrcrer rrXrr) rconnrr8rgr7protocol_factoryr6r;rrrrs rr7z2BaseProactorEventLoop._start_serving..loopDsM# *E!"JD${9 %J%+T4999//11H! E00 (JD#-t"4V2G1E 1GGGG 33 (#-t"4V4EEE>>##FN))$//78$T[[]]3##D))))) 6 6 6;;==B& 6//#>%("("8">">11 JJLLLL[6L!=!%6666666666666666!LLLLL,     s%BC$C$$ F .A6E66&F F rN)r1) r6rlrrr;backlogrrr7s ````` ``@r_start_servingz$BaseProactorEventLoop._start_serving?sf $ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *L tr=cdSrNr)r6 event_lists r_process_eventsz%BaseProactorEventLoop._process_eventsls r=c|jD]}||jdSrN)rvaluesrWclear)r6futures rr)z*BaseProactorEventLoop._stop_accept_futurespsJ*1133  F MMOOOO ""$$$$$r=c|j|d}|r||j||dSrN)rpoprDrWr _stop_servingrX)r6rrus rrxz#BaseProactorEventLoop._stop_servingus^%))$++-->>   MMOOO $$T*** r=rxrNr)r)NNrhNN)rBryrzr$rrrr!r#r%rXr-r0r3r7r9r;r>rArUrZr*rrbrgrnrqr)rxr~rs@rrrqsS 7 7 7 7 7=A267777 9= + $t"&!% + + + + + CG9999 BF*.KKKK @D(,OOOOAE)-JJJJ (222999<<<EEEE 555CCC;;;111""": ( ( (      99998,,,&>A-1,0++++Z   %%% r=r)$r{__all__rDrGrr|r rrrrrrr r r r logr r_FlowControlMixin BaseTransportr! ReadTransportrWriteTransportrrDatagramTransportr Transportrr BaseEventLooprrr=rrs #  000$@@@@@!=!+!9@@@FO2O2O2O2O2!;!+!9O2O2O2dk"k"k"k"k"&@&0&?k"k"k"\"A,A=A=A=A=A=!;!+!=A=A=A=H " " " " "#=#B#-#7 " " "000009>)30004IIIIIK5IIIIIr=