
    2BhJ                     8   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKr S SKJr  S SKJr  S SKJr  S SKr\" \
SS5      r \!" SRE                  5       5      r# S SK$J$r$  S r%S
 r&  S/S jr'\RP                  RR                  \RP                  RT                  4r+S r,S r-S0S jr.S r/\R`                  Rc                  S5      (       a	  S0S jr2S r3O\
Rh                  r3S r4S r5S1S jr6S r7S r8S r9 S SK
J:r:  S r;S0S jr<S0S jr=S r>S r?S  r@S! rAS2S" jrBS# rCS0S$ jrDS% rES& rFS3S' jrGS( rHS) rIS* rJS+ rKS2S, jrLS- rMS. rNg! \\4 a    S SKr GN&f = f! \ a    S	 r% Nf = f! \ a    S r: Nvf = f)4    N)AppImportError)SUPPORTED_WORKERSdevnullz	/dev/nullz
    connection keep-alive proxy-authenticate proxy-authorization
    te trailers transfer-encoding upgrade
    server date
    setproctitlec                      [        SU -  5        g )Nzgunicorn: %sr   titles    ?/var/www/html/env/lib/python3.13/site-packages/gunicorn/util.py_setproctitler   4   s    ^e+,    c                     g N r	   s    r   r   r   7   s    r   c                    [         R                  " U 5      nUR                   Vs/ s H)  nUR                  U:X  d  M  UR                  U:X  d  M'  UPM+     nnU(       d  [        SX4< S35      eUS   R                  5       $ s  snf )NzEntry point z
 not foundr   )importlib_metadatadistributionentry_pointsgroupnameImportErrorload)r   r   r   dist_objepepss         r   load_entry_pointr   ;   sy    !..|<H -- 5-"hh% $&GGtO -C 5GHHq6;;=	5s   BBBc                    [         R                  " U 5      (       a  U $ U R                  S5      (       a6  U R                  S5      S   n UR	                  SS5      u  pE [        XBU5      $ U R                  S5      n[        U5      S:X  aL   U R                  S5      (       a  U SS  n U [        ;   a  [        U    R                  S5      nO [        SX 5      $ UR                  S5      n	 [        R                  " SR!                  U5      5      n
[#        X5      $ ! [
         a    UnUn Nf = f! [         a'    [        R                  " 5       nSn[        XpU4-  5      ef = f! [         a'    [        R                  " 5       nSn[        XpU4-  5      ef = f! [         a'    [        R                  " 5       nSn[        XpU4-  5      ef = f)Nzegg:   #z)class uri %r invalid or not found: 

[%s].gunicorn)inspectisclass
startswithsplitrsplit
ValueErrorr   	Exception	traceback
format_excRuntimeErrorlenr   pop	importlibimport_modulejoingetattr)uridefaultsection	entry_strdistr   excmsg
componentsklassmods              r   
load_classr=   D   s   s

~~fIIf%a(		"))#q1JD
	1#D488 YYs^
z?a>>#&&ab'C++!23!7!=!=c!BJ9+"G  r"	1))#((:*>?C
 s""M  	DD	  	1&&(C?Cs3Z/00	1& ! 9#..0CGC&s3Z'7889  	1&&(C?Cs3Z/00	1s6   	D D, 
E  (%F D)(D),1E 1F1Gc                     [         R                  " U 5      nSnUR                  R                  5        H  nUR                  [
        ;   d  M  US-  nM      U$ )Nr   r   )r#   	signature
parametersvalueskindpositionals)fsigarityparams       r   	get_arityrH   |   sJ    


A
CE&&(::$QJE ) Lr   c                 B    [         R                  " U 5      R                  $ )zget the username for a user id)pwdgetpwuidpw_name)uids    r   get_usernamerN      s    <<$$$r   c                    U(       ao  U (       a   [        U 5      n[        U5      S-  nU(       a  [        R                  " WU5        O/U[        R
                  " 5       :w  a  [        R                  " U5        U (       a1  U [        R                  " 5       :w  a  [        R                  " U 5        ggg! [         a    Sn Nf = f)z(set user and group of workers processes FiN)	rN   KeyErrorabsos
initgroupsgetgidsetgidgetuidsetuid)rM   gidrS   usernames       r   set_owner_processrZ      s     #', #h#MM(C(BIIKIIcN
sbiik!
		# "s  #"
#s   B0 0B?>B?c                 2    [         R                  " XU5        g r   )rR   chown)pathrM   rX   s      r   r\   r\      s    HHTr   winc                 j   U " U5        U(       a  UnO,[         R                  R                  U5      u  p4U=(       d    SnSnUS:  aP  [         R                  " U5      nU(       a	  U(       d	   g WU;   a  g [        R
                  " U5        US-  nUS:  a  MP  [        R                  " SU-   [        SS9  g )Nr    gMbP?g      ?   z)tests may fail, delete still pending for    )
stacklevel)	rR   r]   r&   listdirtimesleepwarningswarnRuntimeWarning)funcpathnamewaitalldirnamer   timeoutLs          r   _waitforro      s    XGGGMM(3MGnG m 

7#A1 &*QYJJwqLG m 	AHL$	4r   c                 8    [        [        R                  U 5        g r   )ro   rR   unlink)filenames    r   _unlinkrs      s    H%r   c                      [        U 5        g ! [         a9  nUR                  [        R                  [        R                  4;  a  e  S nAg S nAff = fr   )rs   OSErrorerrnoENOENTENOTDIR)rr   errors     r   rq   rq      s@     ;;u||U]];; <s    
A/AAc                      [         R                  " [         R                  U 5        g! [         a     g[         a     gf = f)NFT)socket	inet_ptonAF_INET6ru   r(   )addrs    r   is_ipv6r      s?    $/
 	   s   %( 
A 	A A c                    [         R                  " SU 5      (       a  [         R                  " SU 5      S   $ U R                  S5      (       a  U SS  n [	        U5      $ U R                  S5      (       a  U R                  S5      S   n XpCSU ;   a6  S	U ;   a0  U R                  S	5      S
   SS  nU R                  S5      U/-   S   nO*SU ;   a  U R                  S5      U/-   S S u  p4O	U S:X  a  SUpC [	        U5      nUR                  5       U4$ ! [
         a    [        SU-  5      S ef = f! [
         a    [        SU-  5      ef = f)Nz
unix:(//)?r"   zfd://   z"%r is not a valid file descriptor.ztcp://r   []r   z]::r`    z0.0.0.0z%r is not a valid port number.)rematchr&   r%   intr(   r,   lower)netlocdefault_portfdhostports        r   parse_addressr      s`   	xxv&&xxv.r22!!ABZ	Tr7N ""h'*$
f}||C #AB'T"l^3Q7	ll3'<.8"1=
d	2dD4y ::<)  	TCbHItS	T"  D;dBCCDs   
D 1D+ D(+Ec                     [         R                   " U [         R                  5      nU[         R                  -  n[         R                   " U [         R                  U5        g r   )fcntlF_GETFD
FD_CLOEXECF_SETFDr   flagss     r   close_on_execr     s:    KKEMM*E	UE	KKEMM5)r   c                     [         R                   " U [         R                  5      [        R                  -  n[         R                   " U [         R                  U5        g r   )r   F_GETFLrR   
O_NONBLOCKF_SETFLr   s     r   set_non_blockingr     s3    KKEMM*R]]:E	KKEMM5)r   c                 F     U R                  5         g ! [         a     g f = fr   )closeru   )socks    r   r   r     s"    

 s    
  )
closerangec                 x    [        X5       H  n [        R                  " U5        M     g ! [         a     M,  f = fr   )rangerR   r   ru   )fd_lowfd_highr   s      r   r   r     s5    (B )  s   +
99c                     [        U[        5      (       a  UR                  S5      nS[        U5      -  nSR	                  UR                  S5      US/5      nU R                  U5        g )Nzutf-8z%X
r   s   
)
isinstancestrencoder-   r1   sendall)r   data
chunk_sizechunks       r   write_chunkr     sW    ${{7#CI%JHHj''0$@AELLr   c                 J    U(       a  [        X5      $ U R                  U5        g r   )r   r   )r   r   chunkeds      r   writer   '  s    4&&LLr   c                     U R                  5       nUS:w  a/   U R                  S5        [        XU5      U R                  S5        $ [        XU5      $ ! U R                  S5        f = f)Ng        r   r   )
gettimeoutsetblockingr   )r   r   r   rm   s       r   write_nonblockr   -  s_    ooG#~	 QW-QT)) Qs   A A%c                     [         R                  " S5      U[        R                  " U5      S.-  n[         R                  " S5      [	        U5      U[        U5      U4-  n[        XR                  S5      5        g )Nz    <html>
      <head>
        <title>%(reason)s</title>
      </head>
      <body>
        <h1><p>%(reason)s</p></h1>
        %(mesg)s
      </body>
    </html>
    )reasonmesgzl    HTTP/1.1 %s %s
    Connection: close
    Content-Type: text/html
    Content-Length: %d
    
    %slatin1)textwrapdedenthtmlescaper   r-   r   r   )r   
status_intr   r   
html_errorhttps         r   write_errorr   9  sq     
" 
	 dkk$&78
9J ?? 
  *ovs:
CDD 4X./r   c                     [         R                  " 5       S   n Ub7  UR                  R                  U R                  L a   AgUR
                  nUb  M7   Ag! Af = f)zCheck whether calling a function raised a ``TypeError`` because
the call failed or because something in the function raised the
error.

:param f: The function that was called.
:return: ``True`` if the call failed.
r`   FT)sysexc_infotb_framef_code__code__tb_next)rD   tbs     r   _called_with_wrong_argsr   P  s\     
	Bn{{!!QZZ/  B n  Bs   &A A Ac           	         U R                  SS5      n[        U5      S:X  a  SnO	US   US   p  [        R                  " U 5      n [        R                  " USS	9R                  n[        U[        R                   5      (       a  UR"                  nS =pxO[        U[        R$                  5      (       a  [        UR&                  [        R                   5      (       d  [        SU-  5      eUR&                  R"                  n UR(                   V	s/ s H  n	[        R*                  " U	5      PM     nn	UR,                   V
s0 s H-  oR.                  [        R*                  " U
R0                  5      _M/     nn
O[        S
U-  5      e[4        R6                  R8                  [4        R:                  :H  n [=        X65      nUb	   U" U0 UD6nUc  [        SU-  5      e[S        U5      (       d  [        S5      eU$ ! [         a`    U R                  S5      (       aH  [        R                  R                  U 5      (       a$  Sn[	        X@R                  SS5      S   U4-  5      ee f = f! [         a    [        S
U-  5      ef = fs  sn	f s  sn
f ! [2         a    [        SU-  5      ef = f! [>         aB    U(       a&  [@        RB                  " [D        RF                  " 5       6   [        SU< SU < S35      ef = f! [H         aW  n[K        U5      (       aA  [        SRM                  [@        RN                  " [H        U5      5      RQ                  5       5      ee S nAff = f)Nr   r   applicationr   z.pyz1Failed to find application, did you mean '%s:%s'?r    eval)modez9Failed to parse %r as an attribute name or function call.z,Function reference must be a simple name: %rz/Failed to parse arguments as literal values: %rzFailed to find attribute z in r   z%Failed to find application object: %rz$Application object must be callable.)*r&   r-   r/   r0   r   endswithrR   r]   existsr'   astparsebodySyntaxErrorr   r   NameidCallri   argsliteral_evalkeywordsargvaluer(   loggingrootlevelDEBUGr2   AttributeErrorr*   print_exceptionr   r   	TypeErrorr   r1   format_exception_onlystripcallable)modulepartsobjr<   r9   
expressionr   r   kwargsr   kwis_debugappes                 r   
import_appr   j  s   LLa E
5zQAha%%f-
YYs055
 *chh''}}v	J	)	)*//38844 !ORU!UVV!!	5?__E_cC$$S)_DECMCVCVWCVRffc..rxx88CVFWF G#M
 	
 ||!!W]]2HTc  	t&v&C {DsJKKC==CDDJO  ??5!!bggnnV&<&<ECc]]3%:1%=s$CCDD	  
G#M
 	

" FW 	 !ACG 	  T%%s||~6T6RSST  	 's++$GGI;;IqIJPPR  	sh   G5 I" J  I>/J ?4J3J 0J$ ?K3 5A*I"I;>
J J!$AK03
M=AMMc                      [         R                  " [         R                  S   5      n [         R                  " [         R                  " 5       5      nU R                  UR                  :X  a/  U R
                  UR
                  :X  a  [         R                  S   nU$ [         R                  " 5       n U$ ! [         a    [         R                  " 5       n U$ f = f)NPWD)rR   statenvirongetcwdst_inost_devr)   )abcwds      r   r   r     s    GGBJJu%&GGBIIK 88qxxAHH$8**U#C
 J ))+C J  iikJs   BB3 B3 3CCc                 t    U c  [         R                   " 5       n [        R                  R                  U SSS9nU$ )z@Return the current date and time formatted for a message header.FT)	localtimeusegmt)rd   emailutils
formatdate)	timestampss     r   	http_dater    s3    IIK	yE$GAHr   c                 L    U R                  5       R                  5       [        ;   $ r   )r   r   hop_headers)headers    r   
is_hoppishr    s    <<>![00r   c                   ^ S[         R                  ;  Ga  [         R                  " 5       (       a  [         R                  " S5        [         R                  " 5         [         R                  " 5       (       a  [         R                  " S5        [         R
                  " S5        U (       d  [        SS5        [         R                  " [        [         R                  5      m[         R                  " TS5        TS:w  a  [         R                  " TS5        [         R                  " TS5        [         R                  " TS5        g	[         R                  " [        [         R                  5      mTS:w  a-  [         R                  " S5        [         R                  " TS5        U4S jnU" [        R                  S5        U" [        R                  S5        g	g	)
zcStandard daemonization of a process.
http://www.faqs.org/faqs/unix-faq/programmer/faq/ section 1.7
GUNICORN_FDr         Tr   r`   c                    >  U R                  5       nX!:X  aD  U R                  5       (       a.  [        R                  " U5        [        R                  " TU5        g g g ! [
         a     g f = fr   )filenoisattyrR   r   dup2r   )stream	fd_expectr   fd_nulls      r   redirectdaemonize.<locals>.redirect   sV    B6==??, ,; & s   AA 
A*)A*N)rR   r   fork_exitsetsidumaskr   openREDIRECT_TOO_RDWRset_inheritabler  r   r   stdoutstderr)enable_stdio_inheritancer  r  s     @r   	daemonizer    s   
 BJJ&7799HHQK
		7799HHQK
 (
 q!ggk2995Gw- !|#GGGQGGGQ ggk2995G
 !|#4 SZZ#SZZ#] 'r   c                       [         R                  " [        R                  " S5      5        g ! [         aF    [         R                  " [
        R
                  " 5       < S[        R                  " 5       < 35         g f = f)N@   r    )randomseedrR   urandomNotImplementedErrorrd   getpidr   r   r   r#  r#  -  sG    :BJJrN# :tyy{BIIK89:s   *- AA=<A=c                      [        U S5       nUR                  5         S S S 5        g ! , (       d  f       g = f! [         a  n[        SU < SU< S35      eS nAff = f)Nr   zError: 'z' isn't writable [r   )r  r   ru   r,   )r]   rD   r   s      r   check_is_writabler(  4  sG    J$_GGI __ JaHIIJs)   9 (9 
69 9 
AAAc                     [        U [        5      (       a  U $ [        U [        5      (       d  [        SU -  5      eU R	                  U5      $ )z+Converts a string argument to a byte stringz%r is not a string)r   bytesr   r   r   )r   encodings     r   to_bytestringr,  <  sA    %eS!!,u455<<!!r   c                     [        U S5      (       d  g U R                  5         g! [        [        [        R
                  4 a     gf = f)Nr  FT)hasattrr  r   ru   ioUnsupportedOperation)r   s    r   
has_filenor1  F  sF    3!!

  GR%<%<= s   % AAc                 4   [        S[        R                  S9  U R                  5       n[	        U5       H+  u  p#US:X  a  SU-  n[        SU-  [        R                  S9  M-     [        S[        R                  S9  [        R                  R                  5         g )Nz!!!)filer   zWARNING: %sz!!! %sz!!!
)printr   r  
splitlines	enumerateflush)r9   linesilines       r   rg   rg   S  sp    	%cjj!NNEU#6 4'DhoCJJ/ $
 
'

#JJr   c                 *   ^  [        T 5      m U 4S jnU$ )Nc           
      H   > U" SSS[        [        T5      5      4/5        T/$ )Nz500 Internal Server Error)zContent-Typez
text/plainzContent-Length)r   r-   )r   start_responser9   s     r   r   make_fail_app.<locals>.appc  s/    2*s3s8}-5
 	 ur   )r,  )r9   r   s   ` r   make_fail_appr?  `  s    

C Jr   c                     U R                  S5      (       a>  [        R                  R                  SU -   5      nUR	                  UR
                  SS  S9$ [        R                  R                  U 5      $ )Nz//r    r   )r]   )r%   urllibr   urlsplit_replacer]   )r3   r   s     r   split_request_urirD  m  s[    
~~d
 %%cCi0~~5::ab>~22<<  %%r   c                 n     Uc  U " 5       nUR                   ULa  UR                  U5      eUe! S nS nf = fr   )__traceback__with_traceback)tpr   r   s      r   reraiserI  z  sC    =DEb(&&r**s   ,. 4c                 H    [        U [        5      (       a  U $ [        U S5      $ )Nr   )r   r   )r   s    r   bytes_to_strrK    s!    !Sq(r   c                 ^    [         R                  R                  U 5      R                  S5      $ )Nzlatin-1)rA  r   unquote_to_bytesdecode)strings    r   unquote_to_wsgi_strrP    s"    <<((077	BBr   )z gunicorn.workers.sync.SyncWorkerzgunicorn.workers)F)8000r   )utf8)Or   email.utilsr   rv   r   r   r/   r#   r/  r   rR   rJ   r"  r   r{   r   r   rd   r*   rf   importlib.metadatametadatar   ModuleNotFoundErrorr   gunicorn.errorsr   gunicorn.workersr   urllib.parserA  r2   r  setr&   r  r   r   r   r=   	ParameterPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORDrC   rH   rN   rZ   r\   platformr%   ro   rs   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r#  r(  r,  r1  rg   r?  rD  rI  rK  rP  r   r   r   <module>r_     s          	  	 
  	  
    3 + . b)[1   		)- ?)/#f %%++%
. <<5!!4B& iiG>**
		*0.4Pf1S$l:J"


	&	Ce 	[) 8  ~  s6   E+ 	E> F +E;:E;>	F
	F
	FF