+
    i  c                   s   R t ^ RIt]P                  R8w  d	   ]! R4      h^ RIt^ RIt^ RIt^ RIHt ^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt R(t]P6                  t]P8                  tRtRtRtRt  ! R R]PB                  4      t" ! R R]PB                  4      t# ! R R]#4      t$ ! R R]#4      t% ! R R]&4      t' ! R  R!]PP                  4      t) ! R" R]PT                  4      t+ ! R# R4      t, ! R$ R%]PZ                  4      t.])t/ ! R& R]P`                  4      t1 ! R' R]P`                  4      t2]2t3]+t4R# ))z.Selector and proactor event loops for Windows.NZwin32z
win32 only)partial)events)base_subprocess)futures)
exceptions)proactor_events)selector_events)tasks)windows_utils)loggerProactorEventLoopIocpProactor_WindowsSelectorEventLoopPolicy_WindowsProactorEventLoopPolicyi  i  gMbP?g?c                   sx   a a ] tR t^1t oRtRR/V 3R lltV 3R ltR tRV 3R lltV 3R lt	V 3R	 lt
R
tVtV ;t# )_OverlappedFuturez~Subclass of Future which represents an overlapped operation.

Cancelling it will immediately cancel the overlapped operation.
loopNc               sr   < \         SV `  VR 7       V P                  '       d   V P                  R Wn        R# r   N)super__init___source_traceback_ov)selfovr   	__class__s   &&$//usr/lib64/python3.14/asyncio/windows_events.pyr   Z_OverlappedFuture.__init__7   s2    d#!!!&&r*    c                s   < \         SV `  4       pV P                  eO   V P                  P                  '       d   RMRpVP	                  ^RV RV P                  P
                  R R24       V# )NpendingZ	completedzoverlapped=<z, #x>)r   
_repr_infor   r   Zinsertaddressr   infoZstater      &  r   r   Z_OverlappedFuture._repr_info=   s_    w!#88!%!1!1!1I{EKK\%4883C3CB2GqIJr   c                s"   V P                   f   R #  V P                   P                  4        R V n         R #   \         dO   pRRRTRT /pT P                  '       d   T P                  TR&   T P                  P                  T4        R p?L]R p?ii ; i)Nmessagez&Cancelling an overlapped future failed	exceptionfuturesource_traceback)r   cancelOSErrorr   _loopcall_exception_handler)r   exccontexts   &  r   _cancel_overlappedZ$_OverlappedFuture._cancel_overlappedD   s    88
	7HHOO   	7CS$G
 %%%.2.D.D*+JJ--g66	7s   5 B AB		Bc                D   < V P                  4        \        SV `	  VR 7      # )msg)r.   r   r(   r   r1   r      &&r   r(   Z_OverlappedFuture.cancelT   s     !w~#~&&r   c                sF   < \         SV `  V4       V P                  4        R # N)r   set_exceptionr.   r   r%   r   r3   r   r5   Z_OverlappedFuture.set_exceptionX   s    i(!r   c                s4   < \         SV `  V4       R V n        R # r4   )r   
set_resultr   r   resultr   r3   r   r7   Z_OverlappedFuture.set_result\   s    6"r   r   r4   )__name__
__module____qualname____firstlineno____doc__r   r   r.   r(   r5   r7   __static_attributes____classdictcell____classcell__r   __classdict__   @@r   r   r   1   s4     
4  '" r   r   c                   s   a a ] tR t^at oRtRR/V 3R lltR tV 3R ltR tR t	RV 3R	 llt
V 3R
 ltV 3R ltRtVtV ;t# )_BaseWaitHandleFuturez2Subclass of Future which represents a wait handle.r   Nc               s   < \         SV `  VR 7       V P                  '       d   V P                  R Wn        W n        W0n        RV n        R# )r   TNr   )r   r   r   r   _handle_wait_handle_registered)r   r   handlewait_handler   r      &&&&$r   r   Z_BaseWaitHandleFuture.__init__d   sI    d#!!!&&r* '  r   c                sf    \         P                  ! V P                  ^ 4      \         P                  8H  #     )_winapiZWaitForSingleObjectrG   ZWAIT_OBJECT_0r      &r   _pollZ_BaseWaitHandleFuture._pollr   s)    ++DLL!<%%& 	'r   c                s.  < \         SV `  4       pVP                  R V P                  R 24       V P                  e,   V P	                  4       '       d   RMRpVP                  V4       V P
                  e    VP                  RV P
                  R 24       V# )zhandle=r   ZsignaledZwaitingzwait_handle=)r   r   appendrG   rR   rH   r!   r#   r   r   Z _BaseWaitHandleFuture._repr_infow   s~    w!#gdll2./0<<#"&**,,JIEKK(KK,t'8'8&<=>r   c                s    R V n         R # r4   r:   )r   fut   &&r   _unregister_wait_cbZ)_BaseWaitHandleFuture._unregister_wait_cb   s     r   c                s   V P                   '       g   R # RV n         V P                  pR V n         \        P                  ! V4       V P                  R 4       R #   \         dt   pTP
                  \        P                  8w  dK   RRRTRT /pT P                  '       d   T P                  TR&   T P                  P                  T4        R p?R #  R p?LR p?ii ; iNFr$   z$Failed to unregister the wait handler%   r&   r'   )rI   rH   _overlappedZUnregisterWaitr)   winerrorERROR_IO_PENDINGr   r*   r+   rV   r   rK   r,   r-      &   r   _unregister_waitZ&_BaseWaitHandleFuture._unregister_wait   s     '' 	&&{3 	  &  
	||{;;;Ed
 )))262H2HG./

11': <
	s   A C$8C*CCc                r/   r0   )r]   r   r(   r2   r3   r   r(   Z_BaseWaitHandleFuture.cancel   s     w~#~&&r   c                F   < V P                  4        \        SV `	  V4       R # r4   )r]   r   r5   r6   r3   r   r5   Z#_BaseWaitHandleFuture.set_exception   s    i(r   c                r^   r4   )r]   r   r7   r8   r3   r   r7   Z _BaseWaitHandleFuture.set_result   s    6"r   )rG   r   rI   rH   r4   )r;   r<   r=   r>   r?   r   rR   r   rV   r]   r(   r5   r7   r@   rA   rB   rC   rE   r   rF   rF   a   s<     <   '

'0')# #r   rF   c                   s\   a a ] tR t^t oRtRR/V 3R lltR tV 3R ltV 3R ltRt	Vt
V ;t# )	_WaitCancelFuturezgSubclass of Future which represents a wait for the cancellation of a
_WaitHandleFuture using an event.
r   Nc               s8   < \         SV `  WW4R 7       RV n        R# )r   N)r   r   _done_callback)r   r   eventrK   r   r   rL   r   r   Z_WaitCancelFuture.__init__   s    K;"r   c                s    \        R 4      h)z'_WaitCancelFuture must not be cancelled)RuntimeErrorrP   rQ   r   r(   Z_WaitCancelFuture.cancel   s    DEEr   c                h   < \         SV `  V4       V P                  e   V P                  V 4       R # R # r4   )r   r7   r`   r8   r3   r   r7   Z_WaitCancelFuture.set_result   s/    6"*% +r   c                rc   r4   )r   r5   r`   r6   r3   r   r5   Z_WaitCancelFuture.set_exception   s/    i(*% +r   )r`   )r;   r<   r=   r>   r?   r   r(   r7   r5   r@   rA   rB   rC   rE   r   r_   r_      s+     #t #
F&
& &r   r_   c                   sL   a a ] tR t^t oRR/V 3R lltV 3R ltR tRtVtV ;t	# )_WaitHandleFuturer   Nc               s   < \         SV `  WW5R 7       W@n        RV n        \        P
                  ! RRRR4      V n        RV n        R# )r   TNF)r   r   	_proactor_unregister_proactorrX   ZCreateEvent_event
_event_fut)r   r   rJ   rK   proactorr   r   s   &&&&&$r   r   Z_WaitHandleFuture.__init__   sA    [<!$(!!--dD%Fr   c                s   < V P                   e/   \        P                  ! V P                   4       R V n         R V n        V P                  P                  V P                  4       R V n        \        SV `!  V4       R # r4   )	rg   rO   CloseHandlerh   re   _unregisterr   r   rV   )r   rT   r   r3   r   rV   Z%_WaitHandleFuture._unregister_wait_cb   sY    ;;",DK"DO 	""488,#C(r   c                s   V P                   '       g   R # RV n         V P                  pR V n         \        P                  ! WP                  4       V P                  P                  V P                  V P                  4      V n        R #   \
         dt   pTP                  \        P                  8w  dK   RRRTRT /pT P                  '       d   T P                  TR&   T P                  P                  T4        R p?R #  R p?LR p?ii ; irW   )rI   rH   rX   ZUnregisterWaitExrg   r)   rY   rZ   r   r*   r+   re   _wait_cancelrV   rh   r[   r\   r   r]   Z"_WaitHandleFuture._unregister_wait   s     '' 	((kkB ..55dkk6:6N6NP  
	||{;;;Ed
 )))262H2HG./

11': <
	s    B D8D *D  D)rg   rh   re   rI   rf   rH   )
r;   r<   r=   r>   r   rV   r]   r@   rA   rB   rC   rE   r   rd   rd      s"     $ )$P Pr   rd   c                   sF   a  ] tR t^t o RtR tR tR tR tR t	]	t
RtV tR# )	
PipeServerzPClass representing a pipe server.

This is much like a bound, listening socket.
c                s    Wn         \        P                  ! 4       V n        R V n        R V n        V P                  R4      V n        R # NT)_addressweakrefWeakSet_free_instances_pipe_accept_pipe_future_server_pipe_handle)r   r    rU   r   r   ZPipeServer.__init__   s9    &0 
#' --d3
r   c                sJ    V P                   V P                  R 4      uqn         V# )F)rs   ru   )r   tmp   & r   _get_unconnected_pipeZ PipeServer._get_unconnected_pipe  s#    
 **d&>&>u&EZ
r   c           
     sj   V P                  4       '       d   R # \        P                  \        P                  ,          pV'       d   V\        P                  ,          p\        P
                  ! V P                  V\        P                  \        P                  ,          \        P                  ,          \        P                  \        P                  \        P                  \        P                  \        P                  4      p\        P                  ! V4      pV P                   P#                  V4       V# r4   )closedrO   ZPIPE_ACCESS_DUPLEXZFILE_FLAG_OVERLAPPEDZFILE_FLAG_FIRST_PIPE_INSTANCEZCreateNamedPipero   ZPIPE_TYPE_MESSAGEZPIPE_READMODE_MESSAGEZ	PIPE_WAITZPIPE_UNLIMITED_INSTANCESr   ZBUFSIZEZNMPWAIT_WAIT_FOREVERNULL
PipeHandlerr   add)r   ZfirstflagsZhpipe   &&   r   ru   ZPipeServer._server_pipe_handle  s    ;;==**W-I-IIW:::E##MM5%%(E(EE,,!!=#8#8((',,8 ''*  &r   c                s    V P                   R J # r4   )ro   rP   rQ   r   ry   ZPipeServer.closed   s    %&r   c                s   V P                   e"   V P                   P                  4        R V n         V P                  eN   V P                   F  pVP	                  4        K  	  R V n        R V n        V P                  P                  4        R # R # r4   )rt   r(   ro   rr   closers   clear)r   r~   rw   r   r   ZPipeServer.close#  sp    ##/$$++-'+D$==$,,

 -DJ DM  &&( %r   )rt   ro   rr   rs   N)r;   r<   r=   r>   r?   r   rx   ru   ry   r   __del__r@   rA   rD      @r   rm   rm      s*     4$'
) Gr   rm   c                   s    ] tR tRtRtRtR# )_WindowsSelectorEventLoopi2  z'Windows version of selector event loop. N)r;   r<   r=   r>   r?   r@   r   r   r   r   r   2  s    1r   r   c                   sh   a a ] tR tRt oRtR
V 3R lltV 3R ltV 3R ltR tR t	R
R lt
R	tVtV ;t# )r
   i6  z2Windows version of proactor event loop using IOCP.c                sB   < Vf   \        4       p\        SV `	  V4       R # r4   )r   r   r   )r   ri   r   r3   r   r   ZProactorEventLoop.__init__9  s    #~H"r   c                sZ   < V P                  V P                  4       \        SV `  4        R # r4   )	call_soonZ_loop_self_readingr   _run_forever_setup)r   r   s   &r   r   Z$ProactorEventLoop._run_forever_setup>  s     t../"$r   c                s  < \         SV `  4        V P                  ek   V P                  P                  pV P                  P	                  4        Ve.   VP
                  '       g   V P                  P                  V4       R V n        R # R # r4   )r   _run_forever_cleanup_self_reading_futurer   r(   r   re   rk   )r   r   r      & r   r   Z&ProactorEventLoop._run_forever_cleanupC  sk    $&$$0**..B%%,,. ~bjjj**2.(,D% 1r   c                s   "   V P                   P                  V4      pVG R j  xL
 pV! 4       pV P                  WERV/R7      pWe3#  L#5i)Naddrextra)re   connect_pipe_make_duplex_pipe_transport)r   protocol_factoryr    fr~   protocoltranss   &&&    r   create_pipe_connectionZ(ProactorEventLoop.create_pipe_connectionR  sU     NN''0w#%008>7H 1 J	 s   !A	A$A	c                sj   a aaaa"   \        S4      oRVVVV V3R lloS P                  S4       S.# 5i)Nc           	      s  < R p V '       dp   V P                  4       pSP                  P                  V4       SP                  4       '       d   VP	                  4        R # S! 4       pSP                  WRS/R7       SP                  4       pVf   R # SP                  P                  V4      p V Sn	        V P                  S4       R #   \         dC    T'       d&   TP                  4       R
8w  d   TP	                  4        SP                  S4        R # \         d   pT'       d>   TP                  4       R
8w  d)   SP                  RRRTRT/4       TP	                  4        M+SP                   '       d   \"        P$                  ! RTRR	7       SP                  S4        R p?R # R p?i\&        P(                   d     T'       d   TP	                  4         R #  R # i ; i)Nr   r   r$   zPipe accept failedr%   r~   zAccept pipe failed on pipe %rT)Zexc_infor   )r9   rr   Zdiscardry   r   r   rx   re   accept_pipert   add_done_callbackBrokenPipeErrorfilenor   r)   r+   Z_debugr	   Zwarningr   CancelledError)	r   r~   r   r,   r    loop_accept_piper   r   servers	   &   r   r   Z>ProactorEventLoop.start_serving_pipe.<locals>.loop_accept_pipe]  s}   D)688:D**2248}} 

/1H44vw.? 5 A 335<NN..t4* ./*##$45+ # 1DKKMR/JJL/0 1DKKMR///!#7#S1 
 JJL[[[NN#B#'$8/00,, !JJL !sZ   C A C C  0C C G6GGGAF$4*F$$G;GGGr4   )rm   r   )r   r   r    r   r   s   fff@@r   start_serving_pipeZ$ProactorEventLoop.start_serving_pipeZ  s1     G$+	6 +	6Z 	'(xs   ,3c	           
     s  "   V P                  4       p
\        WW#WEWg3R V
RV/V	B p V
G Rj  xL
  V#  L  \        \        3 d    h \         d,    TP                  4        TP                  4       G Rj  xL 
  h i ; i5i)waiterr   N)create_future_WindowsSubprocessTransportZ
SystemExitZKeyboardInterruptZBaseExceptionr   Z_wait)r   r   argsshellstdinstdoutstderrbufsizer   kwargsr   Ztransps   &&&&&&&&&,  r   _make_subprocess_transportZ,ProactorEventLoop._make_subprocess_transport  s      ##%,TT-2F74:7BG7 067	LL  -. 	 	LLN,,.  	s7   $A?5 35 A?5 A<$A<4A75A<<A?)r   r4   )r;   r<   r=   r>   r?   r   r   r   r   r   r   r@   rA   rB   rC   rE   r   r
   r
   6  s,     <#
%
-1f r   c                   s  a  ] tR tRt o Rt]3R ltR tR tR t	R#R lt
R	 t]R
 4       t]R 4       tR$R ltR$R ltR$R ltR$R ltR%R ltR$R ltR tR tR tR tR tR#R ltR tR tR tR tR t R t!R#R lt"R t#R  t$R! t%R"t&V t'R# )&r   i  z#Proactor implementation using IOCP.c                s   R V n         . V n        \        P                  ! \        P                  \
        ^ V4      V n        / V n        \        P                  ! 4       V n
        . V n        \        P                  ! 4       V n        R # r4   )r*   _resultsrX   CreateIoCompletionPortINVALID_HANDLE_VALUErz   _iocp_cacherp   rq   rI   _unregistered_stopped_serving)r   ZconcurrencyrU   r   r   ZIocpProactor.__init__  s_    
 77,,dA{D
"??, ' 1r   c                s8    V P                   f   \        R4      hR # )NzIocpProactor is closed)r   rb   rP   rQ   r   _check_closedZIocpProactor._check_closed  s    ::788 r   c                s   R \        V P                  4      ,          R\        V P                  4      ,          .pV P                  f   VP	                  R4       RV P
                  P                  : RRP                  V4      : R2# )zoverlapped#=%sz
result#=%sry   Z<Z r   )Zlenr   r   r   rS   r   r;   Zjoin)r   r"   rw   r   __repr__ZIocpProactor.__repr__  s_     3t{{#33s4==113::KK! NN33SXXd^DDr   c                s    Wn         R # r4   )r*   )r   r   rU   r   set_loopZIocpProactor.set_loop  s    
r   Nc                s    V P                   '       g   V P                  V4       V P                   p. V n          TR p#   R pi ; ir4   )r   rR   )r   timeoutrv      && r   selectZIocpProactor.select  s<    }}}JJwmm	 C$Cs	   < A c                s\    V P                   P                  4       pVP                  V4       V# r4   )r*   r   r7   )r   valuerT   r   r   _resultZIocpProactor._result  s%    jj&&(u
r   c                s     VP                  4       #   \         dI   pTP                  \        P                  \        P
                  39   d   \        TP                  !  hh R p?ii ; ir4   )	getresultr)   rY   rX   ZERROR_NETNAME_DELETEDZERROR_OPERATION_ABORTEDZConnectionResetErrorr   )r   keyr   r,      &&& r   finish_socket_funcZIocpProactor.finish_socket_func  sY    	<<>! 	|| A A + C C E E*CHH55	s    A%AA  A%c               s     V P                  WV4      #   \         d/   pTP                  \        P                  8X  d
   TR 3u R p?# h R p?ii ; ir4   )r   r)   rY   rX   ZERROR_PORT_UNREACHABLE)Zclsr   r   r   empty_resultr,   s   &&&&$ r   _finish_recvfromZIocpProactor._finish_recvfrom  sL    	))%b99 	 ||{AAA#T))	s     A"AAAAc                s   V P                  V4       \        P                  ! \        4      p \	        V\
        P
                  4      '       d"   VP                  VP                  4       W#4       M!VP                  VP                  4       V4        V P                  WAV P                  4      #   \         d    T P                  R 4      u # i ; i)r   )_register_with_iocprX   
Overlappedrz   
isinstancesocketZWSARecvr   ZReadFiler   r   	_registerr   r   connZnbytesr}   r      &&&& r   recvZIocpProactor.recv  s      &##D)	%$..

4;;=&8DKKM62 ~~b(?(?@@  	%<<$$	%   A B+ . B+ +C
	C
c                s   V P                  V4       \        P                  ! \        4      p \	        V\
        P
                  4      '       d"   VP                  VP                  4       W#4       M!VP                  VP                  4       V4        V P                  WAV P                  4      #   \         d    T P                  ^ 4      u # i ; irM   )r   rX   r   rz   r   r   ZWSARecvIntor   ZReadFileIntor   r   r   r   r   r   bufr}   r   r   r   	recv_intoZIocpProactor.recv_into  s      &##D)	#$..t{{}c9s3 ~~b(?(?@@  	#<<?"	#r   c           	     s,   V P                  V4       \        P                  ! \        4      p VP	                  VP                  4       W#4       T P                  YA\        T P                  R R7      4      #   \         d    T P                  R4      u # i ; i)r   r   )r   N)r   rX   r   rz   ZWSARecvFromr   r   r   r   r    r   r   r   r   recvfromZIocpProactor.recvfrom  s      &##D)	-NN4;;=&8 ~~b0E0E=@)B C 	C  	-<<,,	-    A4 4BBc           	     s,   V P                  V4       \        P                  ! \        4      p VP	                  VP                  4       W#4       T P                  YA\        T P                  ^ R7      4      #   \         d    T P                  R4      u # i ; i)rN   r   rN   N)r   rX   r   rz   ZWSARecvFromIntor   r   r   r   r    r   r   r   r   recvfrom_intoZIocpProactor.recvfrom_into  s      &##D)	+t{{}c9 ~~b0E0E=>)@ A 	A  	+<<	**	+r   c                s    V P                  V4       \        P                  ! \        4      pVP	                  VP                  4       W#V4       V P                  WQV P                  4      # r4   )r   rX   r   rz   Z	WSASendTor   r   r   )r   r   r   r}   r   r   s   &&&&& r   sendtoZIocpProactor.sendto  sM      &##D)
T[[]C5~~b(?(?@@r   c                sR   V P                  V4       \        P                  ! \        4      p\	        V\
        P
                  4      '       d"   VP                  VP                  4       W#4       M VP                  VP                  4       V4       V P                  WAV P                  4      # r4   )r   rX   r   rz   r   r   ZWSASendr   Z	WriteFiler   r   r   r   r   sendZIocpProactor.send  sp      &##D)dFMM**JJt{{}c1LL,~~b(?(?@@r   c                s  aa V P                  S4       V P                  SP                  4      o\        P                  ! \
        4      pVP                  SP                  4       SP                  4       4       VV3R  lpR pV P                  VSV4      pV! VS4      p\        P                  ! W`P                  R7       V# )c                 s.  < VP                  4        \        P                  ! R SP                  4       4      pSP	                  \
        P                  \        P                  V4       SP                  SP                  4       4       SSP                  4       3# )z@P)r   structZpackr   
setsockoptr   
SOL_SOCKETrX   ZSO_UPDATE_ACCEPT_CONTEXT
settimeoutZ
gettimeoutZgetpeername)r   r   r   r   r   listeners   &&& r   finish_acceptZ*IocpProactor.accept.<locals>.finish_accept+  sl    LLN++dHOO$56COOF--'@@#GOOH//12))+++r   c                 s|   "    V G R j  xL
  R #  L  \         P                   d    TP                  4        h i ; i5ir4   )r   r   r   )r&   r   rU   r   accept_coroZ(IocpProactor.accept.<locals>.accept_coro4  s1     ,, 

s    <  < '9<r   )r   _get_accept_socketfamilyrX   r   rz   ZAcceptExr   r   r   Zensure_futurer*   )r   r   r   r   r   r&   Zcoror   s   &f     @r   acceptZIocpProactor.accept%  s      *&&x7##D)
HOO%t{{}5	,	 Hm<64(Dzz2r   c                s  a SP                   \        P                  8X  dS   \        P                  ! SP                  4       V4       V P                  P                  4       pVP                  R 4       V# V P                  S4        \        P                  ! SP                  4       SP                  4       \        P"                  ! \$        4      pVP'                  SP                  4       V4       V3R lpV P)                  VSV4      #   \         dH   pTP                  \        P                  8w  d   h SP!                  4       ^,          ^ 8X  d   h  R p?LR p?ii ; i)Nc                 s   < VP                  4        SP                  \        P                  \        P
                  ^ 4       S# rM   )r   r   r   r   rX   ZSO_UPDATE_CONNECT_CONTEXT)r   r   r   r      &&&r   finish_connectZ,IocpProactor.connect.<locals>.finish_connectW  s1    LLNOOF--'AA1FKr   )Ztyper   Z
SOCK_DGRAMrX   Z
WSAConnectr   r*   r   r7   r   Z	BindLocalr   r)   rY   errnoZ	WSAEINVALZgetsocknamer   rz   Z	ConnectExr   )r   r   r    rT   er   r   s   &f&    r   connectZIocpProactor.connectA  s    99))) ""4;;=':****,CNN4 J  &	!!$++-= ##D)
T[[]G,	 ~~b$77!  	zzU__,!!$) *		s   /D E=EEc           	     sN   V P                  V4       \        P                  ! \        4      pVR ,          pV^ ,	          R ,          pVP	                  VP                  4       \        P                  ! VP                  4       4      WgV^ ^ 4       V P                  WQV P                  4      # )l    )
r   rX   r   rz   ZTransmitFiler   msvcrtZget_osfhandler   r   )r   ZsockZfileZoffsetZcountr   Z
offset_lowZoffset_highs   &&&&&   r   sendfileZIocpProactor.sendfile`  s      &##D)k)
|{2
,,T[[];"q!	%
 ~~b(?(?@@r   c                s   a V P                  S4       \        P                  ! \        4      pVP	                  SP                  4       4      pV'       d   V P                  S4      # V3R  lpV P                  VSV4      # )c                 s(   < VP                  4        S# r4   )r   )r   r   r   r~   r   r   finish_accept_pipeZ4IocpProactor.accept_pipe.<locals>.finish_accept_pipew  s    LLNKr   )r   rX   r   rz   ZConnectNamedPiper   r   r   )r   r~   r   Z	connectedr   s   &f   r   r   ZIocpProactor.accept_pipel  sf      &##D)''6	 <<%%	 ~~b$(:;;r   c                sT  "   \         p  \        P                  ! V4      p \        P                  ! T4      #   \         d+   pTP                  \        P
                  8w  d   h  Rp?MRp?ii ; i\        T^,          \        4      p\        P                  ! T4      G Rj  xL 
  K  5i)TN)CONNECT_PIPE_INIT_DELAYrX   ZConnectPiper)   rY   ZERROR_PIPE_BUSYZminCONNECT_PIPE_MAX_DELAYr   Zsleepr   r{   )r   r    ZdelayrJ   r,   r   r   r   ZIocpProactor.connect_pipe}  s     '$009 ''//  <<;#>#>> ?
 	#9:E++e$$$s7   B(8 B(A- A(#B((A--3B( B#!B(c                s&    V P                  WR4      # )zWait for a handle.

Return a Future object. The result of the future is True if the wait
completed, or False if the wait did not complete (on timeout).
F)_wait_for_handle)r   rJ   r   s   &&&r   wait_for_handleZIocpProactor.wait_for_handle  s     $$Ve<<r   c                s8    V P                  VR R4      pW#n        V# rn   )r   r`   )r   ra   Zdone_callbackrT   r   r   rl   ZIocpProactor._wait_cancel  s#    ##E46 +
r   c                s  a V P                  4        Vf   \        P                  pM\        P                  ! VR,          4      p\
        P                  ! \        4      p\
        P                  ! WP                  VP                  V4      pV'       d   \        WQW`P                  R7      oM\        WQW`V P                  R7      oSP                  '       d   SP                  R V3R lpSV^ V3V P                  VP                  &   S# )N     @@r   c                 s$   < SP                  4       # r4   )rR   )r   r   r   r   r   r   finish_wait_for_handleZ=IocpProactor._wait_for_handle.<locals>.finish_wait_for_handle  s     779r   r   )r   rO   INFINITEmathceilrX   r   rz   ZRegisterWaitWithQueuer   r    r_   r*   rd   r   r   )	r   rJ   r   Z
_is_cancelmsr   rK   r   r   s	   &&&&    @r   r   ZIocpProactor._wait_for_handle  s    ?!!B 7S=)B ##D)!77JJ

B0!"k

KA!"k'+zz3A##B'	 $%b!-C"DBJJr   c                s    WP                   9  dO   V P                   P                  V4       \        P                  ! VP	                  4       V P
                  ^ ^ 4       R# R# r   )rI   r|   rX   r   r   r   r   objrU   r   r   Z IocpProactor._register_with_iocp  sG     &&&  %..szz|TZZAN 'r   c                st   V P                  4        \        WP                  R 7      pVP                  '       d   VP                  R VP                  '       g    V! RRV4      pVP                  V4       WAW#3V P                  VP                  &   V#   \         d   pTP                  T4        Rp?L>Rp?ii ; ir   )
r   r   r*   r   r   r7   r)   r5   r   r    )r   r   r   callbackr   r   r   s   &&&&   r   r   ZIocpProactor._register  s    
 bzz2##B'zzz
$ tR0 U# $%#"8BJJ  #""#s   
B B7B22B7c                s\    V P                  4        V P                  P                  V4       R# )zUnregister an overlapped object.

Call this method when its future has been cancelled. The event can
already be signalled (pending in the proactor event queue). It is also
safe if the event is never signalled (because it was cancelled).
N)r   r   rS   )r   r   rU   r   rk   ZIocpProactor._unregister  s$     	!!"%r   c                sT    \         P                   ! V4      pVP                  ^ 4       V# rM   )r   r   )r   r   Zsr   r   r   ZIocpProactor._get_accept_socket  s     MM&!	Qr   c                sv   Vf   \         pMEV^ 8  d   \        R4      h\        P                  ! VR,          4      pV\         8  d   \        R4      h \        P
                  ! V P                  V4      pVf   M^ pVw  rErg V P                  P                  V4      w  rrYP                   9   d   TP#                  4        Ko  TP%                  4       '       d   K   T! YVT	4      pTP'                  T4       T P(                  P+                  T4       R pK  V P0                   F)  p	V P                  P                  V	P2                  R 4       K+  	  V P0                  P5                  4        R #   \         d{    T P                  P                  4       '       d)   T P                  P                  RRRRYEYg3,          /4       T^ \        P                  39  d   \        P                  ! T4        EK  i ; i  \,         d8   pTP/                  T4       T P(                  P+                  T4        R p?ELR p?ii ; i  R pi ; i)Nznegative timeoutr   ztimeout too bigr$   z8GetQueuedCompletionStatus() returned an unexpected eventstatusz)err=%s transferred=%s key=%#x address=%#x)r   Z
ValueErrorr   r   rX   ZGetQueuedCompletionStatusr   r   ZpopZKeyErrorr*   Z	get_debugr+   r   rO   rj   r   r(   Zdoner7   r   rS   r)   r5   r   r    r   )r   r   r   r   ZerrZtransferredr   r    r   r   r   r   r   r   s   &&            r   rR   ZIocpProactor._poll  s   ?Bq[/00 7S=)BX~ !233 ::4::rJF~B-3*Cc'+{{w'?$s  +++
 VVXX	$[r:E
 LL'MM((+A $$BKKOOBJJ- %  "E  ::''))JJ55! %7 #N&)%E$F7  q+"B"BCC'',,  ,OOA&MM((++, AsI    E' 	G/ ",H4 '*G,AG,+G,/H1:,H,&H4 ,H11H4 4H8c                s<    V P                   P                  V4       R # r4   )r   r|   r   rU   r   _stop_servingZIocpProactor._stop_serving3  s     	!!#&r   c                s   V P                   f   R # \        V P                  P                  4       4       FG  w  rr4VP	                  4       '       d   K  \        V\        4      '       d   K6   VP                  4        KI  	  Rp\        P                  ! 4       pW,           p	V P                  '       d|   V	\        P                  ! 4       8:  dO   \        P                  ! RV \        P                  ! 4       V,
          4       \        P                  ! 4       V,           p	V P!                  V4       K  . V n        \$        P&                  ! V P                   4       R V n         R #   \         df   pT P                  eL   RRRTRT/pTP                  '       d   TP                  TR&   T P                  P                  T4        R p?EK   R p?EK  R p?ii ; i)Nr$   zCancelling a future failedr%   r&   r'   g      ?z,%r is running after closing for %.1f seconds)r   Zlistr   ZvaluesZ	cancelledr   r_   r(   r)   r*   r   r+   timeZ	monotonicr	   ZdebugrR   r   rO   rj   )
r   rT   r   r   r   r,   r-   Z
msg_updateZ
start_timeZnext_msgs
   &         r   r   ZIocpProactor.close9  sb   :: '+4;;+=+=+?&@"CS}}C!233CJJL 'A0 
^^%
*kkk4>>++K!4>>#3j#@B>>+j8 JJz"DJJ'
;  	Czz-%'C'$c#
 000:=:O:OG$67

99'BB .	Cs   +EG&'G*GGc                s&    V P                  4        R # r4   )r   rP   rQ   r   r   ZIocpProactor.__del__h  s    

r   )r   r   r*   rI   r   r   r   r4   rM   r   )(r;   r<   r=   r>   r?   r   r   r   r   r   r   r   Zstaticmethodr   Zclassmethodr   r   r   r   r   r   r   r   r   r   r   r   r   rl   r   r   r   rk   r   rR   r   r   r   r@   rA   r   r   r   r   r     s     -#+ 29E	
   	 	AA	C	AAA88>
A<"0&= DO@&
7#r'-^ r   c                   s&   a  ] tR tRt o R tRtV tR# )r   il  c                s  a  \         P                  ! V3R VRVRVRVRV/VB S n        V 3R lpS P                  P                  P                  \        S P                  P                  4      4      p	V	P                  V4       R# )r   r   r   r   r   c                 s^   < SP                   P                  4       pSP                  V4       R # r4   )_procZpollZ_process_exited)r   Z
returncoder   r   r   r   Z4_WindowsSubprocessTransport._start.<locals>.callbacks  s!    *J  ,r   N)	r   ZPopenr   r*   re   r   ZintrG   r   )
r   r   r   r   r   r   r   r   r   r   s
   f&&&&&&,  r   _startZ"_WindowsSubprocessTransport._startn  s    "((''%*'39'BH''%'
	- JJ  00TZZ5G5G1HI	H%r   )r   N)r;   r<   r=   r>   r   r@   rA   r   r   r   r   r   l  s     
& 
&r   r   c                       ] tR tRt]tRtR# )r   i~  r   N)r;   r<   r=   r>   SelectorEventLoop_loop_factoryr@   r   r   r   r   r   ~      %Mr   c                   r   )r   i  r   N)r;   r<   r=   r>   r
   r   r@   r   r   r   r   r     r   r   )r   r
   r   _DefaultEventLoopPolicyr   r   	EventLoop)5r?   ZsysZplatformZImportErrorrX   rO   r   Z	functoolsr    r   r   r   r   r   rp   Z r   r   r   r   r   r   r   r   Zlogr	   Z__all__rz   r   ZERROR_CONNECTION_REFUSEDZERROR_CONNECTION_ABORTEDr   r   ZFuturer   rF   r_   rd   Zobjectrm   ZBaseSelectorEventLoopr   ZBaseProactorEventLoopr
   r   ZBaseSubprocessTransportr   r   Z_BaseDefaultEventLoopPolicyr   r   r   r   r   r   r   <module>r      sa   4 
<<7
l
##                    ||       - -`G#GNN G#T&- &01P- 1Ph8 8v2 E E 2h== hVH HV&/"I"I & . &f&H&H &&f&H&H & : 	r   