+
    üÐj{  ã                   ó  a € R t0 t R t^ RIt^ RIHt ^ RIHtHt ^ RIH	t	H
t
Ht ^ RIHtHt ]! ]	4       ! R R]P                  4      4       t]R8X  d®   ]P$                  ! ]P&                  ^,          4      P)                  4        ]P*                  ! ]! ]P&                  ^,          R	4      4       ] ^ k ^ R
IHt ]! 4       t]P2                  ! ]4       ]P4                  ! 4        ]P6                  ! ]P8                  4       R# R# )zÑ
Main program for the child process run by
L{twisted.test.test_stdio.StandardInputOutputTests.test_buggyWriteConnectionLost}
to test that IHalfCloseableProtocol.writeConnectionLost works for stdio
transports.
N)Úimplementer)ÚprotocolÚstdio)ÚIHalfCloseableProtocolÚIReactorCoreÚ
ITransport)ÚlogÚreflectc                   ó„   a € ] tR t^t o Rt^	tRtV 3R lR ltV 3R lR ltRV 3R lR	 llt	V 3R
 lR lt
V 3R ltRtV tR# )ÚHalfCloseProtocolz¾
A protocol to hook up to stdio and observe its transport being
half-closed.  If all goes as expected, C{exitCode} will be set to C{0};
otherwise it will be set to C{1} to indicate failure.
Fc                ó   <€ V ^8„  d   QhRR/# ©é   ÚreturnN© )ÚformatÚ__classdict__s   "€ÚO/usr/lib/python3/dist-packages/twisted/test/stdio_test_halfclose_buggy_write.pyÚ__annotate__ÚHalfCloseProtocol.__annotate__"   s   ø€ ÷ #ñ # ñ #ó    c                ó<   € V P                   P                  R4       R# )z-
Signal the parent process that we're ready.
ó   xN)Ú	transportÚwrite©Úselfs   &r   ÚconnectionMadeÚ HalfCloseProtocol.connectionMade"   s   € ð 	�‰×Ñ˜TÖ"r   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   (   s   ø€ ÷ ñ  Dñ r   c                ó   € R# )z^
This is the desired event.  Once it has happened, stop the reactor so
the process will exit.
Nr   r   s   &r   ÚreadConnectionLostÚ$HalfCloseProtocol.readConnectionLost(   s   ‚ r   Nc                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úreasonr   N)Úobject)r   r   s   "€r   r   r   .   s   ø€ ÷ ñ ¡Vð °tñ r   c                ób   € V P                   '       d   ^ V n        \        P                  ! 4        R# )zt
This may only be invoked after C{readConnectionLost}.  If it happens
otherwise, mark it as an error and shut down.
N)ÚwasWriteConnectionLostÚexitCodeÚreactorÚstop)r   r$   s   &&r   ÚconnectionLostÚ HalfCloseProtocol.connectionLost.   s    € ð
 ×&×&Ð&ØˆDŒMÜ�ŠŽr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   7   s   ø€ ÷ 1ñ 1 Tñ 1r   c                ó&   € R V n         \        R4      h)Tzsomething went wrong)r'   Ú
ValueErrorr   s   &r   ÚwriteConnectionLostÚ%HalfCloseProtocol.writeConnectionLost7   s   € Ø&*ˆÔ#ÜÐ/Ó0Ð0r   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r   r   )r   )r   r   s   "€r   r   r      s   ø‡ ‚ ñ Ñò r   )r(   r'   )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r(   r'   r   r!   r+   r0   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      sG   ø‡ € ñð €HØ"Ð÷#ð #÷ð ÷ò ÷1ð 1÷C ƒ r   r   Ú__main__Úw)r)   c                ó@   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   # )r   r)   )Ú__conditional_annotations__r   )r   s   "r   r   r      s    € ÷ ñ ÷t ÒŒ\Ñòur   )r>   r7   ÚsysÚzope.interfacer   Útwisted.internetr   r   Útwisted.internet.interfacesr   r   r   Útwisted.pythonr   r	   ÚProtocolr   r3   ÚnamedAnyÚargvÚinstallÚstartLoggingÚopenr)   ÚhalfCloseProtocolÚ
StandardIOÚrunÚexitr(   r   )r>   s   @r   Ú<module>rN      sÌ   øðö
ó å &ç ,ß XÑ Xß 'ñ Ð#Ó$ô"1˜×)Ñ)ó "1ó %ð"1ðJ ˆzÔØ×Ò�S—X‘X˜a•[Ó!×)Ñ)Ô+Ø×Ò‘T˜#Ÿ(™( 1�+ sÓ+Ô,ÛÝ(á)Ó+ÐØ	×ÒÐ&Ô'Ø‡K‚K„MØ‡H‚HÐ×'Ñ'Ö(ñ r   