§
    ¤”j»  ã                   óŽ   — d dl mZmZmZ d dlmZ d dlZd dlmZ ddl	m
Z
 ddlmZ  ej        d	¦  «        Zd
„ Z ee¦  «        ZdS )é    )Úabsolute_importÚdivisionÚunicode_literals)ÚOrderedDictN)Ústring_typesé   )Úbaseé   )ÚmoduleFactoryFactoryz{([^}]*)}(.*)c                 óŒ   ‡— | }|                      d¦  «        j        Š G ˆfd„dt          j        ¦  «        }t	          ¦   «         S )NÚasdc                   ó0   •— e Zd ZdZˆ fd„Zd„ Zd„ Zd„ ZdS )ú#getETreeBuilder.<locals>.TreeWalkeraË  Given the particular ElementTree representation, this implementation,
        to avoid using recursion, returns "nodes" as tuples with the following
        content:

        1. The current element

        2. The index of the element relative to its parent

        3. A stack of ancestor elements

        4. A flag "text", "tail" or None to indicate if the current node is a
           text node; either the text or tail of the current element (1)
        c                 ó  •— t          |t          ¦  «        r)|\  }}}}|dv rt          j        t	          ||¦  «        fS |}t          |d¦  «        s|                     ¦   «         }|j        dv rt          j        fS |j        dk    r;t          j	        |j
        |                     d¦  «        |                     d¦  «        fS |j        ‰k    rt          j        |j
        fS t          |j        t          ¦  «        sJ t          |j        ¦  «        ¦   «         ‚t                               |j        ¦  «        }|r|                     ¦   «         \  }}n	d }|j        }t%          ¦   «         }t'          |j                             ¦   «         ¦  «        D ]V\  }	}
t                               |	¦  «        }|r.|
||                     d¦  «        |                     d¦  «        f<   ŒO|
|d |	f<   ŒWt          j        |||t1          |¦  «        p|j
        fS )	N©ÚtextÚtailÚtag)ÚDOCUMENT_ROOTÚDOCUMENT_FRAGMENTz
<!DOCTYPE>ÚpublicIdÚsystemIdr   r
   )Ú
isinstanceÚtupler	   ÚTEXTÚgetattrÚhasattrÚgetrootr   ÚDOCUMENTÚDOCTYPEr   ÚgetÚCOMMENTr   ÚtypeÚ
tag_regexpÚmatchÚgroupsr   ÚlistÚattribÚitemsÚgroupÚELEMENTÚlen)ÚselfÚnodeÚeltÚ_Úflagr%   Ú	namespacer   ÚattrsÚnameÚvalueÚElementTreeCommentTypes              €úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/html5lib/treewalkers/etree.pyÚgetNodeDetailsz2getETreeBuilder.<locals>.TreeWalker.getNodeDetails    sï  ø€ Ý˜$¥Ñ&Ô&ð Ø"&‘��Q˜˜4ØÐ+Ð+Ð+Ýœ9¥g¨c°4Ñ&8Ô&8Ð8Ð8à�Då˜4 Ñ'Ô'ð &Ø—|’|‘~”~�àŒxÐAÐAÐAÝœÐ'Ð'à”˜\Ò)Ð)Ýœ d¤iØŸš Ñ,Ô,¨d¯hªh°zÑ.BÔ.BðDð Dð ”Ð3Ò3Ð3Ý”| T¤YÐ.Ð.õ " $¤(­LÑ9Ô9ÐIÐI½4ÀÄ¹>¼>ÑIÔIÐIå"×(Ò(¨¬Ñ2Ô2�Øð #Ø%*§\¢\¡^¤^‘N�I˜s˜sà $�IØœ(�CÝ#™œ�Ý#'¨¬×(9Ò(9Ñ(;Ô(;Ñ#<Ô#<ð 4ð 4‘K�D˜%Ý&×,Ò,¨TÑ2Ô2�EØð 4ØBG˜˜uŸ{š{¨1™~œ~¨u¯{ª{¸1©~¬~Ð>Ñ?Ð?à.3˜˜t T˜lÑ+Ð+Ýœ i°Ø�s 4™yœyÐ5¨D¬Ið7ð 7ó    c                 óÜ   — t          |t          ¦  «        r|\  }}}}n|d g d f\  }}}}|dv rd S |j        r|||dfS t          |¦  «        r!|                     |¦  «         |d         d|d fS d S )Nr   r   r   )r   r   r   r,   Úappend©r-   r.   ÚelementÚkeyÚparentsr1   s         r7   ÚgetFirstChildz1getETreeBuilder.<locals>.TreeWalker.getFirstChildH   sž   € Ý˜$¥Ñ&Ô&ð CØ.2Ñ+�˜˜g t tà.2°D¸"¸dÐ.BÑ+�˜˜g tàÐ'Ð'Ð'Ø�tà”<ð  Ø" C¨°&Ð8Ð8Ý˜‘\”\ð  Ø—N’N 7Ñ+Ô+Ð+Ø" 1œ: q¨'°4Ð7Ð7à˜4r9   c                 óB  — t          |t          ¦  «        r|\  }}}}nd S |dk    r2t          |¦  «        r!|                     |¦  «         |d         d|d fS d S |j        r|dk    r|||dfS |t          |d         ¦  «        dz
  k     r|d         |dz            |dz   |d fS d S )Nr   r   r   éÿÿÿÿr   )r   r   r,   r;   r   r<   s         r7   ÚgetNextSiblingz2getETreeBuilder.<locals>.TreeWalker.getNextSiblingY   sÌ   € Ý˜$¥Ñ&Ô&ð Ø.2Ñ+�˜˜g t tà�tà�vŠ~ˆ~Ý�w‘<”<ð  Ø—N’N 7Ñ+Ô+Ð+Ø" 1œ: q¨'°4Ð7Ð7à˜4à”<ð   D¨F¢N NØ" C¨°&Ð8Ð8Ø�3˜w rœ{Ñ+Ô+¨aÑ/Ò/Ð/Ø" 2œ; s¨Q¡wÔ/°°q±¸'À4ÐGÐGà˜4r9   c                 óD  — t          |t          ¦  «        r|\  }}}}nd S |dk    r
|s|S |||d fS |                     ¦   «         }|s|S t          |d         ¦  «                             |¦  «        dk    sJ ‚|t          |d         ¦  «                             |¦  «        |d fS )Nr   rB   r   )r   r   Úpopr'   ÚcountÚindex)r-   r.   r=   r>   r?   r1   Úparents          r7   ÚgetParentNodez1getETreeBuilder.<locals>.TreeWalker.getParentNodem   s½   € Ý˜$¥Ñ&Ô&ð Ø.2Ñ+�˜˜g t tà�tà�vŠ~ˆ~Øð 7Ø"�Nà" C¨°$Ð6Ð6à Ÿš™œ�Øð RØ!�Må ¨¤Ñ,Ô,×2Ò2°6Ñ:Ô:¸aÒ?Ð?Ð?Ð?Ø!¥4¨°¬Ñ#4Ô#4×#:Ò#:¸6Ñ#BÔ#BÀGÈTÐQÐQr9   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   r@   rC   rI   )r6   s   €r7   Ú
TreeWalkerr      sk   ø€ € € € € ð	ð 	ð&	7ð &	7ð &	7ð &	7ð &	7ðP	 ð 	 ð 	 ð"	 ð 	 ð 	 ð(	Rð 	Rð 	Rð 	Rð 	Rr9   rN   )ÚCommentr   r	   ÚNonRecursiveTreeWalkerÚlocals)ÚElementTreeImplementationÚElementTreerN   r6   s      @r7   ÚgetETreeBuilderrT      sv   ø€ Ø+€KØ(×0Ò0°Ñ7Ô7Ô;ÐðlRð lRð lRð lRð lRð lRð lR•TÔ0ñ lRô lRð lRõ\ ‰8Œ8€Or9   )Ú
__future__r   r   r   Úcollectionsr   ÚreÚsixr   Ú r	   Ú_utilsr   Úcompiler$   rT   ÚgetETreeModule© r9   r7   ú<module>r^      s®   ðØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà #Ð #Ð #Ð #Ð #Ð #Ø 	€	€	€	à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )àˆRŒZ˜Ñ(Ô(€
ðrð rð rðj &Ð% oÑ6Ô6€€€r9   