+
    yj]                        ^ RI Ht ^ RIt^ RIHt ^RIHt ^RIH	t	 ^RI
Ht R R ltRR	 R
 lltRR R lltRR R lltR# )    )annotationsN)quote)
_plain_int)SecurityError)
uri_to_iric               $    V ^8  d   QhRRRRRR/# )   hostname
str | Nonetrusted_listzt.Iterable[str]returnbool )formats   "I/var/www/html/2rare/lib/python3.14/site-packages/werkzeug/sansio/utils.py__annotate__r      s!     # #j # #D #    c                (   V '       g   R#  V P                  R4      ^ ,          P                  R4      P                  R4      p \	        T\
        4      '       d   T.pT F  pTP                  R4      '       d   TR,          pRpMRp TP                  R4      ^ ,          P                  R4      P                  R4      pY 8X  g'   T'       g   Ko  T P                  RT 24      '       g   K   R# 	  R#   \         d     R# i ; i  \         d      R# i ; i)zCheck if a host matches a list of trusted names.

:param hostname: The name to check.
:param trusted_list: A list of valid names to match. If a name
    starts with a dot it will match all subdomains.

.. versionadded:: 0.9
F:idnaascii.:   NNT)	partitionencodedecodeUnicodeEncodeError
isinstancestr
startswithendswith)r
   r   refsuffix_matchs   &&  r   host_is_trustedr$      s     %%c*1-44V<CCGL ,$$$~>>#b'CL L	--$Q'..v6==gFC ?||0A0AAcU)0L0L  +   " 		s#   6C/ 6D/C>=C>DDc          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
r	   schemer   host_headerr   serverztuple[str, int | None] | Nonetrusted_hostszt.Iterable[str] | Noner   r   )r   s   "r   r   r   1   s:     - --- *- *	-
 	-r   c                <   RpVe   TpM&Ve#   V^ ,          pV^,          e   V RV^,           2pV R9   d   VP                  R4      '       d   VRR	 pM#V R
9   d   VP                  R4      '       d   VRR pVe"   \        WC4      '       g   \        RV: R24      hV# )a  Return the host for the given parameters.

This first checks the ``host_header``. If it's not present, then
``server`` is used. The host will only contain the port if it is
different than the standard port for the protocol.

Optionally, verify that the host is trusted using
:func:`host_is_trusted` and raise a
:exc:`~werkzeug.exceptions.SecurityError` if it is not.

:param scheme: The protocol the request used, like ``"https"``.
:param host_header: The ``Host`` header value.
:param server: Address of the server. ``(host, port)``, or
    ``(path, None)`` for unix sockets.
:param trusted_hosts: A list of trusted host names.

:return: Host, with port if necessary.
:raise ~werkzeug.exceptions.SecurityError: If the host is not
    trusted.
 Nr   z:80z:443zHost z is not trusted.>   wshttp>   wsshttps)r!   r$   r   )r&   r'   r(   r)   hosts   &&&& r   get_hostr3   1   s    4 D		ay!9 V1VAYK(DDMM%$8$8CRy	#	#f(=(=CRy t33%x/? @AAKr   c               0    V ^8  d   QhRRRRRRRRRRR	R/# )
r	   r&   r   r2   	root_pathr   pathquery_stringzbytes | Noner   r   )r   s   "r   r   r   a   sD     ($ ($($
($ ($ 	($
 ($ 	($r   c                   V RV.pVf,   VP                  R4       \        RP                  V4      4      # VP                  \        VP	                  R4      RR7      4       VP                  R4       Vf   \        RP                  V4      4      # VP                  \        VP                  R4      RR7      4       V'       d.   VP                  R4       VP                  \        VRR7      4       \        RP                  V4      4      # )a[  Recreate the URL for a request. If an optional part isn't
provided, it and subsequent parts are not included in the URL.

The URL is an IRI, not a URI, so it may contain Unicode characters.
Use :func:`~werkzeug.urls.iri_to_uri` to convert it to ASCII.

:param scheme: The protocol the request used, like ``"https"``.
:param host: The host the request was made to. See :func:`get_host`.
:param root_path: Prefix that the application is mounted under. This
    is prepended to ``path``.
:param path: The path part of the URL after ``root_path``.
:param query_string: The portion of the URL after the "?".
z:///r+   z!$&'()*+,/:;=@%)safe?z!$&'()*+,/:;=?@%)appendr   joinr   rstriplstrip)r&   r2   r5   r6   r7   urls   &&&&& r   get_current_urlrA   a   s    ( 5$
C

3"''#,'' JJuY%%c*1BCDJJsO|"''#,''JJuT[[%,=>?

3

5,>?@bggcl##r   c               $    V ^8  d   QhRRRRRR/# )r	   http_content_lengthr   http_transfer_encodingr   z
int | Noner   )r   s   "r   r   r      s&      #& r   c                l    VR8X  g   V f   R#  \        ^ \        V 4      4      #   \         d     ^ # i ; i)a  Return the ``Content-Length`` header value as an int. If the header is not given
or the ``Transfer-Encoding`` header is ``chunked``, ``None`` is returned to indicate
a streaming request. If the value is not an integer, or negative, 0 is returned.

:param http_content_length: The Content-Length HTTP header.
:param http_transfer_encoding: The Transfer-Encoding HTTP header.

.. versionadded:: 2.2
chunkedN)maxr   
ValueError)rC   rD   s   &&r   get_content_lengthrI      s?     *.A.I1j!4566 s   $ 33)NN)NNN)
__future__r   typingturllib.parser   	_internalr   
exceptionsr   urlsr   r$   r3   rA   rI   r   r   r   <module>rQ      s3    "   " & #L-`($V r   