hyb
2026-01-30 7657e1b2fa251a2ea372710ad75cb395a3c0e374
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
Ë
Añúh‘Qã óF—ddlmZddlZddlZddlZddlmZddlmZddl    m
Z
m Z ddl m Z ddlmZddlmZdd    lmZdd
lmZddlZddlZdd lmZdd lmZdd lmZmZddl m!Z!m"Z"ddl#m$Z$m%Z%ddl&m'Z'm(Z(ddl)m*Z*ddl+m,Z,m-Z-e.ddddddddg¬«Z/ej`jcdejdddd¬ «ejdd!dd"¬ «ejdd#dd$¬ «ejdd%d&d'¬ «ejdd(d)d*¬ «f«d+„«Z3d,„Z4ej`jcd-e4««d.„«Z5d/„Z6ej`jcd-e6««d0„«Z7Gd1„d2«Z8Gd3„d4«Z9d5„Z:d<d6„Z;d=d7„Z<d>d8„Z=d?d9„Z>d@dAd:„Z?dBd;„Z@y)Cé)Ú annotationsN)Úmessage_from_string)Ú    Generator)Ú EmailMessageÚMessage)ÚParser)Ú EmailPolicy)Úcleandoc)ÚPath)ÚMock)ÚMetadata)Ú Requirement)Ú_reqsÚsic)Ú rfc822_escapeÚrfc822_unescape)Úegg_infoÚwrite_requirements)ÚexpandÚsetupcfg)Ú Distributioné)Ú retrieve_fileÚurls_from_fileÚpackagez0.0.1zFoo Barz foo@bar.netzLong
descriptionzShort descriptionÚoneÚtwo)ÚnameÚversionÚauthorÚ author_emailÚlong_descriptionÚ descriptionÚkeywords©ÚcontentÚresultzJust a single lineÚ single_line)Úidz%Multiline
Text
without
extra indents
Ú    multilinez,Multiline
    With
 
additional
  indentationÚmultiline_with_indentationz  Leading whitespacezLeading whitespaceÚremove_leading_whitespacez-  Leading whitespace
In
    Multiline commentz+Leading whitespace
In
    Multiline commentÚ#remove_leading_whitespace_multilinecó>—|xs|tt|««k(sJ‚y©N)rrr%s  úVH:\Change_password\venv_build\Lib\site-packages\setuptools/tests/test_core_metadata.pyÚtest_rfc822_unescaper1's!€ð> Ò g¤/´-ÀÓ2HÓ"IÒ IÐIÑ Iócót—t}tjt|«}d|«fd|d¬«fd|gd¢¬«fd|d    ¬
«fd |d ¬ «ft    j
d|td¬«¬«tj jd¬«¬«d|d¬«fd|d¬«fd|d¬«ft    j
d|ddg¬ «tj jd!¬«¬«d"tdd#d$¬%«fd&tdd#d'¬(«fd)tdd#¬*«fd+tdtd,«¬*«fgS)-NzMetadata version 1.0z,Metadata Version 1.0: Short long descriptionzShort long description)r"z!Metadata version 1.1: Classifiers)z#Programming Language :: Python :: 3z%Programming Language :: Python :: 3.7z&License :: OSI Approved :: MIT License)Ú classifiersz"Metadata version 1.1: Download URLzhttps://example.com)Ú download_urlz%Metadata Version 1.2: Requires-Pythonz>=3.7)Úpython_requiresz!Metadata Version 1.2: Project-Urlzhttps://example.bar)ÚFoo)Ú project_urlsz"Issue #1578: project_urls not read)Úreason)Úmarksz3Metadata Version 2.1: Long Description Content Typeztext/x-rst; charset=UTF-8)Úlong_description_content_typeÚLicenseÚMIT)ÚlicensezLicense multilinez+This is a long license 
over multiple linesz$Metadata Version 2.1: Provides ExtraÚfooÚbar)Úprovides_extraszprovides_extras not readzMissing authorz1.0.0zsnorri@sturluson.name)rrr!zMissing author e-mailzSnorri Sturluson)rrr zMissing author and e-mail)rrzBypass normalized versionz1.0.0a)    ÚEXAMPLE_BASE_INFOÚ    functoolsÚpartialÚdictÚpytestÚparamÚmarkÚxfailr)ÚbaseÚparamss  r0Ú__read_test_casesrLIsœ€Ü €Dä × Ñ œt TÓ *€Fð
 ¡£Ð*à :Ù Ø!9ô ð    
ð 0Ù òô ð        
ð 1Ù Ø2ô ð    
ð 4Ù Ø 'ô ð    
ô      ‰ Ø /Ù ¤Ð)>Ô ?Ô @Ü—+‘+×#Ñ#Ø;ð$óô    
ð BÙ Ø.Iô ð    
ð Ù Øô ð    
ð  Ù ØFô ð    
ô      ‰ Ø 2Ù  E¨5 >Ô 2Ü—+‘+×#Ñ#Ð+EÐ#ÓFô    
ð Ü ØØØ4ô ð    
ð $Ü ØØØ)ô ð    
ð (Ü ØØô ð    
ð (Ü ØÜ˜H› ô ð    
ðgZ ðZr2)rÚattrscóü—t|«}|j}|j}tj«}|j |«|j d«|j«}t|«sJ‚|j d«|«}|j|«d|jfd|jfd|jfd|jfd|jfd|jfd|j fd    |j"fd
|j$fd |j&fd |j(fd |j*fd|j,fd|j.fdd„fdd„fg}|D]\}    }
|
|«|
|«k(rŒJ‚y)Nrrrr r!Úmetadata_versionÚprovidesr#r"r5r$Ú    platformsÚ    obsoletesÚrequiresr4r8có—t|di«S)Nr8©Úgetattr©Úss r0ú<lambda>z$test_read_metadata.<locals>.<lambda>Ìs€¤7¨1¨n¸bÓ#A€r2rAcó—t|di«S)NrArUrWs r0rYz$test_read_metadata.<locals>.<lambda>Ís€¤g¨aÐ1BÀBÓ&G€r2)rÚmetadataÚ    __class__ÚioÚStringIOÚwrite_pkg_fileÚseekÚreadÚ_valid_metadataÚ read_pkg_fileÚget_nameÚ get_versionÚ get_contactÚget_contact_emailÚget_metadata_versionÚ get_providesÚget_descriptionÚget_long_descriptionÚget_download_urlÚ get_keywordsÚ get_platformsÚ get_obsoletesÚ get_requiresÚget_classifiers) rrMÚdistÚ metadata_outÚ
dist_classÚPKG_INFOÚpkg_infoÚ metadata_inÚ tested_attrsÚattrÚgetters            r0Útest_read_metadatar{«s€ä ˜Ó €DØ—=‘=€LØ×'Ñ'€Jô{‰{‹}€Hà×Ñ Ô)Ø ‡MM!ÔØ}‰}‹€HÜ ˜8Ô $Ð$Ð $à ‡MM!ÔÙ“,€KØ×јhÔ'ð
×$Ñ$Ð%Ø    J×*Ñ*Ð+Ø    :×)Ñ)Ð*Ø    ˜×5Ñ5Ð6Ø    ˜Z×<Ñ<Ð=Ø    Z×,Ñ,Ð-Ø    ˜
×2Ñ2Ð3Ø    ˜Z×<Ñ<Ð=Ø    ˜×4Ñ4Ð5Ø    Z×,Ñ,Ð-Ø    j×.Ñ.Ð/Ø    j×.Ñ.Ð/Ø    Z×,Ñ,Ð-Ø    ˜
×2Ñ2Ð3Ø    ÑAÐBØ    ÑGÐHð!€Lð&%ò;‰ ˆˆfِkÓ"¡f¨\Ó&:Ó:Ð:Ð:ñ;r2có —ddddœ}d„}d|j«fd||dd    i«fd
||d    d d œ«fd ||ddi«fd||dddœ«fd||d    ddœ«fd||d    d dddœ«fd||d ddœ«fd||ddi«fd||ddi«fg
S)Nrz1.0Úxxx)rrr#cóH—|j«}|j|«|Sr/)ÚcopyÚupdate)Úd1Úd2s  r0Ú merge_dictsz,__maintainer_test_cases.<locals>.merge_dicts×s€Ø W‰W‹YˆØ
    ‰    "Œ àˆ    r2zNo author, no maintainerz!Author (no e-mail), no maintainerr z Author NamezAuthor (e-mail), no maintainerzauthor@name.com)r r!z!No author, maintainer (no e-mail)Ú
maintainerzMaintainer NamezNo author, maintainer (e-mail)zmaintainer@name.com)r„Úmaintainer_emailz)Author (no e-mail), Maintainer (no-email))r r„z$Author (e-mail), Maintainer (e-mail)©r r!r„r…z*No author (e-mail), no maintainer (e-mail))r!r…zAuthor unicodeu    é‰„沢寛zMaintainer unicodeuJan Åukasiewicz)r)rMrƒs  r0Ú__maintainer_test_casesr‡Ôs*€Ø¨5ÀÑ G€Eòð
$ U§Z¡Z£\Ð2à /Ù ˜ ¨-Ð8Ó 9ð    
ð
-Ù Ø -ÐARÑSó ð    
ð 0Ù ˜  Ð.?Ð@Ó Að    
ð
-Ù Øà"3Ø(=ñó ð        
ð 8Ù Ø -Ð?PÑQó ð    
ð 3Ù Øà+Ø$5Ø"3Ø(=ñ    ó ð     
ð 9Ù Øà$5Ø(=ñó ð        
ð
™; u¨x¸Ð.EÓFÐGØ    ™{¨5°<ÐASÐ2TÓUÐVðo8 ð8r2cóŒ—dddddœ}t|«}|jd«}t|«}|jj    |«t t|j d««dd    ¬
«5}|j«}ddd«t«sJ‚|j«}    ttd|    dd ««}
t|
«} t|
«t| «k(sJ‚|j«D]D\} } |j| d«}|€|
D]}|j!| d z«sŒJ‚Œ8| ›d |›}|| vrŒDJ‚y#1swYŒºxYw)NÚAuthorz Author-emailÚ
MaintainerzMaintainer-emailr†rvúPKG-INFOÚrúutf-8©Úencodingéþÿÿÿú:z: )rÚmkdirÚstrr[Úwrite_pkg_infoÚopenÚjoinrarbÚ
splitlinesÚlistÚfilterÚsetÚlenÚitemsÚgetÚ
startswith)rrMÚtmpdirÚ tested_keysrrÚfnÚfn_sÚfrvÚ raw_pkg_linesÚ    pkg_linesÚ pkg_lines_setÚfkeyÚdkeyÚvalÚlines                r0Útest_maintainer_authorr«sX€ðØ&Ø"Ø.ñ    €Kô ˜Ó €DØ    ‰jÓ    !€BÜ ˆr‹7€Dà‡MM× Ñ  Ô&ä     Œc"—'‘'˜*Ó%Ó&¨°gÔ    >ðÀ!Ø—6‘6“8ˆ÷ô ˜8Ô $Ð$Ð $ð×'Ñ'Ó)€MÜ”V˜D -°°Ð"4Ó5Ó6€I䘠   “N€Mô ˆy‹>œS Ó/Ò /Ð/Ð /à!×'Ñ'Ó)ò)‰
ˆˆd؏i‰i˜˜dÓ#ˆØ ˆ;Ø!ò 7ØŸ?™?¨4°#©:Õ6Ð6Ð6ñ 7ðV˜2˜c˜UÐ#ˆDؘ=Ò(Ð (Ð(ñ)÷ðús Á0D:Ä:Ecó—eZdZd„Zd„Zee«jZedz Z    e
jdge e    «¢¬«d„«Z e
jjd„«Zy)Ú#TestParityWithMetadataFromPyPaWheelc    óH—tdit¤dddgdœdœ¤Ž}t|«S)Nz>=3.8a,
            packaging==23.2
            more-itertools==8.8.0; extra == "other"
            jaraco.text==3.7.0
            importlib-resources==5.10.2; python_version<"3.8"
            importlib-metadata==6.0.0 ; python_version<"3.8"
            colorama>=0.4.4; sys_platform == "win32"
            a
                    pytest >= 6
                    pytest-checkdocs >= 2.4
                    tomli ; \
                            # Using stdlib when possible
                            python_version < "3.11"
                    ini2toml[lite]>=0.9
                    )ÚtestingÚother)r6Úinstall_requiresÚextras_require©)rErBr)ÚselfrMs  r0Ú base_examplez0TestParityWithMetadataFromPyPaWheel.base_exampleAs?€Üñ
Üð
ð$ðððñ
ó
ˆô2˜EÓ"Ð"r2cóv—|j«}t|«}t|«sJ‚gd¢}|D]}||vrŒJ‚y)N)zMetadata-Version:zRequires-Python: >=3.8zProvides-Extra: otherzProvides-Extra: testingzDRequires-Dist: tomli; python_version < "3.11" and extra == "testing"z6Requires-Dist: more-itertools==8.8.0; extra == "other"z6Requires-Dist: ini2toml[lite]>=0.9; extra == "testing")rµÚ _get_pkginforb)r´Útmp_pathrrrvÚexpectedrªs      r0Útest_requires_distz6TestParityWithMetadataFromPyPaWheel.test_requires_dist]sN€Ø× Ñ Ó"ˆÜ Ó%ˆÜ˜xÔ(Ð(Ð(ò
ˆðò    $ˆDؘ8Ò#Ð #Ð#ñ    $r2zconfig/setupcfg_examples.txtN)rKc#óžK—|j|«|jtdtd¬««|jtdtd¬««|jtdtd¬««|j
€|j «–—yt|j
«}tjt    i«|«–—y­w)z4Example of distribution with arbitrary configurationÚ    read_attrz0.42)Ú return_valueÚ
read_filesú hello worldÚ_finalize_license_filesN)
ÚchdirÚsetattrrr rrGrµrrÚapply_configuration)r´ÚrequestÚ monkeypatchr¸Úconfigs     r0rrz(TestParityWithMetadataFromPyPaWheel.distrs¢èø€ð    ×ј(Ô#Ø×ÑœF K´À6Ô1JÔKØ×ÑœF L´$ÀMÔ2RÔSØ×ÑÜ Ð3´TÀtÔ5Lô    
ð =‰=Ð  Ø×#Ñ#Ó%Ó %ô# 7§=¡=Ó1ˆFÜ×.Ñ.¬|¸BÓ/?ÀÓHÓ Hùs‚C C có–—tjd«}t|dd«}|€tjd«t |«}|dz }|j d¬«|dz j|d    ¬
«tt|«||d z «|||dz «}t|«}t|«}    t|    «}
||
k(sJ‚t|«y) zHEnsure output from setuptools is equivalent to the one from `pypa/wheel`zwheel.metadataÚpkginfo_to_metadataNzjwheel.metadata.pkginfo_to_metadata is undefined, (this is likely to be caused by API changes in pypa/wheelz pkg.egg-infoT)Úparentsr‹rrŽz requires.txt) Ú    importlibÚ import_modulerVrFrIr·r’Ú
write_textrrÚ_normalize_metadatarÚ_assert_roundtrip_message) r´r¸rrÚwheel_metadatarÈrvÚ egg_info_dirÚ metadata_msgÚ metadata_strÚ pkg_info_msgÚ pkg_info_strs            r0Útest_equivalent_outputz:TestParityWithMetadataFromPyPaWheel.test_equivalent_output‚s܀ô#×0Ñ0Ð1AÓBˆÜ% nÐ6KÈTÓRÐà Ð &Ü L‰LðLô ô   Ó%ˆØ .Ñ0ˆ Ø×Ñ 4ÐÔ(Ø    ˜
Ñ    "×.Ñ.¨xÀ'Ð.ÔJÜœ8 D›>¨<¸ÈÑ9VÔWñ+¨<¸È
Ñ9RÓSˆ Ü*¨<Ó8ˆ Ü*¨8Ó4ˆ Ü*¨<Ó8ˆ ð˜|Ò+Ð+Ð+ô    " (Õ+r2)Ú__name__Ú
__module__Ú __qualname__rµrºr Ú__file__ÚparentÚHEREÚ EXAMPLES_FILErFÚfixturerrrrHÚ uses_networkrÕr³r2r0r­r­@ss„ò#ò8$ñ$ ‹>×  Ñ  €DØÐ9Ñ9€Mà€V‡^^˜DÐA¡>°-Ó#@ÐAÔBñ IóCð Ið ‡[[×Ññ,óñ,r2r­c óª—eZdZed«ed«dœZej jdej««d„«Z    ej jdej««ej jdddid    d
id d d d gfidddgfiddddgfdœg«d„««Z
ej jdddg«d„«Z y)Ú
TestPEP643a•
            [metadata]
            name = package
            version = 0.0.1
            author = Foo Bar
            author_email = foo@bar.net
            long_description = Long
                               description
            description = Short description
            keywords = one, two
            platforms = abcd
            [options]
            install_requires = requests
            a
            [project]
            name = "package"
            version = "0.0.1"
            authors = [
              {name = "Foo Bar", email = "foo@bar.net"}
            ]
            description = "Short description"
            readme = {text = "Long\ndescription", content-type = "text/plain"}
            keywords = ["one", "two"]
            dependencies = ["requests"]
            license = "AGPL-3.0-or-later"
            [tool.setuptools]
            provides = ["abcd"]
            obsoletes = ["abcd"]
            )z    setup.cfgúpyproject.tomlÚfilecó¶—t|«j|j|d¬«t«}|j    d«J‚|j    d«J‚y)NrrŽÚDynamicÚdynamic)r rÌÚ STATIC_CONFIGÚ _get_metadataÚget_all)r´râÚ
tmpdir_cwdr[s    r0Ú!test_static_config_has_no_dynamicz,TestPEP643.test_static_config_has_no_dynamicÉsY€ä ˆT‹
×јd×0Ñ0°Ñ6ÀÐÔIÜ “?ˆØ×Ñ     Ó*Ð2Ð2Ð2Ø×Ñ     Ó*Ð2Ð2Ñ2r2Úfieldszrequires-python)r6z>=3.12z author-email)r!zsnoopy@peanuts.comr$ÚhelloÚworldÚplatformrQÚabcd)r#r¿)r"zbla bla bla blar±z hello-world)Úsummaryr#z requires-distcóH—t|«j|j|d¬«t«}|j    «D])\}}t |||«t |j ||«Œ+t|«}t|jd««t|«k(sJ‚y)NrrŽrä)
r rÌræÚ    _makedistÚvaluesrÂr[rçršrè)r´rârërérrryÚvaluer[s        r0Ú&test_modified_fields_marked_as_dynamicz1TestPEP643.test_modified_fields_marked_as_dynamicÐs”€ô&     ˆT‹
×јd×0Ñ0°Ñ6ÀÐÔIÜ‹{ˆð"Ÿ=™=›?ò    0‰KˆD%ô D˜$ Ô &Ü D—M‘M 4¨Õ /ð     0ô! Ó&ˆÜ8×#Ñ# IÓ.Ó/´3°v³;Ò>Ð>Ñ>r2Ú
extra_tomlz'# Let setuptools autofill license-filesz2license-files = ['LICENSE*', 'AUTHORS*', 'NOTICE']cóŒ—|jdjdd|›«ddddœ}||dvsJ‚d|vsJ‚tjj    |«t d¬    «}t |«}t|jd
««d d hk(sJ‚|jd «dk(sJ‚t|jd««hd£k(sJ‚y)Nrázlicense = "AGPL-3.0-or-later"zdynamic = ['license']
z--- mock license ---z--- mock notice ---z
--- me ---)ráú
LICENSE.mdÚNOTICEú AUTHORS.txtzAGPL-3.0-or-later)Úlicense_expressionräz license-filezlicense-expressionzLicense-Expressionz License-File>rùrørú)
ræÚreplaceÚjaracoÚpathÚbuildròrçršrèr)r´röréÚfilesrrr[s      r0Útest_license_files_dynamicz%TestPEP643.test_license_files_dynamicòs÷€ð#×0Ñ0Ð1AÑB×JÑJØ/Ø)¨*¨Ð6óð1Ø+Ø'ñ
ˆð˜UÐ#3Ñ4Ñ4Ð4Ð4Ø.°jÑ@Ð@Ð@ä ‰ ×ј%Ô ÜÐ,?Ô@ˆÜ  Ó&ˆÜ8×#Ñ# IÓ.Ó/Ø Ø  ð4
ò
ð    
ð
ð|‰|Ð0Ó1Ð5HÒHÐHÐHܐ8×#Ñ# NÓ3Ó4ò9
ò
ð    
ñ
r2N) rÖr×rØr
rærFrHÚ parametrizeÚkeysrêrõrr³r2r0ràrà£s„áð ó
ñ #ð ó
ñ##€MðJ ‡[[×јV ]×%7Ñ%7Ó%9Ó:ñ3ó;ð3ð  ‡[[×јV ]×%7Ñ%7Ó%9Ó:Ø ‡[[×ÑØðР=Ð >Ø ÐCÐ DØ ˜* w°Ð&8Ð9Ð :Ø ˜+¨ xÐ0Ð 1ð:ØFØ"4°}°oÐ!Fñ ð     
óñ ?ó!ó;ð"?ð" ‡[[×ÑØà 5Ø @ð    
óñ
óñ
r2ràc ó<—t|«}|j«|Sr/)rÚparse_config_files)rMrrs  r0ròròs€Ü ˜Ó €DØ×ÑÔØ €Kr2cóJ—tj|«5}tt«j    |«}ddd«t ddd¬«}tj «5}tj|d¬«}t||¬«j«|j«|j«}ddd«t|d«}d    j|j««}d    jj««}||k(sJ‚y#1swYŒÙxYw#1swYŒgxYw)
zEmulate the way wheel.bdist_wheel parses and regenerates the message,
    then ensures the metadata generated by setuptools is compatible.
    NTFr)Úutf8Ú mangle_from_Úmax_line_lengthrrŽ)Úpolicyó
)r]r^rrÚparser    ÚBytesIOÚ TextIOWrapperrÚflattenÚflushÚgetvalueÚbytesr–r—)r[ÚbufferÚmsgÚserialization_policyÚoutÚ regeneratedÚ raw_metadatas       r0rÎrÎ!sû€ô
‰XÓ    ð1 &Ü”\Ó"×(Ñ(¨Ó0ˆ÷1ô'Ø ØØôÐô
 
‰‹ð(˜Ü×јv°Ô8ˆÜ#Ð2Ô3×;Ñ;¸CÔ@Ø     ‰    Œ Ø—o‘oÓ'ˆ ÷    (ô ˜ 7Ó+€Là—:‘:˜l×5Ñ5Ó7Ó8€LØ—*‘*˜[×3Ñ3Ó5Ó6€KØ ˜,Ò &Ð&Ñ &÷%1ð1ú÷(ð(ús–D ÁADÄ DÄD"cót—|jdg«Dcic]}|jdd«|“Œ}}tj|jdg««Dcgc]}t    ||«‘Œ}}|d=|d=t |«D]}||d<Œ    t |«D]}||d<Œ    |d=|j «Scc}wcc}w)z1Allow equivalent metadata to be compared directlyzProvides-ExtraÚ_ú-z Requires-DistzMetadata-Version)rèrürr Ú_normalize_reqÚsortedÚ    as_string)rÚxÚextrasÚreqÚreqsÚextras      r0rÍrÍ:s߀ð/2¯k©kÐ:JÈBÓ.OÖ P¨ˆai‰i˜˜SÓ! 1Ñ$Ð P€FÐ Pô—;‘;˜sŸ{™{¨?¸BÓ?Ó@ö à ô    s˜FÕ#ð €Dð ð     ˆOÐØ Ð Ðôd‹|ò#ˆØ"ˆˆOÒð#䘓ò&ˆØ %ˆÐ Òð&ð     Ð Ðà =‰=‹?Ðùò#Qùò s •B0ÁB5cóؗt|«j|j|jjdd««}|j«D]\}}|j||«}Œ|S)z<Allow equivalent requirement objects to be compared directlyrr)r“rürrœ)r!r Úas_strÚnormÚorigs     r0rrZs[€ä ‹X× Ñ ˜cŸh™h¨¯©×(8Ñ(8¸¸cÓ(BÓ C€FØ—l‘l“nò,‰
ˆˆdØ—‘  dÓ+‰ð,à €Mr2có¬—tj«5}|jj|«|j    «cddd«S#1swYyxYwr/)r]r^r[r_r)rrÚfps  r0r·r·bs=€Ü     ‰‹ð˜"Ø  ‰ ×$Ñ$ RÔ(؏{‰{‹}÷÷òús •+A
AcóB—tt|xs
t«««Sr/)rr·rò)rrs r0rçrçhs€Ü œ|¨DÒ,?´I³KÓ@Ó AÐAr2có8—tj|d¬«}|duS)NT)Úvalidate)r Ú
from_email)Útextr[s  r0rbrbls€Ü×"Ñ" 4°$Ô7€HØ ˜4Ð Ðr2)r[r“ÚreturnÚNone)rrr/r“)r!rr zdict[str, str]r/r“)rrrr/)rrzDistribution | None)r.r“r/Úbool)AÚ
__future__rrCrÊr]ÚemailrÚemail.generatorrÚ email.messagerrÚ email.parserrÚ email.policyr    Úinspectr
Úpathlibr Ú unittest.mockr Ú jaraco.pathrýrFÚpackaging.metadatar Úpackaging.requirementsrÚ
setuptoolsrrÚsetuptools._core_metadatarrÚsetuptools.command.egg_inforrÚsetuptools.configrrÚsetuptools.distrÚconfig.downloadsrrrErBrHrrGr1rLr{r‡r«r­ràròrÎrÍrr·rçrbr³r2r0ú<module>rDs¸ðÝ"ãÛÛ    Ý%Ý%ß/ÝÝ$ÝÝÝãÛ Ý'Ý.ç!ßDßDß.Ý(ç;áØ    Ø Ø ØØ(Ø#ؐUˆ^ôÐð‡×ÑØàˆ ‰ Ø  Ø Øô    
ð
    ˆ ‰ Ø 7Ø Øô    
ð
    ˆ ‰ Ø >Ø Ø+ô    
ð
    ˆ ‰ Ø "Ø  Ø*ô    
ð
    ˆ ‰ Ø =Ø ;Ø4ô    
ð+óñ<Jó=ð<Jò_ðD‡×ÑÐ*Ñ,=Ó,?Ó@ñ%;óAð%;òPAðH‡×ÑÐ*Ñ,CÓ,EÓFñ$)óGð$)÷N`,ñ`,÷Fu
ñu
òpó 'ó2ó@óô Bô r2