Files
pyGoEdge-UserPanel/.venv/Lib/site-packages/urllib3/__pycache__/_collections.cpython-312.pyc

150 lines
22 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
f<> i<>C<00><01>6<00>ddlmZddlZddlmZddlmZmZddlm Z ejrddlm Z ddl m Z Gd<08>d e <0B>Zd
d gZej d <0C>Zej d <0A>Zej d<0E>Zej(d ej*eefej.eeefd fZGd<0F>de<06>Z dd<11>ZGd<12>d
ej8eefej:eef<00>ZGd<13>deeeef<00>Z Gd<15>d ej:eef<00>Z!y)<17>)<01> annotationsN)<01> OrderedDict)<02>Enum<75>auto)<01>RLock)<01>Protocol)<01>Selfc<01><00>eZdZdd<01>Zdd<02>Zy)<06>HasGettableStringKeysc<01><00>y<00>N<><00><01>selfs <20>CE:\Project\pygoedge\.venv\Lib\site-packages\urllib3/_collections.py<70>keyszHasGettableStringKeys.keys<00><00><00><03>c<01><00>yr r<00>r<00>keys r<00> __getitem__z!HasGettableStringKeys.__getitem__rrN<><02>returnztyping.Iterator[str]<5D>r<00>strrr)<05>__name__<5F>
__module__<EFBFBD> __qualname__rrrrrr r s<00><00>3<>3rr <00>RecentlyUsedContainer<65>HTTPHeaderDict<63>_KT<4B>_VT<56>_DTc<01><00>eZdZe<03>Zy)<02> _SentinelN)rrrr<00>
not_passedrrrr&r&'s <00><00><15><16>Jrr&c<01><><00>t|t<00>r|St|tj<00>r1tjtjt
t
f|<00>St|tj <00>r8tjtj tt
t
f|<00>St|d<01>r"t|d<02>rtjd|<00>Sy)Nrrr ) <09>
isinstancer!<00>typing<6E>Mapping<6E>castr<00>Iterable<6C>tuple<6C>hasattr)<01> potentials r<00>%ensure_can_construct_http_header_dictr1+s<><00><00><12>)<29>^<5E>,<2C><18><18> <13>I<EFBFBD>v<EFBFBD>~<7E>~<7E> .<2E><16>{<7B>{<7B>6<EFBFBD>><3E>><3E>#<23>s<EFBFBD>(<28>3<>Y<EFBFBD>?<3F>?<3F> <13>I<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD> /<2F><16>{<7B>{<7B>6<EFBFBD>?<3F>?<3F>5<EFBFBD><13>c<EFBFBD><18>?<3F>;<3B>Y<EFBFBD>G<>G<> <10><19>F<EFBFBD> #<23><07> <09>=<3D>(I<><15>{<7B>{<7B>2<>I<EFBFBD>><3E>><3E>rc<01><><00><00>eZdZUdZded<ded<ded<ded < d d<13>fd
<EFBFBD> Zdd <0B>Zdd <0C>Zdd <0A>Zdd<0E>Z dd<0F>Z
dd<10>Z dd<11>Z <0C>xZ S)r a<>
Provides a thread-safe dict-like container which maintains up to
``maxsize`` keys while throwing away the least-recently-used keys beyond
``maxsize``.
:param maxsize:
Maximum number of recent elements to retain.
:param dispose_func:
Every time an item is evicted from the container,
``dispose_func(value)`` is called. Callback which will get called
ztyping.OrderedDict[_KT, _VT]<5D>
_container<EFBFBD>int<6E>_maxsize<7A>#typing.Callable[[_VT], None] | None<6E> dispose_funcr<00>lockc<01>z<00><01>t<00>|<00><00>||_||_t <00>|_t <00>|_yr )<08>super<65>__init__r5r7rr3rr8)r<00>maxsizer7<00> __class__s <20>rr;zRecentlyUsedContainer.__init__Rs1<00><><00>
<0E><07><18><1A><1F><04> <0A>(<28><04><19>%<25>-<2D><04><0F><19>G<EFBFBD><04> rc<01><><00>|j5|jj|<01>}||j|<|cddd<00>S#1swYyxYwr )r8r3<00>pop)rr<00>items rrz!RecentlyUsedContainer.__getitem__]s8<00><00> <11>Y<EFBFBD>Y<EFBFBD><17>?<3F>?<3F>&<26>&<26>s<EFBFBD>+<2B>D<EFBFBD>#'<27>D<EFBFBD>O<EFBFBD>O<EFBFBD>C<EFBFBD> <20><17><17>Y<EFBFBD>Y<EFBFBD>s <00>,A<03>A c<01><><00>d}|j5 ||jj|<01>f}||j|<ddd<00>|<03>$|jr|\}}|j|<05>yyy#t$rP||j|<t |j<00>|j
kDr|jj d<01><02>}Y<00><>wxYw#1swY<00><>xYw)NF)<01>last)r8r3r?<00>KeyError<6F>lenr5<00>popitemr7)rr<00>value<75> evicted_item<65>_<> evicted_values r<00> __setitem__z!RecentlyUsedContainer.__setitem__ds<><00><00><1B> <0C> <11>Y<EFBFBD>Y<EFBFBD> G<01> #<23>D<EFBFBD>O<EFBFBD>O<EFBFBD>$7<>$7<><03>$<<3C><<3C> <0C>',<2C><04><0F><0F><03>$<24><17>& <18> #<23><04>(9<>(9<>+<2B> <1C>A<EFBFBD>}<7D> <10> <1D> <1D>m<EFBFBD> ,<2C>):<3A> #<23><><1C> G<01>(-<2D><04><0F><0F><03>$<24><16>t<EFBFBD><EFBFBD><EFBFBD>'<27>$<24>-<2D>-<2D>7<>$(<28>?<3F>?<3F>#:<3A>#:<3A><05>#:<3A>#F<>L<EFBFBD><4C> G<01><><17>Y<EFBFBD>s)<00>C<03>,A,<02>,AC<05>C<03>C<05>C<03>Cc<01><><00>|j5|jj|<01>}ddd<00>|jr|j<02>yy#1swY<00>(xYwr )r8r3r?r7)rrrFs r<00> __delitem__z!RecentlyUsedContainer.__delitem__}sH<00><00> <11>Y<EFBFBD>Y<EFBFBD><18>O<EFBFBD>O<EFBFBD>'<27>'<27><03>,<2C>E<EFBFBD><17> <10> <1C> <1C> <10> <1D> <1D>e<EFBFBD> $<24> <1D><17>Y<EFBFBD>s <00>A<03>Ac<01>p<00>|j5t|j<00>cddd<00>S#1swYyxYwr )r8rDr3rs r<00>__len__zRecentlyUsedContainer.__len__<5F>s<00><00> <11>Y<EFBFBD>Y<EFBFBD><16>t<EFBFBD><EFBFBD><EFBFBD>'<27><17>Y<EFBFBD>Y<EFBFBD>s<00>,<03>5c<01><00>td<01><00>)Nz7Iteration over this class is unlikely to be threadsafe.)<01>NotImplementedErrorrs r<00>__iter__zRecentlyUsedContainer.__iter__<5F>s<00><00>!<21> E<>
<EFBFBD>
rc<01>
<00>|j5t|jj<00><00>}|jj <00>ddd<00>|j
rD]}|j |<02><00>yy#1swY<00>/xYwr )r8<00>listr3<00>values<65>clearr7)rrTrFs rrUzRecentlyUsedContainer.clear<61>se<00><00> <11>Y<EFBFBD>Y<EFBFBD><19>$<24>/<2F>/<2F>0<>0<>2<>3<>F<EFBFBD> <10>O<EFBFBD>O<EFBFBD> !<21> !<21> #<23><17>
<10> <1C> <1C><1F><05><14>!<21>!<21>%<25>(<28> <20> <1D> <17>Y<EFBFBD>s <00>>A9<03>9Bc<01><><00>|j5t|jj<00><00>cddd<00>S#1swYyxYwr )r8<00>setr3rrs rrzRecentlyUsedContainer.keys<79>s(<00><00> <11>Y<EFBFBD>Y<EFBFBD><16>t<EFBFBD><EFBFBD><EFBFBD>+<2B>+<2B>-<2D>.<2E><17>Y<EFBFBD>Y<EFBFBD>s <00>#:<03>A)<02>
N)r<r4r7r6r<00>None)rr"rr#)rr"rFr#rrY)rr"rrY<00>rr4)rztyping.NoReturn)rrY)rzset[_KT])rrr<00>__doc__<5F>__annotations__r;rrJrLrNrQrUr<00> __classcell__<5F>r=s@rr r ?sl<00><><00> <08>-<2D>,<2C><11>M<EFBFBD>5<>5<>
<0F>K<EFBFBD><1A><@<40> <1C><14> <1C>:<3A> <1C>
<0E> <1C><18>-<2D>2%<25>(<28>
<EFBFBD>
)<29>/rc<01><<00>eZdZUdZded<d d<04>Zd
d<05>Zd d<06>Zd d<07>Zy) <0A>HTTPHeaderDictItemViewa<77>
HTTPHeaderDict is unusual for a Mapping[str, str] in that it has two modes of
address.
If we directly try to get an item with a particular name, we will get a string
back that is the concatenated version of all the values:
>>> d['X-Header-Name']
'Value1, Value2, Value3'
However, if we iterate over an HTTPHeaderDict's items, we will optionally combine
these values based on whether combine=True was called when building up the dictionary
>>> d = HTTPHeaderDict({"A": "1", "B": "foo"})
>>> d.add("A", "2", combine=True)
>>> d.add("B", "bar")
>>> list(d.items())
[
('A', '1, 2'),
('B', 'foo'),
('B', 'bar'),
]
This class conforms to the interface required by the MutableMapping ABC while
also giving us the nonstandard iteration behavior we want; items with duplicate
keys, ordered by time of first insertion.
r!<00>_headersc<01><00>||_yr )ra)r<00>headerss rr;zHTTPHeaderDictItemView.__init__<5F>s <00><00><1F><04> rc<01>Z<00>tt|jj<00><00><00>Sr )rDrSra<00> iteritemsrs rrNzHTTPHeaderDictItemView.__len__<5F>s<00><00><12>4<EFBFBD><04> <0A> <0A>/<2F>/<2F>1<>2<>3<>3rc<01>6<00>|jj<00>Sr )rarers rrQzHTTPHeaderDictItemView.__iter__<5F>s<00><00><13>}<7D>}<7D>&<26>&<26>(<28>(rc<01><><00>t|t<00>rOt|<01>dk(rA|\}}t|t<00>r,t|t<00>r|jj ||<03>Sy)N<>F)r)r.rDrra<00>_has_value_for_header)rr@<00>
passed_key<EFBFBD>
passed_vals r<00> __contains__z#HTTPHeaderDictItemView.__contains__<5F>sM<00><00> <15>d<EFBFBD>E<EFBFBD> "<22>s<EFBFBD>4<EFBFBD>y<EFBFBD>A<EFBFBD>~<7E>%)<29> "<22>J<EFBFBD>
<EFBFBD><19>*<2A>c<EFBFBD>*<2A>z<EFBFBD>*<2A>c<EFBFBD>/J<><1B>}<7D>}<7D>:<3A>:<3A>:<3A>z<EFBFBD>R<>R<>rN)rcr!rrYrZ<00>rz typing.Iterator[tuple[str, str]])r@<00>objectr<00>bool) rrrr[r\r;rNrQrlrrrr`r`<00>s#<00><00><08>8<1D><1C> <20>4<>)<29>rr`c<01>|<00><00>eZdZUdZded<d!d"<22>fd<04> Zd#d<05>Zd$d<06>Zd%d<07>Zd&d<08>Z d'd(<28>fd <09> Z
d)d
<EFBFBD>Z d)d <0B>Z d*d <0C>Z d+d <0A>Zd%d<0E>Zdd<10>d,d<11>Zd-d<12>Zej&d.d<13><04>Zej&d/d<14><04>Zej,f d0d<15>Zd1d<16>ZeZeZeZeZd2d<17>Zd3d<18>Zd1d<19>Zd4d<1A>Zd4d<1B>Z d5d<1C>Z!d6d<1D>Z"d7d<1E>Z#d8d<1F>Z$d8d <20>Z%<25>xZ&S)9r!ap
:param headers:
An iterable of field-value pairs. Must not contain multiple field names
when compared case-insensitively.
:param kwargs:
Additional field-value pairs to pass in to ``dict.update``.
A ``dict`` like container for storing HTTP Headers.
Field names are stored and compared case-insensitively in compliance with
RFC 7230. Iteration provides the first case-sensitive key seen for each
case-insensitive pair.
Using ``__setitem__`` syntax overwrites fields that compare equal
case-insensitively in order to maintain ``dict``'s api. For fields that
compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
in a loop.
If multiple fields that are equal case-insensitively are passed to the
constructor or ``.update``, the behavior is undefined and some will be
lost.
>>> headers = HTTPHeaderDict()
>>> headers.add('Set-Cookie', 'foo=bar')
>>> headers.add('set-cookie', 'baz=quxx')
>>> headers['content-length'] = '7'
>>> headers['SET-cookie']
'foo=bar, baz=quxx'
>>> headers['Content-Length']
'7'
z%typing.MutableMapping[str, list[str]]r3c <01><><00><01>t<00>|<00><00>i|_|<01>3t|t<00>r|j |<01>n|j |<01>|r|j |<02>yyr )r:r;r3r)r!<00>
_copy_from<EFBFBD>extend)rrc<00>kwargsr=s <20>rr;zHTTPHeaderDict.__init__<5F>sQ<00><><00> <0A><07><18><1A><1C><04><0F> <12> <1E><19>'<27>><3E>2<><14><0F><0F><07>(<28><14> <0B> <0B>G<EFBFBD>$<24> <11> <10>K<EFBFBD>K<EFBFBD><06> <1F> rc<01><><00>t|t<00>r|jd<01>}||g|j|j <00><y)N<>latin-1)r)<00>bytes<65>decoder3<00>lower<65>rr<00>vals rrJzHTTPHeaderDict.__setitem__<5F>s2<00><00> <15>c<EFBFBD>5<EFBFBD> !<21><15>*<2A>*<2A>Y<EFBFBD>'<27>C<EFBFBD>(+<2B>S<EFBFBD>z<EFBFBD><04><0F><0F><03> <09> <09> <0B>$rc<01>d<00>|j|j<00>}dj|dd<00>S)N<>, <20><00>r3ry<00>joinrzs rrzHTTPHeaderDict.__getitem__s+<00><00><12>o<EFBFBD>o<EFBFBD>c<EFBFBD>i<EFBFBD>i<EFBFBD>k<EFBFBD>*<2A><03><13>y<EFBFBD>y<EFBFBD><13>Q<EFBFBD>R<EFBFBD><17>!<21>!rc<01>:<00>|j|j<00>=yr <00>r3ryrs rrLzHTTPHeaderDict.__delitem__s<00><00> <10>O<EFBFBD>O<EFBFBD>C<EFBFBD>I<EFBFBD>I<EFBFBD>K<EFBFBD> (rc<01>\<00>t|t<00>r|j<00>|jvSy<01>NF)r)rryr3rs rrlzHTTPHeaderDict.__contains__s$<00><00> <15>c<EFBFBD>3<EFBFBD> <1F><16>9<EFBFBD>9<EFBFBD>;<3B>$<24>/<2F>/<2F>1<> 1<>rc<01>$<00><01>t<00>|<00>||<02>Sr )r:<00>
setdefault)rr<00>defaultr=s <20>rr<>zHTTPHeaderDict.setdefault s<00><><00><14>w<EFBFBD>!<21>#<23>w<EFBFBD>/<2F>/rc<01>"<00>t|<01>}|<02>yt|<00>|<02>}|j<00>D<00><04>cic]\}}|j<00>|<05><02>c}}|j<00>D<00><04>cic]\}}|j<00>|<05><02>c}}k(Scc}}wcc}}wr<>)r1<00>type<70>
itermergedry)r<00>other<65>maybe_constructable<6C>other_as_http_header_dict<63>k<>vs r<00>__eq__zHTTPHeaderDict.__eq__s<><00><00>C<>E<EFBFBD>J<><1B> <1E> &<26><18>(2<><04>T<EFBFBD>
<EFBFBD>3F<EFBFBD>(G<> %<25>)-<2D><1F><1F>):<3A>;<3B>):<3A><14><11>A<EFBFBD><01><07><07> <09>1<EFBFBD> <0C>):<3A>;<3B>%><3E>%I<>%I<>%K<>@
<EFBFBD>%K<>T<EFBFBD>Q<EFBFBD><01>A<EFBFBD>G<EFBFBD>G<EFBFBD>I<EFBFBD>q<EFBFBD>L<EFBFBD>%K<>@
<EFBFBD>
<EFBFBD>
<EFBFBD><EFBFBD>;<3B><>@
s <00>B<06>$B c<01>&<00>|j|<01> Sr )r<>)rr<>s r<00>__ne__zHTTPHeaderDict.__ne__s<00><00><17>;<3B>;<3B>u<EFBFBD>%<25>%<25>%rc<01>,<00>t|j<00>Sr )rDr3rs rrNzHTTPHeaderDict.__len__s<00><00><12>4<EFBFBD>?<3F>?<3F>#<23>#rc#<01>XK<00>|jj<00>D] }|d<00><01><00> y<00>w)Nr)r3rT)r<00>valss rrQzHTTPHeaderDict.__iter__!s&<00><00><><00><18>O<EFBFBD>O<EFBFBD>*<2A>*<2A>,<2C>D<EFBFBD><16>q<EFBFBD>'<27>M<EFBFBD>-<2D>s<00>(*c<01>*<00> ||=y#t$rYywxYwr )rCrs r<00>discardzHTTPHeaderDict.discard&s <00><00> <11><14>S<EFBFBD> <09><><17> <11> <10> <11>s <00><00> <03>F)<01>combinec<01><00>t|t<00>r|jd<01>}|j<00>}||g}|jj ||<05>}||ur3t |<06>dk\sJ<00>|r|ddz|z|d<y|j|<02>yy)a<>Adds a (name, value) pair, doesn't overwrite the value if it already
exists.
If this is called with combine=True, instead of adding a new header value
as a distinct item during iteration, this will instead append the value to
any existing header value with a comma. If no existing header value exists
for the key, then the value will simply be added, ignoring the combine parameter.
>>> headers = HTTPHeaderDict(foo='bar')
>>> headers.add('Foo', 'baz')
>>> headers['foo']
'bar, baz'
>>> list(headers.items())
[('foo', 'bar'), ('foo', 'baz')]
>>> headers.add('foo', 'quz', combine=True)
>>> list(headers.items())
[('foo', 'bar, baz, quz')]
rvrh<00><><EFBFBD><EFBFBD><EFBFBD>r}N)r)rwrxryr3r<>rD<00>append)rrr{r<><00> key_lower<65>new_valsr<73>s r<00>addzHTTPHeaderDict.add,s<><00><00>( <16>c<EFBFBD>5<EFBFBD> !<21><15>*<2A>*<2A>Y<EFBFBD>'<27>C<EFBFBD><17>I<EFBFBD>I<EFBFBD>K<EFBFBD> <09><17><13>:<3A><08><13><EFBFBD><EFBFBD>)<29>)<29>)<29>X<EFBFBD>><3E><04> <13>4<EFBFBD> <1F><17>t<EFBFBD>9<EFBFBD><01>><3E> !<21>><3E><16><1F><02>8<EFBFBD>d<EFBFBD>?<3F>S<EFBFBD>0<><04>R<EFBFBD><08><14> <0B> <0B>C<EFBFBD> <20> rc<01>0<00>t|<01>dkDrtdt|<01><00>d<03><03><00>t|<01>dk\r|dnd}t|t<00>r+|j <00>D]\}}|j ||<05><00>n<>t|t j<00>r+|j<00>D]\}}|j ||<05><00>n<>t|t j<00>rUt jt jtttf|<03>}|D]\}}|j ||<06><00>nBt|d<06>r6t|d<07>r*|j<00>D]}|j |||<00><00>|j<00>D]\}}|j ||<06><00>y) z<>Generic import function for any type of header-like object.
Adapted version of MutableMapping.update in order to insert items
with self.add instead of self.__setitem__
r~z/extend() takes at most 1 positional arguments (z given)rrrrN)rD<00> TypeErrorr)r!rer<>r*r+<00>itemsr-r,r.rr/r)r<00>argsrtr<>rr{rFs rrszHTTPHeaderDict.extendOsF<00><00>
<0F>t<EFBFBD>9<EFBFBD>q<EFBFBD>=<3D><1B>A<>#<23>d<EFBFBD>)<29><1B>G<EFBFBD>T<><0E> <0E><1F>t<EFBFBD>9<EFBFBD><01>><3E><04>Q<EFBFBD><07>r<EFBFBD><05> <15>e<EFBFBD>^<5E> ,<2C>!<21>O<EFBFBD>O<EFBFBD>-<2D><08><03>S<EFBFBD><14><08><08><13>c<EFBFBD>"<22>.<2E> <17><05>v<EFBFBD>~<7E>~<7E> .<2E>!<21>K<EFBFBD>K<EFBFBD>M<EFBFBD><08><03>S<EFBFBD><14><08><08><13>c<EFBFBD>"<22>*<2A> <17><05>v<EFBFBD><EFBFBD><EFBFBD> /<2F><1A>K<EFBFBD>K<EFBFBD><06><0F><0F><05>c<EFBFBD>3<EFBFBD>h<EFBFBD><0F> @<40>%<25>H<>E<EFBFBD>#<23>
<EFBFBD><03>U<EFBFBD><14><08><08><13>e<EFBFBD>$<24>$<24> <14>U<EFBFBD>F<EFBFBD> #<23><07><05>}<7D>(E<> <1D>z<EFBFBD>z<EFBFBD>|<7C><03><14><08><08><13>e<EFBFBD>C<EFBFBD>j<EFBFBD>)<29>$<24>!<21>,<2C>,<2C>.<2E>J<EFBFBD>C<EFBFBD><15> <10>H<EFBFBD>H<EFBFBD>S<EFBFBD>%<25> <20>)rc<01><00>yr rrs r<00>getlistzHTTPHeaderDict.getlistps<00><00>.1rc<01><00>yr r)rrr<>s rr<>zHTTPHeaderDict.getlistss<00><00>BErc<01><><00> |j|j<00>}|ddS#t$r|tjurgcYS|cYSwxYw)zmReturns a list of all the values for the named field. Returns an
empty list if the key doesn't exist.r~N)r3ryrCr&r')rrr<>r<>s rr<>zHTTPHeaderDict.getlistvsQ<00><00>
<1C><17>?<3F>?<3F>3<EFBFBD>9<EFBFBD>9<EFBFBD>;<3B>/<2F>D<EFBFBD><18><01><02>8<EFBFBD>O<EFBFBD><4F><18> <1B><16>)<29>.<2E>.<2E>.<2E><19> <09><1A>N<EFBFBD>  <1B>s<00>$<00>A<03>A<03>Ac<01>><00>gd<01>}|D]}|j|<02><00>|S)z<>
Remove content-specific header fields before changing the request
method to GET or HEAD according to RFC 9110, Section 15.4.
)zContent-EncodingzContent-LanguagezContent-Locationz Content-TypezContent-Length<74>Digestz Last-Modified)r<>)r<00>content_specific_headers<72>headers r<00>_prepare_for_method_changez)HTTPHeaderDict._prepare_for_method_change<67>s'<00><00>
$
<EFBFBD> <20>/<2F>F<EFBFBD> <10>L<EFBFBD>L<EFBFBD><16> <20>/<2F><13> rc<01>f<00>t|<00>j<00>dt|j<00><00><00>d<02>S)N<>(<28>))r<>r<00>dictr<74>rs r<00>__repr__zHTTPHeaderDict.__repr__<5F>s-<00><00><16>t<EFBFBD>*<2A>%<25>%<25>&<26>a<EFBFBD><04>T<EFBFBD>_<EFBFBD>_<EFBFBD>-><3E>(?<3F>'@<40><01>B<>Brc<01>t<00>|D]3}|j|<02>}|g|<03>|j|j<00><<00>5yr )r<>r3ry)rr<>rr{s rrrzHTTPHeaderDict._copy_from<6F>s4<00><00><18>C<EFBFBD><17>-<2D>-<2D><03>$<24>C<EFBFBD>,/<2F>;<3B>#<23>;<3B>D<EFBFBD>O<EFBFBD>O<EFBFBD>C<EFBFBD>I<EFBFBD>I<EFBFBD>K<EFBFBD> (<28>rc<01>H<00>t|<00><00>}|j|<00>|Sr )r<>rr)r<00>clones r<00>copyzHTTPHeaderDict.copy<70>s"<00><00><1A><04>T<EFBFBD>
<EFBFBD> <0C><05> <0A><18><18><14><1E><14> rc#<01>zK<00>|D]2}|j|j<00>}|ddD] }|d|f<02><01><00> <00>4y<02>w)z8Iterate over all header lines, including duplicate ones.r~Nrr<>)rrr<>r{s rrezHTTPHeaderDict.iteritems<6D>sB<00><00><><00><17>C<EFBFBD><17>?<3F>?<3F>3<EFBFBD>9<EFBFBD>9<EFBFBD>;<3B>/<2F>D<EFBFBD><1B>A<EFBFBD>B<EFBFBD>x<EFBFBD><03><1A>1<EFBFBD>g<EFBFBD>s<EFBFBD>l<EFBFBD>"<22> <20><18>s<00>9;c#<01><>K<00>|D]:}|j|j<00>}|ddj|dd<00>f<02><01><00><y<04>w)z:Iterate over all headers, merging duplicate ones together.rr}r~Nrrzs rr<>zHTTPHeaderDict.itermerged<65>sB<00><00><><00><17>C<EFBFBD><16>/<2F>/<2F>#<23>)<29>)<29>+<2B>.<2E>C<EFBFBD><15>a<EFBFBD>&<26>$<24>)<29>)<29>C<EFBFBD><01><02>G<EFBFBD>,<2C>,<2C> ,<2C><18>s<00>AAc<01><00>t|<00>Sr )r`rs rr<>zHTTPHeaderDict.items<6D>s <00><00>%<25>d<EFBFBD>+<2B>+rc<01>P<00>||vr"||j|j<00>ddvSy)Nr~Fr<46>)r<00> header_name<6D>potential_values rriz$HTTPHeaderDict._has_value_for_header<65>s1<00><00> <16>$<24> <1E>"<22>d<EFBFBD>o<EFBFBD>o<EFBFBD>k<EFBFBD>6G<36>6G<36>6I<36>&J<>1<EFBFBD>2<EFBFBD>&N<>N<> N<>rc<01>N<00>t|<01>}|<02>tS|j|<02>|Sr )r1<00>NotImplementedrs)rr<>r<>s r<00>__ior__zHTTPHeaderDict.__ior__<5F>s.<00><00>D<01>E<EFBFBD>J<><1B> <1E> &<26>!<21> !<21> <0C> <0B> <0B>'<27>(<28><13> rc<01>n<00>t|<01>}|<02>tS|j<00>}|j|<02>|Sr )r1r<>r<>rs<00>rr<>r<><00>results r<00>__or__zHTTPHeaderDict.__or__<5F>s9<00><00>D<01>E<EFBFBD>J<><1B> <1E> &<26>!<21> !<21><15><19><19><1B><06><0E> <0A> <0A>)<29>*<2A><15> rc<01>p<00>t|<01>}|<02>tSt|<00>|<02>}|j|<00>|Sr )r1r<>r<>rsr<>s r<00>__ror__zHTTPHeaderDict.__ror__<5F>s><00><00>D<01>E<EFBFBD>J<><1B> <1E> &<26>!<21> !<21><1B><14>d<EFBFBD><1A>/<2F>0<><06><0E> <0A> <0A>d<EFBFBD><1B><15> rr )rc<00>ValidHTTPHeaderSource | Nonertr)rrr{rrrYr)rrrrY)rrnrro)<01>)rrr<>rrr)r<>rnrrorZr)rrr{rr<>rorrY)r<><00>ValidHTTPHeaderSourcertrrrY)rrrz list[str])rrr<>r$r<00>list[str] | _DT)rrr<>z_Sentinel | _DTrr<>)rr )rr)r<>r!rrYrm)rr`)r<>rr<>rrro)r<>rnrr!)r<>rnrr )'rrrr[r\r;rJrrLrlr<>r<>r<>rNrQr<>r<>rsr*<00>overloadr<64>r&r'r<><00>
getheaders<EFBFBD>getallmatchingheaders<72>iget<65>get_allr<6C>rrr<>rer<>r<>rir<>r<>r<>r]r^s@rr!r!<00>s<><00><><00><08>B6<>5<>  <20>2<> "<22>)<29><15>
0<> 
<EFBFBD>&<26>$<24><1A>
<11> :?<3F>!!<21>F!<21>B <0C>_<EFBFBD>_<EFBFBD>1<><15>1<> <0B>_<EFBFBD>_<EFBFBD>E<><15>E<>4=<3D>3G<33>3G<33><1C><16><1C>!0<><1C> <18><1C>$<14>&<19>J<EFBFBD>#<23><19> <12>D<EFBFBD><16>G<EFBFBD>C<01>7<>
<15>
#<23>-<2D> ,<2C><15>
<14><16>r)r0rnrr<>)"<22>
__future__rr*<00> collectionsr<00>enumrr<00> threadingr<00> TYPE_CHECKINGr<00>typing_extensionsr r <00>__all__<5F>TypeVarr"r#r$<00>Unionr+rr-r.r<>r&r1<00>Generic<69>MutableMappingr rWr`r!rrr<00><module>r<>s4<00><01>"<22> <0A>#<23><1B><1B> <09><17><17> <20>&<26>4<><08>4<> #<23>$4<>
5<EFBFBD><07><15>f<EFBFBD>n<EFBFBD>n<EFBFBD>U<EFBFBD><1B><03><14>f<EFBFBD>n<EFBFBD>n<EFBFBD>U<EFBFBD><1B><03><14>f<EFBFBD>n<EFBFBD>n<EFBFBD>U<EFBFBD><1B><03><1E> <0C> <0C><14>
<EFBFBD>N<EFBFBD>N<EFBFBD>3<EFBFBD><03>8<EFBFBD><1C>
<EFBFBD>O<EFBFBD>O<EFBFBD>E<EFBFBD>#<23>s<EFBFBD>(<28>O<EFBFBD>$<24><1B><1D><02><15><18><04><18><14><15><14>!<21><14>(Z/<2F>F<EFBFBD>N<EFBFBD>N<EFBFBD>3<EFBFBD><03>8<EFBFBD>4<>f<EFBFBD>6K<36>6K<36>C<EFBFBD>QT<51>H<EFBFBD>6U<36>Z/<2F>z-<15>S<EFBFBD><15>s<EFBFBD>C<EFBFBD>x<EFBFBD><1F>1<>-<15>`S<16>V<EFBFBD>*<2A>*<2A>3<EFBFBD><03>8<EFBFBD>4<>Sr