ó
    Ö›‘h %  ã                   óJ  • % S r SSKrSSKrSSKrSSKJrJr  SSKJr  SSK	J
r
JrJrJr  SSKJr  SSKJrJrJr  SSKJr  SS	KJr  SS
KJrJr   SSKJr  \r\R>                  4r Sr$Sr%\&" S5      u  r'r(\RR                  " S5      r*\RR                  " S5      r+\" \RX                  \RZ                  \R\                  \R^                  /\ Q76  " S S\
R`                  \5      5       r1S r2SS/r3g! \! a0    SrSr \\\R>                     S4   \"S'   \RF                  " S5         N½f = f)z'
Reactor that uses IO completion ports
é    N)ÚTupleÚType)Úimplementer)ÚbaseÚerrorÚ
interfacesÚmain)ÚProcess)ÚiocpsupportÚtcpÚudp)ÚWAIT_TIMEOUT)Ú_ThreadedWin32EventsMixin)ÚfailureÚlog)ÚTLSMemoryBIOFactory© .Ú_extraInterfacesz|pyOpenSSL 0.10 or newer is required for SSL support in iocpreactor. It is missing, so the reactor will not support SSL APIs.iÐ  éè  é   z#Handler has no getFileHandle methodzFiledescriptor went awayc                   ó  • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS\R                  S\R                  S\R                  4S jrSS jrSS jr\b  SS jr SS jrOSS jr SS jrSS jr SS jrS0 SSSSS4S jrS rSrg) ÚIOCPReactoré2   Nc                 ó”   • [         R                  R                  U 5        [        R                  " 5       U l        [        5       U l        g ©N)r   ÚReactorBaseÚ__init__Ú_iocpÚCompletionPortÚportÚsetÚhandles©Úselfs    ÚhC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/internet/iocpreactor/reactor.pyr   ÚIOCPReactor.__init__<   s/   € Ü×Ñ×!Ñ! $Ô'Ü×(Ò(Ó*ˆŒ	Ü“uˆ�ó    c                 ó:   • U R                   R                  U5        g r   )r"   Úadd©r$   Úhandles     r%   ÚaddActiveHandleÚIOCPReactor.addActiveHandleA   s   € Ø�‰×Ñ˜Õ r'   c                 ó:   • U R                   R                  U5        g r   )r"   Údiscardr*   s     r%   ÚremoveActiveHandleÚIOCPReactor.removeActiveHandleD   s   € Ø�‰×Ñ˜VÕ$r'   c                 óŒ  • SnUc  [         nO[        [         [        SU-  5      5      nU R                  R	                  U5      u  p4pV U[
        :X  a  gU[        :w  a>  U[        :X  d   e[        R                  " UR                  U R                  X4U5        US-  nU[        :¼  a  gU R                  R	                  S5      u  p4pVM~  )z-
Poll the IO completion port for new events.
r   Nr   é   )ÚMAX_TIMEOUTÚminÚintr    ÚgetEventr   Ú
KEY_WAKEUPÚ
KEY_NORMALr   ÚcallWithLoggerÚownerÚ_callEventCallbackÚEVENTS_PER_LOOP)r$   ÚtimeoutÚprocessed_eventsÚrcÚnumBytesÚkeyÚevts          r%   ÚdoIterationÚIOCPReactor.doIterationG   s½   € ð2 ÐØ‰?Ü!‰Gäœ+¤s¨4°'©>Ó':Ó;ˆGØ!%§¡×!3Ñ!3°GÓ!<Ñˆ�cØØ”\Ó!ØØ”jÓ ØœjÓ(Ð(Ð(Ü×"Ò"Ø—I‘I˜t×6Ñ6¸Àcôð ! AÑ%Ð Ø¤?Ó2ØØ%)§Y¡Y×%7Ñ%7¸Ó%:Ñ"ˆB˜#ñ r'   c                 ó„  • UR                   nS n UR                  XU5        [        USS 5      nU(       d  [        nOU" 5       S:X  a  [        nU(       a  g  U(       a&  UR                  [        R                  " U5      5        g g ! [
         a0    [        R                  " 5       S   n[        R                  " 5          Ngf = f)NÚgetFileHandleéÿÿÿÿr3   )r;   ÚcallbackÚgetattrÚ_NO_GETHANDLEÚ_NO_FILEDESCÚBaseExceptionÚsysÚexc_infor   ÚerrÚloseConnectionr   ÚFailure)r$   r@   rA   rC   r;   ÚwhyÚhandfns          r%   r<   ÚIOCPReactor._callEventCallbacks   s�   € Ø—	‘	ˆØˆð	Ø�L‰L˜ sÔ+Ü˜U O°TÓ:ˆFÞÜ#‘Ù“˜R“Ü"�ÞØð ö
 Ø× Ñ ¤§¢°Ó!5Õ6ð øô ó 	Ü—,’,“. Ñ#ˆCÜ�GŠGŽIð	ús   �AB Â7B?Â>B?c                 ó   • g r   r   r#   s    r%   ÚinstallWakerÚIOCPReactor.installWaker…   s   € Ør'   c                 óF   • U R                   R                  S[        S 5        g )Nr   )r    Ú	postEventr8   r#   s    r%   ÚwakeUpÚIOCPReactor.wakeUpˆ   s   € Ø�	‰	×Ñ˜Aœz¨4Õ0r'   c                 óD   • U R                   R                  U[        5        g r   )r    Ú	addHandler9   r*   s     r%   ÚregisterHandleÚIOCPReactor.registerHandle‹   s   € Ø�	‰	×Ñ˜F¤JÕ/r'   ÚafÚstypeÚreturnc                 óp   • [         R                   " X5      nU R                  UR                  5       5        U$ r   )Úsocketr_   Úfileno)r$   ra   rb   Úskts       r%   ÚcreateSocketÚIOCPReactor.createSocketŽ   s+   € ô �mŠm˜BÓ&ˆØ×Ñ˜CŸJ™J›LÔ)Øˆ
r'   c                 óV   • [         R                  " XX4U 5      nUR                  5         U$ )z9
@see: twisted.internet.interfaces.IReactorTCP.listenTCP
)r   ÚPortÚstartListening)r$   r    ÚfactoryÚbacklogÚ	interfaceÚps         r%   Ú	listenTCPÚIOCPReactor.listenTCP•   s'   € ô �HŠH�T G¸Ó=ˆØ	×ÑÔØˆr'   c                 óV   • [         R                  " XX4XP5      nUR                  5         U$ )z:
@see: twisted.internet.interfaces.IReactorTCP.connectTCP
)r   Ú	ConnectorÚconnect)r$   Úhostr    rm   r>   ÚbindAddressÚcs          r%   Ú
connectTCPÚIOCPReactor.connectTCP�   s$   € ô �MŠM˜$ g¸ÓJˆØ	�	‰	ŒØˆr'   c                 óR   • U R                  U[        USU5      UU5      nSUl        U$ )z9
@see: twisted.internet.interfaces.IReactorSSL.listenSSL
FÚTLS)rq   r   Ú_type©r$   r    rm   ÚcontextFactoryrn   ro   s         r%   Ú	listenSSLÚIOCPReactor.listenSSL§   s5   € ð —>‘>ØÜ# N°E¸7ÓCØØó	ˆDð ˆDŒJØˆKr'   c           	      óB   • U R                  UU[        USU5      UU5      $ )z:
@see: twisted.internet.interfaces.IReactorSSL.connectSSL
T)ry   r   ©r$   rv   r    rm   r   r>   rw   s          r%   Ú
connectSSLÚIOCPReactor.connectSSL´   s-   € ð —?‘?ØØÜ# N°D¸'ÓBØØóð r'   c                 ó   • [        S5      e)z�
Non-implementation of L{IReactorSSL.listenSSL}.  Some dependency
is not satisfied.  This implementation always raises
L{NotImplementedError}.
ú|pyOpenSSL 0.10 or newer is required for SSL support in iocpreactor. It is missing, so the reactor does not support SSL APIs.©ÚNotImplementedErrorr~   s         r%   r€   r�   Ä   s   € ô &ðóð r'   c                 ó   • [        S5      e)z�
Non-implementation of L{IReactorSSL.connectSSL}.  Some dependency
is not satisfied.  This implementation always raises
L{NotImplementedError}.
r‡   rˆ   rƒ   s          r%   r„   r…   Ð   s   € ô &ðóð r'   c                 óV   • [         R                  " XX4U 5      nUR                  5         U$ )zx
Connects a given L{DatagramProtocol} to the given numeric UDP port.

@returns: object conforming to L{IListeningPort}.
)r   rk   rl   )r$   r    Úprotocolro   ÚmaxPacketSizerp   s         r%   Ú	listenUDPÚIOCPReactor.listenUDPÞ   s'   € ô �HŠH�T Y¸tÓDˆØ	×ÑÔØˆr'   c                 óV   • [         R                  " XX4X5      nUR                  5         U$ )z�
Connects a given DatagramProtocol to the given numeric UDP port.

EXPERIMENTAL.

@returns: object conforming to IListeningPort.
)r   ÚMulticastPortrl   )r$   r    rŒ   ro   r�   ÚlistenMultiplerp   s          r%   ÚlistenMulticastÚIOCPReactor.listenMulticastè   s.   € ô ×ÒØ˜I°dó
ˆð 	
×ÑÔØˆr'   r   r   c
                 ó”   • Ub  [        S5      eUb  [        S5      eU(       a  [        S5      eU	b  [        S5      e[        XX#XE5      $ )z
Spawn a process.
z,Setting UID is unsupported on this platform.z,Setting GID is unsupported on this platform.z&PTYs are unsupported on this platform.zGCustom child file descriptor mappings are unsupported on this platform.)Ú
ValueErrorr
   )
r$   ÚprocessProtocolÚ
executableÚargsÚenvÚpathÚuidÚgidÚusePTYÚchildFDss
             r%   ÚspawnProcessÚIOCPReactor.spawnProcessø   s^   € ð ‰?ÜÐKÓLÐLØ‰?ÜÐKÓLÐLÞÜÐEÓFÐFØÑÜð!óð ô �t¨jÀÓJÐJr'   c                 ód   • [        U R                  5      nU R                  R                  5         U$ r   )Úlistr"   Úclear)r$   Úress     r%   Ú	removeAllÚIOCPReactor.removeAll  s%   € Ü�4—<‘<Ó ˆØ�‰×ÑÔØˆ
r'   )r"   r    )r   Ú )é   N)r¨   é    )r¨   rª   F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r    r   r,   r0   rD   r<   rW   r[   r_   re   ÚAddressFamilyÚ
SocketKindrh   rq   ry   r   r€   r„   rŽ   r“   r    r¦   Ú__static_attributes__r   r'   r%   r   r   2   sÆ   † ð €Dòò
!ò%ò*;òX7ò$ò1ò0ðØ×&Ñ&ðØ/5×/@Ñ/@ðà	�‰ôôôð Ñ&ô	ð PTõ	ô 
	ð PTô	ôð PUôð( ØØØØØØôKõ8r'   r   c                  óD   • [        5       n [        R                  " U 5        g r   )r   r	   ÚinstallReactor)Úrs    r%   Úinstallrµ     s   € Ü‹€AÜ×Ò˜Õr'   rµ   )4Ú__doc__re   rN   ÚwarningsÚtypingr   r   Úzope.interfacer   Útwisted.internetr   r   r   r	   Útwisted.internet._dumbwin32procr
   Útwisted.internet.iocpreactorr   r   r   r   Ú"twisted.internet.iocpreactor.constr   Ú"twisted.internet.win32eventreactorr   Útwisted.pythonr   r   Útwisted.protocols.tlsr   Ú_TLSMemoryBIOFactoryÚIReactorSSLr   ÚImportErrorÚ__annotations__Úwarnr4   r=   Úranger9   r8   ÚConnectionFdescWentAwayrK   rL   ÚIReactorTCPÚIReactorUDPÚIReactorMulticastÚIReactorProcessr   r   rµ   Ú__all__r   r'   r%   Ú<module>rÍ      sH  ðò
ó
 Û 
Û ß å &ç :Ó :Ý 3ß GÑ GÝ ;Ý Hß 'ð1ÝQð /ÐØ"×.Ñ.Ð0Ðà€à€ñ ˜q›Ñ €
ˆJà×-Ò-Ð.SÓT€Ø×,Ò,Ð-GÓH€ñ Ø×ÑØ×ÑØ× Ñ Ø×Ñð	ð
 òô^�$×"Ñ"Ð$=ó ^óð^òBð
 ˜)Ð
$�øðK ó ØÐð BDÐ�e˜D ×!7Ñ!7Ñ8¸#Ð=Ñ>ÓCØ‡M‚Mð	Cöðús   ÁC, Ã,3D"Ä!D"