U e5dÛ¿ã@sÒddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl mZddl mZddl mZddl mZddl mZdd l mZdd l mZdd l mZdd l mZdd lmZdZe jdkrúedƒ‚dd„ZGdd„dejƒZGdd„dejƒZ Gdd„dej!ej"ƒZ#Gdd„dej$ƒZ%Gdd„dƒZ&dd„Z'Gdd „d e&ƒZ(Gd!d"„d"e(ƒZ)Gd#d$„d$e(ƒZ*Gd%d&„d&e&ƒZ+Gd'd(„d(e&ƒZ,Gd)d*„d*ej-ƒZ.eZ/e.Z0dS)+éNé)Ú base_events)Úbase_subprocess)Ú constants)Ú coroutines)Úevents)Ú exceptions)Úfutures)Úselector_events)Útasks)Ú transports)Úlogger)ÚSelectorEventLoopÚAbstractChildWatcherÚSafeChildWatcherÚFastChildWatcherÚMultiLoopChildWatcherÚThreadedChildWatcherÚDefaultEventLoopPolicyZwin32z+Signals are not really supported on WindowscCsdS©N©)ÚsignumÚframerrú+/usr/lib64/python3.8/asyncio/unix_events.pyÚ_sighandler_noop*srcsÆeZdZd(‡fdd„ Z‡fdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z d)dd„Z d*dd„Z d+dd„Z dd„Z d,dddddœdd„Zd-ddddddœdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Z‡ZS).Ú_UnixSelectorEventLoopNcstƒ |¡i|_dSr)ÚsuperÚ__init__Ú_signal_handlers)ÚselfÚselector©Ú __class__rrr5s z_UnixSelectorEventLoop.__init__csZtƒ ¡t ¡s.t|jƒD]}| |¡qn(|jrVtjd|›d�t |d�|j  ¡dS)NzClosing the loop z@ on interpreter shutdown stage, skipping signal handlers removal©Úsource) rÚcloseÚsysÚ is_finalizingÚlistrÚremove_signal_handlerÚwarningsÚwarnÚResourceWarningÚclear©rÚsigr!rrr%9s üz_UnixSelectorEventLoop.closecCs|D]}|sq| |¡qdSr)Ú_handle_signal)rÚdatarrrrÚ_process_self_dataGsz)_UnixSelectorEventLoop._process_self_datac GsLt |¡st |¡rtdƒ‚| |¡| ¡zt |j  ¡¡Wn2t t fk rt}zt t |ƒƒ‚W5d}~XYnXt |||d¡}||j|<zt |t¡t |d¡Wnšt k �rF}zz|j|=|j�szt d¡Wn4t t fk �r}zt d|¡W5d}~XYnX|jtjk�r4t d|›d�ƒ‚n‚W5d}~XYnXdS)Nz3coroutines cannot be used with add_signal_handler()Féÿÿÿÿúset_wakeup_fd(-1) failed: %súsig ú cannot be caught)rZ iscoroutineZiscoroutinefunctionÚ TypeErrorÚ _check_signalZ _check_closedÚsignalÚ set_wakeup_fdZ_csockÚfilenoÚ ValueErrorÚOSErrorÚ RuntimeErrorÚstrrZHandlerrÚ siginterruptr ÚinfoÚerrnoÚEINVAL)rr/ÚcallbackÚargsÚexcÚhandleZnexcrrrÚadd_signal_handlerNs2 ÿ   z)_UnixSelectorEventLoop.add_signal_handlercCs8|j |¡}|dkrdS|jr*| |¡n | |¡dSr)rÚgetZ _cancelledr)Z_add_callback_signalsafe)rr/rGrrrr0{s   z%_UnixSelectorEventLoop._handle_signalc Csæ| |¡z |j|=Wntk r,YdSX|tjkr@tj}ntj}zt ||¡WnBtk r˜}z$|jtj kr†t d|›d�ƒ‚n‚W5d}~XYnX|jsâzt  d¡Wn2t tfk rà}zt  d|¡W5d}~XYnXdS)NFr5r6r3r4T)r8rÚKeyErrorr9ÚSIGINTÚdefault_int_handlerÚSIG_DFLr=rBrCr>r:r<r rA)rr/ÚhandlerrFrrrr)…s(    z,_UnixSelectorEventLoop.remove_signal_handlercCs6t|tƒstd|›�ƒ‚|t ¡kr2td|›�ƒ‚dS)Nzsig must be an int, not zinvalid signal number )Ú isinstanceÚintr7r9Ú valid_signalsr<r.rrrr8¥s  z$_UnixSelectorEventLoop._check_signalcCst|||||ƒSr)Ú_UnixReadPipeTransport©rÚpipeÚprotocolÚwaiterÚextrarrrÚ_make_read_pipe_transport±sz0_UnixSelectorEventLoop._make_read_pipe_transportcCst|||||ƒSr)Ú_UnixWritePipeTransportrSrrrÚ_make_write_pipe_transportµsz1_UnixSelectorEventLoop._make_write_pipe_transportc Ës¼t ¡�ª} |  ¡stdƒ‚| ¡} t||||||||f| |dœ| —Ž} |  |  ¡|j| ¡z| IdHWnDt t fk r‚‚Yn,t k r¬|   ¡|   ¡IdH‚YnXW5QRX| S)NzRasyncio.get_child_watcher() is not activated, subprocess support is not installed.)rVrW)rÚget_child_watcherÚ is_activer>Ú create_futureÚ_UnixSubprocessTransportÚadd_child_handlerZget_pidÚ_child_watcher_callbackÚ SystemExitÚKeyboardInterruptÚ BaseExceptionr%Z_wait) rrUrEÚshellÚstdinÚstdoutÚstderrÚbufsizerWÚkwargsÚwatcherrVÚtransprrrÚ_make_subprocess_transport¹s8  ÿþý ÿz1_UnixSelectorEventLoop._make_subprocess_transportcCs| |j|¡dSr)Úcall_soon_threadsafeZ_process_exited)rÚpidÚ returncoderkrrrr`×sz._UnixSelectorEventLoop._child_watcher_callback)ÚsslÚsockÚserver_hostnameÚssl_handshake_timeoutc Ãs |r|dkr6tdƒ‚n |dk r&tdƒ‚|dk r6tdƒ‚|dk r¤|dk rNtdƒ‚t |¡}t tjtjd¡}z | d¡| ||¡IdHWqä| ¡‚YqäXn@|dkr´tdƒ‚|j tjksÌ|j tjkrÚtd|›�ƒ‚| d¡|j |||||d �IdH\}}||fS) Nz/you have to pass server_hostname when using sslz+server_hostname is only meaningful with sslú1ssl_handshake_timeout is only meaningful with sslú3path and sock can not be specified at the same timerFzno path and sock were specifiedú.A UNIX Domain Stream Socket was expected, got )rs) r<ÚosÚfspathÚsocketÚAF_UNIXÚ SOCK_STREAMÚ setblockingZ sock_connectr%ÚfamilyÚtypeZ_create_connection_transport) rÚprotocol_factoryÚpathrprqrrrsÚ transportrUrrrÚcreate_unix_connectionÚsRÿÿÿ     ÿÿ þz-_UnixSelectorEventLoop.create_unix_connectionédT)rqÚbacklogrprsÚ start_servingc ÃsÊt|tƒrtdƒ‚|dk r&|s&tdƒ‚|dk �rH|dk r@tdƒ‚t |¡}t tjtj¡}|ddkrÊz t   t  |¡j ¡r„t  |¡WnBt k ršYn0tk rÈ}zt d||¡W5d}~XYnXz| |¡Wnltk �r0} z8| ¡| jtjk�rd|›d�} ttj| ƒd‚n‚W5d} ~ XYn| ¡‚YnXn<|dk�rZtd ƒ‚|jtjk�sv|jtjk�r„td |›�ƒ‚| d ¡t ||g||||¡} |�rÆ|  ¡tjd|d �IdH| S) Nz*ssl argument must be an SSLContext or Nonertrur)rúz2Unable to check or remove stale UNIX socket %r: %rzAddress z is already in usez-path was not specified, and no sock specifiedrvF)Úloop)rOÚboolr7r<rwrxryrzr{ÚstatÚS_ISSOCKÚst_modeÚremoveÚFileNotFoundErrorr=r ÚerrorZbindr%rBZ EADDRINUSEr}r~r|rZServerZ_start_servingr Úsleep) rrr€rqr„rprsr…ÚerrrFÚmsgZserverrrrÚcreate_unix_serversn  ÿ ÿ  ÿ   ÿ ÿÿ  ÿz)_UnixSelectorEventLoop.create_unix_serverc Ãsôz tjWn,tk r6}zt d¡‚W5d}~XYnXz | ¡}Wn2ttjfk rv}zt d¡‚W5d}~XYnXzt |¡j }Wn,t k r´}zt d¡‚W5d}~XYnX|r¾|n|} | sÊdS|  ¡} |  | d||||| d¡| IdHS)Nzos.sendfile() is not availableznot a regular filer) rwÚsendfileÚAttributeErrorrÚSendfileNotAvailableErrorr;ÚioÚUnsupportedOperationÚfstatÚst_sizer=r]Ú_sock_sendfile_native_impl) rrqÚfileÚoffsetÚcountrFr;r�ZfsizeÚ blocksizeÚfutrrrÚ_sock_sendfile_nativeJs2 ÿ   ÿz,_UnixSelectorEventLoop._sock_sendfile_nativec Cs,| ¡} |dk r| |¡| ¡r4| |||¡dS|rd||}|dkrd| |||¡| |¡dSzt | |||¡} W�nDttfk rÆ|dkr¢|  ||¡|  | |j || ||||||¡ Y�nbt k �rj} z†|dk �r| j t jk�rt| ƒtk �rtdt jƒ} | | _| } |dk�rBt d¡} | |||¡| | ¡n| |||¡| | ¡W5d} ~ XYn¾ttfk �r„‚Yn¤tk �r¾} z| |||¡| | ¡W5d} ~ XYnjX| dk�rä| |||¡| |¡nD|| 7}|| 7}|dk�r |  ||¡|  | |j || ||||||¡ dS)Nrzsocket is not connectedzos.sendfile call failed)r;Ú remove_writerÚ cancelledÚ_sock_sendfile_update_fileposZ set_resultrwr“ÚBlockingIOErrorÚInterruptedErrorÚ_sock_add_cancellation_callbackZ add_writerršr=rBZENOTCONNr~ÚConnectionErrorÚ __cause__rr•Z set_exceptionrarbrc)rrŸZ registered_fdrqr;rœr�ržÚ total_sentÚfdZsentrFÚnew_excr�rrrršas†    þ   ÿ þÿ ÿ      þz1_UnixSelectorEventLoop._sock_sendfile_native_implcCs|dkrt ||tj¡dS©Nr)rwÚlseekÚSEEK_SET)rr;rœr©rrrr£§sz4_UnixSelectorEventLoop._sock_sendfile_update_fileposcs‡‡fdd„}| |¡dS)Ncs&| ¡r"ˆ ¡}|dkr"ˆ |¡dS)Nr3)r¢r;r¡)rŸrª©rrqrrÚcb¬szB_UnixSelectorEventLoop._sock_add_cancellation_callback..cb)Zadd_done_callback)rrŸrqr°rr¯rr¦«sz6_UnixSelectorEventLoop._sock_add_cancellation_callback)N)NN)NN)N)N)N)Ú__name__Ú __module__Ú __qualname__rr%r2rHr0r)r8rXrZrlr`r‚r’r ršr£r¦Ú __classcell__rrr!rr/sF -   ÿ ÿ þ ÿü .ÿü CFrcsŠeZdZdZd‡fdd„ Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z e jfdd„Zddd„Zdd„Zdd„Z‡ZS) rRiNcsÚtƒ |¡||jd<||_||_| ¡|_||_d|_d|_ t   |j¡j }t  |¡s„t  |¡s„t  |¡s„d|_d|_d|_tdƒ‚t  |jd¡|j |jj|¡|j |jj|j|j¡|dk rÖ|j tj|d¡dS)NrTFz)Pipe transport is for pipes/sockets only.)rrÚ_extraÚ_loopÚ_piper;Ú_filenoÚ _protocolÚ_closingÚ_pausedrwr˜r‹r‰ÚS_ISFIFOrŠÚS_ISCHRr<Ú set_blockingÚ call_soonÚconnection_madeÚ _add_readerÚ _read_readyr Ú_set_result_unless_cancelled)rr‡rTrUrVrWÚmoder!rrr¸s:    ÿþ ÿ ÿz_UnixReadPipeTransport.__init__cCsÀ|jjg}|jdkr | d¡n|jr0| d¡| d|j›�¡t|jddƒ}|jdk r�|dk r�t  ||jt j ¡}|r„| d¡q°| d¡n |jdk r¦| d¡n | d¡d  d   |¡¡S) NÚclosedÚclosingúfd=Ú _selectorÚpollingÚidleÚopenú<{}>ú )r"r±r·Úappendrºr¸Úgetattrr¶r Ú_test_selector_eventÚ selectorsZ EVENT_READÚformatÚjoin)rrAr rÉrrrÚ__repr__Ös(    ÿ     z_UnixReadPipeTransport.__repr__c Csºzt |j|j¡}WnDttfk r,YnŠtk rX}z| |d¡W5d}~XYn^X|rl|j  |¡nJ|j   ¡r‚t   d|¡d|_|j  |j¡|j  |jj¡|j  |jd¡dS)Nz"Fatal read error on pipe transportú%r was closed by peerT)rwÚreadr¸Úmax_sizer¤r¥r=Ú _fatal_errorr¹Z data_receivedr¶Ú get_debugr rArºÚ_remove_readerr¿Z eof_receivedÚ_call_connection_lost)rr1rFrrrrÂës  z"_UnixReadPipeTransport._read_readycCs>|js |jrdSd|_|j |j¡|j ¡r:t d|¡dS)NTz%r pauses reading)rºr»r¶rÚr¸rÙr Údebug©rrrrÚ pause_readingýs   z$_UnixReadPipeTransport.pause_readingcCsB|js |jsdSd|_|j |j|j¡|j ¡r>t d|¡dS)NFz%r resumes reading) rºr»r¶rÁr¸rÂrÙr rÜrÝrrrÚresume_readings   z%_UnixReadPipeTransport.resume_readingcCs ||_dSr©r¹©rrUrrrÚ set_protocol sz#_UnixReadPipeTransport.set_protocolcCs|jSrràrÝrrrÚ get_protocolsz#_UnixReadPipeTransport.get_protocolcCs|jSr©rºrÝrrrÚ is_closingsz!_UnixReadPipeTransport.is_closingcCs|js| d¡dSr)rºÚ_closerÝrrrr%sz_UnixReadPipeTransport.closecCs,|jdk r(|d|›�t|d�|j ¡dS©Nzunclosed transport r#©r·r,r%©rÚ_warnrrrÚ__del__s z_UnixReadPipeTransport.__del__úFatal error on pipe transportcCsZt|tƒr4|jtjkr4|j ¡rLtjd||dd�n|j ||||j dœ¡|  |¡dS©Nz%r: %sT©Úexc_info)ÚmessageÚ exceptionr�rU) rOr=rBZEIOr¶rÙr rÜÚcall_exception_handlerr¹ræ©rrFrðrrrrØs üz#_UnixReadPipeTransport._fatal_errorcCs(d|_|j |j¡|j |j|¡dS©NT)rºr¶rÚr¸r¿rÛ©rrFrrrræ-sz_UnixReadPipeTransport._closecCs4z|j |¡W5|j ¡d|_d|_d|_XdSr©r·r%r¹r¶Zconnection_lostrõrrrrÛ2s  z,_UnixReadPipeTransport._call_connection_lost)NN)rì)r±r²r³r×rrÔrÂrÞrßrârãrår%r*r+rërØrærÛr´rrr!rrR´s rRcs¨eZdZd%‡fdd„ Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zejfdd„Zdd„Zd&dd „Zd'd!d"„Zd#d$„Z‡ZS)(rYNc sþtƒ ||¡||jd<||_| ¡|_||_tƒ|_d|_ d|_ t   |j¡j }t |¡}t |¡}t |¡} |s”|s”| s”d|_d|_d|_tdƒ‚t  |jd¡|j |jj|¡| sÈ|ràtj d¡sà|j |jj|j|j¡|dk rú|j tj|d¡dS)NrTrFz?Pipe transport is only for pipes, sockets and character devicesZaix)rrrµr·r;r¸r¹Ú bytearrayÚ_bufferÚ _conn_lostrºrwr˜r‹r‰r½r¼rŠr<r¾r¶r¿rÀr&ÚplatformÚ startswithrÁrÂr rÃ) rr‡rTrUrVrWrÄZis_charZis_fifoZ is_socketr!rrr?s:       ÿ ÿz _UnixWritePipeTransport.__init__cCsØ|jjg}|jdkr | d¡n|jr0| d¡| d|j›�¡t|jddƒ}|jdk r¨|dk r¨t  ||jt j ¡}|r„| d¡n | d¡|  ¡}| d|›�¡n |jdk r¾| d¡n | d¡d   d  |¡¡S) NrÅrÆrÇrÈrÉrÊzbufsize=rËrÌrÍ)r"r±r·rÎrºr¸rÏr¶r rÐrÑZ EVENT_WRITEÚget_write_buffer_sizerÒrÓ)rrAr rÉrhrrrrÔds,    ÿ     z _UnixWritePipeTransport.__repr__cCs t|jƒSr)ÚlenrørÝrrrrü|sz-_UnixWritePipeTransport.get_write_buffer_sizecCs6|j ¡rt d|¡|jr*| tƒ¡n| ¡dS)NrÕ)r¶rÙr rArøræÚBrokenPipeErrorrÝrrrrÂs   z#_UnixWritePipeTransport._read_readyc Cs4t|tƒrt|ƒ}|sdS|js&|jrN|jtjkr|}d}t d|¡Yn.X|dkrLdSt|ƒ}|j ¡rlt  d||¡z|j   |¡\}}Wn.t k r®|j ¡rªtjd|dd�YnX|||f|žŽdS)Néÿú8Unknown child process pid %d, will report returncode 255rú$process %s exited with returncode %sú'Child watcher got an unexpected pid: %rTrî) rwÚwaitpidÚWNOHANGÚChildProcessErrorr rr#r¶rÙrÜr%ÚpoprJ)rr&rnr"rorDrErrrr'Ûs4þ  ÿ ÿ zSafeChildWatcher._do_waitpid) r±r²r³r%rrr_rr(r'r´rrr!rr´s rcsPeZdZ‡fdd„Z‡fdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z ‡Z S)rcs$tƒ ¡t ¡|_i|_d|_dSr¬)rrÚ threadingZLockÚ_lockÚ_zombiesÚ_forksrÝr!rrrs  zFastChildWatcher.__init__cs"|j ¡|j ¡tƒ ¡dSr)r%r-r:rr%rÝr!rrr%s  zFastChildWatcher.closec Cs0|j� |jd7_|W5QR£SQRXdS)Nr)r9r;rÝrrrrszFastChildWatcher.__enter__c Cs^|j�B|jd8_|js"|js0W5QR£dSt|jƒ}|j ¡W5QRXt d|¡dS)Nrz5Caught subprocesses termination from unknown pids: %s)r9r;r:r?r-r r)rrrrZcollateral_victimsrrrrs  þzFastChildWatcher.__exit__c Gsf|j�Fz|j |¡}Wn.tk rF||f|j|<YW5QR£dSXW5QRX|||f|žŽdSr)r9r:r7rJr%)rrnrDrErorrrr_'sz"FastChildWatcher.add_child_handlercCs*z|j|=WdStk r$YdSXdSr-r.rrrrr5s z%FastChildWatcher.remove_child_handlerc Csþzt dtj¡\}}Wntk r,YdSX|dkr:dSt|ƒ}|j�‚z|j |¡\}}WnNtk r¬|j r¤||j |<|j   ¡r–t  d||¡YW5QR£qd}YnX|j   ¡rÆt  d||¡W5QRX|dkrèt  d||¡q|||f|žŽqdS)Nr3rz,unknown process %s exited with returncode %sr2z8Caught subprocess termination from unknown pid: %d -> %d)rwr4r5r6r#r9r%r7rJr;r:r¶rÙr rÜr)rrnr"rorDrErrrr(<s@  þ  ÿþz FastChildWatcher._do_waitpid_all) r±r²r³rr%rrr_rr(r´rrr!rrþs  rc@sdeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dS)rcCsi|_d|_dSr)r%Ú_saved_sighandlerrÝrrrrzszMultiLoopChildWatcher.__init__cCs |jdk Sr)r<rÝrrrr\~szMultiLoopChildWatcher.is_activecCsT|j ¡|jdkrdSt tj¡}||jkr:t d¡nt tj|j¡d|_dS)Nz+SIGCHLD handler was changed by outside code) r%r-r<r9Ú getsignalr*r+r r)rrNrrrr%�s     zMultiLoopChildWatcher.closecCs|SrrrÝrrrr�szMultiLoopChildWatcher.__enter__cCsdSrr©rÚexc_typeZexc_valZexc_tbrrrr�szMultiLoopChildWatcher.__exit__cGs&t ¡}|||f|j|<| |¡dSr)rÚget_running_loopr%r')rrnrDrEr‡rrrr_“sz'MultiLoopChildWatcher.add_child_handlercCs*z|j|=WdStk r$YdSXdSr-r.rrrrršs z*MultiLoopChildWatcher.remove_child_handlercCsN|jdk rdSt tj|j¡|_|jdkrýsÿz6ThreadedChildWatcher._join_threads..)r(rEÚvaluesrÓ)rÚthreadsrKrrrrFûsz"ThreadedChildWatcher._join_threadscCs|SrrrÝrrrrszThreadedChildWatcher.__enter__cCsdSrrr>rrrrszThreadedChildWatcher.__exit__cCs6dd„t|j ¡ƒDƒ}|r2||j›d�t|d�dS)NcSsg|]}| ¡r|‘qSr)rGrIrrrrL sÿz0ThreadedChildWatcher.__del__..z0 has registered but not finished child processesr#)r(rErMr"r,)rrêrNrrrrës  þzThreadedChildWatcher.__del__cGsFt ¡}tj|jdt|jƒ›�||||fdd�}||j|<| ¡dS)Nzwaitpid-T)ÚtargetÚnamerErH) rr@r8ZThreadr'ÚnextrDrEÚstart)rrnrDrEr‡rKrrrr_s ý z&ThreadedChildWatcher.add_child_handlercCsdSrôrrrrrrsz)ThreadedChildWatcher.remove_child_handlercCsdSrrrrrrrsz ThreadedChildWatcher.attach_loopcCs˜zt |d¡\}}Wn(tk r<|}d}t d|¡Yn Xt|ƒ}| ¡r\t d||¡| ¡rtt d||¡n|j |||f|žŽ|j   |¡dS)Nrr0r1r2rA) rwr4r6r rr#rÙrÜrBrmrEr7)rr‡r&rDrErnr"rorrrr'"s&þ ÿz ThreadedChildWatcher._do_waitpidN)r±r²r³rr\r%rFrrr*r+rër_rrr'rrrrräs  rcsDeZdZeZ‡fdd„Zdd„Z‡fdd„Zdd„Zd d „Z ‡Z S) Ú_UnixDefaultEventLoopPolicycstƒ ¡d|_dSr)rrÚ_watcherrÝr!rrrAs z$_UnixDefaultEventLoopPolicy.__init__c CsHtj�8|jdkr:tƒ|_tt ¡tjƒr:|j |j j ¡W5QRXdSr) rr9rTrrOr8Úcurrent_threadÚ _MainThreadrÚ_localr¶rÝrrrÚ _init_watcherEs ÿz)_UnixDefaultEventLoopPolicy._init_watchercs6tƒ |¡|jdk r2tt ¡tjƒr2|j |¡dSr)rÚset_event_looprTrOr8rUrVrrr!rrrYMs   ÿz*_UnixDefaultEventLoopPolicy.set_event_loopcCs|jdkr| ¡|jSr)rTrXrÝrrrr[[s z-_UnixDefaultEventLoopPolicy.get_child_watchercCs|jdk r|j ¡||_dSr)rTr%)rrjrrrÚset_child_watcheres  z-_UnixDefaultEventLoopPolicy.set_child_watcher) r±r²r³rZ _loop_factoryrrXrYr[rZr´rrr!rrS=s    rS)1rBr–rCrwrÑr9ryr‰r r&r8r*Úrrrrrrr r r r Úlogr Ú__all__rúÚ ImportErrorrZBaseSelectorEventLooprZ ReadTransportrRZ_FlowControlMixinZWriteTransportrYZBaseSubprocessTransportr^rr#r$rrrrZBaseDefaultEventLoopPolicyrSrrrrrrÚs^             ÿNO5Ji}Y3