grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|j?…ã@s^ dZddlmZmZmZddlmZddlZddlZddl Z ddl m Z ddl mZddlZddlZddlZddlZgd¢Zdadad d „Zd d „Zd d„Zdd„Zeadadejdddfdd„Zd1dd„Zdd„Zdd„Z Gdd„dƒZ!Gdd„dƒZ"ejfd d!„Z#d2d"d#„Z$ejfd$d%„Z%d&d'„Z&d(d)„Z'd*d+„Z(d,d-„Z)d.d/„Z*e+d0kr­e#ƒdSdS)3z2.6é)ÚStringIOÚBytesIOÚ TextIOWrapper)ÚMappingN)Ú FeedParser)ÚMessage) ÚMiniFieldStorageÚ FieldStorageÚparseÚparse_multipartÚ parse_headerÚtestÚprint_exceptionÚ print_environÚ print_formÚprint_directoryÚprint_argumentsÚprint_environ_usageÚcGsZ tjdtdd�tr ts z ttddd�aWn tyYnwts%tant at|ŽdS)Nz7cgi.log() is deprecated as of 3.10. Use logging insteadé)Ú stacklevelÚaÚlocale)Úencoding) ÚwarningsÚwarnÚDeprecationWarningÚlogfileÚlogfpÚopenÚOSErrorÚnologÚlogÚdolog©Zallargs©r%ú*/opt/alt/python310/lib64/python3.10/cgi.pyÚinitlog9sÿ ÿ r'cGs t ||d¡dS)NÚ )rÚwrite)ZfmtÚargsr%r%r&r#^sr#cGs dS©Nr%r$r%r%r&r!bsr!cCs datr t ¡datadS)Nr)rrÚcloser'r"r%r%r%r&Úcloselogfs r-ú&c CsX |durtj}t|dƒr|j}nd}t|tƒr|j}d|vr#d|d<|ddkr…t|dƒ\}}|dkrØsz#parse_multipart..)rBÚformatrZset_typeÚKeyErrorr )rErJrrQr3rNrIrPr%rUr&r ¿s   ÿ ÿr ccsÒ�|dd…dkrg|dd…}| d¡}|dkrD| dd|¡| dd|¡drD| d|d¡}|dkrD| dd|¡| dd|¡ds(|dkrLt|ƒ}|d|…}| ¡V||d…}|dd…dks dSdS)Nr8ú;rú"ú\"r)ÚfindÚcountÚlenÚstrip)ÚsÚendÚfr%r%r&Ú _parseparamÚs€  ((ÿ   ÷rccCsº td|ƒ}| ¡}i}|D]I}| d¡}|dkrX|d|… ¡ ¡}||dd… ¡}t|ƒdkrT|d|dkrBdkrTnn|dd…}| dd ¡ d d¡}|||<q||fS) NrYú=rr8réÿÿÿÿrZz\\ú\r[)rcÚ__next__r\r_Úlowerr^rM)ÚlineÚpartsÚkeyrJÚpÚiÚnameÚvaluer%r%r&r æs  , €r c@s>eZdZ dZdZdZdZiZdZiZ iZ dd„Z dd„Z dS)rNcCs ||_||_dSr+©rnro©Úselfrnror%r%r&Ú__init__ s zMiniFieldStorage.__init__cCs d|j|jfS)NzMiniFieldStorage(%r, %r)rp©rrr%r%r&Ú__repr__szMiniFieldStorage.__repr__) Ú__name__Ú __module__Ú __qualname__ÚfilenameÚlistÚtypeÚfileÚ type_optionsÚ dispositionÚdisposition_optionsrPrsrur%r%r%r&rþs rc @süeZdZ dddejdddddddf dd„Zd d „Zd d „Zd d„Zdd„Z dd„Z dd„Z dd„Z d:dd„Z d:dd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„ZdZd'd(„Zd)d*„Zd+Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„ZdS);r NórrLrMr.c CsL d} ||_||_| |_| |_d|vr|d ¡} d|_| dks$| dkrPd|vr-|d} ntjdd…r:tjd} nd} |  t   ¡d¡} t | ƒ}|durPdd i}|dur|i}| d kr^d |d<d |vrh|d |d<d|vrq|d|_d |vr{|d |d <n t |t tfƒs‡tdƒ‚||_|dur”tjj|_nt |tƒrž|j|_nt|dƒr¨t|dƒs¬tdƒ‚||_||_| |_t |tƒsÃtdt|ƒjƒ‚||_d|_||_di}}d|jvrßt|jdƒ\}}||_||_ d|_!d|vrñ|d|_!d|_"d|vrý|d|_"|j"du|_#d|jv�rt|jdƒ\}}n|j�s| d k�r"di}}nd i}}||_||_$d|v�r>|d |j|j¡|_%nd|_%d}d |jv�riz t&|jd ƒ}Wn t'�y\Ynwt(�ri|t(k�rit'dƒ‚||_)|jdu�rz|dk�rz||_d|_*|_+d|_,|d k�rŽ| -¡dS|dd…dk�r | .|||¡dS| /¡dS)Nr0r/ZHEADr7r8rÚsurrogateescapez content-typer4r1r2r5úcontent-lengthz?headers must be mapping or an instance of email.message.MessagerAÚreadlinezfp must be file pointerz#outerboundary must be bytes, not %srzcontent-dispositionrnryz text/plainrNr€rer6é z multipart/)0rGrHÚmax_num_fieldsr3ÚupperÚ qs_on_postr9rCÚencoderZgetpreferredencodingrr<rrÚ TypeErrorrPr:r=rErr;rrQÚbytesr{rvÚ outerboundaryÚ bytes_readÚlimitr r~rrnryÚ _binary_filer}Ú innerboundaryr>r@r?Úlengthrzr|ÚdoneÚread_urlencodedÚ read_multiÚ read_single)rrrErPr‹rFrGrHr�rrQr…r3ÚmethodrKZcdisprJrIZclenr%r%r&rsBs¼+   ÿ   €    ÿ          ÿ ÿ    zFieldStorage.__init__cCs&z|j ¡WdStyYdSwr+)r|r,ÚAttributeErrorrtr%r%r&Ú__del__çs  ÿzFieldStorage.__del__cCs|Sr+r%rtr%r%r&Ú __enter__íszFieldStorage.__enter__cGs|j ¡dSr+)r|r,)rrr*r%r%r&Ú__exit__ðszFieldStorage.__exit__cCs d|j|j|jfS)NzFieldStorage(%r, %r, %r))rnryrortr%r%r&ruós ÿzFieldStorage.__repr__cCs t| ¡ƒSr+)ÚiterÚkeysrtr%r%r&Ú__iter__øó zFieldStorage.__iter__cCsX|dkrt|ƒ‚|jr|j d¡|j ¡}|j d¡|S|jdur(|j}|Sd}|S)Nror)r–r|ÚseekrArzrqr%r%r&Ú __getattr__ûs    üÿzFieldStorage.__getattr__cCs\ |jdur tdƒ‚g}|jD] }|j|kr| |¡q|s"t|ƒ‚t|ƒdkr,|dS|S)Nú not indexabler8r)rzr‰rnÚappendrXr^)rrrkÚfoundÚitemr%r%r&Ú __getitem__s  € zFieldStorage.__getitem__cCs4 ||vr||}t|tƒrdd„|DƒS|jS|S)NcSóg|]}|j‘qSr%©ro©rSÚxr%r%r&Ú óz)FieldStorage.getvalue..©r<rzro©rrrkÚdefaultror%r%r&Úgetvalues zFieldStorage.getvaluecCs0 ||vr||}t|tƒr|djS|jS|S©Nrr«r¬r%r%r&Úgetfirst!s  zFieldStorage.getfirstcCs6 ||vr||}t|tƒrdd„|DƒS|jgSgS)NcSr¥r%r¦r§r%r%r&r©1rªz(FieldStorage.getlist..r«)rrrkror%r%r&rR,s zFieldStorage.getlistcCs, |jdur tdƒ‚ttdd„|jDƒƒƒS)Nr css�|]}|jVqdSr+©rn©rSr£r%r%r&Ú ;s€z$FieldStorage.keys..)rzr‰Úsetrtr%r%r&r›7ó zFieldStorage.keyscs, |jdur tdƒ‚t‡fdd„|jDƒƒS)Nr c3s�|]}|jˆkVqdSr+r±r²©rkr%r&r³As€z,FieldStorage.__contains__..)rzr‰Úany)rrrkr%r¶r&Ú __contains__=rµzFieldStorage.__contains__cCs t| ¡ƒSr+)r^r›rtr%r%r&Ú__len__Có zFieldStorage.__len__cCs|jdur tdƒ‚t|jƒS)NzCannot be converted to bool.)rzr‰Úboolrtr%r%r&Ú__bool__Gs  zFieldStorage.__bool__c Cs˜ |j |j¡}t|tƒstd|jt|ƒjfƒ‚| |j |j ¡}|j r+|d|j 7}t j j||j|j|j |j |j|jd�}dd„|Dƒ|_| ¡dS)Nú%s should return bytes, got %sr.©rrQr…r3cSsg|] \}}t||ƒ‘qSr%©r©rSrkror%r%r&r©Ysz0FieldStorage.read_urlencoded..)rErAr�r<rŠr@r{rvrBrrQr‡rDr Ú parse_qslrGrHr…r3rzÚ skip_lines)rrrKÚqueryr%r%r&r’Ls  ÿ ý zFieldStorage.read_urlencodedc CsL |j}t|ƒstd|fƒ‚g|_|jr4tjj|j|j|j |j |j |j |j d�}|j dd„|Dƒ¡|jp9|j}|j ¡}t|tƒsPtd|jt|ƒjfƒ‚|jt|ƒ7_| ¡d|jkr}|r}|j ¡}|jt|ƒ7_| ¡d|jkr}|sd|j }|dur‹|t|jƒ8} tƒ} d} |j ¡} | | 7} |  ¡s nq’| s¤n||jt| ƒ7_|  |  |j |j ¡¡|  ¡} d | vrÃ| d =|jdurÊdn|j|j} ||j| ||||| |j |j ||j ƒ }|durü|d 8}|jrô|t|jƒ8}|d krütd ƒ‚|j|j7_|j |¡|j �s|j|j!k�rd k�rnnnqŒ| "¡dS) Nz&Invalid boundary in multipart form: %rr¾css�|] \}}t||ƒVqdSr+r¿rÀr%r%r&r³is€z*FieldStorage.read_multi..r½ó--Tr€r‚r8rzMax number of fields exceeded)#r�Úvalid_boundaryr@rzr‡rDr rÁrGrHrrQr…r3ÚextendÚFieldStorageClassÚ __class__rErƒr<rŠr{rvrŒr^r_rZfeedrBr,r�r¡r‘r�rÂ)rrrFrGrHZibrÃÚklassZ first_liner…ÚparserZhdr_textÚdatarPr�Úpartr%r%r&r“^s‚ ý   ÿÿ ýÿ ü ÿþ (Ý $zFieldStorage.read_multicCs6 |jdkr| ¡| ¡n| ¡|j d¡dSr¯)r�Ú read_binaryrÂÚ read_linesr|ržrtr%r%r&r”£s   zFieldStorage.read_singlei cCs¤ | ¡|_|j}|dkrN|dkrP|j t||jƒ¡}t|tƒs,t d|jt |ƒj fƒ‚|j t |ƒ7_ |sitalics?)Úexecr%r%r%r&rb^r�ztest..fcSs |ƒdSr+r%)rbr%r%r&Úg`s ztest..gz9

What follows is a test, not an actual exception:

z*

Second try with a small maxlen...

é2) Úprintr9ÚstdoutÚstderrr rrrrrrr?)rFÚformrbrær%r%r&r Ms6   r c Csx|dur t ¡\}}}ddl}tƒtdƒ| ||¡| ||¡}tdt d |dd…¡¡t |d¡fƒ~dS)Nrz+

Traceback (most recent call last):

z
%s%s
rre) r9Úexc_infoÚ tracebackrèÚ format_tbÚformat_exception_onlyÚhtmlÚescapeÚjoin)r{roÚtbr�rírzr%r%r&rts  ÿ þrc Cs^ t| ¡ƒ}tƒtdƒtdƒ|D]}tdt |¡dt ||¡ƒqtdƒtƒdS)Nz

Shell Environment:

ú
ú
ú
ú
)Úsortedr›rèrðrñ)rFr›rkr%r%r&r‚s   rcCs¢ t| ¡ƒ}tƒtdƒ|stdƒtdƒ|D]-}tdt |¡ddd�||}tdt tt|ƒƒ¡d ƒtd t t|ƒ¡ƒqtd ƒtƒdS) Nz

Form Contents:

z

No form fields.rôrõú:ú )razzrör÷)rør›rèrðrñÚreprr{)rër›rkror%r%r&r�s  rc Csn tƒtdƒzt ¡}Wnty*}ztdt t|ƒ¡ƒWYd}~n d}~wwtt |¡ƒtƒdS)Nz#

Current Working Directory:

zOSError:)rèräÚgetcwdr rðrñÚstr)ÚpwdÚmsgr%r%r&r�s  €ÿ rcCs(tƒtdƒtƒttjƒtƒdS)Nz

Command Line Arguments:

)rèr9rCr%r%r%r&r©s   rcCs tdƒ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°rºrcCs(ddl}t|tƒr d}nd}| ||¡S)Nrs^[ -~]{0,200}[!-~]$z^[ -~]{0,200}[!-~]$)Úrer<rŠÚmatch)r`rZ _vb_patternr%r%r&rÅßs   rÅÚ__main__)rLrMr.)NNNN),Ú __version__ÚiorrrZcollections.abcrr9räZ urllib.parserDZ email.parserrZ email.messagerrðrrãrÚ__all__rrr'r#r!r-r"r?rFr r rcr rr r rrrrrrrÅrvr%r%r%r&ÚsZ    %  ÿ F : '  / ÿ