1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
Ë
·^i8ÙãóL—ddlZddlZddlZddlmZmZddlmZddlm    Z    m
Z
ddl m Z ddl mZmZmZmZmZmZmZmZddlmZmZddlZddlmZmZmZdd    lmZ d
d l!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/m0Z0m1Z1m2Z2d
dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ddddddœZAeBe«ZCeBd«ZDejŠdejŒ«ZGed«ZHej’dk\rddl mJZJneZJGd„de«ZKeKj˜ZMGd„de«ZNGd„ded¬«ZOdeHd eHfd!„ZPe
d"eQd d#fd$„«ZRe
d"eQd d#fd%„«ZSe
d&eQd'eQd(eeQdfd)eeQdfd*eQd+eeTdfd,eQd-eQd.eQd d#fd/„«ZUd&eQd0eQd,eQd1eQd.eQd d#f d2„ZVe
eV«ZWePGd3„d#««ZXd4ZYd5ZZe
eY«d6eQd eQfd7„«a[e
eY«d*eQd eQfd8„«a\e
eZ«d*eQd9e]d eQfd:„«a^ePdDd;„«Z_ePd eNfd<„«Z`ePeYeYeMeMeMd=œd>eeTdfd?eeTdfd@eeTdeKfdAeeTdeKfdBeeTdeKfd df dC„«Zay)EéN)ÚMappingÚSequence)ÚEnum)Ú
_CacheInfoÚ    lru_cache)Ú
ip_address)Ú TYPE_CHECKINGÚAnyÚNoReturnÚ    TypedDictÚTypeVarÚUnionÚcastÚoverload)Ú SplitResultÚ uses_relative)Ú    MultiDictÚMultiDictProxyÚistr)Úunder_cached_propertyé)ÚUSES_AUTHORITYÚ SplitURLTypeÚ make_netlocÚquery_to_pairsÚ split_netlocÚ    split_urlÚunsplit_result)Únormalize_pathÚnormalize_path_segments)ÚQueryÚ QueryVariableÚ SimpleQueryÚ get_str_queryÚget_str_query_from_iterableÚ$get_str_query_from_sequence_iterable) ÚFRAGMENT_QUOTERÚFRAGMENT_REQUOTERÚ PATH_QUOTERÚ PATH_REQUOTERÚPATH_SAFE_UNQUOTERÚ PATH_UNQUOTERÚ QS_UNQUOTERÚ QUERY_QUOTERÚQUERY_REQUOTERÚQUOTERÚREQUOTERÚUNQUOTERÚ human_quoteéPi»é)ÚhttpÚhttpsÚwsÚwssÚftpa<
        # any character not in the unreserved or sub-delims sets, plus %
        # (validated with the additional check for pct-encoded sequences below)
        [^a-z0-9\-._~!$&'()*+,;=%]
    |
        # % only allowed if it is part of a pct-encoded
        # sequence of 2 hex digits.
        %(?![0-9a-f]{2})
    Ú_T)éé )ÚSelfcó—eZdZdZdZy)Ú UndefinedTypez4Singleton type for use with not set sentinel values.rN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú
_singleton©óõ\H:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\yarl/_url.pyr@r@Zs
„Ù>àJrGr@cóD—eZdZUdZeed<eed<eed<eed<eed<y)Ú    CacheInfozHost encoding cache.Ú idna_encodeÚ idna_decoderÚ host_validateÚ encode_hostN)rArBrCrDrÚ__annotations__rFrGrHrJrJcs#…ÙàÓØÓØÓØÓØÔrGrJcó—eZdZUeed<ded<eed<eed<eed<eed<eed<eed    fed
<eed    fed <eed    fed <eed    fed <eed    fed<eed    fed<eed    fed<eed    fed<eed    fed<eed    fed<eed<eed<e    e
eefed<ded<eed<eed<eed<eed<eed<eed<e
edfed <e
edfed!<ded"<eed#<eed$<eed%<eed&<e
edfed'<e
edfed(<y    ))Ú_InternalURLCacheÚ_valÚURLÚ_originÚabsoluteÚhashÚschemeÚ raw_authorityÚ    authorityNÚraw_userÚuserÚ raw_passwordÚpasswordÚraw_hostÚhostÚhost_subcomponentÚhost_port_subcomponentÚportÚ explicit_portÚraw_pathÚpathÚ _parsed_queryúMultiDictProxy[str]ÚqueryÚraw_query_stringÚ query_stringÚpath_qsÚ raw_path_qsÚ raw_fragmentÚfragment.Ú    raw_partsÚpartsÚparentÚraw_nameÚnameÚ
raw_suffixÚsuffixÚ raw_suffixesÚsuffixes) rArBrCrrOÚboolÚintÚstrrÚlistÚtuplerFrGrHrQrQmsS…Ø
ÓØ ƒN؃NØ
ƒIØ ƒKØÓ؃NؐC˜IÑÓØ
T    Ñ
ÓØ˜˜T˜    Ñ"Ó"ؐC˜IÑÓØC˜IÑÓØ
T    Ñ
ÓØ˜S $˜YÑ'Ó'Ø! # t )Ñ,Ó,Ø
T    Ñ
ÓØ˜˜d˜Ñ#Ó#؃MØ
ƒIؘ˜c 3˜h™Ñ(Ó(Ø  Ó ØÓØÓØ ƒLØÓØÓ؃MؐS˜#X‰ÓØ c‰?ÓØ ƒM؃MØ
ƒI؃OØ ƒKؘ˜S˜‘/Ó!ؐC˜H‰oÔrGrQF)ÚtotalÚobjÚreturncó—d|_|S)NÚyarl)rB)r~s rHÚrewrite_moduler‚”s€Ø€C„NØ €JrGÚurl_strrScóÄ—i}t|«\}}}}}|sd}n²d|vsd|vsd|vrt|«\}}    }}
ndx}x}    }
|}|€|tvrd|›d} t| «‚d}t    |d¬    «}d|vr|d
d n||d <|
|d <|    €|€|
€|n|›d|
›}d|d<d|d<n6|r t |«n|} |    r t |    «n|    } t | | ||
«}| |d<| |d<|rt|«}|rd|vr t|«}|r t|«}|r t|«}||d<|s|rdn||d<||d<||d<tjt«}||_||_||_||_||_||_|S)zParse unencoded URL.Úú:ú@ú[Nz9Invalid URL: host is required for absolute urls with the ú schemeF©Ú validate_hostréÿÿÿÿr^rcrZr\ú.rWú/rdrirm)rrÚSCHEME_REQUIRES_HOSTÚ
ValueErrorÚ _encode_hostr1rr*rr/r(ÚobjectÚ__new__rSÚ_schemeÚ_netlocÚ_pathÚ_queryÚ    _fragmentÚ_cache)rƒÚcacherWÚnetlocrerhrnr_Úusernamer]rbÚmsgrZr\Úselfs               rHÚ
encode_urlrŸ™sÝ€ð "€Eä,5°gÓ,>Ñ)€FˆFD˜% Ù Ø‰à &‰=˜C 6™M¨S°F©]ä-9¸&Ó-AÑ *ˆHh ¡dà)-Ð -ˆHÐ -x $؈DØ ˆ<ØÔ-Ñ-ð.Ø.4¨X°Wð>ðô! “oÐ%àÜ˜D°Ô6ˆà*-°©+˜D  2™J¸4ˆˆjÑØ!%ˆˆoÑØ Ð  Р0à!˜\‘T°$°°q¸¸Ð/?ˆFØ $ˆE*Ñ Ø$(ˆE.Ò !á-5”x Ô)¸8ˆHÙ19œ8 HÔ-¸xˆLÜ  ¨<¸¸tÓDˆFØ (ˆE*Ñ Ø$0ˆE.Ñ !á ܘTÓ"ˆÙ c˜T‘kÜ! $Ó'ˆD٠ܘuÓ%ˆÙÜ$ XÓ.ˆà€Eˆ(OÙ#'©F™¸€Eˆ*ÑØ %€EÐ
ÑØ$€Eˆ.Ñä >‰>œ#Ó €DØ€D„LØ€D„LØ€D„JØ€D„KØ€D„NØ€D„KØ €KrGcóž—tjt«}t|«}|\|_|_|_|_|_i|_    |S)zParse pre-encoded URL.)
r’r“rSrr”r•r–r—r˜r™)rƒržÚvals   rHÚpre_encoded_urlr¢ÙsB€ô >‰>œ#Ó €DÜ
GÓ
€CØJMÑG€D„L$”, ¤
¨D¬K¸¼Ø€D„KØ €KrGrWrYr[r]r_rbrerjrnc    ó2—tjt«}    ||    _|r||    _nP|rG||t
j |«k(rdn|}|€|€|€|n|›d|›|    _nt||||«|    _nd|    _||    _||    _    ||    _
i|    _ |    S)z#Build a pre-encoded URL from parts.Nr†r…) r’r“rSr”r•Ú DEFAULT_PORTSÚgetrr–r—r˜r™)
rWrYr[r]r_rbrerjrnržs
          rHÚbuild_pre_encoded_urlr¦ãs¡€ô >‰>œ#Ó €DØ€D„LÙØ ˆ Ù     Ø Ð Ø¤=×#4Ñ#4°VÓ#<Ò<‘4À$ˆDØ ˆ<˜HÐ,Ø#' <™4¸°v¸Q¸t¸fÐ5EˆDLä& t¨X°t¸TÓBˆDLàˆŒ Ø€D„JØ€D„KØ€D„NØ€D„KØ €KrGr›rhcóŒ—tjt«}||_||_||_||_||_i|_|S)zCreate a new URL from parts.)    r’r“rSr”r•r–r—r˜r™)rWr›rerhrnržs      rHÚfrom_parts_uncachedr¨sA€ô >‰>œ#Ó €DØ€D„LØ€D„LØ€D„JØ€D„KØ€D„NØ€D„KØ €KrGcóô—eZdZUdZeed<eed<eed<eed<eed<eed<efdd    d
œd eee    de
fd e d ee d    fddfd„Z e ddd    d    dd    dd    ddddœ dededeed    fdeed    fdedeed    fdedeed    fdeded e ddfd„«Zdefd„Zdefd„Zdefd„Zdefd „Zd!ede fd"„Zdefd#„Zd!ede fd$„Zd!ede fd%„Zd!ede fd&„Zd!ede fd'„Zd(eddfd)„Zdeddfd*„Zde fd+„Z de!e    fd,„Z"d-ee!e#e!d    effdd    fd.„Z$d{d/„Z%de fd0„Z&de fd1„Z'd|d2„Z(e)de#fd3„«Z*e)d|d4„«Z+d|d5„Z,e)de fd6„«Z-e)defd7„«Z.e)defd8„«Z/e)defd9„«Z0e)deed    ffd:„«Z1e)deed    ffd;„«Z2e)deed    ffd<„«Z3e)deed    ffd=„«Z4e)deed    ffd>„«Z5e)deed    ffd?„«Z6e)deed    ffd@„«Z7e)deed    ffdA„«Z8e)deed    ffdB„«Z9e)deed    ffdC„«Z:e)defdD„«Z;e)defdE„«Z<e)defdF„«Z=e)de>e!eeffdG„«Z?e)d}dH„«Z@e)defdI„«ZAe)defdJ„«ZBe)defdK„«ZCe)defdL„«ZDe)defdM„«ZEe)defdN„«ZFe)de!edOffdP„«ZGe)de!edOffdQ„«ZHe)d|dR„«ZIe)defdS„«ZJe)defdT„«ZKe)defdU„«ZLe)defdV„«ZMe)de!edOffdW„«ZNe)de!edOffdX„«ZOd~dYdZd e ddfd[„ZPdeddfd\„ZQdeed    fddfd]„ZRdeed    fddfd^„ZSdeddfd_„ZTdeed    fddfd`„ZUddddaœded e dbe dce ddf
dd„ZVeWdeddfde„«ZXeWdfeYddfdg„«ZXdheZdfeZddfdi„ZXeWdeddfdj„«Z[eWdfeYddfdk„«Z[dheZdfeZddfdl„Z[eWdeddfdm„«Z\eWdfeYddfdn„«Z\dheZdfeZddfdo„Z\dpeddfdq„Z]deed    fddfdr„Z^dddsœd(edbe dce ddfdt„Z_dddsœduedbe dce ddfdv„Z`ddw„Zaddxœd!ed e ddfdy„Zbdefdz„Zcy    )€rS)r™r”r•r–r—r˜r™r”r•r–r—r˜FN)ÚencodedÚstrictr¡rªr«rcó—|tjd«t|«tur|r t    |«St |«St|«|ur|St|«t ur|s td«‚t|ŽSt|t«r*|rt    t|««St t|««S|turEtjt«}dx|_x|_x|_x|_|_i|_|St)d«‚)Nzstrict parameter is ignoredz$Cannot apply decoding to SplitResultr…z#Constructor parameter should be str)ÚwarningsÚwarnÚtyperzr¢rŸrrÚ
from_partsÚ
isinstanceÚ    UNDEFINEDr’r“rSr”r•r–r—r˜r™Ú    TypeError)Úclsr¡rªr«ržs     rHr“z URL.__new__esì€ð Ð Ü M‰MÐ7Ô 8Ü ‹9œÑ Ù+2”? 3Ó'Ð G¼
À3»Ð GÜ ‹9˜Ñ ؈JÜ ‹9œ Ñ #ÙÜ Ð!GÓHÐHܘsÐ#Ð #Ü cœ3Ô Ù07”?¤3 s£8Ó,Ð Q¼ZÌÈCËÓ=QÐ QØ ”)Ñ ô—>‘>¤#Ó&ˆDØVXÐ XˆDŒLÐ X˜4œ<Ð X¨$¬*Ð X°t´{ÀTÄ^؈DŒK؈KÜÐ=Ó>Ð>rGr…) rWrYr[r]r_rbrerhrjrnrªrWrYr[r]r_rbrerhrjrnc óx—|r|s|s|s|r td«‚|(t|t«stdt    |«›d«‚|r |s td«‚|r |    r td«‚|
||||    |
€ td«‚|rt |«xsd}    | rt ||||||||    |
«    Stjt«} || _
d} |r"t|«\}}} }| r t| d    ¬
«nd} n|rt|d ¬
«} nd| _ | G||tj|«k(rdn|}|€|€|€| n| ›d |›| _ nt!||| |d «| _ |r t#|«n|}|r0| jr$d|vr t%|«}|d dk7r d}t|«‚|| _|s |    r t)|    «}    |    | _|
r t-|
«n|
| _i| _| S)zCreates and returns a new URLz@Can't mix "authority" with "user", "password", "host" or "port".Nz$The port is required to be int, got rz/Can't build URL with "port" but without "host".z6Only one of "query" or "query_string" should be passedz}NoneType is illegal for "scheme", "authority", "host", "path", "query_string", and "fragment" args, use empty string instead.r…FrŠTr†rrŽzCPath in a URL with authority should start with a slash ('/') if set)rr±ryr³r¯r$r¦r’r“rSr”rr‘r•r¤r¥rr)rr–r.r—r'r˜r™)r´rWrYr[r]r_rbrerhrjrnrªržÚ_hostrs               rHÚbuildz    URL.build‚s€ñ$ ™$¡(©d±dÜØSóð ð Ð ¤J¨t´SÔ$9ÜÐBÄ4ÈÃ:À.ÐPQÐRÓSÐ SÙ ™ÜÐOÓPÐ PÙ ‘\ÜÐUÓVÐ Và ˆNØÐ Øˆ|؈|ØÐ#ØÐäðQóð ñ
Ü(¨Ó/Ò5°2ˆLá Ü(ØØØØØØØØØó
ð
ô~‰~œcÓ"ˆØˆŒ Ø"&ˆÙ Ü*6°yÓ*AÑ 'ˆD(˜E 4Ù@E”L °eÕ<È2‰EÙ Ü  °TÔ:‰EàˆDŒLà Ð ØÐØ#¤}×'8Ñ'8¸Ó'@Ò@‘tÀdØˆ| Р0Ø(,¨ ™u¸U¸GÀ1ÀTÀFÐ:K• ä*¨4°¸5À$ÈÓM” á$(Œ{˜4Ô ¨dˆÙ D—L’Lؐd‰{Ü% dÓ+ØA‰w˜#Š~ð6ðô! “oÐ%àˆŒ
Ù™Ü'¨ Ó5ˆLØ"ˆŒ Ù6>œ¨Ô2ÀHˆŒØˆŒ ؈ rGcó —td|›d«‚)NzInheriting a class z from URL is forbidden)r³)r´s rHÚ__init_subclass__zURL.__init_subclass__ás€ÜÐ-¨c¨WÐ4JÐKÓLÐLrGcó°—|js'|jr|js |jrd}n |j}|jx}Q|t
j |j«k(r/|j}t|j|j|d«}n |j}t|j|||j|j«S©NrŽ) r–r•r—r˜rcr¤r¥r”r`rrZr\r)ržrerbr_r›s     rHÚ__str__z URL.__str__äs¥€ØzŠz˜dŸlšl°· ² ¸t¿~º~؉Dà—:‘:ˆDØ×&Ñ&Ð &ˆDÐ 3¸Ä ×@QÑ@QØ L‰LóA
ò9
ð
×)Ñ)ˆDÜ  §¡°×0AÑ0AÀ4ÈÓN‰Fà—\‘\ˆFܘdŸl™l¨F°D¸$¿+¹+ÀtÇ~Á~ÓVÐVrGcóL—|jj›dt|«›dS)Nz('z'))Ú    __class__rArz©ržs rHÚ__repr__z URL.__repr__ôs$€Ø—.‘.×)Ñ)Ð*¨"¬S°«Y¨K°rÐ:Ð:rGcó6—t|«jd«S)NÚascii)rzÚencoder¿s rHÚ    __bytes__z URL.__bytes__÷s€Ü4‹y×Ñ Ó(Ð(rGÚothercóª—t|«turtS|js|jrdn |j}|js|jrdn |j}|j
|j
k(xrV|j|jk(xr;||k(xr4|j |j k(xr|j|jk(Sr»)r¯rSÚNotImplementedr–r•r”r—r˜)ržrÅÚpath1Úpath2s    rHÚ__eq__z
URL.__eq__ús¦€Ü ‹;œcÑ !Ü!Ð !àŸ:š:¨$¯,ª,‘¸D¿J¹JˆØ Ÿ;š;¨5¯=ª=‘¸e¿k¹kˆà L‰L˜EŸM™MÑ )ò 2Ø— ‘  § ¡ Ñ-ò 2à˜‘ò 2ð— ‘ ˜uŸ|™|Ñ+ò 2ð—‘ %§/¡/Ñ1ð     
rGcó—|jjd«x}€m|js|jrdn |j}t    |j
|j||j |jf«x}|jd<|S)NrVrŽ)r™r¥r–r•rVr”r—r˜)ržÚretres   rHÚ__hash__z URL.__hash__sp€Ø—;‘;—?‘? 6Ó*Ð *ˆCÐ 3Ø"Ÿjšj¨T¯\ª\‘3¸t¿z¹zˆDÜ(,Ø—‘˜tŸ|™|¨T°4·;±;ÀÇÁÐOó)ð ˆC$—+‘+˜fÑ%ðˆ
rGcób—t|«turtS|j|jkS©N©r¯rSrÇrR©ržrÅs  rHÚ__le__z
URL.__le__ó'€Ü ‹;œcÑ !Ü!Ð !؏y‰y˜EŸJ™JÑ&Ð&rGcób—t|«turtS|j|jkSrÏrÐrÑs  rHÚ__lt__z
URL.__lt__ó'€Ü ‹;œcÑ !Ü!Ð !؏y‰y˜5Ÿ:™:Ñ%Ð%rGcób—t|«turtS|j|jk\SrÏrÐrÑs  rHÚ__ge__z
URL.__ge__rÓrGcób—t|«turtS|j|jkDSrÏrÐrÑs  rHÚ__gt__z
URL.__gt__rÖrGrscód—t|t«stS|jt|«f«SrÏ)r±rzrÇÚ _make_child©ržrss  rHÚ __truediv__zURL.__truediv__$s)€Ü˜$¤Ô$Ü!Ð !Ø×Ѥ T£  Ó-Ð-rGcó$—|j|«SrÏ)Ú update_query©ržrhs  rHÚ__mod__z URL.__mod__)s€Ø× Ñ  Ó'Ð'rGcó€—t|jxs(|jxs|jxs |j«SrÏ)rxr•r–r—r˜r¿s rHÚ__bool__z URL.__bool__,s,€ÜD—L‘LÒO D§J¡JÒO°$·+±+ÒOÀÇÁÓPÐPrGcóL—tjt|j«fSrÏ)r|r“rrRr¿s rHÚ __getstate__zURL.__getstate__/s€Ü— ‘ œk¨4¯9©9Ó5Ð7Ð7rGÚstatecóž—|d€t|dt«r    |dd}n|^}}|\|_|_|_|_|_i|_y)NrrrR)r±Údictr”r•r–r—r˜r™)ržrçr¡Úunuseds    rHÚ __setstate__zURL.__setstate__2sU€ð ‰8Ð ¤
¨5°©8´TÔ :à˜‘(˜6Ñ"‰Cð!ˆLˆC&ØNQÑKˆŒ d”l D¤J°´ ¸T¼^؈ rGcól—|j}t|j«}|\|d<|d<|d<|d<y)z"Cache the netloc parts of the URL.rZr\r^rcN)r™rr•)ržÚcÚ    split_locs   rHÚ _cache_netloczURL._cache_netloc>s9€à K‰KˆÜ  §¡Ó.ˆ    ØNWÑKˆˆ*‰ q˜Ñ(¨!¨J©-¸¸?Ò9KrGcó—|jS)záA check for absolute URLs.
 
        Return True for absolute ones (having scheme or starting
        with //), False otherwise.
 
        Is is preferred to call the .absolute property instead
        as it is cached.
        )rUr¿s rHÚ is_absolutezURL.is_absoluteDs€ð}‰}ÐrGcó€—|jx}€|jdk7S|tj|j«k(S)zßA check for default port.
 
        Return True if port is default for specified scheme,
        e.g. 'http://python.org' or 'http://python.org:80', False
        otherwise.
 
        Return False for relative URLs.
 
        r…)rcr•r¤r¥r”)ržÚexplicits  rHÚis_default_portzURL.is_default_portOs@€ð×*Ñ*Ð *ˆHÐ 3ð—<‘< 2Ñ%Ð %Øœ=×,Ñ,¨T¯\©\Ó:Ñ:Ð:rGcó—|jS)z}Return an URL with scheme, host and port parts only.
 
        user, password, path, query and fragment are removed.
 
        )rTr¿s rHÚoriginz
URL.origin`ó€ð|‰|ÐrGcót—|j|j|j|j|jfSrÏ)r”r•r–r—r˜r¿s rHrRzURL._valis'€à— ‘ ˜dŸl™l¨D¯J©J¸¿ ¹ ÀTÇ^Á^ÐTÐTrGcó"—|jx}s td«‚|jx}s td«‚d|vr%|j}t    dd||j
«}n&|j s|js|js|St||ddd«S)z|Return an URL with scheme, host and port parts only.
 
        user, password, path, query and fragment are removed.
        úURL should be absolutezURL should have schemer‡Nr…)
r•rr”r`rrcr–r—r˜r°)ržr›rWÚ encoded_hosts    rHrTz URL._originms€ð Ÿ,™,Ð&Ð&ÜÐ5Ó6Ð 6ØŸ,™,Ð&Ð&ÜÐ5Ó6Ð 6Ø &‰=Ø×1Ñ1ˆLÜ   t¨\¸4×;MÑ;MÓN‰FØ—’ D§K¢K¸¿ºØˆKܘ& &¨"¨b°"Ó5Ð5rGcóŠ—|js td«‚tdd|j|j|j
«S)zhReturn a relative part of the URL.
 
        scheme, user, password, host and port are removed.
 
        rúr…)r•rr°r–r—r˜r¿s rHÚrelativez URL.relative~s6€ð |Š|ÜÐ5Ó6Ð 6ܘ"˜b $§*¡*¨d¯k©k¸4¿>¹>ÓJÐJrGcó —|jdk7S)z‰A check for absolute URLs.
 
        Return True for absolute ones (having scheme or starting
        with //), False otherwise.
 
        r…©r•r¿s rHrUz URL.absoluteˆs€ð|‰|˜rÑ!Ð!rGcó—|jS)zdScheme for absolute URLs.
 
        Empty string for relative URLs or URLs starting with //
 
        )r”r¿s rHrWz
URL.scheme–r÷rGcó—|jS)zQEncoded authority part of URL.
 
        Empty string for relative URLs.
 
        rÿr¿s rHrXzURL.raw_authorityŸr÷rGcón—t|j|j|j|j«S)zQDecoded authority part of URL.
 
        Empty string for relative URLs.
 
        )rr[r]r_rbr¿s rHrYz URL.authority¨s%€ô˜4Ÿ9™9 d§m¡m°T·Y±YÀÇ    Á    ÓJÐJrGcó@—|j«|jdS)zEEncoded user part of URL.
 
        None if user is missing.
 
        rZ©rïr™r¿s rHrZz URL.raw_user±s€ð     ×ÑÔØ{‰{˜:Ñ&Ð&rGcó6—|jx}€yt|«S)zEDecoded user part of URL.
 
        None if user is missing.
 
        N)rZr2)ržrZs  rHr[zURL.user¼s!€ðŸ ™ Ð %ˆHÐ .ØÜ˜Ó!Ð!rGcó@—|j«|jdS)zMEncoded password part of URL.
 
        None if password is missing.
 
        r\rr¿s rHr\zURL.raw_passwordÇs€ð     ×ÑÔØ{‰{˜>Ñ*Ð*rGcó6—|jx}€yt|«S)zMDecoded password part of URL.
 
        None if password is missing.
 
        N)r\r2)ržr\s  rHr]z URL.passwordÑs#€ð!×-Ñ-Ð -ˆLÐ 6ØÜ˜ Ó%Ð%rGcó@—|j«|jdS)zÚEncoded host part of URL.
 
        None for relative URLs.
 
        When working with IPv6 addresses, use the `host_subcomponent` property instead
        as it will return the host subcomponent with brackets.
        r^rr¿s rHr^z URL.raw_hostÜs€ð     ×ÑÔØ{‰{˜:Ñ&Ð&rGcól—|jx}€y|r|dj«sd|vr|St|«S)zDDecoded host part of URL.
 
        None for relative URLs.
 
        NrŒr†)r^ÚisdigitÚ _idna_decode©ržÚraws  rHr_zURL.hostês<€ð—=‘=Ð  ˆCÐ )ØÙ 3r‘7—?‘?Ô$¨¨s©
àˆJܘCӠРrGcó8—|jx}€yd|vrd|›dS|S)aÑReturn the host subcomponent part of URL.
 
        None for relative URLs.
 
        https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2
 
        `IP-literal = "[" ( IPv6address / IPvFuture  ) "]"`
 
        Examples:
        - `http://example.com:8080` -> `example.com`
        - `http://example.com:80` -> `example.com`
        - `https://127.0.0.1:8443` -> `127.0.0.1`
        - `https://[::1]:8443` -> `[::1]`
        - `http://[::1]` -> `[::1]`
 
        Nr†rˆú])r^r s  rHr`zURL.host_subcomponentøs/€ð$—=‘=Ð  ˆCÐ )ØØ  C™Z3%qˆzÐ0¨SÐ0rGcóð—|jx}€y|ddk(r|jd«}|j}|"|tj    |j
«k(r d|vrd|›dS|Sd|vrd|›d|›S|›d|›S)aReturn the host and port subcomponent part of URL.
 
        Trailing dots are removed from the host part.
 
        This value is suitable for use in the Host header of an HTTP request.
 
        None for relative URLs.
 
        https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2
        `IP-literal = "[" ( IPv6address / IPvFuture  ) "]"`
        https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3
        port        = *DIGIT
 
        Examples:
        - `http://example.com:8080` -> `example.com:8080`
        - `http://example.com:80` -> `example.com`
        - `http://example.com.:80` -> `example.com`
        - `https://127.0.0.1:8443` -> `127.0.0.1:8443`
        - `https://[::1]:8443` -> `[::1]:8443`
        - `http://[::1]` -> `[::1]`
 
        NrŒrr†rˆrz]:)r^Úrstriprcr¤r¥r”)ržr rbs   rHrazURL.host_port_subcomponents—€ð0—=‘=Ð  ˆCÐ )ØØ ˆr‰7cŠ>ð —*‘*˜S“/ˆCØ×!Ñ!ˆØ ˆ<˜4¤=×#4Ñ#4°T·\±\Ó#BÒBØ!$¨¡Qse˜1:Ð 4°Ð 4Ø$'¨3¡J3%r˜$˜Ð ÐC°s°e¸1¸T¸F°OÐCrGcó`—|jx}|Stj|j«S)z«Port part of URL, with scheme-based fallback.
 
        None for relative URLs or URLs without explicit port and
        scheme without default port substitution.
 
        )rcr¤r¥r”)ržrcs  rHrbzURL.port4s0€ð"×/Ñ/Ð /ˆMÐ <Ø Ð  Ü× Ñ  §¡Ó.Ð.rGcó@—|j«|jdS)zyPort part of URL, without scheme-based fallback.
 
        None for relative URLs or URLs without explicit port.
 
        rcrr¿s rHrczURL.explicit_port@s€ð     ×ÑÔØ{‰{˜?Ñ+Ð+rGcóN—|js |js |jSdS)zNEncoded path of URL.
 
        / for absolute URLs without path part.
 
        rŽ)r–r•r¿s rHrdz URL.raw_pathJs€ð"ŸZšZ¨t¯|ª|ˆtz‰zÐDÀÐDrGcód—|jrt|j«S|jrdSdS)zNDecoded path of URL.
 
        / for absolute URLs without path part.
 
        rŽr…)r–r,r•r¿s rHrezURL.pathSs*€ð-1¯JªJŒ}˜TŸZ™ZÓ(ÐWÀ4Ç<Â<¸CÐWÐUWÐWrGcód—|jrt|j«S|jrdSdS)z{Decoded path of URL.
 
        / for absolute URLs without path part.
 
        / (%2F) and % (%25) are not decoded
 
        rŽr…)r–r+r•r¿s rHÚ    path_safez URL.path_safe\s+€ð :Š:Ü% d§j¡jÓ1Ð 1Ø—l’lˆsÐ*¨Ð*rGcó,—t|j«S)zParse query part of URL.)rr—r¿s rHrfzURL._parsed_queryis€ô˜dŸk™kÓ*Ð*rGcó>—tt|j««S)z‘A MultiDictProxy representing parsed query parameters in decoded
        representation.
 
        Empty value if URL has no query part.
 
        )rrrfr¿s rHrhz    URL.queryns€ôœi¨×(:Ñ(:Ó;Ó<Ð<rGcó—|jS)zOEncoded query part of URL.
 
        Empty string if query is missing.
 
        )r—r¿s rHrizURL.raw_query_stringxs€ð{‰{ÐrGcóH—|jrt|j«SdS)zODecoded query part of URL.
 
        Empty string if query is missing.
 
        r…)r—r-r¿s rHrjzURL.query_strings€ð,0¯;ª;Œ{˜4Ÿ;™;Ó'Ð>¸BÐ>rGcóX—|jx}s |jS|j›d|›S)zDecoded path of URL with query.ú?)rjre©ržÚqs  rHrkz URL.path_qsŠs2€ð'+×&7Ñ&7Ð!7 Ð!7ˆty‰yÐPÀÇÁÀ È1ÈQÈCÐ>PÐPrGcóƗ|jx}r.|js |js|j›d|›Sd|›S|js |js |jSdS)zEncoded path of URL with query.rz/?rŽ)r—r–r•rs  rHrlzURL.raw_path_qss]€ð— ‘ Ð ˆ1Ð Ø*.¯*ª*¸D¿LºLd—j‘j\  1 #Ð&Ð VÐPRÐSTÐRUÈhÐ VØ!ŸZšZ¨t¯|ª|ˆtz‰zÐDÀÐDrGcó—|jS)zUEncoded fragment part of URL.
 
        Empty string if fragment is missing.
 
        )r˜r¿s rHrmzURL.raw_fragment–s€ð~‰~ÐrGcóH—|jrt|j«SdS)zUDecoded fragment part of URL.
 
        Empty string if fragment is missing.
 
        r…)r˜r2r¿s rHrnz URL.fragmentŸs€ð,0¯>ª>Œx˜Ÿ™Ó'ÐA¸rÐArG.cóâ—|j}|jr|rdg|ddjd«¢­SdS|r |ddk(rdg|ddjd«¢­St|jd««S)zjA tuple containing encoded *path* parts.
 
        ('/',) for absolute URLs if *path* is missing.
 
        rŽrN)rŽr)r–r•Úsplitr|)ržres  rHroz URL.raw_parts¨su€ðz‰zˆØ <Š<Ù26CÐ.˜$˜q˜r˜(Ÿ.™.¨Ó-Ñ.Ð B¸FÐ BÙ D˜‘G˜s’NØÐ.˜$˜q˜r˜(Ÿ.™.¨Ó-Ñ.Ð .ܐT—Z‘Z “_Ó%Ð%rGcó:—td„|jD««S)zjA tuple containing decoded *path* parts.
 
        ('/',) for absolute URLs if *path* is missing.
 
        c3ó2K—|]}t|«–—Œy­wrÏ©r2)Ú.0Úparts  rHú    <genexpr>zURL.parts.<locals>.<genexpr>½sèø€Ò?¨”X˜d—^Ñ?ùó‚)r|ror¿s rHrpz    URL.parts¶s€ôÑ?°·±Ô?Ó?Ð?rGc    ó.—|j}|r|dk(r=|js |jr#t|j|j
|dd«S|S|j d«}t|j|j
dj|dd«dd«S)z]A new URL with last part of path removed and cleaned up query and
        fragment.
 
        rŽr…NrŒ)r–r˜r—r°r”r•r$Újoin)ržrerps   rHrqz
URL.parent¿s{€ð z‰zˆÙt˜s’{؏~Š~ §¢Ü! $§,¡,°· ± ¸dÀBÈÓKÐK؈KØ—
‘
˜3“ˆÜ˜$Ÿ,™,¨¯ © °c·h±h¸uÀSÀb¸zÓ6JÈBÐPRÓSÐSrGcóX—|j}|js|dS|dd}|r|dSdS)zThe last part of raw_parts.rŒrNr…)ror•)ržrps  rHrrz URL.raw_nameÍs:€ð—‘ˆØ|Š|ؘ‘9Рؐab    ˆÙ!ˆuR‰yÐ) rÐ)rGcó,—t|j«S)zThe last part of parts.)r2rrr¿s rHrszURL.nameÖs€ô˜Ÿ ™ Ó&Ð&rGcó~—|j}|jd«}d|cxkrt|«dz
krnn||dSdS)Nrrrr…)rrÚrfindÚlen)ržrsÚis   rHrtzURL.raw_suffixÛs=€à}‰}ˆØ J‰Js‹OˆØ˜qÔ0¤3 t£9¨q¡=Õ0ˆtABˆxÐ8°bÐ8rGcó,—t|j«SrÏ)r2rtr¿s rHruz
URL.suffixás€ä˜Ÿ™Ó(Ð(rGcó¨—|j}|jd«ry|jd«}td„|j    d«ddD««S)NrrFc3ó&K—|]    }d|z–—Œ y­w)rNrF©r(rus  rHr*z#URL.raw_suffixes.<locals>.<genexpr>ësèø€ÒD fS˜6•\ÑDùs‚r)rrÚendswithÚlstripr|r$rÝs  rHrvzURL.raw_suffixesåsH€à}‰}ˆØ =‰=˜Ô ØØ{‰{˜3ÓˆÜÑD°·
±
¸3³ÀÀÐ0CÔDÓDÐDrGcó:—td„|jD««S)Nc3ó2K—|]}t|«–—Œy­wrÏr'r7s  rHr*zURL.suffixes.<locals>.<genexpr>ïsèø€ÒF¨&”X˜f×%ÑFùr+)r|rvr¿s rHrwz URL.suffixesís€äÑF°D×4EÑ4EÔFÓFÐFrGÚpathsz Sequence[str]cóì—g}d}tt|««D]n\}}|dk(}|r|ddk(rtd|›d«‚|r|n
t|«}|d|vz}|j    d«}|j «||s |ddk(r|dd    n|z }Œp|j x}r7|j    d«x}    r$|    d
dk(r|    d    d
n|    }
|
j «||
z }|jx} r|r|d
dk7r|jd«|j «| r|s(t|j| dj|«dd«Sdjt|««}|r |ddk7rd|›}t|j| |dd«S) z’
        add paths to self._path, accounting for absolute vs relative paths,
        keep existing, but do not create new, empty segments
        FrrŽzAppending path z! starting from slash is forbiddenrr…rNrŒ) Ú    enumerateÚreversedrr)r$Úreverser–r•Úappendr°r”r-r ) ržr<rªÚparsedÚneeds_normalizeÚidxreÚlastÚsegmentsÚ old_segmentsÚoldr›s             rHrÜzURL._make_childñsŸ€ð
ˆØ %ˆÜ"¤8¨E£?Ó3ò    S‰IˆCà˜!‘8ˆDÙ˜˜Q™ 3šÜ Ø% d XÐ-NÐOóðñ#‘4¬ °DÓ(9ˆDØ ˜s d˜{Ñ *ˆOØ—z‘z #“ˆHØ × Ñ Ô à ©$°8¸A±;À"Ò3Dh˜q˜r‘lÈ(Ñ R‰Fð!    Sð$—J‘JÐ ˆDÐ °T·Z±ZÀ³_Ð%D \Ð%Dð(4°BÑ'7¸2Ò'=,˜s Ñ#À<ˆCØ K‰KŒMØ c‰MˆFð—l‘lÐ "ˆFÐ "©°6¸"±:ÀÒ3CØ M‰M˜"Ô à‰ÔÙ™_ܘdŸl™l¨F°C·H±H¸VÓ4DÀbÈ"ÓMÐ Màx‰xÔ/°Ó7Ó8ˆá D˜‘G˜s’Nؐtf:ˆDܘ$Ÿ,™,¨°°b¸"Ó=Ð=rGcó—t|t«s td«‚|j«}|j}|s|t
vrd|›d}t |«‚t|||j|j|j«S)z&Return a new URL with scheme replaced.zInvalid scheme typez<scheme replacement is not allowed for relative URLs for the r‰) r±rzr³Úlowerr•rrr°r–r—r˜)ržrWÚ lower_schemer›rs     rHÚ with_schemezURL.with_scheme sz€ô˜&¤#Ô&ÜÐ1Ó2Ð 2Ø—|‘|“~ˆ Ø—‘ˆÙ˜,Ô*>Ñ>ð)Ø)5¨°gð?ð ô˜S“/Ð !ܘ,¨°·
±
¸D¿K¹KÈÏÉÓXÐXrGcób—|€d}n3t|t«rt|«}|j}n t    d«‚|j
x}s t d«‚|jxsd}t||||j«}t|j||j|j|j«S)z€Return a new URL with user replaced.
 
        Autoencode user if needed.
 
        Clear user/password if user is None.
 
        NzInvalid user typez1user replacement is not allowed for relative URLsr…)r±rzr0r\r³r•rr`rrcr°r”r–r—r˜)ržr[r]r›rûs     rHÚ    with_userz URL.with_user/sœ€ð ˆ<؉HÜ ˜œcÔ "ܘ$“<ˆDØ×(Ñ(‰HäÐ/Ó0Ð 0ØŸ,™,Ð&Ð&ÜÐPÓQÐ QØ×-Ñ-Ò3°ˆ ܘT 8¨\¸4×;MÑ;MÓNˆÜ˜$Ÿ,™,¨°·
±
¸D¿K¹KÈÏÉÓXÐXrGcó^—|€n't|t«r t|«}n td«‚|jx}s t d«‚|j xsd}|j}t|j|||«}t|j||j|j|j«S)z‡Return a new URL with password replaced.
 
        Autoencode password if needed.
 
        Clear password if argument is None.
 
        zInvalid password typez5password replacement is not allowed for relative URLsr…)r±rzr0r³r•rr`rcrrZr°r”r–r—r˜)ržr]r›rûrbs     rHÚ with_passwordzURL.with_passwordEsš€ð Ð Ø Ü ˜¤#Ô &ܘhÓ'‰HäÐ3Ó4Ð 4ØŸ,™,Ð&Ð&ÜÐTÓUÐ UØ×-Ñ-Ò3°ˆ Ø×!Ñ!ˆÜ˜TŸ]™]¨H°lÀDÓIˆÜ˜$Ÿ,™,¨°·
±
¸D¿K¹KÈÏÉÓXÐXrGcóp—t|t«s td«‚|jx}s t    d«‚|s t    d«‚|r t |d¬«nd}|j }t|j|j||«}t|j||j|j|j«S)z¨Return a new URL with host replaced.
 
        Autoencode host if needed.
 
        Changing host for relative URLs is not allowed, use .join()
        instead.
 
        zInvalid host typez1host replacement is not allowed for relative URLszhost removing is not allowedTrŠr…)r±rzr³r•rr‘rcrrZr\r°r”r–r—r˜)ržr_r›rûrbs     rHÚ    with_hostz URL.with_host[sœ€ô˜$¤Ô$ÜÐ/Ó0Ð 0ØŸ,™,Ð&Ð&ÜÐPÓQÐ QÙÜÐ;Ó<Ð <ÙAE”| D¸Õ=È2ˆ Ø×!Ñ!ˆÜ˜TŸ]™]¨D×,=Ñ,=¸|ÈTÓRˆÜ˜$Ÿ,™,¨°·
±
¸D¿K¹KÈÏÉÓXÐXrGcó®—|Rt|t«st|t«stdt    |«›«‚d|cxkrdksnt d|›«‚|j x}s t d«‚|jxsd}t|j|j||«}t|j||j|j|j«S)z`Return a new URL with port replaced.
 
        Clear port to default if None is passed.
 
        z port should be int or None, got riÿÿz&port must be between 0 and 65535, got z1port replacement is not allowed for relative URLsr…)r±rxryr³r¯rr•r`rrZr\r°r”r–r—r˜)ržrbr›rûs    rHÚ    with_portz URL.with_portps¼€ð Рܘ$¤Ô%¬Z¸¼cÔ-BÜÐ"BÄ4ÈÃ:À,РOÓPÐPؘÔ& Ô&Ü Ð#IÈ$ÈÐ!PÓQÐQØŸ,™,Ð&Ð&ÜÐPÓQÐ QØ×-Ñ-Ò3°ˆ ܘTŸ]™]¨D×,=Ñ,=¸|ÈTÓRˆÜ˜$Ÿ,™,¨°·
±
¸D¿K¹KÈÏÉÓXÐXrG)rªÚ
keep_queryÚ keep_fragmentrUrVcóê—|j}|st|«}|rd|vr t|«n|}|r |ddk7rd|›}|r |jnd}|r |jnd}t |j ||||«S)z$Return a new URL with path replaced.rrrŽr…)r•r)rr—r˜r°r”)ržrerªrUrVr›rhrns        rHÚ    with_pathz URL.with_path‚sx€ð—‘ˆÙܘtÓ$ˆDÙØ/2°d©{”~ dÔ+ÀÙ D˜‘G˜s’Nؐtf:ˆDÙ)— ’ ¨rˆÙ%24—>’>¸ˆÜ˜$Ÿ,™,¨°°e¸XÓFÐFrGcó—yrÏrFrás  rHÚ
with_queryzURL.with_query–s€Ø14rGÚkwargsc ó—yrÏrF©ržr[s  rHrZzURL.with_query™s€Ø<?rGÚargscóŽ—t|i|¤Žxsd}t|j|j|j||j
«S)a[Return a new URL with query part replaced.
 
        Accepts any Mapping (e.g. dict, multidict.MultiDict instances)
        or str, autoencode the argument if needed.
 
        A sequence of (key, value) pairs is supported as well.
 
        It also can take an arbitrary number of keyword arguments.
 
        Clear query if None is passed.
 
        r…)r$r¨r”r•r–r˜)ržr^r[rhs    rHrZzURL.with_queryœs@€ô˜tÐ. vÑ.Ò4°"ˆÜ"Ø L‰L˜$Ÿ,™,¨¯
©
°E¸4¿>¹>ó
ð    
rGcó—yrÏrFrás  rHÚ extend_queryzURL.extend_query¯ó€Ø36rGc ó—yrÏrFr]s  rHrazURL.extend_query²ó€Ø>ArGcóԗt|i|¤Žx}s|S|jx}r||ddk(r|nd|›z }n|}t|j|j|j
||j «S)a&Return a new URL with query part combined with the existing.
 
        This method will not remove existing query parameters.
 
        Example:
        >>> url = URL('http://example.com/?a=1&b=2')
        >>> url.extend_query(a=3, c=4)
        URL('http://example.com/?a=1&b=2&a=3&c=4')
        rŒú&)r$r—r¨r”r•r–r˜)ržr^r[Ú    new_queryrhs     rHrazURL.extend_queryµsy€ô+¨DÐ;°FÑ;Ð;    Ð;؈KØ—K‘KÐ ˆ5Ð ð  %¨¡)¨sÒ"2‘Y¸!¸I¸;¸Ñ G‰EàˆEÜ"Ø L‰L˜$Ÿ,™,¨¯
©
°E¸4¿>¹>ó
ð    
rGcó—yrÏrFrás  rHràzURL.update_queryËrbrGc ó—yrÏrFr]s  rHràzURL.update_queryÎrdrGcóÊ—|r|r d}t|«‚|}nt|«dk(r|d}n td«‚|€d}nt|s|j}ndt|t«rAt |j «}|j|«t|j««}nt|t«rIt |j «}|jt|««t|j««}nºt|tttf«r d}t!|«‚t|t"«rwt$r1t't"t(t*tt,ft.f|«}t |j «}|j|«t|j««}n t!d«‚t1|j2|j4|j6||j8«S)aReturn a new URL with query part updated.
 
        This method will overwrite existing query parameters.
 
        Example:
        >>> url = URL('http://example.com/?a=1&b=2')
        >>> url.update_query(a=3, c=4)
        URL('http://example.com/?a=3&b=2&c=4')
        z7Either kwargs or single query parameter must be presentrrr…zAInvalid query type: bytes, bytearray and memoryview are forbiddenzRInvalid query type: only str, mapping or sequence of (key, value) pairs is allowed)rr2r—r±rrrfÚupdater&Úitemsrzrr%ÚbytesÚ    bytearrayÚ
memoryviewr³rr    rr|rrr#r¨r”r•r–r˜)    ržr^r[rÚin_queryrhÚqmÚqstrÚqss             rHràzURL.update_queryÑs†€ñ  ÙØOÜ  “oÐ%؉HÜ ‹Y˜!Š^ؘA‘w‰HäÐVÓWÐ Wà Ð ØŠEÙØ—K‘KŠEÜ ˜¤'Ô *Ü+4°T×5GÑ5GÓ+HˆBØ I‰IhÔ Ü8¸¿¹»ÓDŠEÜ ˜¤#Ô &Ü#,¨T×-?Ñ-?Ó#@ˆDØ K‰Kœ xÓ0Ô 1Ü/°·
±
³ Ó=‰EÜ ˜¤5¬)´ZÐ"@Ô AØUˆCܘC“.Ð  Ü ˜¤(Ô +õ
ÜÜœU¤5¬¬d¨Ñ#3´[Ð#@ÑAÑBÀHóô*3°4×3EÑ3EÓ)FˆBØ I‰IhÔ Ü/°·±³
Ó;‰Eäð<óð ô#Ø L‰L˜$Ÿ,™,¨¯
©
°E¸4¿>¹>ó
ð    
rGÚ query_paramscó·—t|«|jj«zЉs|S|jt    ˆfd„|jj «D«««S)z4Remove some keys from query part and return new URL.c3ó4•K—|]\}}|‰vr||f–—Œy­wrÏrF)r(rsÚvalueÚparams_to_removes   €rHr*z+URL.without_query_params.<locals>.<genexpr>s*øèø€òáD˜%ØÐ/Ñ/ðu” ñùsƒ)ÚsetrhÚkeysrZr|rl)ržrtrxs  @rHÚwithout_query_paramszURL.without_query_paramssYø€ä˜|Ó,¨t¯z©z¯©Ó/@Ñ@ÐÙØˆK؏‰Ü óà#'§:¡:×#3Ñ#3Ó#5ôó ó
ð    
rGcóè—|€d}n&t|t«s td«‚t|«}|j|k(r|St |j |j|j|j|«S)zReturn a new URL with fragment replaced.
 
        Autoencode fragment if needed.
 
        Clear fragment to default if None is passed.
 
        r…zInvalid fragment type)
r±rzr³r'r˜r°r”r•r–r—)ržrnrms   rHÚ with_fragmentzURL.with_fragmentsh€ð Р؉LܘH¤cÔ*ÜÐ3Ó4Ð 4ä*¨8Ó4ˆLØ >‰>˜\Ò )؈KÜØ L‰L˜$Ÿ,™,¨¯
©
°D·K±KÀó
ð    
rG)rUrVcóÚ—t|t«s td«‚d|vr td«‚t    |«}|dvr td«‚t |j «}|jx}r+t|«dk(r|j|«n||d<d|d    <n||d<|d    dk(rd|d    <|r |jnd}|r |jnd}t|j|dj|«||«S)
z˜Return a new URL with name (last part of path) replaced.
 
        Query and fragment parts are cleaned up.
 
        Name is encoded if needed.
 
        zInvalid name typerŽzSlash in name is not allowed©rz..ú. and .. values are forbiddenrrŒr…r)r±rzr³rr)r{ror•r2rAr—r˜r°r”r-)ržrsrUrVrpr›rhrns        rHÚ    with_namez URL.with_name1sç€ô˜$¤Ô$ÜÐ/Ó0Ð 0Ø $‰;ÜÐ;Ó<Ð <ܘ4Ó ˆØ ;Ñ ÜÐ<Ó=Ð =ܐT—^‘^Ó$ˆØ—\‘\Ð !ˆ6Ð !ܐ5‹z˜QŠØ— ‘ ˜TÕ"ࠐb‘    ØˆE!ŠHàˆE"‰IؐQ‰x˜3ŠØa‘á)— ’ ¨rˆÙ%24—>’>¸ˆÜ˜$Ÿ,™,¨°·±¸³ÀÈÓQÐQrGrucó€—t|t«s td«‚|r|ddk(r    |dk(sd|vrtd|›«‚|j}|st|›d«‚|j
}t |«}|s||zn|dt|« |z}|dvr td    «‚t|j«}|jx}r+t|«d
k(r|j|«n||d <d |d<n||d <|ddk(rd |d<|r |jnd }|r |jnd }    t|j|dj!|«||    «S) z Return a new URL with suffix (file extension of name) replaced.
 
        Query and fragment parts are cleaned up.
 
        suffix is encoded if needed.
        zInvalid suffix typerrrŽzInvalid suffix z has an empty nameNrr€rrŒr…)r±rzr³rrrrtr)r2r{ror•rAr—r˜r°r”r-)
ržrurUrVrsÚ
old_suffixrpr›rhrns
          rHÚ with_suffixzURL.with_suffixWsI€ô˜&¤#Ô&ÜÐ1Ó2Ð 2Ù ˜& ™) sÒ*¨f¸ªm¸sÀf¹}ܘ¨v¨jÐ9Ó:Ð :؏}‰}ˆÙÜ ˜xÐ'9Ð:Ó;Ð ;Ø—_‘_ˆ
ܘVÓ$ˆÙ$.ˆtfŠ}°DÐ9K¼CÀ
»OÐ;KÐ4LÈvÑ4UˆØ ;Ñ ÜÐ<Ó=Ð =ܐT—^‘^Ó$ˆØ—\‘\Ð !ˆ6Ð !ܐ5‹z˜QŠØ— ‘ ˜TÕ"ࠐb‘    ØˆE!ŠHàˆE"‰IؐQ‰x˜3ŠØa‘á)— ’ ¨rˆÙ%24—>’>¸ˆÜ˜$Ÿ,™,¨°·±¸³ÀÈÓQÐQrGcóô—t|«tur td«‚|jxs |j}||jk7s|tvr|S|j
x}r5|t vr-t|||j|j|j«S|j}|jx}rf|ddk(r|}nI|sd|›}nA|ddk(r|›|›}n2djg|jdd¢d‘«|z}|ddk(r|dd}d|vr t|«n|}n|}t||j
||s |jr |jn |j|s |jr|j«S|j«S)    u_Join URLs
 
        Construct a full (“absolute”) URL by combining a â€œbase URL”
        (self) with another URL (url).
 
        Informally, this uses components of the base URL, in
        particular the addressing scheme, the network location and
        (part of) the path, to provide missing components in the
        relative URL.
 
        zurl should be URLrrŽrŒNr…rr)r¯rSr³r”Ú USES_RELATIVEr•rr°r–r—r˜r-rpr)ržÚurlrWÚ join_netlocÚ    orig_pathÚ    join_pathres       rHr-zURL.join€sx€ô ‹9œCÑ ÜÐ/Ó0Ð 0à—‘Ò, § ¡ ˆØ T—\‘\Ò ! V´=Ñ%@؈JðŸ;™;Ð &ˆKÐ &¨F´nÑ,Dܘf k°3·9±9¸c¿j¹jÈ#Ï-É-ÓXÐ Xà—J‘Jˆ    ØŸ    ™    Ð !ˆ9Ð !ؘ‰|˜sÒ"Ø ‘ÙØ˜9˜+‘ؘ2‘ #Ò%Ø#˜ Y KÐ0‘ð —x‘xР6 $§*¡*¨S¨b /Р6°2Р6Ó7¸)ÑCà˜Q‘< 3Ò&Ø  ˜8DØ+.°$©;”> $Ô'¸D‰DàˆDäØ Ø L‰LØ Ù# s§z¢zˆCJŠJ°t·{±{Ù&¨#¯-ª-ˆCM‰Mó 
ð    
ð
>B¿^¹^ó 
ð    
rG©rªcó(—|j||¬«S)zAReturn a new URL with the elements in other appended to the path.r‹)rÜ)ržrªrÅs   rHÚjoinpathz URL.joinpath´s€à×Ñ ¨wÐÓ7Ð7rGcóÌ—t|jd«}t|jd«}|jx}r
d|vrd|›d}t|jd«}t
r|€J‚dj d„|jj«D««}t|jd«}t
r|€J‚t||||j«}t|j||||«S)    z<Return decoded human readable string for URL representation.z#/:?@[]r†rˆrz#?rfc3ónK—|]-\}}djt|d«t|d««–—Œ/y­w)z{}={}z#&+;=N)Úformatr3)r(ÚkÚvs   rHr*z!URL.human_repr.<locals>.<genexpr>Ás5èø€ò 
ᐐ1ð N‰Nœ; q¨'Ó2´KÀÀ7Ó4K× Lñ 
ùs‚35r…)r3r[r]r_rer    r-rhrlrnrrcrr”)ržr[r]r_rerjrnr›s        rHÚ
human_reprzURL.human_repr¸sـä˜4Ÿ9™9 iÓ0ˆÜ˜tŸ}™}¨iÓ8ˆØ—I‘IÐ ˆDÐ  3¨$¡;ؐtf˜A;ˆDܘ4Ÿ9™9 dÓ+ˆÝ ØÐ#Ð #Ð#Ø—x‘xñ 
àŸ
™
×(Ñ(Ó*ô 
ó
ˆ ô˜tŸ}™}¨bÓ1ˆÝ ØÐ'Ð 'Ð'ܘT 8¨T°4×3EÑ3EÓFˆÜ˜dŸl™l¨F°D¸,ÈÓQÐQrG©rN)rrS)rrg)F)r‡rSrrS)drArBrCÚ    __slots__rQrOrzr²rrr@rxr“Ú classmethodryr!r·r r¹r¼rÀrmrÄr’rÊrÍrÒrÕrØrÚrÞrârär|rærrërïrñrôröÚcached_propertyrRrTrýrUrWrXrYrZr[r\r]r^r_r`rarbrcrdrerr{rfrhrirjrkrlrmrnrorprqrrrsrtrurvrwrÜrLrNrPrRrTrXrrZr"r
raràr{r}rr„r-rr“rFrGrHrSrSs¢    …ðNQ€Ià ÓØ ƒLØ ƒLØ ƒJØ ƒK؃Nð>Gð?ðØ$(ò ?à 3˜  U¨MÐ9Ñ :ð?ðð    ?ð
d˜DjÑ!ð ?ð
ó ?ð:ðØØ!%Ø%)ØØ!%ØØ$(ØØØò\ðð\ðð    \ð
C˜IÑð \𠘘T˜    Ñ"ð \ðð\ðC˜IÑð\ðð\ðU˜D[Ñ!ð\ðð\ðð\ðð\ð
ò\óð\ð|M (óMðW˜óWð ;˜#ó;ð)˜5ó)ð 
˜Fð 
 tó 
ð˜#óð'˜Fð' tó'ð
&˜Fð& tó&ð
'˜Fð' tó'ð
&˜Fð& tó&ð
. ð.¨ó.ð
(˜Uð( uó(ðQ˜$óQð8˜e KÑ0ó8ð
ؘ5 Ñ.°°dÐ<MÐ6MÑ0NÐNÑOð
à     ó
óXð     ˜Tó    ð; ó;ó"ððUlòUóðUðò6óð6ó Kðð "˜$ò "óð "ðð˜òóððð˜sòóðððK˜3òKóðKðð'˜%  T     Ñ*ò'óð'ðð"e˜C ˜IÑ&ò"óð"ðð+˜e C¨ IÑ.ò+óð+ðð&˜%  T     Ñ*ò&óð&ðð '˜%  T     Ñ*ò 'óð 'ðð !e˜C ˜IÑ&ò !óð !ðð1 5¨¨d¨Ñ#3ò1óð1ð*ð#D¨¨c°4¨iÑ(8ò#Dóð#DðJð    /e˜C ˜IÑ&ò    /óð    /ðð,˜u S¨$ YÑ/ò,óð,ððE˜#òEóðEððXcòXóðXðð
+˜3ò
+óð
+ðð+˜t E¨#¨s¨(¡OÑ4ò+óð+ðò=óð=ðð #òóððð?˜cò?óð?ððQ˜òQóðQððE˜SòEóðEð ð˜còóðððB˜#òBóðBðð &˜5  c ™?ò &óð &ðð@u˜S #˜X‘ò@óð@ðò Tóð Tðð*˜#ò*óð*ðð'cò'óð'ðð9˜Cò9óð9ð
ð)˜ò)óð)ððE˜e C¨ H™oòEóðEððG˜%  S ™/òGóðGñ-> ð->¸4ð->ÈEó->ð^ Y #ð Y¨%ó YðY˜e C¨ IÑ.ðY°5óYð,Y e¨C°¨IÑ&6ðY¸5óYð,Y˜cðY eóYð*Y˜e C¨ IÑ.ðY°5óYð,Ø Ø#ò GàðGðð    Gð
ð Gð ð Gð
óGð(Ø4 Ð4¨%Ò4óØ4à Ø? =Ð?°UÒ?óØ?ð
 ð
¨sð
°uó
ð&Ø6 %Ð6¨EÒ6óØ6à ØA ]ÐA°uÒAóØAð
 #ð
°ð
¸ó
ð,Ø6 %Ð6¨EÒ6óØ6à ØA ]ÐA°uÒAóØAð<
 #ð<
°ð<
¸ó<
ð| 
°#ð 
¸%ó 
ð
 e¨C°¨IÑ&6ð
¸5ó
ð2!Ø#ò $Ràð$Rðð    $Rð
ð $Rð
ó $RðT!Ø#ò 'Ràð'Rðð    'Rð
ð 'Rð
ó 'RóR2
ðh5:ò8˜sð8¨Tð8¸eó8ðR˜CôRrGéir c󪗠   tj|jd««S#t$r#|jd«jd«cYSwxYw)NrÂÚidna)ršÚdecoderÃÚ UnicodeError)r s rHr r ÐsH€ð2܏{‰{˜3Ÿ:™: gÓ.Ó/Ð/øÜ ò2؏z‰z˜'Ó"×)Ñ)¨&Ó1Ò1ð2ús‚#&¦)AÁAc󮗠   tj|d¬«jd«S#t$r#|jd«jd«cYSwxYw)NT)Úuts46rÂrš)ršrÃr›rœ)r_s rHÚ _idna_encoderŸØsL€ð3܏{‰{˜4 tÔ,×3Ñ3°GÓ<Ð<øÜ ò3؏{‰{˜6Ó"×)Ñ)¨'Ó2Ò2ð3ús‚%(¨)AÁAr‹c
ó(—|ro|dj«sd|vrX|jd«\}}}    t|«}|j}|jdk(r|r    d|›d|›dSd|›dS|r|›d|›S|S|j «rx|j«}|rdtj|«x}rM|j«|j«d}    }}|dk(s |dk(r    d||d    vrd
}    t d |›d |›d |›d|    ›«d    ‚|St|«S#t
$rYŒžwxYw)zEncode host part of URL.rŒr†ú%érˆrr…r‡NzQ, if the value includes a username or password, use 'authority' instead of 'host'zHost z cannot contain z (at position ú)) r
Ú    partitionrÚ
compressedÚversionrÚisasciirJÚ NOT_REG_NAMEÚsearchÚgroupÚstartrŸ)
r_r‹Úraw_ipÚsepÚzoneÚipÚinvalidrwÚposÚextras
          rHr‘r‘àsT€ñ
 b‘×!Ñ!Ô# s¨d¡{Ø ŸN™N¨3Ó/шTð&
    5ܘFÓ#ˆBð —=‘=ˆD؏z‰z˜QŠÙ-0˜˜4˜&  $  qÐ)ÐA¸¸$¸¸q°kÐAÙ'*dV˜1˜T˜FÐ#Ð 4°Ð 4ð ‡||„~ðz‰z‹|ˆÙ ¬×)<Ñ)<¸TÓ)BÐB˜gÐBØ '§ ¡ £°·±³À"˜3ˆEؘŠ| ¨¢ °¸¸S¸T¸
Ñ1Bð8ðôؘxÐ/°¨y¸ÀsÀeÈ1ÈUÈGÐTóàð ðˆ ä ˜Ó Ðøô9ò    Ù ð    ús° DÄ    DÄDcó|—tj«tj«tj«y)zClear all LRU caches.N)rŸÚ cache_clearr r‘rFrGrHr´r´s(€ô×ÑÔÜ×ÑÔÜ×ÑÕrGcóƗtj«tj«tj«tj«tj«dœS)zReport cache statistics.)rKrLrrMrN)rŸÚ
cache_infor r‘rFrGrHr¶r¶"sJ€ô$×.Ñ.Ó0Ü#×.Ñ.Ó0Ü"×-Ñ-Ó/Ü%×0Ñ0Ó2Ü#×.Ñ.Ó0ñ  ðrG)Úidna_encode_sizeÚidna_decode_sizeÚip_address_sizeÚhost_validate_sizeÚencode_host_sizer·r¸r¹rºr»cóø—|tus|turtjdtd¬«|o||fD]Z}|€d}Œ|tur |tusŒ|}Œ|tusŒ%tr$t |t «sJ‚t |t «sJ‚t||«}Œ\|turt}t|«tj«a
t|«tj«a t|«tj«a y)zConfigure LRU cache sizes.z¬cache_configure() no longer accepts the ip_address_size or host_validate_size arguments, they are used to set the encode_host_size instead and will be removed in the futureé)Ú
stacklevelN)r²r­r®ÚDeprecationWarningr    r±ryÚmaxÚ_DEFAULT_ENCODE_SIZErr‘Ú __wrapped__r rŸ)r·r¸r¹rºr»Úsizes      rHÚcache_configurerÄ.sý€ðœiÑ'Ð+=ÄYÑ+N܏ ‰ ð 0ô Øõ     
ðÐ#Ø$Ð&8Ð9ò
    ?ˆD؈|Ø#'Ñ Ø!¤YÑ.ØœyÒ(Ø'+Ñ$ØœYÒ&Ý Ü% d¬CÔ0Ð0Ð0Ü%Ð&6¼Ô<Ð<Ð<Ü#& tÐ-=Ó#>Ñ ð
    ?ð œyÑ (Ü3Ð à.”9Ð-Ó.¬|×/GÑ/GÓH€LØ.”9Ð-Ó.¬|×/GÑ/GÓH€LØ.”9Ð-Ó.¬|×/GÑ/GÓHLrGr”)bÚreÚsysr­Úcollections.abcrrÚenumrÚ    functoolsrrÚ    ipaddressrÚtypingr    r
r r r rrrÚ urllib.parserrršÚ    multidictrrrÚ propcache.apirr—Ú_parserrrrrrrr–rr r—r!r"r#r$r%r&Ú_quotersr'r(r)r*r+r,r-r.r/r0r1r2r3r¤Ú    frozensetr†rÚcompileÚVERBOSEr¨r;Ú version_infor>r@rEr²rJrQr‚rzrŸr¢ryr¦r¨r°rSÚ_DEFAULT_IDNA_SIZErÁr rŸrxr‘r´r¶rÄrFrGrHú<module>rÖs¯ðÛ    Û
Ûß-Ýß+Ý ÷    ÷    ó    ÷4ã ß5Ñ5ÝB÷÷ñ÷;÷÷÷÷÷õð  c°¸CÈÑK€ Ù˜-Ó(€ ñ!Ð!FÓGÐð ˆrz‰zðð‡JJó € ñ ˆTƒ]€à×ѐwÒÞà €DôDôð × $Ñ $€    ô    ôô$˜    ¨õ$ðN˜ð˜róð
 ð<˜ð< ò<ó ð<ð~ ð˜Sð Uòó ðð ðØ ðàð𠐐T    Ñ
ððC˜IÑð    ð
ð 𠐐T    Ñ
ð ð ðððððð òó ðð@ Ø ð Øð Ø$'ð Ø03ð Ø?Bð à
ó ñÐ*Ó +€
ð÷sRðsRóðsRðl%ÐØÐñ Ð Óð2cð2˜cò2óð2ñ Ð Óð3sð3˜sò3óð3ñ Ð Ó ð6sð6¨4ð6°Cò6ó!ð6ðròóðððIòóððð*<Ø);Ø7@Ø:CØ8Aò 'Ià˜C ˜IÑ&ð'Ið˜C ˜IÑ&ð'Ið˜3  mÐ3Ñ4ð    'Ið
˜c 4¨Ð6Ñ7ð 'Ið ˜C  }Ð4Ñ5ð 'Ið
ò'Ióñ'IrG