
    Sf-                        d dl Z d dl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m	Z	 ddlm
Z
 ddlmZ g dZdZej        dk    rd	Zd	ZnDej        dk    o eed
d	          Zej                                                            d          Zer!ej                            ej        d          anej        ad Zd Zd Zd Zd Zd Zd Zd Z d Z!ddZ"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util)_mainfreeze_supportset_executableget_executableget_preparation_dataget_command_lineimport_main_pathzWill add directory %r to path! This is necessary to accommodate pre-Django 1.4 layouts using setup_environ.
You can skip this warning by adding a DJANGO_SETTINGS_MODULE=settings environment variable.
win32Ffrozenzpythonservice.exez
python.exec                     t           j                            t          |                     \  }}|t           j        k    s|st          j                    }|S N)ospathsplit_module_dircurdirgetcwd)moddirfilenames      @/var/www/html/env/lib/python3.11/site-packages/billiard/spawn.py_module_parent_dirr   3   sC    GMM+c"2"233MC
bisikkJ    c                 j    d| j         v r$t          j                            | j                   S | j         S )Nz__init__.py)__file__r   r   dirname)r   s    r   r   r   :   s-    $$ws|,,,<r   c                  d   dt           j        vr 	 t           j        d         } n# t          $ r Y d S w xY wt          j                            d          }|o|j        }	 |                     dd          \  }}n# t          $ r Y d S w xY wt          |          }	 t           j
                            t          |                    }n# t          $ r Y d S w xY w|rFt          j        t!          t"          t           j
                            |          z                       |t           j        d<   d S d S )NDJANGO_PROJECT_DIRDJANGO_SETTINGS_MODULEzdjango.conf.settings.r   )r   environKeyErrorsysmodulesget
configuredr   
ValueError
__import__r   normpathr   AttributeErrorwarningswarnUserWarningW_OLD_DJANGO_LAYOUTrealpath)settings_nameconf_settingsr,   project_name_projectproject_dirs          r   _Django_old_layout_hack__saver<   @   s]   2:--	J'?@MM 	 	 	FF	 (>??"?}'?
	+11#q99OL!! 	 	 	FF	 \**	'**+=g+F+FGGKK 	 	 	FF	 	M+#bg&6&6{&C&CC     ,7
'(((- .-s0   $ 
22A8 8
BB,C 
CCc                      	 t           j                            t          j        d                    d S # t
          $ r Y d S w xY w)Nr$   )r)   r   appendr   r'   r(    r   r   _Django_old_layout_hack__loadr@   Z   sK    
#7899999   s   /3 
A Ac                 
    | a d S r   _python_exe)exes    r   r   r   a   s    KKKr   c                      t           S r   rB   r?   r   r   r   r   f   s    r   c                 H    t          |           dk    r| d         dk    rdS dS )z=
    Return whether commandline indicates we are forking
       r   --billiard-forkTF)len)argvs    r   
is_forkingrK   n   s,     4yyA~~$q'%666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
    rG   N=Noner?   )rK   r)   rJ   r   int
spawn_mainexit)kwdsargnamevalues       r   r
   r
   x   s     #( 	8ABB< 	( 	(C))C..KD%!T

 ZZT

T




	 	r   c                  <   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   FrH   c                     g | ]}d |z  S )%s=%rr?   .0items     r   
<listcomp>z$get_command_line.<locals>.<listcomp>   s    999D4999r   z5from billiard.spawn import spawn_main; spawn_main(%s)z, c              3       K   | ]	}d |z  V  
dS )rX   Nr?   rY   s     r   	<genexpr>z#get_command_line.<locals>.<genexpr>   s&      BBT'D.BBBBBBr   z-c)getattrr)   
executableitemsjoinr   _args_from_interpreter_flagsrC   )rR   progoptss      r   r   r      s     sHe$$ F!2399DJJLL999: 	; G		BBTZZ\\BBBBBB022}t#tT3D&EEEr   c                 8   t          t          j                  sJ t          j        dk    r7ddl}ddlm}  |||           }|                    |t          j	                  }nddl
m} ||j        _        | }t          |          }t          j        |           dS )z7
    Run code specified by data received over pipe
    r   r   Nr   )steal_handle)semaphore_tracker)rK   r)   rJ   platformmsvcrt	reductionrg   open_osfhandler   O_RDONLY rh   _semaphore_tracker_fdr	   rQ   )	pipe_handle
parent_pid
tracker_fdrj   rg   
new_handlefdrh   exitcodes	            r   rP   rP      s     ch
|w++++++!\*k::
"":r{;;''''''3=,0RyyHHXr   c                     	 t           j        d         j        t          j        d<   n# t
          $ r Y nt          $ r Y nw xY wt          j                            d          } t          j                            d          pd }t          j                            d          }| rddlm	} dd l
} |j                    }|                    t          |                      |j        sd	|_        |pt           j        }t#          |d
          r|                    |          }n|                    |          }|                    |p|j                  }|                    |           |                    |           d S d S d S )N__main__MP_MAIN_FILE_MP_FORK_LOGLEVEL__MP_FORK_LOGFILE__MP_FORK_LOGFORMAT_r   r   r   Twrite)r)   r*   r!   r   r'   r(   r0   r+   rn   r   logging
get_loggersetLevelrO   handlers_rudimentary_setup
__stderr__hasattrStreamHandlerFileHandler	FormatterDEFAULT_LOGGING_FORMATsetFormatter
addHandler)loglevellogfileformatr   r~   loggerhandler	formatters           r   _setup_logging_in_child_hackr      s   %([%<%E
>""      z~~233Hjnn0119TGZ^^122F ' ""H&&& 	'(,F%/Gw(( 7!//88!--g66))5$5 I   +++g&&&&&!' '
	' 	's   $' 
?	??c                    t                       t          j        | dd          5 }dt          j                    _        	 t          j        |          }t          |           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@   ioopenr   current_process_inheritingpickleloadpreparer   
_bootstrap)ru   from_parentpreparation_dataselfs       r   r	   r	      s	   !###	T4	(	(	( 6K04!!-	6%{;77$%%%(***;{++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*   B> ABB>B..B>>CCc                  h    t          t          j                    dd          rt          d          d S )Nr   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.)r_   r   r   RuntimeErrorr?   r   r   _check_not_importing_mainr      sF    w&((-?? @ ? @ @ 	@@ @r   c           	         t                       t          t          j        t	          j                    j                  }t          j        !t          j                                        |d<   t          j
        dd         }	 |                    d          }t          j        ||<   n# t          $ r Y nw xY w|                    | |t          j        t          j        t!          j                    t%                                 t          j        d         }	 |j        j        }n# t,          $ r
 |j        }Y nw xY w|||d<   nt          j        dk    st2          st4          st7          |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_levelrn   )rT   sys_pathsys_argvorig_dirr   start_methodrx   init_main_from_namer   r!   init_main_from_path)r   dictr   _log_to_stderrr   r   r   _loggergetEffectiveLevelr)   r   indexORIGINAL_DIRr-   updaterJ   r   r   r   r*   __spec__rT   r0   __name__ri   WINEXE
WINSERVICEr_   isabsrb   r/   )rT   dr   imain_modulemain_mod_name	main_paths          r   r   r      s    )'))1	 	 	A
 |7799+x{H+NN2 *    
 HH%IKK%''     +j)K-#,1 - - -#,- #0
  		 	 	 
	 KT::	 GMM),, J(4GLL)=yII	')w'7'7	'B'BA#$Hs$   B' '
B43B4D# #D76D7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
| 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
    rT   r   r   r   r   r   r   r   r   r   r   N)r   r   rT   r   r   r   r   r   r)   r   rJ   r   chdirr   r   _fixup_main_from_name_fixup_main_from_path)datas    r   r   r     se    ~~)-f!!&D,0O!!)$4#8d""4#4555T
#T
#}}
eT#J/n-...$$d#89:::::	$	&	&d#89::::: 
'	&r   c                    t           j        d         }| dk    s|                     d          rd S 	 |j        j        }n# t
          $ r
 |j        }Y nw xY w|| k    rd S t                              |           t          j
        d          }t          j        | dd          }|j                            |           |xt           j        d<   t           j        d<   d S )Nrx   z	.__main____mp_main__T)run_name	alter_sys)r)   r*   endswithr   rT   r0   r   old_main_modulesr>   types
ModuleTyperunpy
run_module__dict__r   )mod_namecurrent_maincurrent_main_namer   main_contents        r   r   r   G  s    
 ;z*L:!2!2;!?!?2(16 2 2 2(12 H$$
 L)))"=11K#H-:.24 4 4L ---;FFCK
ck-888s   > AA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 )Nrx   r   ipythonr!   r   )r   )r)   r*   r   r   splitextbasenamer_   r   r>   r   r   r   run_pathr   r   )r   r   	main_namer   r   s        r   r   r   e  s    ;z*L   !1!1)!<!<==a@II |Z..);;
 L)))"=11K>)+8: : :L---;FFCK
ck-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)   r   r   r1   rn   r   r   r   r   __all__r4   ri   r   r   r_   r`   lowerr   r   rb   exec_prefixrC   r   r   r<   r@   r   r   rK   r
   r   rP   r   r	   r   r   r   r   r   r   r   r?   r   r   <module>r      sU   
			 				  



    0 0 0 0 0 0 0 0            K K K  <7FJJlg%G''#x*G*GF%%''001DEEJ !',,s==KK.K    7 7 74    
       F F F   $' ' '<  @ @ @$/ / /l  "; "; ";PG G G<G G G8% % % % %r   