£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
a
    XC?h                     @   s^   d dl Z g dZG dd dZdd Zdd Zdd
dZdd Zdd Zh djZ	dd Z
dS )    N)FileWrapperguess_schemeapplication_urirequest_urishift_path_infosetup_testing_defaultsc                   @   s.   e Zd ZdddZdd Zdd Zdd	 Zd
S )r       c                 C   s"   || _ || _t|dr|j| _d S )Nclose)filelikeblksizehasattrr	   )selfr
   r    r   1/opt/alt/python39/lib64/python3.9/wsgiref/util.py__init__   s    
zFileWrapper.__init__c                 C   s6   dd l }|jdtdd | j| j}|r.|S td S )Nr   zXFileWrapper's __getitem__ method ignores 'key' parameter. Use iterator protocol instead.   )
stacklevel)warningswarnDeprecationWarningr
   readr   
IndexError)r   keyr   datar   r   r   __getitem__   s    zFileWrapper.__getitem__c                 C   s   | S Nr   )r   r   r   r   __iter__!   s    zFileWrapper.__iter__c                 C   s   | j | j}|r|S td S r   )r
   r   r   StopIteration)r   r   r   r   r   __next__$   s    zFileWrapper.__next__N)r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r      s   
r   c                 C   s   |  ddv rdS dS d S )NZHTTPS)ZyesZon1httpshttp)get)environr   r   r   r   *   s    r   c                 C   s   | d d }ddl m} | dr0|| d 7 }nR|| d 7 }| d dkrf| d d	kr|d
| d  7 }n| d dkr|d
| d  7 }||| dpddd7 }|S )Nwsgi.url_schemez://r   quote	HTTP_HOSTSERVER_NAMEr#   SERVER_PORT443:80SCRIPT_NAME/latin1)encoding)urllib.parser)   r%   )r&   urlr)   r   r   r   r   2   s    
r   Tc                 C   sp   t | }ddlm} || ddddd}| dsF||d	d  7 }n||7 }|rl| d
rl|d| d
  7 }|S )Nr   r(   	PATH_INFO z/;=,r2   )Zsafer3   r0      ZQUERY_STRING?)r   r4   r)   r%   )r&   Zinclude_queryr5   r)   	path_infor   r   r   r   F   s    
r   c                 C   s   |  dd}|sd S |d}dd |dd D |dd< |d }|d= |  dd}t|d | }|dr~|d d }|s|ds|d7 }|| d< d|| d< |d	krd }|S )
Nr6   r7   r1   c                 S   s   g | ]}|r|d kr|qS ).r   ).0pr   r   r   
<listcomp>e       z#shift_path_info.<locals>.<listcomp>r8   r0   r;   )r%   split	posixpathnormpathendswithjoin)r&   r:   
path_partsnameZscript_namer   r   r   r   S   s$    

r   c                 C   s   |  dd |  dd |  d| d  |  dd d| vr\d	| vr\|  dd
 |  d	d |  dd |  dd |  dd |  dd ddlm}m} |  d|  |  d|  |  dt|  | d dkr|  dd n| d dkr|  dd d S )Nr+   z	127.0.0.1ZSERVER_PROTOCOLzHTTP/1.0r*   ZREQUEST_METHODZGETr0   r6   r7   r1   zwsgi.version)r8   r   zwsgi.run_oncer   zwsgi.multithreadzwsgi.multiprocess)StringIOBytesIOz
wsgi.inputzwsgi.errorsr'   r$   r,   r/   r#   r-   )
setdefaultiorH   rI   r   )r&   rH   rI   r   r   r   r   |   s&    r   >   Ztezproxy-authorizationZ
connectionZtrailersztransfer-encodingZupgradezproxy-authenticatez
keep-alivec                 C   s   t |  S r   )_hoppishlower)Zheader_namer   r   r   is_hop_by_hop   s    rN   )T)rB   __all__r   r   r   r   r   r   __contains__rL   rN   r   r   r   r   <module>   s   
)(
