§
    k•jP  ã                   ó8  — 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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Zd dlZd dlZd dlZd dlZ	 d dlmZ n# eef$ r d dlZY nw xY wd dlmZ d dlmZ d dlZ ee
dd¦  «        Z  e!d "                    ¦   «         ¦  «        Z#ej$        dk    rd„ Z%n%	 d d	l&m&Z&m'Z'  e'¦   «          d
„ Z%n# e$ r d„ Z%Y nw xY wd„ Z(	 	 d9d„Z)ej*        j+        ej*        j,        fZ-d„ Z.d„ Z/d:d„Z0d„ Z1ej$         2                    d¦  «        rd:d„Z3d„ Z4ne
j5        Z4d„ Z5d„ Z6d;d„Z7d„ Z8d„ Z9d„ Z:d<d!„Z;	 d d"l
m<Z< n# e$ r d#„ Z<Y nw xY wd$„ Z=d:d%„Z>d:d&„Z?d'„ Z@d(„ ZAd)„ ZBd*„ ZCd=d+„ZDd,„ ZEd:d-„ZFd.„ ZGd/„ ZHd>d1„ZId2„ ZJd3„ ZKd4„ ZLd5„ ZMd=d6„ZNd7„ ZOd8„ ZPdS )?é    N)ÚAppImportError)ÚSUPPORTED_WORKERSÚdevnullz	/dev/nullz€
    connection keep-alive proxy-authenticate proxy-authorization
    te trailers transfer-encoding upgrade
    server date
    Údarwinc                 ó   — d S ©N© ©Útitles    ú\/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/gunicorn/util.pyÚ_setproctitler   4   s   € Øˆó    )ÚsetproctitleÚgetproctitlec                 ó*   — t          d| z  ¦  «         d S )Nzgunicorn: %s)r   r
   s    r   r   r   ?   s   € Ý˜¨%Ñ/Ñ0Ô0Ð0Ð0Ð0r   c                 ó   — d S r   r	   r
   s    r   r   r   B   s   € ØˆDr   c                 ó¸   ‡‡— t          j        | ¦  «        }ˆˆfd„|j        D ¦   «         }|st          d‰‰f›d�¦  «        ‚|d                              ¦   «         S )Nc                 ó@   •— g | ]}|j         ‰k    ¯|j        ‰k    ¯|‘ŒS r	   )ÚgroupÚname)Ú.0Úepr   r   s     €€r   ú
<listcomp>z$load_entry_point.<locals>.<listcomp>H   s7   ø€ ð 5ð 5ð 5�"ØŒh˜%ÒÐ B¤G¨t¢O Oð Ø$3 O Or   zEntry point z
 not foundr   )Úimportlib_metadataÚdistributionÚentry_pointsÚImportErrorÚload)r   r   r   Údist_objÚepss    ``  r   Úload_entry_pointr!   F   sy   øø€ Ý!Ô.¨|Ñ<Ô<€Hð5ð 5ð 5ð 5ð 5˜Ô-ð 5ñ 5ô 5€Càð IÝˆk¸À¸¸¸ÐGÑHÔHÐHØˆqŒ6�;Š;‰=Œ=Ðr   ú gunicorn.workers.sync.SyncWorkerúgunicorn.workersc                 óþ  — t          j        | ¦  «        r| S |                      d¦  «        r“|                      d¦  «        d         }	 |                     dd¦  «        \  }}n# t
          $ r |}|}Y nw xY w	 t          |||¦  «        S # t          $ r* t          j	        ¦   «         }d}t          || |fz  ¦  «        ‚w xY w|                      d¦  «        }t          |¦  «        dk    r“	 |                      d¦  «        r
| dd …         } | t          v r!t          |                               d¦  «        }nI	 t          d|| ¦  «        S # t          $ r* t          j	        ¦   «         }d}t          || |fz  ¦  «        ‚w xY w|                     d¦  «        }		 t          j        d                     |¦  «        ¦  «        }
n7# t          $ r* t          j	        ¦   «         }d}t          || |fz  ¦  «        ‚w xY wt#          |
|	¦  «        S )	Nzegg:é   ú#z)class uri %r invalid or not found: 

[%s]ú.TÚ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_classrD   O   sI  € å„�sÑÔð Øˆ
Ø
‡~‚~�fÑÔð +#à—I’I˜fÑ%Ô% aÔ(ˆ	ð	Ø"×)Ò)¨#¨qÑ1Ô1‰JˆD�$�$øÝð 	ð 	ð 	ØˆDØˆDˆDˆDð	øøøð	1Ý# D¨'°4Ñ8Ô8Ð8øÝð 	1ð 	1ð 	1ÝÔ&Ñ(Ô(ˆCØ?ˆCÝ˜s c¨3 ZÑ/Ñ0Ô0Ð0ð	1øøøð
 —Y’Y˜s‘^”^ˆ
Ýˆz‰?Œ?˜aÒÐð9Ø—>’> #Ñ&Ô&ð "Ø˜a˜b˜bœ'�CàÕ+Ð+Ð+Ý!2°3Ô!7×!=Ò!=¸cÑ!BÔ!B�JØð9Ý+Ø" G¨Sñô ð øõ !ð 9ð 9ð 9Ý#Ô.Ñ0Ô0�CØG�CÝ& s¨c°3¨ZÑ'7Ñ8Ô8Ð8ð9øøøð
 —’˜rÑ"Ô"ˆð	1ÝÔ)¨#¯(ª(°:Ñ*>Ô*>Ñ?Ô?ˆCˆCøÝð 	1ð 	1ð 	1ÝÔ&Ñ(Ô(ˆCØ?ˆCÝ˜s c¨3 ZÑ/Ñ0Ô0Ð0ð	1øøøõ �s˜EÑ"Ô"Ð"s6   ÁA" Á"A3Á2A3Á7B Â4B<Ä2E Å4E7Æ'F8 Æ84G,c                 ó�   — t          j        | ¦  «        }d}|j                             ¦   «         D ]}|j        t
          v r|dz  }Œ|S )Nr   r%   )r*   Ú	signatureÚ
parametersÚvaluesÚkindÚpositionals)ÚfÚsigÚarityÚparams       r   Ú	get_arityrO   ‡   sP   € Ý
Ô
˜AÑ
Ô
€CØ€Eà”×&Ò&Ñ(Ô(ð ð ˆØŒ:�Ð$Ð$Ø�Q‰JˆEøà€Lr   c                 ó4   — t          j        | ¦  «        j        S )z get the username for a user id)ÚpwdÚgetpwuidÚpw_name)Úuids    r   Úget_usernamerU   ’   s   € åŒ<˜ÑÔÔ$Ð$r   Fc                 ó<  — |rh| r#	 t          | ¦  «        }n# t          $ r d}Y nw xY w|rt          j        ||¦  «         n+|t          j        ¦   «         k    rt          j        |¦  «         | r-| t          j        ¦   «         k    rt          j        | ¦  «         dS dS dS )z) set user and group of workers processes FN)rU   ÚKeyErrorÚosÚ
initgroupsÚgetgidÚsetgidÚgetuidÚsetuid)rT   ÚgidrY   Úusernames       r   Úset_owner_processr`   —   sÂ   € ð ð 
Øð 	#ð#Ý'¨Ñ,Ô,��øÝð #ð #ð #Ø"�
�
�
ð#øøøð ð 	ÝŒM˜( CÑ(Ô(Ð(Ð(Ø•B”I‘K”KÒÐÝŒI�c‰NŒNˆNà
ð ˆs•b”i‘k”kÒ!Ð!Ý
Œ	�#‰Œˆˆˆðð Ð!Ð!s   † –%¤%c                 ó2   — t          j        | ||¦  «         d S r   )rX   Úchown)ÚpathrT   r^   s      r   rb   rb   ª   s   € Ý„HˆT�3˜ÑÔÐÐÐr   Úwinc                 ó<  —  | |¦  «         |r|}n&t           j                             |¦  «        \  }}|pd}d}|dk     r>t          j        |¦  «        }|r|sn||v rd S t	          j        |¦  «         |dz  }|dk     °>t          j        d|z   t          d¬¦  «         d S )Nr'   gü©ñÒMbP?g      ð?é   z)tests may fail, delete still pending for é   )Ú
stacklevel)	rX   rc   r-   ÚlistdirÚtimeÚsleepÚwarningsÚwarnÚRuntimeWarning)ÚfuncÚpathnameÚwaitallÚdirnamer   ÚtimeoutÚLs          r   Ú_waitforru   ¯   sÖ   € àˆˆX‰Œˆàð 	%ØˆGˆGåœGŸMšM¨(Ñ3Ô3‰MˆG�TØ�n ˆGð ˆØ˜Šmˆmõ ”
˜7Ñ#Ô#ˆAØð �1ð ð  T¨Q Y YØ�åŒJ�wÑÔÐØ�q‰LˆGð ˜Šmˆmõ 	ŒÐAÀHÑLÝ$°ð	4ñ 	4ô 	4ð 	4ð 	4ð 	4r   c                 ó:   — t          t          j        | ¦  «         d S r   )ru   rX   Úunlink)Úfilenames    r   Ú_unlinkry   Ð   s   € Ý•”˜HÑ%Ô%Ð%Ð%Ð%r   c                 ó–   — 	 t          | ¦  «         d S # t          $ r+}|j        t          j        t          j        fvr‚ Y d }~d S d }~ww xY wr   )ry   ÚOSErrorÚerrnoÚENOENTÚENOTDIR)rx   Úerrors     r   rw   rw   Ö   sg   € ðÝ�ÑÔÐÐÐøÝð ð ð àŒ;�uœ|­U¬]Ð;Ð;Ð;Øð <Ð;Ð;Ð;Ð;Ð;øøøøðøøøs   ‚ “
A� AÁAc                 ó‚   — 	 t          j        t           j        | ¦  «         n# t          $ r Y dS t          $ r Y dS w xY wdS )NFT)ÚsocketÚ	inet_ptonÚAF_INET6r{   r/   )Úaddrs    r   Úis_ipv6r…   ß   s_   € ðÝÔ�œ¨$Ñ/Ô/Ð/Ð/øÝð ð ð ØˆuˆuÝð ð ð Øˆuˆuðøøøàˆ4s   ‚" ¢
<¯	<»<Ú8000c                 óô  — t          j        d| ¦  «        rt          j        d| ¦  «        d         S |                      d¦  «        r;| dd …         }	 t	          |¦  «        S # t
          $ r t          d|z  ¦  «        d ‚w xY w|                      d¦  «        r|                      d¦  «        d         } | |}}d| v rGd	| v rC|                      d	¦  «        d
         dd …         }|                      d¦  «        |gz   d         }n3d| v r%|                      d¦  «        |gz   d d…         \  }}n
| dk    rd|}}	 t	          |¦  «        }n # t
          $ r t          d|z  ¦  «        ‚w xY w|                     ¦   «         |fS )Nz
unix:(//)?r)   zfd://é   z"%r is not a valid file descriptor.ztcp://r%   ú[ú]r   z]:ú:rf   Ú z0.0.0.0z%r is not a valid port number.)ÚreÚmatchr-   r,   Úintr/   r3   Úlower)ÚnetlocÚdefault_portÚfdÚhostÚports        r   Úparse_addressr–   é   sº  € Ý	„x�˜vÑ&Ô&ð 3ÝŒx˜ vÑ.Ô.¨rÔ2Ð2à×Ò˜Ñ!Ô!ð TØ�A�B�BŒZˆð	TÝ�r‘7”7ˆNøÝð 	Tð 	Tð 	TÝÐCÀbÑHÑIÔIÈtÐSð	Tøøøð ×Ò˜Ñ"Ô"ð +Ø—’˜hÑ'Ô'¨Ô*ˆØ˜ˆ$€Dà
ˆf€}€}˜ ˜˜Ø�|Š|˜CÑ Ô  Ô# A B BÔ'ˆØ—’˜TÑ"Ô" l ^Ñ3°QÔ7ˆˆØ	�ˆˆØ—l’l 3Ñ'Ô'¨<¨.Ñ8¸"¸1¸"Ô=‰
ˆˆdˆdØ	�2ŠˆØ ˆdˆðDÝ�4‰yŒyˆˆøÝð Dð Dð DÝÐ;¸dÑBÑCÔCÐCðDøøøð �:Š:‰<Œ<˜ÐÐs   ÁA  Á A>Ä4E ÅE!c                 ó¢   — t          j         | t           j        ¦  «        }|t           j        z  }t          j         | t           j        |¦  «         d S r   )ÚfcntlÚF_GETFDÚ
FD_CLOEXECÚF_SETFD©r“   Úflagss     r   Úclose_on_execrž     s>   € ÝŒK˜�EœMÑ*Ô*€EØ	�UÔÑ€EÝ	„K�•E”M 5Ñ)Ô)Ð)Ð)Ð)r   c                 óž   — t          j         | t           j        ¦  «        t          j        z  }t          j         | t           j        |¦  «         d S r   )r˜   ÚF_GETFLrX   Ú
O_NONBLOCKÚF_SETFLrœ   s     r   Úset_non_blockingr£     s8   € ÝŒK˜�EœMÑ*Ô*­R¬]Ñ:€EÝ	„K�•E”M 5Ñ)Ô)Ð)Ð)Ð)r   c                 óR   — 	 |                       ¦   «          d S # t          $ r Y d S w xY wr   )Úcloser{   )Úsocks    r   r¥   r¥     s:   € ðØ�
Š
‰ŒˆˆˆøÝð ð ð Øˆˆðøøøs   ‚ ˜
&¥&ç       @é   c                 ó”  — 	 	 |                       t          j        ¦  «         n7# t          $ r* Y 	 |                      ¦   «          dS # t          $ r Y dS w xY ww xY wt          j        ¦   «         |z   }d}||k     r€|t          j        ¦   «         z
  }|dk    rnc	 |                      |¦  «         |                      d¦  «        }n# t          j	        t          f$ r Y nw xY w|sn|t          |¦  «        z  }||k     °€	 |                      ¦   «          dS # t          $ r Y dS w xY w# 	 |                      ¦   «          w # t          $ r Y w w xY wxY w)ab  Close a TCP socket following RFC 9112 section 9.6.

    Half-closes the write side to send FIN, then lingers on the read side
    to drain the kernel recv buffer until the peer closes or a cap is hit,
    then fully closes. This avoids the kernel sending RST (truncating the
    last response segment) when unread request data remains in the buffer.
    Nr   i   )Úshutdownr�   ÚSHUT_WRr{   r¥   rj   Ú	monotonicÚ
settimeoutÚrecvrs   r4   )r¦   rs   Ú	max_drainÚdeadlineÚdrainedÚ	remainingÚdatas          r   Úclose_gracefulr´     s   € ðð	Ø�MŠM�&œ.Ñ)Ô)Ð)Ð)øÝð 	ð 	ð 	Øð 	Ø�JŠJ‰LŒLˆLˆLˆLøÝð 	ð 	ð 	ØˆDˆDð	øøøð'	øøøå”>Ñ#Ô# gÑ-ˆØˆØ˜	Ò!Ð!Ø ¥4¤>Ñ#3Ô#3Ñ3ˆIØ˜AŠ~ˆ~ØðØ—’ 	Ñ*Ô*Ð*Ø—y’y ‘”��øÝ”N¥GÐ,ð ð ð Ø�ðøøøàð ØØ•s˜4‘y”yÑ ˆGð ˜	Ò!Ð!ð	Ø�JŠJ‰LŒLˆLˆLˆLøÝð 	ð 	ð 	ØˆDˆDð	øøøøð	Ø�JŠJ‰LŒLˆLˆLøÝð 	ð 	ð 	ØˆDð	øøøøøøs�   ƒ# ¢D  £
A­D  ¯A Á
AÁAÁAÁ>D  Â*C Ã D  ÃCÃD  ÃCÃD  Ã9D Ä
DÄDÄ EÄ"D7Ä6EÄ7
EÅEÅEÅE)Ú
closerangec                 óv   — t          | |¦  «        D ]'}	 t          j        |¦  «         Œ# t          $ r Y Œ$w xY wd S r   )ÚrangerX   r¥   r{   )Úfd_lowÚfd_highr“   s      r   rµ   rµ   ?  sY   € å˜ Ñ(Ô(ð 	ð 	ˆBðÝ”˜‘”��øÝð ð ð Ø�ðøøøð	ð 	s   ”)©
6µ6c                 óþ   — t          |t          ¦  «        r|                     d¦  «        }dt          |¦  «        z  }d                     |                     d¦  «        |dg¦  «        }|                      |¦  «         d S )Nzutf-8z%X
r   s   
)Ú
isinstanceÚstrÚencoder4   r8   Úsendall)r¦   r³   Ú
chunk_sizeÚchunks       r   Úwrite_chunkrÁ   H  ss   € Ý�$�ÑÔð $Ø�{Š{˜7Ñ#Ô#ˆØ�C ™IœIÑ%€JØ�HŠH�j×'Ò'¨Ñ0Ô0°$¸Ð@ÑAÔA€EØ‡L‚L�ÑÔÐÐÐr   c                 óT   — |rt          | |¦  «        S |                      |¦  «         d S r   )rÁ   r¾   )r¦   r³   Úchunkeds      r   ÚwriterÄ   P  s2   € Øð 'Ý˜4 Ñ&Ô&Ð&Ø‡L‚L�ÑÔÐÐÐr   c                 ó  — |                       ¦   «         }|dk    rV	 |                      d¦  «         t          | ||¦  «        |                      d¦  «         S # |                      d¦  «         w xY wt          | ||¦  «        S )Ng        r   r%   )Ú
gettimeoutÚsetblockingrÄ   )r¦   r³   rÃ   rs   s       r   Úwrite_nonblockrÈ   V  s…   € Ø�oŠoÑÔ€GØ�#‚~€~ð	 Ø×Ò˜QÑÔÐÝ˜˜t WÑ-Ô-à×Ò˜QÑÔÐÐøˆD×Ò˜QÑÔÐÐøøøå�T˜4 Ñ)Ô)Ð)s   œ%A ÁA.c                 ó  — t          j        d¦  «        |t          j        |¦  «        dœz  }t          j        d¦  «        t	          |¦  «        |t          |¦  «        |fz  }t          | |                     d¦  «        ¦  «         d S )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¼   r4   rÈ   r½   )r¦   Ú
status_intrÊ   rË   Ú
html_errorÚhttps         r   Úwrite_errorrÔ   b  s�   € Ý”ð 
"ñ 
	ô 
	ð ¥d¤k°$Ñ&7Ô&7Ð8Ð8ñ
9€Jõ Œ?ð 
ñ ô õ �*‰oŒo˜v¥s¨:¡¤¸
ÐCñD€Dõ �4˜Ÿš XÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r   c                 óŽ   — t          j        ¦   «         d         }	 |� |j        j        | j        u r	 ~dS |j        }|­ 	 ~dS # ~w xY w)zêCheck 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.
    rf   NFT)ÚsysÚexc_infoÚtb_frameÚf_codeÚ__code__Útb_next)rK   Útbs     r   Ú_called_with_wrong_argsrÝ   y  se   € õ 
Œ‰Œ˜Ô	€BðØˆnØŒ{Ô! Q¤ZÐ/Ð/àð ˆBˆBð ”ˆBð ˆnð ð ˆBˆBøˆBˆˆˆˆs   ›A ´	A ÁAc           	      óô  — |                       dd¦  «        }t          |¦  «        dk    rd}n|d         |d         }} 	 t          j        | ¦  «        }ns# t          $ rf |                      d¦  «        rOt          j                             | ¦  «        r0d}t	          ||  	                    dd¦  «        d         |fz  ¦  «        ‚‚ w xY w	 t          j        |d¬	¦  «        j        }n # t          $ r t          d
|z  ¦  «        ‚w xY wt          |t          j        ¦  «        r|j        }d x}}n­t          |t          j        ¦  «        r�t          |j        t          j        ¦  «        st          d|z  ¦  «        ‚|j        j        }	 d„ |j        D ¦   «         }d„ |j        D ¦   «         }n2# t,          $ r t          d|z  ¦  «        ‚w xY wt          d
|z  ¦  «        ‚t.          j        j        t.          j        k    }		 t7          ||¦  «        }
nE# t8          $ r8 |	rt;          j        t?          j         ¦   «         Ž  t          d|›d| ›d�¦  «        ‚w xY w|�x	  |
|i |¤Ž}
nn# tB          $ ra}tE          |
¦  «        rLt          d #                    t;          j$        tB          |¦  «        ¦  «         %                    ¦   «         ¦  «        ‚‚ d }~ww xY w|
€t          d|z  ¦  «        ‚tM          |
¦  «        st          d¦  «        ‚|
S )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: %rc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r	   )ÚastÚliteral_eval)r   Úargs     r   r   zimport_app.<locals>.<listcomp>·  s#   € ÐEÐEÐE¨c•CÔ$ SÑ)Ô)ÐEÐEÐEr   c                 óL   — i | ]!}|j         t          j        |j        ¦  «        “Œ"S r	   )rå   rã   rä   Úvalue)r   Úkws     r   ú
<dictcomp>zimport_app.<locals>.<dictcomp>¸  s)   € ÐWÐWÐW¸R�b”f�cÔ.¨r¬xÑ8Ô8ÐWÐWÐWr   z/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-   r4   r6   r7   r   ÚendswithrX   rc   Úexistsr.   rã   ÚparseÚbodyÚSyntaxErrorr   r»   ÚNameÚidÚCallro   ÚargsÚkeywordsr/   ÚloggingÚrootÚlevelÚDEBUGr9   ÚAttributeErrorr1   Úprint_exceptionrÖ   r×   Ú	TypeErrorrÝ   r8   Úformat_exception_onlyÚstripÚcallable)ÚmoduleÚpartsÚobjrC   r@   Ú
expressionr   rò   ÚkwargsÚis_debugÚappÚes               r   Ú
import_appr  “  sj  € Ø�LŠL˜˜aÑ Ô €EÝ
ˆ5�z„z�Q‚€Øˆˆà˜A”h  a¤�ˆðÝÔ% fÑ-Ô-ˆˆøÝð ð ð Ø�?Š?˜5Ñ!Ô!ð 	E¥b¤g§n¢n°VÑ&<Ô&<ð 	EØEˆCÝ˜c V§]¢]°3¸Ñ%:Ô%:¸1Ô%=¸sÐ$CÑCÑDÔDÐDØð	øøøð
Ý”Y˜s¨Ð0Ñ0Ô0Ô5ˆ
ˆ
øÝð 
ð 
ð 
ÝØGÈ#ÑMñ
ô 
ð 	
ð
øøøõ
 �*�cœhÑ'Ô'ð 
ØŒ}ˆØÐˆˆvˆvÝ	�J¥¤Ñ	)Ô	)ð 
å˜*œ/­3¬8Ñ4Ô4ð 	WÝ Ð!OÐRUÑ!UÑVÔVÐVàŒÔ!ˆð	ØEÐE°Z´_ÐEÑEÔEˆDØWÐWÀ:ÔCVÐWÑWÔWˆFˆFøÝð 	ð 	ð 	õ !ØAÀCÑGñô ð ð	øøøõ ØGÈ#ÑMñ
ô 
ð 	
õ Œ|Ô!¥W¤]Ò2€HðTÝ�c˜4Ñ Ô ˆˆøÝð Tð Tð TØð 	7ÝÔ%¥s¤|¡~¤~Ð6Ð6ÝˆnÀTÀTÀTÈ6È6È6ÐRÑSÔSÐSðTøøøð Ðð	Ø�#�tÐ&˜vÐ&Ð&ˆCˆCøÝð 	ð 	ð 	õ ' sÑ+Ô+ð Ý$Ø—G’G�IÔ;½IÀqÑIÔIÑJÔJ×PÒPÑRÔRñô ð ð øøøøð	øøøð €{ÝÐDÀsÑJÑKÔKÐKå�C‰=Œ=ð EÝÐCÑDÔDÐDØ€JsJ   ¾A ÁA0CÃC# Ã#D Æ"F$ Æ$GÇ6H ÈAI	ÉI É
KÉ"AJ>Ê>Kc                  ón  — 	 t          j        t           j        d         ¦  «        } t          j        t          j        ¦   «         ¦  «        }| j        |j        k    r#| j        |j        k    rt           j        d         }nt          j        ¦   «         }n## t          $ r t          j        ¦   «         }Y nw xY w|S )NÚPWD)rX   ÚstatÚenvironÚgetcwdÚst_inoÚst_devr0   )ÚaÚbÚcwds      r   r  r  æ  s˜   € ðÝŒG•B”J˜uÔ%Ñ&Ô&ˆÝŒG•B”I‘K”KÑ Ô ˆØŒ8�q”xÒÐ A¤H°´Ò$8Ð$8Ý”*˜UÔ#ˆCˆCå”)‘+”+ˆCøøÝð ð ð ÝŒi‰kŒkˆˆˆðøøøà€Js   ‚BB ÂB2Â1B2c                 ót   — | €t          j         ¦   «         } t          j                             | dd¬¦  «        }|S )z@Return the current date and time formatted for a message header.NFT)Ú	localtimeÚusegmt)rj   ÚemailÚutilsÚ
formatdate)Ú	timestampÚss     r   Ú	http_dater  ô  s4   € àÐÝ”I‘K”Kˆ	ÝŒ×Ò˜y°EÀ$ÐÑGÔG€AØ€Hr   c                 ó\   — |                       ¦   «                              ¦   «         t          v S r   )r�   rü   Úhop_headers)Úheaders    r   Ú
is_hoppishr  ü  s!   € Ø�<Š<‰>Œ>×ÒÑ!Ô!¥[Ð0Ð0r   c                 ó@  ‡— dt           j        v�r�t          j        ¦   «         rt          j        d¦  «         t          j        ¦   «          t          j        ¦   «         rt          j        d¦  «         t          j        d¦  «         | s�t          dd¦  «         t          j        t          t           j	        ¦  «        Št          j
        ‰d¦  «         ‰dk    rt          j        ‰d¦  «         t          j        ‰d¦  «         t          j        ‰d¦  «         d	S t          j        t          t           j	        ¦  «        Š‰dk    r)t          j        d¦  «         t          j        ‰d¦  «         ˆfd„} |t          j        d¦  «          |t          j        d¦  «         d	S d	S )
zo    Standard daemonization of a process.
    http://www.faqs.org/faqs/unix-faq/programmer/faq/ section 1.7
    ÚGUNICORN_FDr   é   é   Tr%   rf   c                 óâ   •— 	 |                       ¦   «         }||k    r?|                      ¦   «         r-t          j        |¦  «         t          j        ‰|¦  «         d S d S d S # t
          $ r Y d S w xY wr   )ÚfilenoÚisattyrX   r¥   Údup2rø   )ÚstreamÚ	fd_expectr“   Úfd_nulls      €r   Úredirectzdaemonize.<locals>.redirectI  s~   ø€ ðØŸš™œ�BØ˜Y’�¨6¯=ª=©?¬?�Ýœ ™œ˜Ýœ ¨Ñ,Ô,Ð,Ð,Ð,ð '���øõ &ð ð ð Ø�D�Dðøøøs   ƒAA  Á 
A.Á-A.N)rX   r
  ÚforkÚ_exitÚsetsidÚumaskrµ   ÚopenÚREDIRECT_TOÚO_RDWRÚset_inheritabler%  r¥   rÖ   ÚstdoutÚstderr)Úenable_stdio_inheritancer)  r(  s     @r   Ú	daemonizer5     sz  ø€ ð
 �BœJÐ&Ñ&ÝŒ7‰9Œ9ð 	ÝŒH�Q‰KŒKˆKÝ
Œ	‰ŒˆåŒ7‰9Œ9ð 	ÝŒH�Q‰KŒKˆKå
Œ�‰Œˆð (ð >	$õ
 �q˜!ÑÔÐå”g�k­2¬9Ñ5Ô5ˆGåÔ˜w¨Ñ-Ô-Ð-ð ˜!Š|ˆ|Ý”˜ Ñ#Ô#Ð#åŒG�G˜QÑÔÐÝŒG�G˜QÑÔÐÐÐõ ”g�k­2¬9Ñ5Ô5ˆGð
 ˜!Š|ˆ|Ý”˜‘”�Ý”˜ Ñ#Ô#Ð#ð4ð ð ð ð ð ˆH•S”Z Ñ#Ô#Ð#ØˆH•S”Z Ñ#Ô#Ð#Ð#Ð#ð] 'Ð&r   c                  óì   — 	 t          j        t          j        d¦  «        ¦  «         d S # t          $ r? t          j        t          j        ¦   «         ›dt          j        ¦   «         ›�¦  «         Y d S w xY w)Né@   r'   )ÚrandomÚseedrX   ÚurandomÚNotImplementedErrorrj   Úgetpidr	   r   r   r9  r9  V  sp   € ð:ÝŒ•B”J˜r‘N”NÑ#Ô#Ð#Ð#Ð#øÝð :ð :ð :ÝŒ�tœy™{œ{˜{˜{­B¬I©K¬K¨KÐ8Ñ9Ô9Ð9Ð9Ð9Ð9ð:øøøs   ‚&* ªAA3Á2A3c                 óÒ   — 	 t          | d¦  «        5 }|                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S # t          $ r}t          d| ›d|›d�¦  «        ‚d }~ww xY w)Nr  zError: 'z' isn't writable [rŠ   )r.  r¥   r{   r3   )rc   rK   r  s      r   Úcheck_is_writabler>  ]  sÄ   € ðJÝ�$˜‰_Œ_ð 	 Ø�GŠG‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	øåð Jð Jð JÝˆlÀÀÀÀaÀaÀaÐHÑIÔIÐIøøøøðJøøøs2   ‚A ’4§A ´8¸A »8¼A Á
A&ÁA!Á!A&Úutf8c                 ó¨   — t          | t          ¦  «        r| S t          | t          ¦  «        st          d| z  ¦  «        ‚|                      |¦  «        S )z+Converts a string argument to a byte stringz%r is not a string)r»   Úbytesr¼   rú   r½   )rç   Úencodings     r   Úto_bytestringrC  e  sQ   € å�%�ÑÔð ØˆÝ�e�SÑ!Ô!ð 6ÝÐ,¨uÑ4Ñ5Ô5Ð5à�<Š<˜Ñ!Ô!Ð!r   c                 óœ   — t          | d¦  «        sdS 	 |                      ¦   «          n## t          t          t          j        f$ r Y dS w xY wdS )Nr#  FT)Úhasattrr#  rø   r{   ÚioÚUnsupportedOperation)r   s    r   Ú
has_filenorH  o  s`   € Ý�3˜Ñ!Ô!ð ØˆuðØ�
Š
‰ŒˆˆøÝ�G¥RÔ%<Ð=ð ð ð Øˆuˆuðøøøð ˆ4s   ”) ©A	ÁA	c                 óR  — t          dt          j        ¬¦  «         |                      ¦   «         }t	          |¦  «        D ].\  }}|dk    rd|z  }t          d|z  t          j        ¬¦  «         Œ/t          dt          j        ¬¦  «         t          j                             ¦   «          d S )Nz!!!)Úfiler   zWARNING: %sz!!! %sz!!!
)ÚprintrÖ   r3  Ú
splitlinesÚ	enumerateÚflush)r@   ÚlinesÚiÚlines       r   rm   rm   |  sŸ   € Ý	ˆ%•c”jÐ!Ñ!Ô!Ð!à�NŠNÑÔ€EÝ˜UÑ#Ô#ð 0ð 0‰ˆˆ4Ø�Š6ˆ6Ø  4Ñ'ˆDÝˆh˜‰o¥C¤JÐ/Ñ/Ô/Ð/Ð/å	ˆ'�œ
Ð#Ñ#Ô#Ð#Ý„J×ÒÑÔÐÐÐr   c                 ó0   ‡ — t          ‰ ¦  «        Š ˆ fd„}|S )Nc           
      ó^   •—  |dddt          t          ‰¦  «        ¦  «        fg¦  «         ‰gS )Nz500 Internal Server Error)zContent-Typez
text/plainzContent-Length)r¼   r4   )r
  Ústart_responser@   s     €r   r  zmake_fail_app.<locals>.appŒ  s?   ø€ ØˆÐ2Ø*Ø�s¥3 s¡8¤8™}œ}Ð-ð5
ñ 	ô 	ð 	ð ˆuˆr   )rC  )r@   r  s   ` r   Úmake_fail_apprU  ‰  s0   ø€ Ý
˜Ñ
Ô
€Cðð ð ð ð ð €Jr   c                 óô   — |                       d¦  «        rEt          j                             d| z   ¦  «        }|                     |j        dd …         ¬¦  «        S t          j                             | ¦  «        S )Nz//r'   r%   )rc   )r,   Úurllibrì   ÚurlsplitÚ_replacerc   )r:   rÿ   s     r   Úsplit_request_urirZ  –  se   € Ø
‡~‚~�dÑÔð 3õ
 ”×%Ò% c¨C¡iÑ0Ô0ˆØ�~Š~ 5¤:¨a¨b¨b¤>ˆ~Ñ2Ô2Ð2åŒ<× Ò  Ñ%Ô%Ð%r   c                 ón   — 	 |€
 | ¦   «         }|j         |ur|                     |¦  «        ‚|‚# d }d }w xY wr   )Ú__traceback__Úwith_traceback)Útprç   rÜ   s      r   Úreraiser_  £  sQ   € ðØˆ=Ø�B‘D”DˆEØÔ bÐ(Ð(Ø×&Ò& rÑ*Ô*Ð*ØˆøàˆØˆˆ	ˆ	ˆ	ˆ	s   ‚,. ®4c                 óP   — t          | t          ¦  «        r| S t          | d¦  «        S )NrÌ   )r»   r¼   )r  s    r   Úbytes_to_strra  ¯  s)   € Ý�!•SÑÔð ØˆÝˆq�(ÑÔÐr   c                 óf   — t           j                             | ¦  «                             d¦  «        S )Nzlatin-1)rW  rì   Úunquote_to_bytesÚdecode)Ústrings    r   Úunquote_to_wsgi_strrf  µ  s&   € ÝŒ<×(Ò(¨Ñ0Ô0×7Ò7¸	ÑBÔBÐBr   )r"   r#   )F)r†   )r§   r¨   r   )r?  )Qrã   Úemail.utilsr  r|   r˜   rÏ   r6   r*   rF  rô   rX   rQ   r8  r�   r�   rÖ   rÍ   rj   r1   rl   Úimportlib.metadataÚmetadatar   ÚModuleNotFoundErrorr   Úgunicorn.errorsr   Úgunicorn.workersr   Úurllib.parserW  r9   r/  Úsetr-   r  Úplatformr   r   r   r!   rD   Ú	ParameterÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDrJ   rO   rU   r`   rb   r,   ru   ry   rw   r…   r–   rž   r£   r¥   r´   rµ   rÁ   rÄ   rÈ   rÔ   rÝ   r  r  r  r  r5  r9  r>  rC  rH  rm   rU  rZ  r_  ra  rf  r	   r   r   ú<module>rs     sÿ  ðð €
€
€
Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€ðØ3Ð3Ð3Ð3Ð3Ð3Ð3øØ˜[Ð)ð ð ð ØÐÐÐÐÐðøøøð +Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð àˆg�b˜) [Ñ1Ô1€ð ˆcð ÷ 	Š‰Œñ	ô €ð „<�8ÒÐðð ð ð ðØ;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð
 	ˆ‰Œˆð	1ð 	1ð 	1ð 	1øàð ð ð ð	ð 	ð 	ð 	ð 	ðøøøð
ð ð ð ?Ø)ð/#ð /#ð /#ð /#ðf ÔÔ%ØÔÔ+ð€ðð ð ð%ð %ð %ð
ð ð ð ð&ð ð ð „<×Ò˜5Ñ!Ô!ð %ð4ð 4ð 4ð 4ðB&ð &ð &ð &ð Œi€Gðð ð ðð ð ðð ð ð ð>*ð *ð *ð*ð *ð *ð
ð ð ðð ð ð ðD	ØÐÐÐÐÐÐøØð ð ð ðð ð ð ð ðøøøðð ð ðð ð ð ð	*ð 	*ð 	*ð 	*ð0ð 0ð 0ð.ð ð ð4Pð Pð Pðfð ð ðð ð ð ð1ð 1ð 1ðS$ð S$ð S$ð S$ðl:ð :ð :ðJð Jð Jð"ð "ð "ð "ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð	&ð 	&ð 	&ð	ð 	ð 	ð 	ðð ð ðCð Cð Cð Cð Cs6   ÁA ÁA#Á"A#Â0C ÃCÃCÅE
 Å
EÅE