
    vKg,              
          S SK r \ R                  S:  a  S SKJr  S SKJrJrJrJ	r	JrJ
r
JrJr  OS SKJrJrJrJ	r	JrJ
r
JrJr  \rS SKJrJrJrJrJrJrJr  \S\\\\   4   \\\\   4   \\\\4      \\\\4      \\\\4      4   rSS\\\4   S\S	\4S
 jjrS\S\S	\4S jrSS1rS\\\\4      S	\\\\4      4S jr SS\\\4   S\S\\   S	\4S jjrSS\\\\4   S\\   S	\4S jjr " S S\
\\4   5      rg)    N)   	   r   )Mapping)	ItemsViewIterableIteratorKeysViewr   MutableMappingSequence
ValuesView)AnyAnyStrDictListOptionalTupleUnionHeadersvalueencodingreturnc                 R    [        U [        5      (       a  U $ U R                  U5      $ N)
isinstancestrdecoder   r   s     Z/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/curl_cffi/requests/headers.pyto_strr   7   s"    uc**5FX0FF    match_type_ofc                 P    [        U[        5      (       a  U $ U R                  5       $ r   )r   r   encode)r   r!   s     r   to_bytes_or_strr$   ;   s    }c225FFr    authorizationzproxy-authorizationitemsc              #      #    U  H5  u  p[        UR                  5       5      [        ;   a
  [        SUS9nX4v   M7     g 7f)Nz[secure])r!   )r   lowerSENSITIVE_HEADERSr$   )r&   kvs      r   obfuscate_sensitive_headersr,   B   s:      !'') 11
!<Ad
 s   =?r(   c                     [        U [        5      (       a  U OU R                  U=(       d    S5      nU(       a  UR                  5       $ U$ )z=
Coerce str/bytes into a strictly byte-wise HTTP header key.
ascii)r   bytesr#   r(   )r   r(   r   bytes_values       r   normalize_header_keyr1   K   s<     &eU33%hFYRY9ZK"';8[8r    c                     [        U [        5      (       a  U $ [        U [        5      (       a  [        U 5      R	                  5       $ U R	                  U=(       d    S5      $ )z?
Coerce str/bytes into a strictly byte-wise HTTP header value.
zlatin-1)r   r/   intr   r#   r   s     r   normalize_header_valuer4   X   sL     % %5z  ""||H1	22r    c                      \ rS rSrSr  S!S\\   S\\   SS4S jjr\	S\4S j5       r
\
R                  S	\SS4S
 j5       r
\	S\\\\4      4S j5       rS\\   4S jrS\\   4S jrS\\\4   4S jrS\\\\4      4S jrS"S\S\S\4S jjrS#S\S\S\\   4S jjrS"S\\   SS4S jjrS$S jrS\S\4S jrS\S	\SS4S jrS\SS4S jrS\S\4S jr S\!\   4S jr"S\#4S jr$S\S\4S jr%S\4S jr&S r'g)%r   f   z1
HTTP headers, as a case-insensitive multi-dict.
Nheadersr   r   c                 .   U(       d	  / U l         GOs[        U[        5      (       a  [        UR                   5      U l         GOB[        U[        5      (       aM  UR                  5        VVs/ sH*  u  p4Uc  M
  [        USUS9[        USUS9[        XB5      4PM,     snnU l         O[        U[        5      (       a  [        US   [        [        45      (       aZ  [        US   [        5      (       a  SOSn/ nU H5  nUR                  USS9u  p4UR                  X4R                  5       45        M7     O[        US   [        5      (       a  UnW VVs/ sH%  u  p4[        USUS9[        USUS9[        XB5      4PM'     snnU l         X l        g s  snnf s  snnf )	NF)r(   r   Tr   :   :   )maxsplit)_listr   r   list
AbcMappingr&   r1   r4   r   r/   splitappendstriptuple	_encoding)selfr7   r   r*   r+   sephlines           r   __init__Headers.__init__k   sq   
 DJ))gmm,DJ,, $MMO ,DA(%(K($J*17
 ,DJ &&'!*sEl33'
C88cd#D::cA:6DAHHa^, $ GAJ..  DA	 )%(K($J*17
 DJ "7$s   *F6$F+Fc                 
   U R                   cY  S HL  nU R                   H(  u  p# UR                  U5        UR                  U5        M*     Xl           U R                   $    SU l         U R                   $ ! [         a       Mq  f = f)zV
Header encoding is mandated as ascii, but we allow fallbacks to utf-8
or iso-8859-1.
)r.   utf-8z
iso-8859-1)rD   rawr   UnicodeDecodeError)rE   r   keyr   s       r   r   Headers.encoding   s     >>!."&((JC

8,X. #+ &.N
 ~~! / ".~~ . s   "A33
BBr   c                     Xl         g r   )rD   )rE   r   s     r   r   rP      s    r    c                 X    U R                    VVVs/ sH	  u  po1U4PM     snnn$ s  snnnf )z8
Returns a list of the raw header items, as byte pairs.
)r=   )rE   raw_key_r   s       r   rM   Headers.raw   s(    
 ;?**E*%6W% *EEEs   %c                     U R                    VVs0 sH!  u  poR                  U R                  5      S _M#     snnR                  5       $ s  snnf r   )r=   r   r   keys)rE   rT   rO   s      r   rW   Headers.keys   s;    AELIAA

4==)4/LQQSSLs   'A	c                     0 nU R                    HV  u  p#nUR                  U R                  5      nUR                  U R                  5      nXQ;   a  X==   SU 3-  ss'   MR  XaU'   MX     UR                  5       $ )N, )r=   r   r   valuesrE   values_dictrT   rO   r   str_key	str_values          r   r[   Headers.values   sq    &(!ZZMAEjj/GT]]3I%$"YK(88$'0G$ ( !!##r    c                     0 nU R                    HV  u  p#nUR                  U R                  5      nUR                  U R                  5      nXQ;   a  X==   SU 3-  ss'   MR  XaU'   MX     UR                  5       $ )z
Return `(key, value)` items of headers. Concatenate headers
into a single comma separated value when a key occurs multiple times.
rZ   )r=   r   r   r&   r\   s          r   r&   Headers.items   ss    
 ')!ZZMAEjj/GT]]3I%$"YK(88$'0G$ (   ""r    c           	          U R                    VVVs/ sH;  u  po1R                  U R                  5      UR                  U R                  5      4PM=     snnn$ s  snnnf )z
Return a list of `(key, value)` pairs of headers. Allow multiple
occurrences of the same key without concatenating into a single
comma separated value.
)r=   r   r   )rE   rO   rT   r   s       r   multi_itemsHeaders.multi_items   sP     [_ZdZd
ZdQVZZ&T]](CDZd
 	
 
s   AArO   defaultc                 0     X   $ ! [          a    Us $ f = f)zp
Return a header value. If multiple occurrences of the header occur
then concatenate them together with commas.
)KeyError)rE   rO   rf   s      r   getHeaders.get   s#    
	9 	N	s    split_commasc                    UR                  5       R                  U R                  5      nU R                   VVVs/ sH7  u  pEnUR                  5       U:X  d  M  UR	                  U R                  5      PM9     nnnnU(       d  U$ / nU H@  n	UR                  U	R                  S5       V
s/ sH  oR                  5       PM     sn
5        MB     U$ s  snnnf s  sn
f )z
Return a list of all header values for a given key.
If `split_commas=True` is passed, then any comma separated header
values are split into multiple return strings.
,)r(   r#   r   r=   r   extendr@   rB   )rE   rO   rk   get_header_keyrT   item_key
item_valuer[   split_valuesr   items              r   get_listHeaders.get_list   s     ++DMM: ,0::
+5'Z~~>1 -Jdmm,+5 	 
 ME%++c:J K:J$:J KL 
 !Ls   CC)C
c                     [        U5      nU H  nX ;   d  M
  U R                  U5        M     U R                  R                  UR                  5        g r   )r   popr=   rn   )rE   r7   rO   s      r   updateHeaders.update   s>    '"C{  	

'--(r    c                 (    [        X R                  S9$ )N)r   )r   r   rE   s    r   copyHeaders.copy  s    tmm44r    c                 ,   UR                  5       R                  U R                  5      nU R                   VVVs/ sH(  u  p4nXB:X  d  M  UR	                  U R                  5      PM*     nnnnU(       a  SR                  U5      $ [        U5      es  snnnf )z
Return a single header value.
If there are multiple headers with the same key, then we concatenate
them with commas. See: https://tools.ietf.org/html/rfc7230#section-3.2.2
rZ   )r(   r#   r   r=   r   joinrh   )rE   rO   normalized_keyrT   
header_keyheader_valuer&   s          r   __getitem__Headers.__getitem__  s     ++DMM: 04zz
/9+|+ /L./9 	 
 99U##sm
s   B	Bc                    UR                  U R                  =(       d    S5      nUR                  U R                  =(       d    S5      nUR                  5       n[        U R                  5       VVVs/ sH  u  nu  pxoxU:X  d  M  UPM     n	nnn[        U	SS 5       H  nU R                  U	 M     U	(       a  U	S   nX5U4U R                  U'   gU R                  R                  X5U45        gs  snnnf )z[
Set the header `key` to `value`, removing any duplicate entries.
Retains insertion order.
rL   r;   Nr   )r#   rD   r(   	enumerater=   reversedrA   )
rE   rO   r   set_key	set_value
lookup_keyidxrT   rp   found_indexess
             r   __setitem__Headers.__setitem__  s    
 **T^^6w7LL!:7;	]]_
 .7tzz-B
-B)C)!qR\F\C-B 	 
 M!"-.C

3 / "C&I>DJJsOJJwI>?
s   2C,C,c                 L   UR                  5       R                  U R                  5      n[        U R                  5       VVVs/ sH   u  nu  pEoER                  5       U:X  d  M  UPM"     nnnnU(       d  [        U5      e[        U5       H  nU R                  U	 M     gs  snnnf )z
Remove the header `key`.
N)r(   r#   r   r   r=   rh   r   )rE   rO   del_keyr   rT   rp   pop_indexess          r   __delitem__Headers.__delitem__0  s     ))+$$T]]3 .7tzz-B
-B)C)!qnnFVZaFaC-B 	 
 3-K(C

3 )
s   B#Bc                     UR                  5       R                  U R                  5      nX R                   VVs/ sH  u  p1o1PM	     snn;   $ s  snnf r   )r(   r#   r   r=   )rE   rO   r   rT   s       r   __contains__Headers.__contains__@  s?    YY[''6
::>:iaac:>>>>s   Ac                 4    [        U R                  5       5      $ r   )iterrW   r{   s    r   __iter__Headers.__iter__D  s    DIIK  r    c                 ,    [        U R                  5      $ r   )lenr=   r{   s    r   __len__Headers.__len__G  s    4::r    otherc                     [        U5      nU R                   VVVs/ sH	  u  p4oTU4PM     nnnnUR                   VVVs/ sH	  u  p4oTU4PM     nnnn[        U5      [        U5      :H  $ ! [         a     gf = fs  snnnf s  snnnf )NF)r   
ValueErrorr=   sorted)rE   r   other_headersrT   rO   r   	self_list
other_lists           r   __eq__Headers.__eq__J  s    	#ENM 8<zzBzmae5\z	B8E8K8KL8K}quEl8K
Li F:$666  		 CLs   A* A: B*
A76A7c                 4   U R                   R                  nSnU R                  S:w  a  SU R                  < 3n[        [	        U R                  5       5      5      n[        U5      n[        U5      [        U5      :H  nU(       a  U SU< U S3$ U SU< U S3$ )N r.   z, encoding=())	__class____name__r   r>   r,   rd   dictr   )rE   
class_nameencoding_stras_listas_dictno_duplicate_keyss         r   __repr__Headers.__repr__T  s    ^^,,
==G#((9:L243C3C3EFGw-LCL8 \7+l^1==Qwk,q99r    )rD   r=   )NNr   )F)r   r   )(r   
__module____qualname____firstlineno____doc__r   HeaderTypesr   rI   propertyr   setterr   r   r/   rM   r	   rW   r   r[   r   r&   rd   r   ri   boolrt   rx   r|   r   r   r   r   r   r   r3   r   r   r   __static_attributes__ r    r   r   r   f   s    *."&%"+&%" 3-%" 
	%"N #  0 __c d   FT%u-. F FThsm T	$
3 	$#yc* #
T%S/2 
s S C C t S	 ,)h{3 )t )5s s &@s @3 @4 @, s  t   ? ? ?!(3- ! 7C 7D 7:# :r    )rL   r   ) sysversion_infocollections.abcr   r?   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r/   r   r   r$   r)   r,   r   r1   r3   r4   r   r   r    r   <module>r      s  
  i5	 	 		 	 	 J   C#E8E?"#U38_U5%< !U3:!G%U
# Gs G GG3 Gv G& G %&;< E&&.)*eFFN#$ #
9e
9
9 sm
9 	
93%UC"8 3HSM 3]b 3{:nS#X& {:r    