Ë %4ÞSQ‚wãóx—dZddlZddlmZmZddlmZddlmZm Z m Z m Z m Z m Z ddlmZmZdgZGd„de«Zy) zé pygments.lexers.mime ~~~~~~~~~~~~~~~~~~~~ Lexer for Multipurpose Internet Mail Extensions (MIME) data. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. éN)Ú RegexLexerÚinclude)Úget_lexer_for_mimetype)ÚTextÚNameÚStringÚOperatorÚCommentÚOther)Ú get_int_optÚ ClassNotFoundÚ MIMELexerc󿇗eZdZdZdZdgZgd¢Zˆfd„Zd„Zd„Z d„Z d „Z d „Z d „Z d d hZdefde fgdej fdej dfged«de fde fdedfged«de fgdœZˆxZS)ra_ Lexer for Multipurpose Internet Mail Extensions (MIME) data. This lexer is designed to process nested multipart data. It assumes that the given data contains both header and body (and is split at an empty line). If no valid header is found, then the entire data will be treated as body. Additional options accepted: `MIME-max-level` Max recursion level for nested MIME structure. Any negative number would treated as unlimited. (default: -1) `Content-Type` Treat the data as a specific content type. Useful when header is missing, or this lexer would try to parse from header. (default: `text/plain`) `Multipart-Boundary` Set the default multipart boundary delimiter. This option is only used when `Content-Type` is `multipart` and header is missing. This lexer would try to parse from header by default. (default: None) `Content-Transfer-Encoding` Treat the data as a specific encoding. Or this lexer would try to parse from header by default. (default: None) .. versionadded:: 2.5 ÚMIMEÚmime)zmultipart/mixedzmultipart/relatedzmultipart/alternativec óΕ—t‰|�di|¤Ž|jd«|_|jd«|_|jdd«|_t |dd«|_y)NzMultipart-BoundaryÚContent_Transfer_EncodingÚ Content_Typez text/plainzMIME-max-leveléÿÿÿÿ©)ÚsuperÚ__init__ÚgetÚboundaryÚcontent_transfer_encodingÚ content_typer Úmax_nested_level)ÚselfÚoptionsÚ __class__s €ú9/usr/lib/python3.12/site-packages/pygments/lexers/mime.pyrzMIMELexer.__init__;s[ø€Ü ‰ÑÑ#˜7Ò#ØŸ ™ Ð$8Ó9ˆŒ Ø)0¯©Ð5PÓ)QˆÔ&Ø#ŸK™K¨¸ ÓEˆÔÜ +¨GÐ5EÀrÓ JˆÕóc#óK—|jd«}|j«|jvr²|jd«tj |dzf–—|jd«t j|jd«f–—|jd«}|jd«}|j|d|j«f«D]\}}}||z||f–—Œy|j«t|j«f–—y­w)NéÚ:ééÚroot) ÚgroupÚlowerÚattention_headersÚstartrÚTagrÚ WhitespaceÚendÚget_tokens_unprocessedr )rÚmatchÚfieldÚposÚbodyÚiÚtÚvs r!Úget_header_tokenszMIMELexer.get_header_tokensBsÓèø€Ø— ‘ ˜A“ˆà �;‰;‹=˜D×2Ñ2Ñ 2Ø—+‘+˜a“.¤$§(¡(¨E°C©KÐ7Ò 7Ø—+‘+˜a“.¤$§/¡/°5·;±;¸q³>ÐAÒ Aà—)‘)˜A“,ˆCØ—;‘;˜q“>ˆDØ×6Ñ6°t¸fÀeÇkÁkÃmÐ=TÖU‘��1�aؘA‘g˜q !�mÓ#ñVð—+‘+“-¤¨%¯+©+«-Ð7Ó 7ùs‚DD c#óK—|j«}|j«}|ddk(r|tjdf–—|dz}|dd}|jj d«r |j s%|j|«D]\}}}||z||f–—Œydtj|j «z}tj|tj«}|j|«} | rh|| j«z} | j«x} } |t|d| j«f–—|| ztj| j«f–—n|} d} |j!|| «D]y} | |z } | j«} || | }|j|«D]\}}}| |z||f–—Œ|| ztj| j«f–—|| j«z} Œ{| |z } | t#|«k7r| t|| df–—yy­w)NrÚ r$Ú multipartz ^--%s(--)?\n)r,r)rr.rÚ startswithrÚget_bodypart_tokensÚreÚescapeÚcompileÚ MULTILINEÚsearchr/rÚ DelimiterÚfinditerÚlen)rr1Úpos_body_startÚ entire_bodyr5r6r7Ú bdry_patternÚ bdry_matcherÚmÚpos_part_startÚpos_iter_startÚlpos_endÚ lpos_startÚparts r!Úget_body_tokenszMIMELexer.get_body_tokensQs èø€ØŸ™›ˆØ—k‘k“mˆ ð �q‰>˜TÒ !Ø ¤$§/¡/°4Ð7Ò 7Ø+¨aÑ/ˆNØ% a b˜/ˆKð× Ñ ×+Ñ+¨KÔ8ÀÇ Â Ø×3Ñ3°KÖ@‘��1�aØ$ qÑ(¨!¨QÐ.Ó.ðAà ð'¬¯©°4·=±=Ó)AÑAˆ Ü—z‘z ,´· ± Ó=ˆ ð × Ñ   Ó ,ˆÙ Ø+¨a¯e©e«gÑ5ˆNØ()¯©«Ð /ˆN˜XØ ¤$¨ °J°Q·W±W³YÐ(?Ð?Ò ?Ø  8Ñ+¬V×-=Ñ-=¸q¿w¹w»yÐHÓ Hà+ˆN؈Nð×&Ñ& {°NÖCˆAà'¨.Ñ8ˆJØ—w‘w“yˆHؘz¨(Ð3ˆDØ×3Ñ3°DÖ9‘��1�aØ$ qÑ(¨!¨QÐ.Ó.ð:ð! 8Ñ+¬V×-=Ñ-=¸q¿w¹w»yÐHÒ HØ+¨a¯e©e«gÑ5‰NðDð$ nÑ4ˆ Ø œ˜[Ó)Ò )Ø ¤$¨ °J°KÐ(@Ð@Ó @ð *ùs‚H H cóŠ—|j«r |js dt|fgS|j}|r|dvr dt|fgS|jdk(r dt|fgS t |j«}t|t|««r|jdz |_|j|«S#t $r dt|fgcYSwxYw)Nr>úquoted-printableÚ7bitÚ8bitr$) Ústriprr rrrr Ú isinstanceÚtyper0)rÚtextÚcteÚlexers r!r=zMIMELexer.get_bodypart_tokens‚sÓ€ð �z‰zŒ| 4×#4Ò#4Øœ˜tÐ$Ð%Ð %à×,Ñ,ˆÙ �3ÐBÑBØœ˜tÐ$Ð%Ð %à × Ñ  AÒ %Øœ˜tÐ$Ð%Ð %ð &Ü*¨4×+<Ñ+<Ó=ˆEô �eœT $›ZÔ (Ø%)×%:Ñ%:¸QÑ%>ˆEÔ "à×+Ñ+¨DÓ1Ð1øô ò &Øœ˜tÐ$Ð%Ò %ð &úsÁB,Â,CÃCc#óþK—|jd«|_|jd«|jd«z }|jd«tj|jd«d|f–—|jd«t j |jd«f–—|jd«tjdf–—|jd«t j |jd«f–—y­w)Nr$rr&Ú/r') r)rr,rr.rÚLabelr/rrC)rr1Ú prefix_lens r!Ústore_content_typezMIMELexer.store_content_type�sµèø€Ø!ŸK™K¨›NˆÔà—[‘[ “^ e§k¡k°!£nÑ4ˆ Ø�k‰k˜!‹nœdŸo™o¨u¯{©{¸1«~¸k¸zÐ/JÐJÒJØ�k‰k˜!‹nœdŸj™j¨%¯+©+°a«.Ð8Ò8Ø�i‰i˜‹lœF×,Ñ,¨cÐ1Ò1Ø�k‰k˜!‹nœdŸj™j¨%¯+©+°a«.Ð8Ó8ùs‚C;C=c#óŠK—|jd«t|jd«f–—|jd«tj|jd«f–—|jd«tj |jd«f–—|jd«t |jd«f–—|jd«t|jd«f–—|jd«j«dk(r<|jd«j«}|ddk(r |d dk(r|dd }||_ yy­w) Nr$r&r'éérrÚ"r) r,rr)r.rÚ Attributer rr*rUr)rr1rs r!Úget_content_type_subtokensz$MIMELexer.get_content_type_subtokens¦süèø€Ø�k‰k˜!‹nœd E§K¡K°£NÐ2Ò2Ø�k‰k˜!‹nœdŸo™o¨u¯{©{¸1«~Ð=Ò=Ø�k‰k˜!‹nœdŸn™n¨e¯k©k¸!«nÐ<Ò<Ø�k‰k˜!‹nœh¨¯ © °A«Ð6Ò6Ø�k‰k˜!‹nœf e§k¡k°!£nÐ4Ò4à �;‰;�q‹>× Ñ Ó ! ZÒ /Ø—{‘{ 1“~×+Ñ+Ó-ˆHؘ‰{˜cÒ! h¨r¡l°cÒ&9Ø# A b˜>�Ø$ˆD�Mð 0ùs‚EEc#óºK—|jd«j«|_|jd«tj |jd«f–—y­w)Nr)r)r*rr,rÚConstant)rr1s r!Ústore_content_transfer_encodingz)MIMELexer.store_content_transfer_encoding³s@èø€Ø).¯©°Q«×)=Ñ)=Ó)?ˆÔ&Ø�k‰k˜!‹nœdŸm™m¨U¯[©[¸«^Ð;Ó;ùs‚AAú content-typeúcontent-transfer-encodingz#^([\w-]+):( *)([\s\S]*?\n)(?![ \t])z ^$[\s\S]+z\n[ \t]z \n(?![ \t])z#popÚheaderzP^\s*((multipart|application|audio|font|image|model|text|video|message)/([\w-]+))z>(;)((?:[ \t]|\n[ \t])*)([\w:-]+)(=)([\s\S]*?)(?=;|\n(?![ \t]))z;[ \t]*\n(?![ \t])z([\w-]+))r(rkrirj)Ú__name__Ú __module__Ú __qualname__Ú__doc__ÚnameÚaliasesÚ mimetypesrr8rPr=r_rerhr+rr.rÚtokensÚ __classcell__)r s@r!rrsÝø„ñð> €D؈h€Gò*€IôKò 8ò/Aòb2ò69ò %ò<ð(Ð)DÐEÐð4Ð5FÐ GØ ˜?Ð +ð 𠘟™Ð )Ø ˜TŸ_™_¨fÐ 5ð ñ �HÓ ð'à"ð ð OØ 'ð )à " D¨&Ð 1ð  ñ �HÓ Ø Ð9Ð :ð& ñ+„Fr")ror>Úpygments.lexerrrÚpygments.lexersrÚpygments.tokenrrrr r r Ú pygments.utilr r Ú__all__rrr"r!Úrzs3ðñó ç.Ý2ßG×Gß4à ˆ-€ô}� õ}r"