MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.117.158.174
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/gnus/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/gnus/mm-decode.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:14 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/gnus/mm-decode.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\204
\302\301\303\304B\"\210\305\306!\210\305\307!\210\310\311\312\"\210\310\313\312\"\210\310\314\312\"\210\310\315\316\"\210\310\317\320\"\210\310\321\320\"\210\310\322\323\"\210\310\324\325\"\210\310\326\325\"\210\310\327\325\"\210\330\331\332\"\210\333\334\335\336\337\340\341\342\343\344\343\345\343\346&
\210\333\347\335\350\337\351\343\344\343\345\343\346&\207" [fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] require mail-parse mm-bodies autoload gnus-map-function "gnus-util" gnus-replace-in-string gnus-read-shell-command mm-inline-partial "mm-partial" mm-inline-external-body "mm-extern" mm-extern-cache-contents mm-insert-inline "mm-view" mm-archive-decoders "mm-archive" mm-archive-dissect-and-inline mm-dissect-archive add-hook gnus-exit-gnus-hook mm-destroy-postponed-undisplay-list custom-declare-group mime-display nil "Display of MIME in mail and news articles." :link (custom-manual "(emacs-mime)Display Customization") :version "21.1" :group mail news multimedia mime-security "MIME security in mail and news articles." (custom-manual "(emacs-mime)Display Customization")] 14)
(defalias 'mm-handle-buffer '(macro . #[(handle) "\301\302E\207" [handle nth 0] 3]))
(defalias 'mm-handle-type '(macro . #[(handle) "\301\302E\207" [handle nth 1] 3]))
(defalias 'mm-handle-media-type #[(handle) "@;\203	@\207A@@\207" [handle] 1])
(put 'mm-handle-media-type 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-media-supertype #[(handle) "\301\211@;\203@\202A@@)\302\"@\207" [handle split-string "/"] 4])
(put 'mm-handle-media-supertype 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-media-subtype #[(handle) "\302\211@;\203@\202A@@)\303\"\211A@)\207" [handle x split-string "/"] 4])
(put 'mm-handle-media-subtype 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-encoding '(macro . #[(handle) "\301\302E\207" [handle nth 2] 3]))
(defalias 'mm-handle-undisplayer '(macro . #[(handle) "\301\302E\207" [handle nth 3] 3]))
(defalias 'mm-handle-set-undisplayer '(macro . #[(handle function) "\302\303\304E	E\207" [handle function setcar nthcdr 3] 4]))
(defalias 'mm-handle-disposition '(macro . #[(handle) "\301\302E\207" [handle nth 4] 3]))
(defalias 'mm-handle-description '(macro . #[(handle) "\301\302E\207" [handle nth 5] 3]))
(defalias 'mm-handle-cache '(macro . #[(handle) "\301\302E\207" [handle nth 6] 3]))
(defalias 'mm-handle-set-cache '(macro . #[(handle contents) "\302\303\304E	E\207" [handle contents setcar nthcdr 6] 4]))
(defalias 'mm-handle-id '(macro . #[(handle) "\301\302E\207" [handle nth 7] 3]))
(defalias 'mm-handle-multipart-original-buffer '(macro . #[(handle) "\301\302\303\304DF\207" [handle get-text-property 0 'buffer car] 5]))
(defalias 'mm-handle-multipart-from '(macro . #[(handle) "\301\302\303\304DF\207" [handle get-text-property 0 'from car] 5]))
(defalias 'mm-handle-multipart-ctl-parameter '(macro . #[(handle parameter) "\302\303\304	DF\207" [parameter handle get-text-property 0 car] 5]))
(defalias 'mm-make-handle '(macro . #[(&optional buffer type encoding undisplayer disposition description cache id) "\306	\n\f
\257	\207" [buffer type encoding undisplayer disposition description list cache id] 9]))
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\313\314\304\315\306\316\310\311&	\210\300\317\320\321\304\315\306\322\310\311&	\210\300\323\324\325\304\315\306\316\310\311&	\210\300\326\324\327\304\315\306\330\310\311&	\210\300\331\332\333\306\334\310\311&\210\300\335\336\337\306\340\310\311&\210\300\341\342\343\304\315\306\344\310\311&	\210\300\345\346\347\306\350\310\311&\210\300\351\352\353\306\354\310\311&\210\300\355\313\356\306\357\310\311&\210\300\360\313\361\306\362\310\311&\210\300\363\313\364\306\365\310\311&\210\300\366\367\370\306\371\310\311&\210\300\372\313\373\306\374\310\311&\210\300\375\376\377\306\201@\304\201A\310\311&	\207" [custom-declare-variable mm-text-html-renderer (cond ((fboundp 'libxml-parse-html-region) 'shr) ((executable-find "w3m") 'gnus-w3m) ((executable-find "links") 'links) ((executable-find "lynx") 'lynx) ((locate-library "w3") 'w3) ((locate-library "html2text") 'html2text) (t nil)) "Render of HTML contents.\nIt is one of defined renderer types, or a rendering function.\nThe defined renderer types are:\n`shr': use the built-in Gnus HTML renderer;\n`gnus-w3m': use Gnus renderer based on w3m;\n`w3m': use emacs-w3m;\n`w3m-standalone': use plain w3m;\n`links': use links;\n`lynx': use lynx;\n`w3': use Emacs/W3;\n`html2text': use html2text;\nnil    : use external viewer (default web browser)." :version "24.1" :type (choice (const shr) (const gnus-w3m) (const w3) (const w3m :tag "emacs-w3m") (const w3m-standalone :tag "standalone w3m") (const links) (const lynx) (const html2text) (const nil :tag "External viewer") (function)) :group mime-display mm-inline-text-html-with-images nil "If non-nil, Gnus will allow retrieving images in HTML contents with\nthe <img> tags.  It has no effect on Emacs/w3.  See also the\ndocumentation for the `mm-w3m-safe-url-regexp' variable." "22.1" boolean mm-w3m-safe-url-regexp "\\`cid:" "Regexp matching URLs which are considered to be safe.\nSome HTML mails might contain a nasty trick used by spammers, using\nthe <img> tag which is far more evil than the [Click Here!] button.\nIt is most likely intended to check whether the ominous spam mail has\nreached your eyes or not, in which case the spammer knows for sure\nthat your email address is valid.  It is done by embedding an\nidentifier string into a URL that you might automatically retrieve\nwhen displaying the image.  The default value is \"\\\\`cid:\" which only\nmatches parts embedded to the Multipart/Related type MIME contents and\nGnus will never connect to the spammer's site arbitrarily.  You may\nset this variable to nil if you consider all urls to be safe." (choice (regexp :tag "Regexp") (const :tag "All URLs are safe" nil)) mm-inline-text-html-with-w3m-keymap t "If non-nil, use emacs-w3m command keys in the article buffer." mm-enable-external "Indicate whether external MIME handlers should be used.\n\nIf t, all defined external MIME handlers are used.  If nil, files are saved by\n`mailcap-save-binary-file'.  If it is the symbol `ask', you are prompted\nbefore the external MIME handler is invoked." (choice (const :tag "Always" t) (const :tag "Never" nil) (const :tag "Ask" ask)) mm-inline-media-tests '(("image/p?jpeg" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'jpeg handle))) ("image/png" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'png handle))) ("image/gif" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'gif handle))) ("image/tiff" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'tiff handle))) ("image/xbm" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xbm handle))) ("image/x-xbitmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xbm handle))) ("image/xpm" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xpm handle))) ("image/x-xpixmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xpm handle))) ("image/bmp" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'bmp handle))) ("image/x-portable-bitmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'pbm handle))) ("text/plain" mm-inline-text identity) ("text/enriched" mm-inline-text identity) ("text/richtext" mm-inline-text identity) ("text/x-patch" mm-display-patch-inline identity) ("text/x-diff" mm-display-patch-inline identity) ("application/emacs-lisp" mm-display-elisp-inline identity) ("application/x-emacs-lisp" mm-display-elisp-inline identity) ("application/x-shellscript" mm-display-shell-script-inline identity) ("application/x-sh" mm-display-shell-script-inline identity) ("text/x-sh" mm-display-shell-script-inline identity) ("application/javascript" mm-display-javascript-inline identity) ("text/dns" mm-display-dns-inline identity) ("text/x-org" mm-display-org-inline identity) ("text/html" mm-inline-text-html (lambda (handle) mm-text-html-renderer)) ("text/x-vcard" mm-inline-text-vcard (lambda (handle) (or (featurep 'vcard) (locate-library "vcard")))) ("message/delivery-status" mm-inline-text identity) ("message/rfc822" mm-inline-message identity) ("message/partial" mm-inline-partial identity) ("message/external-body" mm-inline-external-body identity) ("text/.*" mm-inline-text identity) ("application/x-.?tar\\(-.*\\)?" mm-archive-dissect-and-inline identity) ("application/zip" mm-archive-dissect-and-inline identity) ("audio/wav" mm-inline-audio (lambda (handle) (and (or (featurep 'nas-sound) (featurep 'native-sound)) (device-sound-enabled-p)))) ("audio/au" mm-inline-audio (lambda (handle) (and (or (featurep 'nas-sound) (featurep 'native-sound)) (device-sound-enabled-p)))) ("application/pgp-signature" ignore identity) ("application/x-pkcs7-signature" ignore identity) ("application/pkcs7-signature" ignore identity) ("application/x-pkcs7-mime" ignore identity) ("application/pkcs7-mime" ignore identity) ("multipart/alternative" ignore identity) ("multipart/mixed" ignore identity) ("multipart/related" ignore identity) ("image/.*" mm-inline-image (lambda (handle) (and (mm-valid-image-format-p 'imagemagick) (mm-with-unibyte-buffer (mm-insert-part handle) (let ((image (ignore-errors (if (fboundp 'create-image) (create-image (buffer-string) 'imagemagick 'data-p) (mm-create-image-xemacs (mm-handle-media-subtype handle)))))) (when image (setcar (cdr handle) (list "image/imagemagick")) (mm-image-fit-p handle))))))) ("audio/.*" ignore ignore) ("image/.*" ignore ignore) (".*" mm-inline-text mm-readable-p)) "Alist of media types/tests saying whether types can be displayed inline." (repeat (list (regexp :tag "MIME type") (function :tag "Display function") (function :tag "Display test"))) mm-inlined-types '("image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/x-gtar-compressed" "application/x-tar" "application/zip" "application/pgp") "List of media types that are to be displayed inline.\nSee also `mm-inline-media-tests', which says how to display a media\ntype inline." (repeat regexp) mm-keep-viewer-alive-types '("application/postscript" "application/msword" "application/vnd.ms-excel" "application/pdf" "application/x-dvi") "List of media types for which the external viewer will not be killed\nwhen selecting a different article." (repeat regexp) mm-automatic-display '("text/plain" "text/enriched" "text/richtext" "text/html" "text/x-verbatim" "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "text/dns" "application/pgp-signature" "application/emacs-lisp" "application/x-emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp\\'" "text/x-org") "A list of MIME types to be displayed automatically." (repeat regexp) mm-attachment-override-types '("text/x-vcard" "application/pkcs7-mime" "application/x-pkcs7-mime" "application/pkcs7-signature" "application/x-pkcs7-signature") "Types to have \"attachment\" ignored if they can be displayed inline." (repeat regexp) mm-inline-override-types "Types to be treated as attachments even if they can be displayed inline." (repeat regexp) mm-automatic-external-display "List of MIME type regexps that will be displayed externally automatically." (repeat regexp) mm-discouraged-alternatives "List of MIME types that are discouraged when viewing multipart/alternative.\nViewing agents are supposed to view the last possible part of a message,\nas that is supposed to be the richest.  However, users may prefer other\ntypes instead, and this list says what types are most unwanted.  If,\nfor instance, text/html parts are very unwanted, and text/richtext are\nsomewhat unwanted, then the value of this variable should be set\nto:\n\n (\"text/html\" \"text/richtext\")\n\nAdding \"image/.*\" might also be useful.  Spammers use it as the\npreferred part of multipart/alternative messages.  See also\n`gnus-buttonized-mime-types', to which adding \"multipart/alternative\"\nenables you to choose manually one of two types those mails include." (repeat regexp) mm-tmp-directory (if (fboundp 'temp-directory) (temp-directory) (if (boundp 'temporary-file-directory) temporary-file-directory "/tmp/")) "Where mm will store its temporary files." directory mm-inline-large-images "If t, then all images fit in the buffer.\nIf 'resize, try to resize the images so they fit." (radio (const :tag "Inline large images as they are." t) (const :tag "Resize large images." resize) (const :tag "Do not inline large images." nil)) mm-file-name-rewrite-functions '(mm-file-name-delete-control mm-file-name-delete-gotchas) "List of functions used for rewriting file names of MIME parts.\nEach function takes a file name as input and returns a file name.\n\nReady-made functions include `mm-file-name-delete-control',\n`mm-file-name-delete-gotchas' (you should not remove these two\nfunctions), `mm-file-name-delete-whitespace',\n`mm-file-name-trim-whitespace', `mm-file-name-collapse-whitespace',\n`mm-file-name-replace-whitespace', `capitalize', `downcase',\n`upcase', and `upcase-initials'." (list (set :inline t (const mm-file-name-delete-control) (const mm-file-name-delete-gotchas) (const mm-file-name-delete-whitespace) (const mm-file-name-trim-whitespace) (const mm-file-name-collapse-whitespace) (const mm-file-name-replace-whitespace) (const capitalize) (const downcase) (const upcase) (const upcase-initials) (repeat :inline t :tag "Function" function))) "23.1"] 10)
#@295 *List of functions for rewriting the full file names of MIME parts.
This is used when viewing parts externally, and is meant for
transforming the absolute name so that non-compliant programs can find
the file where it's saved.

Each function takes a file name as input and returns a file name.
(defvar mm-path-name-rewrite-functions nil (#$ . -14482))
#@68 String used for replacing whitespace characters; default is `"_"'.
(defvar mm-file-name-replace-whitespace nil (#$ . 14840))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\313\314\304\315\306\307&	\210\300\316\317\320\313\314\304\321\306\307&	\207" [custom-declare-variable mm-default-directory nil "The default directory where mm will save files.\nIf not set, `default-directory' will be used." :type (choice directory (const :tag "Default" nil)) :group mime-display mm-attachment-file-modes 384 "Set the mode bits of saved attachments to this integer." :version "22.1" integer mm-external-terminal-program "xterm" "The program to start an external terminal." string] 10)
(defvar mm-last-shell-command "")
(defvar mm-content-id-alist nil)
(defvar mm-postponed-undisplay-list nil)
(defvar mm-inhibit-auto-detect-attachment nil)
(defvar mm-dissect-default-type "text/plain")
(byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\305\"\210\300\306\305\"\207" [autoload mml2015-verify "mml2015" mml2015-verify-test mml-smime-verify "mml-smime" mml-smime-verify-test] 3)
(defvar mm-verify-function-alist '(("application/pgp-signature" mml2015-verify "PGP" mml2015-verify-test) ("application/x-gnus-pgp-signature" mm-uu-pgp-signed-extract-1 "PGP" mm-uu-pgp-signed-test) ("application/pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test) ("application/x-pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test)))
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\312\313\314\"\210\312\315\314\"\207" [custom-declare-variable mm-verify-option 'never "Option of verifying signed parts.\n`never', not verify; `always', always verify;\n`known', only verify known protocols.  Otherwise, ask user.\n\nWhen set to `always' or `known', you should add\n\"multipart/signed\" to `gnus-buttonized-mime-types' to see\nresult of the verification." :version "22.1" :type (choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group mime-security autoload mml2015-decrypt "mml2015" mml2015-decrypt-test] 10)
(defvar mm-decrypt-function-alist '(("application/pgp-encrypted" mml2015-decrypt "PGP" mml2015-decrypt-test) ("application/x-gnus-pgp-encrypted" mm-uu-pgp-encrypted-extract-1 "PGP" mm-uu-pgp-encrypted-test)))
#@148 Option of decrypting encrypted parts.
`never', not decrypt; `always', always decrypt;
`known', only decrypt known protocols.  Otherwise, ask user.
(custom-declare-variable 'mm-decrypt-option nil '(#$ . 17141) :version "22.1" :type '(choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group 'mime-security)
#@42 Keymap for input viewer with completion.
(defvar mm-viewer-completion-map (byte-code "\302\303!\304	\"\210\305\306\307#\210)\207" [map minibuffer-local-completion-map make-sparse-keymap mm-viewer-completion-map set-keymap-parent define-key " " self-insert-command] 4) (#$ . 17501))
#@42 Keymap for input viewer with completion.
(defvar mm-viewer-completion-map (byte-code "\302\303!\304	\"\210\305\306\307#\210)\207" [map minibuffer-local-completion-map make-sparse-keymap mm-viewer-completion-map set-keymap-parent define-key " " self-insert-command] 4) (#$ . 17793))
#@240 Convert association list ALIST into the equivalent property-list form.
The plist is returned.  This converts from

((a . 1) (b . 2) (c . 3))

into

(a 1 b 2 c 3)

The original alist is not modified.  See also `destructive-alist-to-plist'.
(defalias 'mm-alist-to-plist #[(alist) "\303	\203	@\211A\n@BB)	A\211\204\237)\207" [plist alist el nil] 4 (#$ . 18086)])
#@59 Say whether external viewer for HANDLE should stay alive.
(defalias 'mm-keep-viewer-alive-p #[(handle) "	\211@;\203	@\202	A@@)\305\306\307\215+\207" [mm-keep-viewer-alive-types handle ty type types nil found (byte-code "\211A@\211\205\303	\n\"\203\304\305\306\"\210\202\207" [types ty type string-match throw found t] 3)] 4 (#$ . 18462)])
#@121 Set the undisplayer for HANDLE to FUNCTION.
Postpone undisplaying of viewers for types in
`mm-keep-viewer-alive-types'.
(defalias 'mm-handle-set-external-undisplayer #[(handle function) "\304!\203\305!\306	\233\n\240\210\306\233\307\240\210	B\211)\207\306\233\n\240\207" [handle new-handle function mm-postponed-undisplay-list mm-keep-viewer-alive-p copy-sequence 3 nil] 2 (#$ . 18826)])
(defalias 'mm-destroy-postponed-undisplay-list #[nil "\205\301\302!\210\303!\207" [mm-postponed-undisplay-list message "Destroying external MIME viewers" mm-destroy-parts] 2])
(autoload 'message-fetch-field "message")
#@157 Dissect the current buffer and return a list of MIME handles.
If NO-STRICT-MIME, don't require the message to have a
MIME-Version header before proceeding.
(defalias 'mm-dissect-buffer #[(&optional no-strict-mime loose-mime from) "\212\306\211\211\211\211\211\211\211\211./0\214\307 \2101\204*2\204*\310\311!\203\207\310\312!\2110\2057\3130!/\310\314!\310\315!\206[/\205[\3163/@\"\2114A@)\317=\205[\320\321\322!\310\323!(\204n\310\324!((\203\325(!\2114A@)(\n\203\207\326\n!)/\203\226\327\330/@\"\204\262\3315C\f\205\244\332\333\f!\227!1\205\255\334!\n%\202P\335/@\330\"\211.\2114A@).@\211.\336\232\203
\337\232\203\327\340\202\330\341\342/A\236A\"5\343\344/@G\345/A!/@$\210\343\344/@G\346\347 \350(\342\"\257/@$\210/@\351/(\"*B\2026\352\331/\f\205$\332\333\f!\227!1\205-\334!\n	&/(#	\203O\327\353	\"\203G\354\355	\"	B6B6.\n\207" [result id description cd cte subtype nil mail-narrow-to-head mail-fetch-field "mime-version" "content-type" mail-header-parse-content-type "content-transfer-encoding" "content-disposition" mm-assoc-string-match mm-inline-text "inline" message-fetch-field "content-description" "content-id" "from" mail-extract-address-components mail-decode-encoded-word-string string-match "/" mm-dissect-singlepart intern mail-header-strip mail-header-parse-content-disposition split-string "multipart" "digest" "message/rfc822" "text/plain" start add-text-properties 0 mm-alist-to-plist buffer mm-copy-to-buffer from mm-dissect-multipart mm-possibly-verify-or-decrypt " *<\\(.*\\)> *" match-string 1 type ctl ct no-strict-mime loose-mime mm-inline-media-tests x mm-dissect-default-type mm-content-id-alist] 10 (#$ . 19452)])
(defalias 'mm-dissect-singlepart #[(ctl cte &optional force cdl description id) "\204	@\306\232\203\307\310	\"\202\311\205\303\nA\236A\f\204B	@\312\232\203B\203B\313\314\"\203B\315\316\317\"!\211\203A	
\240\210))\320 	\321\n\321\257\307	@\322 \"\203|\211A@)\203|\323AA@!\203|\324!\202~*\207" [force ctl cdl filename mm-inhibit-auto-detect-attachment new-type "text/plain" assoc format t "application/octet-stream" string-match "\\.\\([^.]+\\)$" mailcap-extension-to-mime match-string 1 mm-copy-to-buffer nil mm-archive-decoders executable-find mm-dissect-archive cte description id decoder handle x] 9])
(defalias 'mm-dissect-multipart #[(ctl from) "eb\210\306\307\301\"P\310	!\311P\312\211\212db\210\313\n\312\314#\203%\315\224\202&d)@\316\232\310	!\317P`
W\203l\320	
\314#\203l\315\224b\210\203[\212\214`}\210\321\314\312#C\f\244*\322\210\323	!\204g\324y\210`\2024\203\207
W\203\207\212\214
}\210\321\314\312#C\f\244*\325\f\237#.\207" [ctl boundary close-delimiter start parts end "\n--" mail-content-type-get regexp-quote "--[ 	]*$" nil re-search-backward t 0 "multipart/encrypted" "[ 	]*$" re-search-forward mm-dissect-buffer 2 looking-at 1 mm-possibly-verify-or-decrypt mm-inhibit-auto-detect-attachment from] 5])
#@60 Copy the contents of the current buffer to a fresh buffer.
(defalias 'mm-copy-to-buffer #[nil "p\303 \304eb\210\305\306\304\307#\210`r\310\311!q\210\312	!\210\313\n\"\210p,\207" [beg mb obuf mm-multibyte-p nil search-forward-regexp "^\n" t generate-new-buffer " *mm*" mm-set-buffer-multibyte insert-buffer-substring] 4 (#$ . 22493)])
(defalias 'mm-display-parts #[(handle &optional no-default) "@;\203\f\301\302A\"\207\303@!\203 \214``}\210\304!\210db)\207\301\302\"\207" [handle mapcar mm-display-parts bufferp mm-display-part] 3])
(byte-code "\300\301\302\"\210\300\303\302\"\207" [autoload mailcap-parse-mailcaps "mailcap" mailcap-mime-info] 3)
#@142 Display the MIME part represented by HANDLE.
Returns nil if the part is removed; inline if displayed inline;
external if displayed external.
(defalias 'mm-display-part #[(handle &optional no-default force) "\212\306 \210\204\307	!\203\310	!\202	\211@;\203!	@\202%	A@@)\311\232\203;\312	8\2045\313	!\210\312	8\202<	\211\211@;\203J	@\202N	A@@)\314!\315\316	8\305\"\206g\315	A@\317\"\206g\320+,\321	A@@\322 \"\211-\203\214\323-AA@!\203\214\324	!\210\325\202
\326\n!\203\243\327\n!\203\243\330y\210\331	!\210\325\202
\f\204\255.?\205
\f\204\311\332\333\"@\334\232\203\311\330y\210\335	\336	!\"\210\325\202
\f\205\370\f;\205\370+\337=\206\370+\340=\205\370\341\342\343\f;\203\363\344\345\f
\"\346Q\202\364\347\350\260!\211,\203	\351	\f\206\352\"\202
\351	\352\".)\207" [force handle ehandle type method filename mailcap-parse-mailcaps mm-handle-displayed-p mm-remove-part "message/external-body" 6 mm-extern-cache-contents mailcap-mime-info mail-content-type-get 4 name "<file>" assoc mm-archive-decoders executable-find mm-archive-dissect-and-inline inline mm-inlinable-p mm-inlined-p 1 mm-display-inline split-string "/" "text" mm-insert-inline mm-get-part t ask y-or-n-p "Display part (" ") using external program" " \"" format "\"" "" "? " mm-display-external mailcap-save-binary-file mm-enable-external external decoder no-default] 9 (#$ . 23160)])
#@30 Display HANDLE using METHOD.
(defalias 'mm-display-external #[(handle method) "p\306\307!r	q\210\310\216\311 \210\312\n!\203\211p\n\313=\203'\306\314!q\210\315\202C\316\f!\210\317\f!\210\320\321\"\211\203<\322
!\210)\323\306\314!!\210\324 \210\325@!\210\326!\210eb\210\n\203[\327\330\n\"\210p\331\332\f\211@;\203k\f@\202o\fA@@)\321\"\236A\333\216\n\203\202\n \202\205\334\f!,\202/\316\f!\210\317\f!\210\335\336\337B\"\340\" \341\342\f8\343\"\206\252\341\fA@\344\"#\332\f\211@;\203\272\f@\202\276\fA@@)\321\"C\345\346C\"\206\320\345\347C\"D\345\350C\"E\315\211FG\351 \352\"\210#\203\373\336\353H\354#!\" \"F\202?\345\355C\"A\211I\203\356\357I\"\203\360\361I\"I\2022\362\f\211@;\203'\f@\202+\fA@@)J\"@I\335\336\363 \"\315I#F)@K\364edF\315\365%\210)\351F\366\"\210\327\330\n\"\210D\203\336\367\nF\fA@#L\370\216M\203\200\371\372\315N\373OPL&\210\202\316\374\375!\210\374\376!\210\377\201\\O\315PL%\211Gq\210\201] \210\201^ \210\201_\201`G!\201a\201b\201c\201d\201e\201fQDDEE\"\210\201e\201g!\210)\327\201hL\"\210)\201i\202-E\203)rq\210\361y\210\201j\f\201k\216\201lO\315\306\314!\211G\315P\367\nF\fA@#&\210\201mG!\205rGq\210\201n ))\"\210)\201o\202-\367\nF\fA@#L\201p\216\371\372\306\314!\211GOPL%\210\201_\201`G!\201q\201r!\201q\201s!\201q\201t!\201q\201u!\201q\201v!RSTU\211V\211WL\210)U\211XFL\210)T\211YGL\210)S\211ZLL\210)R\211[\fL\210)\201w\201x\315\201a\201y\201z\201f\201{D\201fRD\201fSD\201fTD\201fUD\201fVD\201|\257E#\210\201a\201y\201z\201f\201}D\201fRD\201fSD\201fTD\201fUD\201fVD\201|\257E-\"\210)\327\201hL\"\210)\201i.,\207" [outbuf #1=#:temp-buffer method cur handle win generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte functionp mailcap-save-binary-file " *mm*" nil mm-insert-part mm-add-meta-html-tag get-buffer-window t select-window switch-to-buffer buffer-disable-undo mm-set-buffer-file-coding-system insert-buffer-substring message "Viewing with %s" non-viewer mailcap-mime-info ((byte-code "\204	\203\304\n\233\240\210\304\207" [non-viewer method handle mm 3] 2)) mm-save-part mm-make-temp-file expand-file-name "emm." dir mail-content-type-get 4 filename name assoc "needsterm" "needsterminal" "copiousoutput" set-file-modes 448 gnus-map-function file-name-nondirectory "nametemplate" string-match "\\`%s\\(\\..+\\)\\'" match-string 1 rassoc "mm." write-region nomesg 256 mm-mailcap-command ((byte-code "\303	\nB\"\207" [handle file buffer mm-handle-set-external-undisplayer] 4)) start-process "*display*" "-e" require term gnus-win make-term mm-binary-coding-system mm mm-tmp-directory mime-info needsterm copiousoutput file buffer mm-file-name-rewrite-functions suffix mailcap-mime-extensions coding-system-for-write command window-system mm-external-terminal-program shell-file-name shell-command-switch gnus-current-window-configuration #2=#:--cl-handle-- #3=#:--cl-command-- #4=#:--cl-buffer-- #5=#:--cl-file-- #6=#:--cl-outbuf-- #7=#:v #8=#:v #9=#:v #10=#:v #11=#:v "display" term-mode term-char-mode set-process-sentinel get-buffer-process lambda (process state) if (eq 'exit (process-status process)) gnus-configure-windows quote display-term "Displaying %s..." external mm-insert-inline ((byte-code "\300\301\302\217\210\300\303\304\217\210\300\305\306\217\207" [nil (delete-file file) ((error)) (byte-code "\301\302!!\207" [file delete-directory file-name-directory] 3) ((error)) (kill-buffer buffer) ((error))] 3)) call-process buffer-live-p buffer-string inline ((byte-code "\303	\nB\"\207" [handle file buffer mm-handle-set-external-undisplayer] 4)) make-symbol "--outbuf--" "--file--" "--buffer--" "--command--" "--handle--" run-at-time 30.0 (&rest --cl-rest--) apply #[(#12=#:G32000 #13=#:G32001 #14=#:G32002 #15=#:G32003 #16=#:G32004) "\300\301\302\217\210\300\303\304\217\207" [nil (byte-code "\301J!\207" [#15# delete-file] 2) ((error)) (byte-code "\301\302J!!\207" [#15# delete-directory file-name-directory] 3) ((error))] 3] --cl-rest-- #[(#17=#:G32005 #18=#:G32006 #19=#:G32007 #20=#:G32008 #21=#:G32009 process state) "\306!\307=\203B\310\311\312\217\210\310\313\314\217\210\315	J!\2036r	Jq\210\310`\316y\210\317\fJr
Jq\210\320 )\"\210\nb\210+\315
J!\203B\321
J!\210\322\323J\"\207" [process #21# point buffer-read-only #17# #19# process-status exit nil (byte-code "\301J!\207" [#20# delete-file] 2) ((error)) (byte-code "\301\302J!!\207" [#20# delete-directory file-name-directory] 3) ((error)) buffer-live-p 2 mm-insert-inline buffer-string kill-buffer message "Displaying %s...done" #18#] 3]] 16 (#$ . 24571)])
(defalias 'mm-mailcap-command #[(method file type-list) "A\306\307\310\211\211\311\312
#\203\201
\306\224OB\306\225\313\306\"\313\314\"	\315\230\203<\316B\202	\317\230\204N	\320\230\204N	\321\230\203^\310\322\323\"!B\202	\324\230\203n\322@!B\202\322\325\n!\236A\206z\326!B\202
GOB\f\203\236\327B\322\323\"!B\330\331\237\326#.\207" [type-list total sub out uses-stdin beg 0 t nil string-match "%{\\([^}]+\\)}\\|'%s'\\|\"%s\"\\|%s\\|%t\\|%%" match-string 1 "%%" "%" "%s" "'%s'" "\"%s\"" shell-quote-argument gnus-map-function "%t" intern "" "<" mapconcat identity ctl method mm-path-name-rewrite-functions file] 6])
#@57 Remove the displayed MIME parts represented by HANDLES.
(defalias 'mm-remove-parts #[(handles) "<\203\302@!\203\303!\207\304\211A@\211\205P	;\2036\305\306\307\310	#!\203\311\306\307\310	#!\210\202	<\203I	@;\203I\312	A!\210\202\303	!\210\202)\207" [handles handle bufferp mm-remove-part nil buffer-live-p get-text-property 0 buffer kill-buffer mm-remove-parts] 5 (#$ . 30020)])
#@57 Remove the displayed MIME parts represented by HANDLES.
(defalias 'mm-destroy-parts #[(handles) "<\203\302@!\203\303!\207\304\211A@\211\205O	;\2036\305\306\307\310	#!\203\311\306\307\310	#!\210\202	<\203H	@;\203H\312	!\210\202\303	!\210\202)\207" [handles handle bufferp mm-destroy-part nil buffer-live-p get-text-property 0 buffer kill-buffer mm-destroy-parts] 5 (#$ . 30426)])
#@55 Remove the displayed MIME part represented by HANDLE.
(defalias 'mm-remove-part #[(handle) "<\205\3028\303\304\305\217\210\302\233\303\240)\207" [handle object 3 nil (byte-code "\301!\204N\302!\204<\203@\303=\203 \210\202N:\203>\304\305\306\217\210\304\307\310\217\210\311\312!\210\304\313\314\217\210\304\315\316\217\210\202N\317!\203N\320!\203N\321!\210\304\207" [object mm-annotationp functionp lambda nil (byte-code "\301A!\203\302\301A!!\210\303\304!\210\305\306!\210\202\301\207" [object get-buffer-process interrupt-process message "Waiting for external displayer to die..." sit-for 1] 3) ((quit) (error)) (byte-code "A\203\n\301A!\210\301\207" [object kill-buffer] 2) ((error)) message "Waiting for external displayer to die...done" (byte-code "\301@!\207" [object delete-file] 2) ((error)) (byte-code "\301\302@!!\207" [object delete-directory file-name-directory] 3) ((error)) bufferp buffer-live-p kill-buffer] 3) ((error))] 3 (#$ . 30834)])
(defalias 'mm-display-inline #[(handle) "\211@;\203
@\202A@@)\305\n	\"\211A@)\211!\210eb*\207" [handle type mm-inline-media-tests x function mm-assoc-string-match] 4])
(defalias 'mm-assoc-string-match #[(alist type) "\300\301\215\207" [--cl-block-nil-- (byte-code "\304\211\205 \n@\305	@\"\203\306\307	\"\210\nA\211\204\304*\207" [alist elem --dolist-tail-- type nil string-match throw --cl-block-nil--] 4)] 2])
#@66 Say whether the user wants HANDLE to be displayed automatically.
(defalias 'mm-automatic-display-p #[(handle) "	\211@;\203	@\202	A@@)\306\211
\211A@\211\2038\307	!\204\310\f\"\203\311\306\211\202\n,\207" [mm-automatic-display handle result method type methods nil mm-inline-override-p string-match t] 5 (#$ . 32265)])
#@122 Say whether HANDLE can be displayed inline.
TYPE is the mime-type of the object; it defaults to the one given
in HANDLE.
(defalias 'mm-inlinable-p #[(handle &optional type) "\204	\211@;\203	@\202	A@@)\n\306\f\203@\307\f\211@@)\"\2037\f@AA@\306	!\f\211A@\210\202*\207" [type handle mm-inline-media-tests test alist x nil string-match] 4 (#$ . 32612)])
#@59 Say whether the user wants HANDLE to be displayed inline.
(defalias 'mm-inlined-p #[(handle) "	\211@;\203	@\202	A@@)\306\211
\211A@\211\2038\307	!\204\310\f\"\203\311\306\211\202\n,\207" [mm-inlined-types handle result method type methods nil mm-inline-override-p string-match t] 5 (#$ . 32992)])
#@64 Say whether HANDLE should have attachment behavior overridden.
(defalias 'mm-attachment-override-p #[(handle) "	\211@;\203	@\202	A@@)\305\306\307\215+\207" [mm-attachment-override-types handle ty type types nil found (byte-code "\211A@\211\205\304	\n\"\203\305!\203\306\307\310\"\210\202\207" [types ty type handle string-match mm-inlinable-p throw found t] 3)] 4 (#$ . 33317)])
#@60 Say whether HANDLE should have inline behavior overridden.
(defalias 'mm-inline-override-p #[(handle) "	\211@;\203	@\202	A@@)\305\306\307\215+\207" [mm-inline-override-types handle ty type types nil found (byte-code "\211A@\211\205\303	\n\"\203\304\305\306\"\210\202\207" [types ty type string-match throw found t] 3)] 4 (#$ . 33723)])
#@42 Return the user-defined method for TYPE.
(defalias 'mm-automatic-external-display-p #[(type) "\305\211\211A@\211\203\306\n\f\"\203\307\305\211\202	+\207" [mm-automatic-external-display result method methods type nil string-match t] 4 (#$ . 34083)])
#@50 Destroy the data structures connected to HANDLE.
(defalias 'mm-destroy-part #[(handle) "<\205\301!\210\302@!\205\303@!\207" [handle mm-remove-part buffer-live-p kill-buffer] 2 (#$ . 34353)])
#@41 Say whether HANDLE is displayed or not.
(defalias 'mm-handle-displayed-p #[(handle) "\3018\207" [handle 3] 2 (#$ . 34558)])
#@65 Run FORMS in the temp buffer containing the contents of HANDLE.
(defalias 'mm-with-part '(macro . #[(handle &rest forms) "\302\300DC\303\304\305\306\307\310	BBBBEE\207" [handle forms let* when (and (mm-handle-buffer handle) (buffer-name (mm-handle-buffer handle))) with-temp-buffer (mm-disable-multibyte) (insert-buffer-substring (mm-handle-buffer handle)) (mm-decode-content-transfer-encoding (mm-handle-encoding handle) (mm-handle-media-type handle))] 9 (#$ . 34689)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put mm-with-part lisp-indent-function 1 edebug-form-spec (body)] 4)
#@129 Return the contents of HANDLE as a string.
If NO-CACHE is non-nil, cached contents of a message/external-body part
are ignored.
(defalias 'mm-get-part #[(handle &optional no-cache) "\2040	\211@;\203	@\202	A@@)\303\232\2030\304	8\204%\305	!\210r\304	8@q\210\306 )\207	\211@\205k\307	@!\205k\310\311!r\nq\210\312\216\313 \210\314	@!\210\315\316	8	\211@;\203a	@\202e	A@@)\"\210\306 +)\207" [no-cache handle #1=#:temp-buffer "message/external-body" 6 mm-extern-cache-contents buffer-string buffer-name generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte insert-buffer-substring mm-decode-content-transfer-encoding 2] 4 (#$ . 35294)])
#@139 Insert the contents of HANDLE in the current buffer.
If NO-CACHE is non-nil, cached contents of a message/external-body part
are ignored.
(defalias 'mm-insert-part #[(handle &optional no-cache) "\303A@\304\"\305=\203r@q\210\306 )\202(\307 \203$\310\311	\"!\202(\311	\"\214~\210`\312e`S]\313\"\314=\203K\312\315\313\n#\314=\203K\316\n\261\210\202N\nc\210b*\207" [handle no-cache text mail-content-type-get charset gnus-decoded buffer-string mm-multibyte-p mm-string-to-multibyte mm-get-part get-char-property face mm-uu-extract 0 "\n"] 5 (#$ . 36026)])
#@50 Remove all whitespace characters from FILE-NAME.
(defalias 'mm-file-name-delete-whitespace #[(file-name) "\301\302\"\203\303\304\305\211$\202\207" [file-name string-match "\\s-+" replace-match "" t] 5 (#$ . 36598)])
#@67 Remove leading and trailing whitespace characters from FILE-NAME.
(defalias 'mm-file-name-trim-whitespace #[(file-name) "\301\302\"\203
\303\225\304O\301\305\"\203\303\211\224O\207" [file-name string-match "\\`\\s-+" 0 nil "\\s-+\\'"] 3 (#$ . 36828)])
#@55 Collapse multiple whitespace characters in FILE-NAME.
(defalias 'mm-file-name-collapse-whitespace #[(file-name) "\301\302\"\203\303\304\305\211$\202\207" [file-name string-match "\\s-\\s-+" replace-match " " t] 5 (#$ . 37096)])
#@163 Replace whitespace characters in FILE-NAME with underscores.
Set the option `mm-file-name-replace-whitespace' to any other
string if you do not like underscores.
(defalias 'mm-file-name-replace-whitespace #[(file-name) "\206\303\304\305\n\"\203\306	\307\211\n$\202)\n\207" [mm-file-name-replace-whitespace s file-name "_" string-match "\\s-" replace-match t] 5 (#$ . 37339)])
#@42 Delete control characters from FILENAME.
(defalias 'mm-file-name-delete-control #[(filename) "\301\302\303#\207" [filename gnus-replace-in-string "[-]" ""] 4 (#$ . 37730)])
#@37 Delete shell gotchas from FILENAME.
(defalias 'mm-file-name-delete-gotchas #[(filename) "\301\302\303#\301\304\303#\207" [filename gnus-replace-in-string "[<>|]" "" "^[.-]+"] 4 (#$ . 37913)])
#@92 Write HANDLE to a file.
PROMPT overrides the default one used to ask user for a file name.
(defalias 'mm-save-part #[(handle &optional prompt) "\306\3078\302\"\206\306A@\310\"\311\211\203\312\313\n!\"\314\f\206*\315\316\n\206)\317\"
\2060\320\n\2066\317
\206<\"#\321	!\203M\320\n	\"\202W\320	
\206U\"\322	!\323	!\203j\324\315\325	\"!\205p\326	\"\210	*\207" [handle file filename mm-file-name-rewrite-functions prompt mm-default-directory mail-content-type-get 4 name nil gnus-map-function file-name-nondirectory read-file-name format "Save MIME part to (default %s): " "" expand-file-name file-directory-p file-name-directory file-exists-p yes-or-no-p "File %s already exists; overwrite? " mm-save-part-to-file default-directory] 7 (#$ . 38114)])
#@256 Add meta html tag to specify CHARSET of HANDLE in the current buffer.
CHARSET defaults to the one HANDLE specifies.  Existing meta tag that
specifies charset will not be modified unless FORCE-CHARSET is non-nil.
Return t if meta tag is added or replaced.
(defalias 'mm-add-meta-html-tag #[(handle &optional charset force-charset) "\211@;\203
@\202A@@)\304\232\205r	\204&\305A@\301\"\211\205r\306\307	\"\310eb\210\311\312\313\310#\203T?\205H\314\224\205H\315\316\317\320!\"?\205q\321	!\210\310\202q\311\322\313\310#\203d	\323\261\210\202p\311\324\313\310#\210\325	\326\261\210\310)\207" [handle charset case-fold-search force-charset "text/html" mail-content-type-get format "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">" t re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\(\\sw+\\)\\(?:;\\s-*charset=\\(.+\\)\\)?[\"'][^>]*>" nil 2 string-match "\\`html\\'" match-string 1 replace-match "<head>\\s-*" "\n" "<html\\(?:\\s-+[^>]+\\|\\s-*\\)>\\s-*" "<head>\n" "\n</head>\n"] 5 (#$ . 38899)])
(defalias 'mm-save-part-to-file #[(handle file) "\305\306!rq\210\307\216\310 \210\311	!\210\312	!\210\313 \314!\210\315\216\316ed\f\317\211\211\320\321&-\207" [#1=#:temp-buffer handle current-file-modes mm-attachment-file-modes file generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part mm-add-meta-html-tag default-file-modes set-default-file-modes ((set-default-file-modes current-file-modes)) mm-write-region nil binary t] 9])
#@51 Pipe HANDLE to a process.
Use CMD as the process.
(defalias 'mm-pipe-part #[(handle &optional cmd) "\306A@\304\"	\206\307\310\n\"\311\312!r
q\210\313\216\314 \210\315!\210\316!\210\317\320ed\321$.\207" [handle cmd mm-last-shell-command command name #1=#:temp-buffer mail-content-type-get gnus-read-shell-command "Shell command on MIME part: " generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part mm-add-meta-html-tag binary shell-command-on-region nil coding-system-for-write] 5 (#$ . 40508)])
(autoload 'gnus-completing-read "gnus-util")
#@30 Display HANDLE using METHOD.
(defalias 'mm-interactively-view-part #[(handle) "\211@;\203
@\202A@@)\306\307\310	\311\"\"\312\313\n\")\211\314\230\203-\315\316!\210\317\320
\"\2038
\321P\322
\"+\207" [handle type methods mm-viewer-completion-map minibuffer-local-completion-map method mapcar #[(i) "\301\302\"A\207" [i assoc viewer] 3] mailcap-mime-info all completing-read "Viewer: " "" error "No method given" string-match "^[^% 	]+$" " %s" mm-display-external] 6 (#$ . 41158)])
#@37 Say which of HANDLES are preferred.
(defalias 'mm-preferred-alternative #[(handles &optional preferred) "\203	C\202\f\306	!\307\211\211\211\211\f\f\211A\f@\211\203t	
\203
@\211\211@;\203<\n@\202@\nA@@)\232\203k\310\n!\203k\n@;\204d\311\n8\203d\311\n8@\312\232\203k\n\307\211\f
\211A@\210\202(\f.\207" [preferred handles handle type result h mm-preferred-alternative-precedence nil mm-automatic-display-p 4 "inline" p prec] 7 (#$ . 41661)])
#@75 Return the precedence based on HANDLES and `mm-discouraged-alternatives'.
(defalias 'mm-preferred-alternative-precedence #[(handles) "\305!\305	!\306\211\203M@\307!\306\211\203E@\310\n\f\211@;\203-\f@\2021\fA@@)\"\203>\311\f\"\fC\244A\211\204*A\211\204*\307!\306\211\203\202@\312\f@!\203{r\f@q\210eb\210\313\314\306\315#)\204{\311\f\"\fC\244A\211\204X*\316\317\"\207" [handles mm-discouraged-alternatives disc --dolist-tail-- handle reverse nil copy-sequence string-match delete bufferp re-search-forward "[^ 	\n]" t mapcar mm-handle-media-type] 5 (#$ . 42145)])
#@41 Return the handle(s) referred to by ID.
(defalias 'mm-get-content-id #[(id) "\302	\"A\207" [id mm-content-id-alist assoc] 3 (#$ . 42755)])
#@169 Alist of (REGEXP . IMAGE-TYPE) pairs used to auto-detect image types.
When the first bytes of an image file match REGEXP, it is assumed to
be of image type IMAGE-TYPE.
(defconst mm-image-type-regexps '(("/\\*.*XPM.\\*/" . xpm) ("P[1-6]" . pbm) ("GIF8" . gif) ("\377\330" . jpeg) ("\211PNG
\n" . png) ("#define" . xbm) ("\\(MM\\*\\)\\|\\(II\\*\\)" . tiff) ("%!PS" . postscript)) (#$ . 42902))
#@140 Determine the image type from data in the current buffer.
Value is a symbol specifying the image type or nil if type cannot
be determined.
(defalias 'mm-image-type-from-buffer #[nil "\305eb\210\n\203&	\204&\n@@\n@A\306\f!\203\nA*\202	*\207" [mm-image-type-regexps type types image-type regexp nil looking-at] 2 (#$ . 43303)])
#@43 Return an image instance based on HANDLE.
(defalias 'mm-get-image #[(handle) "\305\211@;\203@\202A@@)\306\"\211A@*\307\211\310\232\203)\311\202>\312\232\2033\313\202>\314\232\203=\315\202>\3168\206c\317\320!r\fq\210\321\216\322 \210\323!\210\307\324\325\217\211\316\233\n\240\210+*\207" [handle x spec type #1=#:temp-buffer split-string "/" nil "x-pixmap" "xpm" "x-xbitmap" "xbm" "x-portable-bitmap" "pbm" 6 generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part (byte-code "\301\302!\203\302\303 \304 \206\305!\306#\207\307!\207" [type fboundp create-image buffer-string mm-image-type-from-buffer intern data-p mm-create-image-xemacs] 4) ((error))] 4 (#$ . 43649)])
(defalias 'mm-create-image-xemacs #[(type) "\300\207" [nil] 1])
#@62 Say whether the image in HANDLE will fit the current window.
(defalias 'mm-image-fit-p #[(handle) "\306!\211?\206$\307	!\211@\nA
\206#\f\310 SX\205#\311 X+)\207" [handle image size w h mm-inline-large-images mm-get-image image-size window-height window-width] 3 (#$ . 44512)])
#@56 Say whether FORMAT can be displayed natively by Emacs.
(defalias 'mm-valid-image-format-p #[(format) "\301\302!\203\n\302!\207\301\303!\203\304 \205\303!\207\305\207" [format fboundp valid-image-instantiator-format-p image-type-available-p display-graphic-p nil] 2 (#$ . 44804)])
#@74 Say whether FORMAT can be displayed natively and HANDLE fits the window.
(defalias 'mm-valid-and-fit-image-p #[(format handle) "\302!\205	\303	!\207" [format handle mm-valid-image-format-p mm-image-fit-p] 2 (#$ . 45097)])
#@115 Search in HANDLES for part with TYPE.
If NOTP, returns first non-matching part.
If RECURSIVE, search recursively.
(defalias 'mm-find-part-by-type #[(handles type &optional notp recursive) "\306	\203j\n\203)	\211@@);\203)\307	\211@A)\f
\n$\211\203c\306\202c
\203F	@\211@;\203;@\202?A@@)\f\232?\202[	@\211@;\203T@\202XA@@)\f\232\203c	@\306	A\211\204)\207" [handle handles recursive x type notp nil mm-find-part-by-type] 6 (#$ . 45328)])
(defalias 'mm-find-raw-part-by-type #[(ctl type &optional notp) "eb\210\306\307\310\301@#P\311\312	!\313Q\314\212db\210\315\n\314\316#\203&\310\224\202'd)\314\311\312	!\317Q
\204~\320	\f\316#\203~\310\224b\210\203v\212\214`S}\210\321\322!\211\205Z\323!\203i@\232?\202n@\232*\203u\324 *\325y\210`\2022
\204\265\203\265\212\214\f}\210\321\322!\211\205\231\323!\203\250@\232?\202\255@\232*\203\264\324 *
-\207" [ctl boundary close-delimiter start end result "--" get-text-property 0 "^" regexp-quote "--[ 	]*$" nil re-search-backward t "[ 	]*$" re-search-forward mail-fetch-field "content-type" mail-header-parse-content-type buffer-string 1 ct notp type] 6])
(defvar mm-security-handle nil)
(defalias 'mm-set-handle-multipart-parameter #[(handle parameter value) "\205\303\304@G	\n@%\207" [handle parameter value put-text-property 0] 6])
(byte-code "\300\301\302\303#\210\304\305\306\"\207" [put mm-set-handle-multipart-parameter byte-optimizer byte-compile-inline-expand autoload mm-view-pkcs7 "mm-view"] 4)
(defalias 'mm-possibly-verify-or-decrypt #[(parts ctl &optional from) "@\306@\307\"\211A@)\310\211\211'\211(\311\232\204%(\312\232\203`\313\314!)r)q\210\315\216*\316=\204\\*\317=\204N*\320=\204N\321\322\323!!\203\\\324+,\"\203\\\325\326!++\202'\327\232\2039\330\331\304@#\211\203x\f\332\232\203\273-\211.\203\272\333.@8\211\203\222\n+\"\203\261\334+.\211@@)\310\326$\203\261.\211@@)\310\211.\202}.A\211.\204\200)\335\f-\"A@/\316=\204/\317=\204/\320=\203\360\203\333\335\f-\"8\211\203\n+\"\202\321\322\336\337\335\f-\"8\206\322\340\f\"\"!\203\212\203+\"+\2025
\341\322\342\f\"01\2112\2053\343\3312@G102@%+\210)\202'\344\232\203\330\331\304@#\211\204\232+\211+\203\231\335+@\2112@;\203e2@\202j2A@@)3\"\203\220+@\2112@;\203\2022@\202\2072A@@)\310\211+\202P+A\211+\204S)\335\f3\"A@*\316=\204*\317=\204\345*\320=\203\317\203\333\335\f3\"8\211\203\345\n+\"\202\342\321\322\345\337\335\f3\"8\206\340\322\340\f\"\"!\203\212\203\364+\"+\202
\341\322\346\f\"01\2112\205\343\3312@G102@%+\210)+.\207" [ctl x functest func protocol mm-security-handle split-string "/" nil "application/x-pkcs7-mime" "application/pkcs7-mime" generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) never always known y-or-n-p format "Decrypt (S/MIME) part? " mm-view-pkcs7 mm-dissect-buffer t "signed" get-text-property 0 "multipart/mixed" 3 mm-find-part-by-type assoc "Verify signed (%s) part? " 2 "protocol=%s" gnus-details "Unknown sign protocol (%s)" put-text-property "encrypted" "Decrypt (%s) part? " "Unknown encrypt protocol (%s)" subtype type #1# mm-decrypt-option parts from mm-verify-function-alist protocols mm-verify-option value parameter handle mm-decrypt-function-alist] 8])
(defalias 'mm-multiple-handles #[(handles) "<\205G\301V\205@<\206@;\207" [handles 1] 2])
(defalias 'mm-complicated-handles #[(handles) "@<\205\nG\301V\207" [handles 1] 2])
(defalias 'mm-merge-handles #[(handles1 handles2) "\302@<\203\202
C	@<\203	\202	C\"\207" [handles1 handles2 append] 3])
#@48 Say whether the content of HANDLE is readable.
(defalias 'mm-readable-p #[(handle) "r@q\210\302 )\303W\205*\304\305!r	q\210\306\216\307 \210\310!\210\311 \312=\205)\313\314!?+\207" [handle #1=#:temp-buffer buffer-size 10000 generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part mm-body-7-or-8 7bit mm-long-lines-p 76] 2 (#$ . 49077)])
(autoload 'gnus-blocked-images "gnus-art")
(defalias 'mm-shr #[(handle) "\306\307!\210p\310\311\211\211\211\312\313!\2033\314!\2033\315!\2033rq\2105\316 )\20295\316 6\204C\317\320!6\3216A@\301\"\214``}\210\3226\2116@\205\3156@!\205\323\324!7r7q\210\325\216\326 \210\3276@!\210\330\331686\2116@;\203\2146@\202\2216A@@)\"\210	\203\260\332	\311\320#\211\203\260	\333=\204\260\334\335 	\"\202\264\336\335 !\337 \210\340 \210c\210eb\210\3208\341\342\311\320#\203\357\343\224\203\330\344\345\343!\346\"\202\335\344\345\331!!9\236A\211\203\302\347\350!!\210\202\302eb\210\351\352\311\320#\203\347\353\320\211#\210\202\362\354ed\"+)!\210o\204\355c\210\3566\233\357\311\360\361\362\363 \364 EEE\240.\207" [char charset shr-blocked-images shr-inhibit-images shr-content-function article-buffer require shr #[(id) "\303!\211\205D	\211@\205C\304	@!\205C\305\306!r\nq\210\307\216\310 \210\311	@!\210\312\313	8	\211@;\2039	@\202=	A@@)\"\210\314 +))\207" [id handle #1=#:temp-buffer mm-get-content-id buffer-name generate-new-buffer #2=" *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte insert-buffer-substring mm-decode-content-transfer-encoding 2 buffer-string] 4] nil boundp gnus-summary-buffer bufferp buffer-name gnus-blocked-images mm-dissect-buffer t mail-content-type-get shr-insert-document generate-new-buffer #2# ((byte-code "\301!\203\n\302!\210\301\207" [#3=#:temp-buffer buffer-name kill-buffer] 2)) mm-disable-multibyte insert-buffer-substring mm-decode-content-transfer-encoding 2 mm-charset-to-coding-system ascii mm-decode-coding-string buffer-string mm-string-as-multibyte erase-buffer mm-enable-multibyte re-search-forward "&#\\(?:x\\([89][0-9a-f]\\)\\|\\(1[2-5][0-9]\\)\\);" 1 string-to-number match-string 16 replace-match char-to-string search-forward "­" "" libxml-parse-html-region "\n" 3 lambda let ((inhibit-read-only t)) delete-region point-min-marker point-max-marker gnus-inhibit-images handle #3# case-fold-search mm-extra-numeric-entities] 9])
#@35 Return filename of HANDLE if any.
(defalias 'mm-handle-filename #[(handle) "\301A@\302\"\206\301\3038\304\"\207" [handle mail-content-type-get name 4 filename] 3 (#$ . 51615)])
(provide 'mm-decode)

MMCT - 2023