+
    iT  c                   s   ^ RI t ^ RIt^ RIHt ^ RIHt R.t] P                  ! R4      t	] P                  ! R4      t
] P                  ! R4      t] P                  ! R4      t] P                  ! R	4      t] P                  ! R
4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R] P*                  4      t] P                  ! R] P*                  4      t] P                  ! R] P*                  4      t] P                  ! R4      t] P                  ! R4      tR tR t ! R R]P:                  4      tR# )    N)unescape)html5
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&#(?:[0-9]|[xX][0-9a-fA-F])z6&(#[0-9]+|#[xX][0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*)[;=]?z	<[a-zA-Z]z
</[a-zA-Z]>z--!?>z-?>z0([a-zA-Z][^\t\n\r\f />]*)(?:[\t\n\r\f ]|/(?!>))*a{  
  (
    (?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]*  # attribute name
   )
  ([\t\n\r\f ]*=[\t\n\r\f ]*        # value indicator
    ('[^']*'                        # LITA-enclosed value
    |"[^"]*"                        # LIT-enclosed value
    |(?!['"])[^>\t\n\r\f ]*         # bare value
    )
   )?
  (?:[\t\n\r\f ]|/(?!>))*           # possibly followed by a space
a  
  [a-zA-Z][^\t\n\r\f />]*           # tag name
  [\t\n\r\f /]*                     # optional whitespace before attribute name
  (?:(?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]*  # attribute name
    (?:[\t\n\r\f ]*=[\t\n\r\f ]*    # value indicator
      (?:'[^']*'                    # LITA-enclosed value
        |"[^"]*"                    # LIT-enclosed value
        |(?!['"])[^>\t\n\r\f ]*     # bare value
       )
     )?
    [\t\n\r\f /]*                   # possibly followed by a space
   )*
   >?
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    V P                  ^ 4      pVP                  R4      '       d   \        V4      # VP                  R4      '       g   VR,          \        9   d   \        V4      # V# )r    &#Z=:   NN)group
startswithr   endswithhtml5_entities)matchZrefs   & $/usr/lib64/python3.14/html/parser.py_replace_attr_charrefr   ]   sS    
++a.C
~~d} <<RN!:}J    c                 s6    \         P                  \        V 4      # N)attr_charrefZsubr   )Zs   &r   _unescape_attrvaluer   i   s    1155r   c                   s   a a ] tR t^mt oR"tR#tRRRR/V 3R lltV 3R ltR tR t	R	t
R
 tRR/R ltR tR$R ltR tR tR$R ltR%R ltR tR tR tR tR tR tR tR tR tR tR tR tR tR  t R!t!Vt"V ;t## )&r   convert_charrefsT	scriptingFc               s\   < \         SV `  4        Wn        W n        V P	                  4        R # r   )super__init__r   r   reset)selfr   r   	__class__s   &$$r   r   ZHTMLParser.__init__   s$     	 0"

r   c                s   < R V n         RV n        \        V n        RV n        RV n        RV n        \        SV `!  4        R# )Z z???NT)	rawdatalasttaginteresting_normalinteresting
cdata_elem_support_cdata
_escapabler   r   )r   r   s   &r   r   ZHTMLParser.reset   s8    -"r   c                sX    V P                   V,           V n         V P                  ^ 4       R# )r    N)r   goaheadr   Zdata   &&r   feedZHTMLParser.feed   s     ||d*Qr   c                s(    V P                  ^4       R# )r   N)r!   r   r   r   closeZHTMLParser.close   s    Qr   Nc                s    V P                   # r   )_HTMLParser__starttag_textr%   r   r   get_starttag_textZHTMLParser.get_starttag_text   s    ###r   	escapablec               s   VP                  4       V n        W n        V P                  R 8X  d   \        P                  ! R4      V n        R# V'       de   V P                  '       gS   \        P                  ! RV P                  ,          \        P                  \        P                  ,          4      V n        R# \        P                  ! RV P                  ,          \        P                  \        P                  ,          4      V n        R# )	plaintextz\zz&|</%s(?=[\t\n\r\f />])z</%s(?=[\t\n\r\f />])N)	lowerr   r    recompiler   r   Z
IGNORECASEZASCII)r   Zelemr)   s   &&$r   set_cdata_modeZHTMLParser.set_cdata_mode   s    **,#??k)!zz%0Dt444!zz*Dt*V*,--*@ BD  "zz*BT__*T*,--*@ BDr   c                s8    \         V n        R V n        RV n        R # )NT)r   r   r   r    r%   r   r   clear_cdata_modeZHTMLParser.clear_cdata_mode   s    -r   c                s    Wn         R # r   )r   )r   Zflagr#   r   _set_support_cdataZHTMLParser._set_support_cdata   s
     #r   c                s@   V P                   p^ p\        V4      pW48  Ed   V P                  '       d   V P                  '       gs   VP	                  RV4      pV^ 8  dY   VP                  R\        W4^",
          4      4      pV^ 8  d.   \        P                  ! R4      P                  W&4      '       g   EMTpMJV P                  P                  W#4      pV'       d   VP                  4       pMV P                  '       d   EMTpW58  dU   V P                  '       d0   V P                  '       d   V P                  \        W#V 4      4       MV P                  W#V 4       V P                  W54      pW48X  d   EM.VP                   pV! RV4      '       Ed   \"        P%                  W#4      '       d   V P'                  V4      p	MV! RV4      '       d   V P)                  V4      p	MV! RV4      '       d   V P+                  V4      p	MuV! RV4      '       d   V P-                  V4      p	MTV! RV4      '       d   V P/                  V4      p	M3V^,           V8  g	   V'       d   V P                  R4       V^,           p	MEM.V	^ 8  Ed   V'       g   EM\"        P%                  W#4      '       d   EMV! RV4      '       d[   V^,           V8X  d   V P                  R4       EMt\0        P%                  W#4      '       d   EMWV P3                  W#^,           R 4       EM;V! RV4      '       dY   TpR F5  p
VP5                  W^,           4      '       g   K#  V\        V
4      ,          p M	  V P3                  W#^,           V 4       MV! R	V4      '       d.   V P6                  '       d   V P9                  W#^,           R 4       MW#V^	,            P;                  4       R
8X  d   V P=                  W#^,           R 4       M_V! RV4      '       d   V P3                  W#^,           R 4       M5V! RV4      '       d   V P?                  W#^,           R 4       M\A        R4      hTp	V P                  W94      pEKC  V! RV4      '       Ed   \B        P%                  W#4      pV'       dh   VPE                  4       ^R pV PG                  V4       VPI                  4       p	V! RV	^,
          4      '       g
   V	^,
          p	V P                  W94      pEK  \J        P%                  W#4      pV'       d8   V'       d.   V PG                  W#^,           R 4       V P                  W44      pEM_EM]V^,           V8  d-   V P                  R4       V P                  W3^,           4      pEKe  EM!V! RV4      '       g   EKy  \L        P%                  W#4      pV'       df   VPE                  ^4      pV PO                  V4       VPI                  4       p	V! RV	^,
          4      '       g
   V	^,
          p	V P                  W94      pEK  \P        P%                  W#4      pV'       d6   V'       d-   V PO                  W#^,           R 4       V P                  W44      pM<M;V^,           V8  d-   V P                  R4       V P                  W3^,           4      pEK   V'       dl   W48  df   V P                  '       d0   V P                  '       d   V P                  \        W#V 4      4       MV P                  W#V 4       V P                  W44      pW#R V n         R# )r    Z<Z&z[\t\n\r\f ;]z</<!--z<?z<!N	<![CDATA[	<!doctypezwe should not get here!r   Z;)z--!z--Z-))r   Zlenr   r   findZrfindZmaxr,   r-   searchr   startr    handle_datar   Z	updateposr   starttagopenr   parse_starttagparse_endtagparse_commentparse_piparse_html_declaration
endtagopenhandle_commentr	   r   unknown_declr+   handle_decl	handle_piZAssertionErrorcharrefr   handle_charrefendincomplete_charref	entityrefhandle_entityref
incomplete)r   rF   r   iZnjZampposr   r   kZsuffixnames   &&          r   r!   ZHTMLParser.goahead   s   ,,Le$$$T___LLa(q5 %]]3At=F!JJ7>>wOOA((//;AAu(((T___$$Xgl%;<$$Wq\2q$Avu ++J#q!!%%g11++A.Aa(())!,A****1-Aa((a(Aa((33A6A!eq[C$$S)AAq5#))'55#D!,,q5A: ,,T2'--g99  !//!>#FA..&8F&//!<< !S[ 0 % '9 ++GaCN;#K338K8K8K))'A#$-8 1Q3--/;>((17#D!,,++GaCDM:#D!,,wst}5,-FGGANN1(D!$$g1 ;;=2.D''-		A%c1Q3//Eq,A*00<++GaCDM: NN10UQY $$T*qa%0AC##!3 ;;q>D))$/		A%c1Q3//Eq,A"((4--gcdm< NN10UQY $$S)qa%0A 15$$$  'A,!78  1.q$Ar{r   c                s   V P                   pW!V^,            R8X  d   V P                  V4      # W!V^	,            R8X  dX   V P                  '       dF   VP                  RV^	,           4      pV^ 8  d   R# V P	                  W!^,           V 4       V^,           # W!V^	,            P                  4       R8X  dF   VP                  RV^	,           4      pVR8X  d   R# V P                  W!^,           V 4       V^,           # V P                  V4      # )   r1   r2   z]]>r3   r   r4   )r   r<   r   r5   rA   r+   rB   parse_bogus_comment)r   rK   r   rL   Zgtpos   &&   r   r>   Z!HTMLParser.parse_html_declarationj  s    ,, QqS>V#%%a((qs^{*t/B/B/BUAaC(A1u	gc1o.q5Lqs^!!#{2LLac*E{	WqS/07N++A..r   c                s2   V P                   p\        P                  W1^,           4      pV'       g'   \        P	                  W1^,           4      pV'       g   R# V'       d+   VP                  4       pV P                  W1^,           V 4       VP                  4       # )rO   r4   )r   commentcloser6   commentabruptcloser   r7   r@   rF   )r   rK   reportr   r   rL   s   &&&   r   r<   ZHTMLParser.parse_comment  sn    ,,##GqS1&,,Wc:E	A!Q0yy{r   c                s    V P                   pVP                  R V^,           4      pVR8X  d   R# V'       d   V P                  W1^,           V 4       V^,           # r   r4   )r   r5   r@   )r   rK   rT   r   Zposs   &&&  r   rP   ZHTMLParser.parse_bogus_comment  sP    ,, ll3!$"9I!C 01Qwr   c                s    V P                   p\        P                  W!^,           4      pV'       g   R# VP                  4       pV P	                  W!^,           V 4       VP                  4       pV# )i   r4   )r   picloser6   r7   rC   rF   r   rK   r   r   rL   rQ   r   r=   ZHTMLParser.parse_pi  sT    ,,w!,IKKMwsA'IIKr   c                sJ   R V n         V P                  V4      pV^ 8  d   V# V P                  pW1V V n         . p\        P	                  W1^,           4      pVP                  4       pVP                  ^4      P                  4       ;V n        pWb8  d   \        P	                  W64      pV'       g   MVP                  ^^^4      w  rpV
'       g   R pM<VR,          Ru;8X  d   VR
R  8X  g   M VR,          Ru;8X  d   VR
R  8X  d	   M MV^R
 pV'       d   \        V4      pVP                  V	P                  4       V34       VP                  4       pK  W6V P                  4       pVR9  d   V P                  W1V 4       V# VP                  R4      '       d   V P                  Wt4       V# V P!                  Wt4       WpP"                  9   g!   V P$                  '       d   VR8X  g   VR8X  d   V P'                  VRR7       V# WpP(                  9   d   V P'                  VR	R7       V# )N:Nr   NZ'Z"/>Znoscriptr*   F)r)   Tr4   )r   rX   )r'   check_for_whole_start_tagr   tagfind_tolerantr   rF   r   r+   r   attrfind_tolerantr   ZappendZstripr8   r	   handle_startendtaghandle_starttagCDATA_CONTENT_ELEMENTSr   r.   RCDATA_CONTENT_ELEMENTS)r   rK   Zendposr   attrsr   rM   tagZmZattrnameZrestZ	attrvaluerF   s   &&           r   r:   ZHTMLParser.parse_starttag  s     $//2A:M,,&0  &&w!4IIK"[[^1133sj!''3A()1a(8%HI 	2$8)BC.82#7237%aO	/	:	LL(..*I67A%%'k!Wv./M<<##C/    ,222C:$5{"##C5#9  444##C4#8r   c                s    V P                   p\        P                  W!^,           4      pVP                  4       pW$^,
          ,          R8w  d   R# V# )r   r   r4   )r   locatetagendr   rF   rW   rQ   r   rY   Z$HTMLParser.check_for_whole_start_tag  sB    ,,""7aC0IIKQ3<3Ir   c                s2   V P                   pVP                  R V^,           4      ^ 8  d   R# \        P                  W!4      '       g2   W!^,           V^,            R 8X  d
   V^,           # V P	                  V4      # \
        P                  W!^,           4      pVP                  4       pW$^,
          ,          R 8w  d   R# \        P                  W!^,           4      pVP                  ^4      P                  4       pV P                  V4       V P                  4        V# rU   )r   r5   r?   r   rP   rb   rF   rZ   r   r+   handle_endtagr/   )r   rK   r   r   rL   ra   s   &&    r   r;   ZHTMLParser.parse_endtag  s     ,,<<QqS!A%I++s1Q33&s
//22""7aC0IIKQ3<3I !&&w!4kk!n""$3r   c                sJ    V P                  W4       V P                  V4       R # r   )r]   rc   r   ra   r`      &&&r   r\   ZHTMLParser.handle_startendtag  s    S(3r   c                    R # r    rd   re   r   r]   ZHTMLParser.handle_starttag	      r   c                rf   r   rg   )r   ra   r#   r   rc   ZHTMLParser.handle_endtag  rh   r   c                rf   r   rg   r   rN   r#   r   rE   ZHTMLParser.handle_charref  rh   r   c                rf   r   rg   ri   r#   r   rI   ZHTMLParser.handle_entityref  rh   r   c                rf   r   rg   r"   r#   r   r8   ZHTMLParser.handle_data  rh   r   c                rf   r   rg   r"   r#   r   r@   ZHTMLParser.handle_comment  rh   r   c                rf   r   rg   )r   Zdeclr#   r   rB   ZHTMLParser.handle_decl!  rh   r   c                rf   r   rg   r"   r#   r   rC   ZHTMLParser.handle_pi%  rh   r   c                rf   r   rg   r"   r#   r   rA   ZHTMLParser.unknown_decl(  rh   r   )	Z__starttag_textr    r   r   r   r   r   r   r   )ZscriptZstyleZxmpZiframeZnoembedZnoframes)ZtextareaZtitle)T)r   )$Z__name__Z
__module__Z__qualname__Z__firstlineno__r^   r_   r   r   r$   r&   r'   r(   r.   r/   r0   r!   r>   r<   rP   r=   r:   rY   r;   r\   r]   rc   rE   rI   r8   r@   rB   rC   rA   Z__static_attributes__Z__classdictcell__Z__classcell__)r   Z__classdict__s   @@r   r   r   m   s     2 Y34 5  O$
B 
B
# O#h/2		.d< 
 r   )r,   Z_markupbaseZhtmlr   Zhtml.entitiesr   r
   Z__all__r-   r   rJ   rH   rD   rG   r   r9   r?   rV   rR   rS   rZ   ZVERBOSEr[   rb   Zlocatestarttagend_tolerantZ	endendtagZ
endtagfindr   r   Z
ParserBaser   rg   r   r   <module>rj      sf   
   1 . ZZ' ZZ%
JJ>?	
**@
AZZ => zzSTzz+&ZZ%

**S/zz(#ZZ'  ::QR JJ   ZZ  zz  ZZ   ZZ ) ZZ  JJsO	ZZ>?

6|'' |r   