§
    (¶ÕiÍ$  ã                   óÀ  — d dl Z d dlZd dlZd dlZddlmZmZ ddlmZ ddlm	Z	 ddlm
Z
 g d¢Zej        dk    rd	Zd	Zn9 eed
d	¦  «        Zej                             ¦   «                              d¦  «        Zd„ Zd„ Zer* ee j                             ej        d¦  «        ¦  «         n eej        ¦  «         d„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zg Zd„ Z d„ Z!d„ Z"d„ Z#dS )é    Né   )Úget_start_methodÚset_start_method)Úprocess)Ú	reduction)Úutil)Ú_mainÚfreeze_supportÚset_executableÚget_executableÚget_preparation_dataÚget_command_lineÚimport_main_pathÚwin32FÚfrozenzpythonservice.exec                 óz   — t           j        dk    rt          j        | ¦  «        ad S t          j        | ¦  «        ad S )Nr   )ÚsysÚplatformÚosÚfsdecodeÚ_python_exeÚfsencode)Úexes    ú,/usr/lib/python3.11/multiprocessing/spawn.pyr   r   $   s5   € å
„|�wÒÐÝ”k #Ñ&Ô&ˆˆˆå”k #Ñ&Ô&ˆˆˆó    c                  ó   — t           S )N)r   © r   r   r   r   +   s   € ÝÐr   z
python.exec                 óH   — t          | ¦  «        dk    r| d         dk    rdS dS )z=
    Return whether commandline indicates we are forking
    é   r   ú--multiprocessing-forkTF)Úlen)Úargvs    r   Ú
is_forkingr#   7   s,   € õ ˆ4�y„y�A‚~€~˜$˜qœ'Ð%=Ò=Ð=Øˆtàˆur   c                  ó  — t          t          j        ¦  «        rpi } t          j        dd…         D ]8}|                     d¦  «        \  }}|dk    rd| |<   Œ&t	          |¦  «        | |<   Œ9t          di | ¤Ž t          j        ¦   «          dS dS )zE
    Run code for process object if this in not the main process
    r   Nú=ÚNoner   )r#   r   r"   ÚsplitÚintÚ
spawn_mainÚexit)ÚkwdsÚargÚnameÚvalues       r   r
   r
   A   s™   € õ •#”(ÑÔð 	ØˆÝ”8˜A˜B˜B”<ð 	(ð 	(ˆCØŸ)š) C™.œ.‰KˆD�%Ø˜ŠˆØ!��T‘
�
å  ™ZœZ��T‘
�
ÝÐÐ�TÐÐÐÝŒ‰
Œ
ˆ
ˆ
ˆ
ð	ð 	r   c                  óN  — t          t          dd¦  «        r-t          j        dgd„ |                      ¦   «         D ¦   «         z   S d}|d                     d„ |                      ¦   «         D ¦   «         ¦  «        z  }t          j        ¦   «         }t          ¦   «         }|g|z   d|dgz   S )	zJ
    Returns prefix of command line used for spawning a child process
    r   Fr    c                 ó   — g | ]}d |z  ‘ŒS )ú%s=%rr   ©Ú.0Úitems     r   ú
<listcomp>z$get_command_line.<locals>.<listcomp>W   s   € Ð9Ð9Ð9 D�˜4‘Ð9Ð9Ð9r   z<from multiprocessing.spawn import spawn_main; spawn_main(%s)z, c              3   ó    K  — | ]	}d |z  V — Œ
dS )r1   Nr   r2   s     r   ú	<genexpr>z#get_command_line.<locals>.<genexpr>Z   s&   è è € ÐBÐB¨T˜' D™.ÐBÐBÐBÐBÐBÐBr   z-c)Úgetattrr   Ú
executableÚitemsÚjoinr   Ú_args_from_interpreter_flagsr   )r+   ÚprogÚoptsr   s       r   r   r   Q   s®   € õ �s�H˜eÑ$Ô$ð EÝ”Ð!9Ð:Ø9Ð9¨D¯JªJ©L¬LÐ9Ñ9Ô9ñ:ð 	;ð NˆØ�—	’	ÐBÐB°T·Z²Z±\´\ÐBÑBÔBÑBÔBÑBˆÝÔ0Ñ2Ô2ˆÝÑÔˆØˆu�t‰|˜t TÐ+CÐDÑDÐDr   c                 óØ  — t          t          j        ¦  «        s
J d¦   «         ‚t          j        dk    rjddl}ddl}|�%|                     |j        |j        z  d|¦  «        }nd}t          j
        | |¬¦  «        }|                     |t          j        ¦  «        }|}n(ddlm}	 ||	j        _        | }t          j        | ¦  «        }t'          ||¦  «        }
t          j        |
¦  «         dS )	z7
    Run code specified by data received over pipe
    zNot forkingr   r   NF)Úsource_processr   )Úresource_tracker)r#   r   r"   r   ÚmsvcrtÚ_winapiÚOpenProcessÚSYNCHRONIZEÚPROCESS_DUP_HANDLEr   Ú	duplicateÚopen_osfhandler   ÚO_RDONLYÚ rA   Ú_resource_trackerÚ_fdÚdupr	   r*   )Úpipe_handleÚ
parent_pidÚ
tracker_fdrB   rC   r@   Ú
new_handleÚfdÚparent_sentinelrA   Úexitcodes              r   r)   r)   `   s  € õ •c”hÑÔÐ.Ð. Ñ.Ô.Ð.Ý
„|�wÒÐØˆˆˆØˆˆˆàÐ!Ø$×0Ò0ØÔ# gÔ&@Ñ@Ø�zñ#ô #ˆNˆNð "ˆNÝÔ(¨Ø8FðHñ Hô Hˆ
à×"Ò" :­r¬{Ñ;Ô;ˆØ(ˆˆà&Ð&Ð&Ð&Ð&Ð&Ø1;ÐÔ*Ô.ØˆÝœ& Ñ-Ô-ˆÝ�R˜Ñ)Ô)€HÝ„HˆXÑÔÐÐÐr   c                 ó°  — t          j        | dd¬¦  «        5 }dt          j        ¦   «         _        	 t
          j                             |¦  «        }t          |¦  «         t
          j                             |¦  «        }t          j        ¦   «         `n# t          j        ¦   «         `w xY w	 d d d ¦  «         n# 1 swxY w Y   | 	                    |¦  «        S )NÚrbT)Úclosefd)
r   Úfdopenr   Úcurrent_processÚ_inheritingr   ÚpickleÚloadÚprepareÚ
_bootstrap)rR   rS   Úfrom_parentÚpreparation_dataÚselfs        r   r	   r	   |   s  € Ý	Œ�2�t TÐ	*Ñ	*Ô	*ð 6¨kØ04�ÔÑ!Ô!Ô-ð	6Ý(Ô/×4Ò4°[ÑAÔAÐÝÐ$Ñ%Ô%Ð%ÝÔ#×(Ò(¨Ñ5Ô5ˆDåÔ'Ñ)Ô)Ð5Ð5ø•Ô'Ñ)Ô)Ð5Ð5Ð5Ð5Ð5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð �?Š?˜?Ñ+Ô+Ð+s)   ˜B8²ABÁ?B8ÂB(Â(B8Â8B<Â?B<c                  óh   — t          t          j        ¦   «         dd¦  «        rt          d¦  «        ‚d S )NrZ   Fa  
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.)r8   r   rY   ÚRuntimeErrorr   r   r   Ú_check_not_importing_mainrd   ˆ   sF   € Ý�wÔ&Ñ(Ô(¨-¸Ñ?Ô?ð @Ýð ?ñ @ô @ð 	@ð@ð @r   c           	      óÎ  — t          ¦   «          t          t          j        t	          j        ¦   «         j        ¬¦  «        }t          j        �!t          j                             ¦   «         |d<   t          j
                             ¦   «         }	 |                     d¦  «        }t          j        ||<   n# t          $ r Y nw xY w|                     | |t          j        t          j        t#          j        ¦   «         t'          ¦   «         ¬¦  «         t          j        d         }t+          |j        dd¦  «        }|�||d<   n¨t          j        d	k    st0          s‘t2          sŠt+          |d
d¦  «        }|�wt"          j
                             |¦  «        s6t          j        �*t"          j
                             t          j        |¦  «        }t"          j
                             |¦  «        |d<   |S )zM
    Return info about parent needed by child to unpickle process object
    )Úlog_to_stderrÚauthkeyNÚ	log_levelrJ   )r-   Úsys_pathÚsys_argvÚorig_dirÚdirÚstart_methodÚ__main__r-   Úinit_main_from_namer   Ú__file__Úinit_main_from_path)rd   Údictr   Ú_log_to_stderrr   rY   rg   Ú_loggerÚgetEffectiveLevelr   ÚpathÚcopyÚindexÚORIGINAL_DIRÚ
ValueErrorÚupdater"   r   Úgetcwdr   Úmodulesr8   Ú__spec__r   ÚWINEXEÚ
WINSERVICEÚisabsr;   Únormpath)r-   Údri   ÚiÚmain_moduleÚmain_mod_nameÚ	main_paths          r   r   r   š   s­  € õ ÑÔÐÝÝÔ)ÝÔ'Ñ)Ô)Ô1ð	
ñ 	
ô 	
€Aõ
 „|ÐÝœ×7Ò7Ñ9Ô9ˆˆ+‰åŒX�]Š]‰_Œ_€Hð+Ø�NŠN˜2ÑÔˆõ Ô*ˆ�‰ˆøõ ð ð ð Øˆðøøøð
 ‡H‚HØØÝ”ÝÔ%ÝŒI‰KŒKÝ%Ñ'Ô'ð ñ 
ô 
ð 
õ ”+˜jÔ)€KÝ˜KÔ0°&¸$Ñ?Ô?€MØÐ Ø#0ˆÐ
Ñ Ð Ý	Œ˜Ò	 Ð	 ­Ð	 ½
Ð	 Ý˜K¨°TÑ:Ô:ˆ	ØÐ Ý”G—M’M )Ñ,Ô,ð JÝÔ,Ð8ÝœGŸLšL­Ô)=¸yÑIÔI�	Ý')¤w×'7Ò'7¸	Ñ'BÔ'BˆAÐ#Ñ$à€Hs   ÂB1 Â1
B>Â=B>c                 óŽ  — d| v r| d         t          j        ¦   «         _        d| v r| d         t          j        ¦   «         _        d| v r| d         rt	          j        ¦   «          d| v r,t	          j        ¦   «                              | d         ¦  «         d| v r| d         t          _	        d| v r| d         t          _
        d| v rt          j        | d         ¦  «         d| v r| d         t           _        d	| v rt          | d	         d
¬¦  «         d| v rt          | d         ¦  «         dS d| v rt!          | d         ¦  «         dS dS )zE
    Try to get current process ready to unpickle process object
    r-   rg   rf   rh   ri   rj   rl   rk   rm   T)Úforcero   rq   N)r   rY   r-   rg   r   rf   Ú
get_loggerÚsetLevelr   rv   r"   r   Úchdirry   r   Ú_fixup_main_from_nameÚ_fixup_main_from_path)Údatas    r   r]   r]   Î   sj  € ð �€~€~Ø)-¨f¬�ÔÑ!Ô!Ô&à�DÐÐØ,0°¬O�ÔÑ!Ô!Ô)à˜$ÐÐ 4¨Ô#8ÐÝÔÑÔÐà�dÐÐÝŒÑÔ×"Ò" 4¨Ô#4Ñ5Ô5Ð5à�TÐÐØ˜
Ô#�Œà�TÐÐØ˜
Ô#�Œà�€}€}Ý
Œ��e”ÑÔÐà�TÐÐØ# JÔ/�Ôà˜ÐÐÝ˜˜nÔ-°TÐ:Ñ:Ô:Ð:à Ð$Ð$Ý˜dÐ#8Ô9Ñ:Ô:Ð:Ð:Ð:Ø	 $Ð	&Ð	&Ý˜dÐ#8Ô9Ñ:Ô:Ð:Ð:Ð:ð 
'Ð	&r   c                 ó–  — t           j        d         }| dk    s|                      d¦  «        rd S t          |j        dd ¦  «        | k    rd S t
                               |¦  «         t          j        d¦  «        }t          j
        | dd¬¦  «        }|j                             |¦  «         |xt           j        d<   t           j        d<   d S )Nrn   z	.__main__r-   Ú__mp_main__T)Úrun_nameÚ	alter_sys)r   r}   Úendswithr8   r~   Úold_main_modulesÚappendÚtypesÚ
ModuleTypeÚrunpyÚ
run_moduleÚ__dict__r{   )Úmod_nameÚcurrent_mainr…   Úmain_contents       r   r�   r�   ô   sÐ   € õ
 ”;˜zÔ*€LØ�:ÒÐ ×!2Ò!2°;Ñ!?Ô!?ÐØˆõ ˆ|Ô$ f¨dÑ3Ô3°xÒ?Ð?Øˆõ
 ×Ò˜LÑ)Ô)Ð)ÝÔ" =Ñ1Ô1€KÝÔ# HØ-:Ø.2ð4ñ 4ô 4€Lð Ô×Ò Ñ-Ô-Ð-Ø;FÐF…C„K�
Ñ�cœk¨-Ñ8Ð8Ð8r   c                 óä  — t           j        d         }t          j                             t          j                             | ¦  «        ¦  «        d         }|dk    rd S t          |dd ¦  «        | k    rd S t                               |¦  «         t          j
        d¦  «        }t          j        | d¬¦  «        }|j                             |¦  «         |xt           j        d<   t           j        d<   d S )Nrn   r   Úipythonrp   r‘   )r’   )r   r}   r   rv   ÚsplitextÚbasenamer8   r•   r–   r—   r˜   r™   Úrun_pathr›   r{   )r‡   r�   Ú	main_namer…   rž   s        r   rŽ   rŽ     sÞ   € å”;˜zÔ*€Lõ ”× Ò ¥¤×!1Ò!1°)Ñ!<Ô!<Ñ=Ô=¸aÔ@€IØ�IÒÐØˆõ ˆ|˜Z¨Ñ.Ô.°)Ò;Ð;Øˆõ
 ×Ò˜LÑ)Ô)Ð)ÝÔ" =Ñ1Ô1€KÝ”> )Ø+8ð:ñ :ô :€LàÔ×Ò Ñ-Ô-Ð-Ø;FÐF…C„K�
Ñ�cœk¨-Ñ8Ð8Ð8r   c                 ó$   — t          | ¦  «         dS )z<
    Set sys.modules['__main__'] to module at main_path
    N)rŽ   )r‡   s    r   r   r   )  s   € õ ˜)Ñ$Ô$Ð$Ð$Ð$r   )NN)$r   r   r™   r—   rJ   r   r   r   Úcontextr   r   Ú__all__r   r   r€   r8   r9   Úlowerr”   r   r   rv   r;   Úexec_prefixr#   r
   r   r)   r	   rd   r   r•   r]   r�   rŽ   r   r   r   r   ú<module>rª      s  ðð 
€	€	€	Ø 
€
€
€
Ø €€€Ø €€€à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðKð Kð K€ð „<�7ÒÐØ€FØ€J€JàˆW�S˜( EÑ*Ô*€FØ”×%Ò%Ñ'Ô'×0Ò0Ð1DÑEÔE€Jð'ð 'ð 'ðð ð ð ð #Ø€N�2”7—<’< ¤°Ñ>Ô>Ñ?Ô?Ð?Ð?à€N�3”>Ñ"Ô"Ð"ðð ð ðð ð ð Eð Eð Eðð ð ð ð8	,ð 	,ð 	,ð@ð @ð @ð$,ð ,ð ,ðd Ð ð";ð ";ð ";ðLGð Gð Gð2Gð Gð Gð8%ð %ð %ð %ð %r   