Ë
    £ëi?.  ã                   ót  — d 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	m
Z
mZmZmZmZmZmZmZmZmZ i i i d
œZdZ G d„ d«      Z G d„ d«      Zd„ Zd/d„Zd„ Z ed«      d0d„«       Z edd¬«      e
d„ «       «       Z ed«      ed„ «       «       Z ed«      ed„ «       «       Z ed«      ed„ «       «       Z ed«      d„ «       Z  ed«      d„ «       Z! ed«      e
ed„ «       «       «       Z" ed«      d„ «       Z# edd¬«      d „ «       Z$ edd!d¬«       edd"d¬«      d#„ «       «       Z% ed«      e
d$„ «       «       Z& edd¬«      d%„ «       Z' ed«      ed&„ «       «       Z( edd¬«      d'„ «       Z) edd¬«      d(„ «       Z* ed)d*d¬+«      ed,„ «       «       Z+ ed)«      ed-„ «       «       Z, ed)«      e
d.„ «       «       Z-y)1z,Validate descriptors used for some at-rules.é    )ÚinfNé   )ÚLOGGERé   )Ú
propertiesé   )ÚInvalidValuesÚcomma_separated_listÚget_custom_identÚget_keywordÚ
get_numberÚget_single_keywordÚget_urlÚremove_whitespaceÚsingle_keywordÚsingle_tokenÚsplit_on_comma)ú	font-faceúcounter-styleúcolor-profile)zfont-displayc                   ó   — e Zd ZdZdZy)ÚNoneFakeTokenÚidentÚnoneN©Ú__name__Ú
__module__Ú__qualname__ÚtypeÚlower_value© ó    úe/var/www/html/chat/reports/venv/lib/python3.12/site-packages/weasyprint/css/validation/descriptors.pyr   r      s   „ Ø€DØ�Kr"   r   c                   ó   — e Zd ZdZdZy)ÚNormalFakeTokenr   ÚnormalNr   r!   r"   r#   r%   r%      s   „ Ø€DØ�Kr"   r%   c              #   óæ  K  — |D ]Ò  }|j                   dk7  s|j                  rŒt        |j                  «      }	 |j                  t
        v rŒH|j                  t        |    vrt        d«      ‚t        |    |j                     }|j                  r
 |||«      }n ||«      }|€t        ‚|j                  |ff}|D ]  \  }	}|	j!                  dd«      |f–— Œ ŒÔ y# t        $ rŠ}t        j                  d|j                  t        j                  |j                  «      |j                  |j                  |j                  r|j                  d   r|j                  d   nd«       Y d}~�Œdd}~ww xY w­w)	zŸFilter unsupported names and values for descriptors.

    Log a warning for every ignored descriptor.

    Return a iterable of ``(name, value)`` tuples.

    Údeclarationzdescriptor not supportedNzIgnored `%s:%s` at %d:%d, %s.r   zinvalid valueú-Ú_)r   Ú	importantr   ÚvalueÚnameÚNOT_PRINT_MEDIAÚDESCRIPTORSr	   Úwants_base_urlr   ÚwarningÚtinycss2Ú	serializeÚsource_lineÚsource_columnÚargsÚreplace)
ÚruleÚbase_urlÚdescriptorsÚ
descriptorÚtokensÚfunctionr,   ÚresultÚexcÚ	long_names
             r#   Úpreprocess_descriptorsrA   #   sY  è ø€ ð "ò 5ˆ
Ø�?‰?˜mÒ+¨z×/CÒ/CØÜ" :×#3Ñ#3Ó4ˆð	Ø�‰¤/Ñ1ØØ—‘¬°DÑ(9Ñ9Ü#Ð$>Ó?Ð?ä" 4Ñ(¨¯©Ñ9ˆHØ×&Ò&Ù  ¨Ó2‘á  Ó(�Øˆ}Ü#Ð#Ø!—‘¨Ð.Ð0ˆFð !'ò 	5ÑˆI�uØ×#Ñ# C¨Ó-¨uÐ4Ó4ñ	5ñ55øô$ ò 	Ü�N‰NØ/Ø—‘¤×!3Ñ!3°J×4DÑ4DÓ!EØ×&Ñ&¨
×(@Ñ(@Ø"Ÿxšx¨C¯H©H°QªK�—‘˜’¸_ô	Nõ
 ûð	üs<   ‚7E1ºCÁE1ÁA+CÂ8#E1Ã	E.Ã$A?E)Å#E1Å)E.Å.E1c                 ó   ‡ ‡‡— ˆˆ ˆfd„}|S )ul  Decorator adding a function to the ``DESCRIPTORS``.

    The name of the descriptor covered by the decorated function is set to
    ``descriptor_name`` if given, or is inferred from the function name
    (replacing underscores by hyphens).

    :param wants_base_url:
        The function takes the stylesheetâ€™s base URL as an additional
        parameter.

    c                 ó”   •— ‰€| j                   j                  dd«      }n‰}|t        ‰   vsJ |«       ‚‰| _        | t        ‰   |<   | S )z(Add ``function`` to the ``DESCRIPTORS``.r*   r)   )r   r7   r/   r0   )r=   r-   Údescriptor_namer8   r0   s     €€€r#   Ú	decoratorzdescriptor.<locals>.decoratorU   sZ   ø€ àÐ"Ø×$Ñ$×,Ñ,¨S°#Ó6‰Dà"ˆDØœ; tÑ,Ñ,Ð2¨dÓ2Ð,à"0ˆÔØ"*Œ�DÑ˜$ÑØˆr"   r!   )r8   rD   r0   rE   s   ``` r#   r;   r;   I   s   ú€ ö
ð Ðr"   c              #   ó°  K  — t        | «      }|dv r+dD ]  }|t        gf–— Œ |dk(  rt        nt        }d|gf–— y g g g g g g dœ}| D ]f  }t        |«      }|dk(  rt        ‚|D ]D  }d|j                  dd«      › �} t        t        |«      |g«      sŒ0||   j                  |«        Œa t        ‚ |j                  «       D ]  \  }} | sŒ	d|› �| f–— Œ y ­w)	N)r&   r   )z-alternatesz-capsz-east-asianz-numericz	-positionr&   z
-ligatures)Ú
alternatesÚcapsz
east-asianÚ	ligaturesÚnumericÚpositionÚfont_variant_r)   r*   )
r   r%   r   r   r	   r7   Úgetattrr   ÚappendÚitems)r<   ÚkeywordÚsuffixÚtokenÚfeaturesÚfeatureÚfunction_names          r#   Úexpand_font_variantrV   c   s#  è ø€ Ü  Ó(€GØÐ$Ñ$ðò 	,ˆFð œ?Ð+Ð+Ó+ð	,ð $+¨hÒ#6•¼MˆØ˜U˜GÐ#Ó#ð ØØØØØñˆð ò 	$ˆEÜ! %Ó(ˆGØ˜(Ò"ä#Ð#Ø#ò $�Ø"/°·±ÀÀSÓ0IÐ/JÐ K�Ø5”7œ: }Ó5°u°gÕ>Ø˜WÑ%×,Ñ,¨UÔ3Ùð	$ô $Ð#ð	$ð  (Ÿ~™~Ó/ò 	.‰OˆG�VÚØ˜7˜)�} fÐ-Ó-ñ	.ùs   ‚BCÂ6CÃ
Cr   c                 óî   ‡— dgŠ|r‰j                  d«       t        | «      dk(  r!| d   j                  dk(  r| d   j                  S | r-t	        ˆfd„| D «       «      rdj                  d„ | D «       «      S y	y	)
z&``font-family`` descriptor validation.r   Ú
whitespacer   r   Ústringc              3   ó:   •K  — | ]  }|j                   ‰v –— Œ y ­w)N©r   )Ú.0rR   Úallowed_typess     €r#   ú	<genexpr>zfont_family.<locals>.<genexpr>�   s   øè ø€ ÒF°e�e—j‘j MÔ1ÑFùs   ƒú c              3   óT   K  — | ]   }|j                   d k(  sŒ|j                  –— Œ" y­w)r   N)r   r,   )r\   rR   s     r#   r^   zfont_family.<locals>.<genexpr>Ž   s&   è ø€ ò FØ!¨u¯z©z¸WÓ/DˆE�K�KñFùs   ‚(—(N)rN   Úlenr   r,   ÚallÚjoin)r<   Úallow_spacesr]   s     @r#   Úfont_familyre   …   s€   ø€ ð �I€MÙØ×Ñ˜\Ô*Ü
ˆ6ƒ{�aÒ˜F 1™IŸN™N¨hÒ6Ø�a‰y�‰ÐÙ”#ÓF¸vÔFÔFØ�x‰xñ FØ%+ôFó Fð 	Fð G€vr"   T)r0   c                 ó*  — t        | «      dv r†| dd | d   }} |j                  dk(  r|j                  dk(  r
| dd | d   }} |j                  dk(  r(|j                  dk(  rdt        |j                  d¬«      fS t        ||«      }|�|d	   d
k(  r|d   S yyy)z``src`` descriptor validation.)r   r   Néÿÿÿÿr=   ÚformatÚlocalT)rd   r   Úurlr   )ra   r   Ú
lower_namere   Ú	argumentsr   ©r<   r9   rR   rj   s       r#   Úsrcrn   ’   s®   € ô ˆ6ƒ{�fÑØ˜s ˜ V¨B¡Z�ˆØ�:‰:˜Ò#¨×(8Ñ(8¸HÒ(DØ" 3 B˜K¨°©�EˆFØ�:‰:˜Ò#¨×(8Ñ(8¸GÒ(CØœK¨¯©ÀdÔKÐKÐKÜ�e˜XÓ&ˆØˆ?˜s 1™v¨šØ�q‘6ˆMð  /ˆ?ð r"   c                 ó
   — | dv S )z%``font-style`` descriptor validation.)r&   ÚitalicÚobliquer!   ©rP   s    r#   Ú
font_stylers   ¡   s   € ð Ð5Ð5Ð5r"   c                 óz   — t        | «      }|dv r|S t        | d¬«      x}r|j                  dv r|j                  S yy)z&``font-weight`` descriptor validation.)r&   ÚboldT©Úinteger)	éd   éÈ   i,  i�  iô  iX  i¼  i   i„  N)r   r   r,   )rR   rP   Únumbers      r#   Úfont_weightr{   ¨   sP   € ô ˜%Ó €GØÐ$Ñ$ØˆÜ˜E¨4Ô0Ð0€vÐ0Ø�<‰<ÐHÑHØ—<‘<Ðð Ið 1r"   c                 ó
   — | dv S )z'``font-stretch`` descriptor validation.)	zultra-condensedzextra-condensedÚ	condensedzsemi-condensedr&   zsemi-expandedÚexpandedzextra-expandedzultra-expandedr!   rr   s    r#   Úfont_stretchr   ´   s   € ð ð Ið Ið Ir"   c                 ó,   — t        j                  | «      S )z0``font-feature-settings`` descriptor validation.)r   Úfont_feature_settings)r<   s    r#   r�   r�   ¾   s   € ô ×+Ñ+¨FÓ3Ð3r"   c                 óê   — t        | «      dk(  rt        | d   «      }|dv rg S g }t        | «      D ]0  \  }}	 |j                  t	        j
                  |d|› �d¬«      «       Œ2 |S # t        $ r Y  yw xY w)z'``font-variant`` descriptor validation.r   r   )r&   r   Úinheritzfont-variantT)ÚrequiredN)ra   r   rV   rN   r   Úvalidate_non_shorthandr	   )r<   rP   Úvaluesr-   Ú
sub_tokenss        r#   Úfont_variantrˆ   Ä   s“   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØÐ3Ñ3ØˆIØ€FÜ/°Ó7ò Ñˆˆjð	Ø�M‰Mœ*×;Ñ;Ø˜l¨4¨&Ð1¸DôBõ Cðð €Møô ò 	Úð	ús   ·*A%Á%	A2Á1A2c                 ó&   — | j                   dk(  r| S y)z(``unicode_range`` descriptor validation.zunicode-rangeNr[   )rR   s    r#   Úunicode_rangerŠ   Õ   s   € ð
 ‡z�z�_Ò$Øˆð %r"   r   c                 ó.  — t        | «      dkD  ryt        | d   «      }|dk(  r%t        | «      dk(  rt        | d   «      x}r||dfS yy|dk(  r1t        | «      dk(  ryt        | d   d¬	«      x}rdd|j                  fS yt        | «      dk(  r
|d
v rd|dfS yy)z!``system`` descriptor validation.r   Nr   Úextendsr   Úfixed)Nr�   r   Trv   )ÚcyclicrJ   Ú
alphabeticÚsymbolicÚadditive)ra   r   r   r,   )r<   rP   Úsecond_keywordrz   s       r#   Úsystemr“   Þ   sÔ   € ô ˆ6ƒ{�Q‚Øä˜& ™)Ó$€GØ�)ÒÜˆv‹;˜!ÒÜ!,¨V°A©YÓ!7Ð7ˆ~Ð7Ø °Ð6Ð6ð 8ð ð 
�GÒ	Üˆv‹;˜!ÒØ%Ü! &¨¡)°TÔ:Ð:ˆVÐ:Ø˜' 6§<¡<Ð0Ð0ð ;ä	ˆV‹˜Ò	˜gð *Gñ Gà�g˜tÐ$Ð$ðGÐ	r"   c                 óv  — t        | «      dkD  ryg }t        | «      } | rl| j                  d«      }|j                  dv r|j	                  d|j
                  f«       Œ?t        ||«      }|�|d   dk(  r|j	                  d|d   f«       | rŒlt        |«      dk(  r|j	                  d«       t        |«      dk(  r|S y)	z#``negative`` descriptor validation.r   Nr   ©rY   r   rY   rj   r   )rY   Ú )ra   ÚlistÚpopr   rN   r,   r   ©r<   r9   r†   rR   rj   s        r#   Únegativerš   ó   s¹   € ô ˆ6ƒ{�Q‚Øà€FÜ�&‹\€FÙ
Ø—
‘
˜1“ˆØ�:‰:Ð,Ñ,Ø�M‰M˜8 U§[¡[Ð1Ô2ØÜ�e˜XÓ&ˆØˆ?˜s 1™v¨šØ�M‰M˜5 # a¡&˜/Ô*ò ô ˆ6ƒ{�aÒØ�‰�nÔ%ä
ˆ6ƒ{�aÒØˆð r"   ÚprefixrQ   c                 óž   — t        | «      dk7  ry| \  }|j                  dv rd|j                  fS t        ||«      }|�|d   dk(  rd|d   fS yy)z1``prefix`` and ``suffix`` descriptors validation.r   Nr•   rY   r   rj   )ra   r   r,   r   rm   s       r#   Úprefix_suffixr�     sf   € ô ˆ6ƒ{�aÒØà�F€EØ‡z�zÐ(Ñ(Ø˜%Ÿ+™+Ð&Ð&Ü
�%˜Ó
"€CØ
€˜3˜q™6 Uš?Ø�s˜1‘vˆÐð +€r"   c                 ó¦  — t        | «      dk(  rt        | «      }|dk(  ryy	t        | «      dk(  r£g }t        | «      D ]m  \  }}|j                  dk(  r.|j                  dk(  r|j                  |rt        nt         «       ŒCt        |d¬«      x}sŒS|j                  |j                  «       Œo t        |«      dk(  r|d   |d   k  rt        |«      S y	y	y	)
z ``range`` descriptor validation.r   Úautor   r   ÚinfiniteTrv   r   N)	ra   r   Ú	enumerater   r,   rN   r   r   Útuple)r<   rP   r†   ÚirR   rz   s         r#   Úranger¤     sÒ   € ô ˆ6ƒ{�aÒÜ$ VÓ,ˆØ�fÒØð ä	ˆV‹˜Ò	ØˆÜ! &Ó)ò 	,‰HˆAˆuØ�z‰z˜WÒ$¨¯©¸
Ò)BØ—‘¡Q�c¬S¨DÕ1Ü% e°TÔ:Ð:�Ñ:Ø—‘˜fŸl™lÕ+ð		,ô
 ˆv‹;˜!Ò  q¡	¨V°A©YÒ 6Ü˜“=Ð ð !7Ðð 
r"   c                 ó"  — t        | «      dk(  r�ddg}| D ]h  }t        |dd¬«      x}r|d   €/|j                  |d<   n|j                  dv rd|j                  f|d	<   t	        ||«      }|€ŒV|d   d
k(  sŒ_d
|d	   f|d	<   Œj d|vrt        |«      S yy)z``pad`` descriptor validation.r   NTF)rw   rš   r   r•   rY   r   rj   )ra   r   r,   r   r   r¢   )r<   r9   r†   rR   rz   rj   s         r#   Úpadr¦   -  s¼   € ô ˆ6ƒ{�aÒØ˜�ˆØò 	,ˆEÜ# E°4À%ÔHÐHˆvÐHØ˜!‘9Ð$Ø &§¡�F˜1’IØ—‘Ð2Ñ2Ø% u§{¡{Ð3��q‘	Ü˜% Ó*ˆCØ‰ 3 q¡6¨U£?Ø" C¨¡F˜O��q’	ð	,ð �vÑÜ˜“=Ð ð ð r"   c                 ó(   — t        | «      }|dk7  r|S y)z#``fallback`` descriptor validation.r   N)r   )rR   r   s     r#   Úfallbackr¨   @  s   € ô ˜UÓ#€EØ�‚Øˆð r"   c                 óÞ   — g }| D ]\  }|j                   dv r|j                  d|j                  f«       Œ/t        ||«      }|�|d   dk(  r|j                  d|d   f«       Œ\ y t	        |«      S )z"``symbols`` descriptor validation.r•   rY   Nr   rj   r   )r   rN   r,   r   r¢   r™   s        r#   Úsymbolsrª   I  s~   € ð €FØò ˆØ�:‰:Ð,Ñ,Ø�M‰M˜8 U§[¡[Ð1Ô2ØÜ�e˜XÓ&ˆØˆ?˜s 1™v¨šØ�M‰M˜5 # a¡&˜/Ô*ØÙðô �‹=Ðr"   c                 ó´   — g }t        | «      D ]>  }t        t        |«      |«      x}s y|r|d   d   |d   k  r y|j                  |«       Œ@ t	        |«      S )z+``additive-symbols`` descriptor validation.Nrg   r   )r   r¦   r   rN   r¢   )r<   r9   ÚresultsÚpartr>   s        r#   Úadditive_symbolsr®   Y  si   € ð €GÜ˜vÓ&ò ˆÜÔ/°Ó5°xÓ@Ð@�Ð@ÙÙ�w˜r‘{ 1‘~¨°©Ò2ÙØ�‰�vÕðô �‹>Ðr"   r   rn   )rD   r0   c                 ó<   — t        | |«      }|�|d   dk(  r|d   S y y )Nr   rj   r   )r   )rR   r9   rj   s      r#   Úcolor_profile_srcr°   f  s/   € ô �%˜Ó
"€CØ
€˜3˜q™6 Uš?Ø�1‰vˆð +€r"   c                 ó   — d}| |v r| S y )N)zrelative-colorimetriczabsolute-colorimetricÚ
perceptualÚ
saturationr!   )rP   Úpossible_valuess     r#   Úrendering_intentrµ   n  s   € ðV€Oà�/Ñ!Øˆð "r"   c                 óp   — g }| D ].  }|j                   dk(  r|j                  |j                  «       Œ. y  |S )Nr   )r   rN   r,   )r<   Ú
componentsrR   s      r#   r·   r·   w  sA   € ð €JØò ˆØ�:‰:˜Ò Ø×Ñ˜eŸk™kÕ*áð	ð
 Ðr"   )NF)F).Ú__doc__Úmathr   r2   Úloggerr   r–   r   r<   r	   r
   r   r   r   r   r   r   r   r   r   r/   r.   r   r%   rA   r;   rV   re   rn   rs   r{   r   r�   rˆ   rŠ   r“   rš   r�   r¤   r¦   r¨   rª   r®   r°   rµ   r·   r!   r"   r#   ú<module>r»      sÁ  ðÙ 2å ã å Ý ÷÷ ÷ ñ ð ØØñ€ð
€÷
ñ ÷
ñ ò
#5óLò4.ñD ˆKÓò	Fó ð	Fñ ˆK¨Ô-Øñ
ó ó .ð
ñ ˆKÓØñ6ó ó ð6ñ
 ˆKÓØñ ó ó ð ñ ˆKÓØñIó ó ðIñ ˆKÓñ4ó ð4ñ
 ˆKÓñó ðñ  ˆKÓØØñó ó ó ðñ ˆOÓñ%ó ð%ñ( ˆO¨DÔ1ñó 2ðñ. ˆO˜X°dÔ;ÙˆO˜X°dÔ;ñ
ó <ó <ð
ñ ˆOÓØñ!ó ó ð!ñ" ˆO¨DÔ1ñ!ó 2ð!ñ$ ˆOÓØñó ó ðñ ˆO¨DÔ1ñó 2ðñ ˆO¨DÔ1ñ	ó 2ð	ñ ˆO¨UÀ4ÔHØñó ó Iðñ ˆOÓØñó ó ðñ ˆOÓØñó ó ñr"   