@ SS/rSSKrSSKrSSKrSSKJrJr SSKJr SSKJ r SSK J r SSKJ r SS KJr \ R rS r\R$"S 5rS rSS jrSrSrSr"SS5r"SS\5r"SS\5rg)Message EmailMessageN)BytesIOStringIO)utils)errors)compat32charset)decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]c[U5RS5upnU(dUR5S4$UR5UR54$)N;)str partitionstrip)paramasepbs 4/opt/alt/python313/lib64/python3.13/email/message.py _splitparamrsF E $$S)IAA wwy$ 779aggi cUb[U5S:a[U[5(a/US- n[R"USUSUS5nU<SU<3$UR S5 U(d[RU5(aU<S [R"U5<S 3$U<SU<3$U$![ a) US- n[R"USS5nU<SU<3s$f=f) Nr*=asciizutf-8z="") len isinstancetuplerencode_rfc2231encodeUnicodeEncodeError tspecialssearchquote)rvaluer)s r _formatparamr+'s SZ!^ eU # # SLE((q58U1XFE#U+ + 0 W% I$$U++ %u{{5'9: :#U+ + & 0 ,,UGR@"'// 0sB330C&%C&cS[U5-n/nUSSS:XGa-USSnURS5nUS:a{URSSU5URSSU5- S-(aLURSUS-5nUS:a1URSSU5URSSU5- S-(aMLUS:a [U5nUSUnSU;aKUR S5nUSUR 5R 5S-X4S-SR 5-nURUR 55 XSnUSSS:XaGM-U$)Nrrrr z\"rr)rfindcountr!indexrlowerappend)splistendfis r _parseparamr7Is> c!f A E BQ%3, abEffSkAg17733/!''%C2HHAM&&cAg&CAg17733/!''%C2HHAMM 7a&C dsG !8 A"1 ##%+a!gmmo=A QWWY dG BQ%3, Lrc[U[5(a"USUS[R"US54$[R"U5$)Nrrr)r"r#runquote)r*s r _unquotevaluer:]sB %Qxq5==q#:::}}U##rcr/n[UR55nUHInURS5(dMURS5R S5upEn[ USS9 O [ S5eUHTnU(d [ S5eURS5S:Xa O,[R"U5nURU5 MV SRU5$![ a Mf=f![Ra0 US S - S -S -S -S-n[R"USU5nNzf=f)Nsbegin  )basez`begin` line not foundzTruncated inputs sendr ?r) iter splitlines startswith removeprefixrint ValueErrorrbinasciia2b_uuErrorr1join) encoded decoded_linesencoded_lines_iterlinemode_path decoded_linenbytess r _decode_uurWhs3Mg0023" ??9 % % --i8BB4HMDT Dq!#122"./ / ZZ % /  :#??40L \*# 88M ""'  ~~ :Q b(A-1a7F#??4=9L :s% C!%C2! C/.C/2AD65D6cx\rSrSr\4SjrSrS3SjrSrS4Sjr S r S r S r S r S5S jrS6SjrSrSrSrSrSrSrSrSrSrSrSrS6SjrSrSrS6SjrSrSr S r!S!r"S"r#S#r$S$r%S%r&S7S&jr'S7S'jr(S8S(jr)S9S)jr*S:S*jr+S6S+jr,S6S,jr-S-r.S6S.jr/S6S/jr0S0r1SS1K2J3r3 S2r4g);rcXl/UlSUlSUlSUlS=UlUl/UlSUlg)N text/plain) policy_headers _unixfrom_payload_charsetpreambleepiloguedefects _default_type)selfr\s r__init__Message.__init__s@    (,,   )rc"UR5$N) as_stringres r__str__Message.__str__s~~rrNcSSKJn Uc UROUn[5nU"USUUS9nUR XS9 UR 5$)Nr) GeneratorF) mangle_from_ maxheaderlenr\unixfrom)email.generatorror\rflattengetvalue)rersrqr\rofpgs rrjMessage.as_stringsN . &F Z b#(#/# % $ *{{}rc"UR5$ri)as_bytesrks r __bytes__Message.__bytes__s}}rcSSKJn Uc UROUn[5nU"USUS9nUR XS9 UR 5$)Nr)BytesGeneratorF)rpr\rr)rtrr\rrurv)rersr\rrwrxs rr{Message.as_bytessE 3 &F Y 2E& A $ *{{}rc6[UR[5$ri)r"r_listrks r is_multipartMessage.is_multiparts$--..rcXlgrir^)rerss r set_unixfromMessage.set_unixfroms!rcUR$rirrks r get_unixfromMessage.get_unixfroms ~~rcURc U/UlgURRU5 g![a [S5ef=f)Nz=Attach is not valid on a message with a non-multipart payload)r_r1AttributeError TypeError)repayloads rattachMessage.attachsO == $IDM : $$W-! :!9:: :s 4A cUR5(a&U(agUc UR$URU$Ub@[UR[5(d![ S[ UR5-5eURnUR SS5n[US5(a URnO'[U5R5R5nU(di[U[5(aR[R"U5(a7URSS5nURUR!S5S5nU$U$[U[5(aURSS5nUS :Xa[&R("W5$US :XaP[+S R-WR/555upgUHnUR0R3X5 M U$US ;a [5W5$[U[5(aW$U$!["a URSS5nU$f=f![$a U$f=f![$a URS5nNf=f![6a Ws$f=f) NzExpected list, got %szcontent-transfer-encodingrctersurrogateescapereplaceraw-unicode-escapezquoted-printablebase64r)z x-uuencodeuuencodeuuezx-uue)rr_r"rrtypegethasattrrrrr0r_has_surrogatesr%decodeget_content_charset LookupErrorr&quopri decodestringr rMrEr\ handle_defectrWrI) rer6rrrbpayloadr*rcdefects r get_payloadMessage.get_payloadsID     y}}$}}Q'' =DMM4!@!@3d4==6IIJ J--hh2B7 3  ''Cc(.."((*C'3''E,A,A',J,J&~~g7HIHF"*//$2J2J72SU^"_ N7N gs # # @">>'3DE $ $&&x0 0 H_&chhx/B/B/D&EFNE! ))$7"L > > !(++ gs # #O?'F"*//'9"EN F)N & @ #>>*>?  @$  sTH:-!H(I 3 I,H73H:6H77H:: II I)(I), I;:I;c:[US5(aFUcXlg[U[5(d [U5nUR UR S5n[US5(aUR SS5UlOXlUbURU5 gg)Nr%rrr)rr_r"Charsetr%output_charsetr set_charset)rerr s r set_payloadMessage.set_payloadOs 7H % % ' gw//!'*nnW%;%;=NOG 7H % %#NN74EFDM#M     W % rcUcURS5 SUlg[U[5(d [U5nXlSU;aUR SS5 SU;a UR SSUR 5S9 O UR SUR 55 XR 5:wa URUR5UlSU;aUR5nU"U5 gg![a} URnU(a?URSS 5nO+![a URUR5nOf=fURU5UlUR SU5 gf=f) Nr MIME-Version1.0 Content-Typer[r zContent-Transfer-Encodingrr) del_paramr`r"r add_headerget_output_charset set_param body_encoder_get_body_encodingrr% UnicodeErrorr)rer rrs rrMessage.set_charsetcs_ ? NN9 % DM '7++g&G  % OONE 2  % OONL$+$>$>$@  B NN9g&@&@&B C 002 2#// >DM &d 2++-C BD  3 B--I")..:K"L'I")..1G1G"HI ' 3 3G <  ;SA Bs6+C55E<D&%E<&%E E< E+E<;E<cUR$ri)r`rks r get_charsetMessage.get_charsets}}rc,[UR5$ri)r!r]rks r__len__Message.__len__s4==!!rc$URU5$ri)r)renames r __getitem__Message.__getitem__sxx~rcrURRU5nU(aaUR5nSnURH?upgUR5U:XdMUS- nXS:dM'[ SR X155e URR URRX55 g)Nrrz/There may be at most {} {} headers in a message)r\header_max_countr0r]rIformatr1header_store_parse)rerval max_countlnamefoundkvs r __setitem__Message.__setitem__s KK006 JJLEE 779%QJE)(*88>y8OQQ & T[[;;DFGrcUR5n/nURH-up4UR5U:wdMURX445 M/ X lgri)r0r]r1)rer newheadersrrs r __delitem__Message.__delitem__sI zz| MMDAwwyD !!1&)"# rcxUR5nURHup4X#R5:XdM g g)NTF)r0r])rer name_lowerrrs r __contains__Message.__contains__s1ZZ\ MMDAWWY&"rc#># URH upUv M g7frir])refieldr*s r__iter__Message.__iter__s MMLEK*scPURVVs/sHupUPM snn$s snnfrirrerrs rkeys Message.keyss"#mm,mdam,,,s"cURVVs/sH upURRX5PM" snn$s snnfrir]r\header_fetch_parsers rvaluesMessage.valuess>!MM+)DA ..q4)+ ++s';c URVVs/sH!upXRRX54PM# snn$s snnfrirrs ritems Message.itemssA!MM+)DAKK22189)+ ++s(<cUR5nURH6up4UR5U:XdMURRX45s $ U$ri)r0r]r\r)rerfailobjrrs rr Message.getsI zz|MMDAwwyD {{55a;;"rc<URRX45 gri)r]r1)rerr*s rset_rawMessage.set_raws d]+rcH[URR55$ri)rDr]copyrks r raw_itemsMessage.raw_items s DMM&&())rc/nUR5nURHEupEUR5U:XdMURURR XE55 MG U(dU$U$ri)r0r]r1r\r)rerrrrrs rget_allMessage.get_alls\zz|MMDAwwyD  dkk<sA cX0;aU$URX#5H?upVUR5UR5:XdM)U(a [U5s $Us $ U$ri)r#r0r:)rerrr r9rrs r get_paramMessage.get_paramsT0  N--g>DAwwyEKKM)(++H ? rc[U[5(d U(aXVU4nX0;aUR5S:XaSnOURU5nUR XS9(d6U(d [ XU5nO[ RU[ XU5/5nOySnURUUS9HcupSn U R5UR5:Xa [ XU5n O [ XU5n U(dU nMM[ RX/5nMe XRU5:wa U(aURX85 gX XU'gg)Nrr[)r rr r9) r"r#r0rr)r+rrMr&r) rerr*r requoter languagerr  old_param old_value append_params rrMessage.set_params%$%''G.E  &,,.N"B EHHV$E~~e~3$U7;!Lw?@BE(,v@G)8)I$ ! ??$ 5#/g#FL#/ g#NL(E%NNE+@AE)I HHV$ $##F2L$V %rc .X ;agSnURX#S9H_upVUR5UR5:wdM)U(d[XVU5nM>[R U[XVU5/5nMa X@R U5:waX X@U'gg)Nrr,)r&r0r+rrMr)rerr r- new_ctyper"rs rrMessage.del_params    OO6OCDAwwyEKKM) ,Q7 ;I ) 0^ +^$#(D  L @ LV 12JDA NN1 1rc[5nURSUS5nX2LaURSUS5nX2LaU$[R"U5R 5$)Nfilenamecontent-dispositionrr)rr)rcollapse_rfc2231_valuer)rerr r:s r get_filenameMessage.get_filenameJs[(>>*g7LM  ~~fg~FH  N++H5;;==rc[5nURSU5nX2LaU$[R"U5R 5$)Nboundary)rr)rr<rstrip)rerr r@s r get_boundaryMessage.get_boundaryZs@ (>>*g6  N++H5<<>>rc[5nURUS5nX2La[R"S5e/nSnUHEupgUR 5S:XaUR SSU-45 SnM3UR Xg45 MG U(dUR SSU-45 /nUR HupU R 5S:Xa/n UH6upU S:XaU R U 5 MU R U <SU <35 M8 [RU 5n UR URRX55 MUR X45 M Xlg) NrzNo Content-Type header foundFr@z"%s"Trr) rr#rHeaderParseErrorr0r1r]rrMr\r)rer@r r! newparamsfoundppkpvrhrrrrs r set_boundaryMessage.set_boundarygsD(**7NC  ))*HI I FBxxzZ'  *fx.?!@A  "*     j&8*;< = MMDAwwyN*%DABw Q 1%56 &  nnU+!!$++"@"@"HI!!1&)"# rcj[5nURSU5nX2LaU$[U[5(a.US=(d SnUSR S5n[ XT5nUR S5 UR5$![ [4a USnN9f=f![a Us$f=f)Nr rzus-asciirr) rr)r"r#r%rrrr0)rerr r pcharsetr{s rrMessage.get_content_charsets(..G4  N gu % %qz/ZH %#1:,,-ABh1  NN: &}} . %!!* %  N s$B'B#B B # B21B2cjUR5Vs/sHo"RU5PM sn$s snfri)walkr)rerparts r get_charsetsMessage.get_charsetss, ?CiikJkd((1kJJJs0chURS5nUcg[U5SR5nU$)Nr;r)rrr0)rer*c_ds rget_content_dispositionMessage.get_content_dispositions8 ./ =% #))+ r)rQ) r`rdr]r_r^rcrbr\ra)FrN)FN)NFri)NrT)rTNrF)rT)rT)5__name__ __module__ __qualname____firstlineno__r rfrlrjr|r{rrrrrrrrrrrrrrrrrrrrrrrr rrr rr#r&r)rrr7r=rBrKrrSrWemail.iteratorsrQ__static_attributes__rrrrs ' * 0 /" : Zx&(-B^" H$ #- + + ",*$,< "&0##"#*,5C DFJ5:1%f%,2@> ?,#\<K$ %$rc^\rSrSrSU4SjjrSU4SjjrSrSrSrSSjr 1S kr S r S r SS .S jr SS .SjrSrSSjrSSjrSSjrSS.SjrSrSrSrSrSrSrU=r$)MIMEPartiNc:>UcSSKJn Un[TU] U5 g)Nr)default) email.policyrcsuperrf)rer\rc __class__s rrfMIMEPart.__init__s > ,F  rcd>Uc UROUnUc URn[TU] XU5$ri)r\max_line_lengthrerj)rersrqr\rfs rrjMIMEPart.as_strings7!'F  !11Lw @@rcNURURRSS9S9$)NT)utf8r\)rjr\clonerks rrlMIMEPart.__str__s%~~T[[%6%6D%6%A~BBrcLURS5nUcS$URS:H$)Nr;F attachment)rcontent_disposition)rerVs r is_attachmentMIMEPart.is_attachments+hh,- uP)@)@L)PPrc## UR5(agUR5RS5up4US:XaXB;aURU5U4v gUS:wdUR 5(dgUS:wa1UR 5HnUR XR5ShvN M gSU;aURS5U4v SnURS5nU(a$UR 5HnUSU:XdMUn O UcUR5nU(aUSOSnUbUR Xb5ShvN ggNN7f)Nrtext multipartrelatedstart content-idr) rsr rr/r iter_parts _find_bodyr)r) rerRpreferencelistmaintypesubtypesubpart candidaterysubpartss rr|MIMEPart._find_bodysG       11399#> v (%++G4d;;  { "$*;*;*=*=  i ??,??7CCC-   &!'' 2D9 9 w' ??,<(E1 'I-  '')H'/ TI  yA A A !D Bs+B"E $E%AE >E ?EE E c|[U5nSnURX5HupEXB:dM UnUnUS:XdM U$ U$)Nr)r!r|)rer} best_priobodypriorRs rget_bodyMIMEPart.get_bodysO' //$?JD 19 @  r>rvhtmlrvplainrwrxrw alternativec## UR5RS5upUS:wdUS:XagUR5nUR5nUS:XaUS:Xa}UR S5nU(aISn/nUH-nUR S5U:XaSnMURU5 M/ U(a UShvN gURS 5 UShvN g/n UHfnUR5RS5upX4UR;a-UR5(dX);aU RU5 MbUv Mh g![a gf=fNN7f) NrrwrrxryFrzTr) r rrrrr)rr1pop _body_typesrs) rer~rrrryr attachmentsrRseens riter_attachmentsMIMEPart.iter_attachments*s[!11399#> { "g&> ""$ LLNE { "w)';NN7+E !Dxx -6 $#**40 " *** IIaL   D $ 5 5 7 = =c B H#t'7'77**,,1D G$J 7   $+ sI?EE A'E9E:EEA4E EEEEEc#l# UR5(aUR5ShvN ggN7fri)rrrks rr{MIMEPart.iter_partsas0     '') ) )  )s )424)content_managerc`UcURRnUR"U/UQ70UD6$ri)r\r get_contentrerargskws rrMIMEPart.get_contentis2  ""kk99O**4=$="==rcbUcURRnUR"U/UQ70UD6 gri)r\r set_contentrs rrMIMEPart.set_contentns/  ""kk99O##D64626rc0UR5S:Xa4UR5nX!4-nXB;a[SRXA55e/n/nURHOupxUR 5R S5(aURXx45 M=URXx45 MQ U(a9[U5"URS9n XilURU l U /Ul O/Ul XPlSU-US'UbURSU5 gg)NrwzCannot convert {} to {}content-rmz multipart/rr@) rrrIrr]r0rFr1rr\r_r) rerdisallowed_subtypesr@existing_subtype keep_headers part_headersrr*rRs r_make_multipartMIMEPart._make_multipartss  $ $ &+ 5#779 "5 "B 6 !:!A!A$"/00  ==KDzz|&&z22##TM2##TM2 ) :T[[1D(M MMDM!FDMDM$ +g5^   NN:x 0 rc*URSSU5 g)Nrx)rmixedrrer@s r make_relatedMIMEPart.make_relateds Y(@(Krc*URSSU5 g)Nr)rrrs rmake_alternativeMIMEPart.make_alternatives ]JArc*URSSU5 g)Nrr_rrs r make_mixedMIMEPart.make_mixeds Wb(3r)_dispcUR5S:wdUR5U:wa[USU-5"5 [U5"URS9nUR "U0UD6 U(a SU;aX%S'UR U5 g)Nrwmake_rmr;zContent-Disposition)rrgetattrrr\rr)re_subtyperrrrRs r_add_multipartMIMEPart._add_multiparts{  % % '; 6((*h6 D'H, - /Dz- $%"% *$6*/& ' Drc4UR"S/UQ7SS0UD6 g)Nrxrinlinerrerrs r add_relatedMIMEPart.add_relateds ICCHCCrc0UR"S/UQ70UD6 g)Nrrrs radd_alternativeMIMEPart.add_alternatives M7D7B7rc4UR"S/UQ7SS0UD6 g)Nrrrqrrs radd_attachmentMIMEPart.add_attachments GEdE,E"Erc /UlSUlgrir]r_rks rclearMIMEPart.clears  rcURVVs/sH.upUR5RS5(aM+X4PM0 snnUlSUlgs snnf)Nr)r]r0rFr_)renrs r clear_contentMIMEPart.clear_contentsL,0MMBMDA ! 4 4Z @ !MB  Bs *AArri)FNN))rxrr)rYrZr[r\rfrjrlrsr|rrrr{rrrrrrrrrrrrr^ __classcell__rfs@rraras!A CQB:(1K5n*26> 267 16LB459D8Frrac(^\rSrSrU4SjrSrU=r$)ric>>[TU]"U0UD6 SU;aSUS'gg)Nrr)rer)rerrrfs rrEmailMessage.set_contents, T(R(  %#(D  &rr_)rYrZr[r\rr^rrs@rrrs ))r)NT)__all__rJreriorremailrremail._policybaser r r`email._encoded_wordsr rrcompiler'rr+r7r:rWrrarr_rrrs n % &%)      JJ2 3   D($#>K %K %\\w\~)8)r