§
    ÏÁ³gö'  ã                   ó  — d dl Z d dlmZmZmZmZmZmZmZm	Z	 ddl
mZmZ ddlmZmZmZ erddlmZ 	 d dlmZ n# e$ r	 d dlmZ Y nw xY w e j        d¦  «        Z e j         ej        d	¦  «        ¦  «        Z e j         ej        d	¦  «        ¦  «        Z G d
„ deeeef                  ¦  «        Ze	eeeef                  eeeef                  eeeef                  eeeef                  f         Zededed         defd„¦   «         Zededed         defd„¦   «         Ze	 dde	eef         de defd„¦   «         Z	 dde	eef         de defd„Zdededee         fd„Z!dededee         defd„Z"ddde fd„Z#dS )é    N)ÚAnyStrÚcastÚListÚoverloadÚSequenceÚTupleÚTYPE_CHECKINGÚUnioné   )Ú
field_nameÚfield_value)ÚbytesifyÚLocalProtocolErrorÚvalidate)ÚRequest)ÚLiterals   [0-9]+Úasciic                   óÀ   — e Zd ZdZdZdeeeeef                  ddfd„Zde	fd„Z
dede	fd	„Zdefd
„Zdefd„Zdedeeef         fd„Zdeeeef                  fd„ZdS )ÚHeadersaÕ  
    A list-like interface that allows iterating over headers as byte-pairs
    of (lowercased-name, value).

    Internally we actually store the representation as three-tuples,
    including both the raw original casing, in order to preserve casing
    over-the-wire, and the lowercased name, for case-insensitive comparisions.

    r = Request(
        method="GET",
        target="/",
        headers=[("Host", "example.org"), ("Connection", "keep-alive")],
        http_version="1.1",
    )
    assert r.headers == [
        (b"host", b"example.org"),
        (b"connection", b"keep-alive")
    ]
    assert r.headers.raw_items() == [
        (b"Host", b"example.org"),
        (b"Connection", b"keep-alive")
    ]
    Ú_full_itemsÚ
full_itemsÚreturnNc                 ó   — || _         d S ©N©r   )Úselfr   s     úJ/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/h11/_headers.pyÚ__init__zHeaders.__init__f   s   € Ø%ˆÔÐÐó    c                 ó*   — t          | j        ¦  «        S r   )Úboolr   ©r   s    r   Ú__bool__zHeaders.__bool__i   s   € Ý�DÔ$Ñ%Ô%Ð%r   Úotherc                 óB   — t          | ¦  «        t          |¦  «        k    S r   )Úlist)r   r$   s     r   Ú__eq__zHeaders.__eq__l   s   € Ý�D‰zŒz�T %™[œ[Ò(Ð(r   c                 ó*   — t          | j        ¦  «        S r   )Úlenr   r"   s    r   Ú__len__zHeaders.__len__o   s   € Ý�4Ô#Ñ$Ô$Ð$r   c                 ó@   — dt          t          | ¦  «        ¦  «        z  S )Nz<Headers(%s)>)Úreprr&   r"   s    r   Ú__repr__zHeaders.__repr__r   s   € Ø¥¥d¨4¡j¤jÑ!1Ô!1Ñ1Ð1r   Úidxc                 ó,   — | j         |         \  }}}||fS r   r   )r   r.   Ú_ÚnameÚvalues        r   Ú__getitem__zHeaders.__getitem__u   s   € ØÔ)¨#Ô.‰ˆˆ4�Ø�eˆ}Ðr   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó   — g | ]
\  }}}||f‘ŒS © r6   )Ú.0Úraw_namer0   r2   s       r   ú
<listcomp>z%Headers.raw_items.<locals>.<listcomp>z   s$   € ÐMÐMÐMÑ&8 h°°5�˜5Ð!ÐMÐMÐMr   r   r"   s    r   Ú	raw_itemszHeaders.raw_itemsy   s   € ØMÐM¸DÔ<LÐMÑMÔMÐMr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   Úbytesr   r!   r#   Úobjectr'   Úintr*   Ústrr-   r3   r:   r6   r   r   r   r   K   s&  € € € € € ðð ð0 €Ið& 4¨¨e°U¸EÐ.AÔ(BÔ#Cð &Èð &ð &ð &ð &ð&˜$ð &ð &ð &ð &ð)˜Fð ) tð )ð )ð )ð )ð%˜ð %ð %ð %ð %ð2˜#ð 2ð 2ð 2ð 2ð˜sð  u¨U°E¨\Ô':ð ð ð ð ðN˜4  e¨U lÔ 3Ô4ð Nð Nð Nð Nð Nð Nr   r   ÚheadersÚ_parsedTr   c                 ó   — d S r   r6   ©rD   rE   s     r   Únormalize_and_validaterH   …   ó   € à€Cr   Fc                 ó   — d S r   r6   rG   s     r   rH   rH   Š   rI   r   c                 ó   — d S r   r6   rG   s     r   rH   rH   �   s	   € ð €Cr   c                 ó   — g }d }d}| D �]¶\  }}|sLt          |¦  «        }t          |¦  «        }t          t          |d|¦  «         t          t          |d|¦  «         t	          |t
          ¦  «        sJ ‚t	          |t
          ¦  «        sJ ‚|}|                     ¦   «         }|dk    r d„ |                     d¦  «        D ¦   «         }t          |¦  «        dk    rt          d¦  «        ‚| 
                    ¦   «         }t          t          |d	¦  «         |€|}|                     |||f¦  «         �Œ'||k    rt          d¦  «        ‚�Œ>|d
k    rZ|rt          dd¬¦  «        ‚|                     ¦   «         }|dk    rt          dd¬¦  «        ‚d}|                     |||f¦  «         �Œž|                     |||f¦  «         �Œ¸t          |¦  «        S )NFzIllegal header name {!r}zIllegal header value {!r}s   content-lengthc                 ó6   — h | ]}|                      ¦   «         ’ŒS r6   )Ústrip)r7   Úlengths     r   ú	<setcomp>z)normalize_and_validate.<locals>.<setcomp>«   s    € ÐFÐFÐF¨&�v—|’|‘~”~ÐFÐFÐFr   ó   ,r   z"conflicting Content-Length headerszbad Content-Lengths   transfer-encodingz"multiple Transfer-Encoding headersiõ  )Úerror_status_hints   chunkedz,Only Transfer-Encoding: chunked is supportedT)r   r   Ú_field_name_reÚ_field_value_reÚ
isinstancer@   ÚlowerÚsplitr)   r   ÚpopÚ_content_length_reÚappendr   )	rD   rE   Únew_headersÚseen_content_lengthÚsaw_transfer_encodingr1   r2   r8   Úlengthss	            r   rH   rH   –   s!  € ð €KØÐØ!ÐØð -8ñ -8‰ˆˆeð ð 	QÝ˜D‘>”>ˆDÝ˜U‘O”OˆEÝ•^ TÐ+EÀtÑLÔLÐLÝ•_ eÐ-HÈ%ÑPÔPÐPÝ˜$¥Ñ&Ô&Ð&Ð&Ð&Ý˜%¥Ñ'Ô'Ð'Ð'Ð'àˆØ�zŠz‰|Œ|ˆØÐ$Ò$Ð$ØFÐF°E·K²KÀÑ4EÔ4EÐFÑFÔFˆGÝ�7‰|Œ|˜qÒ Ð Ý(Ð)MÑNÔNÐNØ—K’K‘M”MˆEÝÕ'¨Ð0DÑEÔEÐEØ"Ð*Ø&+Ð#Ø×"Ò" H¨d°EÐ#:Ñ;Ô;Ð;Ñ;Ø$¨Ò-Ð-Ý(Ð)MÑNÔNÐNñ .àÐ)Ò)Ð)ð
 %ð Ý(Ø8ÈCðñ ô ð ð
 —K’K‘M”MˆEØ˜
Ò"Ð"Ý(ØBØ&)ðñ ô ð ð %)Ð!Ø×Ò ¨$°Ð6Ñ7Ô7Ð7Ñ7à×Ò ¨$°Ð6Ñ7Ô7Ð7Ñ7Ý�;ÑÔÐr   r1   c                 óà   — g }| j         D ]c\  }}}||k    rW|                     ¦   «         }|                     d¦  «        D ]-}|                     ¦   «         }|r|                     |¦  «         Œ.Œd|S )NrQ   )r   rV   rW   rN   rZ   )rD   r1   Úoutr0   Ú
found_nameÚfound_raw_valueÚfound_split_values          r   Úget_comma_headerrd   Í   s‘   € ðH €CØ*1Ô*=ð 2ð 2Ñ&ˆˆ:�Ø˜ÒÐØ-×3Ò3Ñ5Ô5ˆOØ%4×%:Ò%:¸4Ñ%@Ô%@ð 2ð 2Ð!Ø$5×$;Ò$;Ñ$=Ô$=Ð!Ø$ð 2Ø—J’JÐ0Ñ1Ô1Ð1øøØ€Jr   Ú
new_valuesc                 óÖ   — g }| j         D ]#\  }}}||k    r|                     ||f¦  «         Œ$|D ]+}|                     |                     ¦   «         |f¦  «         Œ,t          |¦  «        S r   )r   rZ   ÚtitlerH   )rD   r1   re   r[   Úfound_raw_namera   rb   Ú	new_values           r   Úset_comma_headerrj   ü   sŠ   € ð .0€KØ7>Ô7Jð Bð BÑ3ˆ˜
 OØ˜ÒÐØ×Ò °Ð@ÑAÔAÐAøØð 6ð 6ˆ	Ø×Ò˜DŸJšJ™LœL¨)Ð4Ñ5Ô5Ð5Ð5Ý! +Ñ.Ô.Ð.r   Úrequestr   c                 óN   — | j         dk     rdS t          | j        d¦  «        }d|v S )Ns   1.1Fs   expects   100-continue)Úhttp_versionrd   rD   )rk   Úexpects     r   Úhas_expect_100_continuero     s3   € ð Ô˜fÒ$Ð$ØˆuÝ˜gœo¨yÑ9Ô9€FØ˜fÐ$Ð$r   )F)$ÚreÚtypingr   r   r   r   r   r   r	   r
   Ú_abnfr   r   Ú_utilr   r   r   Ú_eventsr   r   ÚImportErrorÚtyping_extensionsÚcompilerY   ÚencoderS   rT   r@   r   rC   ÚHeaderTypesrH   r!   rd   rj   ro   r6   r   r   ú<module>rz      s\  ðØ 	€	€	€	Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ Và *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9àð !Ø Ð Ð Ð Ð Ð ð*ØÐÐÐÐÐÐøØð *ð *ð *Ø)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð*øøøðt  �R”Z 
Ñ+Ô+Ð Ø�”Ð-˜JÔ-¨gÑ6Ô6Ñ7Ô7€Ø�"”*Ð/˜[Ô/°Ñ8Ô8Ñ9Ô9€ð/Nð /Nð /Nð /Nð /Nˆh�u˜U E˜\Ô*Ô+ñ /Nô /Nð /Nðd Øˆˆu�eˆ|Ô	ÔØˆˆu�cˆzÔ	ÔØˆˆs�EˆzÔ	ÔØˆˆs�CˆxŒÔðô€ð 
ð Gð °g¸d´mð Èð ð ð ñ 
„ðð 
ð Kð ¸'À%¼.ð ÈWð ð ð ñ 
„ðð 
à:?ðð Ø�7˜KÐ'Ô(ðØ37ðàðð ð ñ 
„ðð ;@ð4 ð 4 Ø�7˜KÐ'Ô(ð4 Ø37ð4 àð4 ð 4 ð 4 ð 4 ðn,˜gð ,¨Uð ,°t¸E´{ð ,ð ,ð ,ð ,ð^/˜gð /¨Uð /ÀÀUÄð /ÐPWð /ð /ð /ð /ð&% Yð %°4ð %ð %ð %ð %ð %ð %s   ´; »A	ÁA	