;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310DD\311\312\313\314\315\316\317&	\210\304\320\306\307\321DD\322\312\323\314\315\316\324&	\210\304\325\306\307\326DD\327\312\323\314\315\316\317&	\210\304\330\306\307\331DD\332\312\323\314\315\316\333&	\210\304\334\306\307\335DD\336\312\313\314\315\316\337&	\210\304\340\306\307\341DD\342\312\313\314\315\316\343&	\210\304\344\306\307\345DD\346\312\313\314\315\316\347&	\207" [require mm-util gnus-util gnus custom-declare-variable gnus-x-face-directory funcall function #[0 "\301\302\"\207" [gnus-directory expand-file-name "x-faces"] 3 #1=""] "Directory where X-Face PBM files are stored." :version "22.1" :group gnus-fun :type directory gnus-x-face-omit-files #[0 "\300\207" [nil] 1 #1#] "Regexp to match faces in `gnus-x-face-directory' to be omitted." "25.1" (choice (const nil) regexp) gnus-face-directory #[0 "\301\302\"\207" [gnus-directory expand-file-name "faces"] 3 #1#] "Directory where Face PNG files are stored." gnus-face-omit-files #[0 "\300\207" [nil] 1 #1#] "Regexp to match faces in `gnus-face-directory' to be omitted." (choice (const nil) regexp) gnus-convert-pbm-to-x-face-command #[0 "\300\207" ["pbmtoxbm %s | compface"] 1 #1#] "Command for converting a PBM to an X-Face." string gnus-convert-image-to-x-face-command #[0 "\300\207" ["convert -scale 48x48! %s xbm:- | xbm2xface.pl"] 1 #1#] "Command for converting an image to an X-Face.\nThe command must take an image filename (use \"%s\") as input.\nThe output must be the X-Face header data on stdout." (choice (const :tag "giftopnm, netpbm (GIF input only)" "giftopnm %s | ppmnorm | pnmscale -width 48 -height 48 | ppmtopgm | pgmtopbm | pbmtoxbm | compface") (const :tag "convert" "convert -scale 48x48! %s xbm:- | xbm2xface.pl") (string)) gnus-convert-image-to-face-command #[0 "\300\207" ["convert -scale 48x48! %s -colors %d png:-"] 1 #1#] "Command for converting an image to a Face.\n\nThe command must take an image filename (first format argument\n\"%s\") and the number of colors (second format argument: \"%d\")\nas input.  The output must be the Face header data on stdout in\nPNG format." (choice (const :tag "djpeg, netpbm (JPG input only)" "djpeg %s | ppmnorm | pnmscale -width 48 -height 48 | ppmquant %d | pnmtopng") (const :tag "convert" "convert -scale 48x48! %s -colors %d png:-") (string))] 10)#@73 Like `shell-command-to-string' except not mingling ERROR.

(fn COMMAND)
(defalias 'gnus-shell-command-to-string #[257 "\303\304\305\"\306\216\307	\310\310D\310\n&)\210rq\210\311 +\207" [standard-output shell-file-name shell-command-switch generate-new-buffer " *string-output*" t #[0 "\301!\207" [standard-output kill-buffer] 2] call-process nil buffer-string] 8 (#$ . 2444)])#@112 Return file from DIR with extension EXT.
Omit matches of OMIT, and process them by FUN.

(fn DIR EXT OMIT FUN)
(defalias 'gnus--random-face-with-type #[1028 "\300!\205' \301\302\303\304\305\"\306\307	#\"\"\211\205 \310!\211\205% !\266\202\207" [file-exists-p remove nil mapcar make-closure #[257 "\301\300\206 \302\"?\205 \211\207" [V0 string-match "^$"] 4 "\n\n(fn F)"] directory-files t seq-random-elt] 12 (#$ . 2836)])
(byte-code "\300\301\302\303\304$\210\300\305\302\303\304$\207" [autoload message-goto-eoh "message" nil t message-insert-header] 5)#@167 Get a random face using FUN and insert it as a header TYPE.

For instance, to insert an X-Face use `gnus-random-x-face' as FUN
  and "X-Face" as TYPE.

(fn FUN TYPE)
(defalias 'gnus--insert-random-face-with-type #[514 " \212\211\203 \300 \210\301\302\261\202 \303\304\305!\")\207" [message-goto-eoh ": " "\n" message "No face returned by the function %s." symbol-name] 7 (#$ . 3410)])#@134 Return X-Face header data chosen randomly from `gnus-x-face-directory'.

Files matching `gnus-x-face-omit-files' are not considered.
(defalias 'gnus-random-x-face #[0 "\302\303	\304$\207" [gnus-x-face-directory gnus-x-face-omit-files gnus--random-face-with-type "\\.pbm$" #[257 "\301\302\303!\"!\207" [gnus-convert-pbm-to-x-face-command gnus-shell-command-to-string format shell-quote-argument] 6 "\n\n(fn FILE)"]] 5 (#$ . 3808) nil])#@61 Insert a random X-Face header from `gnus-x-face-directory'.
(defalias 'gnus-insert-random-x-face-header #[0 "\300\301\302\"\207" [gnus--insert-random-face-with-type gnus-random-x-face X-Face] 3 (#$ . 4251) nil])#@152 Insert an X-Face header based on an image FILE.

Depending on `gnus-convert-image-to-x-face-command' it may accept
different input formats.

(fn FILE)
(defalias 'gnus-x-face-from-file #[257 "\301!\205 \302\303\304\305!!\"!\207" [gnus-convert-image-to-x-face-command file-exists-p gnus-shell-command-to-string format shell-quote-argument expand-file-name] 7 (#$ . 4469) "fImage file name: "])#@147 Return a Face header based on an image FILE.

Depending on `gnus-convert-image-to-face-command' it may accept
different input formats.

(fn FILE)
(defalias 'gnus-face-from-file #[257 "\302!\205i \303\304\305\204K \211\306V\203K \307\310\311	\312\313!!#!)\262G\314V\203E \211\315W\2036 \306\2027 \316Z\262\317\320\321G$\210\202	 \322\262\202	 \205g \323\324\322\"r\211q\210\325\326\"\216\327 \210c\210\330 *\262\266\203\207" [coding-system-for-read gnus-convert-image-to-face-command file-exists-p nil "" 16 1 binary gnus-shell-command-to-string format shell-quote-argument expand-file-name 726 10 2 gnus-message 9 "Length %d; trying quant %d" t generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] mm-disable-multibyte gnus-face-encode] 10 (#$ . 4871) "fImage file name: "])
(defalias 'gnus-face-encode #[0 "\300\301ed\"\210eb\210\302\303\304\305#\203 \306\307!\210\202	 eb\210d`ZV\203/ \211u\210\310c\210\311\262\202 \312 \207" [72 base64-encode-region search-forward "\n" nil t replace-match "" "\n " 76 buffer-string] 5])#@94 Convert FACE (which is base64-encoded) to a PNG.
The PNG is returned as a string.

(fn FACE)
(defalias 'gnus-convert-face-to-png #[257 "\300\301\302\"r\211q\210\303\304\"\216\305 \210c\210\3061  \307ed\"0\210\202! \210\310 *\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] mm-disable-multibyte (error) base64-decode-region buffer-string] 5 (#$ . 5979)])#@115 Convert FILE to a Face.
FILE should be a PNG file that's 48x48 and smaller than or equal to
726 bytes.

(fn FILE)
(defalias 'gnus-convert-png-to-face #[257 "\300\301\302\"r\211q\210\303\304\"\216\305 \210\306!\210\307 \310V\203! \311\312\307 \"\210\313 *\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] mm-disable-multibyte insert-file-contents buffer-size 726 error "The file is %d bytes long, which is too long" gnus-face-encode] 5 (#$ . 6411)])#@116 Return randomly chosen Face from `gnus-face-directory'.

Files matching `gnus-face-omit-files' are not considered.
(defalias 'gnus-random-face #[0 "\302\303	\304$\207" [gnus-face-directory gnus-face-omit-files gnus--random-face-with-type "\\.png$" gnus-convert-png-to-face] 5 (#$ . 6937) nil])#@57 Insert a random Face header from `gnus-face-directory'.
(defalias 'gnus-insert-random-face-header #[0 "\300\301\302\"\207" [gnus--insert-random-face-with-type gnus-random-face Face] 3 (#$ . 7237)])
(custom-declare-face 'gnus-x-face '((t (:foreground "black" :background "white"))) "Face to show X-Face.\nThe colors from this face are used as the foreground and background\ncolors of the displayed X-Faces." :group 'gnus-article-headers)#@56 Display the X-Face DATA in the From header.

(fn DATA)
(defalias 'gnus-display-x-face-in-from #[257 "\301\302!\210\303\304\305!\204 \304\306!\205Y \307!\211\262\205Y \212\214\310 \210\311\312!\210o\203- \313c\210\314u\210\315\305\316\304\305!\203F \317\320\321P\305\322\305\236A%\202P \317\320\306\322\306\236A%\303\305#\"\210\323\305!*\207" [gnus-face-properties-alist require gnus-art nil gnus-image-type-available-p xface pbm uncompface article-narrow-to-head gnus-article-goto-header "from" "From: [no 'from' set]\n" -17 gnus-add-image gnus-put-image apply gnus-create-image "X-Face: " t gnus-add-wash-type] 12 (#$ . 7679)])#@59 Grab a picture off the camera and make it into an X-Face.
(defalias 'gnus-grab-cam-x-face #[0 "\301\302!\210\303\304\305\306\307#\211\262\204 \310\311!\210\202 \211@\262\312\313\306\"r\211q\210\314\315\"\216\301\316\317#p\"\210\320!\210\321 *\207" [null-device shell-command "xawtv-remote snap ppm" nil directory-files "/tftpboot/sparky/tmp" t "snap.*ppm" sleep-for 1 generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] format "pnmcut -left 110 -top 30 -width 144 -height 144 '%s' | ppmnorm 2>%s | pnmscale -width 48 | ppmtopgm | pgmtopbm -threshold -value 0.92 | pbmtoxbm | compface" delete-file buffer-string] 7 (#$ . 8321)])#@59 Grab a picture off the camera and make it into an X-Face.
(defalias 'gnus-grab-cam-face #[0 "\301\302!\210\303\304\305\303\306#\303\307\310\311\312#\211\262\204 \313\314!\210\202 @\262\301\315\316#!\210\315\317\320 \"\321!)\262\322!\210\207" [gnus-convert-image-to-face-command shell-command "xawtv-remote snap ppm" nil make-temp-file "gnus-face-" ".ppm" directory-files "/tftpboot/sparky/tmp" t "snap.*ppm" sleep-for 1 format "pnmcut -left 110 -top 30 -width 144 -height 144 '%s' | pnmscale -width 48 -height 48 | ppmtopgm >> %s" "cat '%%s' | ppmquant %%d | ppmchange %s | pnmtopng" gnus-fun-ppm-change-string gnus-face-from-file delete-file] 8 (#$ . 9020)])
(defalias 'gnus-fun-ppm-change-string #[0 "\300\301\302!\303Q\304\305\211\306W\203$ \307\211\211\211\211\211&B\262\211T\262\202	 \210\310\311\312#\207" [("%02x0000" "00%02x00" "0000%02x" "%02x%02x00" "00%02x%02x" "%02x00%02x") "'#%02x%02x%02x' '#" seq-random-elt "'" nil 0 255 format mapconcat identity " "] 12])#@28 

(fn FUNCTION &rest ARGS)
(defalias 'gnus-funcall-no-warning #[385 "\300!\205\n \301\"\207" [fboundp apply] 5 (#$ . 10017)])
(provide 'gnus-fun)
