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.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_modecCsX|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|ƒrÚt ||¡}|rP| d
¡}
| |
¡| ¡}	|d|	d
ƒsB|	d
}	| ||	¡}qt ||¡}|rª|rè| ¡||d…krè| ¡}	|	|kr”|}	| ||d
¡}qèn.|d
|krè| d¡| ||d
¡}nqèqdstdƒ‚q|rF||krF|jsF|jr(|js(| t
|||…ƒ¡n| |||…¡| ||¡}||d…|_dS)Nrú<ú&é"z[\s;]ú</ú<!--ú<?ú<!rrz&#ééÿÿÿÿú;zinteresting.search() lied)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ÚAssertionError)rr@rÚiÚnÚjZampposr7r5ÚkÚnamerrr	r†sÄ
ÿ











zHTMLParser.goaheadcCs¾|j}|||d…dks"tdƒ‚|||d…dkr@| |¡S|||d…dkr^| |¡S|||d… ¡d	kr°| d
|d¡}|dkr’dS| ||d|…¡|dS| |¡SdS)
Nr+r*z+unexpected call to parse_html_declaration()ér(éz<![é	z	<!doctyperr,r)rrDr:Zparse_marked_sectionrr/Úhandle_declÚparse_bogus_comment)rrErÚgtposrrr	r<s

z!HTMLParser.parse_html_declarationrcCs`|j}|||d…dks"tdƒ‚| d|d¡}|dkr>dS|rX| ||d|…¡|dS)Nr+)r*r'z"unexpected call to parse_comment()rr,r)rrDr/Úhandle_comment)rrEZreportrÚposrrr	rNszHTMLParser.parse_bogus_commentcCsd|j}|||d…dks"tdƒ‚t ||d¡}|s:dS| ¡}| ||d|…¡| ¡}|S)Nr+r)zunexpected call to parse_pi()r,)rrDÚpicloser2r3Ú	handle_pir@)rrErr7rGrrr	r;!szHTMLParser.parse_picCsìd|_| |¡}|dkr|S|j}|||…|_g}t ||d¡}|sPtdƒ‚| ¡}| d¡ ¡|_	}||kr.t
 ||¡}|sŠq.| ddd¡\}	}
}|
s¨d}n\|dd…dkrÌ|dd…ksøn|dd…dkrô|dd…krnn|dd…}|rt|ƒ}| |	 ¡|f¡| ¡}ql|||… 
¡}|d	kr¬| ¡\}
}d
|jkrˆ|
|j d
¡}
t|jƒ|j d
¡}n|t|jƒ}| |||…¡|S| d¡rÆ| ||¡n"| ||¡||jkrè| |¡|S)Nrrz#unexpected call to parse_starttag()r+rKú'r,ú")rú/>Ú
rV)rÚcheck_for_whole_start_tagrÚtagfind_tolerantr7rDr@r>rr
Úattrfind_tolerantrÚappendÚstripZgetposÚcountr.r0r4ÚendswithÚhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSr!)rrEÚendposrÚattrsr7rHÚtagÚmÚattrnameÚrestZ	attrvaluer@ÚlinenoÚoffsetrrr	r8-s\

&
ÿ
ÿ


ÿ
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ú/rVr+r,rz6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZzwe should not get here!)rÚlocatestarttagend_tolerantr7r@r5rD)rrErrerGÚnextrrr	rX`s.z$HTMLParser.check_for_whole_start_tagcCs.|j}|||d…dks"tdƒ‚t ||d¡}|s:dS| ¡}t ||¡}|sÜ|jdk	rr| |||…¡|St	 ||d¡}|s¬|||d…dkr¢|dS| 
|¡S| d¡ ¡}| 
d| ¡¡}| |¡|dS| d¡ ¡}|jdk	r||jkr| |||…¡|S| |¡| ¡|S)	Nr+r'zunexpected call to parse_endtagrr,rKz</>r)rrDÚ	endendtagr2r@Ú
endtagfindr7rr4rYrNr>rr/Ú
handle_endtagr#)rrErr7rOZ	namematchZtagnamer rrr	r9‚s8



zHTMLParser.parse_endtagcCs| ||¡| |¡dSr")r`ro©rrdrcrrr	r_ªszHTMLParser.handle_startendtagcCsdSr"rrprrr	r`¯szHTMLParser.handle_starttagcCsdSr"r)rrdrrr	ro³szHTMLParser.handle_endtagcCsdSr"r©rrIrrr	r?·szHTMLParser.handle_charrefcCsdSr"rrqrrr	rB»szHTMLParser.handle_entityrefcCsdSr"rrrrr	r4¿szHTMLParser.handle_datacCsdSr"rrrrr	rPÃszHTMLParser.handle_commentcCsdSr"r)rZdeclrrr	rMÇszHTMLParser.handle_declcCsdSr"rrrrr	rSË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__rar
rrrrrr!r#rr<rNr;r8rXr9r_r`ror?rBr4rPrMrSrrrrrrr	r?s8		z
3"()r{rrtrZhtmlrÚ__all__rrrCrAr=r6rRZcommentcloserYrZÚVERBOSErkrmrnrrrrrr	Ú<module>s,








ÿò