
    3vjG              
       l   d dl Z d Zd Zd Zddddd	d
Zdj                  d eD              Z e j                  de de j                        Zd Z	d Z
d Zd Z edD  cg c]  } dD ]  }| |f  c}} dD  cg c]  } dD ]  }| |f  c}} z   dD  cg c]  } dD ]  }| |f  c}} z   dD  cg c]  } dD ]  }| |f  c}} z   dD cg c]  }d|f c}z   dD cg c]  }d|f c}z   dD  cg c]  } | d f c} z   g d!z         Zyc c}} w c c}} w c c}} w c c}} w c c}w c c}w c c} w )"    Nc                 T    g }t        | |j                         dj                  |      S )a  Serialize nodes to CSS syntax.

    This should be used for :term:`component values`
    instead of just :meth:`tinycss2.ast.Node.serialize` on each node
    as it takes care of corner cases such as ``;`` between declarations,
    and consecutive identifiers
    that would otherwise parse back as the same token.

    :type nodes: :term:`iterable`
    :param nodes: An iterable of :class:`tinycss2.ast.Node` objects.
    :returns: A :obj:`string <str>` representing the nodes.

     )_serialize_toappendjoin)nodeschunkss     F/root/.hermes/venv/lib/python3.12/site-packages/tinycss2/serializer.py	serializer      s%     F%'776?    c                    | dk(  ry| dd dk(  rdt        | dd       z   S | d   dk(  rd}| dd } nd}| d   }||d	v st        |      d
kD  r|n+|dk(  rdn$|dk(  rdn|dk(  rdn|dv rdt        |      z  nd|z   z  }|t        | dd       z  }|S )aX  Serialize any string as a CSS identifier

    :type value: :obj:`str`
    :param value: A string representing a CSS value.
    :returns:
        A :obj:`string <str>` that would parse as an
        :class:`tinycss2.ast.IdentToken` whose
        :attr:`tinycss2.ast.IdentToken.value` attribute equals the passed
        ``value`` argument.

    -z\-N   z--r      r   5abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ   
\A \D \C 
0123456789z\%X \)serialize_nameord)valueresultcs      r
   serialize_identifierr       s     |RayDnU12Y///Qx3ab	aA
 0 147FTM 	
t)t)t)-#a&qF nU12Y''FMr   c                 2    dj                  d | D              S )Nr   c              3   x   K   | ]2  }|d v st        |      dkD  r|n|dk(  rdn|dk(  rdn|dk(  rdnd|z    4 y	w)
z@abcdefghijklmnopqrstuvwxyz-_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZr   r   r   r   r   r   r   r   N)r   .0r   s     r
   	<genexpr>z!serialize_name.<locals>.<genexpr>=   s[         0 147FTM 	
t)t)t)q	s   8:r   r   s    r
   r   r   <   s"    77    r   \"\\r   r   r   )"r   r   r   r   r   c              #   F   K   | ]  }t        j                  |        y wN)reescape)r$   chars     r
   r%   r%   O   s     Qt299T?Qs   ![]c                 2    t         | j                  d         S )Nr   )_replacement_string_valuegroup)matchs    r
   _serialize_string_value_matchr6   Q   s    $U[[^44r   c                 6    t         j                  t        |       S r,   )_re_string_valuesubr6   r'   s    r
   serialize_string_valuer:   S   s     =uEEr   c                 2    dj                  d | D              S )Nr   c              3      K   | ]L  }|d k(  rdn@|dk(  rdn9|dk(  rdn2|dk(  rdn+|dk(  rd	n$|d
k(  rdn|dk(  rdn|dk(  rdn|dk(  rdn|dk(  rdn| N yw)'z\'r*   r(   r   r)    z\ 	z\9 r   r   r   r   r   r   (z\()z\)N r#   s     r
   r%   z serialize_url.<locals>.<genexpr>X   sy        ccdct)t)t)t)cc	
	
s   AAr&   r'   s    r
   serialize_urlrC   W   s"    77    r   c                 (   t         }d}| D ]  }|j                  dk7  r|j                  n|j                  }||f|v r	 |d       n-|dk(  r(|dk(  r|j                  j                  d      s |d       |j	                  |       |dk(  r |d       |} y)	zSerialize an iterable of nodes to CSS syntax.

    White chunks as a string by calling the provided :obj:`write` callback.

    Nliteralz/**/r   
whitespacer   declaration;)	BAD_PAIRStyper   
startswithr   )r   write	bad_pairsprevious_typenodeserialization_types         r
   r   r   i   s     IM ++/99	+Adii#':: 	-.);&Md""l2

%%d+$K5!.#J*+r   )ident
at-keywordhash	dimension#r   number)rQ   functionurlrV   
percentagerT   unicode-range)rQ   rR   rS   rT   )r   z-->)rU   r   rV   @)rQ   rW   rX   )rZ   .+)rV   rY   rT   )rQ   rW   rX   rZ   r   r[   )rQ   rW   ?rZ   z$*^~|=))rQ   z() block)|r`   )/*)r-   r   r    r   r3   r   r8   compile	MULTILINEr6   r:   rC   r   setrI   )abs   00r
   <module>rh      s   	&"J	 




  77Q7PQQ 2::"2!315r||D 5F$+. Q101 V 1V 1
 > V V 	 +/-/ V /V /	/ -868 V 8V 88 JJ!c1XJK $>>aoq>? !aX   4!4	1/8 K>s*   "D
<DD4D!D'
"D,
5D1
