Ë
    òT•j¶  ã                   óÂ   — d dl Z d dlZddlmZmZ ej
                  s ed«      ‚ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ d	gZ G d
„ de«      Z G d„ d	e	j                  «      Zy)é    Né   )Ú	reductionÚset_spawning_popenz,No support for sending fds between processes)Ú
forkserver)Ú
popen_fork)Úspawn)ÚutilÚPopenc                   ó   — e Zd Zd„ Zd„ Zy)Ú_DupFdc                 ó   — || _         y ©N)Úind)Úselfr   s     ú7/usr/lib/python3.12/multiprocessing/popen_forkserver.pyÚ__init__z_DupFd.__init__   s	   € Øˆ�ó    c                 óD   — t        j                  «       | j                     S r   )r   Úget_inherited_fdsr   )r   s    r   Údetachz_DupFd.detach   s   € Ü×+Ñ+Ó-¨d¯h©hÑ7Ð7r   N)Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r      s   „ òó8r   r   c                   óP   ‡ — e Zd ZdZeZˆ fd„Zd„ Zd„ Ze	j                  fd„Zˆ xZS )r
   r   c                 ó2   •— g | _         t        ‰| �	  |«       y r   )Ú_fdsÚsuperr   )r   Úprocess_objÚ	__class__s     €r   r   zPopen.__init__!   s   ø€ ØˆŒ	Ü‰Ñ˜Õ%r   c                 óh   — | j                   j                  |«       t        | j                   «      dz
  S )Nr   )r   ÚappendÚlen)r   Úfds     r   Úduplicate_for_childzPopen.duplicate_for_child%   s'   € Ø�	‰	×Ñ˜ÔÜ�4—9‘9‹~ Ñ!Ð!r   c                 óÀ  — t        j                  |j                  «      }t        j                  «       }t        | «       	 t        j                  ||«       t        j                  ||«       t        d «       t        j                  | j                  «      \  | _        }t        j                  |«      }t        j                  | t        j                   || j                  f«      | _        t%        |dd¬«      5 }|j'                  |j)                  «       «       d d d «       t        j*                  | j                  «      | _        y # t        d «       w xY w# 1 sw Y   Œ>xY w)NÚwbT)Úclosefd)r   Úget_preparation_dataÚ_nameÚioÚBytesIOr   r   Údumpr   Úconnect_to_new_processr   ÚsentinelÚosÚdupr	   ÚFinalizeÚ	close_fdsÚ	finalizerÚopenÚwriteÚ	getbufferÚread_signedÚpid)r   r   Ú	prep_dataÚbufÚwÚ	_parent_wÚfs          r   Ú_launchzPopen._launch)   sú   € Ü×.Ñ.¨{×/@Ñ/@ÓAˆ	Ü�j‰j‹lˆÜ˜4Ô ð	%Ü�N‰N˜9 cÔ*Ü�N‰N˜;¨Ô,ä˜tÔ$ä%×<Ñ<¸T¿Y¹YÓGÑˆŒ�qô —F‘F˜1“Iˆ	ÜŸ™ t¬T¯^©^Ø(1°4·=±=Ð'AóCˆŒä�!�T 4Ô(ð 	%¨AØ�G‰G�C—M‘M“OÔ$÷	%ä×)Ñ)¨$¯-©-Ó8ˆ�øô ˜tÕ$ú÷	%ð 	%ús   Á ,E Ã7 EÅEÅEc                 óF  — | j                   €cddlm} |t        j                  k(  rdnd } || j
                  g|«      sy 	 t        j                  | j
                  «      | _         | j                   S | j                   S # t        t        f$ r d| _         Y | j                   S w xY w)Nr   )Úwaitéÿ   )
Ú
returncodeÚmultiprocessing.connectionrA   r0   ÚWNOHANGr/   r   r8   ÚOSErrorÚEOFError)r   ÚflagrA   Útimeouts       r   Úpollz
Popen.poll=   s�   € Ø�?‰?Ð"Ý7Ø¤2§:¡:Ò-‘a°4ˆGÙ˜Ÿ™˜¨Ô1Øð&Ü",×"8Ñ"8¸¿¹Ó"G�”ð �‰Ðˆt�‰Ðøô œXÐ&ò &ð #&�•à�‰Ðð&ús   Á $A< Á<B ÂB )r   r   r   Úmethodr   ÚDupFdr   r%   r?   r0   rE   rJ   Ú__classcell__)r    s   @r   r
   r
      s*   ø„ Ø€FØ€Eô&ò"ò9ð( Ÿ
™
÷ r   )r+   r0   Úcontextr   r   ÚHAVE_SEND_HANDLEÚImportErrorÚ r   r   r   r	   Ú__all__Úobjectr   r
   r   r   r   ú<module>rT      sV   ðÛ 	Û 	ç 2Ø×!Ò!Ù
ÐDÓ
EÐEÝ Ý Ý Ý ð ˆ)€ô8ˆVô 8ô-ˆJ×Ñõ -r   