Ë ‚Ö¦iÜ‚ãó—dZdZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl m Z dd l mZdd l mZdd l mZdd l mZdd lmZd„ZGd„dej*ej,«ZGd„deej0«ZGd„deej4«ZGd„de«ZGd„deej:«ZGd„deeej>«Z Gd„deeej>«Z!Gd„de jD«Z#y)z¦Event 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. )ÚBaseProactorEventLoopéNé)Ú base_events)Ú constants)Úfutures)Ú exceptions)Ú protocols)Ússlproto)Ú transports)Útrsock)ÚloggercóÄ—tj|«|jd< |j«|jd<d|jvr |j«|jd<yy#tj $r5|j j«rtjd|d¬«YŒuwxYw#tj $rd|jd<YywxYw)NÚsocketÚsocknamezgetsockname() failed on %rT©Úexc_infoÚpeername) r ÚTransportSocketÚ_extraÚ getsocknamerÚerrorÚ_loopÚ get_debugr ÚwarningÚ getpeername)Ú transportÚsocks ú0/usr/lib64/python3.12/asyncio/proactor_events.pyÚ_set_socket_extrarsÏ€Ü!'×!7Ñ!7¸Ó!=€I×Ñ�XÑðCØ'+×'7Ñ'7Ó'9ˆ ×јÑ$ð ˜×)Ñ)Ñ)ð 0Ø+/×+;Ñ+;Ó+=ˆI× Ñ ˜ZÒ (ð*øô �<‰<òCØ �?‰?× $Ñ $Ô &Ü �N‰NØ,¨d¸Tõ CùðCûô�|‰|ò 0à+/ˆI× Ñ ˜ZÓ (ð 0ús$¤A/ÁB:Á/AB7Â6B7Â:"CÃCc󄇗eZdZdZ dˆfd„ Zd„Zd„Zd„Zd„Zd„Z d„Z e jfd „Z dd „Zd „Zd „Zd „ZˆxZS)Ú_ProactorBasePipeTransportz*Base class for pipe and socket transports.cóþ•—t‰|�||«|j|«||_|j |«||_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ |j �|j j«|jj!|j"j$|«|�,|jj!t&j(|d«yy)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Ú _protocolÚconnection_maderÚ_set_result_unless_cancelled©ÚselfÚlooprÚprotocolÚwaiterÚextraÚserverÚ __class__s €rr$z#_ProactorBasePipeTransport.__init__2s×ø€ä ‰Ñ˜ Ô%Ø �‰˜Ô؈Œ Ø ×ј(Ô#؈Œ ؈Œ ؈ŒØˆŒØˆÔ؈ŒØˆŒ Ø',ˆÔ$Ø!ˆÔØ �<‰<Ð #Ø �L‰L× Ñ Ô "Ø � ‰ ×јTŸ^™^×;Ñ;¸TÔBØ Ð à �J‰J× Ñ ¤×!EÑ!EØ!'¨õ /ð ócóž—|jjg}|j€|jd«n|jr|jd«|j�,|jd|jj «›�«|j �|jd|j ›�«|j�|jd|j›�«|jr'|jdt|j«›�«|jr|jd«djd j|««S) NÚclosedÚclosingzfd=zread=zwrite=zwrite_bufsize=z EOF writtenz<{}>Ú ) r=Ú__name__r&Úappendr.Úfilenor*r+r)Úlenr0ÚformatÚjoin)r7Úinfos rÚ__repr__z#_ProactorBasePipeTransport.__repr__Isü€Ø—‘×'Ñ'Ð(ˆØ �:‰:Ð Ø �K‰K˜Õ !Ø �]Š]Ø �K‰K˜ Ô "Ø �:‰:Ð !Ø �K‰K˜#˜dŸj™j×/Ñ/Ó1Ð2Ð3Ô 4Ø �>‰>Ð %Ø �K‰K˜% §¡Ð1Ð2Ô 3Ø �?‰?Ð &Ø �K‰K˜& §¡Ð 3Ð4Ô 5Ø �<Š<Ø �K‰K˜.¬¨T¯\©\Ó):Ð(;Ð<Ô =Ø × Ò Ø �K‰K˜ Ô &Ø�}‰}˜SŸX™X d›^Ó,Ð,r>có"—||jd<y)NÚpipe)r©r7rs rr%z%_ProactorBasePipeTransport._set_extra[s€Ø"ˆ� ‰ �FÒr>có—||_y©N©r3)r7r9s rr'z'_ProactorBasePipeTransport.set_protocol^s €Ø!ˆ�r>có—|jSrOrP©r7s rÚ get_protocolz'_ProactorBasePipeTransport.get_protocolas €Ø�~‰~Ðr>có—|jSrO)r.rRs rÚ is_closingz%_ProactorBasePipeTransport.is_closingds €Ø�}‰}Ðr>có.—|jryd|_|xjdz c_|js2|j€&|jj |j d«|j�"|jj«d|_yy)NTr) r.r-r)r+rr2Ú_call_connection_lostr*ÚcancelrRs rÚclosez _ProactorBasePipeTransport.closegsq€Ø �=Š=Ø ØˆŒ Ø �Š˜1Ñ�Ø�|Š| §¡Ð 7Ø �J‰J× Ñ  ×!;Ñ!;¸TÔ BØ �>‰>Ð %Ø �N‰N× !Ñ !Ô #Ø!ˆD�Nð &r>cóv—|j�-|d|›�t|¬«|jj«yy)Nzunclosed transport )Úsource)r&ÚResourceWarningrY)r7Ú_warns rÚ__del__z"_ProactorBasePipeTransport.__del__rs5€Ø �:‰:Ð !Ù Ð'¨ xÐ0´/È$Õ OØ �J‰J× Ñ Õ ð "r>có0— t|t«r4|jj«rDt j d||d¬«n*|jj ||||jdœ«|j|«y#|j|«wxYw)Nz%r: %sTr)ÚmessageÚ exceptionrr9) Ú isinstanceÚOSErrorrrr ÚdebugÚcall_exception_handlerr3Ú _force_close)r7Úexcr`s rÚ _fatal_errorz'_ProactorBasePipeTransport._fatal_errorwsy€ð #ܘ#œwÔ'Ø—:‘:×'Ñ'Ô)Ü—L‘L ¨4°À4ÖHà— ‘ ×1Ñ1Ø&Ø!$Ø!%Ø $§¡ñ 3ôð × Ñ ˜cÕ "øˆD× Ñ ˜cÕ "ús ‚A.BÂBcóH—|j�S|jj«s9|€|jjd«n|jj|«|jr |j ryd|_|xj dz c_|jr!|jj«d|_|jr!|jj«d|_ d|_ d|_ |jj|j|«y)NTrr)Ú _empty_waiterÚdoneÚ set_resultÚ set_exceptionr.r/r-r+rXr*r,r)rr2rW)r7rgs rrfz'_ProactorBasePipeTransport._force_close†sØ€Ø × Ñ Ð )°$×2DÑ2D×2IÑ2IÔ2K؈{Ø×"Ñ"×-Ñ-¨dÕ3à×"Ñ"×0Ñ0°Ô5Ø �=Š=˜T×9Ò9Ø ØˆŒ Ø �Š˜1Ñ�Ø �?Š?Ø �O‰O× "Ñ "Ô $Ø"ˆDŒOØ �>Š>Ø �N‰N× !Ñ !Ô #Ø!ˆDŒNØˆÔØˆŒ Ø � ‰ ×јT×7Ñ7¸Õ=r>có—|jry |jj|«t|jd«rF|jj «dk7r)|jj tj«|jj«d|_|j}|�|j«d|_ d|_y#t|jd«rF|jj «dk7r)|jj tj«|jj«d|_|j}|�|j«d|_ d|_wxYw)NÚshutdownéÿÿÿÿT) r/r3Úconnection_lostÚhasattrr&rErorÚ SHUT_RDWRrYr(Ú_detach)r7rgr<s rrWz0_ProactorBasePipeTransport._call_connection_lostšs€Ø × 'Ò 'Ø ð 0Ø �N‰N× *Ñ *¨3Ô /ô �t—z‘z :Ô.°4·:±:×3DÑ3DÓ3FÈ"Ò3LØ— ‘ ×#Ñ#¤F×$4Ñ$4Ô5Ø �J‰J× Ñ Ô ØˆDŒJØ—\‘\ˆFØÐ!Ø—‘Ô Ø#�” Ø+/ˆDÕ (øô�t—z‘z :Ô.°4·:±:×3DÑ3DÓ3FÈ"Ò3LØ— ‘ ×#Ñ#¤F×$4Ñ$4Ô5Ø �J‰J× Ñ Ô ØˆDŒJØ—\‘\ˆFØÐ!Ø—‘Ô Ø#�” Ø+/ˆDÕ (ús �CÃB+E?cóf—|j}|j�|t|j«z }|SrO)r,r)rF)r7Úsizes rÚget_write_buffer_sizez0_ProactorBasePipeTransport.get_write_buffer_size®s/€Ø×"Ñ"ˆØ �<‰<Ð #Ø ”C˜Ÿ ™ Ó%Ñ %ˆD؈ r>©NNN)zFatal error on pipe transport)rCÚ __module__Ú __qualname__Ú__doc__r$rJr%r'rSrUrYÚwarningsÚwarnr^rhrfrWrwÚ __classcell__©r=s@rr!r!.sQø„á4à48Ø$(õ/ò.-ò$#ò"òòò "ð%ŸM™Móó #ò>ò(0ö(r>r!cóN‡—eZdZdZ d ˆfd„ Zd„Zd„Zd„Zd„Zd„Z d d„Z ˆxZ S) Ú_ProactorReadPipeTransportzTransport for read pipes.có•—d|_d|_t‰|� ||||||«t |«|_|j j|j«d|_y)NrpTF) Ú_pending_data_lengthÚ_pausedr#r$Ú bytearrayÚ_datarr2Ú _loop_reading) r7r8rr9r:r;r<Ú buffer_sizer=s €rr$z#_ProactorReadPipeTransport.__init__¹sTø€à$&ˆÔ!؈Œ Ü ‰Ñ˜˜t X¨v°u¸fÔEä˜{Ó+ˆŒ Ø � ‰ ×јT×/Ñ/Ô0؈� r>có:—|j xr |j SrO)r„r.rRs rÚ is_readingz%_ProactorReadPipeTransport.is_readingÃs€Ø—<‘<ÐÒ5¨¯ © Ð$5Ð5r>có¦—|js |jryd|_|jj«rt j d|«yy)NTz%r pauses reading)r.r„rrr rdrRs rÚ pause_readingz(_ProactorReadPipeTransport.pause_readingÆs?€Ø �=Š=˜DŸLšLØ ØˆŒ ð �:‰:× Ñ Ô !Ü �L‰LÐ,¨dÕ 3ð "r>có¢—|js |jsyd|_|j€&|jj |j d«|j }d|_|dkDr4|jj |j|jd||«|jj«rtjd|«yy)NFrpz%r resumes reading) r.r„r*rr2r‡rƒÚ_data_receivedr†rr rd)r7Úlengths rÚresume_readingz)_ProactorReadPipeTransport.resume_readingÙs¤€Ø �=Š= § ¢ Ø àˆŒ Ø �>‰>Ð !Ø �J‰J× Ñ  ×!3Ñ!3°TÔ :à×*Ñ*ˆØ$&ˆÔ!Ø �BŠ;ð �J‰J× Ñ  ×!4Ñ!4°d·j±jÀÀ&Ð6IÈ6Ô Rà �:‰:× Ñ Ô !Ü �L‰LÐ-¨tÕ 4ð "r>có.—|jj«rtjd|« |jj «}|s|j«yy#t tf$r‚t$r}|j|d«Yd}~yd}~wwxYw)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.) rrr rdr3Ú eof_receivedÚ SystemExitÚKeyboardInterruptÚ BaseExceptionrhrY)r7Ú keep_openrgs rÚ _eof_receivedz(_ProactorReadPipeTransport._eof_receivedës†€Ø �:‰:× Ñ Ô !Ü �L‰LÐ*¨DÔ 1ð ØŸ™×3Ñ3Ó5ˆIñØ �J‰J�LðøôÔ-Ð.ò Ø Üò Ø × Ñ ØÐHô Jä ûð ús²A Á BÁ8BÂBcóª—|jr|jdk(sJ‚||_y|dk(r|j«yt|jt j «r" t j|j|«y|jj|«y#ttf$r‚t$r}|j|d«Yd}~yd}~wwxYw)Nrprz3Fatal error: protocol.buffer_updated() call failed.) r„rƒr—rbr3r ÚBufferedProtocolÚ_feed_data_to_buffered_protor“r”r•rhÚ data_received)r7Údatar�rgs rrŽz)_ProactorReadPipeTransport._data_receivedûs¾€Ø �<Š<ð×,Ñ,°Ò2Ð 2Ð2Ø(.ˆDÔ %Ø à �QŠ;Ø × Ñ Ô Ø ä �d—n‘n¤i×&@Ñ&@Ô Að Ü×6Ñ6°t·~±~ÀtÕLð �N‰N× (Ñ (¨Õ .øôÔ 1Ð2ò ØÜ ò Ø×!Ñ! #ð#1ô2ôûð  úsÁ! BÂCÂ6C à Ccóš—d}d} |� |j|us|j€ |jsJ‚d|_|j«rQ|j«}|dk(r |dkDr|j ||«yyt t |j«d|«}n|j«|jr |dkDr|j ||«yy|js?|jjj|j|j«|_|js&|jj|j« |dkDr|j ||«yy#t $rZ}|js|j#|d«n1|jj%«rt'j(dd¬«Yd}~Œwd}~wt*$r}|j-|«Yd}~Œ™d}~wt.$r}|j#|d«Yd}~Œ¼d}~wt0j2$r|js‚YŒáwxYw#|dkDr|j ||«wwxYw)Nrprz"Fatal read error on pipe transportz*Read error on pipe transport while closingTr)r*r.rkÚresultrŽÚbytesÚ memoryviewr†rXr„rÚ _proactorÚ recv_intor&Úadd_done_callbackr‡ÚConnectionAbortedErrorrhrr rdÚConnectionResetErrorrfrcrÚCancelledError)r7Úfutr�rœrgs rr‡z(_ProactorReadPipeTransport._loop_readingsÿ€ØˆØˆð. 2؈ؗ~‘~¨Ñ,°·±Ð1GØ15·²ð@ð@à!%�”Ø—8‘8”:à ŸZ™Z›\�FØ ’{àðF˜Š{Ø×#Ñ# D¨&Õ1ðôA!¤¨D¯J©JÓ!7¸¸Ð!@ÓA‘Dð—J‘J”Là�}Š}àð2˜Š{Ø×#Ñ# D¨&Õ1ðð)—<’<à!%§¡×!5Ñ!5×!?Ñ!?ÀÇ Á ÈDÏJÉJÓ!W�”ð—<’<Ø—‘×0Ñ0°×1CÑ1CÕDà˜Š{Ø×#Ñ# D¨&Õ1ðøô#&ò ,Ø—=’=Ø×!Ñ! #Ð'KÕLØ—‘×%Ñ%Ô'Ü— ‘ ÐIØ&*õ,ÿøä#ò #Ø × Ñ ˜c× "Ñ "ûÜò IØ × Ñ ˜cÐ#G× HÑ HûÜ×(Ñ(ò Ø—=’=Øñ!ð ûð˜Š{Ø×#Ñ# D¨&Õ1ðúsn†AE$Á6>E$ÃA E$Ä2H0Å$ H-Å-AGÆ=H0Ç H-ÇG$ÇH0Ç$ H-Ç0HÈH0È#H-È*H0È,H-È-H0È0I )NNNirO) rCryrzr{r$rŠrŒr�r—rŽr‡r~rs@rr�r�µs/ø„á#à48Ø6;õò6ò4ò&5ò$ò /÷212r>r�cóR‡—eZdZdZdZˆfd„Zd„Zd d„Zd„Zd„Z d„Z d „Z d „Z ˆxZ S) Ú_ProactorBaseWritePipeTransportzTransport for write pipes.Tcó2•—t‰|�|i|¤Žd|_yrO)r#r$rj©r7ÚargsÚkwr=s €rr$z(_ProactorBaseWritePipeTransport.__init__Nsø€Ü ‰Ñ˜$Ð% "Ò%Ø!ˆÕr>có¢—t|tttf«s!t dt |«j ›�«‚|jr td«‚|j� td«‚|sy|jrH|jtjk\rtjd«|xjdz c_ y|j€*|j �J‚|j#t|«¬«y|j s!t|«|_|j%«y|j j'|«|j%«y)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œ)rbrŸr…r Ú TypeErrorÚtyperCr0Ú RuntimeErrorrjr-rÚ!LOG_THRESHOLD_FOR_CONNLOST_WRITESr rr+r)Ú _loop_writingÚ_maybe_pause_protocolÚextend)r7rœs rÚwritez%_ProactorBaseWritePipeTransport.writeRs€Ü˜$¤¬ ´:Ð >Ô?ÜðܘD“z×*Ñ*Ð+ð-ó.ð .ð × Ò ÜÐ;Ó<Ð <Ø × Ñ Ð )ÜÐIÓJÐ JáØ à �?Š?Ø�‰¤)×"MÑ"MÒMÜ—‘Ð@ÔAØ �OŠO˜qÑ �OØ ð �?‰?Ð "Ø—<‘<Ð'Ð 'Ð'à × Ñ ¤E¨$£KÐ Õ 0Ø—’ä$ T›?ˆDŒLØ × &Ñ &Õ (ð �L‰L× Ñ  Ô %Ø × &Ñ &Õ (r>cóN— |�|j€ |jry||jusJ‚d|_d|_|r|j«|€|j}d|_|sx|jr&|j j |jd«|jr)|jjtj«|j«nË|j jj|j|«|_|jj!«sW|jdk(sJ‚t#|«|_|jj%|j&«|j)«n%|jj%|j&«|j*�)|j€|j*j-d«yyy#t.$r}|j1|«Yd}~yd}~wt2$r}|j5|d«Yd}~yd}~wwxYw)Nrz#Fatal write error on pipe transport)r+r.r,ržr)rr2rWr0r&rorÚSHUT_WRÚ_maybe_resume_protocolr¡ÚsendrkrFr£r³r´rjrlr¥rfrcrh)r7Úfrœrgs rr³z-_ProactorBaseWritePipeTransport._loop_writingxs´€ð& J؈} §¡Ð!8¸T¿]º]ðØ˜Ÿ™Ñ'Ð 'Ð'Ø"ˆDŒOØ"#ˆDÔ ÙØ—‘” ؈|Ø—|‘|�Ø#�” ÙØ—=’=Ø—J‘J×(Ñ(¨×)CÑ)CÀTÔJØ×$Ò$Ø—J‘J×'Ñ'¬¯©Ô7ð ×+Ñ+Õ-à"&§*¡*×"6Ñ"6×";Ñ";¸D¿J¹JÈÓ"M�”Ø—‘×+Ñ+Ô-Ø×.Ñ.°!Ò3Ð3Ð3Ü*-¨d«)�DÔ'Ø—O‘O×5Ñ5°d×6HÑ6HÔIØ×.Ñ.Õ0à—O‘O×5Ñ5°d×6HÑ6HÔIØ×!Ñ!Ð-°$·/±/Ð2IØ×"Ñ"×-Ñ-¨dÕ3ð3JÐ-øä#ò #Ø × Ñ ˜c× "Ñ "ûÜò JØ × Ñ ˜cÐ#H× IÑ Iûð Jús)‚G�F=GÇ H$Ç&G<Ç< H$ÈHÈH$có—y©NT©rRs rÚ can_write_eofz-_ProactorBaseWritePipeTransport.can_write_eof¡ó€Ør>có$—|j«yrO)rYrRs rÚ write_eofz)_ProactorBaseWritePipeTransport.write_eof¤s €Ø � ‰ � r>có&—|jd«yrO©rfrRs rÚabortz%_ProactorBaseWritePipeTransport.abort§ó€Ø ×ј$Õr>cóÔ—|j� td«‚|jj«|_|j€|jj d«|jS)NzEmpty waiter is already set)rjr±rÚ create_futurer+rlrRs rÚ_make_empty_waiterz2_ProactorBaseWritePipeTransport._make_empty_waiterªsY€Ø × Ñ Ð )ÜÐ<Ó=Ð =Ø!ŸZ™Z×5Ñ5Ó7ˆÔØ �?‰?Ð "Ø × Ñ × )Ñ )¨$Ô /Ø×!Ñ!Ð!r>có—d|_yrO)rjrRs rÚ_reset_empty_waiterz3_ProactorBaseWritePipeTransport._reset_empty_waiter²s €Ø!ˆÕr>©NN)rCryrzr{Ú_start_tls_compatibler$r¶r³r¿rÂrÅrÉrËr~rs@rr©r©Hs7ø„á$à Ðô"ò$)óL'JòRòò ò"ö"r>r©có$‡—eZdZˆfd„Zd„ZˆxZS)Ú_ProactorWritePipeTransportcóØ•—t‰|�|i|¤Ž|jjj |j d«|_|j j|j«y)Né) r#r$rr¡Úrecvr&r*r£Ú _pipe_closedr«s €rr$z$_ProactorWritePipeTransport.__init__·sOø€Ü ‰Ñ˜$Ð% "Ò%ØŸ™×-Ñ-×2Ñ2°4·:±:¸rÓBˆŒØ �‰×(Ñ(¨×):Ñ):Õ;r>cóB—|j«ry|j«dk(sJ‚|jr|j�J‚y||jusJ||jf«‚d|_|j�|j t ««y|j«y)Nr>)Ú cancelledržr.r*r+rfÚBrokenPipeErrorrY)r7r§s rrÓz(_ProactorWritePipeTransport._pipe_closed¼s‡€Ø �=‰=Œ?à Ø�z‰z‹|˜sÒ"Ð"Ð"Ø �=Š=Ø—>‘>Ð)Ð )Ð)Ø Ø�d—n‘nÑ$Ð; s¨D¯N©NÐ&;Ó;Ð$؈ŒØ �?‰?Ð &Ø × Ñ œoÓ/Õ 0à �J‰J�Lr>)rCryrzr$rÓr~rs@rrÏr϶s ø„ô<ö r>rÏcóR‡—eZdZdZ d ˆfd„ Zd„Zd„Zd„Zd d„Zd d„Z d d„Z ˆxZ S) Ú_ProactorDatagramTransporticóÔ•—||_d|_d|_t‰|�|||||¬«t j «|_|jj|j«y)Nr)r:r;) Ú_addressrjÚ _buffer_sizer#r$Ú collectionsÚdequer)rr2r‡)r7r8rr9Úaddressr:r;r=s €rr$z#_ProactorDatagramTransport.__init__Ïs^ø€àˆŒ Ø!ˆÔ؈Ôô ‰Ñ˜˜t X°fÀEÐÔJô#×(Ñ(Ó*ˆŒ Ø � ‰ ×јT×/Ñ/Õ0r>có—t||«yrO©rrMs rr%z%_ProactorDatagramTransport._set_extraÜó €Ü˜$ Õ%r>có—|jSrO)rÛrRs rrwz0_ProactorDatagramTransport.get_write_buffer_sizeßs€Ø× Ñ Ð r>có&—|jd«yrOrÄrRs rrÅz _ProactorDatagramTransport.abortârÆr>cór—t|tttf«st dt |««‚|sy|j �(|d|j fvrtd|j ›�«‚|jrT|j rH|jtjk\rtjd«|xjdz c_y|jjt|«|f«|xjt!|«z c_|j"€|j%«|j'«y)Nz,data argument must be bytes-like object (%r)z!Invalid address: must be None or z!socket.sendto() raised exception.r)rbrŸr…r r¯r°rÚÚ ValueErrorr-rr²r rr)rDrÛrFr+r³r´)r7rœÚaddrs rÚsendtoz!_ProactorDatagramTransport.sendtoåsþ€Ü˜$¤¬ ´:Ð >Ô?ÜÐJÜ  ›Jó(ð (ñØ à �=‰=Ð $¨°d¸D¿M¹MÐ5JÑ)JÜØ3°D·M±M°?ÐCóEð Eð �?Š?˜tŸ}š}Ø�‰¤)×"MÑ"MÒMÜ—‘ÐBÔCØ �OŠO˜qÑ �OØ ð � ‰ ×ÑœU 4›[¨$Ð/Ô0Ø ×ÒœS ›YÑ&Õà �?‰?Ð "à × Ñ Ô ð ×"Ñ"Õ$r>cóš— |jry||jusJ‚d|_|r|j«|jr|jr?|jr3|j r&|j j|jd«y|jj«\}}|xjt|«zc_ |j�6|j jj|j|«|_n7|j jj|j||¬«|_|jj!|j"«|j%«y#t&$r%}|j(j+|«Yd}~yd}~wt,$r}|j/|d«Yd}~yd}~wwxYw)N)ræz'Fatal write error on datagram transport)r-r+ržr)rÚr.rr2rWÚpopleftrÛrFr¡rºr&rçr£r³r¹rcr3Úerror_receivedÚ Exceptionrh)r7r§rœrærgs rr³z(_ProactorDatagramTransport._loop_writingsd€ð *Ø�ŠØà˜$Ÿ/™/Ñ)Ð )Ð)Ø"ˆDŒOÙà— ‘ ” à—<’< D§O¢O¸¿ º à—=’=Ø—J‘J×(Ñ(¨×)CÑ)CÀTÔJØàŸ™×-Ñ-Ó/‰JˆD�$Ø × Ò ¤ T£Ñ *Õ Ø�}‰}Ð(Ø"&§*¡*×"6Ñ"6×";Ñ";¸D¿J¹JØ<@ó#B�•ð#'§*¡*×"6Ñ"6×"=Ñ"=¸d¿j¹jØ>BØCGð#>ó#I�”ð �O‰O× -Ñ -¨d×.@Ñ.@Ô AØ × 'Ñ 'Õ )øô ò /Ø �N‰N× )Ñ )¨#× .Ñ .ûÜò NØ × Ñ ˜cÐ#L× MÑ Mûð Nús0‚ E9�A?E9ÂB4E9Å9 G ÆF"Æ" G Æ.GÇG có‚—d} |jr! |r|jj|«yy|j|us|j€ |jsJ‚d|_|�_|j «}|jr#d} |r|jj|«yy|j �||j }}n|\}}|jr! |r|jj|«yy|j �@|jjj|j|j«|_n?|jjj|j|j«|_|j�&|jj|j« |r|jj|«yy#t$r%}|jj!|«Yd}~ŒId}~wt"j$$r|js‚YŒnwxYw#|r|jj|«wwxYwrO)r-r3Údatagram_receivedr*r.ržrÚrr¡rÒr&Úmax_sizeÚrecvfromr£r‡rcrêrr¦)r7r§rœræÚresrgs rr‡z(_ProactorDatagramTransport._loop_reading$só€Øˆð' =Ø�ŠØñHØ—‘×0Ñ0°°tÕ<ððE—>‘> SÑ(¨T¯^©^Ð-CØ-1¯]ª]ð <ð<ð"ˆDŒN؈ؗj‘j“l�à—=’=à�DØñ0Ø—‘×0Ñ0°°tÕ<ðð-—=‘=Ð,Ø!$ d§m¡m˜$‘Dà!$‘J�D˜$à�ŠØñ Ø—‘×0Ñ0°°tÕ<ðð�}‰}Ð(Ø!%§¡×!5Ñ!5×!:Ñ!:¸4¿:¹:Ø;?¿=¹=ó"J�•ð"&§¡×!5Ñ!5×!>Ñ!>¸t¿z¹zØ?C¿}¹}ó"N�”ð�~‰~Ð)Ø—‘×0Ñ0°×1CÑ1CÕDáØ—‘×0Ñ0°°tÕ<ðøôò /Ø �N‰N× )Ñ )¨#× .Ñ .ûÜ×(Ñ(ò Ø—=’=Øñ!ð ûñØ—‘×0Ñ0°°tÕ<ðúsN„ G ±AG Â!,G Ã.B G Å92HÇ HÇG4Ç/HÇ4#HÈHÈHÈHÈ!H>rxrO) rCryrzrîr$r%rwrÅrçr³r‡r~rs@rrØrØÌs2ø„à€HØ59Ø$(õ 1ò&ò!ò ó%ó: *÷D)=r>rØcó—eZdZdZd„Zd„Zy)Ú_ProactorDuplexPipeTransportzTransport for duplex pipes.có—y)NFr¾rRs rr¿z*_ProactorDuplexPipeTransport.can_write_eofUs€Ør>có—t‚rO)ÚNotImplementedErrorrRs rrÂz&_ProactorDuplexPipeTransport.write_eofXs€Ü!Ð!r>N)rCryrzr{r¿rÂr¾r>rròròPs„ñ&òó"r>ròcóf‡—eZdZdZej j Z dˆfd„ Zd„Z d„Z d„Z ˆxZ S)Ú_ProactorSocketTransportz Transport for connected sockets.cóX•—t‰|�||||||«tj|«yrO)r#r$rÚ _set_nodelayr6s €rr$z!_ProactorSocketTransport.__init__cs(ø€ä ‰Ñ˜˜t X¨v°u¸fÔEÜ× Ñ  Õ&r>có—t||«yrOràrMs rr%z#_ProactorSocketTransport._set_extrahrár>có—yr½r¾rRs rr¿z&_ProactorSocketTransport.can_write_eofkrÀr>có°—|js |jryd|_|j€*|jj t j «yyr½)r.r0r+r&rorr¸rRs rrÂz"_ProactorSocketTransport.write_eofnsA€Ø �=Š=˜D×-Ò-Ø Ø ˆÔØ �?‰?Ð "Ø �J‰J× Ñ ¤§¡Õ /ð #r>rx) rCryrzr{rÚ _SendfileModeÚ TRY_NATIVEÚ_sendfile_compatibler$r%r¿rÂr~rs@rr÷r÷\s4ø„ñ+à$×2Ñ2×=Ñ=Ðà48Ø$(õ'ò &òö0r>r÷cóô‡—eZdZˆfd„Z dd„Z ddddddddœd„Z dd„Z d d„Z d d „Z d d „Z ˆfd „Z d „Z d „Z d„Z d!d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Z d"d„Zd„Zd„Zd„ZˆxZS)#rc󜕗t‰|�«tjd|jj «||_||_d|_i|_ |j|«|j«tj«tj«ur.tj |j"j%««yy)NzUsing proactor: %s)r#r$r rdr=rCr¡Ú _selectorÚ_self_reading_futureÚ_accept_futuresÚset_loopÚ_make_self_pipeÚ threadingÚcurrent_threadÚ main_threadÚsignalÚ set_wakeup_fdÚ_csockrE)r7Úproactorr=s €rr$zBaseProactorEventLoop.__init__xsœø€Ü ‰ÑÔÜ� ‰ Ð)¨8×+=Ñ+=×+FÑ+FÔGØ!ˆŒØ!ˆŒØ$(ˆÔ!Ø!ˆÔØ×ј$ÔØ ×ÑÔÜ × #Ñ #Ó %¬×)>Ñ)>Ó)@Ñ @ä × Ñ  §¡×!3Ñ!3Ó!5Õ 6ð Ar>Ncó"—t||||||«SrO)r÷)r7rr9r:r;r<s rÚ_make_socket_transportz,BaseProactorEventLoop._make_socket_transport…s€ä'¨¨d°H¸fØ(-¨vó7ð 7r>F)Ú server_sideÚserver_hostnamer;r<Ússl_handshake_timeoutÚssl_shutdown_timeoutc ót—tj||||||| | ¬«} t||| ||¬«| jS)N)rr©r;r<)r Ú SSLProtocolr÷Ú_app_transport) r7Úrawsockr9Ú sslcontextr:rrr;r<rrÚ ssl_protocols rÚ_make_ssl_transportz)BaseProactorEventLoop._make_ssl_transportŠsI€ô  ×+Ñ+Ø�h  ¨Fؘ_Ø&;Ø%9ô ;ˆ ô !  w° Ø',°Võ =à×*Ñ*Ð*r>có"—t||||||«SrO)rØ)r7rr9rÞr:r;s rÚ_make_datagram_transportz.BaseProactorEventLoop._make_datagram_transport™s€ä)¨$°°hÀØ*0°%ó9ð 9r>có —t|||||«SrO)rò©r7rr9r:r;s rÚ_make_duplex_pipe_transportz1BaseProactorEventLoop._make_duplex_pipe_transportžs€ä+¨DØ,0°(¸FÀEóKð Kr>có —t|||||«SrO)r�rs rÚ_make_read_pipe_transportz/BaseProactorEventLoop._make_read_pipe_transport£s€ä)¨$°°hÀÈÓNÐNr>có —t|||||«SrO)rÏrs rÚ_make_write_pipe_transportz0BaseProactorEventLoop._make_write_pipe_transport§s€ô+¨4Ø+/°¸6À5óJð Jr>có„•—|j«r td«‚|j«rytj«tj «urt jd«|j«|j«|jj«d|_ d|_ t‰|�-«y)Nz!Cannot close a running event looprp)Ú is_runningr±Ú is_closedrrr r r Ú_stop_accept_futuresÚ_close_self_piper¡rYrr#)r7r=s €rrYzBaseProactorEventLoop.close­s‘ø€Ø �?‰?Ô ÜÐBÓCÐ CØ �>‰>Ô Ø ä × #Ñ #Ó %¬×)>Ñ)>Ó)@Ñ @Ü × Ñ  Ô $ð ×!Ñ!Ô#Ø ×ÑÔØ �‰×ÑÔØˆŒØˆŒô ‰‰ �r>cƒóVK—|jj||«ƒd{–—†S7Œ­wrO)r¡rÒ)r7rÚns rÚ sock_recvzBaseProactorEventLoop.sock_recvÁs#èø€Ø—^‘^×(Ñ(¨¨qÓ1×1Ð1Ð1úó ‚ )¢'£)cƒóVK—|jj||«ƒd{–—†S7Œ­wrO)r¡r¢)r7rÚbufs rÚsock_recv_intoz$BaseProactorEventLoop.sock_recv_intoÄs#èø€Ø—^‘^×-Ñ-¨d°CÓ8×8Ð8Ð8úr-cƒóVK—|jj||«ƒd{–—†S7Œ­wrO)r¡rï)r7rÚbufsizes rÚ sock_recvfromz#BaseProactorEventLoop.sock_recvfromÇs#èø€Ø—^‘^×,Ñ,¨T°7Ó;×;Ð;Ð;úr-cƒórK—|s t|«}|jj|||«ƒd{–—†S7Œ­wrO)rFr¡Ú recvfrom_into)r7rr/Únbytess rÚsock_recvfrom_intoz(BaseProactorEventLoop.sock_recvfrom_intoÊs1èø€Ùܘ“XˆFà—^‘^×1Ñ1°$¸¸VÓD×DÐDÐDús ‚.7°5±7cƒóVK—|jj||«ƒd{–—†S7Œ­wrO)r¡rº)r7rrœs rÚ sock_sendallz"BaseProactorEventLoop.sock_sendallÐs#èø€Ø—^‘^×(Ñ(¨¨tÓ4×4Ð4Ð4úr-cƒóZK—|jj||d|«ƒd{–—†S7Œ­w)Nr)r¡rç)r7rrœrÞs rÚ sock_sendtoz!BaseProactorEventLoop.sock_sendtoÓs'èø€Ø—^‘^×*Ñ*¨4°°q¸'ÓB×BÐBÐBús ‚"+¤)¥+cƒóªK—|jr|j«dk7r td«‚|jj ||«ƒd{–—†S7Œ­w)Nrzthe socket must be non-blocking)Ú_debugÚ gettimeoutrår¡Úconnect)r7rrÞs rÚ sock_connectz"BaseProactorEventLoop.sock_connectÖsDèø€Ø �;Š;˜4Ÿ?™?Ó,°Ò1ÜÐ>Ó?Ð ?Ø—^‘^×+Ñ+¨D°'Ó:×:Ð:Ð:ús‚A AÁ AÁ AcƒóTK—|jj|«ƒd{–—†S7Œ­wrO)r¡ÚacceptrMs rÚ sock_acceptz!BaseProactorEventLoop.sock_acceptÛs!èø€Ø—^‘^×*Ñ*¨4Ó0×0Ð0Ð0ús ‚(¡&¢(cƒó„K— |j«} t j|«j}|r|n|}|syt|d«}|rt||z|«n|} t||«}d} t| |z |«}|dkr| | dkDr|j|«SS|jj||||«ƒd{–—†||z }| |z } Œ^#ttjf$r}t j d«‚d}~wwxYw#t$rt j d«‚wxYw7Œg#| dkDr|j|«wwxYw­w)Nznot a regular filerlÿÿ)rEÚAttributeErrorÚioÚUnsupportedOperationrÚSendfileNotAvailableErrorÚosÚfstatÚst_sizercÚminÚseekr¡Úsendfile) r7rÚfileÚoffsetÚcountrEÚerrÚfsizeÚ blocksizeÚend_posÚ total_sents rÚ_sock_sendfile_nativez+BaseProactorEventLoop._sock_sendfile_nativeÞs_èø€ð MØ—[‘[“]ˆFð MÜ—H‘H˜VÓ$×,Ñ,ˆEñ#‘E¨ˆ ÙØä˜  ;Ó/ˆ Ù05”#�f˜u‘n eÔ,¸5ˆÜ�V˜UÓ#ˆØˆ ð "ØÜ ¨&Ñ 0°)Ó<� Ø ’>Ø%ð ˜AŠ~Ø— ‘ ˜&Õ!ðð —n‘n×-Ñ-¨d°D¸&À)ÓL×LÐLؘ)Ñ#�ؘiÑ'� ð øô¤× 7Ñ 7Ð8ò MÜ×6Ñ6Ð7KÓLÐ Lûð Mûôò MÜ×6Ñ6Ð7KÓLÐ Lð MúðMùð˜AŠ~Ø— ‘ ˜&Õ!ðüsh‚E„C •D´6EÁ+D$ÂEÂ!D$Â:D"Â;D$à C=Ã#C8Ã8C=Ã=EÄDÄEÄ"D$Ä$D=Ä=EcƒójK—|j«}|j«|j«ƒd{–—† |j|j|||d¬«ƒd{–—†|j «|r|j «SS7ŒP7Œ)#|j «|r|j «wwxYw­w)NF)Úfallback)rŠrŒrÉÚ sock_sendfiler&rËr�)r7ÚtransprOrPrQr�s rÚ_sendfile_nativez&BaseProactorEventLoop._sendfile_nativeûs®èø€Ø×*Ñ*Ó,ˆØ×ÑÔØ×'Ñ'Ó)×)Ð)ð (Ø×+Ñ+¨F¯L©L¸$ÀÈØ5:ð,ó<÷<ð × &Ñ &Ô (ÙØ×%Ñ%Õ'ðð *øð<ùð × &Ñ &Ô (ÙØ×%Ñ%Õ'ðüs8‚4B3¶B·B3¼#B ÁB Á B Á#%B3 B  %B0Â0B3có —|j�!|jj«d|_|jj«d|_|jj«d|_|xj dzc_y)Nr)rrXÚ_ssockrYr Ú _internal_fdsrRs rr)z&BaseProactorEventLoop._close_self_pipesg€Ø × $Ñ $Ð 0Ø × %Ñ %× ,Ñ ,Ô .Ø(,ˆDÔ %Ø � ‰ ×ÑÔØˆŒ Ø � ‰ ×ÑÔØˆŒ Ø ×Ò˜aÑÖr>cóÜ—tj«\|_|_|jj d«|jj d«|xj dz c_y)NFr)rÚ socketpairr^r Ú setblockingr_rRs rrz%BaseProactorEventLoop._make_self_pipesN€ä#)×#4Ñ#4Ó#6Ñ ˆŒ �T”[Ø � ‰ ×Ñ Ô&Ø � ‰ ×Ñ Ô&Ø ×Ò˜aÑÖr>cót— |�|j«|j|ury|jj|jd«}||_|j |j «y#tj$rYyttf$r‚t$r}|jd||dœ«Yd}~yd}~wwxYw)Niz.Error on reading from the event loop self pipe)r`rar8) ržrr¡rÒr^r£Ú_loop_self_readingrr¦r“r”r•re)r7r»rgs rrdz(BaseProactorEventLoop._loop_self_readingsµ€ð 9؈}Ø—‘” Ø×(Ñ(°Ñ1ðØ—‘×#Ñ# D§K¡K°Ó6ˆAð)*ˆDÔ %Ø × Ñ  × 7Ñ 7Õ 8øô×(Ñ(ò á ÜÔ-Ð.ò Ø Üò Ø × 'Ñ 'ØKØ Øñ)÷ ñ ûð ús"‚ A,£&A,Á,B7ÂB7ÂB2Â2B7có®—|j}|€y |jd«y#t$r(|jrt j dd¬«YyYywxYw)Nóz3Fail to write a null byte into the self-pipe socketTr)r rºrcr=r rd)r7Úcsocks rÚ_write_to_selfz$BaseProactorEventLoop._write_to_self4sU€ð — ‘ ˆØ ˆ=Ø ð ,Ø �J‰J�uÕ øÜò ,Ø�{Š{Ü— ‘ ð0à&*÷,ñð ,ús‘#£,AÁAc óP‡‡‡‡‡‡‡‡—dˆˆˆˆˆˆˆˆfd„ Љj‰«y)Nc ó•— |�s|j«\}}‰jrtjd‰||«‰«}‰ �‰j ||‰ dd|i‰‰ ‰ ¬«n‰j ||d|i‰¬«‰j «ry‰jj‰ «}|‰j‰ j«<|j‰«y#t$r„}‰ j«dk7r9‰jd|tj‰ «dœ«‰ j!«n.‰jrtjd ‰ d¬ «Yd}~yYd}~yYd}~yd}~wt"j$$r‰ j!«YywxYw) Nz#%r got a new connection from %r: %rTr)rr;r<rrrrpzAccept failed on a socket)r`rarzAccept failed on socket %rr)ržr=r rdrrr'r¡rBrrEr£rcrer rrYrr¦) r»Úconnrær9rgr8Úprotocol_factoryr7r<rrrrs €€€€€€€€rr8z2BaseProactorEventLoop._start_serving..loopKswø€ð# *Ø�=Ø!"§¡£‘J�D˜$Ø—{’{ÜŸ ™ Ð%JØ%+¨T°4ô9á/Ó1�HØ!Ð-Ø×0Ñ0Ø  (¨JÀDØ#-¨tÐ"4¸VØ2GØ1Eð 1õGð ×3Ñ3Ø  (Ø#-¨tÐ"4¸Vð4ôEð—>‘>Ô#ØØ—N‘N×)Ñ)¨$Ó/�ð78�×$Ñ$ T§[¡[£]Ñ3Ø×#Ñ# DÕ)øôò 6Ø—;‘;“= BÒ&Ø×/Ñ/Ø#>Ø%(Ü"(×"8Ñ"8¸Ó">ñ1ôð —J‘J•LØ—[’[Ü—L‘LÐ!=Ø!%°÷6ò6ô!ô!ûô×,Ñ,ò Ø— ‘ – ð ús%ƒBC Cà FÃA0EÅ&FÆFrO)r2) r7rlrrr<Úbacklogrrr8s ````` ``@rÚ_start_servingz$BaseProactorEventLoop._start_servingFsÿ€÷ $ *ô$ *ðL �‰�tÕr>có—yrOr¾)r7Ú event_lists rÚ_process_eventsz%BaseProactorEventLoop._process_eventsss€à r>có–—|jj«D]}|j«Œ|jj«yrO)rÚvaluesrXÚclear)r7Úfutures rr(z*BaseProactorEventLoop._stop_accept_futuresws6€Ø×*Ñ*×1Ñ1Ö3ˆFØ �M‰M�Oð4à ×Ñ×"Ñ"Õ$r>cóÒ—|jj|j«d«}|r|j«|jj |«|j «yrO)rÚpoprErXr¡Ú _stop_servingrY)r7rrus rrxz#BaseProactorEventLoop._stop_serving|sG€Ø×%Ñ%×)Ñ)¨$¯+©+«-¸Ó>ˆÙ Ø �M‰MŒOØ �‰×$Ñ$ TÔ*Ø � ‰ � r>rxrOrÌ)r)NNédNN)rCryrzr$rrrr r"r$rYr,r0r3r7r9r;r@rCrWr\r)rrdrhrnrqr(rxr~rs@rrrvsßø„ô 7ð=AØ26ó7ð 9=ð +à °$ؘtØ"&Ø!%ô +ð CGó9ð BFØ*.óKð @DØ(,óOðAEØ)-óJô ò(2ò9ò<óEò 5òCò;ò 1ò"ò: (ò ò ó9ò8,ð&>AØ-1Ø,0ó+òZ ò%ö r>r)$r{Ú__all__rFrIrr|r rrÜÚrrrrr r r r Úlogr rÚ_FlowControlMixinÚ BaseTransportr!Ú ReadTransportr�ÚWriteTransportr©rÏÚDatagramTransportrØÚ Transportròr÷Ú BaseEventLooprr¾r>rÚr„sðñð #€ã Û Û ÛÛ ÛÛåÝÝÝÝÝÝÝÝò0ô$D ×!=Ñ!=Ø!+×!9Ñ!9ôDôNP2Ð!;Ø!+×!9Ñ!9ôP2ôfk"Ð&@Ø&0×&?Ñ&?ôk"ô\Ð"Aôô,A=Ð!;Ø!+×!=Ñ!=ôA=ôH "Ð#=Ø#BØ#-×#7Ñ#7ô "ô0Ð9Ø>Ø)×3Ñ3ô0ô4K˜K×5Ñ5õKr>