grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]ÄŒã@sIdZddlmZmZmZddlmZddlZddlZddl Z ddl m Z ddl mZddlmZddlZddlZddlZdd d d d d ddddddddgZdadadd„Zdd„Zdd„Zdd„Zeadadejdddd „Zddd d „Zddd!d „Z d"d „Z!d#d$„Z"d%d„Z#Gd&d„dƒZ$Gd'd „d ƒZ%ejd(d)„Z&ddddd*d„Z'ejd+d„Z(d,d„Z)d-d„Z*d.d„Z+d/d„Z,dd0d„Z-d1d2„Z.e/d3krEe&ƒdS)4z2.6é)ÚStringIOÚBytesIOÚ TextIOWrapper)ÚMappingN)Ú FeedParser)ÚMessage)ÚwarnÚMiniFieldStorageÚ FieldStorageÚparseÚparse_qsÚ parse_qslÚparse_multipartÚ parse_headerÚprint_exceptionÚ print_environÚ print_formÚprint_directoryÚprint_argumentsÚprint_environ_usageÚescapeÚc GsXtr5t r5yttdƒaWntk r4YnXtsDtantat|ŒdS)NÚa)ÚlogfileÚlogfpÚopenÚOSErrorÚnologÚlogÚdolog)Úallargs©r!ú(/opt/alt/python35/lib64/python3.5/cgi.pyÚinitlog:s   r#cGstj||dƒdS)NÚ )rÚwrite)ÚfmtÚargsr!r!r"r]srcGsdS)Nr!)r r!r!r"rasrcCs&datrtjƒdatadS)Nr)rrÚcloser#rr!r!r!r"Úcloseloges  r)c CsÔ|dkrtj}t|dƒr0|j}nd}t|tƒrN|j}d|krdd|d<|ddkrlt|dƒ\}}|dkr£t||ƒS|dkrøt |d ƒ}t rÝ|t krÝt d ƒ‚|j |ƒj |ƒ}nd }d |kr+|r|d }||d }n4tjdd…r_|rN|d }|tjd}||d r r )rFrArBr!r!r"r ½s cCs&tdtdƒtjj|||ƒS)Nz?cgi.parse_qsl is deprecated, use urllib.parse.parse_qsl insteadrG)rrHr>r r )rFrArBr!r!r"r Ãs c Cs“ddl}d}d|kr(|d}t|ƒsGtd|fƒ‚d|}d|d}i}d}x!||krŽd}d} |r|jj|ƒ} | jdƒ} | rØyt| ƒ}Wntk r×YnX|dkrtr|tkrtdƒ‚|j|ƒ} nd} g} xX|j ƒ} | s<|}P| j dƒrj| j ƒ}|||fkrjP| j | ƒq#W| dkrŠqn|dkr| r| d} | dd…d krÏ| dd…} n&| dd…d krõ| dd…} | | dgs z)FieldStorage.getvalue..)r6rxrp)rqr\Údefaultrpr!r!r"Úgetvaluebs    zFieldStorage.getvaluecCsB||kr:||}t|tƒr0|djS|jSn|SdS)Nr)r6rxrp)rqr\r¢rpr!r!r"Úgetfirstms     zFieldStorage.getfirstcCsK||krC||}t|tƒr6dd„|DƒS|jgSngSdS)NcSsg|]}|j‘qSr!)rp)rŸr r!r!r"r¡}s z(FieldStorage.getlist..)r6rxrp)rqr\rpr!r!r"Úgetlistxs    zFieldStorage.getlistcCs;|jdkrtdƒ‚ttdd„|jDƒƒƒS)Nz not indexablecss|]}|jVqdS)N)rK)rŸr�r!r!r"ú ‡sz$FieldStorage.keys..)rxr…Úset)rqr!r!r"r—ƒs zFieldStorage.keyscs;|jdkrtdƒ‚t‡fdd†|jDƒƒS)Nz not indexablec3s|]}|jˆkVqdS)N)rK)rŸr�)r\r!r"r¦�sz,FieldStorage.__contains__..)rxr…Úany)rqr\r!)r\r"Ú __contains__‰s zFieldStorage.__contains__cCst|jƒƒS)N)rbr—)rqr!r!r"Ú__len__�szFieldStorage.__len__cCs(|jdkrtdƒ‚t|jƒS)NzCannot be converted to bool.)rxr…Úbool)rqr!r!r"Ú__bool__“s zFieldStorage.__bool__cCsï|jj|jƒ}t|tƒsFtd|jt|ƒjfƒ‚|j|j |j ƒ}|j rx|d|j 7}g|_ t jj||j|jd|j d|j ƒ}x-|D]%\}}|j jt||ƒƒq¸W|jƒdS)Nz%s should return bytes, got %sr1r*r†)r?r;rŒr6rWr:ryrtr<r*r†r�rxr>r r rArBrTr Ú skip_lines)rqrFÚqueryr\rpr!r!r"rŽ˜s   zFieldStorage.read_urlencodedc Cs~|j}t|ƒs(td|fƒ‚g|_|jr�tjj|j|j|j d|j d|j ƒ}x-|D]%\}}|jj t ||ƒƒqtW|jp¬|j}|jjƒ} t| tƒsïtd|jt| ƒjfƒ‚|jt| ƒ7_xG| jƒd|jkrM| rM|jjƒ} |jt| ƒ7_qWxtƒ} d} x*|jjƒ} | | 7} | jƒscPqcW| s”P|jt| ƒ7_| j| j|j |j ƒƒ| jƒ} d| krç| d=||j| |||||j|j|j |j ƒ }|j|j7_|jj |ƒ|jsk|j|jkofdknrQPqQW|j ƒdS) Nz&Invalid boundary in multipart form: %rr*r†z%s should return bytes, got %ss--rIzcontent-lengthr)!r‹rNr:rxr�r>r r rArBr*r†rTr ÚFieldStorageClassÚ __class__r?rQr6rWryrtrˆrbrcrZfeedr<r(r‰r�rŒr­)rqr@rArBZibr®r\rpÚklassZ first_lineÚparserZhdr_textrXrYÚpartr!r!r"r�«sV          +zFieldStorage.read_multicCsD|jdkr&|jƒ|jƒn |jƒ|jjdƒdS)Nr)rŒÚ read_binaryr­Ú read_linesrzr™)rqr!r!r"r�ás    zFieldStorage.read_singleéicCsÏ|jƒ|_|j}|dkrËx¤|dkrÊ|jjt||jƒƒ}t|tƒs‚t d|jt |ƒj fƒ‚|j t |ƒ7_ |s§d|_P|jj|ƒ|t |ƒ}q'WdS)Nrz%s should return bytes, got %sr2rL)Ú make_filerzrŒr?r;ÚminÚbufsizer6rWr:ryrtrˆrbr�r%)rqZtodorXr!r!r"r´ìs   zFieldStorage.read_binarycCsV|jrtƒ|_|_ntƒ|_|_|jrH|jƒn |jƒdS)N)rŠrrzÚ_FieldStorage__filerr‡Úread_lines_to_outerboundaryÚread_lines_to_eof)rqr!r!r"rµýs    zFieldStorage.read_linescCs§|jdk re|jjƒt|ƒdkre|jƒ|_|jjƒ}|jj|ƒd|_|jr�|jj|ƒn"|jj|j|j |j ƒƒdS)Niè) rºÚtellrbr·rzr£r%rŠr<r*r†)rqr[rXr!r!r"Z__writes  zFieldStorage.__writecCsOxH|jjdƒ}|jt|ƒ7_|s:d|_P|j|ƒqWdS)Nr2éirL)r?rQrˆrbr�Ú_FieldStorage__write)rqr[r!r!r"r¼s zFieldStorage.read_lines_to_eofc Cs˜d|j}|d}d}d}d}xh||jkr<P|jjd ƒ}|jt|ƒ7_|t|ƒ7}|sƒd |_P|dkrŸ||}d}|jdƒrã|rã|jƒ}||krÍP||krãd|_P|}|j dƒrd}|dd…}d}nh|j d ƒrEd }|dd…}d}n:|j dƒrsd}|dd…}d }n d}d }|j ||ƒq,WdS)Ns--rITrr2r¾s s rGs FirLrMrLrL) r‡r‰r?rQrˆrbr�rRrSÚendswithr¿) rqÚ next_boundaryÚ last_boundaryÚdelimÚlast_line_lfendÚ_readr[Ú strippedlineZodelimr!r!r"r»!sP            z(FieldStorage.read_lines_to_outerboundarycCsÉ|j s|jrdSd|j}|d}d}xŽ|jjdƒ}|jt|ƒ7_|snd|_P|jdƒr²|r²|jƒ}||krœP||kr²d|_P|jdƒ}q7WdS)Ns--Tr2r¾s irL)r‡r�r?rQrˆrbrÀrc)rqrÁrÂrÄr[rÆr!r!r"r­Rs&       zFieldStorage.skip_linescCs6|jrtjdƒStjdd|jddƒSdS)Nzwb+zw+r*Únewliner$)rŠÚtempfileÚ TemporaryFiler*)rqr!r!r"r·hs   zFieldStorage.make_filei ) rtrurvÚosr@rrr“r”r•rsr˜ršržr£r¤r¥r—r©rªr¬rŽr¯r�r�r¹r´rµr¿r¼r»r­r·r!r!r!r"r js: +  œ             6    1 cCsætdƒtƒtjt_ybtƒ}tƒtƒt|ƒt|ƒt ƒdd„}|dd„}tdƒ|ƒWnt ƒYnXtdƒda y/tƒ}tƒtƒt|ƒt|ƒWnt ƒYnXdS) NzContent-type: text/htmlcSstdƒdS)Nz,testing print_exception() -- italics?)Úexecr!r!r!r"rf›sztest..fcSs |ƒdS)Nr!)rfr!r!r"Úg�sztest..gz9

What follows is a test, not an actual exception:

z*

Second try with a small maxlen...

é2) Úprintr3ÚstdoutÚstderrr rrrrrrr9)r@ÚformrfrÌr!r!r"ÚtestŠs4            rÒcCs¤|dkr!tjƒ\}}}ddl}tƒtdƒ|j||ƒ|j||ƒ}tdtjdj|dd…ƒƒtj|dƒfƒ~dS)Nrz+

Traceback (most recent call last):

z
%s%s
rr2rLrL) r3Úexc_infoÚ tracebackrÎÚ format_tbÚformat_exception_onlyÚhtmlrrU)ryrpÚtbr‰rÔrxr!r!r"r±s   cCs|t|jƒƒ}tƒtdƒtdƒx7|D]/}tdtj|ƒdtj||ƒƒq4WtdƒtƒdS)Nz

Shell Environment:

z
z
z
z
)Úsortedr—rÎr×r)r@r—r\r!r!r"r¿s   - cCsÒt|jƒƒ}tƒtdƒ|s3tdƒtdƒx}|D]u}tdtj|ƒdddƒ||}tdtjtt|ƒƒƒd ƒtd tjt|ƒƒƒqDWtd ƒtƒdS) Nz

Form Contents:

z

No form fields.z

z
ú:reú zzz
z
)rÙr—rÎr×rÚreprry)rÑr—r\rpr!r!r"rÊs    ! '! cCsƒtƒtdƒytjƒ}WnAtk rd}z!tdtjt|ƒƒƒWYdd}~XnXttj|ƒƒtƒdS)Nz#

Current Working Directory:

zOSError:)rÎrÊÚgetcwdrr×rÚstr)ÚpwdÚmsgr!r!r"rÚs /cCs0tƒtdƒtƒttjƒtƒdS)Nz

Command Line Arguments:

)rÎr3r=r!r!r!r"ræs   cCstdƒdS)NaØ

These environment variables could have been set:

  • AUTH_TYPE
  • CONTENT_LENGTH
  • CONTENT_TYPE
  • DATE_GMT
  • DATE_LOCAL
  • DOCUMENT_NAME
  • DOCUMENT_ROOT
  • DOCUMENT_URI
  • GATEWAY_INTERFACE
  • LAST_MODIFIED
  • PATH
  • PATH_INFO
  • PATH_TRANSLATED
  • QUERY_STRING
  • REMOTE_ADDR
  • REMOTE_HOST
  • REMOTE_IDENT
  • REMOTE_USER
  • REQUEST_METHOD
  • SCRIPT_NAME
  • SERVER_NAME
  • SERVER_PORT
  • SERVER_PROTOCOL
  • SERVER_ROOT
  • SERVER_SOFTWARE
In addition, HTTP headers sent by the server may be passed in the environment as well. Here are some common variable names:
  • HTTP_ACCEPT
  • HTTP_CONNECTION
  • HTTP_HOST
  • HTTP_PRAGMA
  • HTTP_REFERER
  • HTTP_USER_AGENT
)rÎr!r!r!r"rís'cCsetdtddƒ|jddƒ}|jddƒ}|jdd ƒ}|ra|jd d ƒ}|S) Nz1cgi.escape is deprecated, use html.escape insteadÚ stacklevelrGr1z&úz>r_z")rrHrl)rdÚquoter!r!r"rs cCs:ddl}t|tƒr$d}nd}|j||ƒS)Nrs^[ -~]{0,200}[!-~]$z^[ -~]{0,200}[!-~]$)Úrer6rWÚmatch)rdråZ _vb_patternr!r!r"rN(s   rNÚ__main__)0Ú __version__ÚiorrrÚ collectionsrr3rÊZ urllib.parser>Z email.parserrZ email.messagerÚwarningsrr×rƒrÈÚ__all__rrr#rrr)rr9r@r r r rrgrr r rÒrrrrrrrrNrtr!r!r!r"ÚsZ           #   E d ÿÿ"'   /