ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //usr/lib64/python3.8/html/__pycache__/parser.cpython-38.opt-1.pyc
U

e5d9Eã@sÀdZddlZddlZddlZddlmZdgZe d¡Ze d¡Z	e d¡Z
e d¡Ze d	¡Ze d
¡Z
e d¡Ze d¡Ze d
¡Ze dej¡Ze d
¡Ze d¡ZGdd„dejƒZdS)zA parser for HTML and XHTML.éN)ÚunescapeÚ
HTMLParserz[&<]z
&[a-zA-Z#]z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]z	<[a-zA-Z]ú>z--\s*>z+([a-zA-Z][^\t\n\r\f />\x00]*)(?:\s|/(?!>))*z]((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*aF
  <[a-zA-Z][^\t\n\r\f />\x00]*       # tag name
  (?:[\s/]*                          # optional whitespace before attribute name
    (?:(?<=['"\s/])[^\s/>][^\s/=>]*  # attribute name
      (?:\s*=+\s*                    # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |"[^"]*"                   # LIT-enclosed value
          |(?!['"])[^>\s]*           # bare value
         )
        \s*                          # possibly followed by a space
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                # trailing whitespace
z#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c@sèeZdZdZdZddœdd„Zdd„Zd	d
„Zdd„Zd
Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zd9dd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd
S):raEFind tags and other markup and call handler functions.

    Usage:
        p = HTMLParser()
        p.feed(data)
        ...
        p.close()

    Start tags are handled by calling self.handle_starttag() or
    self.handle_startendtag(); end tags by self.handle_endtag().  The
    data between tags is passed from the parser to the derived class
    by calling self.handle_data() with the data as argument (the data
    may be split up in arbitrary chunks).  If convert_charrefs is
    True the character references are converted automatically to the
    corresponding Unicode character (and self.handle_data() is no
    longer split in chunks), otherwise they are passed by calling
    self.handle_entityref() or self.handle_charref() with the string
    containing respectively the named or numeric reference as the
    argument.
    )ZscriptZstyleT)Úconvert_charrefscCs||_| ¡dS)zÆInitialize and reset this instance.

        If convert_charrefs is True (the default), all character references
        are automatically converted to the corresponding Unicode characters.
        N)rÚreset)Úselfr©rú#/usr/lib64/python3.8/html/parser.pyÚ__init__WszHTMLParser.__init__cCs(d|_d|_t|_d|_tj |¡dS)z1Reset this instance.  Loses all unprocessed data.Úz???N)ÚrawdataÚlasttagÚinteresting_normalÚinterestingÚ
cdata_elemÚ_markupbaseÚ
ParserBaser©rrrr	r`s
zHTMLParser.resetcCs|j||_| d¡dS)z‘Feed data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '\n').
        rN)rÚgoahead©rÚdatarrr	ÚfeedhszHTMLParser.feedcCs| d¡dS)zHandle any buffered data.éN)rrrrr	ÚcloseqszHTMLParser.closeNcCs|jS)z)Return full source of start tag: '<...>'.)Ú_HTMLParser__starttag_textrrrr	Úget_starttag_textwszHTMLParser.get_starttag_textcCs$| ¡|_t d|jtj¡|_dS)Nz</\s*%s\s*>)ÚlowerrÚreÚcompileÚIr)rÚelemrrr	Úset_cdata_mode{s
zHTMLParser.set_cdata_modecCst|_d|_dS©N)rrrrrrr	Úclear_cdata_modeszHTMLParser.clear_cdata_modecCsJ|j}d}t|ƒ}||krÚ|jrv|jsv| d|¡}|dkr | dt||dƒ¡}|dkrpt d¡ 	||¡spqÚ|}n*|j
 	||¡}|r’| ¡}n|jrœqÚ|}||krÞ|jrÌ|jsÌ| t
|||…ƒ¡n| |||…¡| ||¡}||kröqÚ|j}|d|ƒrJt ||¡r"| |¡}	n†|d|ƒr:| |¡}	nn|d|ƒrR| |¡}	nV|d|ƒrj| |¡}	n>|d	|ƒr‚| |¡}	n&|d
|krÚ| d¡|d
}	nqÚ|	dkr<|s¼qÚ| d|d
¡}	|	dkrú| d|d
¡}	|	dkr|d
}	n|	d
7}	|jr*|js*| t
|||	…ƒ¡n| |||	…¡| ||	¡}q|d|ƒrðt ||¡}|r²| ¡d
d…}
| |
¡| ¡}	|d|	d
ƒs¢|	d
}	| ||	¡}qn<d||d…krÚ| |||d
…¡| ||d
¡}qÚq|d|ƒrt ||¡}|rN| d
¡}
| |
¡| ¡}	|d|	d
ƒs@|	d
}	| ||	¡}qt ||¡}|r¨|rÚ| ¡||d…krÚ| ¡}	|	|kr’|}	| ||d
¡}qÚn.|d
|krÚ| d¡| ||d
¡}nqÚqq|r8||kr8|js8|jr|js| t
|||…ƒ¡n| |||…¡| ||¡}||d…|_dS)Nrú<ú&é"z[\s;]z</ú<!--z<?z<!rrz&#ééÿÿÿÿú;)rÚlenrrÚfindÚrfindÚmaxrrÚsearchrÚstartÚhandle_datarZ	updateposÚ
startswithÚstarttagopenÚmatchÚparse_starttagÚparse_endtagÚ
parse_commentÚparse_piÚparse_html_declarationÚcharrefÚgroupÚhandle_charrefÚendÚ	entityrefÚhandle_entityrefÚ
incomplete)rr=rÚiÚnÚjZampposr4r2ÚkÚnamerrr	r†sÄ
ÿ












zHTMLParser.goaheadcCs¢|j}|||d…dkr$| |¡S|||d…dkrB| |¡S|||d… ¡dkr”| d|d¡}|dkrvdS| ||d	|…¡|d
S| |¡SdS)Nér'éz<![é	z	<!doctyperr)r(r)rr7Zparse_marked_sectionrr,Úhandle_declÚparse_bogus_comment)rrArÚgtposrrr	r9s

z!HTMLParser.parse_html_declarationrcCsD|j}| d|d¡}|dkr"dS|r<| ||d|…¡|dS)Nrr(r)r)rr,Úhandle_comment)rrAZreportrÚposrrr	rJszHTMLParser.parse_bogus_commentcCsH|j}t ||d¡}|sdS| ¡}| ||d|…¡| ¡}|S)Nr(r))rÚpicloser/r0Ú	handle_pir=)rrArr4rCrrr	r8!szHTMLParser.parse_picCsÞd|_| |¡}|dkr|S|j}|||…|_g}t ||d¡}| ¡}| d¡ ¡|_}||kr t	 ||¡}|s~q | ddd¡\}	}
}|
sœd}nZ|dd…dkrÀ|dd…ksên|dd…dkræ|dd…krönn|dd…}|rt
|ƒ}| |	 ¡|f¡| ¡}q`|||… ¡}|dkrž| 
¡\}
}d	|jkrz|
|j d	¡}
t|jƒ|j d	¡}n|t|jƒ}| |||…¡|S| d
¡r¸| ||¡n"| ||¡||jkrÚ| |¡|S)Nrrr(rGú'r)ú")rú/>Ú
rR)rÚcheck_for_whole_start_tagrÚtagfind_tolerantr4r=r;rr
Úattrfind_tolerantrÚappendÚstripZgetposÚcountr+r-r1ÚendswithÚhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSr!)rrAÚendposrÚattrsr4rDÚtagÚmÚattrnameÚrestZ	attrvaluer=ÚlinenoÚoffsetrrr	r5-sZ

&
ÿ
ÿ



ÿ
zHTMLParser.parse_starttagcCs¶|j}t ||¡}|rª| ¡}|||d…}|dkr>|dS|dkr~| d|¡rZ|dS| d|¡rjdS||krv|S|dS|dkrŠdS|dkr–dS||kr¢|S|dStd	ƒ‚dS)
Nrrú/rRr(r)rz6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZzwe should not get here!)rÚlocatestarttagend_tolerantr4r=r2ÚAssertionError)rrArrarCÚnextrrr	rT`s.z$HTMLParser.check_for_whole_start_tagcCs|j}t ||d¡}|sdS| ¡}t ||¡}|sÀ|jdk	rV| |||…¡|St ||d¡}|s|||d…dkr†|dS| 	|¡S| 
d¡ ¡}| d| ¡¡}| 
|¡|dS| 
d¡ ¡}|jdk	rø||jkrø| |||…¡|S| 
|¡| ¡|S)Nrr)r(rGz</>r)rÚ	endendtagr/r=Ú
endtagfindr4rr1rUrJr;rr,Ú
handle_endtagr#)rrArr4rKZ	namematchZtagnamer rrr	r6‚s6





zHTMLParser.parse_endtagcCs| ||¡| |¡dSr")r\rl©rr`r_rrr	r[ªszHTMLParser.handle_startendtagcCsdSr"rrmrrr	r\¯szHTMLParser.handle_starttagcCsdSr"r)rr`rrr	rl³szHTMLParser.handle_endtagcCsdSr"r©rrErrr	r<·szHTMLParser.handle_charrefcCsdSr"rrnrrr	r?»szHTMLParser.handle_entityrefcCsdSr"rrrrr	r1¿szHTMLParser.handle_datacCsdSr"rrrrr	rLÃszHTMLParser.handle_commentcCsdSr"r)rZdeclrrr	rIÇszHTMLParser.handle_declcCsdSr"rrrrr	rOËszHTMLParser.handle_picCsdSr"rrrrr	Úunknown_declÎszHTMLParser.unknown_declcCstjdtddt|ƒS)NzZThe unescape method is deprecated and will be removed in 3.5, use html.unescape() instead.r()Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarningr)rÚsrrr	rÒs
þzHTMLParser.unescape)r)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r]r
rrrrrr!r#rr9rJr8r5rTr6r[r\rlr<r?r1rLrIrOrorrrrr	r?s8		z
3"()rxrrqrZhtmlrÚ__all__rrr@r>r:r3rNZcommentcloserUrVÚVERBOSErgrjrkrrrrrr	Ú<module>s,








ÿò