§
    ¸)ýfk/  ã                   ó&  — g d ¢Z ddlZddlZddlZddlZddlZddlmZ 	 ej         	                     ej
        ¦   «         ¦  «        Zn# e$ r dZY nw xY wd„ Zd„ Zd„ Zd„ Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zda e¦   «         a ej        d¦  «        a e¦   «         a[i Z eej                              ¦   «         ¦  «        D ] \  Z!Z"e!dd…         dk    rde!vr	de!› �ee" <   Œ![![" e¦   «         Z#dS ))ÚBaseProcessÚcurrent_processÚactive_childrenÚparent_processé    N)ÚWeakSetc                  ó   — t           S )z@
    Return process object representing the current process
    )Ú_current_process© ó    úc/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/multiprocessing/process.pyr   r   %   s
   € õ Ðr   c                  óF   — t          ¦   «          t          t          ¦  «        S )zN
    Return list of process objects corresponding to live child processes
    )Ú_cleanupÚlistÚ	_childrenr
   r   r   r   r   +   s   € õ �J„J€JÝ•	‰?Œ?Ðr   c                  ó   — t           S )z?
    Return process object representing the parent process
    )Ú_parent_processr
   r   r   r   r   3   s
   € õ Ðr   c                  ó¢   — t          t          ¦  «        D ]9} | j        x}r.|                     ¦   «         �t                               | ¦  «         Œ:d S ©N)r   r   Ú_popenÚpollÚdiscard)ÚpÚchild_popens     r   r   r   =   sV   € å•)‰_Œ_ð !ð !ˆØœ8Ð#ˆKð 	!¨×)9Ò)9Ñ);Ô);Ð)GÝ×Ò˜aÑ Ô Ð øð!ð !r   c                   ón  — e Zd ZdZd„ Zddddi fddœd„Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
dd„Zd„ Zd„ Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZeZed„ ¦   «         Zd„ Zdd„Zed„ ¦   «         ZdS )r   z€
    Process objects represent activity that is run in a separate process

    The class is analogous to `threading.Thread`
    c                 ó   — t           ‚r   )ÚNotImplementedError©Úselfs    r   Ú_PopenzBaseProcess._PopenM   s   € Ý!Ð!r   Nr
   )Údaemonc                óN  — |�
J d¦   «         ‚t          t          ¦  «        }t          j        |fz   | _        t          j                             ¦   «         | _        t          j        ¦   «         | _        t          j	        | _
        d | _        d| _        || _        t          |¦  «        | _        t!          |¦  «        | _        |p;t%          | ¦  «        j        dz   d                     d„ | j        D ¦   «         ¦  «        z   | _        |�|| _        t.                               | ¦  «         d S )Nz#group argument must be None for nowFú-ú:c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )Ústr)Ú.0Úis     r   ú	<genexpr>z'BaseProcess.__init__.<locals>.<genexpr>^   s(   è è € Ð=Ð=¨�c !™fœfÐ=Ð=Ð=Ð=Ð=Ð=r   )ÚnextÚ_process_counterr	   Ú	_identityÚ_configÚcopyÚosÚgetpidÚ_parent_pidÚnameÚ_parent_namer   Ú_closedÚ_targetÚtupleÚ_argsÚdictÚ_kwargsÚtypeÚ__name__ÚjoinÚ_namer    Ú	_danglingÚadd)r   ÚgroupÚtargetr1   ÚargsÚkwargsr    Úcounts           r   Ú__init__zBaseProcess.__init__P   sõ   € àˆ}ˆ}ÐC‰}Œ}ˆ}ÝÕ%Ñ&Ô&ˆÝ)Ô3°u°hÑ>ˆŒÝ'Ô/×4Ò4Ñ6Ô6ˆŒÝœ9™;œ;ˆÔÝ,Ô1ˆÔØˆŒØˆŒØˆŒÝ˜4‘[”[ˆŒ
Ý˜F‘|”|ˆŒØð >�T $™ZœZÔ0°3Ñ6Ø—X’XÐ=Ð=¨d¬nÐ=Ñ=Ô=Ñ=Ô=ñ>ˆŒ
àÐØ ˆDŒKÝ�Š�dÑÔÐÐÐr   c                 ó2   — | j         rt          d¦  «        ‚d S )Nzprocess object is closed)r3   Ú
ValueErrorr   s    r   Ú_check_closedzBaseProcess._check_closedc   s%   € ØŒ<ð 	9ÝÐ7Ñ8Ô8Ð8ð	9ð 	9r   c                 óF   — | j         r | j         | j        i | j        ¤Ž dS dS )zQ
        Method to be run in sub-process; can be overridden in sub-class
        N)r4   r6   r8   r   s    r   ÚrunzBaseProcess.rung   s9   € ð Œ<ð 	6ØˆDŒL˜$œ*Ð5¨¬Ð5Ð5Ð5Ð5Ð5ð	6ð 	6r   c                 ó   — |                       ¦   «          | j        �
J d¦   «         ‚| j        t          j        ¦   «         k    s
J d¦   «         ‚t
          j                             d¦  «        r
J d¦   «         ‚t          ¦   «          |  	                    | ¦  «        | _        | j        j
        | _        | `| `| `t                               | ¦  «         dS )z%
        Start child process
        Nzcannot start a process twicez:can only start a process object created by current processr    z3daemonic processes are not allowed to have children)rG   r   r0   r.   r/   r	   r,   Úgetr   r   ÚsentinelÚ	_sentinelr4   r6   r8   r   r>   r   s    r   ÚstartzBaseProcess.startn   sÓ   € ð 	×ÒÑÔÐØŒ{Ð"Ð"Ð$BÑ"Ô"Ð"ØÔ¥2¤9¡;¤;Ò.Ð.Ð.ØKñ /Ô.Ð.å#Ô+×/Ò/°Ñ9Ô9ð 	Eð 	EØDñ	Eô 	EÐ9å‰
Œ
ˆ
Ø—k’k $Ñ'Ô'ˆŒØœÔ-ˆŒð ˆL˜$˜* d lÝ�Š�dÑÔÐÐÐr   c                 ó`   — |                       ¦   «          | j                             ¦   «          dS )zT
        Terminate process; sends SIGTERM signal or uses TerminateProcess()
        N)rG   r   Ú	terminater   s    r   rP   zBaseProcess.terminate€   s0   € ð 	×ÒÑÔÐØŒ×ÒÑÔÐÐÐr   c                 ó`   — |                       ¦   «          | j                             ¦   «          dS )zT
        Terminate process; sends SIGKILL signal or uses TerminateProcess()
        N)rG   r   Úkillr   s    r   rR   zBaseProcess.kill‡   s0   € ð 	×ÒÑÔÐØŒ×ÒÑÔÐÐÐr   c                 ó  — |                       ¦   «          | j        t          j        ¦   «         k    s
J d¦   «         ‚| j        €
J d¦   «         ‚| j                             |¦  «        }|�t                               | ¦  «         dS dS )z5
        Wait until child process terminates
        zcan only join a child processNzcan only join a started process)rG   r0   r.   r/   r   Úwaitr   r   )r   ÚtimeoutÚress      r   r;   zBaseProcess.joinŽ   s‹   € ð 	×ÒÑÔÐØÔ¥2¤9¡;¤;Ò.Ð.Ð.Ð0OÑ.Ô.Ð.ØŒ{Ð&Ð&Ð(IÑ&Ô&Ð&ØŒk×Ò˜wÑ'Ô'ˆØˆ?Ý×Ò˜dÑ#Ô#Ð#Ð#Ð#ð ˆ?r   c                 ó  — |                       ¦   «          | t          u rdS | j        t          j        ¦   «         k    s
J d¦   «         ‚| j        €dS | j                             ¦   «         }|€dS t                               | ¦  «         dS )z1
        Return whether process is alive
        Tzcan only test a child processNF)	rG   r	   r0   r.   r/   r   r   r   r   )r   Ú
returncodes     r   Úis_alivezBaseProcess.is_alive™   sŽ   € ð 	×ÒÑÔÐØÕ#Ð#Ð#Ø�4ØÔ¥2¤9¡;¤;Ò.Ð.Ð.Ð0OÑ.Ô.Ð.àŒ;ÐØ�5à”[×%Ò%Ñ'Ô'ˆ
ØÐØ�4å×Ò˜dÑ#Ô#Ð#Ø�5r   c                 óê   — | j         �d| j                              ¦   «         €t          d¦  «        ‚| j                              ¦   «          d| _         | `t
                               | ¦  «         d| _        dS )zÂ
        Close the Process object.

        This method releases resources held by the Process object.  It is
        an error to call this method if the child process is still running.
        Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)r   r   rF   ÚcloserM   r   r   r3   r   s    r   r[   zBaseProcess.close¬   sz   € ð Œ;Ð"ØŒ{×ÒÑ!Ô!Ð)Ý ð "Pñ Qô Qð QàŒK×ÒÑÔÐØˆDŒKØ�Ý×Ò˜dÑ#Ô#Ð#ØˆŒˆˆr   c                 ó   — | j         S r   )r<   r   s    r   r1   zBaseProcess.name½   s
   € àŒzÐr   c                 óR   — t          |t          ¦  «        s
J d¦   «         ‚|| _        d S )Nzname must be a string)Ú
isinstancer%   r<   )r   r1   s     r   r1   zBaseProcess.nameÁ   s,   € å˜$¥Ñ$Ô$Ð=Ð=Ð&=Ñ=Ô=Ð$ØˆŒ
ˆ
ˆ
r   c                 ó8   — | j                              dd¦  «        S )z4
        Return whether process is a daemon
        r    F)r,   rK   r   s    r   r    zBaseProcess.daemonÆ   s   € ð
 Œ|×Ò ¨%Ñ0Ô0Ð0r   c                 ó<   — | j         �
J d¦   «         ‚|| j        d<   dS )z1
        Set whether process is a daemon
        Nzprocess has already startedr    )r   r,   )r   Údaemonics     r   r    zBaseProcess.daemonÍ   s-   € ð
 Œ{Ð"Ð"Ð$AÑ"Ô"Ð"Ø!)ˆŒ�XÑÐÐr   c                 ó   — | j         d         S )NÚauthkey)r,   r   s    r   rc   zBaseProcess.authkeyÕ   s   € àŒ|˜IÔ&Ð&r   c                 ó4   — t          |¦  «        | j        d<   dS )z2
        Set authorization key of process
        rc   N)ÚAuthenticationStringr,   )r   rc   s     r   rc   zBaseProcess.authkeyÙ   s   € õ
 #7°wÑ"?Ô"?ˆŒ�YÑÐÐr   c                 óx   — |                       ¦   «          | j        €| j        S | j                             ¦   «         S )zM
        Return exit code of process or `None` if it has yet to stop
        )rG   r   r   r   s    r   ÚexitcodezBaseProcess.exitcodeà   s:   € ð
 	×ÒÑÔÐØŒ;ÐØ”;ÐØŒ{×ÒÑ!Ô!Ð!r   c                 óˆ   — |                       ¦   «          | t          u rt          j        ¦   «         S | j        o| j        j        S )zU
        Return identifier (PID) of process or `None` if it has yet to start
        )rG   r	   r.   r/   r   Úpidr   s    r   ÚidentzBaseProcess.identê   s?   € ð
 	×ÒÑÔÐØÕ#Ð#Ð#Ý”9‘;”;Ðà”;Ð2 4¤;¤?Ð2r   c                 óv   — |                       ¦   «          	 | j        S # t          $ r t          d¦  «        d‚w xY w)z{
        Return a file descriptor (Unix) or handle (Windows) suitable for
        waiting for process termination.
        zprocess not startedN)rG   rM   ÚAttributeErrorrF   r   s    r   rL   zBaseProcess.sentinel÷   sO   € ð 	×ÒÑÔÐð	>Ø”>Ð!øÝð 	>ð 	>ð 	>ÝÐ2Ñ3Ô3¸Ð=ð	>øøøs   – �8c                 óˆ  — d }| t           u rd}nS| j        rd}nI| j        t          j        ¦   «         k    rd}n*| j        €d}n | j                             ¦   «         }|�d}nd}t          | ¦  «        j        d| j	        z  g}| j        �"| 
                    d| j        j        z  ¦  «         | 
                    d| j        z  ¦  «         | 
                    |¦  «         |�3t                               ||¦  «        }| 
                    d	|z  ¦  «         | j        r| 
                    d
¦  «         dd                     |¦  «        z  S )NÚstartedÚclosedÚunknownÚinitialÚstoppedzname=%rzpid=%sz	parent=%szexitcode=%sr    z<%s>ú )r	   r3   r0   r.   r/   r   r   r9   r:   r<   Úappendri   Ú_exitcode_to_namerK   r    r;   )r   rg   ÚstatusÚinfos       r   Ú__repr__zBaseProcess.__repr__  sF  € ØˆØÕ#Ð#Ð#ØˆFˆFØŒ\ð 	#ØˆFˆFØÔ¥¤¡¤Ò,Ð,ØˆFˆFØŒ[Ð ØˆFˆFà”{×'Ò'Ñ)Ô)ˆHØÐ#Ø"��à"�å�T‘
”
Ô# Y°´Ñ%;Ð<ˆØŒ;Ð"Ø�KŠK˜ 4¤;¤?Ñ2Ñ3Ô3Ð3Ø�Š�K $Ô"2Ñ2Ñ3Ô3Ð3Ø�Š�FÑÔÐØÐÝ(×,Ò,¨X°xÑ@Ô@ˆHØ�KŠK˜¨Ñ0Ñ1Ô1Ð1ØŒ;ð 	"Ø�KŠK˜Ñ!Ô!Ð!Ø˜Ÿš ™œÑ&Ð&r   c                 óà  — ddl m}m} 	 | j        �|                     | j        ¦  «         t          j        d¦  «        at          ¦   «         a	| 
                    ¦   «          t          }| at          | j        | j        |¦  «        at           j        r%t!          j        ¦   «                              ¦   «          	 |                      ¦   «          ~n# ~w xY w|                     d¦  «         	 |                      ¦   «          d}|                     ¦   «          n# |                     ¦   «          w xY wn¼# t0          $ rl}|j        €d}nXt5          |j        t6          ¦  «        r|j        }n6t8          j                             t?          |j        ¦  «        dz   ¦  «         d}Y d }~nKd }~w d}dd l }t8          j                             d| j!        z  ¦  «         | "                    ¦   «          Y nxY wt!          j#        ¦   «          |                     d|z  ¦  «         | $                    ¦   «          nD# t!          j#        ¦   «          |                     d|z  ¦  «         | $                    ¦   «          w xY w|S )Né   )ÚutilÚcontextz child process calling self.run()r   ú
zProcess %s:
z process exiting with exitcode %d)%Ú r{   r|   Ú_start_methodÚ_force_start_methodÚ	itertoolsrC   r*   Úsetr   Ú_close_stdinr	   Ú_ParentProcessr2   r0   r   Ú	threadingÚ_HAVE_THREAD_NATIVE_IDÚmain_threadÚ_set_native_idÚ_after_forkrw   rI   Ú_exit_functionÚ
SystemExitÚcoder^   ÚintÚsysÚstderrÚwriter%   Ú	tracebackr1   Ú	print_excÚ	_shutdownÚ_flush_std_streams)r   Úparent_sentinelr{   r|   Úold_processrg   Úer‘   s           r   Ú
_bootstrapzBaseProcess._bootstrap"  s|  € Ø#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð(	&ØÔ!Ð-Ø×+Ò+¨DÔ,>Ñ?Ô?Ð?Ý(œ¨qÑ1Ô1ÐÝ™œˆIØ×ÒÑÔÐÝ*ˆKØ#ÐÝ,ØÔ! 4Ô#3°_ñFô FˆOåÔ/ð 9ÝÔ%Ñ'Ô'×6Ò6Ñ8Ô8Ð8ð Ø× Ò Ñ"Ô"Ð"ð  �Kø�K����Ø�IŠIÐ8Ñ9Ô9Ð9ð&Ø—’‘
”
�
Ø�à×#Ò#Ñ%Ô%Ð%Ð%ø�×#Ò#Ñ%Ô%Ð%Ð%øøøÐ%øÝð 	ð 	ð 	ØŒvˆ~Ø��Ý˜AœF¥CÑ(Ô(ð Øœ6��å”
× Ò ¥ Q¤V¡¤¨tÑ!3Ñ4Ô4Ð4Ø�øøøøøøøøøð	"ØˆHØÐÐÐÝŒJ×Ò˜_¨t¬yÑ8Ñ9Ô9Ð9Ø×ÒÑ!Ô!Ð!Ð!Ð!øøøåÔÑ!Ô!Ð!Ø�IŠIÐ8¸8ÑCÑDÔDÐDØ×#Ò#Ñ%Ô%Ð%Ð%øõ ÔÑ!Ô!Ð!Ø�IŠIÐ8¸8ÑCÑDÔDÐDØ×#Ò#Ñ%Ô%Ð%Ð%øøøàˆsc   ŠB,D. Â7C ÃD. ÃCÃD. Ã)D Ã?D. ÄD*Ä*D. Ä-H* Ä.
G'Ä8A"FÆH* ÆAG'Ç%H* È*AI+c                  ól   — ddl m}  | j                             ¦   «          |                      ¦   «          d S )Nrz   ©r{   )r~   r{   Ú_finalizer_registryÚclearÚ_run_after_forkersrš   s    r   r‰   zBaseProcess._after_forkR  sA   € àÐÐÐÐÐØÔ ×&Ò&Ñ(Ô(Ð(Ø×ÒÑ!Ô!Ð!Ð!Ð!r   r   )r:   Ú
__module__Ú__qualname__Ú__doc__r   rD   rG   rI   rN   rP   rR   r;   rY   r[   Úpropertyr1   Úsetterr    rc   rg   rj   ri   rL   rx   r˜   Ústaticmethodr‰   r
   r   r   r   r   G   s  € € € € € ðð ð
"ð "ð "ð "¨$°TÀÈ2ð Øðð ð ð ð ð&9ð 9ð 9ð6ð 6ð 6ðð ð ð$ ð  ð  ðð ð ð	$ð 	$ð 	$ð 	$ðð ð ð&ð ð ð" ðð ñ „Xðð 
„[ðð ñ „[ðð ð1ð 1ñ „Xð1ð „]ð*ð *ñ „]ð*ð ð'ð 'ñ „Xð'ð „^ð@ð @ñ „^ð@ð ð"ð "ñ „Xð"ð ð3ð 3ñ „Xð3ð €Càð	>ð 	>ñ „Xð	>ð'ð 'ð 'ð>.ð .ð .ð .ð` ð"ð "ñ „\ð"ð "ð "r   r   c                   ó   — e Zd Zd„ ZdS )re   c                 ón   — ddl m}  |¦   «         €t          d¦  «        ‚t          t	          | ¦  «        ffS )Nrz   )Úget_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)r|   r¦   Ú	TypeErrorre   Úbytes)r   r¦   s     r   Ú
__reduce__zAuthenticationString.__reduce__^  sO   € Ø/Ð/Ð/Ð/Ð/Ð/ØÐÑÔÐ'Ýð2ñô ð õ $¥e¨D¡k¤k ^Ð3Ð3r   N)r:   rž   rŸ   r©   r
   r   r   re   re   ]  s#   € € € € € ð4ð 4ð 4ð 4ð 4r   re   c                   ó<   — e Zd Zd„ Zd„ Zed„ ¦   «         Zdd„ZeZdS )r„   c                 óv   — d| _         || _        || _        d | _        d | _        d| _        || _        i | _        d S )Nr
   F)r+   r<   Ú_pidr0   r   r3   rM   r,   )r   r1   ri   rL   s       r   rD   z_ParentProcess.__init__n  s?   € ØˆŒØˆŒ
ØˆŒ	ØˆÔØˆŒØˆŒØ!ˆŒØˆŒˆˆr   c                 ó6   — ddl m}  || j        gd¬¦  «         S )Nr   ©rT   ©rU   ©Úmultiprocessing.connectionrT   rM   )r   rT   s     r   rY   z_ParentProcess.is_alivex  s1   € Ø3Ð3Ð3Ð3Ð3Ð3Ø�4˜œÐ(°!Ð4Ñ4Ô4Ð4Ð4r   c                 ó   — | j         S r   )r¬   r   s    r   rj   z_ParentProcess.ident|  s
   € àŒyÐr   Nc                 ó8   — ddl m}  || j        g|¬¦  «         dS )z6
        Wait until parent process terminates
        r   r®   r¯   Nr°   )r   rU   rT   s      r   r;   z_ParentProcess.join€  s6   € ð 	4Ð3Ð3Ð3Ð3Ð3ØˆˆdŒnÐ wÐ/Ñ/Ô/Ð/Ð/Ð/r   r   )	r:   rž   rŸ   rD   rY   r¡   rj   r;   ri   r
   r   r   r„   r„   l  sb   € € € € € ðð ð ð5ð 5ð 5ð ðð ñ „Xðð0ð 0ð 0ð 0ð €C€C€Cr   r„   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú_MainProcessc                 óž   — d| _         d| _        d | _        d | _        d| _        t          t          j        d¦  «        ¦  «        ddœ| _        d S )Nr
   ÚMainProcessFé    z/mp)rc   Ú	semprefix)	r+   r<   r0   r   r3   re   r.   Úurandomr,   r   s    r   rD   z_MainProcess.__init__�  sN   € ØˆŒØ"ˆŒ
ØˆÔØˆŒØˆŒÝ#7½¼
À2¹¼Ñ#GÔ#GØ%*ð,ð ,ˆŒˆˆr   c                 ó   — d S r   r
   r   s    r   r[   z_MainProcess.close¡  s   € Øˆr   N)r:   rž   rŸ   rD   r[   r
   r   r   rµ   rµ   �  s2   € € € € € ð,ð ,ð ,ð$ð ð ð ð r   rµ   rz   é   ÚSIGÚ_r"   )$Ú__all__r.   rŽ   Úsignalr�   r…   Ú_weakrefsetr   ÚpathÚabspathÚgetcwdÚORIGINAL_DIRÚOSErrorr   r   r   r   Úobjectr   r¨   re   r„   rµ   r   r	   rC   r*   r‚   r   ru   r   Ú__dict__Úitemsr1   Úsignumr=   r
   r   r   ú<module>rË      s:  ððð ð €ð 
€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð ðØ”7—?’? 9 2¤9¡;¤;Ñ/Ô/€L€LøØð ð ð Ø€L€L€Lðøøøðð ð ðð ð ðð ð ð!ð !ð !ðO"ð O"ð O"ð O"ð O"�&ñ O"ô O"ð O"ðl4ð 4ð 4ð 4ð 4˜5ñ 4ô 4ð 4ðð ð ð ð �[ñ ô ð ðBð ð ð ð �;ñ ô ð ð0 €Ø�<‘>”>Ð Ø"�9”? 1Ñ%Ô%Ð ØˆC‰EŒE€	Øð Ð à�D˜œ×.Ò.Ñ0Ô0Ñ1Ô1ð 0ð 0�L€Dˆ&ØˆBˆQˆB„x�‚€˜3 d˜?˜?Ø%/¨ Z ZÐ˜6˜'Ñ"øØˆ&ð ˆG‰IŒI€	€	€	s    'A ÁAÁA