\ddZdZddlZddlZddlZddlZddlZddlZddlZddl 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 (..\python\lib\asyncio\proactor_events.py_set_socket_extrars !'!7!=!=IXC'+'7'7'9'9 $$ <CCC ? $ $ & & C N,dT C C C CC ))) 0+/+;+;+=+=I Z ( ( (| 0 0 0+/I Z ( ( ( ( 0*)s!;?A=<A= B((CCczeZdZdZ dfd ZdZdZdZdZdZ d Z e j fd Z dd Zd ZdZdZxZS)_ProactorBasePipeTransportz*Base class for pipe and socket transports.Nc t||||||_||||_d|_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_called_connection_lost _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)lenr0formatjoin)r7infos r__repr__z#_ProactorBasePipeTransport.__repr__Is+'( :  KK ! ! ! ! ] # KK " " " : ! KK3dj//1133 4 4 4 > % KK222 3 3 3 ? & KK444 5 5 5 < > KK<T\):):<< = = =   ' KK & & &}}SXXd^^,,,r>c||jd<dS)Npipe)rr7rs rr%z%_ProactorBasePipeTransport._set_extra[s" Fr>c||_dSNr3)r7r9s rr'z'_ProactorBasePipeTransport.set_protocol^s !r>c|jSrOrPr7s r get_protocolz'_ProactorBasePipeTransport.get_protocolas ~r>c|jSrO)r.rRs r is_closingz%_ProactorBasePipeTransport.is_closingds }r>c|jrdSd|_|xjdz c_|js'|j |j|jd|j"|jd|_dSdS)NTr) r.r-r)r+rr2_call_connection_lostr*cancelrRs rclosez _ProactorBasePipeTransport.closegs =  F  1| C 7 J !;T B B B > % N ! ! # # #!DNNN & %r>cv|j1|d|t||jdSdS)Nzunclosed transport )source)r&ResourceWarningrY)r7_warns r__del__z"_ProactorBasePipeTransport.__del__rsL : ! 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 exceptionrr9) isinstanceOSErrorrrr debugcall_exception_handlerr3 _force_close)r7excras r _fatal_errorz'_ProactorBasePipeTransport._fatal_errorws ##w'' :''))IL44HHHH 11&!$!% $ 33   c " " " " "D  c " " " "s A+BBc|jP|js7||jdn|j||jr |jrdSd|_|xjdz c_|jr |jd|_|j r |j d|_ d|_ d|_ |j |j|dS)NTrr) _empty_waiterdone set_result set_exceptionr.r/r-r+rXr*r,r)rr2rW)r7rhs rrgz'_ProactorBasePipeTransport._force_closes   )$2D2I2I2K2K ){"--d3333"00555 = T9  F  1 ? # O " " $ $ $"DO > " N ! ! # # #!DN  T7=====r>c|jrdS |j|t|jdrA|jdkr$|jtj|j d|_|j }|| d|_ d|_dS#t|jdrA|jdkr$|jtj|j d|_|j }|| d|_ d|_wxYw)NshutdownT) r/r3connection_losthasattrr&rErpr SHUT_RDWRrYr(_detach)r7rhr<s rrWz0_ProactorBasePipeTransport._call_connection_losts\  '  F 0 N * *3 / / / tz:.. 64:3D3D3F3F"3L3L ##F$4555 J     DJ\F!   # +/D ( ( (tz:.. 64:3D3D3F3F"3L3L ##F$4555 J     DJ\F!   # +/D ( / / / /s CB#E+cP|j}|j|t|jz }|SrO)r,r)rF)r7sizes rget_write_buffer_sizez0_ProactorBasePipeTransport.get_write_buffer_sizes+" < # C %% %D r>NNN)r_)rC __module__ __qualname____doc__r$rJr%r'rSrUrYwarningswarnr^rirgrWrx __classcell__r=s@rr!r!.s4448$(//////.---$###""" " " "%M # # # #>>>(000(r>r!cNeZdZdZ d fd ZdZdZdZdZd Z d d Z xZ S) _ProactorReadPipeTransportzTransport for read pipes.Ncd|_d|_t||||||t ||_|j|jd|_dS)NrqTF) _pending_data_length_pausedr#r$ bytearray_datarr2 _loop_reading) r7r8rr9r:r;r< buffer_sizer=s rr$z#_ProactorReadPipeTransport.__init__sg$&!  tXvufEEE{++  T/000 r>c"|j o|j SrO)rr.rRs r is_readingz%_ProactorReadPipeTransport.is_readings<5 $55r>c|js|jrdSd|_|jrt jd|dSdS)NTz%r pauses reading)r.rrrr rerRs 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)NFrqz%r resumes reading) r.rr*rr2rr_data_receivedrrr re)r7lengths rresume_readingz)_ProactorReadPipeTransport.resume_readings =    F > ! J !3T : : :*$&! B;; 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 rer3 eof_received SystemExitKeyboardInterrupt BaseExceptionrirY)r7 keep_openrhs 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)Nrqrz3Fatal error: protocol.buffer_updated() call failed.) rrrrcr3r BufferedProtocol_feed_data_to_buffered_protorrrri data_received)r7datarrhs rrz)_ProactorReadPipeTransport._data_receiveds  < ,2222(.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)Nrqrz"Fatal read error on pipe transportz*Read error on pipe transport while closingTr)r*r.rlresultrrrXrr _proactor recv_intor&add_done_callbackrConnectionAbortedErrorrirr reConnectionResetErrorrgrdrCancelledError)r7futrrrhs rrz(_ProactorReadPipeTransport._loop_readings- 2~,,1G152H1G1G!%88:: ! ZZ\\F{{D{{##D&11111{A :gvg.DDJJLLL} 2{{##D&11111{)< X!%!5!?!? DJ!W!W< E001CDDD& , , ,= ,!!#'KLLLL%%'' , I&*,,,,# # # #   c " " " " " " " " I I I   c#G H H H H H H H H(   =    {{##D&11111{v{{##D&1111smAD 7+D 6D 9'H G(*A E<7H < G( F#H # G(0G H G(%H 'G((H H*)NNNrrO) rCrzr{r|r$rrrrrrrrs@rrrs##486;666444&555$ ///20202020202020202r>rcReZdZdZdZfdZdZd dZdZdZ d Z d Z d Z xZ S) _ProactorBaseWritePipeTransportzTransport for write pipes.TcHtj|i|d|_dSrO)r#r$rkr7argskwr=s rr$z(_ProactorBaseWritePipeTransport.__init__Ms-$%"%%%!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)rcbytesr memoryview TypeErrortyperCr0 RuntimeErrorrkr-r!LOG_THRESHOLD_FOR_CONNLOST_WRITESr rr+r) _loop_writing_maybe_pause_protocolextend)r7rs rwritez%_ProactorBaseWritePipeTransport.writeQsc$ : >?? .-Dzz*--.. .   =;<< <   )IJJ J  F ? )"MMM@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)rr2rWr0r&rprSHUT_WR_maybe_resume_protocolrsendrlrFrrrrkrmrrgrdri)r7frrhs rrz-_ProactorBaseWritePipeTransport._loop_writingws6& J}!8T]!8''''"DO"#D   ||#  J=KJ(()CTJJJ$8J''777 ++----"&*"6";";DJ"M"M++--J.!3333*-d))D'O55d6HIII..0000O55d6HIII!-$/2I"--d33333.-2I2I# # # #   c " " " " " " " " " J J J   c#H I I I I I I I I I Js)F!FF!! G4+G G4G//G4cdSNTrRs r can_write_eofz-_ProactorBaseWritePipeTransport.can_write_eoftr>c.|dSrO)rYrRs r write_eofz)_ProactorBaseWritePipeTransport.write_eofs r>c0|ddSrOrgrRs rabortz%_ProactorBaseWritePipeTransport.abort $r>c|jtd|j|_|j|jd|jS)NzEmpty waiter is already set)rkrr create_futurer+rmrRs r_make_empty_waiterz2_ProactorBaseWritePipeTransport._make_empty_waitersX   )<== =!Z5577 ? "   ) )$ / / /!!r>cd|_dSrO)rkrRs r_reset_empty_waiterz3_ProactorBaseWritePipeTransport._reset_empty_waiters!r>NN)rCrzr{r|_start_tls_compatibler$rrrrrrrrrs@rrrGs$$ """""$)$)$)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+rgBrokenPipeErrorrY)r7rs rrz(_ProactorWritePipeTransport._pipe_closeds ==??  Fzz||s"""" = >))) Fdn$$$sDN&;$$$ ? &   o// 0 0 0 0 0 JJLLLLLr>)rCrzr{r$rrrs@rrrsG<<<<<       r>rcReZdZdZ d fd ZdZdZdZd dZd dZ d d Z xZ S) _ProactorDatagramTransportiNc||_d|_d|_t|||||t j|_|j |j dS)Nr)r:r;) _addressrk _buffer_sizer#r$ collectionsdequer)rr2r)r7r8rr9addressr:r;r=s rr$z#_ProactorDatagramTransport.__init__sp ! tXfEJJJ#(**  T/00000r>c&t||dSrOrrMs rr%z%_ProactorDatagramTransport._set_extra$%%%%%r>c|jSrO)rrRs rrxz0_ProactorDatagramTransport.get_write_buffer_sizes   r>c0|ddSrOrrRs 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)rcrrrrrr ValueErrorr-rrr rr)rDrrFr+rr)r7raddrs rsendtoz!_ProactorDatagramTransport.sendtos?$ : >?? (J JJ(( (  F = $dDM5J)J)JCDMCCEE E ? t} )"MMMBCCC 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.rr2rWpopleftrrFrrr&rrrrrdr3error_received Exceptionri)r7rrrrhs rrz(_ProactorDatagramTransport._loop_writings * $/))))"DO  < DO   =KJ(()CTJJJ--//JD$   T *  }("&*"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||wwxYwrO)r-r3datagram_receivedr*r.rrrrrr&max_sizerecvfromrrrdrrr)r7rrrresrhs rrz(_ProactorDatagramTransport._loop_reading#s' = H =00t<<<<< = =E>S((T^-C-1].D-C-C"DNjjll=D0 =00t<<<<< = =-=,!$dm$DD!$JD$   =00t<<<<< = =}(!%!5!:!:4:;?="J"J"&!5!>!>tz?C}"N"N~)001CDDD / / / N ) )# . . . . . . . .(   =     =00t<<<<< = =t =00t<<<< =sME?EE A&E3'G F $F>GF GF  G G$ryrO) rCrzr{rr$r%rxrrrrrrs@rrrsH59$( 1 1 1 1 1 1&&&!!!   %%%%: * * * *D)=)=)=)=)=)=)=)=r>rceZdZdZdZdZdS)_ProactorDuplexPipeTransportzTransport for duplex pipes.cdS)NFrrRs rrz*_ProactorDuplexPipeTransport.can_write_eofTsur>ctrO)NotImplementedErrorrRs rrz&_ProactorDuplexPipeTransport.write_eofWs!!r>N)rCrzr{r|rrrr>rrrOs:&%"""""r>rcReZdZdZejjZ dfd ZdZ dZ dZ xZ S)_ProactorSocketTransportz Transport for connected sockets.Nc|t||||||tj|dSrO)r#r$r _set_nodelayr6s rr$z!_ProactorSocketTransport.__init__bs< tXvufEEE &&&&&r>c&t||dSrOrrMs rr%z#_ProactorSocketTransport._set_extragrr>cdSrrrRs rrz&_ProactorSocketTransport.can_write_eofjrr>c|js|jrdSd|_|j&|jt jdSdSr)r.r0r+r&rprrrRs rrz"_ProactorSocketTransport.write_eofmsQ = D-  F  ? " J   / / / / / # "r>ry) rCrzr{r|r _SendfileMode TRY_NATIVE_sendfile_compatibler$r%rrrrs@rrr[s+*$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 rer=rCr _selector_self_reading_future_accept_futuresset_loop_make_self_pipe threadingcurrent_thread main_threadsignal set_wakeup_fd_csockrE)r7proactorr=s rr$zBaseProactorEventLoop.__init__ws  )8+=+FGGG!!$(!!$   # % %)>)@)@ @ @  !3!3!5!5 6 6 6 6 6 A @r>Nc*t||||||SrO)r)r7rr9r:r;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) r7rawsockr9 sslcontextr:rrr;r<rr ssl_protocols r_make_ssl_transportz)BaseProactorEventLoop._make_ssl_transports\  +h F_&;%9 ;;; !w ',V = = = =**r>c*t||||||SrO)r)r7rr9rr:r;s r_make_datagram_transportz.BaseProactorEventLoop._make_datagram_transports!)$h*0%99 9r>c(t|||||SrO)rr7rr9r:r;s r_make_duplex_pipe_transportz1BaseProactorEventLoop._make_duplex_pipe_transports"+D,0(FEKK Kr>c(t|||||SrO)rr!s r_make_read_pipe_transportz/BaseProactorEventLoop._make_read_pipe_transports)$hNNNr>c(t|||||SrO)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 looprq) is_runningr is_closedr r r r r _stop_accept_futures_close_self_piperrYrr#)r7r=s rrYzBaseProactorEventLoop.closes ??   DBCC C >>    F  # % %)>)@)@ @ @   $ $ $ !!###    r>cHK|j||d{VSrO)rr)r7rns r sock_recvzBaseProactorEventLoop.sock_recvs0^((q111111111r>cHK|j||d{VSrO)rr)r7rbufs rsock_recv_intoz$BaseProactorEventLoop.sock_recv_intos0^--dC888888888r>cHK|j||d{VSrO)rr)r7rbufsizes r sock_recvfromz#BaseProactorEventLoop.sock_recvfroms0^,,T7;;;;;;;;;r>rclK|st|}|j|||d{VSrO)rFr recvfrom_into)r7rr0nbytess rsock_recvfrom_intoz(BaseProactorEventLoop.sock_recvfrom_intosE XXF^11$VDDDDDDDDDr>cHK|j||d{VSrO)rr)r7rrs r sock_sendallz"BaseProactorEventLoop.sock_sendalls0^((t444444444r>cLK|j||d|d{VS)Nr)rr)r7rrrs r sock_sendtoz!BaseProactorEventLoop.sock_sendtos4^**4q'BBBBBBBBBr>cHK|j||d{VSrO)rconnect)r7rrs r sock_connectz"BaseProactorEventLoop.sock_connects0^++D':::::::::r>cFK|j|d{VSrO)racceptrMs 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)rEAttributeErrorioUnsupportedOperationrSendfileNotAvailableErrorosfstatst_sizerdminseekrsendfile) r7rfileoffsetcountrEerrfsize 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)r7transprNrOrPrs r_sendfile_nativez&BaseProactorEventLoop._sendfile_natives **,,''))))))))) (++FL$5:,<<<<<<<< <  & & ( ( ( (%%'''' (  & & ( ( ( (%%'''' (s $B-Cc|j |jd|_|jd|_|jd|_|xjdzc_dS)Nr)rrX_ssockrYr _internal_fdsrRs rr+z&BaseProactorEventLoop._close_self_pipesx  $ 0  % , , . . .(,D %     ar>ctj\|_|_|jd|jd|xjdz c_dS)NFr)r socketpairr]r setblockingr^rRs rrz%BaseProactorEventLoop._make_self_pipes_#)#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)rarbr8) rrrrr]r_loop_self_readingrrrrrrf)r7rrhs rrcz(BaseProactorEventLoop._loop_self_readings 9} (11##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)rrrd_debugr re)r7csocks r_write_to_selfz$BaseProactorEventLoop._write_to_self1s   = 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<rrrrqzAccept failed on a socket)rarbrzAccept failed on socket %rr)rrfr rerrr)rrArrErrdrfr rrYrr) rconnrr9rhr8protocol_factoryr7r<rrrrs rr8z2BaseProactorEventLoop._start_serving..loopHsD# *=!"JD${9 %J%+T4999//11H!-00 (JD#-t"4V2G1E 1GGGG 33 (#-t"4V4EEE>>##FN))$//78$T[[]]3##D))))) 6 6 6;;==B&&//#>%("("8">">11 JJLLLL[6L!=!%6666666666666666!LLLLL,     s%BC$C$$ F .A6E66&F F rO)r2) r7rmrrr<backlogrrr8s ````` ``@r_start_servingz$BaseProactorEventLoop._start_servingCsf $ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *L tr>cdSrOr)r7 event_lists r_process_eventsz%BaseProactorEventLoop._process_eventsps r>c|jD]}||jdSrO)rvaluesrXclear)r7futures rr*z*BaseProactorEventLoop._stop_accept_futurestsJ*1133  F MMOOOO ""$$$$$r>c|j|d}|r||j||dSrO)rpoprErXr _stop_servingrY)r7rrvs rryz#BaseProactorEventLoop._stop_servingys^%))$++-->>   MMOOO $$T*** r>ryrOr)r)NNriNN)rCrzr{r$rrrr"r$r&rYr.r1r4r8r:r<r?rBrVr[r+rrcrhrorrr*ryrrs@rrrusS 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__rErHrr}r r rrrrrr r r r logr r_FlowControlMixin BaseTransportr! ReadTransportrWriteTransportrrDatagramTransportr Transportrr BaseEventLooprrr>rrs #  000$DDDDD!=!+!9DDDNO2O2O2O2O2!;!+!9O2O2O2dk"k"k"k"k"&@&0&?k"k"k"\"A,A=A=A=A=A=!;!+!=A=A=A=H " " " " "#=#B#-#7 " " "000009>)30004IIIIIK5IIIIIr>