o ?OgÛã@s` ddlZgd¢ZGdd„dƒZdd„Zdd„Zdd d „Zd d „Zdd„Zhd£jZ dd„Z dS)éN)Ú FileWrapperÚ guess_schemeÚapplication_uriÚ request_uriÚshift_path_infoÚsetup_testing_defaultsc@s0eZdZ d dd„Zdd„Zdd„Zdd „Zd S) ré cCs&||_||_t|dƒr|j|_dSdS)NÚclose)ÚfilelikeÚblksizeÚhasattrr )Úselfr r ©rú3/opt/alt/python310/lib64/python3.10/wsgiref/util.pyÚ__init__s   ÿzFileWrapper.__init__cCs2ddl}|jdtdd|j |j¡}|r|St‚)NrzXFileWrapper's __getitem__ method ignores 'key' parameter. Use iterator protocol instead.é)Ú stacklevel)ÚwarningsÚwarnÚDeprecationWarningr Úreadr Ú IndexError)r ÚkeyrÚdatarrrÚ __getitem__süzFileWrapper.__getitem__cCs|S©Nr)r rrrÚ__iter__!szFileWrapper.__iter__cCs|j |j¡}|r |St‚r)r rr Ú StopIteration)r rrrrÚ__next__$szFileWrapper.__next__N)r)Ú__name__Ú __module__Ú __qualname__rrrrrrrrr s   rcCs | d¡dvr dSdS)NZHTTPS)ZyesZonÚ1ÚhttpsÚhttp)Úget)Úenvironrrrr*srcCs¢ |dd}ddlm}| d¡r||d7}n)||d7}|ddkr4|dd kr3|d |d7}n|dd krB|d |d7}||| d ¡pJd dd7}|S)Núwsgi.url_schemez://r©ÚquoteÚ HTTP_HOSTÚ SERVER_NAMEr#Ú SERVER_PORTÚ443ú:Ú80Ú SCRIPT_NAMEú/Úlatin1)Úencoding)Ú urllib.parser)r%)r&Úurlr)rrrr2s      € rTcCsr t|ƒ}ddlm}|| dd¡ddd}| d¡s$||d d…7}n||7}|r7| d ¡r7|d |d 7}|S) Nrr(Ú PATH_INFOÚz/;=,r2)Zsafer3r0éZ QUERY_STRINGú?)rr4r)r%)r&Z include_queryr5r)Ú path_inforrrrFs  rcCs¼ | dd¡}|s dS| d¡}dd„|dd…Dƒ|dd…<|d}|d=| dd¡}t |d|¡}| d¡r@|dd…}|sK| d¡sK|d7}||d<d |¡|d<|d kr\d}|S) Nr6r7r1cSsg|] }|r|dkr|‘qS)Ú.r)Ú.0ÚprrrÚ esz#shift_path_info..r8éÿÿÿÿr0r;)r%ÚsplitÚ posixpathÚnormpathÚendswithÚjoin)r&r:Ú path_partsÚnameZ script_namerrrrSs&     rcCs | dd¡| dd¡| d|d¡| dd¡d|vr/d |vr/| dd ¡| d d ¡| d d ¡| dd¡| dd¡| dd¡ddlm}m}| d|ƒ¡| d|ƒ¡| dt|ƒ¡|ddkrs| dd¡dS|ddkr| dd¡dSdS)Nr+z 127.0.0.1ZSERVER_PROTOCOLzHTTP/1.0r*ZREQUEST_METHODZGETr0r6r7r1z wsgi.version)r8rz wsgi.run_oncerzwsgi.multithreadzwsgi.multiprocess)ÚStringIOÚBytesIOz wsgi.inputz wsgi.errorsr'r$r,r/r#r-)Ú setdefaultÚiorGrHr)r&rGrHrrrr|s*          ÿr>ztransfer-encodingzproxy-authorizationzproxy-authenticatez keep-aliveÚteZtrailersZupgradeZ connectioncCs t| ¡ƒSr)Ú_hoppishÚlower)Z header_namerrrÚ is_hop_by_hopªs rN)T) rAÚ__all__rrrrrrÚ __contains__rLrNrrrrÚs  )(ü