o
    |¨Êhˆ*  ã                   @   s˜   d dl Z e  d¡Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z	eeeeee	dœZ
i Zddd„Zddd„Zddd„Zddd„Zddd„ZdS ) é    NzY('[^']*'|"[^"]*"|::|//?|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|\s+Tc           
   	   c   sÞ   � |r|  d ¡p|  d¡nd }d}t | ¡D ]V}|\}}|re|d dkred|v rQ|rQ| dd¡\}}	z|s7t‚|d|| |	f fV  W n tyP   td| ƒ‚w |r_|s_|d||f fV  n|V  d}q|V  |d	k}qd S )
NÚ Fr   Ú{ú:é   z{%s}%sz!prefix %r not found in prefix mapú@)ÚgetÚxpath_tokenizer_reÚfindallÚsplitÚKeyErrorÚSyntaxError)
ÚpatternÚ
namespacesÚwith_prefixesÚdefault_namespaceÚparsing_attributeÚtokenÚttypeÚtagÚprefixÚuri© r   úC/var/www/html/env/lib/python3.10/site-packages/lxml/_elementpath.pyÚxpath_tokenizerI   s0   €€ ÿ
îr   c                    s   |d ‰ ‡ fdd„}|S )Nr   c                 3   ó    � | D ]
}|  ˆ ¡E d H  qd S ©N©Úiterchildren©ÚresultÚelem©r   r   r   Úselectd   ó   €ÿzprepare_child.<locals>.selectr   ©Únextr   r"   r   r!   r   Úprepare_childb   s   r&   c                 C   ó   dd„ }|S )Nc                 s   s    � | D ]
}|  d¡E d H  qd S )NÚ*r   r   r   r   r   r"   j   r#   zprepare_star.<locals>.selectr   r$   r   r   r   Úprepare_stari   s   r)   c                 C   r'   )Nc                 S   s   | S r   r   )r   r   r   r   r"   p   s   zprepare_self.<locals>.selectr   r$   r   r   r   Úprepare_selfo   s   r*   c                    sB   | ƒ }|d dkrd‰ n|d s|d ‰ nt dƒ‚‡ fdd„}|S )Nr   r(   r   zinvalid descendantc                 3   r   r   )Úiterdescendantsr   r!   r   r   r"   |   r#   z"prepare_descendant.<locals>.select)r   r$   r   r!   r   Úprepare_descendantt   s   
r,   c                 C   r'   )Nc                 s   s&   � | D ]}|  ¡ }|d ur|V  qd S r   )Ú	getparent)r   r    Úparentr   r   r   r"   ‚   s   €€ýzprepare_parent.<locals>.selectr   r$   r   r   r   Úprepare_parent�   s   r/   c                    sþ  d}g }	 | ƒ }|d dkrn-|dkrq|d r,|d d d… dv r,d|d dd… f}||d p2d	7 }|  |d ¡ q|d
krL|d ‰‡fdd„}|S |dkra|d ‰|d ‰‡‡fdd„}|S |d	kryt d|d ¡sy|d ‰‡fdd„}|S |dks‰|dkr¤t d|d ¡s¤|d ‰|d ‰ˆrœ‡‡fdd„}|S ‡fdd„}|S |d	ks°|dks°|dkrû|d	krÍt|d ƒd ‰ ˆ dk rÌˆ dkrÈtdƒ‚tdƒ‚n&|d dkr×tdƒ‚|dkrñz
t|d ƒd ‰ W n tyð   tdƒ‚w d‰ ‡ fdd„}|S tdƒ‚)Nr   r   r   ú])r   r   z'"ú'éÿÿÿÿú-z@-c                 3   s$   � | D ]}|  ˆ ¡d ur|V  qd S r   ©r   r   )Úkeyr   r   r"   Ÿ   ó   €€þz!prepare_predicate.<locals>.selectz@-='c                 3   s$   � | D ]}|  ˆ ¡ˆkr|V  qd S r   r4   r   )r5   Úvaluer   r   r"   ¨   r6   z-?\d+$c                 3   s&   � | D ]}|  ˆ ¡D ]}|V   qd S r   r   )r   r    Ú_r!   r   r   r"   °   s   €€ýz.='z-='c                 3   s<   � | D ]}|  ˆ ¡D ]}d | ¡ ¡ˆkr|V   nq
qd S ©Nr   )r   ÚjoinÚitertext)r   r    Úe)r   r7   r   r   r"   »   s   €þ€þc                 3   s(   � | D ]}d  | ¡ ¡ˆ kr|V  qd S r9   )r:   r;   r   )r7   r   r   r"   Â   s   €€þz-()z-()-z3indices in path predicates are 1-based, not 0-basedzpath index >= 1 expectedÚlastzunsupported functioné   zunsupported expressionc              	   3   sZ   � | D ]'}|  ¡ }|d u rqzt| |j¡ƒ}|ˆ  |u r |V  W q ty*   Y qw d S r   )r-   Úlistr   r   Ú
IndexError)r   r    r.   Úelems)Úindexr   r   r"   Ü   s   €€ÿ÷zinvalid predicate)ÚappendÚreÚmatchÚintr   Ú
ValueError)r%   r   Ú	signatureÚ	predicater"   r   )rB   r5   r   r7   r   Úprepare_predicate‰   sp   ö üÿûÿrJ   )r   r(   Ú.z..z//ú[c                 C   s²  | dd… dkr| d7 } | f}|rLd|v rBd|v r-|d |d kr-t d|d |d f ƒ‚||d fttdd„ | ¡ D ƒƒƒ 7 }n
|tt| ¡ ƒƒ7 }zt| W S  tyZ   Y nw ttƒd	kret ¡  | dd
… dkrqtdƒ‚t	t
| ||d�ƒ}z|j}W n ty‹   |j}Y nw z|ƒ }W n tyœ   tdƒ‚w g }	 z| t|d  ||ƒ¡ W n ty¹   tdƒ‚w z|ƒ }|d dkrÇ|ƒ }W n	 tyÑ   Y nw q |t|< |S )zcompile selector patternr2   Nú/r(   r   z2Ambiguous default namespace provided: %r versus %rc                 s   s    � | ]}|d  dur|V  qdS )r   Nr   )Ú.0Úitemr   r   r   Ú	<genexpr>  s   € ÿz'_build_path_iterator.<locals>.<genexpr>éd   r   z#cannot use absolute path on element©r   zempty path expressionr   zinvalid path)rG   ÚtupleÚsortedÚitemsÚ_cacher   ÚlenÚclearr   Úiterr   r%   ÚAttributeErrorÚ__next__ÚStopIterationrC   Úops)Úpathr   r   Ú	cache_keyÚstreamÚ_nextr   Úselectorr   r   r   Ú_build_path_iteratorú   sf   ÿÿ
ÿ

þ
ÿÿ€ÿ÷rc   c                 C   s.   t |||d�}t| fƒ}|D ]}||ƒ}q|S ©NrR   )rc   rY   )r    r^   r   r   rb   r   r"   r   r   r   Úiterfind3  s
   

re   c                 C   s0   t | |||d�}zt|ƒW S  ty   Y d S w rd   )re   r%   r\   )r    r^   r   r   Úitr   r   r   Úfind>  s   
ÿrg   c                 C   s   t t| ||ƒƒS r   )r?   re   )r    r^   r   r   r   r   r   r	   I  s   r	   c                 C   s&   t | |||d�}|d u r|S |jpdS )NrR   r   )rg   Útext)r    r^   Údefaultr   r   Úelr   r   r   ÚfindtextP  s   
rk   )NT)T)NNT)rD   Úcompiler   r   r&   r)   r*   r,   r/   rJ   r]   rV   rc   re   rg   r	   rk   r   r   r   r   Ú<module>   s0   :ÿ
cú

9

