§
    ¥”j7\  ã                   ó¤  — d Z dgZddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZmZmZmZmZmZ ddlZddlmZmZmZmZmZ ddlmZmZmZ ddl Z dd	l!m"Z" dd
lm#Z#m$Z$m%Z%m&Z& e	rddl'm(Z( ddl)m*Z+  G d„ de¦  «        Z, G d„ de+j-        ¦  «        Z. G d„ de/¦  «        Z0 G d„ de+j1        ¦  «        Z2 G d„ de2¦  «        Z3 G d„ de2¦  «        Z4dS )ÚMITÚHTML5TreeBuilderé    )	ÚAnyÚcastÚDictÚIterableÚOptionalÚSequenceÚTYPE_CHECKINGÚTupleÚUnion)Ú	TypeAlias)Ú_AttributeValueÚ_AttributeValuesÚ	_EncodingÚ
_EncodingsÚ_NamespaceURLÚ
_RawMarkupN)ÚDetectsXMLParsedAsHTMLÚ
PERMISSIVEÚHTMLÚHTML_5ÚHTMLTreeBuilder)ÚNamespacedAttributeÚPageElementÚnonwhitespace_re)Ú
namespaces)ÚCommentÚDoctypeÚNavigableStringÚTag©ÚBeautifulSoup)Úbasec                   ó"  — e Zd ZU dZdZeed<   eeee	gZ
ee         ed<   dZeed<   ded<   ee         ed	<   	 	 	 dded	ee         dee         dee         deeeee         ee         ef                  f
d„Zdedd
fd„Zdeddfd„Zdedefd„Zd
S )r   aj  Use `html5lib <https://github.com/html5lib/html5lib-python>`_ to
    build a tree.

    Note that `HTML5TreeBuilder` does not support some common HTML
    `TreeBuilder` features. Some of these features could theoretically
    be implemented, but at the very least it's quite difficult,
    because html5lib moves the parse tree around as it's being built.

    Specifically:

    * This `TreeBuilder` doesn't use different subclasses of
      `NavigableString` (e.g. `Script`) based on the name of the tag
      in which the string was found.
    * You can't use a `SoupStrainer` to parse only part of a document.
    Úhtml5libÚNAMEÚfeaturesTÚTRACKS_LINE_NUMBERSÚTreeBuilderForHtml5libÚunderlying_builderÚuser_specified_encodingNÚmarkupÚdocument_declared_encodingÚexclude_encodingsÚreturnc              #   ó®   K  — || _         |df|dffD ]$\  }}|rt          j        d|› d|› d�d¬¦  «         Œ%t          j        |d¬¦  «         |d d dfV — d S )	Nr.   r/   zYou provided a value for z0, but the html5lib tree builder doesn't support ú.é   ©Ú
stacklevelF)r,   ÚwarningsÚwarnr   Úwarn_if_markup_looks_like_xml)Úselfr-   r,   r.   r/   ÚvariableÚnames          úd/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/bs4/builder/_html5lib.pyÚprepare_markupzHTML5TreeBuilder.prepare_markupW   s«   è è € ð (?ˆÔ$ð (Ð)EÐFØÐ 3Ð4ð
ð 	ð 	‰NˆH�dð ð Ý”Øm°ÐmÐmÐfjÐmÐmÐmØ ðñ ô ð øõ 	Ô<¸VÐPQÐRÑRÔRÐRà�t˜T 5Ð)Ð)Ð)Ð)Ð)Ð)ó    c                 óÈ  — | j         �"| j         j        �t          j        dd¬¦  «         t	          j        | j        ¬¦  «        }| j        €J ‚|| j        _        t          ¦   «         }t          |t          ¦  «        s
| j        |d<    |j        |fi |¤Ž}t          |t          ¦  «        rd|_        n%|j        j        j        d         }|j        }||_        d| j        _        dS )z‰Run some incoming markup through some parsing process,
        populating the `BeautifulSoup` object in `HTML5TreeBuilder.soup`.
        Nz‚You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.é   r4   )ÚtreeÚoverride_encodingr   )ÚsoupÚ
parse_onlyr6   r7   r&   Ú
HTMLParserÚcreate_treebuilderr+   ÚparserÚdictÚ
isinstanceÚstrr,   ÚparseÚoriginal_encodingÚ	tokenizerÚstreamÚcharEncodingr;   )r9   r-   rG   Úextra_kwargsÚdocrL   s         r<   ÚfeedzHTML5TreeBuilder.feedu   s  € ð Œ9Ð  T¤YÔ%9Ð%EÝŒMð UØðñ ô ð õ Ô$¨$Ô*AÐBÑBÔBˆØÔ&Ð2Ð2Ð2Ø)/ˆÔÔ&Ý‘v”vˆÝ˜&¥#Ñ&Ô&ð 	Mð 15Ô0LˆLÐ,Ñ-àˆfŒl˜6Ð2Ð2 \Ð2Ð2ˆõ �f�cÑ"Ô"ð 		6ð %)ˆCÔ!Ð!à &Ô 0Ô 7Ô DÀQÔ GÐð !2Ô 6ÐØ$5ˆCÔ!Ø)-ˆÔÔ&Ð&Ð&r>   ÚnamespaceHTMLElementsc                 óR   — t          || j        | j        ¬¦  «        | _        | j        S )zÈCalled by html5lib to instantiate the kind of class it
        calls a 'TreeBuilder'.

        :param namespaceHTMLElements: Whether or not to namespace HTML elements.

        :meta private:
        )Ústore_line_numbers)r*   rC   rU   r+   )r9   rS   s     r<   rF   z#HTML5TreeBuilder.create_treebuilderš   s2   € õ #9Ø! 4¤9ÀÔAXð#
ñ #
ô #
ˆÔð Ô&Ð&r>   Úfragmentc                 ó   — d|z  S )zSee `TreeBuilder`.z)<html><head></head><body>%s</body></html>© )r9   rV   s     r<   Útest_fragment_to_documentz*HTML5TreeBuilder.test_fragment_to_document©   s   € à:¸XÑEÐEr>   )NNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r'   rJ   Ú__annotations__r   r   r   r(   r   r)   Úboolr	   r   r   r   r   r=   rR   rF   rY   rX   r>   r<   r   r   ;   sp  € € € € € € ðð ð  €Dˆ#ÐÐÑà# Z°¸Ð>€Hˆh�sŒmÐ>Ð>Ñ>ð !%Ð˜Ð$Ð$Ñ$à0Ð0Ð0Ñ0Ø% iÔ0Ð0Ð0Ñ0ð
 8<Ø:>Ø26ð*ð *àð*ð "*¨)Ô!4ð*ð %-¨YÔ$7ð	*ð
 $ JÔ/ð*ð 
�%˜
 H¨YÔ$7¸À)Ô9LÈdÐRÔSÔ	Tð*ð *ð *ð *ð<#.˜:ð #.¨$ð #.ð #.ð #.ð #.ðJ'Ø%)ð'à	!ð'ð 'ð 'ð 'ðF°#ð F¸#ð Fð Fð Fð Fð Fð Fr>   c            	       óâ   ‡ — e Zd ZU ded<   eej                 ed<   	 	 ddeded         dedefˆ fd	„Z	dd„Z
deeef         d
dfd„Zdeded
dfd„Zded
dfd„Zdd„Zdd„Zdd„Zdd„Zdd„Zˆ xZS )r*   r#   rC   rG   NTrS   rU   Úkwargsc                 óì   •— |r|| _         n2t          j        dt          d¬¦  «         ddlm}  |	 d	d|i|¤Ž| _         t          t          | ¦  «                             |¦  «         d | _	        || _
        d S )
NaK  The optionality of the 'soup' argument to the TreeBuilderForHtml5lib constructor is deprecated as of Beautiful Soup 4.13.0: 'soup' is now required. If you can't pass in a BeautifulSoup object here, or you get this warning and it seems mysterious to you, please contact the Beautiful Soup developer team for possible un-deprecation.é   r4   r   r"   Ú úhtml.parserrU   )rd   re   )rC   r6   r7   ÚDeprecationWarningÚbs4r#   Úsuperr*   Ú__init__rG   rU   )r9   rS   rC   rU   ra   r#   Ú	__class__s         €r<   ri   zTreeBuilderForHtml5lib.__init__²   sµ   ø€ ð ð 	ØˆDŒIˆIåŒMð ^Ý"Øðñ ô ð ð
 *Ð)Ð)Ð)Ð)Ð)ð
 &˜Ø!ðð Ø6HðØLRðð ˆDŒIõ 	Õ$ dÑ+Ô+×4Ò4Ð5JÑKÔKÐKð ˆŒØ"4ˆÔÐÐr>   r0   ÚElementc                 ój   — | j                              ¦   «          t          | j         | j         d ¦  «        S ©N)rC   Úresetrk   ©r9   s    r<   ÚdocumentClassz$TreeBuilderForHtml5lib.documentClassÓ   s*   € ØŒ	�ŠÑÔÐÝ�t”y $¤)¨TÑ2Ô2Ð2r>   Útokenc                 ó4  — t          t          |d         ¦  «        }t          t          t                   |d         ¦  «        }t          t          t                   |d         ¦  «        }t          j        |||¦  «        }| j                             |¦  «         d S )Nr;   ÚpublicIdÚsystemId)r   rJ   r	   r   Úfor_name_and_idsrC   Úobject_was_parsed)r9   rq   r;   rs   rt   Údoctypes         r<   ÚinsertDoctypez$TreeBuilderForHtml5lib.insertDoctype×   su   € Ý�˜e FœmÑ,Ô,ˆÝ"&¥xµ¤}°e¸JÔ6GÑ"HÔ"HˆÝ"&¥xµ¤}°e¸JÔ6GÑ"HÔ"HˆåÔ*¨4°¸8ÑDÔDˆØŒ	×#Ò# GÑ,Ô,Ð,Ð,Ð,r>   r;   Ú	namespacec                 óì   — d }d }| j         �6| j        r/| j         j        j                             ¦   «         \  }}|€J ‚|dz
  }| j                             ||||¬¦  «        }t          || j        |¦  «        S )Né   )Ú
sourcelineÚ	sourcepos)rG   rU   rM   rN   ÚpositionrC   Únew_tagrk   )r9   r;   ry   r|   r}   Útags         r<   ÚelementClassz#TreeBuilderForHtml5lib.elementClassß   sŒ   € Ø$(ˆ
Ø#'ˆ	ØŒ;Ð" tÔ'>Ð"ð %)¤KÔ$9Ô$@×$IÒ$IÑ$KÔ$KÑ!ˆJ˜	ØÐ(Ð(Ð(Ø! A™ˆIØŒi×ÒØ�)¨
¸ið  ñ 
ô 
ˆõ �s˜DœI yÑ1Ô1Ð1r>   ÚdataÚTextNodec                 óF   — t          t          |¦  «        | j        ¦  «        S rm   )rƒ   r   rC   )r9   r‚   s     r<   ÚcommentClassz#TreeBuilderForHtml5lib.commentClassï   s   € Ý� ™œ t¤yÑ1Ô1Ð1r>   c                 ó   — t          ¦   «         ‚)zôThis is only used by html5lib HTMLParser.parseFragment(),
        which is never used by Beautiful Soup, only by the html5lib
        unit tests. Since we don't currently hook into those tests,
        the implementation is left blank.
        ©ÚNotImplementedErrorro   s    r<   ÚfragmentClassz$TreeBuilderForHtml5lib.fragmentClassò   s   € õ "Ñ#Ô#Ð#r>   c                 ó   — t          ¦   «         ‚©z˜This is only used by the html5lib unit tests. Since we
        don't currently hook into those tests, the implementation is
        left blank.
        r‡   ro   s    r<   ÚgetFragmentz"TreeBuilderForHtml5lib.getFragmentú   ó   € õ
 "Ñ#Ô#Ð#r>   Únodec                 óD   — | j                              |j        ¦  «         d S rm   )rC   ÚappendÚelement©r9   rŽ   s     r<   ÚappendChildz"TreeBuilderForHtml5lib.appendChild  s"   € ð 	Œ	×Ò˜œÑ&Ô&Ð&Ð&Ð&r>   c                 ó   — | j         S rm   )rC   ro   s    r<   ÚgetDocumentz"TreeBuilderForHtml5lib.getDocument
  s
   € ØŒyÐr>   c                 ó   — t          ¦   «         ‚r‹   r‡   r’   s     r<   ÚtestSerializerz%TreeBuilderForHtml5lib.testSerializer  r�   r>   )NT)r0   rk   ©rŽ   rk   r0   N)r0   r#   )rZ   r[   r\   r^   r	   r&   rE   r_   r   ri   rp   r   rJ   rx   r�   r…   r‰   rŒ   r“   r•   r—   Ú__classcell__)rj   s   @r<   r*   r*   ®   s…  ø€ € € € € € Ø
ÐÐÑØ�XÔ(Ô)Ð)Ð)Ñ)ð
 +/Ø#'ð	5ð 5à#ð5ð �Ô'ð5ð !ð	5ð
 ð5ð 5ð 5ð 5ð 5ð 5ðB3ð 3ð 3ð 3ð- 4¨¨S¨¤>ð -°dð -ð -ð -ð -ð2 ð 2°ð 2¸ð 2ð 2ð 2ð 2ð 2 ð 2¨ð 2ð 2ð 2ð 2ð$ð $ð $ð $ð$ð $ð $ð $ð'ð 'ð 'ð 'ðð ð ð ð$ð $ð $ð $ð $ð $ð $ð $r>   r*   c                   óÜ   — e Zd ZU dZeed<   eed<   defd„Zdee	e
ef                  fd„Zde
dedd	fd
„Zdee	e
ef                  fd„Zdee
         fd„Zdefd„Zde
defd„Zde
defd„Zd	S )ÚAttrListz@Represents a Tag's attributes in a way compatible with html5lib.r‘   Úattrsc                 óP   — || _         t          | j         j        ¦  «        | _        d S rm   )r‘   rH   rœ   )r9   r‘   s     r<   ri   zAttrList.__init__  s!   € ØˆŒÝ˜$œ,Ô,Ñ-Ô-ˆŒ
ˆ
ˆ
r>   r0   c                 ór   — t          | j                             ¦   «         ¦  «                             ¦   «         S rm   )Úlistrœ   ÚitemsÚ__iter__ro   s    r<   r¡   zAttrList.__iter__  s*   € Ý�D”J×$Ò$Ñ&Ô&Ñ'Ô'×0Ò0Ñ2Ô2Ð2r>   r;   ÚvalueNc                 óv  — | j         j        pi }||                     dg ¦  «        v s0| j         j        |v rz||                     | j         j        g ¦  «        v rXt	          |t
          ¦  «        sCt	          |t          ¦  «        sJ ‚| j                              t          j	        |¦  «        ¦  «        }|| j         |<   d S )NÚ*)
r‘   Úcdata_list_attributesÚgetr;   rI   rŸ   rJ   Úattribute_value_list_classr   Úfindall)r9   r;   r¢   Ú	list_attrs       r<   Ú__setitem__zAttrList.__setitem__"  s½   € ð ”LÔ6Ð<¸"ˆ	Ø�9—=’=  bÑ)Ô)Ð)Ð)ØŒLÔ Ð*Ð*Ø˜	Ÿš d¤lÔ&7¸Ñ<Ô<Ð<Ð<õ ˜e¥TÑ*Ô*ð Ý! %­Ñ-Ô-Ð-Ð-Ð-Øœ×?Ò?Ý$Ô,¨UÑ3Ô3ñô �ð #ˆŒ�TÑÐÐr>   c                 óN   — t          | j                             ¦   «         ¦  «        S rm   )rŸ   rœ   r    ro   s    r<   r    zAttrList.items3  s   € Ý�D”J×$Ò$Ñ&Ô&Ñ'Ô'Ð'r>   c                 óN   — t          | j                             ¦   «         ¦  «        S rm   ©rŸ   rœ   Úkeysro   s    r<   r®   zAttrList.keys6  s   € Ý�D”J—O’OÑ%Ô%Ñ&Ô&Ð&r>   c                 ó*   — t          | j        ¦  «        S rm   )Úlenrœ   ro   s    r<   Ú__len__zAttrList.__len__9  s   € Ý�4”:‰ŒÐr>   c                 ó   — | j         |         S rm   )rœ   ©r9   r;   s     r<   Ú__getitem__zAttrList.__getitem__<  s   € ØŒz˜$ÔÐr>   c                 óR   — |t          | j                             ¦   «         ¦  «        v S rm   r­   r³   s     r<   Ú__contains__zAttrList.__contains__?  s!   € Ø•t˜DœJŸOšOÑ-Ô-Ñ.Ô.Ð.Ð.r>   )rZ   r[   r\   r]   r!   r^   r   ri   r   r   rJ   r   r¡   rª   r    r®   Úintr±   r´   r_   r¶   rX   r>   r<   r›   r›     sG  € € € € € € ØJÐJà€L€L�LØÐÐÑð. ð .ð .ð .ð .ð3˜( 5¨¨oÐ)=Ô#>Ô?ð 3ð 3ð 3ð 3ð# ð #¨Oð #Àð #ð #ð #ð #ð"(�x  c¨?Ð&:Ô ;Ô<ð (ð (ð (ð (ð'�h˜s”mð 'ð 'ð 'ð 'ð˜ð ð ð ð ð  ð  ¨ð  ð  ð  ð  ð/ ð /¨ð /ð /ð /ð /ð /ð /r>   r›   c                   óª   — e Zd ZU ee         ed<   ee         ed<   ded<   ee         ed<   ede	fd„¦   «         Z
edefd„¦   «         Zdej        fd	„Zd
S )ÚBeautifulSoupNoder€   Ústringr#   rC   ry   r0   c                 ó^   — | j         €	| j        €J ‚| j         �| j         S | j        €J ‚| j        S rm   )r€   rº   ro   s    r<   r‘   zBeautifulSoupNode.elementJ  s<   € àŒxÐ# t¤{Ð'>Ð'>Ð'>ØŒ8ÐØ”8ˆOà”;Ð*Ð*Ð*Ø”;Ðr>   c                 ó   — t          ¦   «         ‚)zÕReturn the html5lib constant corresponding to the type of
        the underlying DOM object.

        NOTE: This property is only accessed by the html5lib test
        suite, not by Beautiful Soup proper.
        r‡   ro   s    r<   ÚnodeTypezBeautifulSoupNode.nodeTypeS  s   € õ "Ñ#Ô#Ð#r>   c                 ó   — t          ¦   «         ‚rm   r‡   ro   s    r<   Ú	cloneNodezBeautifulSoupNode.cloneNode_  s   € Ý!Ñ#Ô#Ð#r>   N)rZ   r[   r\   r	   r!   r^   r    r   Úpropertyr   r‘   r·   r½   Útreebuilder_baseÚNoder¿   rX   r>   r<   r¹   r¹   C  s¿   € € € € € € à	�#ŒÐÐÑØ�_Ô%Ð%Ð%Ñ%Ø
ÐÐÑØ˜Ô&Ð&Ð&Ñ&àð˜ð ð ð ñ „Xðð ð$˜#ð $ð $ð $ñ „Xð$ð$Ð+Ô0ð $ð $ð $ð $ð $ð $r>   r¹   c                   ó‚  — e Zd ZU ee         ed<   dedddee         fd„Zdd
„Zde	fd„Z
eeeeef         f         Zeed<   eeef         Zeed<   dee         dd	fd„Z ee
e¦  «        Z	 ddeded         dd	fd„Z	 	 	 	 	 	 dd„Zdd„Zdd„Zdefd„Zdej        fd„Zdeee         ef         fd„Z ee¦  «        Zd	S ) rk   ry   r‘   rC   r#   c                 óˆ   — || _         d | _        || _        || _        t          j                             | |j        ¦  «         d S rm   )r€   rº   rC   ry   rÁ   rÂ   ri   r;   )r9   r‘   rC   ry   s       r<   ri   zElement.__init__f  sA   € ð ˆŒØˆŒØˆŒ	Ø"ˆŒÝÔ×&Ò& t¨W¬\Ñ:Ô:Ð:Ð:Ð:r>   rŽ   r¹   r0   Nc                 óP  — d }t          |j        ¦  «        t          u r
|j        x}}n|j        }| |_        |�5|j        �.t          |t          ¦  «        s|j                             ¦   «          |�‹| j        �„| j        j	        rxt          | j        j	        d         ¦  «        t          u rR| j        j	        d         }| j
                             ||z   ¦  «        }|                     |¦  «         || j
        _        d S t          |t          ¦  «        r| j
                             |¦  «        }| j        �'| j        j	        r| j                             d¦  «        }n-| j        j        �| j
                             ¦   «         }n| j        }| j
                             || j        |¬¦  «         d S )NéÿÿÿÿF)ÚparentÚmost_recent_element)Útyperº   r    r‘   rÇ   rI   rJ   Úextractr€   ÚcontentsrC   Ú
new_stringÚreplace_withÚ_most_recent_elementÚ_last_descendantÚnext_elementrv   )r9   rŽ   Ústring_childÚchildÚold_elementÚnew_elementrÈ   s          r<   r“   zElement.appendChildo  s«  € Ø26ˆå�”ÑÔ¥Ð/Ð/ð $(¤;Ð.ˆL˜5˜5à”LˆEØˆŒð ÐØ”Ð(Ý˜u¥cÑ*Ô*ð )ð ŒL× Ò Ñ"Ô"Ð"ð Ð$Ø”Ð$¨¬Ô):Ð$Ý�T”XÔ& rÔ*Ñ+Ô+­Ð>Ð>ð
 œ(Ô+¨BÔ/ˆKØœ)×.Ò.¨{¸\Ñ/IÑJÔJˆKØ×$Ò$ [Ñ1Ô1Ð1Ø-8ˆDŒIÔ*Ð*Ð*å˜$¥Ñ$Ô$ð 3àœ	×,Ò,¨TÑ2Ô2�ð
 ŒxÐ#¨¬Ô(9Ð#Ø&*¤h×&?Ò&?ÀÑ&FÔ&FÐ#Ð#Ø”Ô*Ð6ð
 '+¤i×&@Ò&@Ñ&BÔ&BÐ#Ð#à&*¤lÐ#àŒI×'Ò'Ø˜dœhÐ<Oð (ñ ô ð ð ð r>   c                 ó<   — | j         €J ‚t          | j         ¦  «        S rm   )r€   r›   ro   s    r<   ÚgetAttributeszElement.getAttributes¤  s    € ØŒxÐ#Ð#Ð#Ý˜œÑ!Ô!Ð!r>   Ú_Html5libAttributeNameÚ_Html5libAttributesÚ
attributesc                 ó  — | j         €J ‚|�ñt          |¦  «        dk    ràt          |                     ¦   «         ¦  «        D ]+\  }}t	          |t
          ¦  «        rt          |Ž }||= |||<   Œ,t          t          |¦  «        }| j	        j
                             | j        |¦  «         t          |                     ¦   «         ¦  «        D ]\  }}|| j         |<   Œ| j	        j
                             | j         ¦  «         d S d S d S ©Nr   )r€   r°   rŸ   r    rI   Útupler   r   r   rC   ÚbuilderÚ$_replace_cdata_list_attribute_valuesr;   Úset_up_substitutions)r9   rÙ   r;   r¢   Únew_nameÚnormalized_attributesÚvalue_or_valuess          r<   ÚsetAttributeszElement.setAttributes¯  s!  € ØŒxÐ#Ð#Ð#ØÐ!¥c¨*¡o¤o¸Ò&9Ð&9õ  $ J×$4Ò$4Ñ$6Ô$6Ñ7Ô7ð 1ð 1‘��eÝ˜d¥EÑ*Ô*ð 1Ý2°DÐ9�HØ" 4Ð(Ø+0�J˜xÑ(øõ %)Õ)9¸:Ñ$FÔ$FÐ!ð ŒIÔ×BÒBØ”	Ð0ñô ð õ *.Ð.C×.IÒ.IÑ.KÔ.KÑ)LÔ)Lð 1ð 1Ñ%��oØ!0�”˜‘�ð ŒIÔ×2Ò2°4´8Ñ<Ô<Ð<Ð<Ð<ð; "Ð!Ð&9Ð&9r>   r‚   ÚinsertBeforec                 ó¾   — t          | j                             |¦  «        | j        ¦  «        }|r|                      ||¦  «         d S |                      |¦  «         d S rm   )rƒ   rC   rÌ   rä   r“   )r9   r‚   rä   Útexts       r<   Ú
insertTextzElement.insertTextÒ  sc   € õ ˜œ	×,Ò,¨TÑ2Ô2°D´IÑ>Ô>ˆØð 	#Ø×Ò˜d LÑ1Ô1Ð1Ð1Ð1à×Ò˜TÑ"Ô"Ð"Ð"Ð"r>   ÚrefNodec                 ó  — | j         €J ‚| j                              |j        ¦  «        }t          |j        ¦  «        t          u r›| j         j        r�t          | j         j        |dz
           ¦  «        t          u rf| j         j        |dz
           }t          |¦  «        t          u sJ ‚| j                             ||j        z   ¦  «        }|                     |¦  «         d S | j          	                    ||j        ¦  «         | |_
        d S )Nr{   )r€   Úindexr‘   rÉ   r    rË   rC   rÌ   rÍ   ÚinsertrÇ   )r9   rŽ   rè   rê   Úold_nodeÚnew_strs         r<   rä   zElement.insertBeforeÛ  sï   € ð ŒxÐ#Ð#Ð#Ø”—’˜wœÑ/Ô/ˆå�”ÑÔ¥/Ð1Ð1Ø”Ô!ð 2å�T”XÔ& u¨q¡yÔ1Ñ2Ô2µoÐEÐEð ”xÔ(¨°©Ô3ˆHÝ˜‘>”>¥_Ð4Ð4Ð4Ð4Ø”i×*Ò*¨8°d´lÑ+BÑCÔCˆGØ×!Ò! 'Ñ*Ô*Ð*Ð*Ð*àŒH�OŠO˜E 4¤<Ñ0Ô0Ð0ØˆDŒKˆKˆKr>   c                 ó8   — |j                              ¦   «          d S rm   )r‘   rÊ   r’   s     r<   ÚremoveChildzElement.removeChildî  s   € ØŒ×ÒÑÔÐÐÐr>   Ú	newParentc                 ó`  — | j         }|€J ‚|j         }|€J ‚|j        }|                     dd¦  «        }t          |j        ¦  «        dk    r|€J ‚|j        d         }|j        }n	d}|j        }|j        }t          |¦  «        dk    rr|d         }	|�||	_        n||	_        ||	_        |�|	|_        n|	|_        |�|	|_        |d                              dd¬¦  «        }
|
€J ‚||
_        |�|
|_        d|
_        |D ]#}||_        |j         	                    |¦  «         Œ$g |_        ||_        dS )z1Move all of this tag's children into another tag.NFr   rÆ   T)Úis_initializedÚaccept_self)
r€   Únext_siblingrÏ   r°   rË   rÐ   Úprevious_elementÚprevious_siblingrÇ   r�   )r9   rð   r‘   Únew_parent_elementÚfinal_next_elementÚnew_parents_last_descendantÚnew_parents_last_childÚ(new_parents_last_descendant_next_elementÚ	to_appendÚfirst_childÚlast_childs_last_descendantrÒ   s               r<   ÚreparentChildrenzElement.reparentChildrenñ  s¶  € ð ”(ˆØÐ"Ð"Ð"Ø&œ]ÐØ!Ð-Ð-Ð-ð %Ô1Ðà&8×&IÒ&IÈ%ÐQVÑ&WÔ&WÐ#ÝÐ!Ô*Ñ+Ô+¨aÒ/Ð/ð /Ð:Ð:Ð:Ø%7Ô%@ÀÔ%DÐ"à+Ô8ð 5Ð4ð
 &*Ð"Ø7IÔ7VÐ4àÔ$ˆ	Ýˆy‰>Œ>˜AÒÐð $ Aœ,ˆKØ*Ð6Ø/J�Ô,Ð,à/A�Ô,Ø+AˆKÔ(Ø*Ð6Ø;FÐ+Ô8Ð8à2=Ð"Ô/Ø%Ð1Ø6AÐ&Ô3ð +4°B¬-×*HÒ*HØ$°$ð +Iñ +ô +Ð'ð /Ð:Ð:Ð:à8ð (Ô4ð 8ÐCð 0ð 9ÔIð 8<Ð'Ô4àð 	6ð 	6ˆEØ-ˆEŒLØÔ'×.Ò.¨uÑ5Ô5Ð5Ð5ð ˆÔØ1ˆÔÐÐr>   c                 óN   — | j         d u pt          | j         j        ¦  «        dk    S rÛ   )r€   r°   rË   ro   s    r<   Ú
hasContentzElement.hasContentG  s&   € ØŒx˜4ÐÐ=¥3 t¤xÔ'8Ñ#9Ô#9¸AÒ#=Ð=r>   c                 óÐ   — | j         €J ‚| j                             | j         j        | j        ¦  «        }t          || j        | j        ¦  «        }| j        D ]\  }}||j        |<   Œ|S rm   )r€   rC   r   r;   ry   rk   rÙ   )r9   r€   rŽ   Úkeyr¢   s        r<   r¿   zElement.cloneNodeL  sk   € ØŒxÐ#Ð#Ð#ØŒi×Ò ¤¤¨t¬~Ñ>Ô>ˆÝ�s˜DœI t¤~Ñ6Ô6ˆØœ/ð 	)ð 	)‰JˆC�Ø#(ˆDŒO˜CÑ Ð Øˆr>   c                 óT   — | j         €t          d         | j        fS | j         | j        fS )NÚhtml)ry   r   r;   ro   s    r<   ÚgetNameTuplezElement.getNameTupleT  s+   € ØŒ>Ð!Ý˜fÔ% t¤yÐ0Ð0à”> 4¤9Ð,Ð,r>   )rŽ   r¹   r0   Nrm   )rŽ   r¹   rè   r¹   r0   Nr˜   )rð   rk   r0   N) rZ   r[   r\   r	   r   r^   r!   ri   r“   r›   rÖ   r   rJ   r   r×   r   r   rØ   rã   rÀ   rÙ   rç   rä   rï   rÿ   r_   r  rÁ   rÂ   r¿   r  Ú	nameTuplerX   r>   r<   rk   rk   c  s  € € € € € € Ø˜Ô&Ð&Ð&Ñ&ð;Øð;Ø"1ð;Ø>FÀ}Ô>Uð;ð ;ð ;ð ;ð3ð 3ð 3ð 3ðj"˜xð "ð "ð "ð "ð ).¨c°5¸¸c¸´?Ð.BÔ(CÐ˜IÐCÐCÑCð &*Ð*@À#Ð*EÔ%FÐ˜ÐFÐFÑFð=¨Ð1DÔ(Eð =È$ð =ð =ð =ð =ðB �˜-¨Ñ7Ô7€Jð HLð#ð #Øð#Ø'/Ð0CÔ'Dð#à	ð#ð #ð #ð #ðØ'ðØ2Eðà	ðð ð ð ð&ð ð ð ðN2ð N2ð N2ð N2ðl>˜Dð >ð >ð >ð >ð
Ð+Ô0ð ð ð ð ð-˜e H¨]Ô$;¸SÐ$@ÔAð -ð -ð -ð -ð �˜Ñ&Ô&€I€I€Ir>   rk   c                   ó   — e Zd Zdeddfd„ZdS )rƒ   r‘   rC   r#   c                 óp   — t           j                             | d ¦  «         d | _        || _        || _        d S rm   )rÁ   rÂ   ri   r€   rº   rC   )r9   r‘   rC   s      r<   ri   zTextNode.__init___  s4   € ÝÔ×&Ò& t¨TÑ2Ô2Ð2ØˆŒØˆŒØˆŒ	ˆ	ˆ	r>   N)rZ   r[   r\   r    ri   rX   r>   r<   rƒ   rƒ   ]  s6   € € € € € ð ð °ð ð ð ð ð ð r>   rƒ   )5Ú__license__Ú__all__Útypingr   r   r   r   r	   r
   r   r   r   Útyping_extensionsr   Úbs4._typingr   r   r   r   r   r   r6   Úbs4.builderr   r   r   r   r   Úbs4.elementr   r   r   r&   Úhtml5lib.constantsr   r   r   r    r!   rg   r#   Úhtml5lib.treebuildersr$   rÁ   r   ÚTreeBuilderr*   Úobjectr›   rÂ   r¹   rk   rƒ   rX   r>   r<   ú<module>r     s3  ðà€ð ð€ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð (Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 €€€ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð "Ø!Ð!Ð!Ð!Ð!Ð!à :Ð :Ð :Ð :Ð :Ð :ðpFð pFð pFð pFð pF�ñ pFô pFð pFðfd$ð d$ð d$ð d$ð d$Ð-Ô9ñ d$ô d$ð d$ðN+/ð +/ð +/ð +/ð +/ˆvñ +/ô +/ð +/ð\$ð $ð $ð $ð $Ð(Ô-ñ $ô $ð $ð@w'ð w'ð w'ð w'ð w'Ðñ w'ô w'ð w'ðtð ð ð ð Ð ñ ô ð ð ð r>   