<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ó
\Oyic           @   s#  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 e  j d d k rÕ e  j d d k rÕ d  d l m Z n d  d l Z i  a d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e  j d d k r„d „  Z d „  Z d „  Z  n d „  Z d „  Z d „  Z  d d# d „  ƒ  YZ! e" d k re ƒ  e d d ƒ e d d ƒ y e ƒ  Wn! e# k
 re d d  ƒ ‚  n Xe d d ƒ e d! d ƒ y e ƒ  Z$ Wn! e# k
 rXe d! d  ƒ ‚  n Xe d! d ƒ e d" d ƒ yB e ƒ  Z% e% \ Z& Z' e ƒ  e! e' e  j( e$ j) ƒ Z* e e& ƒ Wn! e# k
 rØe d" d  ƒ ‚  n Xe d" d ƒ e ƒ  e* j+ ƒ  y e j, e& ƒ Wqe- k
 rqXn  d S($   iÿÿÿÿNi    i   i   i   (   t   utilc         C   s%   t  j j |  d ƒ t  j d ƒ d  S(   Ns   
i   (   t   syst   stderrt   writet   exit(   t   message(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   abort#   s    c         C   s_   y) t  |  d ƒ  } | j | ƒ Wd  QXWn/ t k
 rZ } t j d |  d | j ƒ n Xd  S(   Nt   ws   Warning: unable to write to s   : (   t   openR   t   IOErrort   loggingt   warnt   strerror(   t   patht   contentst   ft   e(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   try_write_file'   s
    c           C   s<   t  j d t  j d d ƒ t t  d ƒ r8 t  j t ƒ n  d  S(   Nt   levelt   formats2   [ pid=%(process)d, time=%(asctime)s ]: %(message)st   captureWarnings(   R
   t   basicConfigt   WARNINGt   hasattrR   t   True(    (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   initialize_logging.   s
    		c          C   sD   t  j d ƒ }  |  d } t | d ƒ  } t j | ƒ a Wd  QXd  S(   Nt   PASSENGER_SPAWN_WORK_DIRs
   /args.jsont   r(   t   ost   getenvR   t   jsont   loadt   options(   t   work_dirR   R   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   read_startup_arguments5   s    
c         C   sU   t  j d ƒ } | d |  j ƒ  } t | d | ƒ t | d t t j ƒ  ƒ ƒ d  S(   NR   s   /response/steps/s   /states   /begin_time(   R   R   t   lowerR   t   strt   time(   t   stept   stateR!   t   step_dir(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   record_journey_step_begin>   s    c         C   s£   t  j d ƒ } | d |  j ƒ  } t | d | ƒ t  j j | d ƒ r‚ t  j j | d ƒ r‚ t | d t t j ƒ  ƒ ƒ n  t | d t t j ƒ  ƒ ƒ d  S(   NR   s   /response/steps/s   /states   /begin_times   /begin_time_monotonics	   /end_time(   R   R   R#   R   R   t   existsR$   R%   (   R&   R'   R!   R(   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   record_journey_step_endE   s    . c          C   sš   t  j j d t j ƒ  ƒ t j d d ƒ }  t  j d d k r† t  j d d k r† t j	 d |  ƒ } t j
 | ƒ } | j j | ƒ | St j d |  ƒ Sd  S(   Ni    t   startup_files   passenger_wsgi.pyi   i   i   t   passenger_wsgi(   R   R   t   insertR   t   getcwdR    t   gett   version_infoR    t   spec_from_file_locationt   module_from_spect   loadert   exec_modulet   impt   load_source(   R,   t   spect
   app_module(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   load_appN   s    &c          C   sÍ   t  t j d d ƒ ƒ }  d t k r7 t d } d } n t j ƒ  } d } d } xw | d k  rÈ y t | | |  ƒ SWqR t j k
 rÄ } | j t j	 k r» | d 7} | d k rÁ | ‚ qÁ qÅ | ‚ qR XqR Wd  S(	   Nt   UNIX_PATH_MAXid   t
   socket_dirt   wsgit
   PsgWsgiAppi    i€   i   (
   t   intR    R0   t   tempfilet
   gettempdirt   make_sockett   sockett   errort   errnot
   EADDRINUSE(   R;   R<   t   socket_prefixt   iR   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   create_server_socket]   s     
	
c         C   s‡   t  j  t  j t  j ƒ } t t j d t j d ƒ ƒ d d ƒ } |  d | d | } | d | !} | j | ƒ | j	 d ƒ | | f S(   Nt   Qi   i    t   xt   /t   .iè  (
   RC   t   AF_UNIXt   SOCK_STREAMR   t   structt   unpackR   t   urandomt   bindt   listen(   R<   RG   R;   t   st   socket_suffixt   filename(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyRB   t   s    (c             s/   d „  ‰  ‡  f d †  }  t  j  t  j |  ƒ d  S(   Nc         S   sï   t  g  t j ƒ  D] } | j | j f ^ q ƒ } g  } x£ t j ƒ  j ƒ  D] \ } } | j d | j	 | d ƒ | f ƒ x] t
 j | ƒ D]L \ } } }	 }
 | j d | | |	 f ƒ |
 r‰ | j d |
 j ƒ  ƒ q‰ q‰ WqJ Wd j | ƒ GHd  S(   Ns   
# Thread: %s(%d)t    s     File: "%s", line %d, in %ss       %ss   
(   t   dictt	   threadingt	   enumeratet   identt   nameR   t   _current_framest   itemst   appendR0   t	   tracebackt   extract_stackt   stript   join(   t   sigt   framet   tht   id2namet   codet	   thread_idt   stackRW   t   linenoR]   t   line(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   debug~   s    1#""c            s   ˆ  |  | ƒ t  j d ƒ d  S(   Ni   (   R   R   (   Re   Rf   (   Rn   (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   debug_and_exit‰   s    (   t   signalt   SIGABRT(   Ro   (    (   Rn   sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   install_signal_handlers}   s    	c         C   s|   t  j d ƒ } | d } i i d d 6d |  d 6d d 6d	 d
 6t d 6g d 6} t | d ƒ  } t j | | ƒ Wd  QXd  S(   NR   s   /response/properties.jsont   mainR]   s   unix:t   addresst   sessiont   protocoli   t   concurrencyt   accept_http_requestst   socketsR   (   R   R   R   R   R   t   dump(   t   socket_filenameR!   R   t   docR   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   advertise_sockets“   s    
c          C   sB   t  j d ƒ }  |  d } t | d ƒ  } | j d ƒ Wd  QXd  S(   NR   s   /response/finishR   t   1(   R   R   R   R   (   R!   R   R   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   advertise_readiness¥   s    
c         C   s"   |  d j  |  d |  d ƒ ‚ d  S(   Ni    i   i   (   t   with_traceback(   t   exc_info(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   reraise_exception­   s    c         C   s   |  j  d ƒ S(   Ns   latin-1(   t   decode(   t   b(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   bytes_to_str°   s    c         C   s$   t  |  t ƒ r |  S|  j d ƒ Sd  S(   Ns   latin-1(   t
   isinstancet   bytest   encode(   RU   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   str_to_bytes³   s    c         B   s   d d  Ud  S(   Ns+   raise exc_info[0], exc_info[1], exc_info[2](    (   R   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR‚   ¹   s    c         C   s   |  S(   N(    (   R„   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR…   ¼   s    c         C   s   |  S(   N(    (   RU   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR‰   ¿   s    t   RequestHandlerc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z e e d ƒ rE d „  Z n	 d „  Z d „  Z	 d „  Z
 RS(	   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   t   servert
   owner_pipet   app(   t   selft   server_socketRŒ   R   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   __init__Ã   s    		c         C   ss  t  } yUxN| sY|  j ƒ  \ } } | s4 t } Pn  t  } zÙ yW |  j | ƒ \ } } | r“ | d d k r{ |  j | ƒ q“ |  j | | | ƒ } n  Wn{ t k
 r­ t } ne t k
 rô } t | d t  ƒ sá | j	 t	 j
 k rt j d ƒ qn t k
 rt j d ƒ n XWd  | sUy | j t j ƒ Wn n Xy | j ƒ  WqUqUXn  Xq WWn t k
 rnn Xd  S(   Nt   REQUEST_METHODt   pingt	   passengers)   WSGI application raised an I/O exception!s%   WSGI application raised an exception!(   t   Falset   accept_connectionR   t   parse_requestt   process_pingt   process_requestt   KeyboardInterruptR	   t   getattrRE   t   EPIPER
   t	   exceptiont	   Exceptiont   shutdownRC   t   SHUT_WRt   close(   RŽ   t   donet   clientRt   t   socket_hijackedt   envt   input_streamR   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt	   main_loopÈ   sB    		%c         C   sU   t  j  |  j |  j j ƒ  g g  g  ƒ d } |  j j ƒ  | k rM |  j j ƒ  Sd Sd  S(   Ni    (   NN(   t   selectRŒ   R‹   t   filenot   acceptt   None(   RŽ   t   result(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR•   ï   s    +c         C   s:  d } xO t  | ƒ d k  rW | j d t  | ƒ ƒ } t  | ƒ d k rJ d S| | 7} q	 Wt j d | ƒ d } d } xO t  | ƒ | k  rÅ | j | t  | ƒ ƒ } t  | ƒ d k r¸ d	 S| | 7} qw W| j d ƒ } | j ƒ  i  } d } xB | t  | ƒ k  r/t | | d ƒ | t | | ƒ <| d 7} qî W| | f S(
   NRX   i   i    s   >Is    i   i   (   NN(   NN(   t   lent   recvRª   RP   RQ   t   splitt   popR…   (   RŽ   R¢   t   buft   tmpt   header_sizet   headersR¤   RH   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR–   ö   s*    
"t   _fileobjectc         C   s   t  j | d d ƒ S(   Nt   rbi   (   RC   R´   (   RŽ   t   sock(    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   wrap_input_socket  s    c         C   s   t  j  j | d d ƒ S(   NRµ   i   (   RC   t   makefile(   RŽ   R¶   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR·     s    c            sc  |  j  | ƒ ˆ  d <t j ˆ  d <d ˆ  d <t ˆ  d <t ˆ  d <t ˆ  d <ˆ  j d	 d
 ƒ d k rm d ˆ  d <n
 d ˆ  d <g  ‰ g  ‰ ˆ  d d k ‰ ‡ ‡ ‡ ‡ f d †  ‰ d  ‡ ‡ ‡ f d † } t ‡  ‡ f d † } | ˆ  d <|  j ˆ  | ƒ } d ˆ  k rt Sz; x! | D] } | rˆ | ƒ qqWˆ s>ˆ d ƒ n  Wd  t | d ƒ r^| j	 ƒ  n  Xt S(   Ns
   wsgi.inputs   wsgi.errorsi   i    s   wsgi.versions   wsgi.multithreads   wsgi.multiprocesss   wsgi.run_oncet   HTTPSt   offt   onR~   t   truet   yest   httpss   wsgi.url_schemet   httpR‘   t   HEADc            sÑ   y¡ ˆ s t  d ƒ ‚ nl ˆ  s„ ˆ \ } } ˆ  (ˆ j t d | | f ƒ ƒ x% | D] } ˆ j t d | ƒ ƒ qS Wˆ j d ƒ n  ˆ s  ˆ j t |  ƒ ƒ n  Wn) t k
 rÌ } t | d t ƒ | ‚ n Xd  S(   Ns   write() before start_response()s,   HTTP/1.1 %s
Status: %s
Connection: close
s   %s: %s
s   
R“   (   t   AssertionErrort   sendallR‰   R	   t   setattrR   (   t   datat   statust   response_headerst   headerR   (   t   headers_sentt   headers_sett   is_headt   output_stream(    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR   .  s     	c            sP   | r* z ˆ  r t  | ƒ n  Wd  d  } Xn ˆ r? t d ƒ ‚ n  |  | g ˆ (ˆ S(   Ns   Headers already set!(   R‚   Rª   RÁ   (   RÅ   RÆ   R   (   RÈ   RÉ   R   (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   start_responseC  s    
c            s   |  r ˆ ˆ  d <ˆ Sd  S(   Ns   passenger.hijacked_socket(    (   t   do_it(   R¤   RË   (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   hijackU  s    
s   passenger.hijacks   passenger.hijacked_socketRX   R    (   i   i    (   R»   R~   R¼   R½   (
   R·   R   R   R”   R   R0   Rª   R   R   R    (   RŽ   R¤   R¥   RË   RÌ   RÎ   R«   RÄ   (    (   R¤   RÈ   RÉ   RÊ   RË   R   sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR˜     s8    





c         C   s   | j  d ƒ d  S(   Nt   pong(   RÂ   (   RŽ   RË   (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyR—   m  s    (   t   __name__t
   __module__R   R¦   R•   R–   R   RC   R·   R˜   R—   (    (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyRŠ   Â   s   		'				Vt   __main__t   SUBPROCESS_EXEC_WRAPPERt   STEP_PERFORMEDt   SUBPROCESS_WRAPPER_PREPARATIONt   STEP_IN_PROGRESSt   STEP_ERROREDt   SUBPROCESS_APP_LOAD_OR_EXECt   SUBPROCESS_LISTEN(    (.   R   R   RZ   Rp   Ra   RC   R§   RP   R
   RE   R@   R   R%   R1   t	   importlibR    R6   R    R   R   R   R"   R)   R+   R:   RI   RB   Rr   R}   R   R‚   R…   R‰   RŠ   RÐ   R   R9   t   tupleR{   R   t   stdint   applicationt   handlerR¦   t   removet   OSError(    (    (    sS   /opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/helper-scripts/wsgi-loader.pyt   <module>   sv   x$&																				¯	
