
    ]h\                        d Z dZdZdZddlZddlZd dZd dZd dZd!d	Z	d"d
Z
d Zd Z eed      r G d dej                        Z eed      r G d dej                        Z G d dej                         Z G d dej"                        Z eed      rd Zn5d#dZd#dZ G d dej                         Z G d dej"                        Zd Z ej.                  e       d Z ej2                  de       y)$zPython codec for CSS.restructuredtextzWalter Doerwaldz0$Id: util.py 1114 2008-03-05 13:22:59Z cthedot $    Nc                 <   d}d}d}d}d}d}d}d}	d	}
d
}d}t        |       }|dk\  r4| d   }|dk7  r|| z  }|dk7  r	|||z   z  }|dk7  r|| z  }|dk7  r||	|z  |z   z  }|dk7  r|||
z  |z   z  }|dk\  r| d   }|dk7  r|| z  }|dk7  r	|||z   z  }|dk7  r|| z  }|dk7  r|||z  |	z  |
z   z  }|dk7  r|| z  }|dk7  r|| z  }|dk\  r| d   }|dk7  r|| z  }|dk7  r|| z  }|dk7  r|||	z  |
z   z  }|dk7  r|| z  }|dk7  r|| z  }|dk\  rE| d   }| dd dk(  r|| z  }|dk7  r|||z  |	z   z  }|dk7  r|| z  }|dk7  r||
 z  }|dk7  r|| z  }|dk(  ry||dz
  z  s||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||	k(  r|dk\  ry||
k(  r|dk\  ry ||k(  rH|dk\  rCd!}| d"t        |       |k(  r0| j                  d#t        |            }|dk\  r| t        |      | d$fS |ryy%)&a%  
    Detect the encoding of the byte string ``input``, which contains the
    beginning of a CSS file. This function returns the detected encoding (or
    ``None`` if it hasn't got enough data), and a flag that indicates whether
    that encoding has been detected explicitely or implicitely. To detect the
    encoding the first few bytes are used (or if ``input`` is ASCII compatible
    and starts with a charset rule the encoding name from the rule). "Explicit"
    detection means that the bytes start with a BOM or a charset rule.

    If the encoding can't be detected yet, ``None`` is returned as the encoding.
    ``final`` specifies whether more data will be available in later calls or
    not. If ``final`` is true, ``detectencoding_str()`` will never return
    ``None`` as the encoding.
                       @         i   i  r      ï   ÿ   þ@    »c      ¿hz  autf-8F)	utf-8-sigT)zutf-16T)z	utf-16-leF)z	utf-16-beF)zutf-32T)z	utf-32-leF)z	utf-32-beF
@charset "N"TNF)lenfind)inputfinalCANDIDATE_UTF_8_SIGCANDIDATE_UTF_16_AS_LECANDIDATE_UTF_16_AS_BECANDIDATE_UTF_16_LECANDIDATE_UTF_16_BECANDIDATE_UTF_32_AS_LECANDIDATE_UTF_32_AS_BECANDIDATE_UTF_32_LECANDIDATE_UTF_32_BECANDIDATE_CHARSET
candidateslir   prefixposs                    /home/pod-website-builder.sw7ft.com/pod-website-builder/website-analyzer/venv/lib/python3.12/site-packages/css_parser/_codec2.pydetectencoding_strr2      s   " J	UB	Qw!H;...J;25KKLLJ;111J8/2EEHYYZZJ;25HHK^^__J7aAF{222
F{ 69O OPP
F{555
F{ 36L L 3!46I!J K K
Cx222
Cx000
Qw!H;#6"66J8#6"66J;$:=P$PSf$f"ggJ;#9"99J8#4"44J7aAQqzZ/"'=&==
F{"(;>T(TWj(j&kk
F{"'=&==
Cx"':&::
Cx"'8&88
Q*Q,',,q&11bAg#11bAg#..27'..27'11bAg#11bAg#..27'..27',,q!F\c&k"f,jjc&k2!8!#f+c2D99     c                     d}| j                  |      r1| j                  dt        |            }|dk\  r| t        |      | dfS y|s|j                  |       syy)a  
    Detect the encoding of the unicode string ``input``, which contains the
    beginning of a CSS file. The encoding is detected from the charset rule
    at the beginning of ``input``. If there is no charset rule, ``"utf-8"``
    will be returned.

    If the encoding can't be detected yet, ``None`` is returned. ``final``
    specifies whether more data will be available in later calls or not. If
    ``final`` is true, ``detectencoding_unicode()`` will never return ``None``.
    r   r   r   Tr   r   )
startswithr    r   )r!   r"   r/   r0   s       r1   detectencoding_unicoder6      sg     Fjjs6{+!8#f+c*D11
 	 
f''.  r3   c                 .   d}t        |       t        |      kD  rc| j                  |      rP| j                  dt        |            }|dk\  rG|j                  dd      j	                         dk(  rd}||z   | |d z   S | S |j                  |       r|r| S |r| S y)	a  
    Replace the name of the encoding in the charset rule at the beginning of
    ``input`` with ``encoding``. If ``input`` doesn't starts with a charset
    rule, ``input`` will be returned unmodified.

    If the encoding can't be found yet, ``None`` is returned. ``final``
    specifies whether more data will be available in later calls or not.
    If ``final`` is true, ``_fixencoding()`` will never return ``None``.
    r   r   r   _-r   r   N)r   r5   r    replacelower)r!   encodingr"   r/   r0   s        r1   _fixencodingr=      s     F
5zCKF#**T3v;/Cax##C-335D'H(5;66 Lu%r3   c                     ||s't        | d      \  }}|dk(  rt        d      |r|r||} t        j                  |      | |      \  } }t	        | t        |      d      |fS )NTcss css not allowed as encoding name)r2   
ValueErrorcodecs
getdecoderr=   unicode)r!   errorsr<   force	_encodingexplicitconsumeds          r1   decoderJ      su    u 25$ ?H?@@Ux'7 H3))(3E6BUH 148(CCr3   c                 .   t        |       }|@t        | d      d   }|j                  dd      j                         dk(  r$t	        | dd      } nt	        | t        |      d      } |dk(  rt        d      t        j                  |      } || |      d   |fS )	NTr   r8   r9   r   r   r?   r@   )	r   r6   r:   r;   r=   rD   rA   rB   
getencoder)r!   rE   r<   rI   encoders        r1   encoderN      s    5zH)%6q9C%++-< $7EUGH$5t<5;<<)GE6"1%x00r3   c                 :    d}| D ]  }|dz  t        |      z   } |S )Nr   r   ord)bytesibytes      r1   
_bytes2intrU      s-    	A !!Vs4y !Hr3   c                 x    g }| r&|j                  dt        | dz               | dz  } | r&dj                  |      S )Nr      r    )insertchrjoin)rS   vs     r1   
_int2bytesr]      s>    
A
	CDM"	a  771:r3   IncrementalDecoderc                   R    e Zd Zd
dZd ZddZd Zd Zd Z e	ee      Z
d Zd	 Zy)r^   Nc                     d | _         || _        || _        t        j                  j                  | |       || _        dj                         | _        d| _	        y NrX   F)
decoderr<   rF   rB   r^   __init___errorsrN   bufferheaderfixed)selfrE   r<   rF   s       r1   rc   zIncrementalDecoder.__init__   sK    DL$DMDJ%%..tV< "DL**,DK$Dr3   c              #   ~   K   |D ]  }| j                  |d      }|s|  | j                  dd      }|r| y y wNFrX   T)rJ   rg   r!   partresults       r1   
iterdecodezIncrementalDecoder.iterdecode   sL      !T51 L! [[T*F    = =c                    | j                   | j                  |z   }| j                  | j                  sJt	        ||      \  }}||| _        y|dk(  rt        d      |r| j                  r| j                  || _        d| _        t        j                  | j                        } || j                        | _         | j                  r| j                   j                  ||      S | j                  | j                   j                  ||      z   }| j                  }|j                  dd      j                         dk(  rd}t        |t        |      |      }||| _        yd| _	        |S )	NrX   r?   r@   r8   r9   r   r   T)rb   re   r<   rF   r2   rA   rB   getincrementaldecoderrd   rf   rJ   r:   r;   r=   rD   )rg   r!   r"   r<   rH   rb   output	newoutputs           r1   rJ   zIncrementalDecoder.decode  sC    ||#e+==(

+=eU+K(Xx'&+"!U*()KLL 8M(0  66t}}E&t||4||**5%88 [[4<<#6#6ue#DDF}}HS)//1[@"$VWX->FI $#Dr3   c                     t         j                  j                  |        d | _        dj	                         | _        d| _        y ra   )rB   r^   resetrb   rN   re   rf   rg   s    r1   rt   zIncrementalDecoder.reset,  s2    %%++D1DL**,DK$Dr3   c                     | j                   S Nrd   ru   s    r1   
_geterrorszIncrementalDecoder._geterrors2      <<r3   c                 L    | j                   || j                   _        || _        y rw   )rb   rE   rd   rg   rE   s     r1   
_seterrorszIncrementalDecoder._seterrors5      ||'&,#!DLr3   c                     | j                   >| j                  | j                  | j                  d| j                   j	                         f}n%| j                  | j                  | j                  dd f}dt        t        j                  |            fS )NTFrX   )rb   r<   re   rf   getstaterU   marshaldumpsrg   states     r1   r   zIncrementalDecoder.getstate<  sn    ||'T5E5EtT\\MbMbMdeT5E5EudS
7==#7899r3   c                 @   t        t        j                  |d               }|d   | _        |d   | _        |d   | _        |d   S t        j                  | j                        | j                        | _	        | j                  j                  |d          y d | _	        y )Nr   r   r   r   r   )r]   r   loadsr<   re   rf   rB   rp   rd   rb   setstater   s     r1   r   zIncrementalDecoder.setstateC  s    w}}U1X67E!!HDM(DK$QxDQx#Jv;;DMMJ4<<X%%eAh/#r3   strictNTF)__name__
__module____qualname__rc   rm   rJ   rt   ry   r}   propertyrE   r   r    r3   r1   r^   r^      s9    		%	#	J	%	 	"
 *j1	:		$r3   IncrementalEncoderc                   R    e Zd Zd
dZd ZddZd Zd Zd Z e	ee      Z
d Zd	 Zy)r   Nc                 |    d | _         || _        t        j                  j	                  | |       || _        d| _        y NrX   )rM   r<   rB   r   rc   rd   re   )rg   rE   r<   s      r1   rc   zIncrementalEncoder.__init__Q  s6    DL$DM%%..tV< "DLDKr3   c              #   ~   K   |D ]  }| j                  |d      }|s|  | j                  dd      }|r| y y wri   )rN   rj   s       r1   
iterencodezIncrementalEncoder.iterencodeZ  sL      !T51 L! [[d+F rn   c                    | j                   >| j                  |z   }| j                  T| j                  }|j                  dd      j	                         dk(  rd}t        |t        |      |      }||| _        y|}nt        ||      d   | _        | j                  | j                  dk(  rt        d      t        j                  | j                        }| j                  }| j                  j                  dd      j	                         dk(  rt        |dd	      }|j                  | j                        | _         d| _        n|| _        y| j                   j                  ||      S )
Nr8   r9   r   r   rX   r   r?   r@   T)rM   re   r<   r:   r;   r=   rD   r6   rA   rB   lookupincrementalencoderrd   rN   )rg   r!   r"   r<   newinputinfos         r1   rN   zIncrementalEncoder.encodec  s8   ||#e+==,#}}H''S1779[H#*+E783DeLH'&+!$E %;5%$H$KDM==,}}-()KLL!==7D#}}H}},,S#6<<>+M ,UHd C#'#:#:4<<#HDL"%DK"'DK<<&&ue44r3   c                 ^    t         j                  j                  |        d | _        d| _        y r   )rB   r   rt   rM   re   ru   s    r1   rt   zIncrementalEncoder.reset  s$    %%++D1DLDKr3   c                     | j                   S rw   rx   ru   s    r1   ry   zIncrementalEncoder._geterrors  rz   r3   c                 L    | j                   || j                   _        || _        y rw   )rM   rE   rd   r|   s     r1   r}   zIncrementalEncoder._seterrors  r~   r3   c                     | j                   3| j                  | j                  d| j                   j                         f}n| j                  | j                  dd f}t	        t        j                  |            S )NTF)rM   r<   re   r   rU   r   r   r   s     r1   r   zIncrementalEncoder.getstate  sY    ||'T4<<;P;P;RSUDAgmmE233r3   c                 &   t        t        j                  |            }|d   | _        |d   | _        |d   S t        j                  | j                        | j                        | _        | j                  j                  |d          y d | _        y )Nr   r   r   r   )
r]   r   r   r<   re   rB   getincrementalencoderrd   rM   r   r   s     r1   r   zIncrementalEncoder.setstate  ss    w}}U34E!!HDM(DKQx#Jv;;DMMJ4<<X%%eAh/#r3   r   Nr   )r   r   r   rc   r   rN   rt   ry   r}   r   rE   r   r   r   r3   r1   r   r   P  s8    			5<	
	 	"
 *j1	4	$r3   c                   :    e Zd ZddZddZd Zd Z eee      Zy)StreamWriterNc                 ~    t         j                  j                  | ||       d | _        || _        || _        d| _        y r   )rB   r   rc   streamwriterr<   rd   re   )rg   streamrE   r<   headers        r1   rc   zStreamWriter.__init__  s7    $$T66:  r3   c                    t        |      }| j                  I| j                  |z   }t        |      }| j                  T| j                  }|j	                  dd      j                         dk(  rd}t        |t        |      d      }||| _        y|}nt        |d      d   | _        | j                  | j                  dk(  rt        d	       t        j                  | j                        | j                  | j                        | _        | j                  }| j                  j	                  dd      j                         dk(  rt        |dd
      }d| _        n|| _        y| j                  j                  ||      d   |fS )Nr8   r9   r   r   FrX   r   r   r?   r@   TrX   )r   r   re   r<   r:   r;   r=   rD   r6   rA   rB   	getwriterr   rd   rN   )rg   r!   rE   r.   r<   r   s         r1   rN   zStreamWriter.encode  s[   Z$KK%'EUB}}(==##C-335D&H'wx/@%H#"'DK"  !7ue DQ G}}(==E)$%GHH$CF$4$4T]]$CDKKQUQ]Q]$^!====((c288:kI($?E!#!!((7:B??r3   c                     | j                   S rw   rx   ru   s    r1   ry   zStreamWriter._geterrors      ||r3   c                 L    | j                   || j                   _        || _        y rw   )r   rE   rd   r|   s     r1   r}   zStreamWriter._seterrors  #    ('-D$r3   )r   NFr   )	r   r   r   rc   rN   ry   r}   r   rE   r   r3   r1   r   r     s%    @> j*-Fr3   r   c                   :    e Zd ZddZddZd Zd Z eee      Zy)StreamReaderNc                 ~    t         j                  j                  | ||       d | _        || _        || _        || _        y rw   )rB   r   rc   streamreaderr<   rF   rd   )rg   r   rE   r<   rF   s        r1   rc   zStreamReader.__init__  s7    $$T66:  
r3   c                 V   | j                   | j                  | j                  sCt        |d      \  }}|y|dk(  rt	        d      |r| j                  r| j                  || _        t        j                  | j                        } || j                  | j                        }|j                  ||      \  }}| j                  }|j                  dd      j                         dk(  rd}t        |t        |      d      }||| _         ||fS y| j                   j                  ||      S )	NFr   r?   r@   r8   r9   r   r   )r   r<   rF   r2   rA   rB   	getreaderr   rd   rJ   r:   r;   r=   rD   )	rg   r!   rE   r<   rH   r   rq   rI   rr   s	            r1   rJ   zStreamReader.decode  s   $}}$DJJ'9%'G$8##&$%GHHTZZDMM4I$,DM!++DMM:L'T\\BL!-!4!4UF!CVX}}HS)//1[@"$VWX->FI$$0!!8,,  ''v66r3   c                     | j                   S rw   rx   ru   s    r1   ry   zStreamReader._geterrors  r   r3   c                 L    | j                   || j                   _        || _        y rw   )r   rE   rd   r|   s     r1   r}   zStreamReader._seterrors  r   r3   r   r   )	r   r   r   rc   rJ   ry   r}   r   rE   r   r3   r1   r   r     s$    7. j*-Fr3   r   	CodecInfoc           	      v    | dk(  r4t        j                  dt        t        t        t
        t        t              S y )Nr?   )namerN   rJ   r   incrementaldecoderr   r   )rB   r   rN   rJ   r   r^   r   r   )r   s    r1   search_functionr     s6    5=###5#5))  r3   c                 l    t         j                  t        j                  | |      d   z   t        |       fS )Nr   )rB   BOM_UTF8utf_8_encoder   )r!   rE   s     r1   utf8sig_encoder     s,    &"5"5eV"DQ"GGUTTr3   c                     d}| d d t         j                  k(  r| dd  } d}t        j                  | |d      \  }}|||z   fS )Nr   r   T)rB   r   utf_8_decode)r!   rE   r/   rq   rI   s        r1   utf8sig_decoder     sQ    !9'!"IEF#00E((r3   c                       e Zd Zd ZddZy)UTF8SigStreamWriterc                 f    t         j                  j                  |        	 | `y # t        $ r Y y w xY wrw   )rB   r   rt   rN   AttributeErrorru   s    r1   rt   zUTF8SigStreamWriter.reset  2    %%d+K!    $ 	00c                 D    t         j                  | _        t        ||      S rw   )rB   r   rN   r   rg   r!   rE   s      r1   rN   zUTF8SigStreamWriter.encode"  s     --DK!%00r3   Nr   )r   r   r   rt   rN   r   r3   r1   r   r     s    		1r3   r   c                       e Zd Zd ZddZy)UTF8SigStreamReaderc                 f    t         j                  j                  |        	 | `y # t        $ r Y y w xY wrw   )rB   r   rt   rJ   r   ru   s    r1   rt   zUTF8SigStreamReader.reset'  r   r   c                     t        |      dk  r t        j                  j                  |      ryt        j                  | _        t        ||      S )Nr   r   )r   rB   r   r5   r   rJ   r   r   s      r1   rJ   zUTF8SigStreamReader.decode.  s=    5zA~&//"<"<U"C   --DK!%00r3   Nr   )r   r   r   rt   rJ   r   r3   r1   r   r   &  s    		1r3   r   c                     dd l }|j                  |       } | dk(  rt        t        t        t
        fS | dk(  rt        t        t        t        fS y )Nr   r?   	utf_8_sig)
	encodingsnormalize_encodingrN   rJ   r   r   r   r   r   r   )r   r   s     r1   r   r   6  sI    ++D15=FL,??[ "N4GI\]] !r3   c                     t        | t              st        d| z        dj                  d | j                  | j
                  | j                   D              | j                  fS )Nzdon't know how to handle %rrX   c              3   8   K   | ]  }d t        |      z    yw)z\%06xNrP   ).0r   s     r1   	<genexpr>zcssescape.<locals>.<genexpr>G  s     OAYQ'Os   )
isinstanceUnicodeEncodeError	TypeErrorr[   objectstartend)excs    r1   	cssescaper   D  sR    c-.5;<<HHOCIIcgg1NOOQTQXQXYYr3   r   r   r   r   r   )__doc____docformat__
__author____version__rB   r   r2   r6   r=   rJ   rN   rU   r]   hasattrr^   r   r   r   r   r   r   r   r   registerr   register_errorr   r3   r1   <module>r      s   "
@  &up.:D1 6'(Z$V66 Z$z 6'(O$V66 O$d0.6&& 0.f(.6&& (.V 6;
U)
1f11 
11f11 1 ^   
Z   k9 -r3   