x-face-1.3.6.24/ChangeLog.ja0100644000227700000130000013343107722636267014605 0ustar yamaokastaff2003-08-26 Katsumi Yamaoka * X-Face: Version 1.3.6.24 was released. Special thanks to Shun-ichi GOTO and Yuuichi Teranishi! * x-face.el (x-face-view-single-ascii): Don't bind inhibit-quit; use `next-command-event' or `read-event' instead of `read-char-exclusive'; use `discard-input'. 2003-06-27 Katsumi Yamaoka * X-Face: Version 1.3.6.23 was released. * x-face.el (x-face-tmp-directory): Revert. (x-face-tmp-directory-name-format): Rename from `x-face-tmp-file-name-format'. (x-face-view-asynchronous-function-for-OS/2): Remove a subdirectory. (x-face-sentinel-delete-file): Ditto. (x-face-view-asynchronous-function-for-some): Ditto. 2003-06-27 Tatsuya Kinoshita * x-face.el (x-face-view-buffer): Make a secure subdirectory. 2003-06-25 Katsumi Yamaoka * X-Face: Version 1.3.6.22 was released. * x-face.el (x-face-tmp-directory): Make an effort to use a secure directory. (x-face-tmp-file-name-format): Don't include directory. (x-face-make-secure-file): Remove. (x-face-save-buffer-no-conversion): Revert. (x-face-view-buffer): Use `x-face-tmp-directory'. 2003-06-24 Katsumi Yamaoka * X-Face: Version 1.3.6.21 was released. * x-face.el (x-face-make-secure-file): New macro. (x-face-save-buffer-no-conversion): Use it. (x-face-view-buffer): Don't override existing temp files; set the file mode. 2002-03-18 Katsumi Yamaoka * X-Face: Version 1.3.6.20 was released. 2002-03-17 TAKAHASHI Kaoru * x-face.el (x-face-mew-get-article): `mew-cache-hit' $B$,(B macro $B$N>l9g(B (Mew 1.94.2 $B0JA0(B) $B$K(B compile $B$,<:GT$9$k$N$r=$@5!#(B 2002-02-25 Katsumi Yamaoka * X-Face: Version 1.3.6.19 was released. * x-face.el (x-face-tmp-directory): $B4X?t(B `temp-directory' $B$,B8:_$7(B $B$F$$$?$i(B (XEmacs 21.0 $B0J>e(B) $B;H$&$h$&$K$7$?!#(BFrom $BDMK\$5$s!#(B 2002-02-25 Katsumi Yamaoka * X-Face: Version 1.3.6.18 was released. * x-face.el (x-face-tmp-directory): FSF Emacs $B$N(B startup.el $B$KJo$C(B $B$F!"(B`x-face-tmp-directory' $B$dJ#?t$N4D6-JQ?t$r;2>H$9$k$h$&$K$7$?!#(B (x-face-tmp-file-name-format): $BCM$N@8@.$K(B `expand-file-name' $B$r;H(B $B$&$h$&$K$7$?!#(B 2002-02-22 Katsumi Yamaoka * X-Face: Version 1.3.6.17 was released. 2002-02-22 Yuuichi Teranishi * x-face.el (x-face-wl-get-article): $B:G=i$K4X?t(B `wl-summary-set-message-buffer-or-redisplay' $B$r8F$s$G!"(Bmessage $B%P%C(B $B%U%!$K0\F0$9$k$h$&$K$7$?!#(B 2002-02-20 Katsumi Yamaoka * X-Face: Version 1.3.6.16 was released. * x-face.el (x-face-mirror-table-8bit-binary): $B?7$7$$Dj?t!#(B (x-face-xbm-to-pbm): Netpbm $B$r;H$o$J$$e!#(B (x-face-extract-x-face-fields-to-pictures): $B%3%^%s%I(B `x-face-view' $B$G!"$H$j$"$($:(B XPM $B$NB?3,D4(B X-Face $B$rI=<($G$-$k$h$&$K$7$?!#(B 2002-02-19 Hideyuki SHIRAI * x-face.el (x-face-mew-get-article): $B?7$7$$ * x-face.el (x-face-search-field): $B@55,I=8=$r=$@5!#(B (x-face-extract-x-face-fields-to-icons): $BF1>e!#(B 2002-02-15 Katsumi Yamaoka * X-Face: Version 1.3.6.15 was released. * x-face-xmas.el (x-face-xmas-search-extents): $BB?3,D4(B X-Face $B%U%#!<(B $B%k%I$bC5$9$h$&$K$7$?!#(B 2002-02-14 Katsumi Yamaoka * X-Face: Version 1.3.6.14 was released. * x-face.el (x-face-xbm-to-pbm): `shell-command-on-region' $B$NBe$o(B $B$j$K(B `call-process-region' $B$r;H$&$h$&$K$7$?(B ($B8zN($O0-$$$+$b(B)$B!#(B 2002-02-14 Daiki Ueno * x-face.el (x-face-gray-faces-to-xpm): `shell-command-on-region' $B$NBe$o$j$K(B `call-process-region' $B$r;H$&$h$&$K$7$?!#(B 2002-02-13 Daiki Ueno * x-face.el (x-face-extract-x-face-fields-to-icons): XEmacs $B$GB?3,(B $BD4(B X-Face $B$KBP1~$7$?!#(B (x-face-xbm-to-pbm): $B?7$7$$4X?t!#(B (x-face-gray-faces-to-xpm): $BF1>e!#(B * x-face-xmas.el (x-face-xmas-extract-x-face-fields-internal): $BB?(B $B3,D4(B X-Face $B$G(B XPM $B%U%)!<%^%C%H$N2hA|$r:n$k$h$&$K$7$?!#(B 2001-09-18 Katsumi Yamaoka * X-Face: Version 1.3.6.13 was released. * x-face.el (x-face-search-field): X-Face $B%U%#!<%k%I$NBhFs9TL\0J9_(B $B$K%G!<%?$,$"$k>l9g$G$b8!=P$G$-$k$h$&$K$7$?!#(B 2001-09-17 Katsumi Yamaoka * X-Face: Version 1.3.6.12 was released. * x-face-xmas.el (x-face-xmas-wl-display-x-face): $B0z?t$r$9$Y$F%*%W(B $B%7%g%J%k$KJQ99!#(B 2001-07-13 Katsumi Yamaoka * X-Face: Version 1.3.6.11 was released. 2001-07-13 Kenichi OKADA * x-face-xmas.el (x-face-xmas-xface-p): $BDj?tCM$N7hDj$K:]$7$F!"4X?t(B `device-type' $B$NLa$jCM$r;2>H$7$J$$$h$&$K$7$?!#(B (x-face-xmas-display-x-face): X-Face $B$,I=<($G$-$k$+$I$&$+$r!"F0E*(B $B$K(B `device-type' $B$NLa$j$+$iH=CG$9$k$h$&$K$7$?!#(B * x-face.el (x-face-encode): $BF1>e!#(B 2000-02-23 Katsumi Yamaoka * X-Face: Version 1.3.6.10 was released. * x-face-xmas.el (x-face-xmas-replace-x-face-function-for-semi-1): $BJQ?t(B `mime-display-header-hook' $B$,B8:_$7$J$+$C$?$i$=$NCM$r;2>H$7$J(B $B$$$h$&$K$7$?!#(BEMIKO 1.13, EMY 1.13, REMI 1.14 $B$KBP1~!#(B 1999-12-27 Katsumi Yamaoka * X-Face: Version 1.3.6.9 was released. 1999-12-17 NAKAJI Hiroyuki * Makefile (MKDIR): New variable. (install): Create $(LISPDIR) if it doesn't exist. (xinstall): Same about $(XLISPDIR) 1999-12-16 Katsumi Yamaoka * X-Face: Version 1.3.6.8 was released. 1999-12-16 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-replace-x-face-function-for-semi): semi-def.el(c) $B$,(B load $B$5$l$kA0$Kl9g$O!"(Bsemi-def.el(c) $B$,(B load $B$5$l$?8e$G * X-Face: Version 1.3.6.7 was released. 1999-12-08 TAKAHASHI Kaoru * x-face.el (x-face-insert): $BBPOCE*$K;H$o$l$?>l9g$@$1!V$3$l$O(B Animate $B$+(B?$B!W$r?R$M$k$h$&$K$7$?!#(B 1999-11-27 Katsumi Yamaoka * X-Face: Version 1.3.6.6 was released. 1999-11-26 Yuuichi Teranishi * x-face-xmas.el (x-face-xmas-animation-keymap): $B?7@_$7$?!#(B (x-face-xmas-display-x-face): $B$3$l$,:n$k(B extent $B$K(B `keymap' property $B$H$7$F(B `x-face-xmas-animation-keymap' $B$rIU2C$7!"(BAnimated X-Face $B$r%^%&%9%\%?%s$G0l;~Dd;_$G$-$k$h$&$K$7$?!#(B (x-face-animate): $B0z?t$r(B extetn $B$N$_$H$7!"I,MW$J>pJs$O(B extent $B$+$i(B $BF@$k$h$&$K$7$?!#(B 1999-11-23 Katsumi Yamaoka * X-Face: Version 1.3.6.5 was released. 1999-11-23 Tetsuya Uemura * x-face.el (x-face-insert): x-face $B$rA^F~$9$k$H$-$K!"(BRGB $B$+$I$&$+(B $B$rJ9$$$?8e$K(B animate $B$+$I$&$+$rJ9$/$h$&$K$7$?!#(B 1999-11-17 Katsumi Yamaoka * X-Face: Version 1.3.6.4 was released. 1999-11-17 Katsumi Yamaoka * README-Anim.ja: $B?7@_$7$?!#(B * x-face-xmas.el (x-face-animate-limit-intervals): $B%f!<%6%*%W%7%g%s(B $B$r?7@_$7$?!#(B 1999-11-16 Katsumi Yamaoka * x-face-xmas.el (x-face-animate): `x-face-xmas-display-x-face-animate' $B$r2~L>$7$?(B; $B%"%K%aMQ$NJ#?t$N(B glyph $B$rI=<(MQ$N(B extent $B$N%W%m%Q%F%#$H$7$F;}$D$h$&(B $B$K$7$?(B; extent $B$KFH<+$N(B id $B$rIU$1!"%X%C%@$N(B sort $B$J$I$K$h$C$F(B extent $B$N0LCV(B $B$d(B id $B$,JQ2=$7$F$7$^$C$F$b!"$=$l$rC5$7$FI=<($r7QB3$5$;$k$h$&$K$7$?(B; $BA*Br$5$l$F$$$J$$%U%l!<%`$G$OI=<($NJQ99$r9T$J$o$J$$$h$&$K$7$?!#(B 1999-11-15 NAKAJI Hiroyuki * Makefile: elisp $B$N%9%/%j%W%H$rJ,N%$7$F(B eval.el.in $B$K0\@_$7$?!#(B * (eval.el.in): $B?7@_$7$F(B elisp $B$N%9%/%j%W%H$r<}$a$?!#(B 1999-11-12 Ken'ichi OKADA * x-face-xmas.el (x-face-xmas-extract-x-face-fields-to-glyphs, x-face-xmas-display-x-face): Animated X-Face $B$N$?$aJQ99$7$?!#(B (x-face-xmas-extract-x-face-fields-internal, x-face-xmas-pack-icons, x-face-xmas-display-x-face-animate): $B?7@_$7(B $B$?!#(B * x-face.el (x-face-extract-x-face-fields-to-icons, x-face-extract-x-face-fields-to-single-icons-buffer, x-face-extract-x-face-fields-to-pictures, x-face-save-files): Animated X-Face $B$N$?$aJQ99$7$?!#(B 1999-11-15 Katsumi Yamaoka * X-Face: Version 1.3.6.3 was released. 1999-11-15 Katsumi Yamaoka * x-face.el (x-face-extract-x-face-fields-to-icons): RGB $B$r@k8@$7$F(B $B$$$k$K$b$+$+$o$i$:(B X-Face $B%U%#!<%k%I$N?t$,@5$7$/$J$$>l9g$NLa$jCM$r!"(B $B2#$KJB$Y$?%^%k%A(B X-Face $B$K$7$?!#(B 1999-11-12 Ken'ichi OKADA * x-face.el (x-face-extract-x-face-fields-to-icons): RGB $B$r@k8@$7$F(B $B$$$k$K$b$+$+$o$i$:(B X-Face $B%U%#!<%k%I$N?t$,@5$7$/$J$$>l9g$NLa$jCM$N(B $B7A<0$r=$@5$7$?!#(B 1999-11-11 Katsumi Yamaoka * X-Face: Version 1.3.6.2 was released. 1999-11-11 Katsumi Yamaoka * x-face.el: bitmap-mule $B$r;H$C$F%m%4$rI=<($9$k5!G=$,F/$+$J$/$J$C$F(B $B$$$?$N$r=$@5$7$?!#$^$?(B x-face.elc $B$K%;!<%V$9$k%m%4$r=>Mh$N(B bitmap chars $B$NBe$o$j$K%G%3!<%I$7$?(B xbm $B$N%G!<%?$KJQ99$7$F(B Emacs 20.4.91 $B$G$bF0:n$9$k$h$&$K$7$?!#(B 1999-11-10 Katsumi Yamaoka * X-Face: Version 1.3.6.1 was released. 1999-11-10 Katsumi Yamaoka * README.ja: XEmacs $B$G(B gnus $B$r;H$&>l9g$N@_DjJ}K!$rJQ99$7$?!#(B * x-face-xmas.el (x-face-xmas-replace-gnus-article-display-x-face, x-face-xmas-replace-gnus-article-display-x-face): $BGQ;_$7$?!#(B (x-face-xmas-mime-highlight-headers): $B4JN,2=$7!"(Bgnus $B$G$O2?$b$7$J(B $B$$$h$&$K$7$?!#Be$o$j$K(B `gnus-article-x-face-command' $B$K(B `x-face-xmas-display-x-face' $B$r@_Dj$9$kI,MW$,$"$k!#(B (x-face-xmas-display-x-face): From $B%U%#!<%k%I$,L5$$(B gnus $B$N5-;v%P%C(B $B%U%!$G$bF0:n$9$k$h$&$K$7$?!#(B 1999-09-27 Katsumi Yamaoka * X-Face: Version 1.3.6 "Yellow Submarine (remix)" was released. 1999-09-27 TSUMURA Tomoaki * x-face.el (x-face-expand-file-name): $B@55,I=8=$K(B "^" $B$rDI2C$7$?!#(B 1999-09-09 Katsumi Yamaoka * X-Face: Version 1.3.5.5 was released. 1999-09-09 Katsumi Yamaoka * x-face.el: compile $B;~$K(B gnus-sum $B$r(B load $B$7$F!"(Bmacro `gnus-summary-article-number' $B$NDj5A$r;2>H$9$k$h$&$K$7$?!#$b$7(B compile $B;~$K(B gnus-sum $B$N(B load $B$K<:GT$7$?>l9g$O!" * X-Face: Version 1.3.5.4 was released. 1999-09-09 Katsumi Yamaoka * README.ja: Wanderlust $B$N=i4|@_Dj$NNc$rDI2C$7$?!#(B * x-face-xmas.el (x-face-xmas-wl-display-x-face): `x-face-xmas-mew-display-x-face' $B$+$i2~L>$7!"(B `wl-highlight-x-face-func' $B$NCM$K%;%C%H$7$?!#(B x-face-xmas-mew-display-x-face $B$O(B alias $B$H$7$FB8B3!#(B 1999-06-24 Katsumi Yamaoka * X-Face: Version 1.3.5.3 was released. 1999-06-24 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-display-x-face): gnus $B$N(B article $B%P%C(B $B%U%!$G;H$&>l9g$O!"85$N(B X-Face $B%U%#!<%k%I$r1#$5$J$$$h$&$K$7$?!#$3$l(B $B$O(B gnus $B$,9T$J$&$Y$-;E;v$G!"$7$+$b%U%#!<%k%I$N:G8e$N2~9T$^$G$b4^$`(B text property $B$rIU2C$7$F$7$^$&$H!"(Bgnus $B$,%X%C%@$r(B sort $B$9$k$H$-$K2~(B $B9TJ8;z$@$1$,(B sort $B$NBP>]$K$J$i$J$$$N$G!"$*$+$7$JI=<($,9T$J$o$l$k>l(B $B9g$,$"$k!#(B * README.ja: 6. XEmacs. $B$N9`$K(B T-gnus $B$G;H$&>l9g$N@_DjNc$rDI2C$7$?!#(B (FSF Emacsen $B$G$O(B x-face-mule $B$GI=<($7$^$7$g$&!#(B:-) 1999-06-14 Katsumi Yamaoka * X-Face: Version 1.3.5.2 was released. 1999-06-14 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-display-x-face): extent property $B$K(B duplicable = t $B$rDI2C$7$?!#(B 1999-06-11 Katsumi Yamaoka * X-Face: Version 1.3.5.1 was released. 1999-06-11 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-display-x-face): `gnus-article-x-face-command' $B$K@_Dj$7$F;H$&>l9g$K!"F1$85-;v$KBP$7(B $B$FJ#?t2s8F$P$l$J$$$h$&$KBP:v$7$?!#(B 1999-03-11 Katsumi Yamaoka * X-Face: Version 1.3.5 "I Me Mine" was released. 1999-03-11 Katsumi Yamaoka * Makefile: $B?7@_$7$?!#(B * README-Makefile.ja: $B?7@_$7$?!#(B * x-face.el: VM $B$d(B Mew $B$N(B macro $B$r!"%3%s%Q%$%k;~$K(B load $B$9$k$h$&$K(B $B$7$?!#(B * x-face-xmas.el (x-face-xmas-mime-highlight-headers): Single part $B$G(B image $B$@$1$r4^$`%a%C%;!<%8$r(B XEmacs $B$N(B gnus $B$G(B inline $BI=<($9$k$H(B $B$-$K!"(Bimage $B$,(B header $B$N2<$KI=<($5$l$k$h$&$K=$@5$7$?!#$=$NB>$K!"JQ(B $B?t$r(B custom $B$GJQ99$9$k>l9g$N$?$a$N(B selection $B$NDI2C$J$I!#(B 1998-10-21 Katsumi Yamaoka * X-Face: Version 1.3.4 "Hello Goodbye" was released. 1998-10-21 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-mime-highlight-headers): $B$K$*$$$F!"(B gnus $B$G5-;v$rFI$`$H$-$N(B Date $B$NI=<($r(B local $B$K6/@)$9$k$3$H$r$d$a$?!#(B $B=>Mh$N$d$jJ}$G$O?7$7$$(B FLIM $B$d(B SEMI $B$r;H$&>l9g$K(B `mime-message-structure' $B$rGK2u$7$F$7$^$&$?$a!#$=$&$$$&$3$H$O(B `gnus-article-display-hook' $B$K(B `gnus-article-date-local' $B$r%f!<%6$,(B `add-hook' $B$7$F9T$J$&$Y$-!#(B 1998-10-08 Katsumi Yamaoka * X-Face: Version 1.3.3 "Good Night" was released. 1998-10-08 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-replace-x-face-function-for-semi): SEMI, WEMI 1.9 $B$K$bBP1~$5$;$?!#(B * x-face.el: `require' $B$K<:GT$7$?$H$-$N%(%i!<%7%0%J%k$O(B`file-error' $B$G$O$J$$$3$H$K5$IU$-!"(B`condition-case' $B$N * X-Face: Version 1.3.2 "The Fool On The Hill" was released. 1998-07-15 OKUNISHI Fujikazu * x-face.el (x-face-wl-get-article): `wl-summary-redisplay' $B$r(B `wl-summary-set-message-buffer-or-redisplay' $B$KJQ99$7$?!#(B 1998-07-15 Katsumi Yamaoka * x-face-xmas.el: batch mode $B$N(B XEmacs $B$G%3%s%Q%$%k$9$k>l9g$r9MN8$7(B $B$F!"(B`device-type' $B$NLa$jCM$,(B `stream' $B$@$C$?$i(B `x-face-xmas-splash' $B$r(B eval $B$7$J$$$h$&$K$7$?!#KLL\$5$s(B $B$N$4;XE&$K(B $B$h$k!#(B 1998-07-07 Katsumi Yamaoka * X-Face: Version 1.3.1 "Every Little Thing" was released. 1998-07-07 Katsumi Yamaoka * x-face.el (x-face-insert): `mew-draft-mode' $B$N%P%C%U%!$Ge$K(B insert $B$9$k$h$&(B $B$K$7$?(B; `mew-marker-header-end' $B$,B8:_$7$?$i(B insert $B8e$K@5$7$$CM$K(B $B=$@5$9$k$h$&$K$7$?!#(B 1998-07-06 Katsumi Yamaoka * X-Face: Version 1.3.0 "Day Tripper" was released. 1998-07-06 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-force-display-x-face): $B?7@_$7$?!#FbMF(B $B$O(B (x-face-xmas-display-x-face 1)$B!#(B * x-face.el (x-face-save-or-view-method-alist, x-face-wl-get-article): Wanderlust $BMQ$N(B save, view method $B$rDI2C$7(B $B$?!#(B (x-face-define-menu): menu bar $B$rI=<($9$k$+$I$&$+$O%f!<%6$N0U;V$r(B $BB:=E$7!"I=<($7$J$$>l9g$O(B menu $B$r:n$k$@$1$NF0:n$K$7$?!#(B (x-face-define-menu): $BF1>e!#(B 1998-06-18 Katsumi Yamaoka * X-Face: Version 1.3-b10 "Can't Buy Me Love" was released. 1998-06-18 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-replace-x-face-function-for-semi): SEMI $B$N(B version $BH=Dj$r=>Mh$N(B `mime-module-version' $B$h$jM%@h$7$F(B `mime-user-interface-version' $B$r;2>H$9$k$h$&$K$7$?!#(B * x-face.el (x-face-snatch-x-face-mule-original-x-face-fields): `x-face-mule-original-x-face-fields' $B$K2C$($F!"(Bx-face-mule $B$N;q8;$G(B $B$"$k(B `x-face-mule-original-from-field' $B$,B8:_$9$k>l9g$K$OMxMQ$9$k$h(B $B$&$K$7$?!#5l(B x-face-mule $B$N(B x-face-mule: $B$H$$$&(B prefix $B$K$bBP1~$7$F(B $B$$$k!#(B 1998-06-17 Katsumi Yamaoka * X-Face: Version 1.3-b9 "Baby's In Back" was released. 1998-06-17 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-mime-highlight-headers): SEMI 1.7 $BBP(B $B1~$N$?$a(B original major-mode $B$r(B `mime-raw-buffer' $B$+$iF@$k$h$&$K$7(B $B$?!#(B (x-face-xmas-replace-x-face-function-for-semi): SEMI 1.7 $BL$K~$H(B 1.7 $B0J>e$G;H$&4X?t$rJL!9$K:n@.$7$?!#(B1.7 $B0J>e$N>l9g$O(B `mime-display-header-hook' $B$NFbMF$NCV$-49$($r9T$J$&!#(B 1998-05-03 Katsumi Yamaoka * X-Face: Version 1.3-b8 "And Your Bird Can Sing" was released. 1998-05-03 Katsumi Yamaoka * x-face.el: `x-face-mule:original-x-face-fields' $B$r;2>H$7$F(B `x-face-save' $B$r9T$J$&$H%U%!%$%kL>$,(B nobody $B$K$J$C$F$7$^$&%P%0$r=$(B $B@5$7$?!#(B 1998-04-20 Katsumi Yamaoka * X-Face: Version 1.3-b7 "Zexy Sedie" was released. 1998-04-20 OKUNISHI Fujikazu * x-face.el: `gnus-show-all-headers' $B$H(B `gnus-show-mime' $B$rITMQ0U$K(B $B;2>H$7$F$$$kItJ,$r=$@5$7$?!#(B 1998-04-17 Katsumi Yamaoka * X-Face: Version 1.3-b6 "Yellow Submarine" was released. 1998-04-17 Katsumi Yamaoka * x-face-xmas.el (x-face-xmas-splash): `x-face-inhibit-loadup-splash' $B$r(B non-nil $B$K$9$k$3$H$K$h$C$F!"(B x-face-xmas.elc $B$,(B load $B$5$l$k$H$-$N(B splash $B2hLL$NI=<($rM^@)$G$-$k(B $B$h$&$K$7$?!#(B * x-face.el: `bitmap' $B$,;H$($k>l9g$O(B Emacs 20.2 $B$H(B Mule 2.3 $B$G$b(B x-face.elc $B$,(B load $B$5$l$k$H$-$K(B splash $B2hLL$rI=<($9$k$h$&$K$7$?!#JQ(B $B?t(B `x-face-inhibit-loadup-splash' $B$r(B non-nil $B$K$9$k$3$H$K$h$C$FI=<((B $B$NM^@)$,2DG=(B; $B74;3$5$s$N$4;XE&$K$h$j(B custom $B$r(B `eval-and-compile' $B$G8F$V$h$&$K$7(B $B$?(B; $BITMW$J$N$G(B `mew-field-visible' $B$J$I$NA`:n$r$d$a$?(B; `gnus-original-article-buffer' $B$,$"$k(B Gnus $B$G$O!"(Bsave $B$^$?$O(B view $B$N$H$-(B `gnus-show-all-headers' $B$H(B `gnus-show-mime' $B$NCM$rA`:n$7$J(B $B$$$h$&$K$7$?!#(B 1998-04-15 Katsumi Yamaoka * X-Face: Version 1.3-b5 "TaXman" was released. 1998-04-15 Katsumi Yamaoka * x-face.el: $B74;3$5$s(B $B:n$K$h$k(B x-face-mule v0.14 $B$G?7@_$5$l$?JQ?t(B `x-face-mule:original-x-face-fields' ($B%P%C%U%!(B $B%m!<%+%kJQ?t$G!"Cj=P$7$?(B X-Face: $B%U%#!<%k%I$,4^$^$l$k(B) $B$,B8:_$9$k>l(B $B9g$O@Q6KE*$KMxMQ$7$F!"%S%C%H%^%C%W%$%a!<%8$KJQ49$5$l$F$7$^$C$?8e$G(B $B$b(B save $B$^$?$O(B view $B$,$G$-$k$h$&$K$7$?!#B.EY$N8~>e$b4|BT$G$-$k!#(B Gnus, MH-E, Mew, RMAIL, VM, cmail $B$N3F(B MUA $B$GBP1~(B; $B=>Mh(B Gnus $B$G$O(B save $B$^$?$O(B view $B$NA08e$GI,$:(B `gnus-summary-show-article' $B$re!#(B 1998-03-26 Katsumi Yamaoka * X-Face: Version 1.3-b4 "We Can Work It Out" was released. 1998-03-26 Katsumi Yamaoka * x-face.el (x-face-read-file-name): $B1|@>$5$s(B $B$N$4;XE&$K$h$C$F(B Mule 2.3@19.28 $B$N(B `read-file-name' $B$,(B buggy $B$G$"$k$3$H$,$o$+$C$?$N$G!"$3$N%^%/%m$GFH(B $B<+$KDj5A$9$k$h$&$K$7$?!#(B 1998-03-17 Katsumi Yamaoka * X-Face: Version 1.3-b3 "She's LeaVing Home" was released. 1998-03-17 Katsumi Yamaoka * x-face.el (put-alist): $BL5$$>l9g$NDj5A$rDI2C$7$?(B; (eval-and-compile, eval-when-compile): Nemacs $BMQ$K%^%/%mDj5A$rDI2C(B $B$7$?!#(B * x-face.el: $B%G%#%l%/%H%j6h@Z$jJ8;z$r(B "/" $B$KE}0l!#(B(1.3b1 $B0JA0$KLa$7(B $B$?!#(B) * x-face-xmas.el: $BF1>e!#(B 1998-03-17 Katsumi Yamaoka * x-face.el: $B8E$$(B custom $B$N$?$a$N(B `defgroup' $B$H(B `defcustom' $B$N%^%/(B $B%mDj5A$r(B `eval-when-compile' $B$G0O$s$@!#(B 1998-03-16 Katsumi Yamaoka * x-face-xmas.el (mime-preview-original-major-mode): SEMI 1.1.0 $B$K(B $BBP1~$7$F(B `mime-view-original-major-mode' $B$NBe$o$j$K;2>H$9$k$h$&$K$7(B $B$?!#(B (mime-preview-x-face-function-use-highlight-headers): SEMI 1.1.0 $B$K(B $BBP1~$7$F(B `mime-preview/x-face-function-use-highlight-headers' $B$NBe(B $B$o$j$K;2>H$9$k$h$&$K$7$?!#(B 1998-03-10 Katsumi Yamaoka * X-Face: Version 1.3-b2 "Back In The U.S.S.R" was released. 1998-03-10 Katsumi Yamaoka * x-face.el: XEmacs $BMQ$NJQ?t$rCM(B nil $B$GDj5A$7$?!#(B (x-face-tmp-file-name-format): $BDEM8$5$s(B $B$N$4;XE&$K$h$j!"(BWin-NT $B$N>l9g$K@8@.$9(B $B$k%U%!%$%kL>$N%G%#%l%/%H%j6h@Z$jJ8;z$K(B "/" $B$G$O$J$/$F(B "\" $B$r;H$&$h(B $B$&$K$7$?!#(BEmacsen $B$,D>@\A`:n$9$k%U%!%$%k$NL>A0$G$O!"=>MhDL$j(B "/" $B$r;H$&!#(B 1998-03-09 Katsumi Yamaoka * X-Face: Version 1.3-b1 "Ticket To Ride" was released. 1998-03-09 KOSEKI Yoshinori * x-face.el (x-face-view-asynchronous-function-for-win95): $B=>Mh$OI=(B $B<(3+;O$7$F$+$iJQ?t(B `x-face-viewer-startup-time' $B$G@_Dj$5$l$?IC?t$@(B $B$1BT$C$F%$%a!<%8%U%!%$%k>C5n$7$F$$$?$,!"(Bsentinel $B$rN)$F$FI=<(%W%m%;(B $B%9$,%$%a!<%8%U%!%$%k$rFI$s$@$3$H$r8!=P$7$F>C5n$9$k$h$&$K$7$?!#$3$N(B $B7k2L(B Win $B$G$O(B `x-face-viewer-startup-time' $B$GBT$A;~4V$ND4@0$r$9$kI,(B $BMW$,L5$/$J$C$?!#(B 1997-12-02 Katsumi Yamaoka * x-face-logo.xpm: $B:n$jD>$7$?!#(B * x-face-beta-logo.xpm: $BF1>e!#(B 1997-11-21 Katsumi Yamaoka * x-face-xmas.el: XEmacs $B$NAw?.%P%C%U%!$GI=<($9$k%b%N%/%m%$%a!<%8$N(B $B?'$,!"(Bdialog box $BMQ$N(B face $B$HF1$8$K$J$C$F$7$^$&%P%0$r=$@5$7$?(B; XEmacs $B$N(B dialog box $B$K(B [Ok] [Cancel] $B%\%?%s$,IU$+$J$$%P%0$r=$@5$7(B $B$?!#(B 1997-11-18 OKUNISHI Fujikazu * x-face.el (x-face-mew-get-article): Message/Rfc822 $B$J%Q!<%H$K$bBP(B $B1~$5$;$?!#(B(tm/SEMI-MUA $B$G$b$G$-$k$h$&$K$J$k$H$$$$$J(B > $BAHD9(B:-) 1997-11-18 Katsumi Yamaoka * x-face-xmas.el: $B?7@_$7!"(BXEmacs $B@lMQ$N%W%m%0%i%`$J$I$r<}$a$k$h$&$K(B $B$7$?!#(B * x-face.el: XEmacs $B$N%a%K%e!<%P!<=P8=0LCV$rJQ99$7$?!#(B 1997-10-25 Katsumi Yamaoka * X-Face: Version 1.2.9 "Strawberry Fields Forever" was released. 1997-10-25 Katsumi Yamaoka * x-face.el: X-Face $B%U%#!<%k%I$NKvHx$K(B text-property $B$H$7$F(B icon $B$N(B $B%G!<%?$rIU2C$9$k$N$r$d$a!"Be$o$j$K(B X-Face-Type $B%U%#!<%k%I$NKvHx$K%U%!(B $B%$%kL>$r(B text-property $B$H$7$FIU2C$9$k$h$&$K$7$?!#(B `x-face-xmas-display-x-face' $B$NJ}$r85$KFs$D$N%-%c%C%7%e$r;2>H$9$k!#(B (x-face-encode): $B$3$N4X?t$G$b%U%!%$%k%-%c%C%7%e$r;2>H(B/$BEPO?$9$k$h$&(B $B$K$7$?(B; $B;{@>$5$s$N860F$K$h$j!"%X%C%@%U%#!<%k%I$H%$%a!<%8$NAH$_$G$b%-%c%C%7%e(B $B$9$k$h$&$K$7$?!#$H$j$"$($:=>Mh$N$b$N$r%U%!%$%k%-%c%C%7%e!":#2s?7@_(B $B$7$?$b$N$r%U%#!<%k%I%-%c%C%7%e$H8F$V$3$H$K$9$k!#(BXEmacs $B$OC10l$N(B X-Face $B%U%#!<%k%I$r%$%a!<%8$H$7$FI=<($9$k$N$OB.$$$N$G!"%U%#!<%k%I(B $B%-%c%C%7%e$O%+%i!<(B/$B%^%k%A(B X-Face $B$K8B$C$F;HMQ$9$k(B; $B%$%a!<%8$N%-%c%C%7%e$r%W%j%A%c!<%8$9$k4X?t$r:n$C$?(B; XEmacs $B$N(B dialog box $B$G;H$($J$$%U%!%$%k$r%^%&%9$GA*Br$G$-$J$$$h$&(B $B$K$7$?!#(B 1997-10-23 Katsumi Yamaoka * X-Face: Version 1.2.9-b3 "Rocky Raccoon" was released. 1997-10-23 Katsumi Yamaoka * x-face.el: XEmacs $B$G%a%K%e!<$+$i(B Encode $B$^$?$O(B Insert $B$rl9g$K!"(Bdialog box $B$r<+F0%9%/%m!<%k$5$;$FBT;~4V$N%$%i%$%i$r>/$72r>C(B $B$7$?!#(B:-) $B$^$?#22sL\0J9_$N(B dialog box $B$NI=<($rB.$a$?(B; XEmacs $B$G;H$&(B Mew 1.92b7 $B$N$?$a$K(B X-Face $B$rI=<($9$k$?$a$N4X?t$r:n$C(B $B$?!#(B 1997-10-21 Katsumi Yamaoka * X-Face: Version 1.2.9-b2 "Penny Lane" was released. 1997-10-21 Katsumi Yamaoka * x-face.el: XEmacs $B$G;H$&(B Mew 1.92b5 $B$KBP1~$9$k$?$a!"4X?t72$r@0M}(B $B$7$?!#(B (x-face-compressor, x-face-compressor-program-list): $B%U%!%$%k$N05(B $B=L?-D9$K(B bzip2 $B$r;H$($k$h$&$K$7$?!#;M$D$N%f!<%6JQ?t(B `x-face-gzip-*' $B$rGQ;_$7!"Be$o$j$K$3$l$i$NJQ?t$r?7@_$7$?$,!"$7$P$i$/$N4V$O5l@_Dj$b(B $BM-8z$K$9$k!#(B (x-face-call-process-is-evil): $B:o=|$7$?!#(B (x-face-define-menu): $BL5>r7o$K%a%K%e!<%P!<$r@8$+$9$h$&$K$7$?!#(B 1997-10-16 Katsumi Yamaoka * X-Face: Version 1.2.9-b1 "Ob-la-di,Ob-la-da" was released. 1997-10-16 Katsumi Yamaoka * x-face.el: $B%a%K%e!<$+$i(B Encode $B$^$?$O(B Insert $B$rl9g$K!"(B XEmacs $B$G$O(B dialog box $B$K%$%a!<%8$rI=<($9$k$h$&$K$7$?!#=i$a$Fl9g$O!"$=$N%U%!%$%k$K$D$$$F(B $B$@$1%$%a!<%8%G!<%?$r:n$jD>$9!#$^$?!"(BXEmacs $B0J30$N(B Emacsen $B$G$O%U%!(B $B%$%k$N8uJd0lMw$rI=<($9$k$h$&$K$7$?(B; 19.28 $B0J2<$N(B Emacsen $B$KB8:_$7$J$$4X?t$NDj5A$K(B `defmacro' $B$r;H$&$N(B $B$r$d$a$?!#(B (x-face-xmas-display-x-face): $B%$%s%?%i%/%F%#%V$K;H$&>l9g$K!"$"$i$+(B $B$8$a@_Dj$7$?(B region $B$r%$%a!<%8$NI=<((B/$BHsI=<($NBP>]$K$9$k$N$O(B `zmacs-regions' $B$NCM$,(B non-nil $B$N>l9g$@$1$K8BDj$7$?!#(B 1997-10-14 Katsumi Yamaoka * X-Face: Version 1.2.8 "Norwegian Wood" was released. 1997-10-14 Katsumi Yamaoka * x-face.el: byte-comp $B;~$K(B warning $B$r@E$+$K$9$kJ}K!$rJQ99(B; `defcustom' $B$N(B :type $B$r@_Dj!#(B 1997-10-09 Katsumi Yamaoka * X-Face: Version 1.2.8-b5 "Norwegian Wood" was released. 1997-10-09 Katsumi Yamaoka * x-face.el (x-face-define-menu): $B%a%K%e!<$,;H$($k$h$&$K$7$?!#E,@Z(B $B$J(B HOOK $B$K(B add-hook $B$7$F;H$&!#(B (x-face-image-file-directory-for-save): $B%$%a!<%8%U%!%$%k$r%;!<%V$9(B $B$k$?$a$N%G%#%l%/%H%jL>$r;XDj$9$k$?$a$NJQ?t$H$7$F?7@_$7$?!#%G%U%)%k(B $B%HCM$O=>Mh$N(B `x-face-image-file-directory' $B$HF1$8!#(B (x-face-insert): `x-face-add-x-face-version-header' $B$,(B non-nil $B$G(B $B$+$D(B `select-xface-version' $B$,B8:_$7$?$i!"(BX-Face-Version $B%U%#!<%k(B $B%I$K(B `select-xface-version' $B$NJ8;zNs$bA^F~$9$k$h$&$K$7$?!#(B (x-face-xmas-highlight-headers): highlight-headers $B$rCV$-49$($k:](B $B$K(B `x-face-xmas-like-highlight-headers' $B$r(B t $B$K94B+$9$k$N$r$d$a$?!#(B (x-face-find-file-no-conversion): gzip $B$5$l$?%U%!%$%k$+$I$&$+$r(B magic $B$GH=CG$9$k$h$&$K$7$?!#(B `defcustom' $B$r:NMQ!#;H$($J$$(B Emacsen $B$G$O(B `defvar' $B$GCV$-49$(!#(B 1997-10-03 Katsumi Yamaoka * X-Face: Version 1.2.8-b4 "Martha My Dear" was released. 1997-10-03 Katsumi Yamaoka * METHOD.ja: $B%+%i!<(B/$B%^%k%A(B X-Face $B$N5,3J=q$U$&FI$_J*$H$7$FE:IU$7$?!#(B * x-face.el (x-face-xmas-mime-highlight-headers): $B%^%k%A%Q!<%H$G%U%)(B $B%o!<%I$5$l$?%a%C%;!<%8$N(B Date: $B$,@5$7$/I=<($5$l$k$h$&$K$7$?(B; $B%"!<%F%#%/%k$+$i(B From $B%U%#!<%k%I$rCj=P$9$k$H$-$N%P%0$r=$@5!#(B 1997-09-26 Katsumi Yamaoka * X-Face: Version 1.2.8-b3 "Lovely Rita" was released. 1997-09-26 Katsumi Yamaoka * x-face.el (x-face-insert): $Bl9g$K!"(B`mew-draft-mode-hook' $B$K(B (x-face-xmas-display-x-face 1) $B$rDI2C$9$kI,MW$,L5$/$J$C$?!#%$%a!<(B $B%8$NI=<($OCV$-49$($?4X?t(B `highlight-headers' $B$G9T$J$&!#(B (x-face-xmas-highlight-headers): `highlight-headers' $B$rCV$-49$($k(B $B:]$K!"%*%j%8%J%k$N(B `highlight-headers' $B$,IU$1$?(B invisible $B$J(B extent $B$r:o=|$9$k$h$&$K$7$?!#(B (x-face-xmas-highlight-headers): XEmacs $B$N(B `mew-draft-mode' $B$G$O(B `highlight-headers' $B$rA0$K(B `x-face-insert' $B$rH$9$k$h$&$K$7$?!#(B (x-face-xmas-cmail-display-x-face): XEmacs $B$N(B cmail $B$G%a!<%k$rFI$`(B $B$H$-$K(B X-Face $B$rI=<($9$k$?$a$N4X?t$H$7$F:n@.$7$?!#(B `cmail-show-contents-after-hook' $B$K(B `add-hook' $B$7$F;H$&!#(B cmail $B$G%a%C%;!<%8%X%C%@$r * X-Face: Version 1.2.8-b2 "Kansas City" was released. 1997-09-20 Katsumi Yamaoka * x-face.el (x-face-encode): encoded string $B$N%j%9%H$rJV$9$h$&$K$7(B $B$?!#(B (x-face-encode, x-face-insert): $B%$%s%?%i%/%F%#%V$K8F$P$l$?$H$-$K!"(B RGB $B$+$I$&$+$o$+$i$J$+$C$?$i?R$M$k$h$&$K$7$?!#(B $BJQ?t(B `highlight-headers-hack-x-face-p' $B$,B8:_$7$FCM$,(B nil $B$@$C$?$i!"(B $B>l9g$K$h$i$:%$%s%i%$%sI=<($7$J$$$h$&$K$7$?!#(B (x-face-default-encoded-string, x-face-empty-x-face-encoded-string): $BITMW$K$J$C$?$N$G$r:o=|$7$?!#(B (x-face-xbm-to-x-faces): $B;H$o$l$J$/$J$C$F$$$?$N$G:o=|$7$?!#(B (x-face-xmas-replace-x-face-function-for-tm): $BD9C+It$5$s(B $B$N$4;XE&$K$h$j!"(B`require' $B$7$F$$$?(B `mime-image' $B$r(B `tm-image' $B$KD>$7$?!#(B 1997-09-17 Katsumi Yamaoka * X-Face: Version 1.2.8-b1 "Julia" was released. 1997-09-17 Katsumi Yamaoka * x-face.el (x-face-xmas-like-highlight-headers): $B;{@>$5$s(B $B$N$4;XE&$rr7o$G%*%j%8%J%k$HF1$8;EMM$K$J$k!#(B (x-face-xmas-replace-highlight-headers): $B;{@>$5$s$N$4;XE&$K$h$j(B `highlight-headers-hack-x-face-p' $B$,(B nil $B$N$H$-$OCV$-49$($i$l$?4X(B $B?t(B `highlight-headers' $B$G$b%$%s%i%$%sI=<($7$J$$$h$&$K$7$?!#(B XEmacs $B$G%$%s%i%$%sI=<($9$k$H$-$K(B invisible $B$K$9$k(B X-Face $B%U%#!<%k(B $B%I$NNN0h$r=$@5!#(B 1997-09-11 Katsumi Yamaoka * X-Face: Version 1.2.7 "I Feel Fine" was released. 1997-09-10 Katsumi Yamaoka * X-Face: Version 1.2.7-b11 "Honey Pie" was released. 1997-09-10 Katsumi Yamaoka * x-face.el: Nemacs $B$N$?$a$K(B `get-buffer-window' $B$NBhFs0z?t$r;H$o$J(B $B$$$h$&$K$7$?(B; Nemacs $B$N(B cl.el $B$GDj5A$5$l$F$$$k4X?t(B `mod' $B$N;EMM$,B>$N(B Emacsen $B$H(B $B0[$J$k$?$a!"Be$o$j$K(B `%' $B$r;H$&$h$&$K$7$?(B; `gnus-article-display-x-face' $B$rCV$-49$($k$?$a$N4X?t$r:n@.$7$?!#(B (x-face-view, x-face-save): $BF0:n3NG'$N$?$a$K!"0z?tIU$-$G;H$&$H%+%i!<(B $B%$%a!<%8$N%U%)!<%^%C%H$rA*Br$G$-$k$h$&$K$7$?!#(B tm/SEMI $B$N(B `mime-preview/x-face-function-use-highlight-headers' $B$r(B XEmacs $BMQ$KCV$-49$($k$?$a$N4X?t$r:n@.$7$?!#(B (x-face-xmas-display-x-face): $BA4LLE*$K=q$-49$($?!#(B XEmacs $BMQ$K(B `highlight-headers' $B$rCV$-49$($k$?$a$N4X?t$r:n@.$7$?!#(B (x-face-encode, x-face-insert): $BA4LLE*$K=q$-49$($?!#(B X-Face $B%U%#!<%k%I$r(B uncompface $B$7$?$H$-!"%U%#!<%k%I$N:G8e$K(B icon $B$N%G!<%?$r(B text-property $B$H$7$F;D$7$F$*$/$h$&$K$7$?!##22sL\0J9_$N(B x-face-{save,view} $B$G$O(B umcompface $B$r8F$P$J$$$N$G>/$7B.$/$J$k!#$?(B $B$@$7(B Nemacs $B$G$O8z2LL5$7!#(B (x-face-view-asynchronous): $BCM$,(B nil $B$N$H$-!"(Bviewer $B$KL5JQ49$G%$%a!<(B $B%8%G!<%?$rEO$9$h$&$K$7$?!#(B 1997-09-04 Katsumi Yamaoka * X-Face: Version 1.2.7-b10 "Good Day Sunshine" was released. 1997-09-04 Katsumi Yamaoka * x-face.el: 48x48 $B$h$jBg$-$J%+%i!<(B X-Face $B$r@5$7$/:n$l$k$h$&$K$7$?!#(B $B8=>u$G$OBg$-$J%+%i!<(B X-Face $B$O!"(BRGB $B$KJ,2r$7$?%$%a!<%8%G!<%?$r=DJ}(B $B8~$KO"7k$7$?(B xbm $B%U%!%$%k$K$7$J$1$l$P$J$i$J$$$,!">-Mh$O(B xpm $B$d(B bmp $B$+$iD>@\(B X-Face $B$r:n$k$h$&$K$7$?$$(B; Netscape $B$GI=<($G$-$J$$$?$a!"(Bxbm $B$r:n$k$H$-(B "/* X-Face-Type: MONO */" $B$H$$$&%3%a%s%H$rIU$1$k$N$r$d$a$?(B; $B0l;~E*$K:n$k%$%a!<%8%U%!%$%k$NL>A0$K$b3HD%;R(B -- .xbm .xpm .bmp -- $B$rIU$1$k$h$&$K$7$?(B; XEmacs $B8GM-$N4X?t(B `int-to-char' $B$r;H$o$J$$$h$&$K$7$?!#(B 1997-09-03 Katsumi Yamaoka * X-Face: Version 1.2.7-b9 "Fixing A Hole" was released. 1997-09-03 Katsumi Yamaoka * x-face.el (x-face-save): $B$3$N4X?t$rI|3h!#=>Mh$O4{B8$N%U%!%$%k$K>e(B $B=q$-$9$k$+$I$&$+$r?R$M$F$$$?$,!":#2s$+$i%f%K!<%/$JL>A0$G$9$Y$F%;!<(B $B%V$7$F$7$^$&$h$&$K$7$?!#(B (x-face-image-file-directory): $B%U%!%$%k$r%;!<%V$9$k%G%#%l%/%H%j$r;X(B $BDj$9$kJQ?t$H$7$F=>Mh;H$C$F$$$?JQ?t(B `x-face-xbm-file-directory' $B$r2~(B $BL>$7$?!#(B 1997-09-03 KOSEKI Yoshinori Katsumi Yamaoka * x-face.el: $B%+%i!<(B X-Face $B$r(B BMP $B%U%)!<%^%C%H$K%(%s%3!<%I$9$k4X?t(B $B$r?7@_!#(B 1997-09-03 Katsumi Yamaoka * x-face.el: $B%+%i!<(B X-Face $B$r(B XPM $B%U%)!<%^%C%H$K%(%s%3!<%I$9$k4X?t(B $B$r?7@_!#(B (x-face-view): 4$BG\@#I=<(5!G=$r:o=|!#(B (x-face-ascii-view): $BI|3h!#$9$Y$F(B 48x48 $B%5%$%:$GI=<($9$k!#(B 1997-08-30 Katsumi Yamaoka * X-Face: Version 1.2.7-b8 "Eleanor Rigby" was released. 1997-08-30 Katsumi Yamaoka * x-face.el: $B%+%i!<(B/$B%^%k%A(B X-Face $BBP1~$N$?$a$N4pK\E*$J4X?t72$r@0Hw(B $B$9$kBg5,LO$JJQ99$r9T$J$C$?!#(B`x-face-save' $B$H(B `x-face-ascii-view' $B$OL$BP1~!#%P%0$b$?$/$5$s$"$k$O$:$G!"$H$F$b?MA0$K=P$;$J$$!#(B(^^;;) 1997-08-30 Tatsuya Ichikawa Katsumi Yamaoka * x-face.el (x-face-call-process-is-evil): $BJQ?t$r?7@_(B ($B%G%U%)%k%H(B $B$O(B nil)$B!#(BNon-nil $B$K$9$k$H!"(Bcompface $B%3%^%s%I$r(B `call-process' $B$NBe(B $B$o$j$K(B `start-process' $B$G8F$V$h$&$KJQ99$7$?!#$3$N>l9g(B `x-face-temp-file' $B$G@_Dj$5$l$kL>A0$N%U%!%$%k$r0l;~E*$K:n@.$9$k!#(B Meadow(alpha2.00) $B$N(B `call-process' $B$,K~B-$KF0:n$7$J$$LdBj$N;CDjBP(B $B:v$G!">-Mh$O:o=|$9$kM=Dj!#(B 1997-08-30 Katsumi Yamaoka * x-face.el (x-face-Y-or-n-p): $B$7!#(B 1997-08-15 Katsumi Yamaoka * X-Face: Version 1.2.7-b7 "Dr. Robert" was released. 1997-08-15 KOSEKI Yoshinori * x-face.el: cmail (2.59.11) $B$KBP1~$7$?(B; $BAw?.$9$k%a%C%;!<%8$K(B X-Face $B%U%#!<%k%I$r<+F0IU2C$9$k$?$a$N(B hook $B$H$7$F!"(BGnus (v5.1 $B0J2<(B) $B$H(B GNUS $B$N>l9g$O(B `news-setup-hook' $B$r?d>)!#(B(5. Customize $B$N9`(B) 1997-08-13 Katsumi Yamaoka * X-Face: Version 1.2.7-b6 "Carry That Weight" was released. 1997-08-13 Katsumi Yamaoka * x-face.el: xbm $B%U%!%$%k$N%3%a%s%H9T$rI>2A$9$kJ}K!$rJQ99!#(BRGB $B$+(B MONO $B$,L@<($5$l$F$$$J$$>l9g$O(B Unknown $B$H$7$F07$&!#(B 1997-08-12 Katsumi Yamaoka * X-Face: Version 1.2.7-b5 "Blackbird" was released. 1997-08-12 Katsumi Yamaoka * x-face.el (x-face-xmas-remove-x-face-glyph): $BD9C+It$5$s(B $B$N$4;XE&$K$h$j!"(BXEmacs $B$G(B tm $B$N(B `mime-editor/preview-message' $B$d(B SEMI $B$N(B `mime-edit-preview-message' $B%3%^%s%I$r$5$s$NL?L>$K$h$j(B X-Face-Type $B%U%#!<%k%I$r?7@_$7$?!#(B `x-face-insert' $B$GA^F~$7$?(B X-Face $B$,J#?t$KJ,3d$5$l$?>l9g$K<+F0A^F~(B $B$7$F!"%$%a!<%8$rI|85$9$kJ}K!$r;XDj$9$k!#(B($B6/@)$G$O$J$$!#(B) 1997-08-08 Katsumi Yamaoka * X-Face: Version 1.2.7-b4 "Across The Universe" was released. 1997-08-08 Katsumi Yamaoka * x-face.el: $B=D(B48$B!_2#(B48 $B0J30$N(B xbm $B%U%!%$%k$rFI$a$k$h$&$K$7$?!#=D(B $B2#$,$=$l$>$l(B 48 $B$N<+A3?tG\$G$J$$>l9g$O1&$H2<$KM>Gr$rDI2C$7$F$+$iJ,(B $B3d$7!"%^%k%A(B X-Face $B$r:n$k(B; $BJQ?t(B `x-face-default-encoded-string' $B$NCM$H%W%m%0%i%`FbIt$G07$&(B encoded string $B$K!"@hF,$N6uGr$H:G8e$N2~9T$r4^$a$k$h$&$K$7$?!#5l;E(B $BMM$N(B `x-face-default-encoded-string' $B$K$O%W%m%0%i%`$GBP1~!#(B (x-face-encode): $B;EMM$rJQ99$7!"La$jCM$r(B encoded string $B$N%j%9%H$K(B $B$7$?!#$^$?(B interactive $B$G;H$C$?>l9g!"DL>o$O(B X-Face $B%U%#!<%k%IJ8;z(B $BNs$rI=<($7!"(Barg $BIU$-$G;H$C$?>l9g$O(B elisp $B<0$rI=<($9$k$h$&$K$7$?!#(B xbm $B$r(B x-face $B$KJQ49$9$kESCf$G(B icon $B%U%)!<%^%C%H$KJQ49$9$k=hM}$r>/(B $B$79bB.$K$7$?!#(B (x-face-codename): $BJ8;zDj?t$H$7$F?7@_$7$?!#(B 1997-08-06 Katsumi Yamaoka * X-Face: Version 1.2.7-b3 was released. 1997-08-06 Katsumi Yamaoka * x-face.el: $B4X?t$N>.J,$1!"(Bmacro $B2=!"Ey!9(B...$B!#(B (x-face-viewer-startup-time): $B30It(B viewer $B$N5/F0BT$A;~4V$r@_Dj$9$k(B $B$?$a$N%f!<%6JQ?t$H$7$F?7@_!#(B $B30It(B viewer $B$N%G%U%)%k%H@_Dj$rDI2C!#(B(OS/2$B"*(Bpmview, EMX) 1997-08-04 Katsumi Yamaoka * X-Face: Version 1.2.7-b2 was released. 1997-08-04 KOSEKI Yoshinori * x-face.el: Mule for Win32 $BMQ$N(B viewer $B4X?t$rDI2C$7$?!#(BDOS $BAk$+$i(B start foo.xbm $B$G(B (default $B$N%"%W%j%1!<%7%g%s$O(B Web $B%V%i%&%6(B) $BI=<((B $B$G$-$k;v$rMxMQ$7$F$$$^$9!#(BMule $B$+$i8F$S=P$7$?(B Web $B%V%i%&%6$r=*N;(B $B$7$J$$$H(B Mule $B$,=*N;$G$-$J$$$H$$$&;v$O$"$j$^$9$,!"$=$l$O$7$g$&$,$J(B $B$$$N$G$7$g$&(B; $B>.4X$5$s(B $B$K3+H/$K;22C$7$FD:$-!"(BMule for Win32 $BBP1~5!G=$rDI2C$7$?!#(B 1997-07-25 Katsumi Yamaoka * X-Face: Version 1.2.7-b1 was released. 1997-07-25 Katsumi Yamaoka * x-face.el: Multi-X-Face $B$KBP1~!#(Barg $BIU$-$G(B `x-face-insert' $B$r9T(B $B$J$&$3$H$K$h$j!"$9$G$KB8:_$9$k(B X-Face $B%U%#!<%k%I$r>C$5$:$KA^F~$G$-(B $B$k!#(BXEmacs --with-xface $B$G$O!"Aw?.%a%C%;!<%8$N%P%C%U%!$GJ#?t$N%$%a!<(B $B%8$rI=<(!#(B 1997-07-22 Katsumi Yamaoka * X-Face: Version 1.2.6 was released. 1997-07-22 Katsumi Yamaoka * x-face.el: Emacs 20.0.91, MULE 3.0 $B$KBP1~!#(B 1997-07-07 Katsumi Yamaoka * X-Face: Version 1.2.6-b3 was released. 1997-07-07 Katsumi Yamaoka * x-face.el (x-face-debug): $BJQ?t$r?7@_!#(BNon-nil $B$K$7$F$*$/$H!"%(%i!<(B $B$,5/$-$?$H$-$K$=$N860x$K$J$C$?%P%C%U%!$NFbMF$rI=<($9$k!#(B DOS $B7O$J$I$N(B OS $B$G;H$&>l9g$r9MN8$7!"9TKv%3!<%I$,(B CRLF $B$@$C$?$iA0$b$C(B $B$F(B CR $B$r:o=|$9$k$h$&$K$7$?!#(B 1997-07-03 Katsumi Yamaoka * X-Face: Version 1.2.6-b2 was released. 1997-07-03 Katsumi Yamaoka * x-face.el: XEmacs --with-xface $B$G$O!"Aw?.%a%C%;!<%8$N%P%C%U%!$G(B encoded string $B$r1#$7$FD>@\%$%a!<%8$rI=<($G$-$k$h$&$K$7$?(B; re-search $B$G;H$&@55,I=8=$r4JN,2=$7$F!"(BMule-2.3@19.28 $B$G$bCY$/$J$i(B $B$J$$$h$&$K$7$?!#(B 1997-06-06 Katsumi Yamaoka * X-Face: Version 1.2.6-b1 was released. 1997-06-06 OKUNISHI Fujikazu * x-face.el: Mew 1.77 $B0J>e$K$bBP1~$7$?(B; MIME $B2r@O$,M-8z$K$J$C$F$k;~$K%+!<%=%k$,%X%C%@ItJ,$K$J$$>l9g$r9MN8(B $B$7$?!#7h$7$F(B message/rfc822 $B$J%Q!<%H$K$"$k%X%C%@$K$"$k%U%#!<%k%I$,(B $B * X-Face: Version 1.2.5 was released. 1997-04-21 Katsumi Yamaoka * x-face.el: XEmacs-20.x $BMQ$K(B `insert-file-contents', `write-region', `call-process-region' $B$G94B+$9$k(B coding-system $B$r(B $B8+D>$7$?!#(B 1997-04-15 Katsumi Yamaoka * X-Face: Version 1.2.4 was released. 1996-04-15 Katsumi Yamaoka * x-face.el: `x-face-tmp-directory' ($BDL>o$O(B "/tmp" $B$+4D6-JQ?t(B TMP $B$HF1$8(B) $B$N2<$K%F%s%]%i%j%U%!%$%k$r:n$C$F>C$7K:$l$F$$$?$N$r=$@5$7$?!#(B `x-face-view-asynchronous' $B$NCM$r(B non-nil $B$K$7$F$$$?J}$O3NG'$7$F2<(B $B$5$$(B (^^;;)$B!#(B 1997-04-07 Katsumi Yamaoka * X-Face: Version 1.2.3 was released. 1997-04-07 OKUNISHI Fujikazu * x-face.el: Mew $B$G$b(B X-Face $B%U%#!<%k%I$Nl9g$K$b@5$7$/%G%3!<%I$G$-$k$h$&$K$J$C(B $B$?!#$^$?(B Summary $B%b!<%I$@$1$G$J$/(B Virtual $B%b!<%I$K$bG[N8$7$?!#(B `x-face-save-or-view-method-alist' $B$N%G%U%)%k%H@_DjCM$,JQ$o$C$F$$(B $B$k$3$H$K$4Cm0U(B; Known Bug: $B%^%k%A%Q!<%H$J%a!<%k$G(B MIME analysis $B$,(B t $B$N>l9g!"%\%G%#(B $B$N%Q!<%H$K%+!<%=%k$,$"$k>l9g$r9MN8$7$F$$$J$$!#(B:-p 1997-04-07 Katsumi Yamaoka * x-face.el: $B1|@>$5$s(B $B$K3+H/$K;2(B $B2C$7$FD:$-!"(BOS/2 $BBP1~5!G=$rDI2C$7$?!#(B (x-face-view-asynchronous-function): $BJQ?t$rDI2C$7!"(BX-Face $B$rHsF14|(B $B%W%m%;%9$GI=<($9$k$H$-$N30It%3%^%s%I$r<+M3$K@_Dj$G$-$k$h$&$K$7$?!#(B $B%G%U%)%k%H$G$O(B OS/2 $B$H0lHLE*$J(B UN|X $B$KBP1~!#(B 1997-03-17 Katsumi Yamaoka * X-Face: Version 1.2.2 was released. 1997-03-17 Katsumi Yamaoka * x-face.el: XEmacs 20.1b7 $B$+$i$N(B coding-system $B$N07$$$NJQ99$KBP1~(B $B$7$?!#(B 1997-03-?? Katsumi Yamaoka * X-Face: Version 1.2.1 was released. 1997-03-?? Katsumi Yamaoka * x-face.el: $B$$$D2?$r$d$C$?$+ITL@!#(B(^^;;) 1997-03-03 Katsumi Yamaoka * X-Face: Version 1.2 was released. 1997-03-03 Katsumi Yamaoka * x-face.el: XEmacs 20.x $B$KBP1~$7$?(B; `insert-file-contents', `write-region', `call-process-region' $B$G94(B $BB+$9$k(B coding-system $B$r8+D>$7$?!#(B 1996-11-08 Katsumi Yamaoka * X-Face: Version 1.1 was released. 1996-11-08 Katsumi Yamaoka * x-face.el (x-face-encode): Command $BL>$r(B `x-face-generate-x-face' $B$+$iJQ99$7$?!#(B`x-face-generate-x-face' $B$O(B alias $B$GB8B3!#(B C-g $B$J$I$GCfCG$7$?$H$-$N8e;OKv$r40A4$K$7$?!#(B (x-face-save-or-view-method-alist): mh-e $B$G(B article $B$rD>@\%U%!%$%k(B $B$+$iFI$`$h$&$K$7$?7k2L!"%G%U%)%k%H@_DjCM$,JQ$o$C$?!#(B $B$J$<$+;32,$N4D6-$G$O4u$K%(%s%3!<%I$K<:GT$9$k$3$H$,$"$k$N$G!"(B7$B2s$^(B $B$G%j%H%i%$$r9T$J$&$h$&$K$7$?(B (1$B2s$G$OB-$j$J$+$C$?(B ;_;)$B!#$=$l$G$b%@(B $B%a$@$C$?$i6u$N(B face $B$rIU2C!#(B 1996-11-08 Katsumi Yamaoka * x-face.el: hook $B$r$$$/$D$+:n$C$?!#(B 1996-10-09 Katsumi Yamaoka * X-Face: Version 1.0 was released. 1996-10-09 Katsumi Yamaoka * x-face.el: $B$=$l$^$G$N(B x-face-utils.el $B$+$i2~L>$7$?!#(B 1996-10-04 Katsumi Yamaoka * X-Face-utils: Version 0.6 was released. 1996-10-04 Katsumi Yamaoka Tatsuya Ichikawa * x-face-utils.el: RMAIL $B$H(B VM $B$KBP1~$7$?(B ($B$D$b$j(B)$B!#(B 1996-10-01 Katsumi Yamaoka * X-Face-utils: Version 0.5 was released. 1996-10-01 Katsumi Yamaoka * x-face-utils.el (x-face-mail-fetch-field): bug $B$r=$@5$7$?!#(B 1996-09-30 Katsumi Yamaoka * X-Face-utils: Version 0.4 was released. 1996-09-30 Katsumi Yamaoka * x-face-utils.el: 48$B7e!_(B24$B9T$N(B ascii picture $B$K$h$kI=<(5!G=$rDI2C(B $B$7!"%-%c%i%/%?C * X-Face-utils: Version 0.3 was released. 1996-09-26 Katsumi Yamaoka * x-face-utils.el (x-face-view): 4$BG\@#I=<($r2DG=$K$7$?!#(B coding-system $B$N94B+$rLJL)$K9T$J$C$?!#(B(Mule) $BCf<#$5$s(B $B$N%j%/%(%9%H$K1~$($F(B Mew $B$N@_Dj$rDI2C$7$?!#(B $B$9$Y$F$N(B GNUS $B$H(B Gnus $B$KBP1~$7$?(B($B$D$b$j(B)$B!#(B (x-face-mh-show-original): $B4X?t$rGQ;_$7$?!#(B 1996-09-24 Katsumi Yamaoka * X-Face-utils: Version 0.2 was released. 1996-09-24 Tatsuya Ichikawa * x-face-utils.el (x-face-insert): $BKh2s%U%!%$%k$rA*$V$3$H$,$G$-$k(B $B$h$&$K$7$?(B; $B;T@n$5$s$N(B X-Face $B$N3($,Kh2sJQ$o$k$N$G(B:-p$B!"%;!<%V$9$k$H$-$K%f%K!<(B $B%/$J%U%!%$%kL>$r<+F0@8@.$9$k$h$&$K$7$?!#(B 1996-09-24 Katsumi Yamaoka * x-face-utils.el: gzip $B$G05=L$5$l$?(B xbm $B%U%!%$%k$KBP1~$7$?!#(B 1996-09-19 Katsumi Yamaoka * X-Face-utils: Version 0.1 was released. x-face-1.3.6.24/METHOD.ja0100644000227700000130000001675306415115707013732 0ustar yamaokastaff$B%+%i!<(B/$B%^%k%A(B X-Face $B$K$D$$$F(B $B;32,9nH~(B 1. $B$O$8$a$K(B $B%+%i!<(B X-Face $B$d(B 48x48 $B$h$jBg$-$$(B X-Face $B$rAw?M$KLBOG$r$+$1$J$1$l$P2?$r$d$C$F$bNI$$(B :-p$B!"$H$$$&4pK\M}G0$K(B $B4p$$$F>!e$2$?5,3J$G$"$k$3$H$r$*CG$o$j$7$F$*$-$^$9!#(B ;;; $B$H$O8@$&$b$N$N!"5pBg$J(B X-Face $B$,IU$$$?%a!<%k$rAw$jIU$1$i$l$??M$O(B ;;; $B$d$C$Q$jLBOG$@$m$&$J$!!#(B(^^;;) 2. $B$-$C$+$1(B $B$=$b$=$b$3$s$J$3$H$r;O$a$h$&$H$7$?H/C<$O!";T@n$5$s$,$"$kF|$N(B tm-ja $B%a!<%j%s%0%j%9%H$G$*$C$7$c$C$?!V%+%i!<$K$G$-$J$$$+(B?$B!W(B $B$H$$$&LdBj$,F,(B $B$N6y$G$/$9$V$C$F$$$?Lp@h!"(BXEmacs $B$N(B Gnus $B$GFI$s$G$$$?(B xemace-beta $B%a!<(B $B%j%s%0%j%9%H$G(B X-Face $B$,#2$DIU$$$?%a%C%;!<%8$rH/8+$7$?$3$H$G$7$?!#(B $B$$$D$+$i$+(B Gnus $B$O%X%C%@$KB8:_$9$k$9$Y$F$N(B X-Face $B%U%#!<%k%I$r%G%3!<(B $B%I$7$F!"A4It$r2#$KJB$Y$F(B From $B%U%#!<%k%I$KI=<($9$k$h$&$K$J$C$F$$$?$N(B $B$G$9!#(B ;;; $B8e$G$o$+$C$?$3$H$G$9$,(B XEmacs $BIUB0$N(B highlight-headers.el $B$G$O(B ;;; $B0JA0$+$iA4It$rI=<($9$k$h$&$K$J$C$F$$$?$h$&$G$9!#(BGnus $B$H$OJB$Y$k(B ;;; $B:81&$N=g=x$,5U$J$N$G$9$,!"$3$l$,6lO+$N]$,(B 48x48 $B%5%$%:$N#2CM2hA|$K8B$i$l$F$$$^$9$,!"$=$N05=LN($N9b$5(B $B$K$*$$$F1&$K=P$k$b$N$,$"$j$^$;$s!#$=$l$K9-$/Ia5Z$7$F$$$k(B X-Face $B$H$O(B $BJL$N%U%)!<%^%C%H$r:n$C$F$b!"Aj/$J$/$F$b(B X-Face $B$N$^$^$G$9!#(B ;;; $BM>CL$G$9$,!"(BXEmacs $B$K$O(B uncompface $B$N5!G=$,@9$j9~$^$l$F$$$F!"Ia(B ;;; $BDL$N%b%N%/%m$N(B X-Face $B$r%G%3!<%I$7$F$$$-$J$j%$%a!<%8$rI=<($G$-$k(B ;;; $B$3$H$OJXMx$J$N$G$9$,!"$;$C$+$/(B libcompface.a $B$r%j%s%/$7$F$$$k$N(B ;;; $B$G$9$+$i!"%G%3!<%I$7$?7k2L$N%S%C%H%^%C%W$r(B elisp $B$N%W%m%0%i%`$G(B ;;; $B$l$N%5%$%:$,(B 48x48 $B$N3($r%(%s%3!<(B $B%I$7$F%X%C%@$KA^F~$7$?>l9g!"$=$l$i$r%G%3!<%I$7$FI=<($9$k>l9g$N=g=x$d(B $BG[CV$O$5$[$ILdBj$K$J$j$^$;$s!#$7$+$7!"$b$C$HBg$-$J3($rJ#?t$N(B X-Face $B$KJ,3d$7$?$j%+%i!<$N3($r#2CM$N;086?'$KJ,2r$7$FEAAw$9$k>l9g$K$O!"$=$l(B $B$>$l$r%G%3!<%I$7$?8e$G$D$J$.$"$o$;$?$j9g@.$9$k$H$-$N=g=x$dG[CV$K4X$9(B $B$k>pJs$r0l=o$KEAAw$9$kI,MW$,$"$j$^$9!#$=$N$?$a(B X-Face-Type: $B$H$$$&%U%#!<%k%I$rAO@_$7$^$7$?!#$3$N1&B&$K$O(B ";" $B$G6h@Z$C$F(B ascii $BJ8(B $B;z$GJ#?t$N>pJs$rJB$Y$k$3$H$,$G$-!"JB$Y$k=g=x$N7h$^$j$dBgJ8;z(B/$B>.J8;z(B $B$N6hJL$O$"$j$^$;$s!#8=:_0J2<$NFs$D$,M=Ls$5$l$F$$$^$9!#(B geometry=MxN M $B$H(B N $B$O$=$l$>$l(B M=$B2#I}!`(B48, N=$B9b$5!`(B48 $B$G5a$a$i$l$k<+A3?t$G!"$3(B $B$l$K$h$C$FI=<($9$k$H$-$N%5%$%:$rI=$7$^$9!#(B RGB $B#2CM$N;086?'$KJ,2r$7$?%+%i!<(B X-Face $B$G$"$k$3$H$r<($7$^$9!#EvA3$J$,(B $B$i#3$N<+A3?tG\$N8D?t$N(B X-Face $B%U%#!<%k%I$,%X%C%@$K4^$^$l$F$$$J$1$l(B $B$P$J$j$^$;$s!#$3$l$K$OI,$:(B geometry $B$N;XDj$,H<$C$F$$$kI,MW$,$"$j!"(B $B%+%i!<%$%a!<%8$H$7$FI=<($9$k$H$-$N%5%$%:$rI=$7$^$9!#(B ;;; $BB>$K%W%m%0%i%`$N3+H/CJ3,$rI=$9(B status $B$H$$$&MWAG$r0l;~;H$C$?$3$H(B ;;; $B$,$"$j$^$9$,!"$3$l$O$"$($FM=Ls8l$K$O$7$J$$$3$H$K$7$^$9!#(B $B8_$$$KL54X78$JJ#?t$^$?$OC10l$N(B X-Face $B%U%#!<%k%I$r%X%C%@$KA^F~$9$k$H(B $B$-$O(B X-Face-Type $B%U%#!<%k%I$rIU$1$kI,MW$O$"$j$^$;$s!#$3$l$,I,MW$J$N(B $B$O(B 48x48 $B$h$jBg$-$$$b$N$d%+%i!<(B X-Face $B$rEAAw$9$k>l9g$G!"I,$:(B X-Face $B%U%#!<%k%I$h$jA0$KA^F~$7$^$9!#B3$/J#?t$N(B X-Face $B%U%#!<%k%I$O!"0J2<$N(B $B$h$&$J=g=x$GJB$Y$^$9!#$3$l$i$NAH9g$;(B ($BNc$($P(B 2x1 $B$N%+%i!<$H(B 1x3 $B$N%b(B $B%N%/%m(B X-Face$B!"ET9g(B 9$B8D$N(B X-Face $B%U%#!<%k%I$r%X%C%@$KA^F~$9$k(B) $B$b2D(B $B$G$9!#(B X-Face-Type: geometry=3x1 X-Face: (1) +---+---+---+ X-Face: (2) | 1 | 2 | 3 | X-Face: (3) +---+---+---+ +---+ X-Face-Type: geometry=1x3 | 1 | X-Face: (1) +---+ X-Face: (2) | 2 | X-Face: (3) +---+ | 3 | +---+ X-Face-Type: geometry=3x2 X-Face: (1) +---+---+---+ X-Face: (2) | 1 | 2 | 3 | X-Face: (3) +---+---+---+ X-Face: (4) | 4 | 5 | 6 | X-Face: (5) +---+---+---+ X-Face: (6) X-Face-Type: RGB; geometry=1x1 +---+ X-Face: (1 Red) | 1 | X-Face: (1 Green) +---+ X-Face: (1 Blue) X-Face-Type: RGB; geometry=2x1 X-Face: (1 Red) X-Face: (2 Red) +---+---+ X-Face: (1 Green) | 1 | 2 | X-Face: (2 Green) +---+---+ X-Face: (1 Blue) X-Face: (2 Blue) X-Face-Type: RGB; geometry=1x2 X-Face: (1 Red) +---+ X-Face: (2 Red) | 1 | X-Face: (1 Green) +---+ X-Face: (2 Green) | 2 | X-Face: (1 Blue) +---+ X-Face: (2 Blue) X-Face-Type: RGB; geometry=2x2 X-Face: (1 Red) X-Face: (2 Red) X-Face: (3 Red) +---+---+ X-Face: (4 Red) | 1 | 2 | X-Face: (1 Green) +---+---+ X-Face: (2 Green) | 3 | 4 | X-Face: (3 Green) +---+---+ X-Face: (4 Green) X-Face: (1 Blue) X-Face: (2 Blue) X-Face: (3 Blue) X-Face: (4 Blue) $B$3$l$i$NJB$S$N=g=x$O=EMW$G!"ESCf$KJL$N%U%#!<%k%I$,J6$l9~$`$N$O9=$$$^(B $B$;$s$,!"(B X-Face $B$d(B X-Face-Type $B$N=g=x$,JQ$o$C$F$7$^$&$H85$N3($r:F8=(B $B$9$k$3$H$,$G$-$^$;$s!#8=:_$^$G$N$H$3$m=g=x$rF~$lBX$($F$7$^$&(B MUA/MTA $B$KAx6x$7$?$3$H$O$"$j$^$;$s$,!"%U%#!<%k%I$NJB$S=g(B ($BFC$K(B X- $B$G;O$^$k$b(B $B$N(B) $B$K4X$9$k7h$^$j$OL5$$$N$G!"IT9,$K$7$F2u$l$F$7$^$C$?$iD|$a$k$7$+$"(B $B$j$^$;$s!#(B(;_;) x-face.el $B$r;H$&$H(B X-Face-Type $B%U%#!<%k%I$b4^$a$F$3$l$i$N%X%C%@$r<+(B $BF0E*$K:n@.$9$k$3$H$,$G$-$^$9!#(B x-face-1.3.6.24/Makefile0100644000227700000130000000346607026346112014066 0ustar yamaokastaffEMACS=emacs XEMACS=xemacs ADDITIONAL_LOAD_PATH= LISPDIR=/usr/local/share/emacs/site-lisp XLISPDIR=/usr/local/lib/xemacs/site-lisp SHELL = /bin/sh MKDIR = mkdir -p all: eval.el @if test -z "`echo $(EMACS)|grep -i xemacs`"; then \ $(EMACS) -batch -q -no-site-file -l eval.el \ -f batch-byte-compile x-face.el; \ else \ $(EMACS) -batch -q -no-site-file -f batch-byte-compile \ x-face.el x-face-xmas.el; \ fi eval.el: eval.el.in @echo 'sed '\''s^_@ADDITIONAL_LOAD_PATH@^_'$(ADDITIONAL_LOAD_PATH)'^_'\'' < eval.el.in > eval.el' @sed 's@ADDITIONAL_LOAD_PATH@$(ADDITIONAL_LOAD_PATH)' < eval.el.in > eval.el install: all @test -d $(LISPDIR) || $(MKDIR) $(LISPDIR) @if test -z "`echo $(EMACS)|grep -i xemacs`"; then \ echo 'Copying x-face.el to '$(LISPDIR)'...'; \ cp -p x-face.el $(LISPDIR); \ echo 'Copying x-face.elc to '$(LISPDIR)'...'; \ cp -p x-face.elc $(LISPDIR); \ echo Done; \ else \ echo 'Copying x-face.el, x-face-xmas.el to '$(LISPDIR)'...'; \ cp -p x-face.el x-face-xmas.el $(LISPDIR); \ echo 'Copying x-face.elc, x-face-xmas.elc to '$(LISPDIR)'...'; \ cp -p x-face.elc x-face-xmas.elc $(LISPDIR); \ echo Done; \ fi lpath: @$(EMACS) -batch -q -no-site-file -eval \ '(mapcar \ (function (lambda (path) (princ (format "%s\n" path)))) \ load-path)' x: @$(XEMACS) -batch -q -no-site-file -f batch-byte-compile \ x-face.el x-face-xmas.el xinstall: x @test -d $(XLISPDIR) || $(MKDIR) $(XLISPDIR) @echo 'Copying x-face.el, x-face-xmas.el to '$(XLISPDIR)'...' @cp -p *.el $(XLISPDIR) @echo 'Copying x-face.elc, x-face-xmas.elc to '$(XLISPDIR)'...' @cp -p *.elc $(XLISPDIR) @echo Done xlpath: @$(XEMACS) -batch -q -no-site-file -eval \ '(mapcar \ (function (lambda (path) (princ (format "%s\n" path)))) \ load-path)' clean: rm -f eval.el *.elc *~ x-face-1.3.6.24/README-Anim.ja0100644000227700000130000000472007014455447014564 0ustar yamaokastaffv1.3.6.4 $B$+$i(B XEmacs $B$G(B animated X-Face $B$rI=<($9$k5!G=$r@9$j9~$_$^$7$?!#(B $B2,ED7r0l$5$s$N860F$r;32,$,>/$7JQ$($?$b$N$G$9!#(B X-Face $B$NI=<($K(B `x-face-xmas-display-x-face' $B$r;H$&I,MW$,$"$k$N$G!"~$r9T$J$&>l9g$O(B .emacs $B$K(B (require 'x-face) (x-face-xmas-replace-highlight-headers) $B$3$l$i$N5-=R$r9T$J$C$F2<$5$$!#(B $BNc$($P(B VM $B$d(B SEMI $B$N(B `mime-edit-preview-message' $B$,3:Ev$7!"(BWanderlust $B$d(B gnus $B$O0lHL$K$OBP>]30$G$9!#(B $B%$%a!<%8$N@Z$jBX$(<~4|$N>e2<8B$r!"(B`x-face-animate-limit-intervals' $B$H(B $B$$$&%f!<%6%*%W%7%g%s$G@_Dj$9$k$3$H$,$G$-$^$9!#(B Animated X-Face $B$NI=<(Cf$K(B Args out of range: $BIi?t(B $B$H$$$&%(%i!<$,=P$F;_$^$C$F$7$^$&>l9g$,$"$j$^$9$,!"$3$l$,5$$K$J$k>l9g$O(B .emacs $B$Kb0Eao35{>Ht(WzqL:P)K3g|:R#,SlliL|K;#Q} 2E?\{Qs1(M-WH%`QM,as2n]oO-P!smTW{?h6cNyn(72"`3P:F\2->Q(cP1-Y$Fg*N1fVYD&6&Ku-7+ ^GVcI/Scz|6mOyLz[!$2VR8CA./{89h@u}*c2o9ipNt4Hl* X-Face: Zud>ESuW^+vP,WScB$(Klt0]m4{|4s2.4}w4n[mfX`[>2F8hqarb^GIoq5rafv7Y\BBL|%/6],*r?cc%!^qrV"uWUS~F<]g>WS'~k8?IqL[";qqD14}QM]OfhSaPY GP)#J5ge;8OmCXH24b=v/FWA7D;Ed~tf{'-Y\feJyy}~OT<&tb\Gw0>aW#ubXY<]Sn-:VZbBd_c/$z CCpko)nK:``g@yYd5*gO'hZLr[ma,sJi7b5>CV^Fb0"rR']-o*Qr#u5P'yc:44&';\BuIDHYy%xp4Sgh/9)6] m33rN:y,NhGGCqoU.=b>@Qpv;go00eO&BchNVJm]MIgQq5M4 x-face-1.3.6.24/README-Makefile.ja0100644000227700000130000000560607012426774015420 0ustar yamaokastaffx-face.el v1.3 Makefile $B $B1?$,NI$1$l$P(B ($B$D$^$j$"$J$?$N4D6-$,:nl9g$OD|$a$F(B README.ja $B$K=q$+$l$F$$$kJ}K!$r;H$&$+!"(B $B$^$?$O(B Makefile $B$r$4<+J,$G2~NI$7$F2<$5$$!#(B ($B$=$7$FAw$C$F$$$?$@$1$k$H4r$7$$$J!"$H!#(B:-) XEmacs ====== % make xinstall XEmacs $B$N$,%G%U%)%k%H$N(B xemacs $B$G$O$J$$>l9g$O!"(B % make xinstall XEMACS=xemacs-21.2 $B$N$h$&$K;XDj$9$k$3$H$,$G$-$^$9!#(B $B%$%s%9%H!<%k@h$N%G%#%l%/%H%j$r;XDj$9$k$H$-$O(B % make xinstall XLISPDIR=/usr/local/lib/xemacs/site-lisp $B$J$I$H;XDj$7$F2<$5$$!#$3$3$K=q$+$l$F$$$k$N$,%G%U%)%k%HCM$G$9!#(B Emacs 20.x ========== BITMAP-MULE, VM $B$^$?$O(B Mew $B$r$*;H$$$N>l9g$K$O!"$^$:(B % make lpath $B$G!"(BBITMAP-MULE, VM $B$^$?$O(B Mew $B$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/%H%j(B $B$,(B load-path $B$K4^$^$l$F$$$k$+$I$&$+$r3NG'$7$F2<$5$$!#4^$^$l$F$$$?$i(B % make install $B$G(B OK $B$G$9!#(B Emacs $B$N$K%G%U%)%k%H$N(B emacs $B0J30$N$b$N$r;H$&$K$O(B % make install EMACS=emacs-20.4 $B$N$h$&$K;XDj$7$F2<$5$$!#(B $B%$%s%9%H!<%k@h$N%G%#%l%/%H%j$r;XDj$9$k$H$-$O(B % make install LISPDIR=/usr/local/share/emacs/site-lisp $B$J$I$H;XDj$7$F2<$5$$!#$3$3$K=q$+$l$F$$$k$N$,%G%U%)%k%HCM$G$9!#(B $B$b$7(B BITMAP-MULE, VM $B$^$?$O(B Mew $B$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/%H%j(B $B$,(B load-path $B$K4^$^$l$F$$$J$$>l9g$O(B % make install ADDITIONAL_LOAD_PATH=/usr/local/share/emacs/site-lisp/vm $B$J$I$H;XDj$7$J$1$l$P$J$j$^$;$s!#(B"," $B$d(B ":" $B$G6h@Z$C$FJ#?t$N(B path $B$r(B $B;XDj$9$k$3$H$b$G$-$^$9!#(B Mule 2.3 ======== $B4pK\E*$J$d$j$+$?$O(B Emacs 20.x $B$N>l9g$HF1$8$G$9!#(B $B$?$@$7!"$b$7(B Mule 2.3 based on Emacs 19.34 $B$r$*;H$$$G!"$=$l$KIUB0$7(B $B$F$$$k$b$N$h$j$b?7$7$$(B CUSTOM $B%Q%C%1!<%8$rJ;MQ$7$F$$$k>l9g$O!"0J2<$N(B $B$h$&$K(B CUSTOM $B$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/%H%j$r;XDj$9$k$3$H$r$*(B $B4+$a$7$^$9!#(B($B;XDj$7$J$$>l9g!"(BM-x customize-variable $B$J$I$,$G$-$^$;$s(B) % make install EMACS=mule LISPDIR=/usr/local/share/mule/site-lisp \ ADDITIONAL_LOAD_PATH=/usr/local/share/mule/site-lisp/custom BITMAP-MULE, VM $B$^$?$O(B Mew $B$r;H$&>l9g$O!" $B;T@nC#:H(B $B1|@>F#OB(B $B>.4X5HB'(B $B2,ED7r0l(B $B;{@>M50l(B $B9b660j(B $B>eLnG55#(B $BLZ2 ---------------------------------------------------------------------- 0. NEWS $B:#$d(B Emacs 21 $BMQ$N(B X-Face utility $B$,MxMQ2DG=$G$9!#(B ftp://ftp.jpl.org/pub/elisp/x-face-e21.el.gz $B?7$7$$:FIA2h%(%s%8%s$r;}$D(B Emacs 21 $B$r;H$C$F$$$k?M$O!"$=$l$r;H$&$3$H(B $B$r6/$/4+$a$^$9!#(B v1.3.6.14 $B$+$i(B XEmacs $B$GB?3,D4(B X-Face $B$rI=<($9$k5!G=$r@9$j9~$_$^$7$?!#(B v1.3.6.14 $B$H(B v1.3.6.15 $B$G$O(B netpbm $B%Q%C%1!<%8$,I,?\$G$7$?$,!"(B v1.3.6.16 $B0J9_$G$O(B elisp $B$@$1$Ge$J$I$NL\E*$G!">-Mh$OI|3h$5$;$k$+$b$7$l$^$;$s!#(B Gnus $B$d(B T-gnus $B$O<+A0$GB?3,D4(B X-Face $B$rI=<($7$^$9$,!"Be$o$j$K$3$l$r(B $B;H$$$?$$>l9g$O!"Nc$($P0J2<$N$h$&$J$3$H$r9T$J$C$F2<$5$$!#(B (setq gnus-treat-display-grey-xface nil) v1.3.6.13 $B$+$i!"Bh0l9TL\$K%G!<%?$,L5$$(B X-Face $B%U%#!<%k%I$b07$($k$h$&(B $B$K$J$j$^$7$?!#$^$?(B x-face-xmas.el $B$K$*$$$F!"(Bwl-highlight-x-face-func $B$NCM$r6/@)E*$KJQ99$7$F$7$^$&$N$r$d$a$^$7$?!#(B v1.3.6.12 $B$+$i(B XEmacs $B>e$N(B Wanderlust $B$G;H$&4X?t(B `x-face-xmas-wl-display-x-face' $B$r!"0z?tL5$7$G8F$Y$k$h$&$K$7$^$7$?!#(B v1.3.6.4 $B$+$i(B XEmacs $B$G(B animated X-Face $B$rI=<($9$k5!G=$r@9$j9~$_$^$7(B $B$?!#(B v1.3 $B$+$i(B XEmacs $B$@$1$G;H$&%W%m%0%i%`$J$I$rJ,N%$7$F(B x-face-xmas.el $B$H$$$&%U%!%$%k$KG<$a$^$7$?!#$,!"$^$@J,N%$OIT=(B $B$N9`$r$4Mw2<$5$$!#(B $B%+%i!<(B/$B%^%k%A$N$?$a$K%X%C%@$KJ#?t$N(B X-Face $B%U%#!<%k%I$rA^F~$9$k$3$N(B $BJ}K!$O!"$^$@@$$NCf$GG'CN$5$l$?$b$N$G$O$"$j$^$;$s!#(B(^^;;) $B$$$A$*$&!"5,3J=q$U$&$NFI$_J*$r(B METHOD.ja $B$H$7$FE:IU$7$^$7$?!#(B ---------------------------------------------------------------------- 1. $BI,MW$J$b$N!#(B $B30It%3%^%s%I$H$7$F(B compface $B$H(B uncompface $B$,I,MW$G$9!#Nc$($P(B ftp://ftp.win.ne.jp/pub/misc/compface-1.4.tar.gz $B$J$I$r;}$C$F$-$F%3%s%Q%$%k$7!"E,Ev$J%G%#%l%/%H%j$K%$%s%9%H!<%k$7$F2<(B $B$5$$!#(BXEmacs $B$r(B --with-xface $B$G:n$k$H$-$KI,MW$J(B compface.h $B$O$3$N%"!<(B $B%+%$%V$K4^$^$l$F$$$F!"(Blibcompface.a $B$b:n$k$3$H$,$G$-$^$9!#(B $B$=$l$+$i%$%a!<%8%U%!%$%k$r8+$k$3$H$,$G$-$k(B viewer $B$H$7$F(B xv $B$J$I!"$*(B $B$h$S(B gzip $B$d(B bzip2 $B$b@_Dj$K$h$C$F$OI,MW$G$9!#(B ---------------------------------------------------------------------- 2. Install. x-face.el $B$r(B byte-compile-file $B$7$F!"(Bload-path $B$N%G%#%l%/%H%j$K$G$-(B $B>e$,$C$?(B x-face.el $B$H(B x-face.elc $B$r%3%T!<$7$F2<$5$$!#(B XEmacs $B$G;H$&J}(B $B$O$3$N%Q%C%1!<%8$r(B gunzip | tar $B$GE83+$7$?%G%#%l%/%H(B $B%j$G(B (*) x-face-xmas.el $B$b(B byte-compile-file $B$7$F!"(Bx-face-xmas.el $B$H(B x-face-xmas.elc $B$rF1MM$K%$%s%9%H!<%k$7$F2<$5$$!#(B $B$=$N:]I,$:(B .elc $B%U%!%$%k$N%?%$%`%9%?%s%W$,(B .el $B$h$j?7$7$/$J$k$h$&$K(B $B$7$J$1$l$P$J$j$^$;$s!#(B VM $B$b$7$/$O(B Mew $B$r$*;H$$$N>l9g$K$O(B VM $B$b$7$/$O(B Mew $B$,%$%s%9%H!<%k$5(B $B$l$F$$$k%G%#%l%/%H%j$,(B load-path $B$K4^$^$l$F$$$k>uBV$G%3%s%Q%$%k$7$F(B $B2<$5$$!#4JC1$K$O(B VM $B$b$7$/$O(B Mew $B$r5/F0$7$?8e$G%3%s%Q%$%k$7$F2<$5$$!#(B $B1?$,NI$1$l$PE:IU$7$?(B Makefile $B$,;H$($k$+$b$7$l$^$;$s!#;H$$J}$N@bL@$,(B README-Makefile.ja $B$K$"$j$^$9$N$G!"$3$A$i$b;n$7$F$_$F2<$5$$!#(B (*) $B:n6H%G%#%l%/%H%j$K(B logo $B$N%$%a!<%8%U%!%$%k$,$"$l$P!"$3$N%G%#%l%/(B $B%H%j$G$J$/$F$b9=$$$^$;$s!#5U$K(B *.elc $B$,(B load $B$5$l$k$H$-$KI=<($5(B $B$l$k(B splash $B2hLL$,$&$C$H$*$7$$$J$i$P!"(Blogo $B$N%$%a!<%8%U%!%$%k$,(B $BL5$$>uBV$G(B byte-compile-file $B$9$k$+!"(Bx-face-inhibit-loadup-splash $B$H$$$&JQ?t$NCM$r(B non-nil $B$K$7$F2<$5$$!#(B $B$b$7(B byte-compile-file $B$7$?(B *.elc $B%U%!%$%k$,@5>o$KF0:n$7$J$$$H$-$O!"(B $B$9$G$K%$%s%9%H!<%k$5$l$F$$$k8E$$(B x-face.el $B$H(B x-face.elc $B$r(B (XEmacs $B$N>l9g$O(B x-face-xmas.el $B$H(B x-face-xmas.elc $B$b(B) $B>C5n$7$F$+$i(B Emacsen $B$r5/F0$7D>$7$F!":FEY(B byte-compile-file $B$7$F$_$F2<$5$$!#(B ---------------------------------------------------------------------- 3. autoload $B$N@_Dj!#(B ~/.emacs $B$Kl9g$N$_!#>\:Y$O(B 6. XEmacs $B$N9`$r$4Mw2<$5$$!#(B (autoload 'x-face-xmas-display-x-face "x-face" "Display X-Face fields as XEmacs-glyph." t) (autoload 'x-face-xmas-force-display-x-face "x-face" "Display X-Face fields compulsorily as XEmacs glyph.") (autoload 'x-face-xmas-remove-x-face-glyph "x-face" "Remove X-Face images and some text-properties.") $B:GDc$3$l$@$1=q$$$F$*$1$P(B GNUS $B$^$?$O(B Gnus $B$H(B mh-e, RMAIL, VM, cmail $B$*$h$S(B Mew $B$G;H$($k$O$:$G$9$,!"B>$N(B Newsreader/Mailer $B$r;H$C$?$j4D6-(B $B$d%f!<%6$N9%$_$K9g$o$;$FJQ$($?$$>l9g!"$"$k$$$O(B Wanderlust $B$r(B XEmacs $B$G;H$&>l9g$K$O!"8e=R$N(B 5. Customize $B$d(B 6. XEmacs $B$N9`$r(B $B;2>H$7$F2<$5(B $B$$!#(B ---------------------------------------------------------------------- 4. $B;H$$J}!#(B $B!&(BDecode and view $B%G%U%)%k%H$N@_Dj$G$O(B gnus-summary-mode, gnus-Subject-mode, wl-summary-mode, cmail-summary-mode, mh-folder-mode, rmail-mode, vm-summary-mode, mew-summary-mode, mew-virtual-mode $B$N3F%P%C%U%!$K%+!<(B $B%=%k$,$"$k>l9g$H!"Aw?.$9$k%a%C%;!<%8$rJT=8$7$F$$$k%P%C%U%!$N$h$&$K%+(B $B%l%s%H%P%C%U%!$K(B X-Face $B%U%#!<%k%I$,$"$k>l9g$K!"(B M-x x-face-view $B$H%?%$%W$9$k$H(B xv ($BJQ?t(B x-face-viewer-program $B$G;XDj$5$l$?(B viewer) $B$G(B face $B$rI=<($7$^$9!#(B $B%-%c%i%/%?Cl9g$G$b!"(BM-x x-face-ascii-view $B$H(B $B%?%$%W$9$k$H!"(B48$B7e!_(B24$B9T$N(B ascii picture $B$G(B face $B$rI=<($7$^$9!#(B ($B$b$A$m$s(B X $B$NCl9g$H!"Aw?.$9$k%a%C%;!<%8$rJT=8$7$F$$$k%P%C%U%!$N$h$&(B $B$K%+%l%s%H%P%C%U%!$K(B X-Face $B%U%#!<%k%I$,$"$k>l9g$K!"(B M-x x-face-save $B$H%?%$%W$9$k$H=jDj$N%G%#%l%/%H%j$K%$%a!<%8%U%!%$%k$H$7$F%;!<%V$7$^$9!#(B $B!&(BEncode $BE,Ev$J(B xbm $B%U%!%$%k$rMQ0U$7$F$*$$$F(B M-x x-face-encode $B$H%?%$%W$9$k$H%(%s%3!<%I$7$?(B X-Face $B%U%#!<%k%I$NJ8;zNs$rI=<($7$^$9!#(B C-u M-x x-face-encode ESC 1 M-x x-face-encode $B$J$I$H0z?t$rIU$1$F;H$&$H(B elisp $B<0$G%(%s%3!<%I$7$?J8;zNs$rI=<($7$^$9!#(B ( C-u $B$O(B universal-argument $B%3%^%s%I$N%G%U%)%k%H$N%-!<@_Dj$G$9!#(B) $B%$%a!<%8%5%$%:$OITLd$G$9$,!"(B48x48 $B$h$j>.$5$$>l9g$OM>Gr$rIU$1!"Bg$-$$(B $B>l9g$OI,MW$J$i=D2#$,(B 48 $B$N<+A3?tG\$K$J$k$h$&$KM>Gr$rIU$1$F!"$=$l$>$l(B 48x48 $B$N%5%$%:$GJ,3d$7$?J#?t$N%(%s%3!<%I7k2L$rJV$7$^$9!#(B $B!&(BInsert $BE,Ev$J(B xbm $B%U%!%$%k$rMQ0U$7$F$*$$$F(B M-x x-face-insert $B$H%?%$%W$9$k$H%+%l%s%H%P%C%U%!$NE,@Z$J0LCV$K(B X-Face $B%U%#!<%k%I$rA^F~(B $B$7$^$9!#%$%a!<%8%5%$%:$OITLd$G$9!#(B configure $B%*%W%7%g%s$r(B --with-xface --with-xpm $B$K$7$F:n$C$?(B XEmacs $B$G$O%G%U%)%k%H$G(B encoded string $B$r1#$7$FD>@\%$%a!<%8$rI=<($9$k$3$H$,(B $B$G$-$^$9!#>\$7$$$3$H$O(B 6. XEmacs $B$N9`$r$4Mw2<$5$$!#(B $B$^$?!"0z?t$rIU$1$F(B M-x x-face-insert $B$rC$5$:$KA^F~$9$k$3$H$,$G$-$^$9!#6qBNE*$K$O(B C-u M-x x-face-insert ESC 1 M-x x-face-insert $B$J$I$H%?%$%W$7$^$9!#(B ($BCm(B) gnus-summary-mode, gnus-Subject-mode, wl-summary-mode, cmail-summary-mode, mh-folder-mode, rmail-mode, vm-summary-mode, mew-summary-mode, mew-virtual-mode $B$N3F%P%C%U%!$H$$$&$N$O$=$l$>$loCV$$$F$*$/%G%#%l%/%H%j$N;XDj$G$9!#(B ; $B0JA0$NJQ?tL>(B x-face-xbm-file-directory $B$O;CDjE*$KM-8z$K$7$F$$$^$9$,!"(B ; $B$J$k$Y$/$3$N?7$7$$L>A0$r;H$&$h$&$K$7$F2<$5$$!#(B (setq x-face-image-file-directory-for-save "~/x-faces") ; $B%$%a!<%8%U%!%$%k$r%;!<%V$9$k$?$a$N%G%#%l%/%H%jL>$N;XDj$G$9!#(B ; $B%G%U%)%k%HCM$O(B x-face-image-file-directory $B$HF1$8$G$9!#(B (setq x-face-default-xbm-file "myface.xbm") ; $BA0$r;XDj$7$^$9!#(B ; $B$b$7(B x-face-image-file-directory $B$G@_Dj$7$?%G%#%l%/%H%j0J30$N>l=j$K(B ; $BCV$$$F$*$/>l9g$O!"%G%#%l%/%H%jL>$b4^$a$F5-=R$7$F2<$5$$!#(B ; $B$3$NJQ?t$K$O(B "myface.xbm.gz" $B$^$?$O(B "myface.xbm.bz2" $B$H$$$&$h$&$K(B ; gzip $B$d(B bzip2 $B$G05=L$5$l$?$b$N$r;XDj$9$k$3$H$,2DG=$G!"(B"myface.xbm" ; $B$r@_Dj$7$?>l9g$G$b(B "myface.xbm.gz" $B$d(B "myface.xbm.bz2" $B$,B8:_$9$k>l(B ; $B9g$O$=$l$,;H$o$l$^$9!#5U$K$3$NJQ?t$KNc$($P(B "myface.xbm.gz" $B$r@_Dj$7(B ; $B$F$b$=$l$,l9g$K$O$=$l$,;H$o$l$^$9!#(B (setq x-face-insert-interactive t) ; $B4X?t(B 'x-face-insert $B$rl9g0J30$G$b!"$3$NJQ?t(B ; $B$r(B t $B$K$7$F$*$/$HA^F~$9$k%U%!%$%kL>$r?R$M$k$h$&$K$J$j$^$9!#(B ; $B$=$N$H$-$N5$J,$K1~$8$F(B face $B$rJQ$($k$h$&$J>l9g$KJXMx$G$7$g$&!#(B (setq x-face-compressor 'gzip) ; 'gzip $B$^$?$O(B 'bzip2 $B$r@_Dj$7$F$*$/$H(B X-Face $B$r%;!<%V$9$k$H$-$K(B gzip ; $B$^$?$O(B bzip2 $B$G05=L$7$^$9!#(Bnil $B$G$O05=L$7$^$;$s!#(B (setq x-face-compressor-program-list '((gzip ".gz" "gzip" "-c9" "GZIPping" "gzip" "-cd" "GUNZIPping") (bzip2 ".bz2" "bzip2" "-f" "BZIPping" "bzip2" "-d" "BUNZIPping"))) ; $B05=L?-D9J}K!$r;XDj$9$k%j%9%H$G$9!#(B ; $B$=$l$>$l$N%(%l%a%s%H$OJQ?t(B x-face-compressor $B$G;XDj$9$k%7%s%\%k!"%U%!(B ; $B%$%kL>$N%5%U%#%C%/%9!"05=L%W%m%0%i%`!"05=L;~$N0z?t!"05=L;~$N%a%C%;!<(B ; $B%8!"?-D9%W%m%0%i%`!"?-D9;~$N0z?t!"?-D9;~$N%a%C%;!<%8$G9=@.$5$l$^$9!#(B ; $B%W%m%0%i%`L>$OI,MW$J$i@dBP%Q%9$r;H$C$F2<$5$$!#(B (setq x-face-user-x-face-variable-name "x-face-default-encoded-string") ; C-u M-x x-face-encode $B$N=PNO$G;H$&JQ?tL>$N;XDj$G$9!#(B ; $B$^(B $B$3$l$O$I$&$G$bNI$$$G$7$g$&!#(B (setq x-face-compface-program "compface") (setq x-face-uncompface-program "uncompface") (setq x-face-viewer-program "xv") ; $B%Q%9$,@_Dj$5$l$F$$$J$$%G%#%l%/%H%j$K30It%3%^%s%I$N%U%!%$%k$rCV$$$F$$(B ; $B$k>l9g$O!"(B"/usr/local/bin/X11/xv" $B$J$I$H%U%k%Q%9$G5-=R$7$F2<$5$$!#(B ; $B$J$*(B x-face-viewer-program $B$K$O(B system-type $B$,(B OS/2 $B$^$?$O(B windows-nt ; $B$@$C$?>l9g$O$=$l$>$l(B "pmview" $B$+(B "start" $B$,!"$=$l0J30$N>l9g$O(B "xv" ; $B$,%G%U%)%k%H$G@_Dj$5$l$^$9!#(B (setq x-face-viewer-options '("-nodecor" "-quit" "-")) ; $B$3$l$O(B viewer program $B$N0z?t$N(B list $B$G$9!#(Bx-face-view-asynchronous ; $B$H$$$&JQ?t(B ($B8e=R(B) $B$,(B t $B$N>l9g$K$OI,$:;2>H$9$k$b$N$G$O$"$j$^$;$s!#(B ; xv $B0J30$N$b$N$d8E!A$$(B xv $B$r;H$&>l9g$OE,59=$@5$7$F2<$5$$!#(B (setq x-face-icons-to-color-picture-function 'x-face-icons-to-xpm) ; $B%+%i!<(B X-Face $B$r8+$?$j%;!<%V$9$k$H$-$K!"%$%a!<%8%U%)!<%^%C%H$KJQ49$9(B ; $B$k$?$a$N4X?t$r;XDj$7$^$9!#8=:_(B XPM$B!"(BOS/2-BMP $B$*$h$S(B Windoze-BMP $B$N3F(B ; $B%$%a!<%8$r%(%s%3!<%I$9$k$?$a$N4X?t$,MQ0U$5$l$F$$$F!"%G%U%)%k%HCM$O(B ; system-type $B$NCM$K$h$C$F$=$l$>$l0J2<$N$h$&$K@_Dj$5$l$^$9!#(B ; ; 'OS/2 'x-face-icons-to-os2-bmp ; 'windows-nt 'x-face-icons-to-win-bmp ; $B>e5-0J30(B 'x-face-icons-to-xpm ; ; $B$$$:$l$b(B X-Face $B%U%#!<%k%I$r(B uncompface $B$G(B icon $B%U%)!<%^%C%H$KJQ49$7(B ; $B$?8e$G;H$&$b$N$G$9!#(B (setq x-face-view-asynchronous nil) ; t $B$K$7$F$*$/$H(B M-x x-face-view $B$GHsF14|$K(B viewer $B$r5/F0$7$^$9!#(B ; $B$9$J$o$A!"(Bnil $B$N>l9g$K$O(B viewer $B$r=*N;$5$;$k$^$G(B Mule/NEmacs/XEmacs ; $B$NA`:n$,$G$-$J$/$J$j$^$9$,!"(Bt $B$G$O(B face $B$r8+$J$,$i%-!<%\!<%IA`:n$,$G(B ; $B$-$^$9!#(B ; OS/2 $B$N>l9g$O%G%U%)%k%H$G(B t $B$K$7$F$"$j$^$9!#$H$$$&$N$O(B xbm $B$rI=<($G(B ; $B$-$k(B VIO$BHG%"%W%j%1!<%7%g%s$,$J$$$N$G(B PMView $B$J$I$N(B PM$BHG%0%i%U%#%C%/(B ; $B%S%e!<%"$r;H$o$6$k$rF@$J$$$N$G$9$,!"(BPM$B%"%W%j%1!<%7%g%s$OI8=`F~=PNO$r(B ; $B07$($J$$;EMM$H$J$C$F$$$k$?$a$G$9!#JQ?t$,(B nil $B$N>l9g$K$OI8=`=PNO$5$l(B ; $B$k$N$KBP$7!"(Bt $B$N>l9g$O%F%s%]%i%j%U%!%$%k$K=q$-=P$5$l$k$N$G(B PM$BHG$G$b(B ; $BLdBj$J$/;H$($k$H$$$&$o$1$G$9!#(BX-Free86 for OS/2 $B$G(B xv $B$,;H$($k$b$N$N!"(B ; $B4N?4$N(B OS/2 Mule $B$,(B xterm $B>e$G$O(B VIO$B%b!<%I$G$b$^$H$b$K;H$($^$;$s!#(B:-) ; PMX $B$G(B xv $B$OF0$/$O$:$G$9$,!"(BPMMule $B$+$iF0$+$;$k$+$I$&$+D4$Y$F$^$;$s!#(B (setq x-face-view-asynchronous-function {$B4X?t%7%s%\%k(B or $B4X?tDj5A(B}) ; x-face-view-asynchronous $B$,(B t $B$N$H$-$K;H$&4X?t$N@_Dj$G$9!#0z?t$H$7$F(B ; $BI=<($9$Y$-%U%!%$%k$N@dBP%Q%9L>$,EO$5$l$^$9!#(B (setq x-face-viewer-startup-time 10) ; $B30It(B viewer $B$r5/F0$7$FI=<($9$k%U%!%$%k$rFI$_9~$`$^$G$N:GBg;~4V$rIC?t(B ; $B$G@_Dj$7$^$9!#(Bx-face.el $B$+$i30It(B viewer $B$r5/F0$7$?8e$G$3$N;~4V$,7P2a(B ; $B$9$k$H%U%!%$%k$r>C$7$^$9!#(B (setq x-face-save-or-view-method-alist '( (gnus-summary-mode . (gnus-summary-show-article x-face-find-gnus-article-buffer gnus-summary-show-article)) (gnus-Subject-mode . (gnus-Subject-show-article x-face-find-gnus-article-buffer gnus-Subject-show-article)) (wl-summary-mode . (x-face-wl-get-article x-face-extracted-headers-buffer)) (cmail-summary-mode . (x-face-cmail-get-article x-face-extracted-headers-buffer)) (mh-folder-mode . (x-face-mh-get-article x-face-extracted-headers-buffer)) (vm-summary-mode . (x-face-vm-get-all-headers x-face-extracted-headers-buffer)) (mew-summary-mode . (x-face-mew-get-article x-face-extracted-headers-buffer)) (mew-virtual-mode . (x-face-mew-get-article x-face-extracted-headers-buffer)) )) ; $B?'!9$J(B Newsreader/Mailer $B$G(B M-x x-face-{save,view} $B$G$-$k$h$&$K$9$k(B ; $B$?$a$NJQ?t$G!"3F(B cell $B$Ol9g$O!"$=$NI>2A7k2L$r:NMQ$7$^$9!#(B ; x-face-find-gnus-article-buffer $B$H(B mew-buffer-message $B$,$3$l$K3:Ev$7(B ; $B$^$9!#(B ; ; POST-FUNCTION $B$O(B {save,view} $B$7=*$o$C$F$+$i8e;OKv$N$?$a$Ke(B) $B0J30$G$O(B gnus-summary-mode-hook $B$NBe$o$j$K(B ; $B0J2<$N(B hook $B$r;H$C$F2<$5$$!#(B ; GNUS (v3.14.4 $B0J2<(B) gnus-Subject-mode-hook ; Wanderlust wl-summary-mode-hook ; cmail cmail-summary-mode-hook ; RMAIL rmail-mode-hook ; mh-e mh-folder-mode-hook ; VM vm-summary-mode-hook ; Mew mew-summary-mode-hook ; mew-virtual-mode-hook ; NEmacs $B$K$O(B add-hook $B$,$"$j$^$;$s$+$i!"4X?tDj5A$rDI2C(B ($B8e=R(B) $B$9$k$+(B ; $BDL>o$NJ}K!$r;H$C$F2<$5$$!#0J2<$bF1MM$G$9!#(B $BAw?.$9$k%a%C%;!<%8$K(B X-Face $B%U%#!<%k%I$r<+F0IU2C$9$k$K$O!"Nc$($Pl9g$O$3$NJ}K!$NBe$o$j$K(B 6. XEmacs. $B$N9`(B $B$G@bL@$9$kJ}K!$r?d>)$7$^$9!#(B (add-hook 'gnus-message-setup-hook 'x-face-insert) ; Gnus (v5.4 $B0J>e(B) $B$G$O!"$3$&$9$k$H(B x-face-default-xbm-file $B$G;XDj$7$?(B ; xbm $B%U%!%$%k$NFbMF$,%(%s%3!<%I$5$l$FA^F~$5$l$^$9!#(B ; $B$^$?!"JQ?t(B x-face-insert-interactive $B$r(B t $B$K$7$F$*$/$HKh2sA^F~$9$k%U%!(B ; $B%$%kL>$r?R$M$k$h$&$K$J$j$^$9!#(B ; $B%G%U%)%k%H0J30$N%U%!%$%k$r;H$$$?$$>l9g$Oe(B) $B0J30$G$O(B gnus-message-setup-hook $B$NBe$o$j$K0J2<$N(B ; hook $B$r;H$C$F2<$5$$!#(B ; Gnus (v5.2 $B0J>e(B) message-setup-hook ; Gnus (v5.1 $B0J2<(B) $B$H(B GNUS news-setup-hook ; Wanderlust wl-mail-setup-hook ; cmail cmail-mail-hook or mail-setup-hook ; MAIL/RMAIL/VM mail-setup-hook ; mh-e mh-letter-mode-hook ; Mew mew-draft-mode-hook $B$^$?!"0J2<$h$&$J(B hook $B$r@_Dj$7$F$*$/$H!"Aw?.%a%C%;!<%8$r=q$-;O$a$k$H(B $B$-$K(B X-Face $B%U%#!<%k%I$rIU2C$9$k$+$I$&$+$r(B (y or n) $B$GA*Br$G$-$k$h$&(B $B$K$J$j$^$9!#(B($B$3$l$O(B mail-setup-hook $B$K@_Dj$9$kNc$G$9!#(B) (add-hook 'mail-setup-hook (function (lambda () (and (y-or-n-p "X-Face $B%X%C%@$rIU$1$^$9$+(B? ") (call-interactively 'x-face-insert) )))) x-face-insert $B$G(B X-Face $B%U%#!<%k%I$rIU2C$7$?D>8e$KI>2A$5$l$k(B hook $B$H(B $B$7$F(B x-face-insert-hook $B$,$"$j$^$9!#$3$l$,I>2A$5$l$k$H$-$N(B (point) $B$O(B X-Face $B%U%#!<%k%I$N9TF,$G$9!#(B $B$=$l$+$i!"(Bx-face-add-x-face-version-header $B$H$$$&JQ?t$r(B t $B$K$7$F$*$/(B $B$H!"(Bx-face-insert $B$7$?$H$-$K(B X-Face-Version $B$H$$$&!"$3$N(B program $B$N(B version $B$rI=$9%U%#!<%k%I$rJ;$;$FIU2C$7$^$9$N$G!"$b$7$h$m$7$1$l$P;H$C(B $B$F2<$5$$!#(B v1.2.8 $B$+$i%P!<%8%g%s(B 19 $B0J>e$N(B Emacsen $B$G%a%K%e!<$,;H$($k$h$&$K$J$C(B $B$F$$$^$9!#%a%K%e!<$rM-8z$K$9$k$K$O(B .emacs $B$Kl9g$K$O!"(B (require 'x-face) $B$^$?$O(B (autoload 'x-face-menu-insert "x-face" "Insert X-Face with menu." t) (autoload 'x-face-menu-encode "x-face" "Generate X-Face string(s) from xbm file with menu." t) $B$H$$$C$?5-=R$rDI2C$7$F2<$5$$!#(B ---------------------------------------------------------------------- 6. XEmacs. configure $B%*%W%7%g%s$r(B --with-xface --with-xpm $B$K$7$F:n$C$?(B XEmacs $B$r;H$&$H!"%a!<%k$d%K%e!<%9$N5-;v$rFI$`$H$-$HAw?.%P%C%U%!$rJT=8$9$k$H(B $B$-$K!"D>@\%$%a!<%8$rI=<($9$k$3$H$,$G$-$^$9!#(BXEmacs $B$GB?MQ$5$l$F$$$k(B highlight-headers.el $B$NJQ?t(B highlight-headers-hack-x-face-p $B$,(B nil $B$@$C$?>l9g$O(B highlight-headers $B$N;EMM$K9g$o$;$F%$%a!<%8$rI=<($7$J$$(B $B$h$&$K$7$F$$$^$9!#(B $B!Z%a!<%k$d%K%e!<%9$rFI$`$H$-$N%$%s%i%$%sI=<(![(B $B%$%s%i%$%sI=<($9$k$?$a$K8^$D$NJ}K!$rMQ0U$7$F$$$^$9!#(B (1) highlight-headers.el $B$N4X?t(B highlight-headers $B$NCV$-49$(!#(BXEmacs $B$GB?$/$N(B Mailer/Newsreader $B$r;H$&>e$GI,?\$H$b8@$($k(B tm $B$^$?$O(B SEMI$B!"$*$h$S(B Mew $B$N5lHG$G$b$3$l$r;H$C$F$$$^$9!#(B Gnus $B$,<+?H$G@_Dj$9$k(B gnus-article-display-hook $B$rL58z$K$9$kI,MW(B $B$,$"$j$^$9!#(B (2) Gnus $B$@$1$O(B Gnus $B$,;}$C$F$$$k$5$^$6$^$J%X%C%@$r=$>~$9$k5!G=$r;H$$!"(B $B$=$l0J30$O(B tm $B$^$?$O(B SEMI $B$N4X?t(B mime-preview-x-face-function-use-highlight-headers ($B$3$3$G$b(B highlight-headers $B$rMxMQ$7$F$$$^$9(B) $B$rCV$-49$($^$9!#(BGnus $B$NJQ?t(B gnus-article-x-face-command $B$K(B x-face-xmas-display-x-face $B$r@_Dj(B $B$9$kI,MW$,$"$j$^$9!#(B (3) Gnus $B$NJQ?t(B gnus-article-x-face-command $B$K(B x-face-xmas-display-x-face $B$r@_Dj!#(B(2) $B$HF1$8$G$9$,!"(Btm $B$^$?$O(B SEMI $B$r;H$o$J$$>l9g$O$3$l$@$1$r9T$J$C$F2<$5$$!#(B (4) Pterodactyl Gnus $B$d$3$l$r%Y!<%9$K$7$?(B T-gnus $B$G$O(B gnus-treat $B$N5!(B $BG=$r;H$$$^$9!#(BT-gnus $B$G;H$&>l9g$N@_DjNc$r:\$;$^$7$?!#(B (5) Wanderlust 2.7.0 $B0J9_$G$O(B wl-highlight-x-face-function $B$H$$$&JQ?t!"(B Wanderlust 2.6.x $B0JA0$G$O(B wl-highlight-x-face-func $B$H$$$&JQ?t$K(B X-Face $B$rI=<($9$k$?$a$N4X?t$r@_Dj$9$k$3$H$,$G$-$^$9!#(B samples/{en,ja}/dot.wl $B$KNc$,$"$j$^$9$,!"$3$3$K$b:\$;$F$*$-$^$9!#(B (6) Mew 1.92 $B0J9_$G$O(B highlight-headers $B$r;H$o$J$/$F$b:Q$`$h$&$K$J$C(B $B$?$N$G!"(B(1) $B$N4X?t$NCV$-49$($OITMW$G$9!#2<5-$K=>$C$F2<$5$$!#(B $B$=$l$>$ll9g!"B>$N(B autoload $B$N@_Dj$O0l@ZI,MW$"$j$^$;$s!#(B ;(1) $B4X?t(B highlight-headers $B$NCV$-49$(!#(B (require 'x-face) (setq gnus-article-display-hook nil) (x-face-xmas-replace-highlight-headers) gnus-article-display-hook $B$O(B gnus.el $B$NCf$G(B defcustom $B$K$h$k@_Dj$,9T(B $B$J$o$l$k$N$G!"(Bgnus.el $B$,(B load $B$5$l$kA0$KJQ?t$H$7$FB8:_$7$F$$$l$P(B Gnus $B$O2?$b$7$^$;$s!#$7$?$,$C$F$3$NNc$N$h$&$K(B nil $B$K$9$k0J30$K!"2?$i$+$N(B $B4X?t$r(B add-hook $B$9$k$3$H$b$G$-$^$9!#(B ;(2) (require 'x-face) (setq gnus-article-x-face-command 'x-face-xmas-display-x-face) (x-face-xmas-replace-highlight-headers) ; tm $B$r;H$&>l9g!#(B (x-face-xmas-replace-x-face-function-for-tm) ; SEMI $B$r;H$&>l9g!#(B (x-face-xmas-replace-x-face-function-for-semi) (1) $B$H(B (2) $B$K$D$$$F$O(B (require 'x-face) $B$9$kBe$o$j$K$9$Y$F(B autoload $B$K$9$k$3$H$b$G$-$J$$$3$H$O$J$$$N$G$9$,!"B>$N%i%$%V%i%j$,(B load $B$5$l$k(B $B=g=x$K$h$C$F$O$&$^$/$$$+$J$$$N$G!">e5-$N@_Dj$r$H$j$"$($:?d>)$7$F$*$-(B $B$^$9!#(B ;(3) tm $B$^$?$O(B SEMI $BL5$7$G(B Gnus $B$r;H$&>l9g!#(B (setq gnus-article-x-face-command 'x-face-xmas-display-x-face) ;(4) T-gnus $B$G;H$&>l9g$N@_DjNc!#(B.gnus $B%U%!%$%k$K=q$$$F2<$5$$!#(B (setq gnus-article-treat-types '("text/plain" "text/x-rot13-47-48") gnus-cite-minimum-match-count 1 gnus-treat-highlight-signature '(and mime last) gnus-treat-buttonize nil gnus-treat-buttonize-head nil gnus-treat-emphasize nil gnus-treat-highlight-headers '(and mime head) gnus-treat-highlight-citation 'mime gnus-treat-date-local '(and mime head) gnus-treat-display-xface '(and mime head) gnus-treat-display-smileys nil gnus-treat-display-picons nil gnus-treat-decode-article-as-default-mime-charset '(not head) gnus-article-x-face-command 'x-face-xmas-display-x-face ) ;(5) Wanderlust $B$G;H$&>l9g$N@_DjNc!#(B.wl $B%U%!%$%k$K=q$$$F2<$5$$!#(B ; $B$4Cm0U(B: Wanderlust 2.7.0 $B0J9_$G$O2<5-$NDL$j$K(B ; wl-highlight-x-face-function $B$r;H$C$F2<$5$$!#(B ; Wanderlust 2.6.x $B0JA0$N$b$N$r;H$&>l9g$O!"Be$o$j$K(B ; wl-highlight-x-face-func $B$r;H$C$F2<$5$$!#(B (when window-system (cond ((and (featurep 'xemacs) ; for XEmacs (module-installed-p 'x-face)) (autoload 'x-face-xmas-wl-display-x-face "x-face" nil t) (setq wl-highlight-x-face-function 'x-face-xmas-wl-display-x-face)) ;; for Mule (GNU Emacs) ((module-installed-p 'x-face-mule) ;; for x-face-mule distributed with bitmap-mule 8.0 or later (autoload 'x-face-decode-message-header "x-face-mule") (setq wl-highlight-x-face-function 'x-face-decode-message-header)) )) x-face-xmas-wl-display-x-face $B$H$$$&4X?t$O0JA0$+$iB8:_$7$?(B x-face-xmas-mew-display-x-face $B$HF1$8FbMF$G$9!#8el9g!#(B (autoload 'x-face-xmas-mew-display-x-face "x-face") (setq mew-use-highlight-x-face-function 'x-face-xmas-mew-display-x-face) ; $B2?$,2?$G$b(B highlight-headers $B$r(B load $B$7$J$$!#(B:-p ;(provide 'highlight-headers) Mew 1.92 $B$H(B 1.93b2 $B0JA0$G$O(B mew-use-highlight-x-face-function $B$NBe$o(B $B$j$K(B mew-opt-highlight-x-face-function $B$r;H$C$F2<$5$$!#(B $B!ZAw?.%P%C%U%!$J$I$G$N%$%s%i%$%sI=<(![(B $B%3%^%s%I(B M-x x-face-insert $B$r;H$C$F@\%$%a!<%8$rI=<($9$k$h$&(B $B$K$J$C$F$$$^$9!#I=<($9$k0LCV$O(B From $B%U%#!<%k%I$,$"$k>l9g$O$=$3!"L5$$(B $B>l9g$O(B X-Face $B%U%#!<%k%I$K$J$j$^$9!#(B $BI=<((B/$BHsI=<($O(B M-x x-face-xmas-display-x-face $B$G%H%0%k$K@ZBX$($k$3$H(B $B$,$G$-$^$9$,!"(BM-x x-face-insert $B$r8e$K%$%a!<%8$rI=<((B $B$5$;$?$/L5$$>l9g$O!"(B.emacs $B$K(B (setq x-face-xmas-auto-image nil) $B$H=q$$$F$*$$$F2<$5$$!#JQ?t(B highlight-headers-hack-x-face-p $B$r(B nil $B$K(B $B$7$F$b%$%a!<%8$rI=<($7$J$/$J$j$^$9!#(B $B%3%^%s%I(B x-face-xmas-display-x-face $B$KM?$($k0z?t$,@5$N@0?t$@$C$?>l9g(B $B$O%$%a!<%8$r6/@)I=<($7!"Ii$N@0?t$@$C$?>l9g$O6/@)HsI=<($K$J$j$^$9!#(B $B$=$l0J30$N>l9g$K$OI=<((B/$BHsI=<($N%H%0%k@ZBX$($r9T$J$$$^$9!#(B ($B4X?t(B x-face-xmas-remove-x-face-glyph $B$O(B x-face-xmas-display-x-face $B$KIi$N@0?t$N0z?t$rM?$($?>l9g$HF1$8F0:n$r$7$^$9!#(B) $B$^$?(B M-x x-face-xmas-display-x-face $B$r(B `ESC t' $B%-!<$K3d$jEv$F$kJ}K!(B $B$r2<$K<($7$^$9!#(B (add-hook 'HOOK (lambda () (define-key (current-local-map) "\M-t" 'x-face-xmas-display-x-face) )) ; HOOK $B$K$O$*;H$$$K$J$k(B Newsreader/Mailer $B$K$h$C$F!"$=$l$>$l0J2<$N$b$N(B ; $B$r;H$C$F2<$5$$!#(B ; ; Gnus gnus-message-setup-hook ; Wanderlust wl-mail-setup-hook ; MAIL/RMAIL/VM/cmail mail-setup-hook ; mh-e mh-letter-mode-hook ; Mew mew-draft-mode-hook $Bl9g$O(B 5. Costomize. $B$N(B ** ** $B@bL@$N$^$^$GNI$/!"0J2<$N$h$&$K=q$-49$($kI,MW$O$"$j$^$;$s!#(B ** **---------------------------------------------------------------** (add-hook 'HOOK (lambda () (x-face-insert) (x-face-xmas-force-display-x-face) ; Mew 1.91 $B0JA0$G$OITMW(B )) ; x-face-default-xbm-file $B$G;XDj$7$?(B xbm $B%U%!%$%k$NFbMF$,%(%s%3!<%I$5$l!"(B ; $B$+$D%$%a!<%8$rI=<($7$^$9!#(BHOOK $B$K$O$*;H$$$K$J$k(B Newsreader/Mailer $B$K(B ; $B$h$C$F!"$=$l$>$l0J2<$N$b$N$r;H$C$F2<$5$$!#(B ; ; Gnus gnus-message-setup-hook ; Wanderlust wl-mail-setup-hook ; cmail cmail-mail-hook or mail-setup-hook ; mh-e mh-letter-mode-hook ; MAIL/RMAIL/VM mail-setup-hook ; ; Wanderlust $B$G$O(B ~/.xface $B%U%!%$%k$K(B X-Face $B$N(B encoded string $B$,$"$l(B ; $B$P$=$l$,(B insert $B$5$l$^$9$,!"(Bhook $B$N4X?t$K(B (x-face-insert) $B$,4^$^$l$F(B ; $B$$$k$H>e=q$-$7$F$7$^$$$^$9!#(B~/.xface $B%U%!%$%k$NJ}$rM-8z$K$9$k$K$O>e(B ; $B5-$N(B hook $B$O;H$o$:$K(B ; ;(setq wl-highlight-x-face-func 'x-face-xmas-force-display-x-face) ; ; $B$J$I$N@_Dj$r9T$J$C$F%$%a!<%8$rI=<($7$F2<$5$$!#(B $B%G%U%)%k%H0J30$N%U%!%$%k$r;H$$$?$$>l9g$Ol9g$,$"$j$^$9!#(B $B$b$7$=$N$h$&$J;vBV$,IT9,$K$7$F5/$3$C$F$7$^$&$h$&$G$7$?$i!"4JC1$K$O(B (setq x-face-xmas-inhibit-read-only t) $B$H(B .emacs $B$K=q$$$F$*$/$H!"8+$($J$$%X%C%@$NNN0h$r(B read-only $B$K$7$J$$(B $B$h$&$K$9$k$3$H$,$G$-$^$9!#(B $B$b$C$HNI$$$N$O!"%X%C%@$r=q$-JQ$($k%W%m%0%i%`$,C$7$F$7$^$&$3$H$G$9!#(B $BNc$($P(B tm $B$N(B mime-editor/preview-message $B$d(B SEMI $B$N(B mime-edit-preview- message $B%3%^%s%I$rl9g$O(B .emacs $B$Kr7o$G%*%j%8%J%k$HF1$8;EMM$K$J$j$^$9!#(B (*1) "From:$B"#(B foo@bar" $B$,(B Gnus $B$U$&!"(B "From: $B"#(Bfoo@bar" $B$,(B highlight-headers $B$U$&$G$9!#(B (*2) $B%X%C%@$KB8:_$9$k(B X-Face $B$r>e$+$i=g$K%$%a!<%8$KJQ49$7$F!":8$+$i(B $B$O$8$a$F1&$K8~$+$C$FJB$Y$k$N$,(B Gnus $B$U$&!"(Bhighlight-headers $B$O(B $B1&$+$i$O$8$a$F:8$K8~$+$C$FJB$Y$^$9!#(B $B!Z%a%K%e!l9g$K!"(BXEmacs $B$G$O(B dialog box $B$K%$%a!<%8$rI=<($7$^$9!#$3$N(B dialog box $B$N%5%$%:$O(B (setq x-face-xmas-dialog-frame-alist '((width . 48) (height . 16) (left . 0) (top . -1))) $B$N$h$&$K@_Dj$9$k$3$H$,$G$-$^$9!#%G%U%)%k%H$O$3$NDL$j$NCM$G$9!#(B $B$^$?(B dialog box $B$KI=<($9$kJ8;z%U%)%s%H$N9b$5$,(B 16-dot $B0J30$N>l9g$K$O(B (setq x-face-xmas-font-height-in-dialog-box 14) $B$J$I$H@_Dj$7$F2<$5$$!#(B $B%a%K%e!<$KI=<($9$k%$%a!<%8$O:G=i$K:n$C$?$H$-$K%-%c%C%7%e$9$k$N$G!"#2(B $B2sL\0J9_$O(B dialog box $B$N5/F0$,B.$/$J$j$^$9!#%$%a!<%8%U%!%$%k$NJQ99;~(B $B9o$d%5%$%:$,JQ$o$C$?$j?7$7$$%U%!%$%k$,DI2C$5$l$?>l9g!"%-%c%C%7%e$NFb(B $BMF$O<+F0E*$K99?7$5$l$^$9!#(B $B$3$N%-%c%C%7%e$ONc$($P0J2<$N$h$&$K(B .emacs $B$K=q$$$F$*$/$3$H$K$h$C$F%W(B $B%j%A%c!<%8$9$k$3$H$b2DG=$G$9!#(B ;;; x-face.elc $B$r(B load $B$9$k$H$-$K%W%j%A%c!<%8$9$k!#(B (add-hook 'x-face-load-hook 'x-face-xmas-image-file-cache-precharge) ;;; XEmacs $B$r5/F0$9$k$H$-$K%W%j%A%c!<%8$9$k!#(B (require 'x-face) (x-face-xmas-image-file-cache-precharge) $B$b$7(B x-face-image-file-directory $B$NCM$,%G%U%)%k%H$H0[$J$k>l9g$O!"(B $B$3$l$i$NA0$K(B setq $B$G@_Dj$7$F$*$+$J$1$l$P$J$j$^$;$s!#(B $B!Z(BSelect-XFace$B![(B $B;{@>M50l$5$s(B $B$,$*:n$j$K$J$C$?(B select-xface $B$r(B $B;H$&$H!"A^F~$9$k(B X-Face $B$r$=$N%$%a!<%8$r8+$J$,$iA*Br$9$k$3$H$,$G$-(B $B$^$9!#$3$l$OHs>o$KJXMx$J%D!<%k$J$N$G(B XEmacs $B$N%f!<%6$N3'$5$s$K$O$<$R(B $B$*;H$$$K$J$C$F$4$i$s$K$J$k$3$H$r$*4+$a$7$^$9!#$3$N%W%m%0%i%`$O(B Mew $B$N%Q%C%1!<%8$K<}$a$i$l$F$$$kB>$K!"(B ftp://ftp.gohome.org/pub/elisp/select-xface/ $B$^$?$O(B ftp://ftp.jpl.org/pub/elisp/ $B$J$I$N2<$K(B select-xface-*.tar.gz $B$H$7$FCV$+$l$F$$$^$9!#(B ---------------------------------------------------------------------- 7. $B$=$NB>!#(B $B4X?t(B x-face-encode $B$Ol9g$K$OLa$jCM$H$7$F%(%s%3!<%I7k2L$rJV$9$@$1$NF0:n$K$J$j$^$9!#(B $BJV$9CM$,J#?t$"$k>l9g$N$?$a$K%j%9%H$K$J$C$F$$$^$9!#(B x-face-insert $B%3%^%s%I$r;H$C$F(B xbm $B%U%!%$%k$+$i%(%s%3!<%I$7$?(B X-Face $B%U%#!<%k%I$,J#?t$K$J$k>l9g$K$O!"<+F0E*$K(B X-Face-Type $B%U%#!<%k%I$bA^(B $BF~$7$^$9!#$3$3$K=q$+$l$k$N$O85$N%$%a!<%8$NG[CV$rI=$9>pJs$G$9!#(B $B$^$?FC$K(B X-Face $B%U%#!<%k%I$N8D?t$,(B 3 $B$N<+A3?tG\$K$J$k>l9g$K$O!"$=$l(B $B$,(B RGB $B3F?'$KJ,2r$5$l$?%+%i!<(B X-Face $B$G$"$k$+$I$&$+$r?R$M$^$9!#Kh2s(B $B?R$M$i$l$k$N$,HQ$o$7$$$J$i$P!"$=$N(B xbm $B%U%!%$%k$N@hF,$K0J2<$N$h$&$J(B $B%3%a%s%H9T$rA^F~$7$F2<$5$$!#(B /* X-Face-Type: RGB */ /* Type: MONO */ ($B;DG0$J$,$i$3$N$h$&$J9T$,$"$k%U%!%$%k$rI=<($G$-$J$$(B viewer $B$,$"$k$h(B $B$&$G$9$,(B ...$B!#(B:-<) $B;29M$^$G$K!"$3$l$i$r8!CN$9$k$?$a$K%W%m%0%i%`$G;H$C$F$$$k@55,I=8=$O!"(B "type[\t \"]*[:;=]+[\t \"]*rgb" $B$^$?$O(B "type[\t \"]*[:;=]+[\t \"]*mono" $B$G!"BgJ8;z(B/$B>.J8;z$N6hJL$O$7$F$$$^$;$s!#(B $B%X%C%@$KJ#?t$N(B X-Face $B%U%#!<%k%I$,B8:_$9$k$?$a$K!"(BMailer/Newsreader $B$K$h$C$F$OJ#?t$N%U%#!<%k%I$KBP$9$k7Y9p$rM^@)$9$k!#(B (setq message-syntax-checks '( (long-lines . disabled) (control-chars . disabled) (multiple-headers . disabled) ; $B"+$3$l(B (signature . disabled) )) ; Mew $B$,07$($k%X%C%@$N>e8BCM$rBg$-$/$9$k!#(B (setq mew-header-max-length 100) $B$=$l$+$i!"%+%i!<(B X-Face $B$r(B netpbm $B$r;H$C$F:n$kJ}K!$r>R2p$7$F$*$-$^$9!#(B $B$^$:$O$*3(=q$-%D!<%k$J$I$r;H$C$F(B 48x48 $B$^$?$O$=$N<+A3?tG\$N%5%$%:$N(B $B%$%a!<%8%U%!%$%k$r:n$j$^$7$g$&!#$3$3$G?'?t$,B?$+$C$?$jCf4V?'$r;H$C$F(B $B$$$k$H!"$-$l$$$J(B face $B$r:n$k$3$H$,$G$-$J$$$3$H$KCm0U$7$F2<$5$$!#(B $B%F%l%SJ|Aw$N%F%9%H$G;H$o$l$k%+%i!<%P!<$N?'(B ($BGr(B $B2+(B $B%7%"%s(B $BNP(B $B%^%<%s%?(B $B@V(B $B@D(B $B9u(B) $B$@$1$K$J$C$F$$$k$N$,%Y%9%H$G$9!#Nc$($P$3$l$,(B gif $B$@$C$?$i!"(B % giftoppm FACE.gif > FACE.ppm % ppmtorgb3 FACE.ppm $B$3$&$9$k$H(B $B@V(B,$BNP(B,$B@D(B $B$KJ,2r$5$l$?;0$D$N(B pgm $B%U%!%$%k(B noname.red, noname.grn, noname.blu $B$,@8@.$5$l$k$N$G!"$5$i$K(B % pnmcat -tb noname.red noname.grn noname.blu > FACE.pgm $B$3$&$d$C$F=DJ}8~$KO"7k$7$F$+$i(B xbm $B$KJQ49$7$^$9!#(B % pgmtopbm FACE.pgm > FACE.pbm % pbmtoxbm FACE.pbm > FACE.xbm $B85$N%+%i!<%$%a!<%8$,(B 48x48 $B$h$jBg$-$$>l9g$O!"I,$:(B *$B=DJ}8~(B* $B$KO"7k$7(B $B$F2<$5$$!#(B48x48 $B$N>l9g$O2#$G$b9=$$$^$;$s!#(B $B:G8e$K%(%G%#%?$r;H$C$F$G$-$"$,$C$?(B FACE.xbm $B$NBh0l9TL\$K(B /* X-Face-Type: RGB */ $B$H=q$-9~$a$P=*$o$j$G$9!#(B ($B;DG0$J$,$i$3$N$h$&$J9T$,$"$k%U%!%$%k$rI=<($G$-$J$$(B viewer $B$,$"$k$h(B $B$&$G$9$,(B ...$B!#(B:-<) ---------------------------------------------------------------------- 8. add-hook. NEmacs $B$d(B NEpoch $B$G(B add-hook $B$r;H$&>l9g$O!"0J2<$N4X?tDj5A$r(B ~/.emacs $B$J$I$N$J$k$Y$/;O$a$NJ}$K=q$-9~$s$G2<$5$$!#(B (defun add-hook (hook function &optional append) "Add to the value of HOOK the function FUNCTION. FUNCTION is not added if already present. FUNCTION is added (if necessary) at the beginning of the hook list unless the optional argument APPEND is non-nil, in which case FUNCTION is added at the end. HOOK should be a symbol, and FUNCTION may be any valid function. If HOOK is void, it is first set to nil. If HOOK's value is a single function, it is changed to a list of functions." (or (boundp hook) (set hook nil) ) ;; If the hook value is a single function, turn it into a list. (let ((old (symbol-value hook))) (if (or (not (listp old)) (eq (car old) 'lambda)) (set hook (list old)) )) (or (if (consp function) ;; Clever way to tell whether a given lambda-expression ;; is equal to anything in the hook. (let ((tail (assoc (cdr function) (symbol-value hook)))) (equal function tail) ) (memq function (symbol-value hook)) ) (set hook (if append (nconc (symbol-value hook) (list function)) (cons function (symbol-value hook)) )) )) x-face-1.3.6.24/TODO.ja0100644000227700000130000000070006500737004013473 0ustar yamaokastaff$B$d$j$?$$$3$H$H$d$k$Y$-$3$H$H$d$a$?$$$3$H$H$d$a$k$Y$-$3$H(B x-face.el $B$N(B XEmacs $B@lMQItJ,$N(B x-face-xmas.el $B$X$N0\@R$r?J$a$k$3$H(B!! x-face-save $B$r%b%N%/%m$G$b(B xbm $B0J30$N%U%)!<%^%C%H$G$G$-$k$h$&$K$9$k$3$H(B!! x-face-insert $B$r(B xbm $B0J30$N%U%)!<%^%C%H$G$b$G$-$k$h$&$K$9$k$3$H(B!! xbm $B%U%!%$%k$K%3%a%s%H$r=q$/$N$r$d$a$k$3$H(B!! x-face-encode $B$H(B x-face-insert $B$N6&DLItJ,$N@0M}(B ($B$^$"$$$$$+(B ^^) x-face-1.3.6.24/eval.el.in0100644000227700000130000000100107014134220014253 0ustar yamaokastaff;;; -*- Emacs-Lisp -*- (let ((arg "@ADDITIONAL_LOAD_PATH@") path paths) (while (string-match "[\t ,:]+" arg) (setq path (substring arg 0 (match-beginning 0)) arg (substring arg (match-end 0))) (or (zerop (length path)) (setq paths (nconc paths (list (file-name-as-directory (expand-file-name path))))))) (if paths (progn (princ (concat "\nAdditional load-path:\n " (mapconcat (function identity) paths "\n ") "\n")) (setq load-path (nconc paths load-path))))) x-face-1.3.6.24/x-face-beta-logo.xbm0100644000227700000130000005244306515646162016161 0ustar yamaokastaff#define x-face-beta-logo_width 352 #define x-face-beta-logo_height 96 static char x-face-beta-logo_bits[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff, 0xff,0xff,0x1f,0x00,0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x6b,0x6b, 0x6b,0x3b,0x00,0xdb,0xda,0xda,0x0e,0x00,0x00,0x80,0xb6,0xb6,0xb6,0xb6,0xb6, 0xb6,0xb6,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0xdf,0xdf,0xdf, 0x6f,0x00,0xf7,0xf7,0xf7,0x1b,0x00,0x00,0x80,0xff,0xfd,0xfd,0xfd,0xfd,0xfd, 0xfb,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x7d,0x7d,0x7d,0xfd, 0x00,0x5e,0x5f,0x5f,0x3f,0x00,0x00,0x80,0xd5,0xd7,0xd7,0xd7,0xaf,0x6f,0x5f, 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xef,0xef,0xef,0xf7,0x00, 0xfa,0xfb,0xfb,0x3d,0x00,0x00,0x00,0xff,0xfe,0xfe,0x7e,0xfb,0xf6,0xf7,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x7b,0x7b,0xfb,0xff,0x00,0xfe, 0xde,0xfe,0x3f,0x00,0x00,0x00,0xbe,0xb7,0xb7,0xff,0xff,0x5f,0x7d,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xdf,0xdf,0xdf,0x7f,0x55,0xb8,0xf7, 0xff,0x5f,0x05,0x00,0x00,0xf8,0xfd,0xfd,0xff,0xff,0xff,0xd7,0x57,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x75,0xf5,0x55,0x15,0xc0,0xbd,0xfe, 0xaa,0x12,0x00,0x00,0x80,0x57,0x57,0x5f,0x55,0xf9,0xfe,0xaf,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xfb,0xaf,0x60,0xef,0xaf,0xfd, 0x0d,0x00,0x00,0x80,0xfe,0xff,0xb7,0xbb,0xdf,0xb7,0xff,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x60,0x5b,0xdb,0xef,0x5e,0xc0,0xfb,0xff,0xf7,0x2b, 0x00,0x00,0x80,0xdb,0xda,0xff,0xff,0x7e,0xfd,0x77,0x05,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xc4,0xff,0xff,0xff,0x2f,0xf0,0xfe,0xff,0xdf,0x17,0x00, 0x00,0x00,0xff,0xff,0xff,0xff,0x77,0xaf,0xff,0x05,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x90,0xd5,0xaa,0xff,0x5b,0xb8,0xf7,0xff,0xff,0x0b,0x00,0x00, 0x80,0xb5,0xd6,0xff,0xf7,0x7f,0xfa,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x54,0xa0,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x88,0xff,0xff,0xff,0x2f,0xfc,0xfd,0xff,0xbf,0x2a,0x00,0x00,0xc0, 0xff,0xff,0xff,0x5f,0x2d,0xde,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x08,0x00,0xaa,0x40,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x92,0xb6,0xb6,0xbf,0x04,0x68,0xff,0xff,0xdf,0x0a,0x00,0x00,0xc0,0xad, 0xb5,0xff,0x55,0x55,0xf6,0x7f,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, 0x52,0x00,0xa8,0x80,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0xff,0xff,0xff,0x0a,0xfe,0xff,0xff,0x45,0x02,0x00,0x00,0x40,0xff,0xff, 0xff,0xab,0x12,0xdc,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x2a, 0x01,0x54,0x41,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, 0x6b,0x5b,0x7f,0x01,0xae,0xdf,0xff,0x2b,0x00,0x00,0x00,0xc0,0x6b,0xed,0x7f, 0x05,0x00,0xfe,0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x55,0x01, 0x54,0x81,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, 0xfd,0xbf,0x80,0xfb,0xef,0xbf,0x04,0x00,0x00,0x00,0xc0,0xfe,0xff,0xff,0x01, 0x00,0xea,0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x50,0xff,0x06,0x54, 0x41,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xae,0x6f, 0xfd,0xc2,0xef,0xf3,0xff,0x02,0x00,0x00,0x00,0xe0,0x5b,0xeb,0x7f,0x02,0x00, 0xfe,0xff,0x02,0x00,0x00,0x00,0x00,0x80,0x00,0x14,0x50,0x83,0x02,0xab,0x86, 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7a,0xfb,0xbf, 0xa0,0xfd,0xfb,0x2f,0x00,0x00,0x00,0x00,0x60,0xff,0xff,0xbf,0x01,0x00,0xda, 0xbf,0x01,0x00,0x00,0x00,0x00,0x55,0x02,0x1a,0xd0,0x81,0x0a,0xaa,0x42,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xee,0xdf,0xfe,0xe0, 0xff,0xf4,0x9f,0x00,0x00,0x00,0x00,0xc0,0xd6,0xf6,0xff,0x00,0x00,0xfe,0xfe, 0x02,0x00,0x00,0x00,0x80,0xaa,0x02,0x08,0x58,0x00,0x15,0x54,0x0d,0x05,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0xed,0xfb,0xf0,0x7a, 0xfe,0x25,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x7f,0x02,0x00,0xec,0x7e,0x01, 0x00,0x00,0x05,0x00,0xd5,0x0a,0x34,0xc8,0x01,0x1a,0x54,0x8a,0x0a,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0x7b,0x7f,0xb0,0x7f,0xfd, 0x0b,0x00,0x00,0x00,0x00,0x70,0x5b,0xf5,0xbf,0x00,0x00,0xfc,0xfd,0x00,0x00, 0x80,0x2a,0x40,0x7d,0x15,0x28,0xe8,0x00,0x14,0xd4,0x0b,0x0d,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0xde,0x37,0xec,0x1f,0xff,0x05, 0x00,0x00,0x00,0x00,0xd0,0xff,0xff,0x7f,0x01,0x00,0xf8,0x5e,0x01,0x01,0x55, 0x2a,0x58,0x1d,0x15,0x34,0xa8,0x00,0xfa,0x6c,0x54,0x05,0x00,0x00,0xe0,0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x77,0x3d,0x7e,0xcf,0xff,0x22,0x00, 0x00,0x00,0x00,0xf0,0x6a,0xfb,0x5f,0x00,0x00,0x00,0x1e,0xac,0x04,0x55,0xd5, 0x5f,0x7f,0x2a,0x28,0xd0,0x80,0xbd,0xa9,0x95,0x1a,0x00,0x00,0x7f,0xdb,0x0f, 0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xfd,0x3f,0xdb,0x57,0x5f,0x01,0x00,0x00, 0x00,0x00,0xb0,0xff,0xff,0xbf,0x00,0x00,0x00,0x8e,0x52,0xfb,0xea,0x55,0x87, 0xee,0x3d,0x2a,0xd4,0x70,0xea,0xa9,0x15,0x15,0x00,0xc0,0xdf,0x7e,0x3b,0x00, 0x00,0x00,0x00,0x00,0x00,0xf0,0x5f,0xab,0xfe,0xe3,0x7f,0x04,0x00,0x00,0x00, 0x00,0xf0,0xad,0xf5,0x5f,0x00,0x00,0x00,0xad,0x5a,0x6d,0xfd,0x57,0x4d,0xfb, 0x03,0x54,0x50,0xfe,0x7a,0xab,0x6b,0x1a,0x00,0xb0,0xf5,0xeb,0x6f,0x00,0x00, 0x00,0x00,0x00,0x00,0xb0,0xf5,0xff,0xef,0xd7,0x2f,0x00,0x00,0x00,0x00,0x00, 0x58,0xff,0xff,0xbf,0x00,0x38,0x80,0xa5,0xea,0x7e,0x7a,0xa7,0x5f,0xad,0x01, 0x54,0xa8,0xaf,0xd5,0xd3,0x13,0x15,0x00,0xfc,0x7f,0xbf,0xfd,0x00,0x00,0x00, 0x00,0x00,0x00,0xe0,0xdf,0xba,0xfa,0xf1,0x9b,0x00,0x00,0x00,0x00,0x00,0xf8, 0x6b,0xfd,0x5f,0x00,0x7a,0x40,0x4e,0xfb,0x5f,0xfa,0x57,0x9b,0xf2,0x01,0xa8, 0xa8,0xfb,0xf5,0xa9,0xaa,0x1a,0x00,0x6f,0xed,0xf7,0xaf,0x01,0x00,0x00,0x00, 0x00,0x00,0x60,0xfb,0xef,0xff,0xfc,0x27,0x00,0x78,0x00,0x00,0x00,0xd8,0xfe, 0xff,0x5f,0x00,0xeb,0x40,0xa7,0xea,0x77,0xfd,0xa7,0xbf,0x0a,0x54,0xd4,0xd0, 0x6e,0xe9,0xd5,0x57,0x15,0x80,0xfb,0xff,0xbf,0xfa,0x03,0x00,0x00,0x00,0x00, 0x00,0xc0,0xaf,0x7d,0x7b,0xf5,0x0b,0x00,0xfe,0x03,0x00,0x00,0xf0,0x5b,0xfb, 0x2f,0x00,0xf5,0x80,0x4a,0x7b,0x5d,0x75,0x51,0xb7,0xaa,0x2a,0xa8,0xa0,0xff, 0x35,0xd4,0xaf,0x1a,0xe0,0x5e,0xfb,0xe2,0x6f,0x17,0x00,0x00,0x00,0x00,0x00, 0x40,0xfd,0xdf,0x3f,0xfe,0x05,0x40,0xd7,0x0e,0x00,0x00,0x78,0xf1,0xff,0x5f, 0x00,0xfa,0x60,0x43,0xdd,0x7f,0xb4,0xa8,0xdd,0xaa,0x4a,0xd5,0xd4,0xb5,0xa9, 0xd2,0x4d,0x15,0xb0,0xf7,0x7f,0xa5,0xfd,0x4f,0x00,0x00,0x00,0x00,0x00,0xc0, 0x6f,0x75,0xbf,0xbd,0x12,0xc0,0xff,0x1b,0x00,0x00,0x5c,0xa8,0xfd,0x2f,0x00, 0xf5,0xa0,0x46,0xf5,0x56,0x0b,0xa4,0xff,0xab,0xaa,0x50,0x56,0xff,0x75,0x58, 0x6f,0x35,0xe8,0x7d,0x5f,0xe7,0xb7,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0xfb, 0xff,0xdf,0xff,0x01,0x40,0x6d,0x3f,0x00,0x00,0x74,0xea,0xff,0x37,0x80,0xea, 0x42,0xa3,0xbe,0xff,0xaa,0xda,0x6b,0x7f,0x55,0xa8,0xa5,0xed,0xd4,0x50,0x9b, 0x3a,0x7c,0xd7,0xef,0xc3,0xfe,0x3f,0x01,0x00,0x00,0x00,0x00,0x80,0xaf,0xad, 0xff,0x7e,0x04,0xe0,0xfb,0x6d,0x80,0xa2,0x7c,0xd5,0xfe,0x1f,0xc0,0x55,0xa8, 0x42,0x01,0xec,0xaa,0xaa,0xfe,0xff,0xab,0xac,0xa7,0xfe,0xe8,0x50,0x7f,0x35, 0xd8,0xff,0xff,0xe7,0xab,0xfd,0x02,0x00,0x00,0x00,0x00,0x80,0xfd,0xff,0xfe, 0x5f,0x01,0x70,0x5f,0xff,0xa0,0xaa,0x1d,0xaa,0x0f,0x00,0x60,0x6b,0x45,0x63, 0xa5,0xf8,0x54,0x55,0x5b,0xfa,0xab,0xaa,0xaf,0x7a,0xf6,0xa9,0xab,0x1a,0xfe, 0xda,0xf7,0x63,0xff,0xbf,0x04,0x00,0x00,0x00,0x00,0x00,0xb7,0xda,0xff,0x2f, 0x00,0xd0,0x1b,0xe0,0x90,0xaa,0xb6,0xaa,0x0e,0x00,0xd0,0x53,0xac,0x42,0x55, 0xfb,0x6a,0xad,0x3f,0xfc,0xab,0xd2,0xba,0x7a,0xe9,0x50,0x7f,0x1f,0xaf,0xff, 0xff,0xc3,0x6d,0xfd,0x03,0x00,0x00,0x00,0x00,0x00,0xfd,0x7f,0xff,0x9b,0x00, 0x70,0x40,0x29,0xac,0xaa,0x3e,0xd5,0xf7,0xfe,0x7f,0x6b,0xa7,0x43,0x55,0xfd, 0xea,0x47,0x96,0xfa,0x53,0xab,0x9f,0x02,0xf6,0x5b,0xf7,0x8f,0xfb,0xed,0xff, 0x61,0xff,0xff,0x0a,0x00,0x00,0x00,0x00,0x00,0x6e,0xeb,0xfd,0x27,0x00,0x38, 0xaa,0x56,0xab,0xfe,0x6f,0x55,0xbd,0xdb,0xf7,0xab,0x6d,0xa1,0xaa,0xfe,0xf4, 0xa1,0xbe,0xfa,0x57,0xd3,0x6d,0x55,0x79,0xe9,0xfd,0x87,0x6e,0xff,0xff,0xf1, 0xb7,0xfd,0x0b,0x00,0x00,0x00,0x00,0x00,0xfa,0xbf,0xff,0x0d,0x00,0x28,0x55, 0xe9,0xff,0x05,0x3a,0xad,0xef,0x7e,0x5d,0x55,0x87,0xa9,0xfa,0xff,0xea,0x50, 0x2b,0xfd,0xd3,0xa1,0x7f,0x55,0xfd,0xf1,0xff,0xc3,0xff,0xf5,0xff,0xb0,0xed, 0xff,0x0d,0x00,0x00,0x00,0x00,0x00,0xae,0xf6,0xfd,0x03,0xaa,0x70,0xb5,0xfe, 0x2f,0x06,0xaf,0xae,0xfa,0xeb,0xff,0xa7,0x67,0x49,0xf5,0xff,0xf5,0x50,0xfd, 0xfa,0xa9,0xb0,0xeb,0x55,0x5f,0xe0,0xff,0x83,0xb5,0xff,0x7f,0x78,0xbf,0xfe, 0x0b,0x00,0x00,0x00,0x00,0x00,0xfc,0x5f,0xf7,0x65,0x55,0x69,0x7d,0xff,0x3f, 0x04,0x3d,0xad,0x5e,0x7f,0xeb,0xa6,0xae,0xbd,0xda,0xfe,0x69,0x98,0x5e,0x6a, 0xd4,0xa0,0xbe,0xaf,0x7f,0xc1,0xff,0xe3,0xff,0xfb,0x7f,0xe8,0xf7,0xff,0x17, 0x00,0x00,0x00,0x00,0x00,0xdf,0xfa,0xff,0xd3,0xaa,0x32,0xf5,0xdb,0x2f,0x07, 0x97,0x5a,0xfd,0xff,0xbf,0x5f,0x4f,0x4f,0xf5,0xff,0xb5,0x58,0x7d,0x2a,0xea, 0xd8,0xf7,0xff,0x1f,0x00,0xfc,0x61,0xad,0xfe,0x3f,0xbc,0x7d,0xff,0x0f,0x00, 0x00,0x00,0x00,0x80,0xf6,0xdf,0x7a,0xa5,0x7e,0x6d,0xda,0xff,0xbf,0x02,0x9f, 0x9a,0xfe,0xff,0xf7,0xbd,0xa6,0x9b,0x7a,0xff,0x29,0x48,0xed,0xaa,0x6a,0xf4, 0x5f,0xff,0x57,0x00,0xfd,0xf1,0xff,0xff,0x1f,0xec,0xd7,0xff,0x17,0x00,0x00, 0x00,0x00,0x80,0xbf,0xf6,0xff,0xd3,0x80,0x2a,0xea,0xf6,0x1f,0x8d,0x6d,0x7d, 0xfd,0xaf,0x7a,0x5f,0xd1,0x9f,0xda,0xff,0x6b,0xbc,0xfa,0x55,0x3d,0xfc,0xfa, 0xff,0x2f,0x00,0xf4,0x50,0x6b,0xfb,0x07,0xbf,0xfe,0xff,0x0b,0x00,0x00,0x00, 0x00,0x40,0xeb,0xbf,0xf6,0xa5,0x00,0x4a,0xb5,0xff,0xff,0x8a,0xbf,0x2e,0xfd, 0x7b,0xd7,0xbd,0xaa,0x5a,0x75,0xe0,0x29,0xf4,0xaa,0x57,0x1d,0xae,0xdf,0xff, 0x17,0x80,0xfa,0xf8,0xff,0xff,0x83,0xf6,0xb7,0xff,0x17,0x00,0x00,0x00,0x00, 0xe0,0x7f,0xeb,0xff,0x57,0x00,0x55,0xea,0xf4,0x3f,0x8d,0x0a,0xbd,0xfa,0xef, 0xe7,0x1f,0xd5,0x9f,0x0a,0xea,0xeb,0x5e,0xfa,0xff,0x17,0xfa,0xf6,0xff,0x17, 0x00,0x68,0x68,0xad,0xfe,0xc0,0xbf,0xfd,0xff,0x0b,0x00,0x00,0x00,0x00,0xf0, 0xda,0xbf,0xd5,0x53,0x01,0x9a,0x35,0xe2,0x7f,0x8a,0x4f,0x05,0xfd,0xff,0xa7, 0xbe,0xaa,0xed,0xaa,0xaa,0x53,0xfa,0xbf,0xfe,0x1f,0xdf,0xbf,0xff,0x0b,0x00, 0x54,0xf8,0xff,0x7f,0xc0,0xea,0xf7,0xff,0x0f,0x00,0x00,0x00,0x00,0xb8,0xff, 0xfa,0xff,0xaf,0x02,0x15,0x0a,0xda,0x5f,0x8d,0xbb,0x52,0xf5,0xff,0xe6,0x3f, 0xd5,0x7f,0x55,0xd5,0x6b,0x5f,0xff,0xff,0x0b,0x77,0xeb,0xff,0x27,0x00,0x51, 0x6c,0xdb,0x1e,0xf8,0xbf,0xfe,0xff,0x02,0x00,0x00,0x00,0x00,0xe8,0xbe,0x6f, 0xed,0x47,0x83,0x1a,0xd4,0xea,0x3f,0xcd,0x8e,0x4a,0xf5,0xaf,0xc3,0x9e,0xaa, 0x56,0xaa,0xaa,0x76,0xf7,0xad,0xff,0x0f,0xdd,0xff,0xff,0x05,0x00,0x00,0xfc, 0xfd,0x0f,0xdc,0xf6,0xff,0xff,0x17,0x00,0x00,0x00,0x00,0xfc,0xff,0xfb,0xbf, 0xa7,0x80,0x1a,0x54,0xd5,0x7f,0xc5,0x4b,0xb5,0xea,0xaa,0xe4,0x9f,0xea,0xff, 0x55,0xfd,0x83,0x7d,0xff,0xff,0x0b,0xff,0xda,0xff,0x05,0x00,0x24,0xac,0x6f, 0x0f,0xf7,0xdf,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x56,0xcf,0xde,0xf6,0xaf, 0x2a,0x0d,0xa8,0xfe,0x3f,0x4a,0x4f,0x55,0xd5,0x93,0x62,0x9f,0xea,0x6b,0xef, 0xff,0x81,0xd7,0x6b,0xff,0x8f,0xb6,0xff,0xff,0x05,0x00,0x00,0x7e,0xdb,0xff, 0x5f,0xfb,0xff,0x7f,0x05,0x00,0x00,0x00,0x00,0xfe,0x87,0xb7,0xbf,0xbf,0xaa, 0x0a,0xd4,0xff,0x1f,0xcd,0xad,0xfa,0xd5,0x04,0xd0,0x7f,0xf5,0xfe,0xff,0xff, 0xc2,0xfe,0xfe,0xff,0x85,0xff,0xd6,0xff,0x02,0x00,0x00,0xea,0xff,0xdd,0xfa, 0xff,0xff,0xff,0x02,0x00,0x00,0x00,0x80,0xdb,0x97,0xfd,0xea,0x9f,0xaa,0x0a, 0xea,0xff,0x57,0xaa,0x4f,0xff,0x68,0x01,0xc0,0x77,0xb5,0xb7,0xfa,0x7f,0x81, 0xb7,0xb7,0xff,0x87,0xd5,0xff,0xff,0x02,0x00,0x00,0xbe,0x6d,0xf7,0xbf,0xff, 0xff,0x5f,0x01,0x00,0x00,0x00,0xc0,0xff,0x2b,0xdf,0xbf,0x5e,0xb5,0x0a,0xd4, 0xff,0x17,0xea,0xa2,0xfe,0x55,0x01,0x80,0xf3,0xea,0xfd,0xff,0xbf,0xc0,0xfd, 0xfd,0xff,0x45,0x7f,0xed,0xff,0x02,0x00,0x00,0xfa,0xbe,0xbf,0xf6,0xab,0xff, 0x7f,0x00,0x00,0x00,0x00,0x60,0xf5,0x35,0x75,0xf7,0x9f,0xbe,0x2a,0x2a,0x7d, 0x15,0xf4,0xa3,0xf6,0xab,0x01,0x00,0xe8,0x7f,0xaf,0xfd,0xdf,0x60,0x6f,0xd7, 0xff,0xc7,0xed,0xff,0x7f,0x01,0x00,0x00,0xde,0xf7,0xed,0x7f,0xf5,0xff,0x17, 0x01,0x00,0x00,0x00,0xd0,0xff,0x78,0xff,0xdd,0x5e,0x05,0x54,0xd4,0xd5,0x02, 0x5a,0x53,0xfd,0xd7,0x00,0x00,0xe8,0xf1,0xfb,0xff,0x7f,0xe8,0xfb,0xff,0xff, 0x82,0x7f,0xeb,0xff,0x02,0x00,0x00,0xf7,0xdd,0xfe,0xbf,0xfa,0xfd,0x57,0x00, 0x00,0x00,0x00,0x78,0x7b,0x7e,0xad,0xff,0xbf,0x06,0x6a,0xe8,0x54,0x25,0xea, 0xab,0xf6,0xaf,0x01,0x00,0xe0,0xd0,0x6e,0xfd,0x3f,0x70,0xaf,0xda,0xff,0xc5, 0xd6,0xff,0x7f,0x01,0x00,0x00,0x5d,0xf7,0xff,0x8b,0xfe,0x7c,0x09,0x00,0x00, 0x00,0x00,0xe8,0x7f,0x7b,0xfe,0x6a,0x1d,0x05,0x54,0x54,0x02,0x00,0xea,0x56, 0xfd,0xff,0x00,0x00,0xb4,0xf8,0xff,0xff,0x5f,0xe8,0xfd,0xff,0x9f,0xc3,0x7f, 0xed,0xbf,0x00,0x40,0x00,0xff,0xbf,0xff,0xef,0xff,0xd8,0x02,0x00,0x00,0x00, 0x00,0xfc,0xbe,0x7e,0xda,0xff,0x9f,0x06,0x68,0x50,0xa0,0x00,0xb5,0x5f,0xff, 0x7f,0x01,0x00,0xc0,0x68,0xb5,0xfd,0x1f,0xf8,0xb7,0xed,0x0f,0x42,0xed,0xff, 0x7f,0x01,0xc0,0x01,0x6b,0xed,0xff,0xbf,0x7e,0x5c,0x11,0x00,0x00,0x00,0x00, 0xae,0x9f,0xff,0xfc,0xad,0x5d,0x05,0x54,0xa8,0x56,0x01,0xea,0xb5,0xff,0x5f, 0x00,0x00,0x50,0xf8,0xff,0xff,0x1f,0xec,0xfe,0xfb,0x0f,0xc1,0x7f,0xeb,0xdf, 0x00,0x60,0x03,0xfe,0xbf,0xff,0xf7,0x37,0x34,0x00,0x00,0x00,0x00,0x00,0xfa, 0xcf,0xbf,0x54,0xff,0x5f,0x05,0x68,0x54,0x55,0x03,0x7c,0xff,0xfb,0x7f,0x00, 0x00,0x20,0xa8,0xad,0xfe,0x0f,0xfe,0x5b,0xef,0x87,0x87,0xd5,0xff,0x7f,0x01, 0xc0,0x07,0xaf,0xf5,0xff,0xff,0x1f,0xfc,0x00,0x00,0x00,0x00,0x80,0x6f,0xb7, 0xff,0xf8,0xd7,0x5a,0x15,0x54,0x54,0x55,0x03,0xfc,0xdb,0xff,0x9f,0x00,0x00, 0x40,0xfc,0xff,0xff,0x87,0x7e,0xff,0xfd,0xc7,0xc7,0x7f,0xed,0xbf,0x00,0x70, 0x0f,0xfb,0xbf,0xff,0xff,0x0a,0xde,0x00,0x00,0x00,0x00,0xc0,0xff,0xeb,0x2f, 0x68,0xfd,0x7f,0x55,0x7b,0xa8,0xff,0x03,0xd8,0x7e,0xfd,0x5f,0x00,0x00,0x00, 0xb4,0xd6,0xfe,0x07,0xfb,0xd5,0xf7,0x83,0x8e,0xed,0xff,0x5f,0x00,0xf8,0x07, 0x6e,0xed,0xff,0xaf,0x05,0xf7,0x00,0x00,0x00,0x00,0xe0,0xea,0xf7,0xaf,0xf8, 0xb7,0x36,0x55,0x35,0xf0,0x02,0x00,0xf0,0xeb,0xff,0x37,0x00,0x00,0x00,0xfc, 0xff,0xff,0x83,0xff,0xff,0xfe,0xe1,0xcf,0x7f,0xeb,0xbf,0x00,0xb0,0x07,0xfa, 0x7f,0xff,0xb5,0x82,0xfd,0x08,0x00,0x00,0x00,0xb0,0xff,0xf9,0x1f,0xd0,0xfe, 0x3f,0x55,0x1d,0x00,0x00,0x00,0x58,0xbf,0xfd,0x5f,0x00,0x00,0x00,0xd8,0xda, 0xfe,0xc1,0xfd,0xb6,0xf7,0xf0,0x8f,0xda,0xff,0xbf,0x00,0xfc,0x43,0xae,0xd5, 0xff,0x4b,0xc0,0x7f,0x22,0x00,0x00,0x00,0xe8,0xf6,0xf6,0x27,0xf0,0xad,0xf5, 0xaa,0x0f,0x00,0x00,0x00,0xf8,0xed,0xff,0x2f,0x00,0x00,0x00,0xfc,0xff,0x7f, 0x60,0x9f,0xff,0x7d,0x58,0x87,0x7f,0xad,0x7f,0x00,0xee,0x2b,0xfe,0x7f,0xff, 0x06,0x60,0x3d,0x14,0x00,0x00,0x00,0xbc,0xff,0xfe,0x0b,0xa0,0xff,0xff,0xff, 0x01,0x00,0x00,0x00,0xbc,0xbf,0xfe,0x37,0x00,0x00,0x00,0x54,0xab,0x3e,0xf0, 0xcf,0x55,0x7f,0xf4,0x87,0xeb,0xff,0xbf,0x00,0xfb,0xa1,0x6c,0xed,0x7f,0x13, 0xd0,0x3f,0xa9,0x00,0x00,0x00,0xf6,0x7b,0x7f,0x05,0xe0,0xb6,0xd6,0x0f,0x00, 0x00,0x00,0x00,0xec,0xf6,0xff,0x1f,0x00,0x00,0x00,0xfc,0xff,0x0f,0xb8,0x67, 0xff,0x3b,0xfe,0x83,0x7e,0xdb,0xbf,0x00,0xef,0xd0,0xfc,0xbf,0xfd,0x01,0x78, 0x1f,0x2d,0x00,0x00,0x00,0xdd,0x7e,0xff,0x13,0xe0,0xfd,0xff,0x2f,0x00,0x00, 0x00,0x00,0xf8,0xdf,0xfe,0x4f,0x00,0x00,0x00,0xd8,0xda,0x0a,0xec,0xe3,0xdd, 0x3e,0xed,0x21,0xdb,0xfd,0x5f,0xc0,0xfd,0xec,0xd4,0xf6,0xff,0x02,0xec,0x8f, 0x56,0x00,0x00,0x80,0xf7,0x9f,0xff,0x00,0xa0,0xaf,0xb5,0x17,0x00,0x00,0x00, 0x00,0xae,0xfa,0xff,0x17,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xa3,0xf7,0xd7, 0xff,0x51,0xff,0x57,0x03,0xe0,0x7f,0x74,0xf9,0xbf,0x0a,0x00,0xbe,0x47,0x5f, 0x00,0x00,0xc0,0xbe,0x1e,0xbf,0x02,0x60,0xfb,0xff,0x01,0x00,0x00,0x00,0x00, 0xff,0xaf,0x0e,0x18,0x00,0x00,0x00,0xb8,0xad,0xad,0xf7,0xe1,0x5e,0x7d,0xf5, 0x54,0xaa,0xfe,0x05,0xf8,0x3e,0xda,0xb9,0xea,0x1f,0xa0,0xf7,0xa3,0x5d,0x00, 0x00,0xf0,0xef,0x0f,0xde,0x00,0xe0,0x6f,0xad,0x02,0x00,0x00,0x00,0x80,0xb6, 0xfd,0x0f,0x00,0x00,0x00,0x00,0xe0,0x7f,0xff,0xfd,0xc0,0xfb,0xef,0x7f,0xb0, 0xfe,0xb7,0xff,0xaf,0x1f,0x7d,0xe1,0xbf,0xed,0xff,0xfd,0x53,0x2f,0x00,0xf0, 0xbf,0xba,0xfd,0x7e,0xe0,0xbf,0xfd,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x77, 0xfb,0x27,0x00,0x00,0x00,0xb0,0xea,0x6b,0x7f,0x48,0xbf,0xbd,0x7d,0xed,0xb6, 0xfd,0xd6,0xfe,0x0f,0xb5,0x70,0xf7,0xbf,0x56,0xff,0xe1,0x2b,0x00,0xb8,0xed, 0xff,0x6f,0x1f,0x71,0xfb,0xaf,0xb5,0xed,0x03,0x00,0x80,0xb6,0xd5,0xde,0xaf, 0x1e,0x00,0x00,0x00,0xf0,0xff,0xfe,0x3f,0xd5,0xeb,0xf7,0x3f,0x78,0xfd,0xdf, 0xff,0xdb,0xa7,0xfe,0xc2,0xdd,0xf6,0xff,0x7b,0xb4,0x17,0x00,0xe8,0xfb,0xd6, 0xfa,0x4f,0xd0,0xaf,0xfa,0xff,0xbf,0x07,0x00,0x80,0xff,0xff,0x7b,0xfd,0x3d, 0x00,0x00,0x00,0x60,0xb7,0xaf,0x0f,0xda,0xbe,0x7d,0x7f,0xb7,0x58,0xf5,0xda, 0xfe,0x43,0x2f,0xc0,0x7f,0xdf,0x6a,0x3f,0xfa,0x0a,0x00,0x78,0xaf,0xff,0xaf, 0x1e,0x70,0xfd,0xbf,0x56,0xf5,0x07,0x00,0x80,0x55,0x5b,0xef,0xb7,0x3f,0x00, 0x00,0x00,0xc0,0xfd,0xfa,0xbf,0xbd,0xf7,0xd7,0x5f,0x7d,0xf1,0xbf,0xff,0xfb, 0xa9,0xb7,0x80,0xea,0xf5,0xff,0x1f,0xea,0x25,0x00,0xd8,0xfd,0xb5,0xfd,0x17, 0xe0,0x6f,0xeb,0xff,0x5f,0x07,0x00,0x00,0xff,0xff,0xfd,0xfe,0x3b,0x00,0x00, 0x00,0xc0,0xd7,0xff,0xdf,0xd6,0xbd,0xfe,0xff,0xaf,0xe0,0xed,0x56,0x7f,0xe8, 0x1b,0x00,0xbf,0xbf,0xf6,0xc7,0x7e,0x03,0x00,0xf0,0xff,0xff,0xff,0x4f,0xe0, 0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00, 0x80,0x7e,0xff,0xbf,0x7f,0xee,0xff,0xff,0x5f,0x80,0xbf,0xff,0x9f,0xb6,0x4d, 0x00,0xf5,0xed,0xff,0x52,0xbf,0x01,0x00,0xe0,0xff,0xff,0xff,0xaf,0xc0,0xff, 0xff,0xff,0xff,0xa7,0x00,0x00,0xfe,0xff,0xff,0xff,0x5f,0x05,0x00,0x00,0x00, 0xff,0xff,0xff,0x17,0xfe,0xff,0xbf,0x37,0x00,0xff,0xff,0x57,0xfd,0x07,0x00, 0xfc,0xff,0xbf,0xfb,0x7b,0x04,0x00,0x00,0x80,0xf6,0xff,0x5f,0x02,0x40,0xfd, 0xff,0xff,0x5f,0x02,0x00,0x00,0xa4,0xff,0xff,0xbf,0x12,0x00,0x00,0x00,0xfa, 0xff,0xff,0xaf,0xf0,0xff,0xff,0x9f,0x40,0xfd,0xff,0xff,0xff,0x11,0x00,0xf4, 0xff,0x7f,0xdd,0xaf,0x00,0x00,0x00,0xfa,0xfe,0xff,0x77,0x01,0xb4,0xf7,0xff, 0xff,0xb7,0x01,0x00,0x40,0xfb,0xff,0xff,0xdf,0x0d,0x00,0x00,0x00,0xf4,0xff, 0xff,0x15,0xa8,0xff,0xff,0x05,0x00,0xfe,0xff,0xbf,0xbf,0x04,0x00,0xe9,0xff, 0xff,0xff,0x5b,0x00,0x00,0x00,0xd0,0xff,0xff,0xbf,0x05,0xd0,0xff,0xff,0xff, 0x7f,0x05,0x00,0x80,0xfe,0xff,0xff,0xff,0x2b,0x00,0x00,0x00,0xf0,0xff,0x7f, 0x05,0xd0,0xff,0xff,0x2b,0x20,0xf5,0xff,0xff,0xdb,0x02,0x00,0xd0,0xff,0xff, 0xff,0x0e,0x01,0x00,0x00,0xec,0xff,0xff,0x7f,0x01,0x68,0xff,0xff,0xff,0xff, 0x02,0x00,0x40,0xef,0xff,0xff,0xff,0x17,0x00,0x00,0x00,0xda,0xff,0xff,0x11, 0xa0,0xff,0x7f,0x05,0x00,0xf8,0xff,0xff,0x2f,0x00,0x00,0xd4,0xff,0xff,0xbf, 0x03,0x00,0x00,0x00,0xf2,0xfb,0xff,0xff,0x05,0xd2,0xfd,0xff,0xff,0x7f,0x01, 0x00,0x20,0xbd,0xff,0xff,0xf7,0x0b,0x00,0x00,0x00,0xe0,0xff,0x2f,0x02,0x40, 0xff,0x5f,0x01,0x00,0xa5,0xff,0xff,0x2d,0x01,0x00,0xa0,0xfe,0xff,0xff,0x10, 0x00,0x00,0x00,0xa8,0x5e,0x55,0x55,0x00,0xa8,0xab,0xaa,0x56,0x55,0x05,0x00, 0x80,0x76,0x55,0x55,0xad,0x2a,0x00,0x00,0x00,0x50,0x7d,0xab,0x00,0x50,0xfd, 0xb7,0x08,0x00,0xd0,0xfe,0x77,0x15,0x00,0x00,0x00,0xfb,0xff,0x15,0x05,0x00, 0x00,0x00,0xa4,0xa2,0xaa,0xaa,0x02,0x40,0x55,0x55,0x55,0x55,0x01,0x00,0x90, 0xaa,0xaa,0xaa,0xaa,0x0a,0x00,0x00,0x00,0x44,0xaf,0x15,0x00,0x80,0x56,0x15, 0x00,0x00,0x24,0xb5,0xae,0x42,0x00,0x00,0x40,0xad,0xad,0x56,0x00,0x00,0x00, 0x00,0x80,0x94,0x2a,0x25,0x00,0x90,0x94,0x54,0xa9,0x24,0x00,0x00,0x00,0x90, 0x52,0x92,0x24,0x01,0x00,0x00,0x00,0x80,0xa8,0x44,0x00,0x00,0x54,0x95,0x00, 0x00,0x40,0x55,0xa9,0x00,0x00,0x00,0x00,0x52,0xb5,0x0a,0x00,0x00,0x00,0x00, 0x10,0x20,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x04,0x00, 0x00,0x10,0x00,0x00,0x00,0x00,0x10,0x52,0x02,0x00,0x80,0x52,0x02,0x00,0x00, 0x00,0x48,0x15,0x04,0x00,0x00,0x00,0x48,0x42,0x81,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x10, 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; x-face-1.3.6.24/x-face-beta-logo.xpm0100644000227700000130000010370106440747731016172 0ustar yamaokastaff/* XPM */ /* Font: -*-utopia-bold-i-*-*-111-*-*-*-*-*-*-* */ static char *x-face-beta-logo[] = { /* width height ncolors chars_per_pixel */ "352 96 26 1", /* colors */ " s None c None", "# c #000000", "a c #111111", "b c #202020", "c c #2C2C2C", "d c #363636", "e c #363ACC", "f c #474747", "g c #5C5C5C", "h c #606060", "i c #696969", "j c #7F7F7F", "k c #8A8A8A", "l c #939393", "m c #990000", "n c #9B9CCB", "o c #A6A6A6", "p c #AF0000", "q c #B1B1B1", "r c #BABABA", "s c #C1C1C1", "t c #C8C8C8", "u c #D20000", "v c #E6E6E6", "w c #F50000", "x c #FFFFFF", /* pixels */ " ", " ", " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ", " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ", " xxneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeen xxneeeeeeeeeeeeeeeeeeeeeeeeeen xxneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeen ", " xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee xxeeeeeeeeeeeeeeeeeeeeeeeeeeee xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ", " xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee# xxeeeeeeeeeeeeeeeeeeeeeeeeeeee# xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## ", " xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## xeeeeeeeeeeeeeeeeeeeeeeeeeeee## xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## ", " neeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## neeeeeeeeeeeeeeeeeeeeeeeeeee## neeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## ", " #####eeeeeeeeeeeeeeeeeeeee#########qqqqrrsst#####eeeeeeeeeeeeeee#########qqqqrss #####eeeeeeeeeeeeeeeeeeee###############eeeeeeeeeeeeeeee##qqqqrsst ", " ####eeeeeeeeeeeeeeeeeee#########llllloqqrs ###eeeeeeeeeeee###########llllloqrs ####eeeeeeeeeeeeeeeee####################eeeeeeeeeeeee##llllloqrs ", " sqxeeeeeeeeeeeeeeeeee###jjjjjjjjjjjlloqs xxxxeeeeeeeeeee######jjjjjjjjjjjlloqs sxxeeeeeeeeeeeeeeeee####jjjjjjjjjjjjjjj###eeeeeeeeee###jjjjkloqrs ", " rqxneeeeeeeeeeeeeeeee##gggggggggggijklqrvxxxeeeeeeeeeee####gggggggggggggijklqr vxxeeeeeeeeeeeeeeeee##gggggggggggggggggggg#eeeeeeeee###ggghjjloqs xx ", " rolxeeeeeeeeeeeeeeeeee#dddddddddddgijlorxxxneeeeeeeee#####ddddddddddddddgijlor vxxeeeeeeeeeeeeeeee###dddddddddddddddddddddxeeeeeeee##ddddfhjklqs xxxmm ", " rolxneeeeeeeeeeeeeeeee#bbbbcccddddgijloxxxneeeeeeeee#####bbbbbbbbcccddddgijlor xxneeeeeeeeeeeeeeee###bbbbbcccdddddddddddddxeeeeeeee##bbbbdfhjlqs xxxxx xmmpmm ", " roljxeeeeeeeeeeeeeeeeee####abbcdddgijlxxxxeeeeeeeee####a#######aabbcddddgijlor xxneeeeeeeeeeeeeeee#######aabccddddddddddddxneeeeeee######bdgikos x xxmmmmm mmwum# ", " rqlkxneeeeeeeeeeeeeeeee###abcddfggijkxxxxeeeeeeeee####ba######abbcdfggggijklqr vxxeeeeeeeeeeeeeeeee######aabcdfggggggggggggxxeeeeee#######bdgjlqt xxxxxmxx mpwwwm# xpwwm# ", " sqollxeeeeeeeeeeeeeeeee###abdfghjjjlvxxxneeeeeeee####dba#####abcdfghiijjjlloqs vxxeeeeeeeeeeeeeeeee######abcdghijjjjjjjjjjjxxeeeeee######acfhjlr xxmmmmmmmmx xuwwwmm xuwwm# ", " srqoxeeeeeeeeeeeeeeeeee##acdghjklloxxxneeeeeeee####fdba###aabdfghjjkkllloqrs xxneeeeeeeeeeeeeeee#######bcdgijklllllllllllxxeeeeee##a###acfijor xxmmwwummwwum xxuwwwwm# xmwum# ", " srrxneeeeeeeeeeeeeeeee##acfgjkoqqxxxnneeeeeee####igdba##abcdfhijllooqqqrss xxneeeeeeeeeeeeeeee######abdgijloqqqqqqqqqqqxxeeeeee##ba##adgikos xxx xxmuwwmmmmmwwum xmuwwwwpm xmwum# ", " xeeeeeeeeeeeeeeeeee#acfhjlrtxxxxeeeeeeee####kigdba#abcdgijklqrsst xxneeeeeeeeeeeeeeee######acfhjlqst txxeeeee###ba##bdgikos xx xmmm xxmuumm####m#wwm# xxmuwwwwwmm xmuum# ", " xneeeeeeeeeeeeeeeee#acfhjlqxxxxeeeeeeee####ljhfcbaabcdgijloqst vxxeeeeeeeeeeeeeeeee######adgikos xxeeeee###cb##bdgjlqt xxxxxxxmmx xmmm# xmmwmm## mmumm mmuwwwwwwm# xmpwm# ", " xeeeeeeeeeeeeeeeee##bdgjlxxxxeeeeeeee####ljifdbaabcfgiklqrst vxxeeeeeeeeeeeeeeee#######bdgikos vxeeeee##gdbaacfhjlr xxmmmmpupmmm mpm# xmuwm## mmwmm xmuwwwumumm muwm# ", " xeeeeeeeeeeeeeeeeee#acfixxxxneeeeeee####okigdbaabcfgjkoqrst xxneeeeeeeeeeeeeeee#######bdgjlqt veeeee##hfcaacfijor xxx xxmmuwwwwwwuum xmmm xxmuwmm muwm# mwwwwmmwwm# xwwum ", " xneeeeeeeeeeeeeeeee#abdgxxxneeeeeee####okigdcbabcfgjloqst xxneeeeeeeeeeeeeeee######acfhjlr neeee##igdaadgikos vvxxxxxxxmmmxx xxxxxxxmmwwpppmmmuwum xmpm# mpwwm## vvxwwm#xxxxxwwwpmxwwp# xuwwm# vvvxxxxxxxxxvv ", " xeeeeeeeeeeeeeeeeee#bdxxxnneeeeee####oljgdcbbbcfgjloqst vxxeeeeeeeeeeeeeeeee######acfijor ######igdbbdgjlqs xx xxxxxxxxxxxmmmmmmmxxxxxxxxmpwpm####xmwwm# xpwm# xwww## vxxxxxuum#xxxxxpwwm##muum xxmwwm# vvxxxxxxxxxxxxxxxxxxv ", " xneeeeeeeeeeeeeeeee#axxxxeeeeeee####qljhfcbbbcfgjloqst vxxeeeeeeeeeeeeeeeee######adgikos ####ljgdccfhjlxxxxxxmmxxxxxxmpmmmmmuuuwwwwpmxxnneexpwmm##ennvmwwwm xuwm# xuwwm#vxxxxxxxxmm##eeexx#wwm#xxmum# mmwwmm vxxxxxxnnneeeeeeeeeeennxx ", " xeeeeeeeeeeeeeeeee##xxxeeeeeee####qljifdbbbcfgjloqst xxneeeeeeeeeeeeeeee#######bdgjlqs qljgdccxxxxxmmmmmmpmmxxxxmwwummpummmpuwwm#eeeeexwwm##eeeen muum# xxmwm# xxmwmm#xxxxxnnemmm#eeeeemmmwmmeemumm xmwwpm# vxxxxxneeeeeeeeeeeeeeeeeeeex ", " xeeeeeeeeeeeeeeeeee#xxeeeeeeee###qokigdcbbcfgjloqst xxneeeeeeeeeeeeeeee######acfhjlqt vxxxxx xxxgddxxmmpmmuuwwwwum#eeemwwpmm####mmmuwumeeeexxpwm#eeeee## #### mmwmm mmwm##xxnneeeexmm#eeeeexmmwpm#exmumm muwwm# vxxxxxneeeeeeeeeeeeeeeeeeeeeeee ", " xneeeeeeeeeeeeeeeee#xeeeeeeee###qokigdcbbcfgjloqst xxneeeeeeeeeeeeeeee######acfijor xxxxxxx xxmmmddxmmwwwwuuwupmmm#eeexpwm###eeee#xmwwm#eeexmmwm#eeeee##i xmwum# xmwpmxneeeeeeexmpmeeeeeemwwwm#eemwwm#xwwwm# xxxxxneeeeeeeeeeeeeeeeeeeeeeeeeee ", " xeeeeeeeeeeeeeeeee#eeeeeeee###ioljgdccccfgjloqst vxxxxv vxxeeeeeeeeeeeeeeeee######adgikos xxxneeen xmmum#gxmwwwmmmmm##m###eeexmwm#eeeeeeexmwwm#eeeempwmmeeeee## xmwwpm xmwwm#eeeeeeeeemwm#eeeeexuwwm#eexmwmxxpwwm# vxxxxneeeeeeeeeeeeeeeeeeeeeeeeeeeeee ", " xneeeeeeeeeeeeeeeeeeeeeeee###ioljhfdccdfgjloqst vxxxxxxxxx vxxeeeeeeeeeeeeeeeee######bdgikos xxmmmeee# xxmuwm#ixpwwm#m####ee#eeeeexmwm#ee#####xmwwm#eeeexmwumxxeee##qqqqrrssxmwwwm# xxmwwm#eeeeeeeeexpmm##eexxpwum#eexmuwmmmwwm# xxxxxeeeeeeeeeeeeee#####eeeeeeeeeeeeeersst ", " xeeeeeeeeeeeeeeeeeeeeeee###iqljhfdccdfgjloqst vxxxxxneeeenxx xxneeeeeeeeeeeeeeee#######bdgjlqt xmpummee## mmwm##jxmwwm#x#neeeeeeeeeexmwp########xmwwm#eeeeemwwummmxxxxxlllooqrxmuwwm#xxxxmpm#eeeeeeeeexmmm###exmpwmm#eeemmwmmmwwm# xxxxneeeeeeeeeeeee########eeeeeeeeeeeeeeqqrst ", " xeeeeeeeeeeeeeeeeeeeeee####qljifdcccdgjloqst vxxxxneeeeeeeeex xxneeeeeeeeeeeeeeee######acfhjlr xmmwpm#e## xxmwm#llxmwwp#xeeeeeeeeeeeexmwum###ikjxxmwwm#eeeeexmwwuwwuummmmjjkloqxmmwwm#xxxxmpm#eeeeeeee#xmmm#lxxemmwm##eeeemummmwwp#st xxxxeeeeeeeeeeeeee#####lkjxxeeeeeeeeeeeee#loqrst ", " xneeeeeeeeeeeeeeeeeeee####llkigdcbcdgikoqst xxxnneeeeeeeeeeee vxxneeeeeexxxeeeeeee######acfijor xxxmwwm#e## xmpwm#ooxmwwumeeeeeeeeeeeeexmwwm#ijjxxxmmwpm#eeeeeemmmmuwwwuuupmxjklormmwwm#xxexmum#eeeeeee##xmum#jixexmwp#eeeeexmwuwwwumrstxxxxeeeeeeeeeeeeee####ljjiixxeeeeeeeeeeeee#iloqrst ", " xeeeeeeeeeeeeeeeeeee####jjjigdcbcdgikoqst vxxxeeeeeeeeeeeeeee vxxeeeeexxxmmmeeeeee######adgikos xxxxmmwu###issrrxmwum#rrxmuwum#eeeeeeeeeeeexmpwmxxxxxmmuwum##eeeeeee##mmmpmumpwwmmjkoxxmwwumxeexmwpmeeeeee###xmwu#gjxnxmwumeeeeexmwwwwwum#qvxxxeeeeeeeeeeeeee####jjiggfxxeeeeeeeeeeeeee#jkloqst ", " xneeeeeeeeeeeeeeeee####gghhgdcccdfijlqst xxxneeeeeeeeeeeeeee# xxx xxxxxxneeeeexmmmup#eeee#######bdgikos xxxxexmwum##irqqoxmuum# xmpwum#eeeeeeeeeeee#mmwmmmpummuwmm##eeeeeeeeeee####mmmmwwmmjxxmuwwum#eexmwwm#eeeee##xxmwumddxxxmuwmmeeeeemmwwwwm##oxxxeeeeeeeeeeeeee####ihgfddjxxeeeeeeeeeeeeee#gijloqst ", " xeeeeeeeeeeeeeeeeee##ddffffdccdfhjlqrt vxxneeeeeeeeeeeeeeeee#rsst xxxmmmxxmmmmxneeeeexmwwwwmeeee#######bdgjlqt vxxxxeeemmwpm#rqollxmpum# xxmuwwmxxxxxxxxeeee##xmwwuwwwwuuwumxeeeeeeeeeeeeee#####xmwwmmxmmmwwm##eexmwwumeeee###xmmwmm#cxxxmpwum#eeeeempwwwm#jxxxneeeeeeeeeeeee####hgfdcbbjxxeeeeeeeeeeeeee##ghjloqst ", " xeeeeeeeeeeeeeeeeee#bccddddccdfhjlors xxxeeeeeeeeeeeeeeeeee#oqqxxxmmpwwuupuup#neeeexxmumpwpmeee##xxxxxxxxxxxxxxxxxeeeeempum#qoljjxmpum#xxxmwwwmmmmmmmmmmee###xmwwppwwwmmmwwmmeeeeeeeexeeee#####xmwwwummxmuum#eeeemmpwpmee###xxmpum##bjxnmmwwm#eeeeexmmmmm#xxxneeeeeeeeeeeeee###gfdcbaaajxxeeeeeeeeeeeeee##dfhjlors ", " xneeeeeeeeeeeeeeeee##bbbbbccdfgjloqst xxneeeeeeeeexxxxxxxeee#xxxmpuwwwwwwwuwpmeeeeexmmummpum#ee##xxxxxxxxxxxxxxxneeeeeexmwm#oljiixmwum#xxxpwwwwmmpwwwwwp#e###xmwumm#mmm#mmwwm#eeeeexxxmee######xmpwwum#xmpum#eeeeemmwwpme###xmmwpm#bcjxnxpwwm#eeeeeem#####xxxeeeeeeeeeeeeee###fdcbaaaajxxneeeeeeeeeeeeee##bcfijlqs ", " xeeeeeeeeeeeeeeeeee#aaaabcdfgjloqst xxneeexxxxxxxmmmmmmmexxxmmmwwwuuupmmmmmm#eeeexmpummmum#eeeeeeeeeeeeeeeeeeeeeeeeeexpwpmljiggxpwu##xxxmwwwwwwwwwppmm####cxmwum##b###xxmpumeeeexxmmmme######xmuwwmm#xmuum#eeeeexmwwwmxxxxxmwum##cfgixempmm#eeee######axxxeeeeeeeeeeeeeee###cbaa##abjxxneeeeeeeeeeeeee##abdgikort ", " xneeeeeeeeeeeeeeeee###aabdfgjloqst xxeeexxmmmmpmmmuwwwpmemmmmmmmmmmm########eeeeempwmmpwpmeeeeeeeeeeeeeeeeeeeeeeeeeexmwwp#igddx#wm#xxxxmwwwwwummmmm######bxmppm#bcdxxxxmuum#eeeemmwum########mpwpm##xmuwm#eeeeeemmwwpmmmmmwwmm#cdgikleem###eee#######xxxneeeeeeeeeeeeee###cba###abjxxxeeeeeeeeeeeeeee###acfhjlqs ", " xxeeeeeeeeeeeeeeeeee###acdgikoqstxxxxxxx vxeeexmmuuuummupuwpmm##########mm# xxneeeeexxuwm#mwwp#eeeeeeeeeeeeeeeeeeeeeeeeeemmwpmhfdxxmum#xxexmpwwww#m#####e###aaxmuum#cfjxxxempwm#eeeexpwwm#######xxuwp##xxxpwp#eeeeeeemmwwumpuwwmm##dgikoqsee#eee########jxxxeeeeeeeeeeeeeee###aa###abcxxxneeeeeeeeeeeeee#####bdgikos ", " xxxeeeeeeeeeeeeeeeeee###bcfhjxxxxxxmmmmmmmx xneeempwmm##mmmm#######cdgjkoxxm# vxxeeeeeexmwu##xmwumeeeeeeeeeeeeeeeeeeeeeeeeeexmumm#dcxmmum#xnexmpwwwum##eeee###a###mpwm#fjxxxnexuwmmeeeeemwwu######xx#wwm#xxxxmwu#eeeeeeeemmpmmppmm###dgikoqst #############xxxneeeeeeeeeeeeee###a####abcjxxxeeeeeeeeeeeeeee#####acfijor ", " xxxxeeeeeeeeeeeeeeeeeee##bdgikxmmmmmmpwppwummxneeexuwm##eem###eeee##acdgjlxmm# vxxeeeeeexmwp#exmwwm#eeeeeeeeeeeeeeeeeeeeeeeeexmpummccdmpum#xeeemmwwwwm#eeee########xuwp#gjxxxeexuwwm#eeeexpwwmx##xxxmuwmm#xxxxmummeeeeeeeee###mmm###bcfhjlqst ######a#####xxxeeeeeeeeeeeeeee########acdxxxneeeeeeeeeeeeeee#####acfhjlr ", " vxxxeeeeeeeeeeeeeeeeeeee##bdgjlxuwm#mmmmmmpwwpmxeeexwwwmeeee#eeeee####acfhxxmm# xxneeeeexxmummeemuwmm###############eeeeeeeeee#mmwum#cdxuum#eeeexmwwwwm#eeee########xpwp#ikxxneexmwwp#eeeexmwwummxxmmmwmm##xxnemmm##eeeeeeee########acdgjlqrt sqljgdb####xxxneeeeeeeeeeeeee########abdxxxneeeeeeeeeeeeeee#######cfhjlq ", " xxxeeeeeeeeeeeeeeeeeeeee##bdgjlxwwm# #####muwwm#neexmwwm#eeeeeeeee####abdgxmmmm xxneeeeexmmwmm#exmuum#################eeeeeeee##mwwp#cxxwu##eeeexmwwwum#eee#########xmwpmkxxxneexmuwm#eeeeemmuwwuuppuupm##xxxeee###eeeeeeeee#######abdgikors tqljhfca##jxxxeeeeeeeeeeeeeee########acxxxxneeeeeeeeeeeeee########bdgjlq ", " xxxneeeeeeeeeeeeeeeeeeeeee#bdgikxpmm# muwm#xexxmwwmmeeeeeeee######adgxmpum#vxxeeeeeeempwm##eemuwm#####acdfgijjjjjj#eeeeeee##xuwpxxxmwp#eeeeexmwwwm##eee########abmmpm#xxxeeeemmwpmeeeeeemmmpwwwupm###vxxneeeeeeeeeeeeee########acfhjlqst rokigda##xxxneeeeeeeeeeeeeee#######ajxxxxeeeeeeeeeeeeeeee########cfhjlq ", " xxxneeeeeeeeeeeeeeeeeeeeeee#acfhjxmmm# xmumm nemmwwmm#eeeeeee######acfhmuum#vxxeeeeeeexwwm#eeexwwwm####abcdfgggggggxeeeeeee##cmuummmmwm#eeeeexmwwwmmeeexxxxxx###axxmummxxneeeeemuummeeeeee#mmmpmmm##jlxxxeeeeeeeeeeeeeee#######abdgikort sqljhfdccxxxeeeeeeeeeeeeeee########xxxxxeeeeeeeeeeeeeeee########acfhjlr ", " xxxxeeeeeeeeeeeeeeeeeeeeeeeee#bdgixmmmx xmuum# exmuwum#eexeee########cfhxwwm#xxneeeeeexxwwp#eeexmwwp####aabccdddddddxxeeeee###xxmuwppwwm#eeeeexmuwwpmxxxxmmmmmm#abdmmwm##xeeeeeexmmm##eeeee#########hjlxxneeeeeeeeeeeeeee#######acfhjlqs sqokjhgfjxxneeeeeeeeeeeeeee######jxxxxxeeeeeeeeeeeeeeee#########acfijor ", " xxxxeeeeeeeeeeeeeeeeeeeeeeeeee#acfhxmpumm xmuwm# #mwwwm#xxxmxxx#######cfhxuwm#xxneeeeexxmwwm#xxxxmpwm###aabccddddddddxxeeeee####mmwwwwwum#eeeeeempwwwmmmmmmwwwwmmbcfxumm#xneeeeeeem###eeeeee######acfijvxxeeeeeeeeeeeeeeee#######bdgikort trqlkjihxxxneeeeeeeeeeeeeee#####xxxxxneeeeeeeeeeeeeee###########bdgikos ", " xxxxeeeeeeee#eeeeeeeeeeeeeeeeee##bdgjmwwwm# xxpwwm# xpwwmxxmmpmm#m#####acfhxmum#xxneeeeeemmwmmxxmmmmuwmm#aabccdddddddddxxeeeee##a#xmuwwwwwm#eeeeeeemwwwumpwwwwwwwum#dgjmmm#xeeeeeeeee#eeeeeee#######adgikxxxeeeeeeeeeeeeeee#######abdgjlqs srqolkjxxxeeeeeeeeeeeeeeee###xxxxxxeeeeeeeeeeeeeeee###########acfhjlqs ", " xxxxneeeeeee###eeeeeeeeeeeeeeeeee#acfixwwwm# xmwwmm# rmpwwummmuwwwm#####adgixmm##xxeeeeeexxmwmmmmuwwwwwwmmabcdfgggggggggxxeeeee##bxxmwwwwwum#eeeeeeexuwwwwwwwppmmmmm#giko###neeeeeeeeeeeeeeeee#######bdgjlxxneeeeeeeeeeeeeee#######acfijort tsrqoolxxneeeeeeeeeeeeeeee##xxxxxneeeeeeeeeeeeeee############abdgikort ", " vxxxneeeeeee####eeeeeeeeeeeeeeeeee#abdxxpwwmxxxxxxmwpm## sxmuwwwwmmpumm####abdgjxmmmvxxeeeeeexmmwummmwwuppmwwm#cdfgijjjjjjjjxxeeeee##cxmuwwwwwm##eeeeeeeemwpmmmmmmm######hjlqxxxeeeeeeeeeeeeeeeeee######acfhjlxxneeeeeeeeeeeeeee######abdgjlqs tssrrqxxneeeeeeeeeeeeeee###xxxneeeeeeeeeeeeeee######a#######acfhjlqs ", " xxxneeeeeeee###oxeeeeeeeeeeeeeeeeee#bdgmmwwmmmmmmmuwmm# xxmuwummm#########acfhjxmpm#xneeeeeexmwwummmmmmmmmwwpmdfhjklllllllllleeee###dxmwwwwum##eeeeeeeeee##mm#######abdgikoxxxneeeeeeeeeeeeeeeee#######acfijoxxeeeeeeeeeeeeeeee######acfhjlqs xxeeeeeeeeeeeeeeee###eeeeeeeeeeeeeeeee######ba#######abdgikors ", " xxxnneeeeeee###qlxneeeeeeeeeeeeeeeee#acfhmwwumpwwwwwwmm# xmmwpm#m########aacdgjlxmum#xneeeeeexmwwmmm######xuwwm#gjkoqqqqqqqqqqeeee###fdmuwwwm##eeeeeeeeeeeeee########acfhjlqxxxeeeeeeeeeeeeeeeeee#######adgikvxxeeeeeeeeeeeeeeee######acfijort vxxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee#######dca######aabdgijlqst ", " xxxxeeeeeeee###iljxneeeeeeeeeeeeeeeee##bdgxmwwwwwuppmpwpm xmuwwm#d#baa##aabcdgjkoqmum#xeeeeeeexmuwm###ee##xxmwwm#ikos #####jgdcmmpwmmeeeeeeeeeeeeeee#######abdgikoxxxneeeeeeeeeeeeeeeeee#######bdgjlxxneeeeeeeeeeeeeee#######bdgjlqs xxneeeeeeeeeeeeeeeeeeeeeeeeeeeeee########gdcba#####abcdgijlqrt ", " xxxxeeeeeeee###iokigxeeeeeeeeeeeeeeeeee#acfxmwwpmmm#mmmmwum xmuwwm#gfddccccddfgjklqrxpumxeeeeeexxmwwm#eee####mmuwmmjlqs ###ojifccmmmmm#eeeeeeeeeeeeee#######acfhjlxxxxneeeeeeeeeeeeeeeeee######acfhjlxxneeeeeeeeeeeeeee######acfhjlqt xxneeeeeeeeeeeeeeeeeeeeeeeeeee######iijigdcba####aabcdgijlors ", " xxxxeeeeeeee####okigdxneeeeeeeeeeeeeeeee#abdxmuwm#### #xmuwpm mpwwumjhggffffgghjklqrsxmwm#eeeeexxmmwwm#eee#####xmwum#lqt sokigdcd##m##eeeeeeeeeeeeee#######bdgikoxxxneeeeeeeeeeeeeeeeee#######acfijoxxeeeeeeeeeeeeeeee######acfijor xxneeeeeeeeeeeeeeeeeeeeeee#######iilkjhgdcba###aabcdfgijloqst ", " xxxxeeeeeeeee###oljgdcjxeeeeeeeeeeeeeeeeee#bdxmpwm# xmpwwm# xmwwwm#jjihhhhijjloqrsxxmwm#eeeeexmmmwwpmeee######mupm#or tqljgdddxxn#eeeeeeeeeeeeee#######abdgjlxxxnneee#eeeeeeeeeeeeee#######bdgikoxxeeeeeeeeeeeeeeee######adgikos x xxeeeeeeeeeeeeeeeeeeee########iiolkjigfdcbax#aabcdfgijklqrst ", " xxxxeeeeeeeee###oljgfcbbxeeeeeeeeeeeeeeeeee#acfmpwm# mmpwm# xmpwm##llkjjjjklloqrstxmpwpmeeeeexmmuwwum#ee######ammm#os qljgffjxxneeeeeeeeeeeeeee#######acfhjxxxxneeeeeeeeeeeeeeeeeee######abdgjlqxxeeeeeeeeeeeeeeee######bdgikos xxx xxeeeeeeeeeeeeeeee##########ijklkjihgdcbaaxxbbcdfghjjloqrst ", " xxxxneeeeeeee###iljhfcbbcxneeeeeeeeeeeeeeeee##bxxmwm# xmuwm# mmpp#rxqolxxxoqqrst xmwwum#eeeeemmwwwum#e#######bd###os qljiggxxxeeeeeeeeeeeeeeee#######bdgikxxxneeee#eeeeeeeeeeeeeee######xxfhjlrxxeeeeeeeeeeeeeeee######bdgjlqt xxxex xxeeeeeeeeeeeeeeee######abdfgijjihgfdcbbabxxxefghijloqrst ", " vxxxneeeeeeee###iljhfcbbbdjxeeeeeeeeeeeeeeeeee#axmuwp#t xmwwm# xmuumxxmxxxmmmsst xmuwum#eeeeeempuum##e#######bdgjlqt roljiixxxeeeeeeeeeeeeeeee######abdgjxxxnneee##eeeeeeeeeeeeee######jxxxxkosxxeeeeeeeeeeeeeeee#####acfhjlr vxxxeee xxeeeeeeeeeeeeeeee######abcdfggggfdccbbccxxxeeijjkloqrst ", " xxxneeeeeeee####ljifdbbbcfhxneeeeeeeeeeeeeeeee#axmwwu#s xmwum# xxmwummmpmmmpumm mmupm#eeeeeeemm###ee######acfhjlr rqlkjjxxneeeeeeeeeeeeeee#######acfhxxxxneeee#eeeeeeeeeeeeeee######xxxeelqsxxeeeeeeeeeeeeeeee#####acfijor xxxeeeee xxeeeeeeeeeeeeeeee######abccddffddcccdddxxxxeeeeloqrst ", " xxxnneeeeeeee###okigdbbbcdgjlxeeeeeeeeeeeeeeeeee#xmwwwmxt xxmwum# xmmwwummpuwwwpmm# mm###eeeeeeee##eeee######acfijor sqolllxxneeeeeeeeeeeeeee#######bdgixxxneeee##eeeeeeeeeeeeeee#####xxxxeeeetxxeeeeeeeeeeeeeeee#####adgikos xxxneeee## xxeeeeeeeeeeeeeeee######aabccdddddddffgxxxxeeeeeirst ", " xxxxeeeeeeeee###okigdcbbcdgikoxneeeeeeeeeeeeeeeee#xmpwwummxxxxmmumm# mmwwummmmppmmmm# vx##eeeeeeeeeeeeeeee######adgikos srqqqxxeeeeeeeeeeeeeeee######abdjxxxnneee###eeeeeeeeeeeeee#####jxxxeeee# xxeeeeeeeeeeeeeeee#####bdgikos vxxxeeeee### xxeeeeeeeeeeeeeeee######abbcdddfffgghiixxxneeeee## ", " xxxxeeeeeeeee###iljgdcbbbdgikoqxneeeeeeeeeeeeeeeee##mmwwwummmmmuw#m## mmwm#m######### vxxeeeeeeeeeeeeeeee#######bdgjlqs tsrrxxeeeeeeeeeeeeeeee######acfxxxxneeee###eeeeeeeeeeeeee#####xxxneeee##vxeeeeeeeeeeeeeeee#####bdgjlqt xxxeeeee###tttvxeeeeeeeeeeeeeeee#####aabcddfgghiijjjxxxneeeee###ttttttt ", " xxxxeeeeeeeee###iljgfcbbbdfijlqstxeeeeeeeeeeeeeeeeee#xpwwwwwwwwwwwm## #### # xxneeeeeeeeeeeeeeee######acfhjlqt xxeeeeeeeeeeeeeeee######adxxxxneeee###eeeeeeeeeeeeeee####xxxxeeee### xeeeeeeeeeeeeeeee#####bdgjlq xxxneeeee##issrrxneeeeeeeeeeeeeeee####abcdfgiijjjkllxxxxeeeee###isssssss ", " xxxxeeeeeeeeee###ljgfcbbbcfhjlqrt xneeeeeeeeeeeeeeeee#xuwwwwwumpmmm## xxneeeeeeeeeeeeeeee######acfijor xxeeeeeeeeeeeeeeee######bxxxxneeee####eeeeeeeeeeeeeee###xxxxeeeee###txneeeeeeeeeeeeeeee####bdgjlq xxxxeeeee###trqqoxneeeeeeeeeeeeeeee####acdfgijkllooqxxxxeeeeee###srqqqqqrst ", " xxxxeeeeeeeeee###ljgfcbbbcdgjlors xeeeeeeeeeeeeeeeeee#mpmmmmmmm#### xxneeeeeeeeeeeeeeee######adgikos xxeeeeeeeeeeeeeeee#####jxxxxneeee####xeeeeeeeeeeeeee###xxxxeeeee### sxneeeeeeeeeeeeeeee####bdgjlq xxxxeeeee###isqollxxeeeeeeeeeeeeeeee####bcfgikooqqrsxxxxeeeeee###trqollloqrs ", " xxxxeeeeeeeeee###ijhfcbabcdgikoqst xneeeeeeeeeeeeeeeee#a#m####### vxxeeeeeeeeeeeeeeee#######bdgikos xxeeeeeeeeeeeeeeee###jxxxxxneeee####xneeeeeeeeeeeeee###xxxeeeee###itrvxeeeeeeeeeeeeeeee####bdgjlq vxxxxeeeeee###sroljjjxeeeeeeeeeeeeeeeee###bdgijorsstvxxxxeeeeee###isqlljjkloqs ", " xxxxeeeeeeeeee###ijhfcbaabdgikoqst xneeeeeeeeeeeeeeeeee#bd#jlqs vxxeeeeeeeeeeeeeeee#######bdgjlqt xxeeeeeeeeeeeeeeeee#xxxxxxneeeee###xxeeeeeeeeeeeeeee##xxxeeeeee###tsqoxeeeeeeeeeeeeeeeee###bdgjlq xxxxxeeeeee###trqljiiixneeeeeeeeeeeeeeee###bdgjlq xxxxxeeeeee####sqokjiijjlqs ", " xxxxxeeeeeeeeeee###jifdbaabdfijlqst xeeeeeeeeeeeeeeeeee#acfijort xxxneeeeeeeeeeeeeeee######acfhjlr xneeeeeeeeeeeeeeeeexxxxnneeeee### xxeeeeeeeeeeeeeeee#xxeeeeee###tsrolxneeeeeeeeeeeeeeee###bdgjlxxxxxneeeeee###isqljigghjxeeeeeeeeeeeeeeeee##bdgjlqtvxxxxneeeeee####sroljhghijlqs ", " xxxxxxeeeeeeeeeee###kigdbaabcfhjlqrt xxeeeeeeeeeeeeeeeeeee#bdgjlqs xxxxeeeeeeeeeeeeeeeee######acfijor xneeeeeeeeeeeeeeeeeeeeeeeeeee###itxxeeeeeeeeeeeeeeeeeeeeeeee###itrqljixeeeeeeeeeeeeeeeee#xxxxxxxxxxneeeeee####srokigffgjxneeeeeeeeeeeeeeeeexxxxxxxxxxxxneeeeeee###trqljhgfghjlqs ", " xxxxxxxxxxxneeeeeeeeeeee###xxxcaaacdgjlorxxxxxxxxxxeeeeeeeeeeeeeeeeeeeexxxxxxxt xxxxxxxxxxeeeeeeeeeeeeeeeeee##xxxxxxxikos xxeeeeeeeeeeeeeeeeeeeeeeeeee####tsxxeeeeeeeeeeeeeeeeeeeeeeee###ssqljigxneeeeeeeeeeeeeeeeeexxxxxxxneeeeeee####trqljhfffgjlxeeeeeeeeeeeeeeeeeennxxxxxxnneeeeeeee###tsqljigfdghjlqs ", " xxxxxxxxxxneeeeeeeeeeeeee##xxxxxaabdgikoqxxxxxxxxxxeeeeeeeeeeeeeeeeeeeeeexxxxxxx xxxxxxxxxxeeeeeeeeeeeeeeeeeeee#xxxxxxxxlqs xneeeeeeeeeeeeeeeeeeeeeeee####tsqoxeeeeeeeeeeeeeeeeeeeeeee###qrqokigggxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####tsqljhgffgijoqneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####isqokigfdfgikors ", " xxneeeeeeeeeeeeeeeeeeeeeeeeeeeenabdfijlqsxxneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeent xxneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenlqt xneeeeeeeeeeeeeeeeeeeeee#####tsqolxneeeeeeeeeeeeeeeeeeeee###iqqokiggggjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####tsqokigfffhjlqrteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####isqokigfdfgijlqst ", " xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebcfhjlqrtxxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee# xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee#r xeeeeeeeeeeeeeeeeeeeee####isrqokjjxeeeeeeeeeeeeeeeeeeee####looljggfghjleeeeeeeeeeeeeeeeeeeeeeeeeeeee####srqokigfffgikors eeeeeeeeeeeeeeeeeeeeeeeeeeeeee####srqokigfffghjlqrt ", " xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecdgjlors xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## xxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## neeeeeeeeeeeeeeeeeee####koooljiggxeeeeeeeeeeeeeeeeee#####ijkkjhgfghjkoreeeeeeeeeeeeeeeeeeeeeeeeee#####srqlkigfffgijlqst seeeeeeeeeeeeeeeeeeeeeeeeeee#####srqlkigffffhjlors ", " xeeeeeeeeeeeeeeeeeeeeeeeeeeeeee###joqst xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##t xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## eeeeeeeeeeeeeeeee#####hjjkjjigfffgeeeeeeeeeeeeeeee#####ghijigfffgijlqss#eeeeeeeeeeeeeeeeeeeeee#####irqoljigfffgijlqrt treeeeeeeeeeeeeeeeeeeeeeee#####irqoljigfddfgikoqst ", " eeeeeeeeeeeeeeeeeeeeeeeeeeeeee##jlqst neeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##st neeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## eeeeeeeeeeeeee######dfgiiiggfffgieeeeeeeeeeeeee#####bdfggggfddfhjlqrttr#eeeeeeeeeeeeeeeeeee#####iqoolkjhgfffghjlors sqeeeeeeeeeeeeeeeeeeeee#####ioolljjhgfddfgikoqst ", " ###############################ikoqrst ######################################oqqqrst ######################################qqqrsst ieeeeeeeee#######abcdffggffffgijlieeeeeeeeee######abcdddddddfgikors sql##eeeeeeeeeeeee######illlkjjigffdfghjloqst sqlj#eeeeeeeeeeeeeee######illkkjjigffddfgiklqst ", " ##############################hjkloqrs #####################################kllloqrs ####################################llllloqrs si################abbccddddfgijloqi################abbccccddgijlqst sqlj###################iijjjiiggfdddfhjloqst trolj###################iiijjiihgfddddfgiklqrt ", " sqolljjjjiihgfdcba#####abdfghjjlloqs sqolljjjjhgfdba#############abcdghijjjlloqs sqolljjjjigfdcba###########abdfghjjjjjlloqs sqij###############aaabbcdfgijloqstrl###############aaabbcdgijlqrt troljgd#############cddfgggggffddddfhjloqst sqokigd##############cdfggggggfdddddfgiklqrs ", " rqlkjiggggffdcbaa######abcdfggijklqr rqlkjigggfddcba##############abcdfgggijklqr rqlkjiggggfdcba############abcddfggggijklqr trojifca#############aabdfgijloqst rokigda############abcdfijlors sqokigdbaa########aabccdddddddddfghjloqst trqljhfcba#########aabbcddddddddddfghjklqrst ", " roljigddddccbaa########aabccddgijlor roljigddddcbba################abbcdddgijlor roljigddddcbba##############abbcdddddgijlor sqljgdba##########aabcdghjklqrst sqljgdba#########aabcdgijloqst trqljigdcba#########aaabbccccddfgijloqst sroljhfcba###########aaabbbbccddfgijloqrst ", " roljigdddddcccbbbbbbbbbcccddddgijlor roljigdddddcccbbbbbbbbbbbbbbbbcccddddgijlor roljigdddddcccbbbbbbbbbbbbbbcccddddddgijlor sqokigdbaa#####aabbcdfgijloqrst sqljifcba######aabcdfgijloqst sroljigfdcbaa#########aabbcdfghjkloqst tsqoljhfdcbaa###########aabbcdfghjkloqst ", " roljigddddddddddddddddddddddddgijlor roljigdddddddddddddddddddddddddddddddgijlor roljigdddddddddddddddddddddddddddddddgijlor trqljigddccbbbcccddfghjkloqst troljhfdccbbbbccddfgijklqrst tsqoljihgfdcccbbbbbbbcccddfghijloqrst tsqoljigfdcccbbbbbbbbbcccddfghijloqrst ", " rqlkjiggggggggggggggggggggggggijklqr rqlkjigggggggggggggggggggggggggggggggijklqr rqlkjigggggggggggggggggggggggggggggggijklqr sroljiggffdddfffggijjloqrst sqoljigffddddffgghjjloqrst tsrqlkjihgfffdddddddfffggijjkloqrst tsqoljihgfffdddddddddfffggijjkloqrst ", " sqolljjjjjjjjjjjjjjjjjjjjjjjjjjlloqs sqolljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjlloqs sqolljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjlloqs tsqolkjihhggghhiijjlloqrst trqoljihhgggghhijjloqrst tsrqolkjiihhggggggghhiijjlloqrst tsqolkjiihhggggggggghhiijjlloqrst ", " srqqolllllllllllllllllllllllloqqrs srqqollllllllllllllllllllllllllllllloqqrs srqqollllllllllllllllllllllllllllllloqqrs tsrqolkjjjjjjjjkloqqrst srqolkjjjjjjjjklloqrst tsrqolkjjjjjjjjjjjjjkloqqrst tsrqolkjjjjjjjjjjjjjjjkloqqrst ", " tssrrqqqqqqqqqqqqqqqqqqqqqqrrsst tssrrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrsst tssrrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrsst tsrqqolllllllooqrsst tsrqqolllllllloqqrst tssrqoolllllllllllooqrsst tssrqoolllllllllllllooqrsst ", " tssrrqqqqqrrsst tssrrqqqqqqrrsst tssrrqqqqqqqqqrrsst tssrrqqqqqqqqqqqrrsst ", " ttttttttt tttttttttt ttttttttttttt ttttttttttttttt ", " ", " " }; x-face-1.3.6.24/x-face-logo.xbm0100644000227700000130000005242406515646162015247 0ustar yamaokastaff#define x-face-logo_width 352 #define x-face-logo_height 96 static char x-face-logo_bits[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff, 0xff,0xff,0x1f,0x00,0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x6b,0x6b, 0x6b,0x3b,0x00,0xdb,0xda,0xda,0x0e,0x00,0x00,0x80,0xb6,0xb6,0xb6,0xb6,0xb6, 0xb6,0xb6,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0xdf,0xdf,0xdf, 0x6f,0x00,0xf7,0xf7,0xf7,0x1b,0x00,0x00,0x80,0xff,0xfd,0xfd,0xfd,0xfd,0xfd, 0xfb,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x7d,0x7d,0x7d,0xfd, 0x00,0x5e,0x5f,0x5f,0x3f,0x00,0x00,0x80,0xd5,0xd7,0xd7,0xd7,0xaf,0x6f,0x5f, 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xef,0xef,0xef,0xf7,0x00, 0xfa,0xfb,0xfb,0x3d,0x00,0x00,0x00,0xff,0xfe,0xfe,0x7e,0xfb,0xf6,0xf7,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x7b,0x7b,0xfb,0xff,0x00,0xfe, 0xde,0xfe,0x3f,0x00,0x00,0x00,0xbe,0xb7,0xb7,0xff,0xff,0x5f,0x7d,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xdf,0xdf,0xdf,0x7f,0x55,0xb8,0xf7, 0xff,0x5f,0x05,0x00,0x00,0xf8,0xfd,0xfd,0xff,0xff,0xff,0xd7,0x57,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x75,0xf5,0x55,0x15,0xc0,0xbd,0xfe, 0xaa,0x12,0x00,0x00,0x80,0x57,0x57,0x5f,0x55,0xf9,0xfe,0xaf,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xfb,0xaf,0x60,0xef,0xaf,0xfd, 0x0d,0x00,0x00,0x80,0xfe,0xff,0xb7,0xbb,0xdf,0xb7,0xff,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x60,0x5b,0xdb,0xef,0x5e,0xc0,0xfb,0xff,0xf7,0x2b, 0x00,0x00,0x80,0xdb,0xda,0xff,0xff,0x7e,0xfd,0x77,0x05,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xc4,0xff,0xff,0xff,0x2f,0xf0,0xfe,0xff,0xdf,0x17,0x00, 0x00,0x00,0xff,0xff,0xff,0xff,0x77,0xaf,0xff,0x05,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x90,0xd5,0xaa,0xff,0x5b,0xb8,0xf7,0xff,0xff,0x0b,0x00,0x00, 0x80,0xb5,0xd6,0xff,0xf7,0x7f,0xfa,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x88,0xff,0xff,0xff,0x2f,0xfc,0xfd,0xff,0xbf,0x2a,0x00,0x00,0xc0, 0xff,0xff,0xff,0x5f,0x2d,0xde,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x92,0xb6,0xb6,0xbf,0x04,0x68,0xff,0xff,0xdf,0x0a,0x00,0x00,0xc0,0xad, 0xb5,0xff,0x55,0x55,0xf6,0x7f,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0xff,0xff,0xff,0x0a,0xfe,0xff,0xff,0x45,0x02,0x00,0x00,0x40,0xff,0xff, 0xff,0xab,0x12,0xdc,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, 0x6b,0x5b,0x7f,0x01,0xae,0xdf,0xff,0x2b,0x00,0x00,0x00,0xc0,0x6b,0xed,0x7f, 0x05,0x00,0xfe,0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, 0xfd,0xbf,0x80,0xfb,0xef,0xbf,0x04,0x00,0x00,0x00,0xc0,0xfe,0xff,0xff,0x01, 0x00,0xea,0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xae,0x6f, 0xfd,0xc2,0xef,0xf3,0xff,0x02,0x00,0x00,0x00,0xe0,0x5b,0xeb,0x7f,0x02,0x00, 0xfe,0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7a,0xfb,0xbf, 0xa0,0xfd,0xfb,0x2f,0x00,0x00,0x00,0x00,0x60,0xff,0xff,0xbf,0x01,0x00,0xda, 0xbf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xee,0xdf,0xfe,0xe0, 0xff,0xf4,0x9f,0x00,0x00,0x00,0x00,0xc0,0xd6,0xf6,0xff,0x00,0x00,0xfe,0xfe, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0xed,0xfb,0xf0,0x7a, 0xfe,0x25,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x7f,0x02,0x00,0xec,0x7e,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0x7b,0x7f,0xb0,0x7f,0xfd, 0x0b,0x00,0x00,0x00,0x00,0x70,0x5b,0xf5,0xbf,0x00,0x00,0xfc,0xfd,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0xde,0x37,0xec,0x1f,0xff,0x05, 0x00,0x00,0x00,0x00,0xd0,0xff,0xff,0x7f,0x01,0x00,0xf8,0x5e,0x02,0x00,0xf8, 0x1f,0xf8,0x1f,0x00,0x00,0x00,0x00,0xf8,0x1f,0x00,0x00,0x00,0x00,0xe0,0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x77,0x3d,0x7e,0xcf,0xff,0x22,0x00, 0x00,0x00,0x00,0xf0,0x6a,0xfb,0x5f,0x00,0x00,0x00,0xfe,0x00,0x80,0x6f,0xfb, 0x6f,0x7b,0x00,0x00,0x00,0x80,0x6f,0xfb,0x01,0x00,0x00,0x00,0x7f,0xdb,0x0f, 0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xfd,0x3f,0xdb,0x57,0x5f,0x01,0x00,0x00, 0x00,0x00,0xb0,0xff,0xff,0xbf,0x00,0x00,0x80,0x5d,0x01,0xf0,0xde,0xef,0xde, 0xff,0x01,0x00,0x00,0xf0,0xdf,0xdf,0x0f,0x00,0x00,0xc0,0xdf,0x7e,0x3b,0x00, 0x00,0x00,0x00,0x00,0x00,0xf0,0x5f,0xab,0xfe,0xe3,0x7f,0x04,0x00,0x00,0x00, 0x00,0xf0,0xad,0xf5,0x5f,0x00,0x00,0x00,0x7e,0x00,0xdc,0x7b,0xbd,0x7b,0xd5, 0x03,0x00,0x00,0xfe,0x7a,0x75,0x1b,0x00,0x00,0xb0,0xf5,0xeb,0x6f,0x00,0x00, 0x00,0x00,0x00,0x00,0xb0,0xf5,0xff,0xef,0xd7,0x2f,0x00,0x00,0x00,0x00,0x00, 0x58,0xff,0xff,0xbf,0x00,0x38,0x40,0xab,0x00,0x7f,0xef,0xf7,0xef,0xff,0x01, 0x00,0x80,0xaf,0xef,0xff,0x3f,0x00,0x00,0xfc,0x7f,0xbf,0xfd,0x00,0x00,0x00, 0x00,0x00,0x00,0xe0,0xdf,0xba,0xfa,0xf1,0x9b,0x00,0x00,0x00,0x00,0x00,0xf8, 0x6b,0xfd,0x5f,0x00,0x7c,0x00,0x5c,0xc0,0xeb,0xfd,0x7f,0xbd,0xed,0x01,0x00, 0x40,0xfb,0xfe,0xad,0x6a,0x00,0x00,0x6f,0xed,0xf7,0xaf,0x01,0x00,0x00,0x00, 0x00,0x00,0x60,0xfb,0xef,0xff,0xfc,0x27,0x00,0x78,0x00,0x00,0x00,0xd8,0xfe, 0xff,0x5f,0x00,0xec,0x00,0x25,0xe0,0xbe,0xf7,0xff,0xf7,0xff,0x55,0x00,0xf0, 0xdf,0xff,0xff,0xff,0x00,0x80,0xfb,0xff,0xbf,0xfa,0x03,0x00,0x00,0x00,0x00, 0x00,0xc0,0xaf,0x7d,0x7b,0xf5,0x0b,0x00,0xfe,0x03,0x00,0x00,0xf0,0x5b,0xfb, 0x2f,0x00,0xfa,0x80,0x28,0xb8,0xf7,0xfe,0x84,0x5e,0xeb,0x2b,0x01,0xd8,0xf6, 0x0f,0xb6,0xdb,0x05,0xe0,0x5e,0xfb,0xe2,0x6f,0x17,0x00,0x00,0x00,0x00,0x00, 0x40,0xfd,0xdf,0x3f,0xfe,0x05,0x40,0xd7,0x0e,0x00,0x00,0x78,0xff,0xff,0x5f, 0x00,0xee,0x00,0x04,0xec,0xde,0x5f,0x8b,0xfb,0xff,0xaf,0x00,0xfc,0xbf,0x6f, 0xfc,0xfe,0x13,0xb0,0xf7,0x7f,0xa5,0xfd,0x4f,0x00,0x00,0x00,0x00,0x00,0xc0, 0x6f,0x75,0xbf,0xbd,0x12,0xc0,0xff,0x1b,0x00,0x00,0xdc,0xad,0xfd,0x2f,0x00, 0xff,0x00,0x01,0xfe,0xfb,0xbf,0x87,0x6f,0xed,0x7e,0x01,0x6a,0xf5,0xb3,0xb4, 0xaf,0x0b,0xe8,0x7d,0x5f,0xe7,0xb7,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0xfb, 0xff,0xdf,0xff,0x01,0x40,0x6d,0x3f,0x00,0x00,0x74,0xff,0xff,0x37,0x80,0xf5, 0x54,0x00,0x55,0xbf,0xef,0xc7,0xfd,0xff,0xbf,0x00,0xff,0xff,0xfd,0xfc,0xfa, 0x5f,0x7c,0xd7,0xef,0xc3,0xfe,0x3f,0x01,0x00,0x00,0x00,0x00,0x80,0xaf,0xad, 0xff,0x7e,0x04,0xe0,0xfb,0x6d,0x00,0x00,0xfc,0xd5,0xfe,0x1f,0xc0,0x7f,0x22, 0x80,0xff,0xeb,0xfb,0x43,0xb7,0xf6,0xff,0x82,0xad,0xed,0xff,0xd4,0xdf,0x2f, 0xd8,0xff,0xff,0xe7,0xab,0xfd,0x02,0x00,0x00,0x00,0x00,0x80,0xfd,0xff,0xfe, 0x5f,0x01,0x70,0x5f,0xff,0x00,0x00,0xac,0xbf,0x0f,0x00,0xa0,0x76,0x58,0xc1, 0xdb,0xfe,0xff,0xc3,0xfd,0xff,0xbf,0x00,0xff,0xff,0xfe,0xf8,0xf6,0x1f,0xfe, 0xda,0xf7,0x63,0xff,0xbf,0x04,0x00,0x00,0x00,0x00,0x00,0xb7,0xda,0xff,0x2f, 0x00,0xd0,0xf7,0xdb,0x05,0x00,0xfe,0xfd,0x0e,0x00,0xf0,0xff,0x2e,0xa0,0xfe, 0xfb,0xff,0xe3,0xd7,0xfa,0xbf,0xc0,0xb5,0xfa,0xff,0xb9,0xbf,0x0f,0xaf,0xff, 0xff,0xc3,0x6d,0xfd,0x03,0x00,0x00,0x00,0x00,0x00,0xfd,0x7f,0xff,0x9b,0x00, 0x70,0xdd,0xfe,0x12,0x00,0x6a,0xd7,0xdb,0xfd,0xdf,0x7a,0xda,0xe0,0x57,0xff, 0xff,0xa3,0xfe,0xff,0x7f,0xe1,0xff,0xff,0xff,0xea,0xf5,0x8f,0xfb,0xed,0xff, 0x61,0xff,0xff,0x0a,0x00,0x00,0x00,0x00,0x00,0x6e,0xeb,0xfd,0x27,0x00,0xf8, 0xff,0xd7,0x0b,0x00,0xfe,0x7f,0x7f,0xef,0xf6,0x7f,0x7f,0xb0,0xfd,0xfd,0xff, 0xe1,0x5b,0xfb,0x5f,0xe0,0xd6,0xfe,0xff,0x79,0xff,0x87,0x6e,0xff,0xff,0xf1, 0xb7,0xfd,0x0b,0x00,0x00,0x00,0x00,0x00,0xfa,0xbf,0xff,0x0d,0x00,0x58,0x6b, 0xfd,0x57,0x00,0xb6,0xf5,0xed,0xbb,0x5f,0xbb,0x2e,0xf8,0xb7,0xff,0xff,0x70, 0xff,0xff,0xbf,0xb0,0xff,0xff,0xbf,0xd2,0xff,0xc3,0xff,0xf5,0xff,0xb0,0xed, 0xff,0x0d,0x00,0x00,0x00,0x00,0x00,0xae,0xf6,0xfd,0x13,0x00,0xf0,0xff,0xdf, 0x2f,0x00,0xdf,0xbf,0xff,0xee,0xfb,0xbf,0x5f,0xd8,0xfe,0xfd,0x7f,0xd0,0xd7, 0xfa,0x5f,0xe0,0xb5,0xfe,0xdf,0xe0,0xff,0x83,0xb5,0xff,0x7f,0x78,0xbf,0xfe, 0x0b,0x00,0x00,0x00,0x00,0x00,0xfc,0x5f,0xf7,0x06,0x00,0xb0,0xad,0xf6,0xbf, 0x00,0x7b,0xed,0xaa,0xbf,0xde,0x7a,0x3f,0xbc,0x6f,0xff,0xff,0x78,0xfd,0xff, 0x6f,0x78,0xff,0xff,0x7f,0xc0,0xff,0xe3,0xff,0xfb,0x7f,0xe8,0xf7,0xff,0x17, 0x00,0x00,0x00,0x00,0x00,0xdf,0xfa,0xff,0x03,0x00,0xe0,0xfe,0xfd,0x5f,0x00, 0xee,0xff,0xff,0xff,0xf7,0xff,0x1f,0xf6,0xfa,0xff,0x5f,0xf0,0xb7,0xfe,0x3f, 0xd8,0x5b,0xff,0x1f,0x01,0xfc,0x61,0xad,0xfe,0x3f,0xbc,0x7d,0xff,0x0f,0x00, 0x00,0x00,0x00,0x80,0xf6,0xdf,0xfa,0x09,0x00,0xe0,0xdb,0xd7,0x7f,0x01,0x7f, 0xab,0xff,0xff,0xbf,0xfe,0x17,0xdc,0xaf,0xff,0x3f,0xd8,0xfe,0xfd,0x1f,0xfc, 0xfe,0xff,0x2f,0x00,0xfa,0xf1,0xff,0xff,0x1f,0xec,0xd7,0xff,0x17,0x00,0x00, 0x00,0x00,0x80,0xbf,0xf6,0xff,0x06,0x00,0x60,0xff,0xfe,0xbf,0x80,0xdb,0xff, 0xff,0xaf,0xea,0xfb,0x0f,0xf7,0xfd,0xff,0x57,0xfc,0xdb,0xff,0x2f,0xb4,0x6b, 0xff,0x2f,0x00,0xfd,0x50,0x6b,0xfb,0x07,0xbf,0xfe,0xff,0x0b,0x00,0x00,0x00, 0x00,0x40,0xeb,0xbf,0xf6,0x15,0x00,0xc0,0xab,0xfb,0x7f,0x81,0x7d,0xed,0xff, 0xff,0x76,0xff,0x0f,0x5f,0xdf,0xff,0x1f,0x6c,0xf7,0xfe,0x17,0xfe,0xff,0xff, 0x17,0x00,0xf4,0xf8,0xff,0xff,0x83,0xf6,0xb7,0xff,0x17,0x00,0x00,0x00,0x00, 0xe0,0x7f,0xeb,0xff,0x0b,0x00,0xc0,0xfe,0xff,0xbf,0x00,0xef,0xff,0xff,0xfb, 0xc7,0xff,0x8f,0xfb,0xf5,0xff,0x0b,0xde,0xbf,0xff,0x2f,0xac,0xb6,0xff,0x2b, 0x00,0x68,0x68,0xad,0xfe,0xc0,0xbf,0xfd,0xff,0x0b,0x00,0x00,0x00,0x00,0xf0, 0xda,0x7f,0xeb,0x17,0x00,0x80,0x6f,0xfd,0x7f,0x81,0xfb,0xd6,0xff,0xdf,0xe7, 0xfd,0x87,0xbe,0xef,0xff,0x17,0x7a,0xed,0xfe,0x17,0xff,0xff,0xff,0x0b,0x00, 0x55,0xf8,0xff,0x7f,0xc0,0xea,0xf7,0xff,0x0f,0x00,0x00,0x00,0x00,0xb8,0xff, 0xda,0xff,0x17,0x00,0x00,0xfb,0xff,0xff,0x80,0xae,0xff,0xff,0xff,0x67,0xff, 0x87,0xeb,0xfe,0xff,0x07,0xef,0xff,0xff,0x0f,0xb7,0xd5,0xff,0x07,0x00,0x20, 0x5c,0xdb,0x1e,0xf8,0xbf,0xfe,0xff,0x02,0x00,0x00,0x00,0x00,0xe8,0xbe,0xff, 0xda,0x2f,0x00,0x00,0xfc,0xff,0x3f,0xc1,0xff,0xea,0xff,0x6f,0xc5,0xff,0xc7, 0xff,0xeb,0xff,0x02,0xbd,0x55,0xff,0x0b,0xfd,0xff,0xff,0x12,0x00,0x48,0xf4, 0xfd,0x0f,0xdc,0xf6,0xff,0xff,0x17,0x00,0x00,0x00,0x00,0xfc,0xff,0xad,0xff, 0x1f,0x00,0x00,0xf4,0xff,0xbf,0x40,0xdb,0xff,0xff,0x95,0xe2,0xfe,0xc3,0x5a, 0xff,0xff,0x85,0xf7,0xff,0xff,0x0f,0xaf,0xda,0xff,0x05,0x00,0x00,0xbc,0x6f, 0x0f,0xf7,0xdf,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x56,0x4f,0xff,0xad,0x57, 0x00,0x00,0xf0,0xff,0x5f,0xc0,0xfd,0xed,0xff,0x52,0xa9,0xff,0x83,0xff,0xfb, 0xff,0x82,0xbe,0xb6,0xff,0x8b,0xfb,0xff,0xff,0x05,0x00,0x00,0xee,0xdb,0xff, 0x5f,0xfb,0xff,0x7f,0x05,0x00,0x00,0x00,0x00,0xfe,0x87,0x6b,0xff,0x5f,0x00, 0x00,0xd4,0xff,0x5f,0xc1,0x57,0xff,0x7f,0x05,0xe0,0xff,0xe3,0x6d,0xf7,0xff, 0xc2,0xef,0xff,0xff,0x87,0xde,0xd6,0xff,0x02,0x00,0x00,0xba,0xfe,0xdd,0xfa, 0xff,0xff,0xff,0x02,0x00,0x00,0x00,0x80,0xdb,0x97,0xfe,0x6b,0x3f,0x00,0x00, 0xd0,0xff,0x2f,0xe0,0xfe,0xeb,0xbf,0x01,0xc0,0xef,0xe1,0xfb,0xfe,0x7f,0x41, 0x7b,0xab,0xff,0x8b,0xf7,0xff,0xff,0x02,0x00,0x00,0xfe,0x6f,0xf7,0xbf,0xff, 0xff,0x5f,0x01,0x00,0x00,0x00,0xc0,0xff,0xb3,0xb7,0xfe,0xbf,0x00,0x00,0x40, 0xff,0x15,0xa0,0xdb,0xfe,0xff,0x00,0x80,0xf3,0x61,0xdf,0xfb,0xbf,0xc0,0xdd, 0xff,0xff,0x85,0x7d,0xeb,0xff,0x02,0x00,0x00,0xd6,0xba,0xbf,0xf6,0xab,0xff, 0x7f,0x00,0x00,0x00,0x00,0x60,0xf5,0x29,0xfd,0xb7,0xbe,0x00,0x00,0x50,0x7b, 0x4b,0xe0,0xff,0xfb,0x7f,0x02,0x00,0xd0,0xf1,0x76,0xff,0xdf,0xe0,0xf7,0xba, 0xff,0x45,0xaf,0xff,0x7f,0x01,0x00,0x00,0xfe,0xff,0xed,0x7f,0xf5,0xff,0x17, 0x01,0x00,0x00,0x00,0xd0,0xff,0x3c,0xaf,0xfd,0xdf,0x00,0x00,0x00,0xad,0x05, 0xa0,0x56,0xf7,0xbf,0x00,0x00,0xe8,0xb1,0xff,0xfd,0x7f,0x60,0xbf,0xef,0xff, 0xc6,0xfb,0xed,0xff,0x02,0x00,0x00,0xb7,0xd6,0xfe,0xbf,0xfa,0xfd,0x57,0x00, 0x00,0x00,0x00,0x78,0x7b,0x7e,0xfb,0xaf,0x7d,0x02,0x00,0x88,0xa8,0x10,0xe0, 0xff,0xff,0x7f,0x01,0x00,0xe8,0xe1,0xab,0xff,0x3f,0xf0,0xed,0xfd,0xff,0xc3, 0x6e,0xff,0x7f,0x01,0x00,0x00,0xfd,0xff,0xff,0x8b,0xfe,0x7c,0x09,0x00,0x00, 0x00,0x00,0xe8,0xff,0x7d,0xde,0xfa,0x7f,0x01,0x00,0x00,0x44,0x02,0xf0,0xda, 0xfa,0xbf,0x00,0x00,0x50,0xb8,0xfe,0xfd,0x5f,0xb8,0x7f,0xd7,0x9f,0x85,0xff, 0xeb,0x7f,0x01,0x40,0x00,0xaf,0xb5,0xff,0xef,0xff,0xd8,0x02,0x00,0x00,0x00, 0x00,0xfc,0x3e,0x7e,0xf6,0xdf,0xfe,0x01,0x00,0x00,0x10,0x00,0xb0,0xff,0xff, 0x5f,0x00,0x00,0xa0,0xf8,0x6f,0xff,0x1f,0xfa,0xd5,0xff,0x0f,0xc0,0xb5,0xfe, 0xbf,0x00,0xc0,0x01,0xfb,0xff,0xff,0xbf,0x7e,0x5c,0x11,0x00,0x00,0x00,0x00, 0xae,0xdf,0xff,0xbc,0xf6,0xfb,0x02,0x00,0x00,0x00,0x00,0xe0,0x56,0xfb,0xbf, 0x00,0x00,0x54,0xd8,0xfa,0xff,0x17,0xec,0xff,0xf5,0x8f,0x43,0xff,0xef,0x7f, 0x01,0x60,0x03,0x6e,0xad,0xff,0xf7,0x37,0x34,0x00,0x00,0x00,0x00,0x00,0xfa, 0xaf,0x7f,0xec,0xbf,0x7e,0x05,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0x7f,0x00, 0x00,0x80,0xf0,0x5f,0xfd,0x1f,0xfe,0x6d,0xdf,0x87,0xc6,0xd7,0xfa,0xbf,0x00, 0xe0,0x07,0xff,0xff,0xff,0xff,0x1f,0xfc,0x00,0x00,0x00,0x00,0x80,0x6f,0xd7, 0xbf,0x78,0xeb,0xf7,0x03,0x00,0x00,0x00,0x00,0xb8,0xda,0xfa,0x9f,0x00,0x00, 0x20,0xbc,0xf6,0xff,0x07,0x76,0xff,0xfd,0x83,0x47,0xfd,0xef,0xdf,0x00,0x70, 0x0f,0xab,0xb5,0xff,0xff,0x0a,0xde,0x00,0x00,0x00,0x00,0xc0,0xff,0xe7,0x5f, 0xd8,0xff,0xfe,0x09,0x00,0x00,0x00,0x00,0xe8,0xff,0xff,0x5f,0x00,0x00,0x00, 0xec,0x7f,0xff,0x07,0xfd,0xab,0xf7,0xc3,0xcf,0xb7,0xfd,0x7f,0x00,0xd8,0x07, 0xfe,0xff,0xff,0xaf,0x05,0xf7,0x00,0x00,0x00,0x00,0xe0,0xea,0xf3,0x5f,0xf0, 0xb6,0xfb,0x07,0x00,0x00,0x00,0x00,0x78,0x6b,0xfd,0x2f,0x00,0x00,0x00,0xbc, 0xd5,0xff,0x83,0xff,0xfe,0xfe,0xe1,0xce,0xde,0xd7,0x3f,0x01,0xf0,0x07,0xb6, 0x56,0xff,0xb5,0x82,0xfd,0x08,0x00,0x00,0x00,0xb0,0xff,0xfd,0x2b,0xb0,0xff, 0xef,0x0b,0x00,0x00,0x00,0x00,0xd8,0xff,0xff,0x5f,0x00,0x00,0x00,0xf4,0xff, 0xfe,0xc1,0xff,0xdb,0xfb,0xb0,0x8f,0xfb,0xfe,0xbf,0x00,0xbc,0x23,0xfe,0xff, 0xff,0x4b,0xc0,0x7f,0x22,0x00,0x00,0x00,0xe8,0xed,0xf5,0x0f,0xf0,0x55,0xfd, 0x15,0x00,0x00,0x00,0x00,0xf8,0xad,0xfd,0x2f,0x00,0x00,0x00,0xdc,0xb6,0x7f, 0xe0,0x5e,0x7f,0x7f,0xf8,0x07,0xbf,0xdb,0x7f,0x00,0xf6,0x43,0xaa,0x6d,0xff, 0x06,0x60,0x3d,0x14,0x00,0x00,0x00,0x7c,0xff,0xfe,0x45,0x40,0xff,0xd7,0x0f, 0x00,0x00,0x00,0x00,0x5c,0xff,0xff,0x37,0x00,0x00,0x00,0x78,0xff,0x3e,0xf0, 0xcf,0xed,0x7b,0xd4,0x87,0xeb,0xff,0xaf,0x00,0xff,0x51,0xfe,0xfe,0x7f,0x13, 0xd0,0x3f,0xa9,0x00,0x00,0x00,0xda,0x7d,0xff,0x16,0xe0,0xdb,0xfe,0x27,0x00, 0x00,0x00,0x00,0xf4,0xd5,0xfe,0x1f,0x00,0x00,0x00,0xec,0xab,0x0f,0xb8,0x67, 0xbf,0x3e,0xfe,0x93,0x7e,0xad,0x7f,0x80,0xed,0xa8,0xdc,0x57,0xfd,0x01,0x78, 0x1f,0x2d,0x00,0x00,0x00,0xff,0x3f,0xff,0x03,0xe0,0xfe,0xb7,0x1f,0x00,0x00, 0x00,0x00,0xbc,0xff,0xff,0x4f,0x00,0x00,0x00,0xf8,0xfe,0x0a,0xec,0xe3,0xf5, 0x37,0xed,0x01,0xdb,0xff,0xbf,0x40,0xff,0xf4,0xf4,0xfd,0xff,0x02,0xec,0x8f, 0x56,0x00,0x00,0x00,0xab,0xde,0xbf,0x00,0xa0,0x6f,0xfd,0x2f,0x00,0x00,0x00, 0x00,0xee,0xb6,0xfe,0x17,0x00,0x00,0x00,0xa8,0xef,0xff,0xff,0xa3,0xbf,0xfd, 0xff,0x69,0x7f,0x6b,0x03,0xe0,0x7d,0xda,0x59,0xb7,0x0b,0x00,0xbe,0x47,0x5f, 0x00,0x00,0xc0,0xff,0x1f,0xff,0x02,0xe0,0xfa,0xd7,0x00,0x00,0x00,0x00,0x00, 0xfb,0xff,0x0f,0x18,0x00,0x00,0x00,0x78,0xbb,0xd6,0xed,0xe1,0xed,0xaf,0xf6, 0x50,0xd6,0xff,0x05,0xb8,0x3f,0xf4,0xf8,0xff,0x1e,0xa0,0xf7,0xa3,0x5d,0x00, 0x00,0xf0,0xda,0x0e,0x5e,0x00,0xd0,0x5f,0xbf,0x03,0x00,0x00,0x00,0x80,0x5e, 0xab,0x0d,0x00,0x00,0x00,0x00,0xf0,0xff,0x7f,0xff,0x40,0xff,0xfa,0x7f,0xb4, 0xfc,0xb5,0xef,0xff,0x1f,0xbd,0xd2,0xda,0xef,0xff,0xfd,0x53,0x2f,0x00,0xf0, 0xbf,0xff,0xfb,0x7e,0xe1,0xff,0xf6,0xfb,0xfb,0x00,0x00,0x00,0xff,0xf7,0xff, 0x77,0x27,0x00,0x00,0x00,0x50,0xad,0xed,0x7f,0xc8,0xab,0xdf,0x7a,0xe9,0x5e, 0xef,0xbd,0x56,0x4f,0x76,0xf1,0xff,0xba,0x56,0xff,0xe1,0x2b,0x00,0xb8,0xed, 0x6d,0x5f,0x1f,0xf0,0xb6,0xdf,0xde,0xde,0x03,0x00,0x80,0xad,0xbd,0xb6,0xde, 0x1d,0x00,0x00,0x00,0xf0,0xff,0xbf,0x3e,0xca,0xfe,0xf6,0x3f,0xbc,0xf5,0x7f, 0xf7,0xff,0x87,0xbd,0x40,0xab,0xff,0xff,0x7b,0xb4,0x17,0x00,0x68,0x7f,0xbf, 0xf7,0x57,0xb0,0xfd,0xfa,0xb7,0xf7,0x07,0x00,0x80,0xff,0xef,0xff,0xfb,0x3f, 0x00,0x00,0x00,0x60,0x6b,0xf5,0x8f,0xda,0xdb,0xbf,0xbf,0xf5,0xd8,0xda,0xbf, 0xf5,0x43,0xaf,0xc0,0xff,0xd6,0x6a,0x3f,0xfa,0x0a,0x00,0xf8,0xdb,0xeb,0x7d, 0x1f,0xe0,0xd7,0x6f,0xfd,0x7d,0x07,0x00,0x00,0xb5,0xfa,0x6a,0x6f,0x3d,0x00, 0x00,0x00,0xc0,0xff,0xff,0x5f,0x7d,0x7f,0xed,0xdf,0x3e,0xf1,0xff,0xea,0xff, 0xb5,0x5f,0x80,0xda,0xff,0xff,0x1f,0xea,0x25,0x00,0xd8,0xfe,0x7e,0xd7,0x4f, 0xe0,0x7e,0xfb,0x6f,0xd7,0x07,0x00,0x00,0xff,0xaf,0xff,0xfd,0x3f,0x00,0x00, 0x00,0xc0,0xda,0xf6,0x77,0xaf,0xed,0xff,0x7f,0xbf,0x60,0xab,0x7f,0x7f,0xd0, 0x2a,0x00,0x7f,0xb5,0xf6,0xc7,0x7e,0x03,0x00,0xf0,0xff,0xff,0xff,0x17,0xe0, 0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00, 0x00,0xff,0xff,0xdf,0xbd,0x7e,0xfb,0xff,0x57,0x80,0xff,0xed,0x1f,0xfd,0x8f, 0x00,0xec,0xff,0xff,0x52,0xbf,0x01,0x00,0xe0,0xff,0xff,0xff,0x5f,0xc1,0xff, 0xff,0xff,0xff,0xa7,0x00,0x00,0xfe,0xff,0xff,0xff,0x5f,0x05,0x00,0x00,0x00, 0xfe,0xff,0xff,0x57,0xfc,0xff,0xff,0x3f,0x41,0xff,0xff,0xd7,0xee,0x13,0x80, 0xfa,0xff,0xbf,0xfb,0x7b,0x04,0x00,0x00,0x80,0xea,0xff,0x57,0x01,0x40,0xed, 0xff,0xff,0x5f,0x02,0x00,0x00,0xd4,0xff,0xff,0xbf,0x12,0x00,0x00,0x00,0xfa, 0xff,0xff,0x9f,0xf0,0xff,0xff,0x0b,0x00,0xfd,0xff,0xff,0x7b,0x05,0x00,0xf8, 0xff,0x7f,0xdd,0xaf,0x00,0x00,0x00,0x74,0xff,0xff,0xbf,0x04,0xd4,0xfe,0xff, 0xff,0xb7,0x01,0x00,0x40,0xff,0xff,0xff,0xdb,0x0d,0x00,0x00,0x80,0xe8,0xff, 0xff,0x05,0xd0,0xff,0xff,0x57,0x40,0xfe,0xff,0xbf,0xff,0x01,0x00,0xea,0xff, 0xff,0xff,0x5b,0x00,0x00,0x00,0xe8,0xff,0xff,0xff,0x02,0xe8,0xff,0xff,0xff, 0x7f,0x05,0x00,0x80,0xda,0xff,0xff,0xff,0x2b,0x00,0x00,0x00,0xf4,0xff,0xff, 0x2a,0xc0,0xff,0xff,0x0a,0x00,0xf5,0xff,0xff,0x5f,0x08,0x00,0xd0,0xff,0xff, 0xff,0x0e,0x01,0x00,0x00,0xf5,0xff,0xff,0xbf,0x02,0xa0,0xff,0xff,0xff,0xff, 0x02,0x00,0x50,0xff,0xff,0xff,0xff,0x17,0x00,0x00,0x00,0xd2,0xff,0x7f,0x01, 0xb0,0xff,0xbf,0x05,0x00,0xf4,0xff,0xff,0xaf,0x02,0x00,0x50,0xff,0xff,0xbf, 0x03,0x00,0x00,0x00,0xd4,0xff,0xff,0xfd,0x02,0xd8,0xfb,0xff,0x7f,0x7f,0x01, 0x00,0x40,0x7d,0xff,0xff,0xff,0x0b,0x00,0x00,0x00,0xe8,0xff,0x2f,0x05,0x44, 0xff,0xef,0x10,0x00,0xa9,0xff,0xff,0x2a,0x00,0x00,0xc4,0xfe,0xff,0xff,0x10, 0x00,0x00,0x00,0xa8,0xaa,0x56,0xaf,0x02,0xa4,0xae,0xda,0xd6,0x55,0x05,0x00, 0x80,0xd6,0xaa,0xaa,0xaa,0x2a,0x00,0x00,0x00,0xa0,0xfe,0xab,0x00,0x90,0xfd, 0x3b,0x02,0x00,0xd0,0xfe,0xbf,0x15,0x00,0x00,0x20,0xf5,0xff,0x15,0x05,0x00, 0x00,0x00,0x52,0x55,0x55,0x51,0x01,0xa0,0x52,0x55,0x55,0x55,0x01,0x00,0x40, 0x5a,0xab,0xaa,0xaa,0x0a,0x00,0x00,0x00,0x48,0xab,0x2a,0x00,0x40,0x56,0x8d, 0x00,0x00,0x44,0x55,0xd5,0x42,0x00,0x00,0x40,0xad,0xad,0x56,0x00,0x00,0x00, 0x00,0x40,0xaa,0x52,0x2a,0x00,0x48,0x4a,0x25,0x49,0x24,0x00,0x00,0x00,0x44, 0x54,0x49,0x25,0x01,0x00,0x00,0x00,0x00,0x55,0x05,0x00,0x00,0xa9,0x22,0x00, 0x00,0x90,0x6a,0x55,0x04,0x00,0x00,0x00,0x54,0xb5,0x0a,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x01,0x00,0x00,0x00,0x90,0x00, 0x02,0x00,0x00,0x00,0x00,0x00,0x40,0xa8,0x10,0x00,0x00,0x54,0x0a,0x00,0x00, 0x00,0x94,0x12,0x00,0x00,0x00,0x00,0x21,0x42,0x81,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x80,0x00,0x00,0x00,0x00,0x88,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; x-face-1.3.6.24/x-face-logo.xpm0100644000227700000130000010362706440747531015266 0ustar yamaokastaff/* XPM */ /* Font: -*-utopia-bold-i-*-*-111-*-*-*-*-*-*-* */ static char *x-face-logo[] = { /* width height ncolors chars_per_pixel */ " 352 96 22 1", /* colors */ " s None c None", "# c #000000", "a c #111111", "b c #202020", "c c #2c2c2c", "d c #363636", "e c #363acc", "f c #474747", "g c #5c5c5c", "h c #606060", "i c #696969", "j c #7f7f7f", "k c #8a8a8a", "l c #939393", "m c #9b9ccb", "n c #a6a6a6", "o c #b1b1b1", "p c #bababa", "q c #c1c1c1", "r c #c8c8c8", "s c #e6e6e6", "t c #ffffff", /* pixels */ " ", " ", " tttttttttttttttttttttttttttttttttt tttttttttttttttttttttttttttt ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt ", " tttttttttttttttttttttttttttttttttttt tttttttttttttttttttttttttttttt ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt ", " ttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeem ttmeeeeeeeeeeeeeeeeeeeeeeeeeem ttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeem ", " tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee tteeeeeeeeeeeeeeeeeeeeeeeeeeee tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ", " tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee# tteeeeeeeeeeeeeeeeeeeeeeeeeeee# tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## ", " teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## teeeeeeeeeeeeeeeeeeeeeeeeeeee## teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## ", " meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## meeeeeeeeeeeeeeeeeeeeeeeeeee## meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## ", " #####eeeeeeeeeeeeeeeeeeeee#########ooooppqqr#####eeeeeeeeeeeeeee#########oooopqq #####eeeeeeeeeeeeeeeeeeee###############eeeeeeeeeeeeeeee##oooopqqr ", " ####eeeeeeeeeeeeeeeeeee#########lllllnoopq ###eeeeeeeeeeee###########lllllnopq ####eeeeeeeeeeeeeeeee####################eeeeeeeeeeeee##lllllnopq ", " qoteeeeeeeeeeeeeeeeee###jjjjjjjjjjjllnoq tttteeeeeeeeeee######jjjjjjjjjjjllnoq qtteeeeeeeeeeeeeeeee####jjjjjjjjjjjjjjj###eeeeeeeeee###jjjjklnopq ", " potmeeeeeeeeeeeeeeeee##gggggggggggijklopsttteeeeeeeeeee####gggggggggggggijklop stteeeeeeeeeeeeeeeee##gggggggggggggggggggg#eeeeeeeee###ggghjjlnoq ", " pnlteeeeeeeeeeeeeeeeee#dddddddddddgijlnptttmeeeeeeeee#####ddddddddddddddgijlnp stteeeeeeeeeeeeeeee###dddddddddddddddddddddteeeeeeee##ddddfhjkloq ", " pnltmeeeeeeeeeeeeeeeee#bbbbcccddddgijlntttmeeeeeeeee#####bbbbbbbbcccddddgijlnp ttmeeeeeeeeeeeeeeee###bbbbbcccdddddddddddddteeeeeeee##bbbbdfhjloq ", " pnljteeeeeeeeeeeeeeeeee####abbcdddgijltttteeeeeeeee####a#######aabbcddddgijlnp ttmeeeeeeeeeeeeeeee#######aabccddddddddddddtmeeeeeee######bdgiknq ", " polktmeeeeeeeeeeeeeeeee###abcddfggijktttteeeeeeeee####ba######abbcdfggggijklop stteeeeeeeeeeeeeeeee######aabcdfggggggggggggtteeeeee#######bdgjlor ", " qonllteeeeeeeeeeeeeeeee###abdfghjjjlstttmeeeeeeee####dba#####abcdfghiijjjllnoq stteeeeeeeeeeeeeeeee######abcdghijjjjjjjjjjjtteeeeee######acfhjlp ", " qponteeeeeeeeeeeeeeeeee##acdghjkllntttmeeeeeeee####fdba###aabdfghjjkklllnopq ttmeeeeeeeeeeeeeeee#######bcdgijkllllllllllltteeeeee##a###acfijnp ", " qpptmeeeeeeeeeeeeeeeee##acfgjknootttmmeeeeeee####igdba##abcdfhijllnnooopqq ttmeeeeeeeeeeeeeeee######abdgijlnoooooooooootteeeeee##ba##adgiknq ", " teeeeeeeeeeeeeeeeee#acfhjlprtttteeeeeeee####kigdba#abcdgijklopqqr ttmeeeeeeeeeeeeeeee######acfhjloqr rtteeeee###ba##bdgiknq ", " tmeeeeeeeeeeeeeeeee#acfhjlotttteeeeeeee####ljhfcbaabcdgijlnoqr stteeeeeeeeeeeeeeeee######adgiknq tteeeee###cb##bdgjlor ", " teeeeeeeeeeeeeeeee##bdgjltttteeeeeeee####ljifdbaabcfgiklopqr stteeeeeeeeeeeeeeee#######bdgiknq steeeee##gdbaacfhjlp ", " teeeeeeeeeeeeeeeeee#acfittttmeeeeeee####nkigdbaabcfgjknopqr ttmeeeeeeeeeeeeeeee#######bdgjlor seeeee##hfcaacfijnp ", " tmeeeeeeeeeeeeeeeee#abdgtttmeeeeeee####nkigdcbabcfgjlnoqr ttmeeeeeeeeeeeeeeee######acfhjlp meeee##igdaadgiknq sstttttttttttt ttttttttttttttts sstttttttttttss ssstttttttttss ", " teeeeeeeeeeeeeeeeee#bdtttmmeeeeee####nljgdcbbbcfgjlnoqr stteeeeeeeeeeeeeeeee######acfijnp ######igdbbdgjloq ttttttttttttttttttttttttttttttttttts sttttttttttttttttttts sstttttttttttttttttts ", " tmeeeeeeeeeeeeeeeee#atttteeeeeee####oljhfcbbbcfgjlnoqr stteeeeeeeeeeeeeeeee######adgiknq ####ljgdccfhjlor ttttttttmmeeeeeeeeeemmttmmeeeeeeeeeemms stttttttmmmeeeeeeeeeemmttt sttttttmmmeeeeeeeeeeemmtt ", " teeeeeeeeeeeeeeeee##ttteeeeeee####oljifdbbbcfgjlnoqr ttmeeeeeeeeeeeeeeee#######bdgjloq oljgdccfijnp tttttttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeem sttttttmmeeeeeeeeeeeeeeeeeemt stttttmeeeeeeeeeeeeeeeeeeeet ", " teeeeeeeeeeeeeeeeee#tteeeeeeee###onkigdcbbcfgjlnoqr ttmeeeeeeeeeeeeeeee######acfhjlor sttttt oljgdddgiknq ttttttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## tttttmmeeeeeeeeeeeeeeeeeeeeeeee stttttmeeeeeeeeeeeeeeeeeeeeeeee ", " tmeeeeeeeeeeeeeeeee#teeeeeeee###onkigdcbbcfgjlnoqr ttmeeeeeeeeeeeeeeee######acfijnp ttttttt oljgdddgiknq tttttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##i sttttmeeeeeeeeeeeeeeeeeeeeeeeeeeee tttttmeeeeeeeeeeeeeeeeeeeeeeeeeee ", " teeeeeeeeeeeeeeeee#eeeeeeee###inljgdccccfgjlnoqr stttts stteeeeeeeeeeeeeeeee######adgiknq sttmeeem oljigggijlortttttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## ttttteeeeeeeeeeeeeeeeeeeeeeeeeeeeeee sttttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ", " tmeeeeeeeeeeeeeeeeeeeeeeee###inljhfdccdfgjlnoqr sttttttttt stteeeeeeeeeeeeeeeee######bdgiknq ttteeee# pnljiiijlnpttttteeeeeeeeeeeeeeee########eeeeeeeeeeeeeeeee##ooooppqqr ttttmeeeeeeeeeeee#####eeeeeeeeeeeeeeeeqqr ttttteeeeeeeeeeeeee#####eeeeeeeeeeeeeepqqr ", " teeeeeeeeeeeeeeeeeeeeeee###ioljhfdccdfgjlnoqr stttttmeeeemtt ttmeeeeeeeeeeeeeeee#######bdgjlor sttmeeee## polkjjjklottttmeeeeeeeeeeeeeee###########eeeeeeeeeeeeeee###llllnnopqr tttteeeeeeeeeeeee#######eeeeeeeeeeeeeee#opqqr ttttmeeeeeeeeeeeee########eeeeeeeeeeeeeeoopqr ", " teeeeeeeeeeeeeeeeeeeeee####oljifdcccdgjlnoqr sttttmeeeeeeeeet ttmeeeeeeeeeeeeeeee######acfhjlp ttteeeee## qonlllllntttteeeeeeeeeeeeeee#####ikjjjttteeeeeeeeeeeeeee###jjjjklnopr tttteeeeeeeeeeeee####nlltteeeeeeeeeeeeeee#noopqr tttteeeeeeeeeeeeee#####lkjtteeeeeeeeeeeee#lnopqr ", " tmeeeeeeeeeeeeeeeeeeee####llkigdcbcdgiknoqr tttmmeeeeeeeeeeee sttmeeeeeeeeeeeeeeee######acfijnp tttmeeeee## qpoonnnotttteeeeeeeeeeeeeee####ijjiihjttmeeeeeeeeeeeeeee##ggggijklnpr tttteeeeeeeeeeeee####lkjjiteeeeeeeeeeeeeee#jlnopqrtttteeeeeeeeeeeeee####ljjiitteeeeeeeeeeeee#ilnopqr ", " teeeeeeeeeeeeeeeeeee####jjjigdcbcdgiknoqr sttteeeeeeeeeeeeeee stteeeeeeeeeeeeeeeee######adgiknq tttteeeee##iqqppppppppppptttteeeeeeeeeeeeeee####jihggfftttmeeeeeeeeeeeeeee##ddddghjknor tttteeeeeeeeeeeee####jjihgjtmeeeeeeeeeeeeee##jklnosttteeeeeeeeeeeeee####jjiggftteeeeeeeeeeeeee#jklnoqr ", " tmeeeeeeeeeeeeeeeee####gghhgdcccdfijloqr tttmeeeeeeeeeeeeeee# ttmeeeeeeeeeeeeeeee#######bdgiknq tttteeeeee##ipoonnnopqr tttteeeeeeeeeeeeeee####iggfddccttteeeeeeeeeeeeeee###bbbbdgijlor tttteeeeeeeeeeeeee###jiggfddtteeeeeeeeeeeeee##gijlnttteeeeeeeeeeeeee####ihgfddjtteeeeeeeeeeeeee#gijlnoqr ", " teeeeeeeeeeeeeeeeee##ddffffdccdfhjlopr sttmeeeeeeeeeeeeeeeee#pqqr ttmeeeeeeeeeeeeeeee#######bdgjlor stttteeeeeee##ponllllnopr tttteeeeeeeeeeeeeee####gfddcbbajttmeeeeeeeeeeeeeee#######bdgjlorsttteeeeeeeeeeeeee###igfddccctteeeeeeeeeeeeee##dgijtttmeeeeeeeeeeeee####hgfdcbbjtteeeeeeeeeeeeee##ghjlnoqr ", " teeeeeeeeeeeeeeeeee#bccddddccdfhjlnpq ttteeeeeeeeeeeeeeeeee#noopqr ttmeeeeeeeeeeeeeeee##ttttttttttttttttteeeeeeee##onljjjklnprtttteeeeeeeeeeeeeee####fdcbbaaaatttmeeeeeeeeeeeeeee######acfhjlortttmeeeeeeeeeeeee####fdcbbabbjtmeeeeeeeeeeee###bdftttmeeeeeeeeeeeeee###gfdcbaaajtteeeeeeeeeeeeee##dfhjlnpq ", " tmeeeeeeeeeeeeeeeee##bbbbbccdfgjlnoqr ttmeeeeeeeeeeeeeeeeeee#llnopqr stteeeeeeeeeeeeeeeee##tttttttttttttttmeeeeeeeee##nljiiijknorttteeeeeeeeeeeeeeee###dcbaa##abcttteeeeeeeeeeeeeee#######acfijnpsttmeeeeeeeeeeeeee###dcbaaaabcjtmeeeeeeeeeeee###abtttteeeeeeeeeeeeee###fdcbaaaajttmeeeeeeeeeeeeee##bcfijloq ", " teeeeeeeeeeeeeeeeee#aaaabcdfgjlnoqr ttmeeeeeeeeeeeeeeeeeee#jjlnopqr stteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##iljigggijlotttmeeeeeeeeeeeeeee###cbaa###abcjttmeeeeeeeeeeeeeee#######adgiknqttteeeeeeeeeeeeee###dcba##abcfgiteeeeeeeeee######attteeeeeeeeeeeeeee###cbaa##abjttmeeeeeeeeeeeeee##abdgiknpr ", " tmeeeeeeeeeeeeeeeee###aabdfgjlnoqr tteeeeeeeeeeeeeeeeeeee##hjklopq ttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##ikigddfhjltttteeeeeeeeeeeeeee####ba####abcdtttmeeeeeeeeeeeeeee#######bdgjlotttmeeeeeeeeeeeeee###baa##abcdgikleeeeeeeee#######tttmeeeeeeeeeeeeee###cba###abjttteeeeeeeeeeeeeee###acfhjloq ", " tteeeeeeeeeeeeeeeeee###acdgiknoqr steeeeeeeeeeeeeeeeeeee##fgjklopr ttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##ljhfddgijnttteeeeeeeeeeeeeeee###aa####abcfjttteeeeeeeeeeeeeeee######acfhjlsttteeeeeeeeeeeeee###ba####acdgiknoqeeeeee########jttteeeeeeeeeeeeeee###aa###abctttmeeeeeeeeeeeeee#####bdgiknq ", " ttteeeeeeeeeeeeeeeeee###bcfhjloqr tmeeeeeeeeeeeeeeeeeee##cdgjknoq stteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##jifdcdgiktttmeeeeeeeeeeeeeee###a#####abcfjtttmeeeeeeeeeeeeeee#######acfijntttmeeeeeeeeeeeeee###a####abdgiknoqr #############tttmeeeeeeeeeeeeee###a####abcjttteeeeeeeeeeeeeee#####acfijnp ", " tttteeeeeeeeeeeeeeeeeee##bdgiknqr tmeeeeeeeeeeeeeeeeeee##acdgjlnpr stteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##igdccdgitttteeeeeeeeeeeeeee#########abcdgjttteeeeeeeeeeeeeeee#######bdgiknttteeeeeeeeeeeeeee##a####abcfhjloqr ######a#####ttteeeeeeeeeeeeeee########acdtttmeeeeeeeeeeeeeee#####acfhjlp ", " sttteeeeeeeeeeeeeeeeeeee##bdgjloq teeeeeeeeeeeeeeeeee####acfhjloq ttmeeeeeeeeeeeeeeee#################eeeeeeeeee###gdcbcdgjttteeeeeeeeeeeeeeee#########acdgikttmeeeeeeeeeeeeeeee######abdgjlsttmeeeeeeeeeeeeee########acdgjlopr qoljgdb####tttmeeeeeeeeeeeeee########abdtttmeeeeeeeeeeeeeee#######cfhjlo ", " ttteeeeeeeeeeeeeeeeeeeee##bdgjloq tmeeeeeeeeeeeeeeeee####abdgjloq ttmeeeeeeeeeeeeeeee###################eeeeeeee###dcbbcfhtttmeeeeeeeeeeeeeee#########abdgiktttmeeeeeeeeeeeeeeee######acfhjlttteeeeeeeeeeeeeee#######abdgiknpq roljhfca##jttteeeeeeeeeeeeeee########acttttmeeeeeeeeeeeeee########bdgjlo ", " tttmeeeeeeeeeeeeeeeeeeeeee#bdgiknpr teeeeeeeeeeeeeeee######adgiknp stteeeeeeeeeeeeeeeee#######acdfgijjjjjj#eeeeeee##dcbaacfjttteeeeeeeeeeeeeeee########abcfhjlttteeeeeeeeeeeeeeee#######adgiksttmeeeeeeeeeeeeee########acfhjloqr pnkigda##tttmeeeeeeeeeeeeeee#######ajtttteeeeeeeeeeeeeeee########cfhjlo ", " tttmeeeeeeeeeeeeeeeeeeeeeee#acfhjloq meeeeeeeeeeeeeee######acfhjlp stteeeeeeeeeeeeeeee########abcdfgggggggteeeeeee##cba#adgtttmeeeeeeeeeeeeeee#########acdgjltttmeeeeeeeeeeeeeeee#######bdgjlttteeeeeeeeeeeeeee#######abdgiknpr qoljhfdccttteeeeeeeeeeeeeee########ttttteeeeeeeeeeeeeeee########acfhjlp ", " tttteeeeeeeeeeeeeeeeeeeeeeeee#bdgiknpr eeeeeeeeeeeeee########cfhjlo ttmeeeeeeeeeeeeeeee########aabccdddddddtteeeee###aa##bdgttteeeeeeeeeeeeeeee########abdgiknttteeeeeeeeeeeeeeeee######acfhjlttmeeeeeeeeeeeeeee#######acfhjloq qonkjhgfjttmeeeeeeeeeeeeeee######jttttteeeeeeeeeeeeeeee#########acfijnp ", " tttteeeeeeeeeeeeeeeeeeeeeeeeee#acfhjloq #eeeeeeeeee##########cfhjlo ttmeeeeeeeeeeeeeeee#######aabccddddddddtteeeee#######bdjttmeeeeeeeeeeeeeee########abcfhjltttmeeeeeeeeeeeeeeeee######acfijstteeeeeeeeeeeeeeee#######bdgiknpr rpolkjihtttmeeeeeeeeeeeeeee#####tttttmeeeeeeeeeeeeeee###########bdgiknq ", " tttteeeeeeee#eeeeeeeeeeeeeeeeee##bdgjloq ##eeeeee###########acfhjlp ttmeeeeeeeeeeeeeeee######aabccdddddddddtteeeee##a###acftttmeeeeeeeeeeeeeee########acdgjlottteeeeeeeeeeeeeeeee#######adgikttteeeeeeeeeeeeeee#######abdgjloq qponlkjttteeeeeeeeeeeeeeee###tttttteeeeeeeeeeeeeeee###########acfhjloq ", " ttttmeeeeeee###eeeeeeeeeeeeeeeeee#acfijnpr pn#################adgiknp stteeeeeeeeeeeeeeee#######abcdfgggggggggtteeeee##ba##acfttteeeeeeeeeeeeeeee#######abdgikntttmeeeeeeeeeeeeeeeee#######bdgjlttmeeeeeeeeeeeeeee#######acfijnpr rqponnlttmeeeeeeeeeeeeeeee##tttttmeeeeeeeeeeeeeee############abdgiknpr ", " stttmeeeeeee####eeeeeeeeeeeeeeeeee#abdgjloq qolj##############abdgjloq stteeeeeeeeeeeeeeee#######bcdfgijjjjjjjjtteeeee##cba#adjttmeeeeeeeeeeeeeee########acfhjlottteeeeeeeeeeeeeeeeee######acfhjlttmeeeeeeeeeeeeeee######abdgjloq rqqppottmeeeeeeeeeeeeeee###tttmeeeeeeeeeeeeeee######a#######acfhjloq ", " tttmeeeeeeee###nteeeeeeeeeeeeeeeeee#bdgiknpr qoljhfca##########acfhjloq ttmeeeeeeeeeeeeeeee######abdfhjklllllllllleeee###dcaabdtttmeeeeeeeeeeeeeee#######abdgikntttmeeeeeeeeeeeeeeeee#######acfijntteeeeeeeeeeeeeeee######acfhjloq tteeeeeeeeeeeeeeee###eeeeeeeeeeeeeeeee######ba#######abdgiknpq ", " tttmmeeeeeee###oltmeeeeeeeeeeeeeeeee#acfhjloq rpnljgdcaa######aacdgjlnpr ttmeeeeeeeeeeeeeeee######acfgjknooooooooooeeee###fdbacfttteeeeeeeeeeeeeeee#######acfhjlottteeeeeeeeeeeeeeeeee#######adgikstteeeeeeeeeeeeeeee######acfijnpr stteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee#######dca######aabdgijloqr ", " tttteeeeeeee###iljtmeeeeeeeeeeeeeeeee##bdgjloq qonkjgdcbaa##aabcdgjknoq stteeeeeeeeeeeeeeeee######adgiknq #####jgdcbcjttmeeeeeeeeeeeeeee#######abdgikntttmeeeeeeeeeeeeeeeeee#######bdgjlttmeeeeeeeeeeeeeee#######bdgjloq ttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeee########gdcba#####abcdgijlopr ", " tttteeeeeeee###inkigteeeeeeeeeeeeeeeeee#acfijnpr rpolkjgfddccccddfgjklopr stteeeeeeeeeeeeeeee#######bdgjloq ###njifccdtttmeeeeeeeeeeeeeee#######acfhjlttttmeeeeeeeeeeeeeeeeee######acfhjlttmeeeeeeeeeeeeeee######acfhjlor ttmeeeeeeeeeeeeeeeeeeeeeeeeeee######iijigdcba####aabcdgijlnpq ", " tttteeeeeeee####nkigdtmeeeeeeeeeeeeeeeee#abdgjloq qpolkjhggffffgghjklopq ttmeeeeeeeeeeeeeeee######acfhjlor qnkigdcdttteeeeeeeeeeeeeeee#######bdgikntttmeeeeeeeeeeeeeeeeee#######acfijntteeeeeeeeeeeeeeee######acfijnp ttmeeeeeeeeeeeeeeeeeeeeeee#######iilkjhgdcba###aabcdfgijlnoqr ", " tttteeeeeeeee###nljgdcjteeeeeeeeeeeeeeeeee#bdgiknpr rqponljjihhhhijjlnopqr ttmeeeeeeeeeeeeeeee######acfijnp roljgdddttmeeeeeeeeeeeeeee#######abdgjltttmmeee#eeeeeeeeeeeeee#######bdgikntteeeeeeeeeeeeeeee######adgiknq t tteeeeeeeeeeeeeeeeeeee########iinlkjigfdcbat#aabcdfgijklopqr ", " tttteeeeeeeee###nljgfcbbteeeeeeeeeeeeeeeeee#acfhjloq rqponllkjjjjkllnopqr ttmeeeeeeeeeeeeeeee######adgiknq oljgffjttmeeeeeeeeeeeeeee#######acfhjttttmeeeeeeeeeeeeeeeeeee######abdgjlotteeeeeeeeeeeeeeee######bdgiknq ttt tteeeeeeeeeeeeeeee##########ijklkjihgdcbaattbbcdfghjjlnopqr ", " ttttmeeeeeeee###iljhfcbbctmeeeeeeeeeeeeeeeee##bdgjloq rqpoonllllnoopqr stteeeeeeeeeeeeeeee#######bdgiknq oljiggttteeeeeeeeeeeeeeee#######bdgiktttmeeee#eeeeeeeeeeeeeee######ttfhjlptteeeeeeeeeeeeeeee######bdgjlor tttet tteeeeeeeeeeeeeeee######abdfgijjihgfdcbbabtttefghijlnopqr ", " stttmeeeeeeee###iljhfcbbbdjteeeeeeeeeeeeeeeeee#acfijnpr rqqppooppqqr stteeeeeeeeeeeeeeee#######bdgjlor pnljiittteeeeeeeeeeeeeeee######abdgjtttmmeee##eeeeeeeeeeeeee######jttttknqtteeeeeeeeeeeeeeee#####acfhjlp sttteee tteeeeeeeeeeeeeeee######abcdfggggfdccbbccttteeijjklnopqr ", " tttmeeeeeeee####ljifdbbbcfhtmeeeeeeeeeeeeeeeee#abdgjloq ttmeeeeeeeeeeeeeeee######acfhjlp polkjjttmeeeeeeeeeeeeeee#######acfhttttmeeee#eeeeeeeeeeeeeee######ttteeloqtteeeeeeeeeeeeeeee#####acfijnp ttteeeee tteeeeeeeeeeeeeeee######abccddffddcccdddtttteeeelnopqr ", " tttmmeeeeeeee###nkigdbbbcdgjlteeeeeeeeeeeeeeeeee#bdgiknpr ttmeeeeeeeeeeeeeeee######acfijnp qonlllttmeeeeeeeeeeeeeee#######bdgitttmeeee##eeeeeeeeeeeeeee#####tttteeeertteeeeeeeeeeeeeeee#####adgiknq tttmeeee## tteeeeeeeeeeeeeeee######aabccdddddddffgtttteeeeeipqr ", " tttteeeeeeeee###nkigdcbbcdgikntmeeeeeeeeeeeeeeeee#acfhjloq stteeeeeeeeeeeeeeeee######adgiknq qpoootteeeeeeeeeeeeeeee######abdjtttmmeee###eeeeeeeeeeeeee#####jttteeee# tteeeeeeeeeeeeeeee#####bdgiknq sttteeeee### tteeeeeeeeeeeeeeee######abbcdddfffgghiitttmeeeee## ", " tttteeeeeeeee###iljgdcbbbdgiknotmeeeeeeeeeeeeeeeee##bdgjloq stteeeeeeeeeeeeeeee#######bdgjloq rqpptteeeeeeeeeeeeeeee######acfttttmeeee###eeeeeeeeeeeeee#####tttmeeee##steeeeeeeeeeeeeeee#####bdgjlor ttteeeee###rrrsteeeeeeeeeeeeeeee#####aabcddfgghiijjjtttmeeeee###rrrrrrr ", " tttteeeeeeeee###iljgfcbbbdfijloqrteeeeeeeeeeeeeeeeee#acfijnpr ttmeeeeeeeeeeeeeeee######acfhjlor tteeeeeeeeeeeeeeee######adttttmeeee###eeeeeeeeeeeeeee####tttteeee### teeeeeeeeeeeeeeee#####bdgjlo tttmeeeee##iqqpptmeeeeeeeeeeeeeeee####abcdfgiijjjklltttteeeee###iqqqqqqq ", " tttteeeeeeeeee###ljgfcbbbcfhjlopr tmeeeeeeeeeeeeeeeee#abdgjloq ttmeeeeeeeeeeeeeeee######acfijnp tteeeeeeeeeeeeeeee######bttttmeeee####eeeeeeeeeeeeeee###tttteeeee###rtmeeeeeeeeeeeeeeee####bdgjlo tttteeeee###rpoontmeeeeeeeeeeeeeeee####acdfgijkllnnotttteeeeee###qpooooopqr ", " tttteeeeeeeeee###ljgfcbbbcdgjlnpq teeeeeeeeeeeeeeeeee#bdgiknpr ttmeeeeeeeeeeeeeeee######adgiknq tteeeeeeeeeeeeeeee#####jttttmeeee####teeeeeeeeeeeeee###tttteeeee### qtmeeeeeeeeeeeeeeee####bdgjlo tttteeeee###iqonlltteeeeeeeeeeeeeeee####bcfgiknnoopqtttteeeeee###rponlllnopq ", " tttteeeeeeeeee###ijhfcbabcdgiknoqr tmeeeeeeeeeeeeeeeee#acfhjloq stteeeeeeeeeeeeeeee#######bdgiknq tteeeeeeeeeeeeeeee###jtttttmeeee####tmeeeeeeeeeeeeee###ttteeeee###irpsteeeeeeeeeeeeeeee####bdgjlo stttteeeeee###qpnljjjteeeeeeeeeeeeeeeee###bdgijnpqqrstttteeeeee###iqolljjklnoq ", " tttteeeeeeeeee###ijhfcbaabdgiknoqr tmeeeeeeeeeeeeeeeeee#bdgjloq stteeeeeeeeeeeeeeee#######bdgjlor tteeeeeeeeeeeeeeeee#ttttttmeeeee###tteeeeeeeeeeeeeee##ttteeeeee###rqonteeeeeeeeeeeeeeeee###bdgjlo ttttteeeeee###rpoljiiitmeeeeeeeeeeeeeeee###bdgjlo ttttteeeeee####qonkjiijjloq ", " ttttteeeeeeeeeee###jifdbaabdfijloqr teeeeeeeeeeeeeeeeee#acfijnpr tttmeeeeeeeeeeeeeeee######acfhjlp tmeeeeeeeeeeeeeeeeettttmmeeeee### tteeeeeeeeeeeeeeee#tteeeeee###rqpnltmeeeeeeeeeeeeeeee###bdgjltttttmeeeeee###iqoljigghjteeeeeeeeeeeeeeeee##bdgjlorsttttmeeeeee####qpnljhghijloq ", " tttttteeeeeeeeeee###kigdbaabcfhjlopr tteeeeeeeeeeeeeeeeeee#bdgjloq tttteeeeeeeeeeeeeeeee######acfijnp tmeeeeeeeeeeeeeeeeeeeeeeeeeee###irtteeeeeeeeeeeeeeeeeeeeeeee###irpoljiteeeeeeeeeeeeeeeee#ttttttttttmeeeeee####qpnkigffgjtmeeeeeeeeeeeeeeeeettttttttttttmeeeeeee###rpoljhgfghjloq ", " tttttttttttmeeeeeeeeeeee###tttcaaacdgjlnptttttttttteeeeeeeeeeeeeeeeeeeetttttttr tttttttttteeeeeeeeeeeeeeeeee##tttttttiknq tteeeeeeeeeeeeeeeeeeeeeeeeee####rqtteeeeeeeeeeeeeeeeeeeeeeee###qqoljigtmeeeeeeeeeeeeeeeeeetttttttmeeeeeee####rpoljhfffgjlteeeeeeeeeeeeeeeeeemmttttttmmeeeeeeee###rqoljigfdghjloq ", " ttttttttttmeeeeeeeeeeeeee##tttttaabdgiknotttttttttteeeeeeeeeeeeeeeeeeeeeettttttt tttttttttteeeeeeeeeeeeeeeeeeee#ttttttttloq tmeeeeeeeeeeeeeeeeeeeeeeee####rqonteeeeeeeeeeeeeeeeeeeeeee###oponkigggteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####rqoljhgffgijnomeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####iqonkigfdfgiknpq ", " ttmeeeeeeeeeeeeeeeeeeeeeeeeeeeemabdfijloqttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemr ttmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemlor tmeeeeeeeeeeeeeeeeeeeeee#####rqonltmeeeeeeeeeeeeeeeeeeeee###ioonkiggggjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####rqonkigfffhjlopreeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee####iqonkigfdfgijloqr ", " tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeebcfhjloprtteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee# tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee#p teeeeeeeeeeeeeeeeeeeee####iqponkjjteeeeeeeeeeeeeeeeeeee####lnnljggfghjleeeeeeeeeeeeeeeeeeeeeeeeeeeee####qponkigfffgiknpq eeeeeeeeeeeeeeeeeeeeeeeeeeeeee####qponkigfffghjlopr ", " tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeecdgjlnpq tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## tteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## meeeeeeeeeeeeeeeeeee####knnnljiggteeeeeeeeeeeeeeeeee#####ijkkjhgfghjknpeeeeeeeeeeeeeeeeeeeeeeeeee#####qpolkigfffgijloqr qeeeeeeeeeeeeeeeeeeeeeeeeeee#####qpolkigffffhjlnpq ", " teeeeeeeeeeeeeeeeeeeeeeeeeeeeee###jnoqr teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##r teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## eeeeeeeeeeeeeeeee#####hjjkjjigfffgeeeeeeeeeeeeeeee#####ghijigfffgijloqq#eeeeeeeeeeeeeeeeeeeeee#####iponljigfffgijlopr rpeeeeeeeeeeeeeeeeeeeeeeee#####iponljigfddfgiknoqr ", " eeeeeeeeeeeeeeeeeeeeeeeeeeeeee##jloqr meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee##qr meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee## eeeeeeeeeeeeee######dfgiiiggfffgieeeeeeeeeeeeee#####bdfggggfddfhjloprrp#eeeeeeeeeeeeeeeeeee#####ionnlkjhgfffghjlnpq qoeeeeeeeeeeeeeeeeeeeee#####innlljjhgfddfgiknoqr ", " ###############################iknopqr ######################################nooopqr ######################################ooopqqr ieeeeeeeee#######abcdffggffffgijlieeeeeeeeee######abcdddddddfgiknpq qol##eeeeeeeeeeeee######illlkjjigffdfghjlnoqr qolj#eeeeeeeeeeeeeee######illkkjjigffddfgikloqr ", " ##############################hjklnopq #####################################klllnopq ####################################lllllnopq qi################abbccddddfgijlnoi################abbccccddgijloqr qolj###################iijjjiiggfdddfhjlnoqr rpnlj###################iiijjiihgfddddfgiklopr ", " qonlljjjjiihgfdcba#####abdfghjjllnoq qonlljjjjhgfdba#############abcdghijjjllnoq qonlljjjjigfdcba###########abdfghjjjjjllnoq qoij###############aaabbcdfgijlnoqrpl###############aaabbcdgijlopr rpnljgd#############cddfgggggffddddfhjlnoqr qonkigd##############cdfggggggfdddddfgiklopq ", " polkjiggggffdcbaa######abcdfggijklop polkjigggfddcba##############abcdfgggijklop polkjiggggfdcba############abcddfggggijklop rpnjifca#############aabdfgijlnoqr pnkigda############abcdfijlnpq qonkigdbaa########aabccdddddddddfghjlnoqr rpoljhfcba#########aabbcddddddddddfghjklopqr ", " pnljigddddccbaa########aabccddgijlnp pnljigddddcbba################abbcdddgijlnp pnljigddddcbba##############abbcdddddgijlnp qoljgdba##########aabcdghjklopqr qoljgdba#########aabcdgijlnoqr rpoljigdcba#########aaabbccccddfgijlnoqr qpnljhfcba###########aaabbbbccddfgijlnopqr ", " pnljigdddddcccbbbbbbbbbcccddddgijlnp pnljigdddddcccbbbbbbbbbbbbbbbbcccddddgijlnp pnljigdddddcccbbbbbbbbbbbbbbcccddddddgijlnp qonkigdbaa#####aabbcdfgijlnopqr qoljifcba######aabcdfgijlnoqr qpnljigfdcbaa#########aabbcdfghjklnoqr rqonljhfdcbaa###########aabbcdfghjklnoqr ", " pnljigddddddddddddddddddddddddgijlnp pnljigdddddddddddddddddddddddddddddddgijlnp pnljigdddddddddddddddddddddddddddddddgijlnp rpoljigddccbbbcccddfghjklnoqr rpnljhfdccbbbbccddfgijklopqr rqonljihgfdcccbbbbbbbcccddfghijlnopqr rqonljigfdcccbbbbbbbbbcccddfghijlnopqr ", " polkjiggggggggggggggggggggggggijklop polkjigggggggggggggggggggggggggggggggijklop polkjigggggggggggggggggggggggggggggggijklop qpnljiggffdddfffggijjlnopqr qonljigffddddffgghjjlnopqr rqpolkjihgfffdddddddfffggijjklnopqr rqonljihgfffdddddddddfffggijjklnopqr ", " qonlljjjjjjjjjjjjjjjjjjjjjjjjjjllnoq qonlljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjllnoq qonlljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjllnoq rqonlkjihhggghhiijjllnopqr rponljihhgggghhijjlnopqr rqponlkjiihhggggggghhiijjllnopqr rqonlkjiihhggggggggghhiijjllnopqr ", " qpoonllllllllllllllllllllllllnoopq qpoonlllllllllllllllllllllllllllllllnoopq qpoonlllllllllllllllllllllllllllllllnoopq rqponlkjjjjjjjjklnoopqr qponlkjjjjjjjjkllnopqr rqponlkjjjjjjjjjjjjjklnoopqr rqponlkjjjjjjjjjjjjjjjklnoopqr ", " rqqppooooooooooooooooooooooppqqr rqqppoooooooooooooooooooooooooooooppqqr rqqppoooooooooooooooooooooooooooooppqqr rqpoonlllllllnnopqqr rqpoonllllllllnoopqr rqqponnlllllllllllnnopqqr rqqponnlllllllllllllnnopqqr ", " rqqppoooooppqqr rqqppooooooppqqr rqqppoooooooooppqqr rqqppoooooooooooppqqr ", " rrrrrrrrr rrrrrrrrrr rrrrrrrrrrrrr rrrrrrrrrrrrrrr ", " ", " " }; x-face-1.3.6.24/x-face-xmas.el0100644000227700000130000010346507433144543015067 0ustar yamaokastaff;;; x-face-xmas.el -- X-Face functions for XEmacs. ;; Copyright (C) 1996-2002 Katsumi Yamaoka ;; Copyright (C) 1996-2002 Ken'ichi OKADA ;; Copyright (C) 1996-2002 Yuuichi Teranishi ;; Copyright (C) 2002 Daiki Ueno ;; Author: Katsumi Yamaoka ;; Ken'ichi OKADA ;; Yuuichi Teranishi ;; Daiki Ueno ;; Maintainer: Katsumi Yamaoka ;; Created: 1996/09/19 ;; Revised: 2002/02/15 ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;; Commands: ;; x-face-xmas-display-x-face ;; "Display X-Face fields as XEmacs glyph." ;;; Code: (eval-when-compile (defvar filename) (setq load-path (cons (if (and (boundp 'filename) (stringp filename) (file-exists-p filename)) (file-name-directory filename) default-directory) load-path))) (require 'x-face) ;; Silence the byte compiler. (eval-when-compile (save-excursion (beginning-of-defun) (eval-region (point-min) (point))) (let (case-fold-search) (if (string-match "(\\(alpha\\|beta\\)[0-9]+)$" x-face-version-number) (mapcar (function (lambda (symbol) (unless (boundp symbol) (make-local-variable symbol) (eval (list 'setq symbol nil))))) '(*cmail-mail-buffer gnus-article-buffer gnus-current-headers highlight-headers-hack-x-face-p last mime-display-header-hook mime-module-version mime-preview-original-major-mode mime-raw-buffer mime-view-content-header-filter-hook mime-view-original-major-mode mime-viewer/content-header-filter-hook mime::preview/original-major-mode original-major-mode orig::mime-display-header-hook orig::mime-view-content-header-filter-hook orig::mime-viewer/content-header-filter-hook semi-version)) (make-local-variable 'byte-compile-warnings) (setq byte-compile-warnings nil)))) (defgroup x-face-xmas nil "X-Face utility for XEmacs." :prefix "x-face-xmas-" :group 'x-face) (defcustom x-face-xmas-auto-image t "Controls whether display image after 'x-face-insert interactively. t means always ON, nil for OFF, and list of MODEs means OFF if the current major-mode matches one." :group 'x-face :group 'x-face-xmas :type 'boolean) (defcustom x-face-xmas-inhibit-read-only nil "Non-nil forces don't put read-only text-property to the message header." :group 'x-face :group 'x-face-xmas :type 'boolean) (defcustom x-face-xmas-like-highlight-headers nil "Non-nil means highlight-headers' style is applied for displaying faces." :group 'x-face :group 'x-face-xmas :type 'boolean) (defconst x-face-xmas-xface-p (and (featurep 'xface) (featurep 'xpm)) "Non-nil means this XEmacs has 'xface feature.") (when x-face-xmas-xface-p (defface x-face-xmas-x-face-face (list '(((class color) (background dark)) (:foreground "Black" :background "White")) (list t (list ':foreground "Black" ':background (color-name (face-background 'default))))) "Face to show X face." :group 'x-face :group 'x-face-xmas) (defface x-face-xmas-x-face-face-for-dialog '((t (:foreground "#006400" :background "#fffacd"))) "Face to show X face in the dialog box." :group 'x-face :group 'x-face-xmas)) (defcustom x-face-xmas-dialog-frame-alist '((width . 48) (height . 16) (left . 0) (top . -1)) "Plist of frame properties for a dialog frame." :group 'x-face :group 'x-face-xmas :type '(repeat (cons :format "%v" (symbol :tag "Parameter") (sexp :tag "Value")))) (defcustom x-face-xmas-font-height-in-dialog-box 16 "Height of the font in dialog box." :group 'x-face :group 'x-face-xmas :type 'integer) (defcustom x-face-xmas-image-xpm-filebad "/* XPM */ static char *filebad_xpm[] = { /* width height num_colors chars_per_pixel */ \"20 16 4 1\", /* colors */ \" s None c None\", \". c #ffffff\", \"X c #ff0000\", \"# c #000000\", /* pixels */ \"############## \", \"#............## \", \"#...XX.......#.# \", \"#....XX......#..# \", \"#.....XX....X#...# \", \"#......XX..XX###### \", \"#.......XXXX.#######\", \"#........XX.......##\", \"#.......XXXX......##\", \"#......XX..XX.....##\", \"#.....XX....XX....##\", \"#....XX......XX...##\", \"#...XX........XX..##\", \"#.................##\", \"####################\", \" ###################\" }; " "Thumbnail image for bad file." :group 'x-face :group 'x-face-xmas :type 'string) (defcustom x-face-xmas-image-xpm-filebad-height 16 "Height of thumbnail image for bad file." :group 'x-face :group 'x-face-xmas :type 'integer) (defcustom x-face-xmas-load-hook nil "Hook to be run after the x-face package has been loaded." :group 'x-face :group 'x-face-xmas :type 'hook) (defcustom x-face-animate-limit-intervals '(0.1 . 2) "Cons of minimum and maximum interval time." :group 'x-face :group 'x-face-xmas :type '(cons (number :tag "min.") (number :tag "max."))) ;;; Internal variables. (make-variable-buffer-local (defvar x-face-xmas-last-highlight-headers-hack-x-face-p 'unknown)) (defvar x-face-xmas-image-file-cache nil "((filename modtime filesize ((height . glyph) (height . glyph)) ...)") (defvar x-face-xmas-image-field-cache nil "((field glyph) (field glyph) ...)") (defvar x-face-xmas-animation-id 1) (defvar x-face-xmas-animation-keymap nil) (if (null x-face-xmas-animation-keymap) (setq x-face-xmas-animation-keymap (make-sparse-keymap))) (define-key x-face-xmas-animation-keymap 'button1 'x-face-xmas-animate-toggle) (define-key x-face-xmas-animation-keymap 'button2 'x-face-xmas-animate-toggle) (and (featurep 'xpm) (eval-when-compile (defmacro x-face-xmas-image-xpm-logo () (let ((logo (if (string-match "(\\(alpha\\|beta\\)[0-9]+)$" x-face-version-number) "x-face-beta-logo.xpm" "x-face-logo.xpm")) (dir (if (and (boundp 'filename) (stringp filename) (file-exists-p filename)) (file-name-directory filename) default-directory))) (setq logo (expand-file-name logo dir)) (if (file-exists-p logo) (let ((buffer (generate-new-buffer " *x-face-logo*")) (coding-system-for-read (quote binary)) buffer-file-format format-alist insert-file-contents-post-hook insert-file-contents-pre-hook) (prog1 (save-excursion (set-buffer buffer) (insert-file-contents logo) (buffer-string)) (kill-buffer buffer))) (progn (require 'bytecomp) (byte-compile-warn "Warning: file \"%s\" not found." logo) (sit-for 2) nil)))))) (defconst x-face-xmas-image-xpm-logo (and (featurep 'xpm) (x-face-xmas-image-xpm-logo))) (defun x-face-xmas-highlight-headers-hack-x-face-p-p () (if (boundp 'highlight-headers-hack-x-face-p) (and highlight-headers-hack-x-face-p t) t)) ;;; Macros and defsubsts. ;;(defmacro x-face-xmas-highlight-headers-hack-x-face-p-p () ;; '(if (boundp (quote highlight-headers-hack-x-face-p)) ;; (and highlight-headers-hack-x-face-p t) ;; t)) (defmacro x-face-xmas-modified-dialog-frame-plist () '(let ((olist dialog-frame-plist) (items (quote (height left top))) (replaces (quote (width))) new value elt plist) (setq new (mapcar (lambda (item) (and (setq value (cdr (assq item x-face-xmas-dialog-frame-alist))) (setq replaces (push item replaces)) (list item value))) items)) (while (setq elt (pop olist)) (if (memq elt replaces) (pop olist) (setq plist (append plist (list elt (pop olist)))))) (apply (quote append) (quote (width 18)) plist new))) ;;; Functions and/or Comnnands. ;;;###autoload (defun x-face-menu-encode () "Generate X-Face string(s) from xbm file with menu." (interactive) (let ((default-directory (x-face-file-name-as-directory x-face-image-file-directory)) (force force-dialog-box-use) (dialog-frame-plist (x-face-xmas-modified-dialog-frame-plist)) (window-min-width 1) (completion-setup-hook completion-setup-hook) (orig (symbol-function 'mouse-directory-display-completion-list)) (frame-title-format (list 'x-face-completions "*X-Face Encode*" frame-title-format)) (x-face-completions t) x-face-default-xbm-file) (add-hook 'completion-setup-hook 'x-face-xmas-display-x-face-in-dialog-box) (unwind-protect (progn (setq force-dialog-box-use t) (fset 'mouse-directory-display-completion-list x-face-nop) (call-interactively 'x-face-encode)) (setq force-dialog-box-use force) (fset 'mouse-directory-display-completion-list orig)))) ;;;###autoload (defun x-face-menu-insert () "Insert X-Face with menu." (interactive) (let ((default-directory (x-face-file-name-as-directory x-face-image-file-directory)) (force force-dialog-box-use) (dialog-frame-plist (x-face-xmas-modified-dialog-frame-plist)) (window-min-width 1) (completion-setup-hook completion-setup-hook) (orig (symbol-function 'mouse-directory-display-completion-list)) (frame-title-format (list 'x-face-completions "*X-Face Insert*" frame-title-format)) (x-face-completions t) x-face-default-xbm-file) (add-hook 'completion-setup-hook 'x-face-xmas-display-x-face-in-dialog-box) (unwind-protect (progn (setq force-dialog-box-use t) (fset 'mouse-directory-display-completion-list x-face-nop) (call-interactively 'x-face-insert)) (setq force-dialog-box-use force) (fset 'mouse-directory-display-completion-list orig)))) ;;;###autoload (defun x-face-xmas-wl-display-x-face (&optional beg end arg) "A function to display X-Face for Wanderlust." (let ((x-face-xmas-inhibit-read-only t)) (x-face-xmas-display-x-face (if arg -1 1) beg end))) (defalias 'x-face-xmas-mew-display-x-face 'x-face-xmas-wl-display-x-face) ;;;###autoload (defun x-face-xmas-cmail-display-x-face (&optional arg) (x-face-xmas-display-x-face-not-read-only *cmail-mail-buffer arg)) (defun x-face-xmas-extract-x-face-fields-to-glyphs () (let (field animate type x y glyph) (mapcar (lambda (icons) (setq field (pop icons)) (if (or (glyphp icons) (numberp (car icons))) ; animated glyph icons (setq type (pop icons) x (pop icons) y (pop icons) animate (pop icons) glyph nil) (setq glyph (if animate (cons animate (mapcar '(lambda (icon) (x-face-xmas-extract-x-face-fields-internal type x y icon)) (x-face-xmas-pack-icons icons (apply '* (if (eq 'rgb type) 3 1) (list x y))))) (x-face-xmas-extract-x-face-fields-internal type x y icons))) (and field (push (list field glyph) x-face-xmas-image-field-cache)) glyph)) (save-excursion (x-face-extract-x-face-fields-to-icons nil 'glyph))))) (defun x-face-xmas-extract-x-face-fields-internal (type x y icons) (let (glyph) (if (eq 'rgb type) (save-excursion (set-buffer (x-face-icons-to-xpm "noname" x y (x-face-concat-rgb-icons x y icons))) (setq glyph (make-glyph (vector 'xpm :data (buffer-string)))) (kill-buffer (current-buffer))) (if (eq 'gray type) (setq glyph (make-glyph (vector 'xpm :data (x-face-gray-faces-to-xpm (mapcar (lambda (icon) (save-excursion (set-buffer (x-face-icons-to-xbm "noname" x y icon)) (unwind-protect (x-face-xbm-to-pbm (buffer-string)) (kill-buffer (current-buffer))))) icons))))) (setq glyph (make-glyph (vector 'xbm :data (list (* 48 x) (* 48 y) (mapconcat 'char-to-string (x-face-ascii-to-binary-icon (x-face-concat-mono-icons x y icons) nil nil 'xmas) ""))))) (set-glyph-face glyph 'x-face-xmas-x-face-face))) glyph)) (defsubst x-face-xmas-pack-icons (icons num) (let (ic) (while icons (setq ic (append ic (list icons))) (setq icons (prog1 (nthcdr num icons) (if (nthcdr (1- num) icons) (setcdr (nthcdr (1- num) icons) nil))))) ic)) (defun x-face-xmas-search-extents () (let ((case-fold-search t) points extent extents from x-face) (goto-char (point-min)) (while (setq points (x-face-search-field "^From" t)) (setq extent nil extents nil) (while (setq extent (extent-at (cadr points) nil nil extent 'at)) (and (or (extent-begin-glyph extent) (extent-end-glyph extent)) (extent-property extent 'x-face-image) (setq extents (append extents (list extent))))) (setq from (append from (list (append points extents))))) (goto-char (point-min)) (while (setq points (x-face-search-field "^X-Face\\(-[0-9]+\\)?" t)) (setq extent nil extents nil) (while (setq extent (extent-at (cadr points) nil nil extent 'at)) (and (or (extent-begin-glyph extent) (extent-end-glyph extent)) (extent-property extent 'x-face-image) (setq extents (append extents (list extent))))) (setq x-face (append x-face (list (append points extents))))) ;; ((from (P0 P1 P2 EXTENT EXTENT ...)) ;; (x-face (P0 P1 P2 EXTENT EXTENT ...))) (list (cons 'from from) (cons 'x-face x-face)))) ;;;###autoload (defun x-face-xmas-display-x-face (arg &optional beg end) "Display X-Face fields as XEmacs glyph." (interactive "P") (and x-face-xmas-xface-p (not (eq 'tty (device-type))) (save-excursion (save-restriction (apply 'narrow-to-region (cond ((and beg end) (list beg end)) ((and zmacs-regions (interactive-p) (region-exists-p)) (list (region-beginning) (region-end))) (t (list (point-min) (point-max))))) (x-face-narrow-to-header) (let ((exists (x-face-xmas-search-extents)) (gnus-article-p (and (boundp 'gnus-article-buffer) (eq (get-buffer gnus-article-buffer) (current-buffer)))) (hide-props (if x-face-xmas-inhibit-read-only '(invisible t) '(invisible t read-only t))) lives on x-face from pt extent glyphs) ;; extract live extents. (mapcar (lambda (i) (setq lives (append lives (cdddr i)))) (append (cdar exists) (cdadr exists))) (setq x-face (mapcar (lambda (i) (list (car i) (cadr i) (caddr i))) (cdr (assq 'x-face exists)))) ;; delete all extents. (put-text-property (point-min) (point-max) 'read-only nil) (mapcar 'delete-extent lives) ;; whether ON or OFF? (setq on (and (x-face-xmas-highlight-headers-hack-x-face-p-p) x-face (or (not (or lives (and (numberp arg) (< arg 0)))) (and (numberp arg) (> arg 0))))) ;; (when on (cond ((setq from (mapcar (lambda (i) (list (car i) (cadr i) (caddr i))) (cdr (assq 'from exists)))) (setq pt (cadar from)) (unless gnus-article-p (mapcar (lambda (i) (add-text-properties (car i) (caddr i) hide-props)) x-face))) ((and (not gnus-article-p) x-face) (setq pt (cadar x-face)) (add-text-properties pt (1- (caddar x-face)) hide-props) (when (memq 'read-only hide-props) (put-text-property pt (caddar x-face) 'read-only t)) (mapcar (lambda (i) (add-text-properties (car i) (caddr i) hide-props)) (cdr x-face))) (x-face;; There is no From field in `gnus-article-buffer'. (goto-char (point-min)) (let ((inhibit-read-only t) buffer-read-only) (insert "From: ") (setq pt (point)) (insert "(unknown)\n")))) (message "Decoding X-Face image...") (setq glyphs (x-face-xmas-extract-x-face-fields-to-glyphs)) (if glyphs (progn (mapcar (lambda (glyph) (set-extent-properties (setq extent (make-extent (1- pt) pt)) '(x-face-image t duplicable t)) (if (listp glyph) ;; animated glyph (let ((id (if (natnump x-face-xmas-animation-id) x-face-xmas-animation-id 1))) (setq x-face-xmas-animation-id (1+ id)) (set-extent-properties extent (list 'keymap x-face-xmas-animation-keymap 'x-face-xmas-animation-id id 'x-face-xmas-animation-interval (max (car x-face-animate-limit-intervals) (min (cdr x-face-animate-limit-intervals) (car glyph))) 'x-face-xmas-animation-buffer (current-buffer) 'x-face-xmas-location (and x-face-xmas-like-highlight-headers from) 'x-face-xmas-animation-glyphs (cdr glyph))) (x-face-animate extent)) (if (and x-face-xmas-like-highlight-headers from) (set-extent-end-glyph extent glyph) (set-extent-begin-glyph extent glyph)))) (if (and x-face-xmas-like-highlight-headers (not from)) (nreverse glyphs) glyphs)) (message "")) (message "Decoding X-Face image...!! FAILED") (setq on nil))) (if gnus-article-p (setq last on) (unless on (mapcar (lambda (i) (put-text-property (car i) (caddr i) 'invisible nil)) x-face)))))))) (defun x-face-animate (extent) "Animate X-Face." (let ((buffer (extent-property extent 'x-face-xmas-animation-buffer)) (id (extent-property extent 'x-face-xmas-animation-id))) (when (x-face-buffer-live-p buffer) (save-excursion (set-buffer buffer) (save-restriction (widen) (x-face-narrow-to-header) (unless (and (extent-live-p extent) (not (extent-detached-p extent))) (setq extent nil) (map-extents (lambda (e maparg) (when (eq id (extent-property e 'x-face-xmas-animation-id)) (setq extent e))))) (when extent (when (let ((window (get-buffer-window buffer))) (and window (pos-visible-in-window-p (extent-start-position extent) window))) (let* ((glyphs (extent-property extent 'x-face-xmas-animation-glyphs)) (glyph (car glyphs))) (if (extent-property extent 'x-face-xmas-location) (set-extent-end-glyph extent glyph) (set-extent-begin-glyph extent glyph)) (set-extent-property extent 'x-face-xmas-animation-glyphs (nconc (cdr glyphs) (list glyph))))) (set-extent-property extent 'x-face-xmas-animation-timer (run-with-timer (extent-property extent 'x-face-xmas-animation-interval) nil 'x-face-animate extent)))))))) (defun x-face-xmas-animate-toggle (event) "Toggle Animation of X-Face." (interactive "e") (let ((timer (extent-property (event-glyph-extent event) 'x-face-xmas-animation-timer))) (if (memq timer timer-list) (cancel-timer timer) (x-face-animate (event-glyph-extent event))))) ;;;###autoload (defun x-face-xmas-force-display-x-face () "Display X-Face fields compulsorily as XEmacs glyph." (x-face-xmas-display-x-face 1)) ;;;###autoload (defun x-face-xmas-display-x-face-not-read-only (&optional buffer arg) "Display X-Face in the specified buffer." (save-excursion (set-buffer (or buffer (current-buffer))) (let ((x-face-xmas-inhibit-read-only t)) (x-face-xmas-display-x-face (if arg -1 1))))) ;;;###autoload (defun x-face-xmas-remove-x-face-glyph () "Remove X-Face images and some text-properties." (x-face-xmas-display-x-face -1)) (defun x-face-xmas-highlight-headers (start end hack-sig) "Replacement of highlight-headers." (let ((x-face-xmas-inhibit-read-only t) ;;(x-face-xmas-like-highlight-headers t) (highlight-headers-hack-x-face-p (or highlight-headers-hack-x-face-p (eq t x-face-xmas-last-highlight-headers-hack-x-face-p))) s extent extents) (setq x-face-xmas-last-highlight-headers-hack-x-face-p 'unknown) (and (< end start) (setq s start start end end s)) (orig::highlight-headers start end hack-sig) (save-excursion (save-restriction (widen) (and hack-sig (goto-char end) (re-search-backward "\n--+ *\n" start t) (setq end (1+ (point)))) (goto-char start) (when (re-search-forward "^From: *" end t) (while (setq extent (extent-at (point) nil nil extent 'at)) (and (extent-end-glyph extent) (push extent extents))) (mapcar 'delete-extent extents)) (setq extent nil extents nil) (goto-char start) (when (re-search-forward "^X-Face:" end t) (while (setq extent (extent-at (match-beginning 0) nil nil extent 'at)) (and (extent-property extent 'invisible) (push extent extents))) (mapcar 'delete-extent extents)))) (x-face-xmas-display-x-face 1 start end))) (defun x-face-xmas-replace-highlight-headers (&optional arg) "Replace highlight-headers." (unless (fboundp 'orig::highlight-headers) (require 'highlight-headers) (fset 'orig::highlight-headers (symbol-function 'highlight-headers))) (if arg (fset 'highlight-headers (symbol-function 'orig::highlight-headers)) (fset 'highlight-headers (symbol-function 'x-face-xmas-highlight-headers)))) (defun x-face-xmas-mime-highlight-headers () "Replacement of mime-preview-x-face-function-use-highlight-headers." (or (and (boundp 'gnus-article-buffer) gnus-article-buffer (eq (get-buffer gnus-article-buffer) (current-buffer))) (highlight-headers (point-min) (re-search-forward "^$" nil t) t))) (defun x-face-xmas-replace-x-face-function-for-semi-1 (&optional arg) (or (boundp 'orig::mime-display-header-hook) (let ((w (symbol-function 'display-warning))) (unwind-protect (progn (fset 'display-warning x-face-nop) (require 'mime-image)) (fset 'display-warning w)) (setq orig::mime-display-header-hook (and (boundp 'mime-display-header-hook) (copy-sequence mime-display-header-hook))))) (if arg (setq mime-display-header-hook orig::mime-display-header-hook) (remove-hook 'mime-display-header-hook 'mime-preview-x-face-function-use-highlight-headers) (add-hook 'mime-display-header-hook 'x-face-xmas-mime-highlight-headers))) (defun x-face-xmas-replace-x-face-function-for-semi-0 (&optional arg) (or (boundp 'orig::mime-view-content-header-filter-hook) (let ((w (symbol-function 'display-warning))) (unwind-protect (progn (fset 'display-warning x-face-nop) (require 'mime-image)) (fset 'display-warning w)) (setq orig::mime-view-content-header-filter-hook (copy-sequence mime-view-content-header-filter-hook)))) (if arg (setq mime-view-content-header-filter-hook orig::mime-view-content-header-filter-hook) ;; >= SEMI 1.1.0 (remove-hook 'mime-view-content-header-filter-hook 'mime-preview-x-face-function-use-highlight-headers) ;; <= SEMI 1.0.2 (remove-hook 'mime-view-content-header-filter-hook 'mime-preview/x-face-function-use-highlight-headers) (add-hook 'mime-view-content-header-filter-hook 'x-face-xmas-mime-highlight-headers))) (defun x-face-xmas-replace-x-face-function-for-semi (&optional arg) "Replace mime-preview-x-face-function-use-highlight-headers for SEMI." (if (boundp 'mime-user-interface-product) (x-face-xmas-replace-x-face-function-for-semi-1 arg) (let ((version (or (and (boundp 'mime-user-interface-version) mime-user-interface-version) (and (boundp 'mime-module-version) mime-module-version) (and (boundp 'semi-version) semi-version)))) (if version (if (and (>= (nth 2 version) 1) (>= (nth 3 version) 7)) (x-face-xmas-replace-x-face-function-for-semi-1 arg) (x-face-xmas-replace-x-face-function-for-semi-0 arg)) (eval-after-load "semi-def" `(x-face-xmas-replace-x-face-function-for-semi ,arg)) (eval-after-load "mime-def" `(if (or (boundp 'mime-module-version) (boundp 'semi-version)) (x-face-xmas-replace-x-face-function-for-semi ,arg))))))) (defun x-face-xmas-replace-x-face-function-for-tm (&optional arg) "Replace mime-preview/x-face-function-use-highlight-headers for tm." (or (boundp 'orig::mime-viewer/content-header-filter-hook) (let ((w (symbol-function 'display-warning))) (unwind-protect (progn (fset 'display-warning x-face-nop) (require 'tm-image)) (fset 'display-warning w)) (setq orig::mime-viewer/content-header-filter-hook (copy-sequence mime-viewer/content-header-filter-hook)))) (if arg (setq mime-viewer/content-header-filter-hook orig::mime-viewer/content-header-filter-hook) (remove-hook 'mime-viewer/content-header-filter-hook 'mime-preview/x-face-function-use-highlight-headers) (add-hook 'mime-viewer/content-header-filter-hook 'x-face-xmas-mime-highlight-headers))) (defun x-face-xmas-xbm-file-to-glyphs (file &optional directory) "Generate and cache glyphs from a xbm file." (let* ((filename (apply 'expand-file-name (if directory (list (file-name-nondirectory file) directory) (list file)))) (attributes (file-attributes filename)) (modtime (nth 5 attributes)) (size (nth 7 attributes)) (cache (assoc filename x-face-xmas-image-file-cache)) buffer ret type x y height icons glyph glyphs) (or (and (equal modtime (cadr cache)) (eq size (caddr cache)) (cadddr cache)) (progn (setq buffer (get-buffer-create " *x-face*")) (save-excursion (x-face-set-buffer-disable-undo buffer) (x-face-find-file-no-conversion filename) (if (setq ret (condition-case () (x-face-xbm-to-icon-strings) (error nil))) (progn (setq type (car ret) x (caadr ret) y (cdadr ret) icons (caddr ret)) (when (or (eq 'mono type) (not type)) (setq height (* 48 y) glyph (make-glyph (vector 'xbm :data (list (* 48 x) height (mapconcat 'char-to-string (x-face-ascii-to-binary-icon (x-face-concat-mono-icons x y icons) nil nil 'xmas) ""))))) (set-glyph-face glyph 'x-face-xmas-x-face-face) (push (cons height glyph) glyphs)) (when (or (eq 'rgb type) (not type)) (if (eq 1 y) (setq x (/ x 3)) (setq y (/ y 3))) (set-buffer (x-face-icons-to-xpm "noname" x y (x-face-concat-rgb-icons x y icons))) (setq height (* 48 y) glyph (make-glyph (vector 'xpm :data (buffer-string)))) (kill-buffer (current-buffer)) (push (cons height glyph) glyphs))) (setq glyphs (list (cons (- x-face-xmas-image-xpm-filebad-height) (make-glyph (vector 'xpm :data x-face-xmas-image-xpm-filebad))))))) (setq x-face-xmas-image-file-cache (put-alist filename (list modtime size glyphs) x-face-xmas-image-file-cache)) (kill-buffer buffer) glyphs)))) (defun x-face-xmas-display-x-face-in-dialog-box () "Display X-Face images in the dialog box." (and x-face-xmas-xface-p (memq this-command '(x-face-menu-encode x-face-menu-insert)) (should-use-dialog-box-p) (save-excursion (set-buffer (get-buffer "*Completions*")) (let ((cw (get-buffer-window (current-buffer))) (case-fold-search t) (re (x-face-compressed-filename-regexp "[^\n\t ]+\\.xbm\\(%s\\)?")) (spc (make-glyph [xbm :data (4 1 "\x0")])) (gc-cons-threshold 67108863) (wh (* x-face-xmas-font-height-in-dialog-box (- (cdr (assq 'height x-face-xmas-dialog-frame-alist)) 4))) (hlst (list x-face-xmas-font-height-in-dialog-box)) (ttl x-face-xmas-font-height-in-dialog-box) (frame (selected-frame)) (window-min-height 1) buffer-read-only tmp beg end filename files glyphs good glyph extent vscroll) (and (setq tmp (get-buffer " *mouse-read-file*")) (setq tmp (get-buffer-window tmp)) (delete-window tmp)) (message (setq x-face-last-message "Creating thumbnails...")) (and (setq tmp (assq 'width x-face-xmas-dialog-frame-alist)) (modify-frame-parameters frame (list tmp))) (set-specifier scrollbar-width 15 frame) (set-specifier scrollbar-height 15 frame) (redisplay-frame frame) (goto-char (point-min)) (forward-line 1) (delete-region (point-min) (point)) (while (re-search-forward "[\t ]+" nil t) (replace-match "\n")) (while (re-search-forward "[^\n\t ]+" nil t) (setq beg (match-beginning 0) end (match-end 0) filename (expand-file-name (match-string 0) default-directory)) (if (string-match re filename) (progn (setq files (cons filename files) glyphs (x-face-xmas-xbm-file-to-glyphs filename) good (> (caar glyphs) 0) tmp (max (car (sort (mapcar (lambda (elt) (abs (car elt))) glyphs) '>)) x-face-xmas-font-height-in-dialog-box) hlst (append hlst (list tmp)) ttl (+ ttl tmp) glyphs (mapcar 'cdr glyphs) extent nil tmp nil) (unless good (while (setq extent (extent-at beg nil nil extent 'at)) (push extent tmp)) (mapcar (lambda (e) (set-extent-properties e '(mouse-face nil list-mode-item-activate-callback nil))) tmp)) (and (> (length glyphs) 1) (setq glyphs (list (car glyphs) spc (cadr glyphs)))) (setq glyphs (append (list spc) glyphs (list spc))) (while (setq glyph (pop glyphs)) (and (eq 'mono-pixmap (image-instance-type (specifier-instance (setq tmp (glyph-image glyph))))) (setq glyph (make-glyph tmp)) (set-glyph-face glyph 'x-face-xmas-x-face-face-for-dialog)) (setq extent (make-extent beg end)) (set-extent-begin-glyph extent glyph) (set-extent-property extent 'x-face-image t)) (setq vscroll 0 tmp ttl) (while (> tmp wh) (setq tmp (- tmp (nth vscroll hlst)) vscroll (1+ vscroll))) ;; scroll up if necessary. (unless (zerop vscroll) (goto-char (point-min)) (forward-line vscroll) (set-window-start cw (point)) (goto-char end)) (redisplay-frame frame)) (delete-region beg (1+ end)))) ;;-) (when x-face-xmas-image-xpm-logo (setq wh (cdr (assq 'height x-face-xmas-dialog-frame-alist))) (goto-char (setq beg (point-max))) (x-face-xmas-splash-at-point (and wh (max 0 (- wh 3)))) (sit-for 1) (delete-region beg (point-max))) ;; (set-buffer-modified-p nil) (setq buffer-read-only t) ;; cleaning up cache. (setq x-face-xmas-image-file-cache (delq nil (mapcar (lambda (elt) (and (member (car elt) files) elt)) x-face-xmas-image-file-cache))) (set-window-start cw (point-min)) (setq x-face-last-message nil))))) (defun x-face-xmas-image-file-cache-precharge () "A function to precharge X-Face images to the cache." (let ((files (x-face-directory-files x-face-image-file-directory t (x-face-compressed-filename-regexp "[^\n\t ]+\\.xbm\\(%s\\)?") nil t)) (num 1) ttl) (when files (setq ttl (length files)) (mapcar (lambda (file) (message (setq x-face-last-message (format "Precharging X-Face images (%d/%d)..." num ttl))) (x-face-xmas-xbm-file-to-glyphs file) (incf num)) files) (message "Precharging X-Face images (%d/%d)...done" ttl ttl) (setq x-face-last-message nil)))) ;;; Menu. (defconst x-face-menu-title "X-Face") (defvar x-face-menu-map (make-sparse-keymap x-face-menu-title)) (defconst x-face-menu-list '(("Toggle Image" x-face-xmas-display-x-face (and x-face-xmas-xface-p (not buffer-read-only) (zerop (minibuffer-depth)))) ("View" x-face-view (zerop (minibuffer-depth))) ("View Ascii" x-face-ascii-view (zerop (minibuffer-depth))) ("Encode" x-face-menu-encode (zerop (minibuffer-depth))) ("Insert" x-face-menu-insert (and (not buffer-read-only) (zerop (minibuffer-depth)))) ("Select XFace" select-xface (and (fboundp (quote select-xface)) (not buffer-read-only) (zerop (minibuffer-depth)))) ("Save" x-face-save (zerop (minibuffer-depth))))) (if (featurep 'menubar) (defun x-face-define-menu () "Define menu for XEmacs." (make-local-variable 'current-menubar) (set-buffer-menubar current-menubar) (add-submenu nil (cons x-face-menu-title (mapcar (lambda (item) (apply 'vector item)) x-face-menu-list)) "Top")) (defun x-face-define-menu () (message "!! The feature `menubar' is not provided.") (sit-for 1))) ;;; Splash screen. (defun x-face-xmas-splash-at-point (&optional height) (or (bolp) (insert "\n")) (let ((bow (point)) bov) (insert-char ?\n (max 0 (/ (- (or height (window-height)) 8) 2))) (insert-char ?\ (max 0 (/ (- (window-width) 44) 2))) (set-extent-end-glyph (make-extent (point) (point)) (make-glyph (vector 'xpm :data x-face-xmas-image-xpm-logo))) (insert "\n") (insert-char ?\ (max 0 (/ (- (window-width) (length x-face-version)) 2))) (setq bov (point)) (insert x-face-version) (and (find-face 'bold-italic) (put-text-property bov (point) 'face 'bold-italic)) (goto-char bow) (set-window-start (get-buffer-window (current-buffer)) (point)) (redisplay-frame))) (defun x-face-xmas-splash (&optional arg) (interactive "P") (and x-face-xmas-image-xpm-logo (let ((frame (selected-frame)) config buffer) (and frame (unwind-protect (progn (setq config (current-window-configuration)) (switch-to-buffer (setq buffer (generate-new-buffer (concat (if arg "*" " *") x-face-version "*")))) (delete-other-windows) (x-face-xmas-splash-at-point) (set-buffer-modified-p nil) (or arg (sleep-for 2))) (unless arg (kill-buffer buffer) (set-window-configuration config) (redisplay-frame frame))))))) (or x-face-inhibit-loadup-splash (eq 'stream (device-type)) (x-face-xmas-splash)) (provide 'x-face-xmas) (run-hooks 'x-face-xmas-load-hook) ;;; x-face-xmas.el ends here x-face-1.3.6.24/x-face.el0100644000227700000130000026171407722636267014135 0ustar yamaokastaff;;; x-face.el -- X-Face encoder/decoder/viewer for Emacsen. ;; Copyright (C) 1996-2003 Katsumi Yamaoka ;; Copyright (C) 1996-2003 Tatsuya Ichikawa ;; Copyright (C) 1996-2003 OKUNISHI Fujikazu ;; Copyright (C) 1996-2003 KOSEKI Yoshinori ;; Copyright (C) 1996-2003 Ken'ichi OKADA ;; Copyright (C) 1996-2003 Tetsuya Uemura ;; Copyright (C) 1996-2003 TAKAHASHI Kaoru ;; Copyright (C) 2002-2003 Daiki Ueno ;; Copyright (C) 2003 Tatsuya Kinoshita ;; Author: Katsumi Yamaoka ;; Tatsuya Ichikawa ;; OKUNISHI Fujikazu ;; KOSEKI Yoshinori ;; Ken'ichi OKADA ;; Tetsuya Uemura ;; TAKAHASHI Kaoru ;; Daiki Ueno ;; Tatsuya Kinoshita ;; Maintainer: Katsumi Yamaoka ;; Created: 1996/09/19 ;; Revised: 2003/08/26 ;; Keywords: x-face, x-face-mule, semi-gnus, gnus, mew, mail, mh-e, ;; rmail, vm, cmail, wl ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; Now the X-Face utility for Emacs 21 is available at: ;; ;; ftp://ftp.jpl.org/pub/elisp/x-face-e21.el.gz ;; ;; We strongly recommend you use it rather than this module if you are ;; using Emacs 21 having a new redisplay engine. ;; This module provides the following five commands. Each command name ;; expresses its function literally: ;; ;; x-face-encode ;; Read an XBM file, encode it to the X-Face data, and show it. ;; x-face-insert ;; Read an XBM file, encode it to the X-Face data, and insert it to ;; the current buffer as a message header. ;; x-face-save ;; Extract X-Face headers in the current buffer, encode them to XBM ;; data, and save them in the local system. ;; x-face-view ;; Extract X-Face headers in the current buffer, encode them to XBM ;; data, and show them using an external image viewer. ;; x-face-ascii-view ;; Extract X-Face headers in the current buffer, encode them to XBM ;; data, and show them as ascii pictures in an Emacs frame." ;; ;; Please note, this module provides no image viewer in an Emacs frame ;; for the historical reason. However, it is easy to display X-Face ;; images inline; Gnus provides the X-Face viewer by itself, you can ;; use x-face-mule.el for Mule 2 and Emacs, x-face-e21.el for Emacs 21, ;; x-face-xmas.el for XEmacs, and so forth. ;;; Code: (defconst x-face-version-number "1.3.6.24" "Version number for this version of x-face.") (defconst x-face-version (format "X-Face utility v%s" x-face-version-number) "Version string for this version of x-face.") (defconst x-face-codename ;; "Across The Universe" ;; "Blackbird" ;; "Carry That Weight" ;; "Dr. Robert" ;; "Eleanor Rigby" ;; "Fixing A Hole" ;; "Good Day Sunshine" ;; "Honey Pie" ;; "I Feel Fine" ;; "Julia" ;; "Kansas City" ;; "Lovely Rita" ;; "Martha My Dear" ;; "Norwegian Wood" ;; "Ob-la-di,Ob-la-da" ;; "Penny Lane" ;; "Rocky Raccoon" ;; "Strawberry Fields Forever" ;; "Ticket To Ride" ;; "Back In The U.S.S.R" ;; "She's LeaVing Home" ;; "We Can Work It Out" ;; "TaXman" ;; "Yellow Submarine" ;; "Zexy Sedie" ;; "And Your Bird Can Sing" ;; "Baby's In Back" ;; "Can't Buy Me Love" ;; "Day Tripper" ;; "Every Little Thing" ;; "The Fool On The Hill" ;; "Good Night" ;; "Hello Goodbye" ;; "I Me Mine" ;; "Yellow Submarine (remix)" ;; "Hey Bulldog (remix)" ;; "Eleanor Rigby (remix)" ;; "Love You To (remix)" "All Together Now (remix)" ;; "Lucy in the Sky With Diamonds (remix)" ;; "Think for Yourself (remix)" ;; "Sgt. Pepper's Lonely Hearts Club Band (remix)" ;; "With a Little Help from My Friends (remix)" ;; "Baby You're a Rich Man (remix)" ;; "Only a Northern Song (remix)" ;; "All You Need Is Love (remix)" ;; "When I'm Sixty-Four (remix)" ;; "Nowhere Man (remix)" ;; "It's All Too Much (remix)" "Codename of this version of x-face (a string).") ;; For NEmacs. (or (fboundp 'eval-and-compile) (progn (put 'eval-and-compile 'lisp-indent-hook 0) (defmacro eval-and-compile (&rest body) (cons 'progn body)))) (or (fboundp 'eval-when-compile) (progn (put 'eval-when-compile 'lisp-indent-hook 0) (defmacro eval-when-compile (&rest body) (cons 'progn body)))) (eval-when-compile (require 'cl)) (eval-and-compile (condition-case () (require 'custom) (error nil))) (eval-when-compile (let ((customizable (and (featurep 'custom) (fboundp 'custom-declare-variable)))) (unless customizable (defmacro defgroup (&rest args)) (defmacro defcustom (symbol value &optional doc &rest args) (let ((doc (concat "*" (or doc "")))) (` (defvar (, symbol) (, value) (, doc)))))) ;; Silence the byte compiler. (save-excursion (beginning-of-defun) (eval-region (point-min) (point))) (let (case-fold-search) (if (string-match "(\\(alpha\\|beta\\)[0-9]+)$" x-face-version-number) (mapcar (function (lambda (symbol) (unless (boundp symbol) (make-local-variable symbol) (eval (list 'setq symbol nil))))) (append '(cmail-current-folder custom-background-mode font-lock-background-mode frame-background-mode frame-title-format gnus-Article-buffer gnus-article-buffer gnus-background-mode gnus-current-article gnus-original-article-buffer gnus-show-all-headers gnus-show-mime hilit-background-mode mew-draft-buffer-header mew-header-separator mew-marker-header-end mew-mv: mh-folder-filename mh-show-buffer select-xface-version vm-mail-buffer x-face-gzip-compress-option x-face-gzip-program x-face-gzip-uncompress-option x-face-mule-original-x-face-fields x-face-mule:original-x-face-fields x-face-mule-original-from-field x-face-mule:original-from-field x-face-use-gzip-when-save x-face-xbm-file-directory x-face-xmas-auto-image x-face-xmas-image-field-cache x-face-xmas-image-file-cache x-face-xmas-last-highlight-headers-hack-x-face-p x-face-xmas-xface-p) (unless customizable '(:data :prefix)))) (make-local-variable 'byte-compile-warnings) (setq byte-compile-warnings nil))))) (defgroup x-face nil "X-Face utility." :prefix "x-face-" :group 'applications) (defcustom x-face-image-file-directory (or (and (boundp 'x-face-xbm-file-directory) x-face-xbm-file-directory) "~/x-faces") "Directory name where image files will be found." :group 'x-face :type 'directory) (defcustom x-face-image-file-directory-for-save x-face-image-file-directory "Directory name where image files will be saved in." :group 'x-face :type 'directory) (defcustom x-face-default-xbm-file nil "Default xbm file name for user's face." :group 'x-face :type 'string) (defcustom x-face-insert-interactive t "If non-nil, x-face-insert will be called interactively." :group 'x-face :type 'boolean) (defcustom x-face-compressor (and (or (not (boundp 'x-face-use-gzip-when-save)) x-face-use-gzip-when-save) 'gzip) "Compress method for saving image files. This variable can be set to `nil' `gzip' or 'bzip2'." :group 'x-face :type '(radio (variable-item gzip) (variable-item bzip2) symbol)) (defcustom x-face-compressor-program-list (list (cons 'gzip (if (and (boundp 'x-face-gzip-program) (boundp 'x-face-gzip-compress-option) (boundp 'x-face-gzip-uncompress-option)) (list ".gz" x-face-gzip-program x-face-gzip-compress-option "GZIPping" x-face-gzip-program x-face-gzip-uncompress-option "GUNZIPping") '(".gz" "gzip" "-c9" "GZIPping" "gzip" "-cd" "GUNZIPping"))) '(bzip2 ".bz2" "bzip2" "-f" "BZIPping" "bzip2" "-d" "BUNZIPping")) "List of compression methods. Each element looks like (METHOD FILENAME-SUFFIX COMPRESS-PROGRAM COMPRESS-ARGS COMPRESS-MSG UNCOMPRESS-PROGRAM UNCOMPRESS-ARGS UNCOMPRESS-MSG)." :group 'x-face :type 'sexp) (defcustom x-face-user-x-face-variable-name "x-face-encoded-string" "Variable name for the encoded X-Face string." :group 'x-face :type 'string) (defcustom x-face-compface-program "compface" "Program used to encode X-Face." :group 'x-face :type 'string) (defcustom x-face-uncompface-program "uncompface" "Program used to decode X-Face." :group 'x-face :type 'string) (defcustom x-face-viewer-program (cond ((eq 'OS/2 system-type) "pmview") ((eq 'windows-nt system-type) "start") (t "xv")) "Program used to view images." :group 'x-face :type 'string) (defcustom x-face-viewer-options (cond ((eq 'OS/2 system-type) nil) ((eq 'windows-nt system-type) nil) (t '("-nodecor" "-"))) "Options used for a viewer program." :group 'x-face :type 'sexp) (defcustom x-face-icons-to-color-picture-function (cond ((memq system-type '(OS/2 emx)) 'x-face-icons-to-os2-bmp) ((eq 'windows-nt system-type) 'x-face-icons-to-win-bmp) (t 'x-face-icons-to-xpm)) "Function used to make color pictures." :group 'x-face :type '(radio (function-item x-face-icons-to-os2-bmp) (function-item x-face-icons-to-win-bmp) (function-item x-face-icons-to-xpm) function)) (defcustom x-face-view-asynchronous (memq system-type '(OS/2 emx windows-nt)) "Non-nil makes the external viewer run asynchronously." :group 'x-face :type 'boolean) (defcustom x-face-view-asynchronous-function (cond ((memq system-type '(OS/2 emx)) 'x-face-view-asynchronous-function-for-OS/2) ((eq 'windows-nt system-type) 'x-face-view-asynchronous-function-for-win95) (t 'x-face-view-asynchronous-function-for-some)) "Function used to show images asynchronously." :group 'x-face :type '(radio (function-item x-face-view-asynchronous-function-for-OS/2) (function-item x-face-view-asynchronous-function-for-win95) (function-item x-face-view-asynchronous-function-for-some) function)) (defcustom x-face-viewer-startup-time (cond ((eq 'OS/2 system-type) 2) ((eq 'emx system-type) 2) (t 10)) "Number of seconds to wait for the starting up the external viewer." :group 'x-face :type 'integer) (defcustom x-face-save-or-view-method-alist '((gnus-summary-mode . (x-face-gnus-get-article x-face-find-gnus-article-buffer x-face-gnus-unwind-after-save-or-view)) (gnus-Subject-mode . (x-face-gnus-get-article x-face-find-gnus-article-buffer x-face-gnus-unwind-after-save-or-view)) (mh-folder-mode . (x-face-mh-get-article x-face-extracted-headers-buffer)) (mew-summary-mode . (x-face-mew-get-article x-face-extracted-headers-buffer)) (mew-virtual-mode . (x-face-mew-get-article x-face-extracted-headers-buffer)) (rmail-mode . (x-face-rmail-get-all-headers x-face-extracted-headers-buffer)) (vm-summary-mode . (x-face-vm-get-all-headers x-face-extracted-headers-buffer)) (cmail-summary-mode . (x-face-cmail-get-article x-face-extracted-headers-buffer)) (wl-summary-mode . (x-face-wl-get-article x-face-extracted-headers-buffer))) "Alist for saving or viewing X-Face images. Each element should be specified as follows: '(MAJOR-MODE . (PREPARE-FUNCTION BUFFERorFUNCTION POST-FUNCTION))" :group 'x-face :type 'sexp) (defcustom x-face-load-hook nil "Hook run after the x-face package is loaded." :group 'x-face :type 'hook) (defcustom x-face-insert-hook nil "Hook run after inserting X-Face headers." :group 'x-face :type 'hook) (defcustom x-face-add-x-face-version-header nil "If non-nil, the X-Face-Version header will be added." :group 'x-face :type 'boolean) (defcustom x-face-ascii-picture-table (if (or (and (boundp 'custom-background-mode) (eq 'dark custom-background-mode)) (and (boundp 'font-lock-background-mode) (eq 'dark font-lock-background-mode)) (and (boundp 'frame-background-mode) (eq 'dark frame-background-mode)) (and (boundp 'gnus-background-mode) (eq 'dark gnus-background-mode)) (and (boundp 'hilit-background-mode) (eq 'dark hilit-background-mode))) ["$" "\"" "0" " "] [" " "o" "\"" "$"]) "Bitmap table used to ascii picture conversion. \[0 0 1 1] \[0 1 0 1]" :group 'x-face :type '(radio (choice-item :tag "Dark" ["$" "\"" "0" " "]) (choice-item :tag "Light" [" " "o" "\"" "$"]))) (defcustom x-face-create-directory-function (if (fboundp 'make-directory) 'make-directory (function (lambda (dir) (call-process "/bin/mkdir" nil nil nil dir) (or (file-directory-p dir) (error "!! Can't create directory %s." dir))))) "Function used to make a directory." :group 'x-face :type 'function) (defcustom x-face-tmp-directory (file-name-as-directory (cond ((fboundp 'temp-directory) (temp-directory)) ((boundp 'temporary-file-directory) temporary-file-directory) ((memq system-type '(ms-dos windows-nt)) (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp")) ((memq system-type '(vax-vms axp-vms)) (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:")) (t (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp")))) "Name of the temporary directory." :group 'x-face :type 'directory) (defcustom x-face-tmp-directory-name-format (let ((r 0)) (while (<= r 0) (setq r (random))) (format ".x-face-%s-%d-%%d" (user-login-name) r)) "Format used for temporary subdirectory names. Subdirectories will be created and deleted in the temporary directory specified by the `x-face-tmp-directory' variable." :group 'x-face :type 'string) (defcustom x-face-inhibit-loadup-splash nil "If non-nil, the loadup splash will not be displayed." :group 'x-face :type 'boolean) (defcustom x-face-debug nil nil :group 'x-face :type 'boolean) ;;; Internal variables. (defconst x-face-mirror-table [?0 ?8 ?4 ?C ?2 ?A ?6 ?E ?1 ?9 ?5 ?D ?3 ?B ?7 ?F] "Mirror conversion table.") (defconst x-face-mirror-table-binary [0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15] "Mirror conversion table in binary.") (defconst x-face-mirror-table-8bit-binary (eval-when-compile (let ((table (make-vector 256 nil)) (i 0) j k l) (while (< i 256) (setq j i k 0 l 8) (while (> l 0) (setq k (lsh k -1) l (1- l)) (if (>= (setq j (lsh j 1)) 256) (setq j (logand 255 j) k (logior 128 k)))) (aset table i k) (setq i (1+ i))) table)) "Mirror conversion table in 8-bit binary.") (defvar x-face-extracted-headers-buffer nil) (defvar x-face-tmp-file-number 1) (defvar x-face-post-messages-save nil) (defconst x-face-nop (function (lambda (&rest args)))) (defvar x-face-last-message nil) (make-variable-buffer-local (defconst x-face-completions nil)) (defvar x-face-delete-file-alist) (setq x-face-delete-file-alist nil) ;;; Anti XEmacs. (unless (featurep 'xemacs) (mapcar (function (lambda (symbol) (eval (list 'defvar symbol)) (eval (list 'setq symbol nil)))) '(x-face-xmas-auto-image x-face-xmas-image-field-cache x-face-xmas-image-file-cache x-face-xmas-last-highlight-headers-hack-x-face-p x-face-xmas-xface-p))) ;;; Emulations for Emacs variants. (defconst x-face-no-conversion (cond (;; XEmacs (featurep 'xemacs) (coding-system-name (get-coding-system nil))) (;; Mule 2.3 (boundp 'MULE) '*noconv*) (;; Emacs 20.x, MULE 3.0 (fboundp 'check-coding-system) (or (condition-case () (check-coding-system 'binary) (coding-system-error nil)) (condition-case () (check-coding-system 'no-conversion) (coding-system-error nil)))))) (mapcar (function (lambda (elt) (let ((func (car elt))) (or (fboundp func) (fset func (symbol-function (cdr elt))))))) '((buffer-substring-no-properties . buffer-substring) (defsubst . defun) (read-char-exclusive . read-char))) (or (fboundp 'buffer-disable-undo) (defun buffer-disable-undo (&optional buffer) "Make BUFFER stop keeping undo information." (buffer-flush-undo (or buffer (current-buffer))))) (or (fboundp 'match-string) (defun match-string (num &optional string) "Return string of text matched by last search. \(This function is stolen from XEmacs for NEmacs.)" (if (match-beginning num) (if string (substring string (match-beginning num) (match-end num)) (buffer-substring (match-beginning num) (match-end num)))))) (or (fboundp 'redisplay-frame) (defun redisplay-frame (&rest args) (sit-for 0))) (eval-and-compile (or (condition-case () (require 'alist) ;; APEL (error nil)) (condition-case () (require 'tl-list) ;; tm (error nil)) (fboundp 'put-alist) ;; Imported from alist.el (defun put-alist (item value alist) "Modify ALIST to set VALUE to ITEM. If there is a pair whose car is ITEM, replace its cdr by VALUE. If there is not such pair, create new pair (ITEM . VALUE) and return new alist whose car is the new pair and cdr is ALIST." (let ((pair (assoc item alist))) (if pair (progn (setcdr pair value) alist) (cons (cons item value) alist)))))) (or (fboundp 'delete-file) (defun delete-file (filename) (call-process "/bin/rm" nil nil nil "-f" filename))) ;;; Macros and inline functions. (defmacro x-face-following-char () (if (fboundp 'char-after) '(char-after (point)) '(following-char))) (defmacro x-face-read-file-name (prompt dir default mustmatch initial) "Read file name interactively." (let ((major (string-to-int emacs-version)) (minor (and (boundp 'emacs-minor-version) emacs-minor-version))) (cond ((> 19 major) (list 'read-file-name prompt (list 'concat dir initial) default mustmatch)) ((and (eq 19 major) (or (not minor) (> 29 minor))) ;; 19.28's read-file-name() is evil. (list 'let (list (list 'dir (list 'if (list 'string-match "/$" dir) dir (list 'concat dir "/")))) (list 'completing-read prompt (list 'mapcar '(function (lambda (name) (list (concat dir name)))) (list 'delete ".." (list 'delete "." (list 'directory-files (list 'or 'dir 'default-directory))))) nil mustmatch (list 'concat 'dir initial)))) (t (list 'read-file-name prompt dir default mustmatch initial))))) (defsubst x-face-buffer-live-p (buffer) "Say whether BUFFER is alive or not." (and buffer (get-buffer buffer) (buffer-name (get-buffer buffer)))) (defsubst x-face-delcr () (goto-char (point-min)) (while (search-forward "\r\n" nil t) (replace-match "\n")) (goto-char (point-min))) (defsubst x-face-set-buffer-disable-undo (buffer) (set-buffer buffer) (buffer-disable-undo)) (defmacro x-face-header-separator-regexp () '(concat "^" (mapconcat (quote identity) (delq nil (list (and (boundp (quote mail-header-separator)) (stringp mail-header-separator) (regexp-quote mail-header-separator)) (and (boundp (quote mew-header-separator)) (stringp mew-header-separator) (regexp-quote mew-header-separator)) "-.*-" "")) "$\\|^") "$")) (defmacro x-face-hex-char-to-binary (hex) ;; (+ (logand hex 15) (* (lsh hex -6) 9))) (list '+ (list 'logand hex 15) (list '* (list 'lsh hex -6) 9))) (defmacro x-face-generate-file-name (real-dir name num spec compr) (list 'let (list (list 'base (list 'if num (list 'format "%s-%02d" name (list 'incf num)) (list 'setq num 0) name))) (list 'list num (list 'concat real-dir "/" 'base "." spec compr) 'base))) (defmacro x-face-file-name-as-directory (name &optional noslash) (list 'concat (list 'if (list 'string-match "/+$" name) (list 'substring name 0 (list 'match-beginning 0)) name) (list 'if noslash "" "/"))) (defmacro x-face-abbreviate-file-name (filename) (if (fboundp 'abbreviate-file-name) (if (featurep 'xemacs) (list 'abbreviate-file-name filename t) (list 'abbreviate-file-name filename)) (list 'if (list 'string-match '(concat "^" (regexp-quote (expand-file-name "~/"))) filename) (list 'concat "~/" (list 'substring filename '(match-end 0))) filename))) (defsubst x-face-detect-x-face-type () (let ((case-fold-search t) beg end) (goto-char (point-min)) (and (search-forward "/*" nil t) (setq beg (point)) (search-forward "*/" nil t) (setq end (match-beginning 0)) (goto-char beg) (cond ((re-search-forward "type[\t \"]*[:;=]+[\t \"]*rgb" end t) 'rgb) ((re-search-forward "type[\t \"]*[:;=]+[\t \"]*mono" end t) 'mono))))) (defmacro x-face-filename-suffix () '(or (cadr (assq x-face-compressor x-face-compressor-program-list)) "")) (defmacro x-face-compressed-filename-regexp (form) (list 'format form '(mapconcat (function (lambda (elt) (regexp-quote (cadr elt)))) x-face-compressor-program-list "\\|"))) (defmacro x-face-filename-suffix-to-copmressor (suffix) (list 'let '((list x-face-compressor-program-list) compr) (list 'while 'list (list 'if (list 'string-equal suffix '(cadar list)) '(setq compr (caar list) list nil) '(setq list (cdr list)))) 'compr)) (defmacro x-face-directory-files (dirname &optional full match nosort files-only) (if (featurep 'xemacs) (list 'directory-files dirname full match nosort files-only) (list 'let (list (list 'files (list 'delq nil (list 'mapcar (list 'if full (list 'if files-only '(function (lambda (file) (and (not (file-directory-p (expand-file-name file))) file))) '(quote identity)) (list 'if files-only (list 'function (list 'lambda '(file) (list 'and (list 'not (list 'file-directory-p (list 'expand-file-name 'file dirname))) 'file))) '(quote identity))) (if (> (string-to-int emacs-version) 18) (list 'directory-files dirname full match nosort) (list 'directory-files dirname full match)))))) (if (<= (string-to-int emacs-version) 18) (list 'if nosort 'files '(require (quote sort)) '(sort files (quote string-lessp))) 'files)))) ;;; Internal functions for general purpose. (defun x-face-error (&rest args) "(x-face-error FORMAT ARG ARG ... BUFFER)." (let* ((len (length args)) (buffer (nth (1- len) args))) (cond ((zerop len) (error "")) ((and (> len 1) (x-face-buffer-live-p buffer)) (and x-face-debug (let ((errbuf (generate-new-buffer (concat "*x-face-error-(" (buffer-name buffer) ")*"))) content point) (save-excursion (set-buffer buffer) (setq content (buffer-substring-no-properties (point-min) (point-max)) point (point)) (x-face-set-buffer-disable-undo errbuf) (insert content) (goto-char point) (set-buffer-modified-p nil) (setq buffer-read-only t) (cond ((fboundp 'set-buffer-file-coding-system) (set-buffer-file-coding-system x-face-no-conversion)) ((fboundp 'set-file-coding-system) (set-file-coding-system x-face-no-conversion)) ((fboundp 'set-kanji-fileio-code) (set-kanji-fileio-code nil)))) (display-buffer errbuf))) (apply 'error (reverse (cdr (reverse args))))) (t (apply 'error args))))) (defun x-face-expand-file-name (filename) "Convert FILENAME to absolute pathname." (and (stringp filename) (let ((name (file-name-nondirectory filename)) (directory (expand-file-name (file-name-directory filename))) (regexp (x-face-compressed-filename-regexp "\\(%s\\)$"))) (and (string-match regexp name) (setq name (substring name 0 (match-beginning 0)))) (or (car (x-face-directory-files directory t (concat "^" (regexp-quote name) regexp) nil t)) (and (file-exists-p (setq filename (concat directory name))) filename))))) (defun x-face-read-existing-file-name (&optional pre-prompt non-interactive) "Read existing xbm file name." (let* ((dir1 (and (stringp x-face-default-xbm-file) (file-name-directory x-face-default-xbm-file))) (dir (or (and dir1 (x-face-expand-file-name x-face-default-xbm-file) (x-face-abbreviate-file-name dir1)) (and (stringp x-face-image-file-directory) (x-face-file-name-as-directory x-face-image-file-directory)))) (initial (and dir (stringp x-face-default-xbm-file) (if (and dir1 (x-face-expand-file-name x-face-default-xbm-file)) (file-name-nondirectory x-face-default-xbm-file) (and (x-face-expand-file-name (concat dir x-face-default-xbm-file)) x-face-default-xbm-file)))) (file (if non-interactive (and dir initial (concat dir initial)) (x-face-read-file-name (concat (or pre-prompt "") "xbm file: ") (or dir default-directory) nil t initial)))) (and (setq file (x-face-expand-file-name file)) (not (file-directory-p file)) file))) (defun x-face-save-buffer-no-conversion (filename &optional silent) (let (;; NEmacs kanji-flag ;; Mule (output-coding-system x-face-no-conversion) ;; Mule, XEmacs write-region-pre-hook ;; XEmacs (<= 20.1b6) (file-coding-system x-face-no-conversion) ;; XEmacs (>= 20.1b7) (coding-system-for-write x-face-no-conversion) ;; jam-zcat, jka-compr jam-zcat-filename-list jka-compr-compression-info-list) (write-region (point-min) (point-max) filename nil silent))) (defun x-face-call-process-buffer-no-conversion (program &rest program-args) (let (;; NEmacs (default-kanji-process-code 0) program-kanji-code-alist ;; Mule (default-process-coding-system (cons x-face-no-conversion x-face-no-conversion)) call-process-hook ;; XEmacs (<= 20.1b6) (file-coding-system x-face-no-conversion) ;; XEmacs (>= 20.1b7) (buffer-file-coding-system x-face-no-conversion) ;; XEmacs (>= 20.2b1) (coding-system-for-read x-face-no-conversion) (coding-system-for-write x-face-no-conversion)) (apply 'call-process-region (point-min) (point-max) program t (current-buffer) nil program-args))) (defun x-face-compress-buffer () (let ((elt (assq x-face-compressor x-face-compressor-program-list)) prog arg msg) (and elt (setq prog (nth 2 elt)) (setq arg (nth 3 elt)) (setq msg (nth 4 elt)) (progn (message "%s..." msg) (x-face-call-process-buffer-no-conversion prog arg) (message ""))))) (defun x-face-uncompress-buffer (compr) (let ((elt (assq compr x-face-compressor-program-list)) prog arg msg) (and elt (setq prog (nth 5 elt)) (setq arg (nth 6 elt)) (setq msg (nth 7 elt)) (progn (or x-face-last-message (message "%s..." msg)) (x-face-call-process-buffer-no-conversion prog arg) (or x-face-last-message (message "")))))) (defun x-face-find-file-no-conversion (filename &rest args) (setq buffer-read-only nil) (erase-buffer) (let (;; NEmacs kanji-flag ;; Mule (input-coding-system x-face-no-conversion) ;; XEmacs (<= 20.1b5) (overriding-file-coding-system x-face-no-conversion) ;; XEmacs (>= 20.1b6) (coding-system-for-read x-face-no-conversion) ;; Mule,XEmacs buffer-file-format format-alist insert-file-contents-post-hook insert-file-contents-pre-hook ;; jam-zcat, jka-compr jam-zcat-filename-list jka-compr-compression-info-list) (apply 'insert-file-contents filename args)) (cond ((string-match (x-face-compressed-filename-regexp "\\(%s\\)$") filename) (x-face-uncompress-buffer (x-face-filename-suffix-to-copmressor (match-string 1 filename)))) ((looking-at "\037\213") (x-face-uncompress-buffer 'gzip))) (x-face-delcr)) (defun x-face-narrow-to-header () "Narrow to the header of the message." (goto-char (point-min)) (narrow-to-region (point) (or (and (re-search-forward (x-face-header-separator-regexp) nil t) (match-beginning 0)) (point-max))) (goto-char (point-min))) (defun x-face-search-field (regexp &optional case-fold) "Re-search for specified field and returns some points." (let ((case-fold-search case-fold)) (and (re-search-forward (concat regexp ":[\t\n ]*") nil t) (list (match-beginning 0) (match-end 0) (goto-char (or (and (re-search-forward "^[^\n\t ]\\|^$" nil t) (match-beginning 0)) (point-max))))))) (defun x-face-mail-fetch-field (field) "Return the value of the header field FIELD." (or (let ((case-fold-search t) points) (and (setq points (x-face-search-field (concat "^" (regexp-quote field)) t)) (buffer-substring-no-properties (nth 1 points) (nth 2 points)))) "")) (defun x-face-extract-mail-address (str) "Extract mail address from a string STR." (cond ((string-match "^[\n\t ,]*(.*)[\n\t ,]*" str) "nobody") ((string-match "<\\([^\n\t ,]+\\)>" str) (substring str (match-beginning 1) (match-end 1))) ((string-match "[^\n\t (),<>]+" str) (substring str (match-beginning 0) (match-end 0))) (t "nobody"))) (defun x-face-mail-fetch-mail-address () "Extract a mail address from the header." (let (end str buffer) (save-excursion (goto-char (point-min)) (setq end (and (re-search-forward "^$" nil t) (match-beginning 0))) (goto-char (point-min)) (while (re-search-forward "^From:" end t) (setq str (append str (list (buffer-substring-no-properties (match-beginning 0) (or (and (re-search-forward "^[^\n\t ]" end t) (match-beginning 0)) (goto-char end))))))) (when str (setq buffer (get-buffer-create " *x-face-from*")) (set-buffer buffer) (setq buffer-read-only nil) (erase-buffer) (mapcar 'insert str) (goto-char (point-min)) (while (re-search-forward "[^\C-a-\C-?]+" nil t) (replace-match "")) (goto-char (point-min)) (while (re-search-forward "^From:[\t ]*\n" nil t) (replace-match "")) (goto-char (point-min)) (prog1 (x-face-extract-mail-address (x-face-mail-fetch-field "from")) (kill-buffer buffer)))))) (defun x-face-Y-or-n-p (prompt) (if (and (featurep 'xemacs) (should-use-dialog-box-p)) (yes-or-no-p-dialog-box prompt) (let ((cursor-in-echo-area t) (echo-keystrokes 0) (log-message-max-size 0) (inhibit-quit t) message-log-max ans) (while (not (memq ans '(?\ ?N ?Y ?\C-g ?\e ?\n ?\r ?n ?y))) (message "%s(Y/n) " prompt) (setq ans (read-char-exclusive))) (not (memq ans '(?\C-g ?N ?n)))))) (defun x-face-messages (msgs) (if msgs (let ((buffer (get-buffer-create "*x-face-message*")) (window-min-height 2) (width (window-width)) height (mini (minibuffer-window)) (echo-keystrokes 0) start) (save-excursion (x-face-set-buffer-disable-undo buffer) (setq buffer-read-only nil) (goto-char (point-max)) (insert "-- " (current-time-string) " --\n") (setq start (point)) (narrow-to-region start start) (or (listp msgs) (setq msgs (list msgs))) (mapcar (function (lambda (msg) (insert (if (stringp msg) msg (prin1-to-string msg))) (or (bolp) (insert "\n")))) msgs) (goto-char (point-min)) (while (re-search-forward "^[\r\t ]+" nil t) (replace-match "")) (goto-char (point-min)) (while (re-search-forward "\n\n+" nil t) (replace-match "\n")) (goto-char (point-min)) (while (not (eobp)) (while (progn (end-of-line) (not (< (current-column) width))) (move-to-column (1- width)) (insert "\n ")) (forward-line 1)) (setq height (count-lines (point-min) (point-max))) (when (eq 1 height) (message (buffer-substring-no-properties (point-min) (1- (point-max))))) (widen)) (unless (eq 1 height) (message "") (while (not (eq (next-window nil t) mini)) (other-window -1)) (unless (eq buffer (current-buffer)) (split-window-vertically) (other-window 1) (switch-to-buffer buffer)) (shrink-window (- (window-height) (+ 3 height))) (goto-char (point-max)) (insert "\n Press any key >") (set-buffer-modified-p nil) (set-window-start (get-buffer-window buffer) start) (or (prog1 (eq ?\C-g (let ((inhibit-quit t)) (read-char-exclusive))) (forward-line -1) (delete-region (point) (point-max)) (set-buffer-modified-p nil) (delete-window))))) (message ""))) (defun x-face-minibuffer-completion-help () (remove-hook 'minibuffer-setup-hook 'x-face-minibuffer-completion-help) (make-local-variable 'frame-title-format) (setq frame-title-format (concat "*X-Face " (cdr (assq this-command '((x-face-menu-encode . "Encode") (x-face-menu-insert . "Insert")))) "*")) (minibuffer-completion-help)) ;;; Internal functions for encoding. (defun x-face-split-icons (width height) (if (and (eq 48 height) (eq 48 width)) (list (current-buffer)) (let ((ycount 0) xcount (yscale (/ height 48)) (xscale (/ width 48)) (name (buffer-name (current-buffer))) buffer buffers start lines (cur (current-buffer))) (while (< ycount yscale) (setq xcount 0) (while (< xcount xscale) (setq buffer (generate-new-buffer name) buffers (append buffers (list buffer)) start (+ 1 (* xcount 12) (* ycount width 12)) lines 48) (save-excursion (x-face-set-buffer-disable-undo buffer) (while (> lines 0) (insert-buffer-substring cur start (+ start 12)) (setq start (+ start (/ width 4))) (decf lines)) (set-buffer-modified-p nil) (incf xcount))) (incf ycount)) (kill-buffer cur) buffers))) (defun x-face-xbm-to-icon-buffers () "Convert xbm to icon format and return the list of spec and buffers." (let ((case-fold-search t) (type (x-face-detect-x-face-type)) width height xbytes right margin) (goto-char (point-min)) (or (re-search-forward "_width[\t ]+\\([0-9]+\\)" nil t) (x-face-error "!! Illegal xbm file format." (current-buffer))) (setq width (string-to-int (match-string 1)) xbytes (/ (+ width 7) 8)) (goto-char (point-min)) (or (re-search-forward "_height[\t ]+\\([0-9]+\\)" nil t) (x-face-error "!! Illegal xbm file format." (current-buffer))) (setq height (string-to-int (match-string 1))) (goto-char (point-min)) (re-search-forward "0x[0-9a-f][0-9a-f],") (delete-region (point-min) (match-beginning 0)) (goto-char (point-min)) (while (re-search-forward "[\n\r\t ,;}]\\|0x" nil t) (replace-match "")) (goto-char (point-min)) (while (not (eobp)) (setq right (aref x-face-mirror-table (x-face-hex-char-to-binary (x-face-following-char)))) (delete-char 1) (insert-char (aref x-face-mirror-table (x-face-hex-char-to-binary (x-face-following-char))) 1) (delete-char 1) (insert-char right 1)) (unless (zerop (setq margin (% (- 6 (% xbytes 6)) 6))) (goto-char (point-min)) (while (not (eobp)) (forward-char (* 2 xbytes)) (insert-char ?0 (* 2 margin))) (setq xbytes (+ xbytes margin) width (* 8 xbytes))) (unless (zerop (setq margin (% (- 48 (% height 48)) 48))) (goto-char (point-max)) (insert-char ?0 (* 2 xbytes margin)) (setq height (+ height margin))) (set-buffer-modified-p nil) (append (list (if (zerop (% (* width height) 6912)) ;; UNKNOWN: nil type ;; RGB: 'rgb 'mono)) ;; MONO: 'mono (list (cons (/ width 48) (/ height 48))) ;; geometry (x . y) (x-face-split-icons width height) ;; icon buffers ))) (defun x-face-xbm-to-icon-strings () "Convert xbm to icon format and return the list of spec and strings." (let ((data (x-face-xbm-to-icon-buffers))) (list (pop data) (pop data) (mapcar (function (lambda (buffer) (prog1 (save-excursion (set-buffer buffer) (buffer-string)) (kill-buffer buffer)))) data)))) (defun x-face-icon-buffer-to-x-face-buffer () "Convert icon buffer to x-face string in the buffer." (while (re-search-forward "/\\*\\(.\\|\n\\)*\\*/[\n\t ]*" nil t) (replace-match "")) (x-face-call-process-buffer-no-conversion x-face-compface-program) (x-face-delcr) (looking-at "[\t ][^\t ]+$")) (defun x-face-icon-strings-to-x-face-strings (icons) "Convert icon strings to x-face strings." (let ((buffer (get-buffer-create " *x-face*"))) (prog1 (save-excursion (set-buffer buffer) (setq buffer-read-only nil) (mapcar (function (lambda (icon) (erase-buffer) (insert icon) (x-face-call-process-buffer-no-conversion x-face-compface-program) (x-face-delcr) (buffer-string))) icons)) (kill-buffer buffer)))) (defun x-face-insert-version-header () (let ((version (apply 'concat (append (list x-face-version) (if (zerop (length x-face-codename)) '("") (list " - \"" x-face-codename "\"")) (or (and (not (eq 'select-xface-out this-command)) (boundp 'select-xface-version) (stringp select-xface-version) (list "\n with " select-xface-version)) '("")))))) (if (bobp) (insert "X-Face-Version: " version "\n") (backward-char 1) (insert "\nX-Face-Version: " version) (forward-char 1)))) ;;; Internal functions for decoding. (defun x-face-x-face-encoded-string-to-icon-string (string) "Convert X-Face encoded string to icon string." (let ((buffer (get-buffer-create " *x-face*"))) (save-excursion (set-buffer buffer) (setq buffer-read-only nil) (erase-buffer) (insert string) (x-face-call-process-buffer-no-conversion x-face-uncompface-program) (goto-char (point-min)) (while (re-search-forward "[\r\n,]\\|0x" nil t) (replace-match "") (goto-char (point-min))) (setq string (buffer-substring-no-properties (point-min) (point-max)))) (kill-buffer buffer) string)) (defun x-face-x-face-region-to-icon-string (beg end) "Convert X-Face field to icon string." (x-face-x-face-encoded-string-to-icon-string (buffer-substring-no-properties beg end))) (defun x-face-extract-x-face-fields-to-icons (&optional single glyph) "Extract X-Face fields to icons. It returns the list of \(FIELD_or_nil TYPE X Y DATA DATA ...) or (FIELD_or_nil GLYPH)." (let ((case-fold-search t) buffer-undo-list (modified-p (buffer-modified-p)) buffer-read-only (inhibit-read-only t) (re1 (if single "^X-Face:[\n\t ]*" "^\\(X-Face-Type\\|X-Face\\(-[0-9]+\\)?\\):[\n\t ]*")) (re2 (concat "geometry[\t \"'`]*=[\t \"'`]*" "\\([0-9]+\\)[\t \"'`]*x[\t \"'`]*\\([0-9]+\\)")) (re3 (concat "animate[\t \"'`]*=[\t \"'`]*" "\\([\.0-9]+\\)[\t \"'`]*")) (re4 (concat "depth[\t \"'`]*=[\t \"'`]*" "\\([0-9]+\\)[\t \"'`]*")) beg end prop filename cache attributes modtime size image rgb gray depth geometry num field fields faces x-faces animate) (set-buffer-modified-p nil) (save-restriction (x-face-narrow-to-header) (while (re-search-forward re1 nil t) (setq beg (point)) (beginning-of-line) ;; Insert a fake X-Face-Type field. (unless (or single (looking-at "X-Face-Type")) (save-excursion (setq depth 0) (save-excursion (while (re-search-forward "^X-Face\\(-[0-9]+\\)?:" nil t) (and (match-beginning 1) (null gray) (setq gray t)) (incf depth))) (when gray (re-search-forward "^X-Face\\(-[0-9]+\\)?:" nil t) (goto-char (match-beginning 0)) (insert "X-Face-Type: ") (setq beg (point)) (insert (format "GRAY; depth=%d; geometry=1x1\n" depth)) (set-buffer-modified-p t)))) (setq x-faces (append x-faces (if (prog1 (and (not single) (looking-at "X-Face-Type")) (goto-char beg) (setq end (or (and (re-search-forward "^[^\n\t ]" nil t) (goto-char (match-beginning 0))) (point-max)) prop (and (featurep 'xemacs) (get-text-property (1- end) 'x-face-file-attributes)) filename (car prop) cache (and (featurep 'xemacs) (assoc filename x-face-xmas-image-file-cache))) (and glyph cache (setq attributes (file-attributes filename) modtime (nth 5 attributes) size (nth 7 attributes)) (equal modtime (cadr cache)) (eq size (caddr cache)) (setq image (cadddr cache)))) (progn (goto-char beg) (setq rgb (or (looking-at "[\t \"'`]*RGB") (re-search-forward ";[\t \"'`]*RGB" end t))) (goto-char beg) (setq gray (or (looking-at "[\t \"'`]*GRAY") (re-search-forward ";[\t \"'`]*GRAY" end t))) (goto-char beg) (setq depth (and (re-search-forward re4 end t) (string-to-number (match-string 1)))) (goto-char beg) (setq animate (and (re-search-forward re3 end t) (string-to-number (match-string 1)))) (setq animate (and (numberp animate) (max animate 0.05))) (goto-char beg) (setq geometry (and (re-search-forward re2 end t) (list (string-to-int (match-string 1)) (string-to-int (match-string 2)))) num (apply '* (if rgb 3 (if gray depth 1)) geometry)) (or (and image (prog1 (list (if (or rgb (eq 1 (length image))) (cdar image) (cddr image))) (goto-char end) (while (and (> num 0) (not (eobp))) (and (re-search-forward "^X-Face\\(-[0-9]+\\)?:[\n\t ]*" nil t) (goto-char (or (and (re-search-forward "^[^\n\t ]" nil t) (match-beginning 0)) (point-max))) (decf num))))) (progn (setq field (format "X-Face-Type: %s%s%s%s%s\n" (if rgb "RGB" (if gray "GRAY" "")) (if (or geometry animate depth) "; " "") (if depth (if (or geometry animate) (format "depth=%g; " depth) (format "depth=%g" depth)) "") (if animate (if geometry (format "animate=%g; " animate) (format "animate=%g" animate) (setq geometry '(1 1))) "") (if geometry (apply 'format "geometry=%dx%d" geometry) ""))) (if (and (or rgb gray) (null geometry)) (setq geometry '(1 1))) (goto-char (setq beg end)) (setq end (or (and (re-search-forward "^X-Face-Type:" nil t) (match-beginning 0)) (point-max))) (goto-char beg) (setq faces nil) (while (and (or (> num 0) animate) (re-search-forward "X-Face\\(-[0-9]+\\)?:[\n\t ]*" end t)) (decf num) (setq faces (append faces (list (buffer-substring-no-properties (point) (or (and (re-search-forward "^[^\n\t ]" end t) (goto-char (match-beginning 0))) end)))))) (setq faces (mapcar (function (lambda (string) (while (string-match "[\n\t ]+" string) (setq string (concat (substring string 0 (match-beginning 0)) (substring string (match-end 0))))) string)) faces) field (concat field "X-Face: " (mapconcat 'identity faces "\nX-Face: ") "\n") fields (append fields (list field))) (or (and glyph (cdr (assoc field x-face-xmas-image-field-cache))) (progn (setq faces (mapcar 'x-face-x-face-encoded-string-to-icon-string faces)) (if (and geometry (or animate (eq (apply '* (if rgb 3 (if gray depth 1)) geometry) (length faces)))) (list (append (cons (if rgb 'rgb (if gray 'gray 'mono)) geometry) (list animate) faces)) (list (append (list 'mono (length faces) 1 animate) faces)))))))) (list (if (and x-face-xmas-xface-p glyph) (prog1 (setq glyph (make-glyph (vector 'xface :data (concat "X-Face: " (buffer-substring-no-properties beg end))))) (set-glyph-face glyph 'x-face-xmas-x-face-face)) (list 'mono 1 1 nil (x-face-x-face-region-to-icon-string beg end))))))))) ;; Remove fake X-Face-Type fields. (when (buffer-modified-p) (push nil buffer-undo-list) (let* ((fname (if (featurep 'xemacs) 'display-message 'message)) (fdef (symbol-function fname))) ;; Mute "Undo!" message. (defalias fname 'ignore) (unwind-protect (condition-case nil (undo) (error)) (defalias fname fdef)))) (set-buffer-modified-p modified-p) (mapcar (function (lambda (elt) (cons (pop fields) elt))) x-faces))) (defun x-face-extract-x-face-fields-to-single-icons-buffer (buffer) (save-excursion (set-buffer buffer) (mapcar (function (lambda (elt) (car (cdr (cdr (cdr (cdr (cdr elt)))))))) (x-face-extract-x-face-fields-to-icons 'single)))) (defun x-face-concat-mono-icons (x y icons) "Concatenate multiple monochrome icons." (if (eq 1 x) (apply 'concat icons) (let (i j k m) (apply 'concat (mapcar (function (lambda (n) (setq i "" j 0) (while (< j 48) (setq i (apply 'concat i (mapcar (function (lambda (icon) (setq k (* 12 j)) (substring icon k (+ 12 k)))) n))) (incf j)) i)) (mapcar (function (lambda (o) (setq m nil) (while (> o 0) (push (pop icons) m) (decf o)) (nreverse m))) (make-list y x))))))) (defun x-face-concat-rgb-icons (x y icons) "Concatenate multiple RGB icons." (let ((xy (* x y)) p) (mapcar (function (lambda (q) (x-face-concat-mono-icons x y q))) (mapcar (function (lambda (r) (setq p nil) (while (> r 0) (push (pop icons) p) (decf r)) (nreverse p))) (make-list 3 xy))))) (defun x-face-ascii-to-binary-icon (str &optional x upsidedown xmas) (let ((p 0) (max (length str)) q c bin) (when upsidedown (setq upsidedown "" x (* 12 x)) (while (< p max) (setq upsidedown (concat (substring str p (setq p (+ p x))) upsidedown))) (setq str upsidedown p 0)) (while (< p max) (setq q (1+ p) c (x-face-hex-char-to-binary (string-to-char (substring str p q))) p q) (and xmas (setq q (1+ p) c (+ (* 16 (aref x-face-mirror-table-binary (x-face-hex-char-to-binary (string-to-char (substring str p q))))) (aref x-face-mirror-table-binary c)) p q)) (push c bin)) (nreverse bin))) (defun x-face-icons-to-xpm (name x y icons &optional spec) "Generate an XPM color picture from three icons." (if spec "xpm" (save-excursion (let ((buffer (set-buffer (generate-new-buffer " *xpm*"))) (reds (x-face-ascii-to-binary-icon (pop icons))) (grns (x-face-ascii-to-binary-icon (pop icons))) (blus (x-face-ascii-to-binary-icon (pop icons))) (table [" " "c" "m" "b" "y" "g" "r" "#"]) (width (* 48 x)) (height (* 48 y)) start red grn blu) (insert "/* XPM */\n" "static char *" name "[] = {\n" "/* width height ncolors chars_per_pixel */\n" (format "\"%d %d 8 1\",\n" width height) "/* colors */\n" "\" c #FFFFFF\",\n" "\"c c #00FFFF\",\n" "\"m c #FF00FF\",\n" "\"b c #0000FF\",\n" "\"y c #FFFF00\",\n" "\"g c #00FF00\",\n" "\"r c #FF0000\",\n" "\"# c #000000\",\n" "/* pixels */\n") (setq start (point)) (while (setq red (pop reds) grn (pop grns) blu (pop blus)) (insert (aref table (logior (lsh (logand 8 red) -3) (lsh (logand 8 grn) -2) (lsh (logand 8 blu) -1))) (aref table (logior (lsh (logand 4 red) -2) (lsh (logand 4 grn) -1) (logand 4 blu))) (aref table (logior (lsh (logand 2 red) -1) (logand 2 grn) (lsh (logand 2 blu) 1))) (aref table (logior (logand 1 red) (lsh (logand 1 grn) 1) (lsh (logand 1 blu) 2))))) (goto-char start) (while (not (eobp)) (insert "\"") (forward-char width) (insert "\",\n")) (backward-delete-char 2) (insert "\n};\n") buffer)))) (defun x-face-icons-to-bmp-subr (x y icons header) (save-excursion (let ((buffer (set-buffer (generate-new-buffer " *bmp*"))) (reds (x-face-ascii-to-binary-icon (pop icons) x t)) (grns (x-face-ascii-to-binary-icon (pop icons) x t)) (blus (x-face-ascii-to-binary-icon (pop icons) x t)) red grn blu) (mapcar (function (lambda (elt) (if (consp elt) (insert-char (car elt) (cdr elt)) (insert-char elt 1)))) header) (while (setq red (pop reds) grn (pop grns) blu (pop blus)) (insert-char (+ (* 16 (logior (lsh (logand 8 red) -3) (lsh (logand 8 grn) -2) (lsh (logand 8 blu) -1))) (logior (lsh (logand 4 red) -2) (lsh (logand 4 grn) -1) (logand 4 blu))) 1) (insert-char (+ (* 16 (logior (lsh (logand 2 red) -1) (logand 2 grn) (lsh (logand 2 blu) 1))) (logior (logand 1 red) (lsh (logand 1 grn) 1) (lsh (logand 1 blu) 2))) 1)) buffer))) (defun x-face-icons-to-os2-bmp (name x y icons &optional spec) "Generate an OS/2 BMP color picture from three icons." (if spec "bmp" (let ((size (+ 74 (* 1152 x y))) (width (* 48 x)) (height (* 48 y))) (x-face-icons-to-bmp-subr x y icons (list ;; BITMAPFILEHEADER 66 77 ;; bfType = "BM" (% size 256) (/ size 256) '(0 . 2) ;; bfSize '(0 . 4) ;; bfReserved1,bfReserved2 74 '(0 . 3) ;; bfOffBits ;; BITMAPINFOHEADER 12 '(0 . 3) ;; ??? (% width 256) (/ width 256) ;; biWidth (% height 256) (/ height 256) ;; biHeight 1 0 ;; biPlanes 4 0 ;; biBitCount ;; RGBQUAD '(255 . 3) ;; White '(255 . 2) 0 ;; Cyan 255 0 255 ;; Magenta 255 '(0 . 2) ;; Blue 0 '(255 . 2) ;; Yellow 0 255 0 ;; Green '(0 . 2) 255 ;; Red '(0 . 3) ;; Black ;; ??? '(0 . 24) ;; ??? ))))) (defun x-face-icons-to-win-bmp (name x y icons &optional spec) "Generate a Windoze BMP color picture from three icons." (if spec "bmp" (let ((size (+ 88 (* 1152 x y))) (width (* 48 x)) (height (* 48 y))) (x-face-icons-to-bmp-subr x y icons (list ;; BITMAPFILEHEADER 66 77 ;; bfType = "BM" (% size 256) (/ size 256) '(0 . 2) ;; bfSize '(0 . 4) ;; bfReserved1,bfReserved2 86 '(0 . 3) ;; bfOffBits ;; BITMAPINFOHEADER 40 '(0 . 3) ;; biSize (% width 256) (/ width 256) '(0 . 2) ;; biWidth (% height 256) (/ height 256) '(0 . 2) ;; biHeight 1 0 ;; biPlanes 4 0 ;; biBitCount '(0 . 4) ;; biCompression '(0 . 4) ;; biSizeImage 18 11 '(0 . 2) ;; biXPelsPerMeter 18 11 '(0 . 2) ;; biYPelsPerMeter 8 '(0 . 3) ;; biClrUsed 8 '(0 . 3) ;; biClrImportant ;; RGBQUAD '(255 . 3) 0 ;; White '(255 . 2) '(0 . 2);; Cyan 255 0 255 0 ;; Magenta 255 '(0 . 3) ;; Blue 0 '(255 . 2) 0 ;; Yellow 0 255 '(0 . 2) ;; Green '(0 . 2) 255 0 ;; Red '(0 . 4) ;; Black ))))) (defun x-face-icons-to-xbm (name x y icon) (save-excursion (let ((buffer (generate-new-buffer " *xbm*")) w n) (set-buffer buffer) (insert icon) (goto-char (point-min)) (while (not (eobp)) (setq w (aref x-face-mirror-table (x-face-hex-char-to-binary (x-face-following-char)))) (delete-char 1) (insert-char (aref x-face-mirror-table (x-face-hex-char-to-binary (x-face-following-char))) 1) (delete-char 1) (insert-char w 1)) (goto-char (point-min)) (while (not (eobp)) (insert " 0x") (setq n 14) (while (> n 0) (decf n) (forward-char 2) (if (eobp) (setq n 0) (insert ",0x"))) (or (eobp) (forward-char 2)) (insert ",\n")) (backward-delete-char 2) (insert "};\n") (goto-char (point-min)) (insert (format "#define %s_width %d\n" name (* 48 x)) (format "#define %s_height %d\n" name (* 48 y)) (format "static char %s_bits[] = {\n" name)) buffer))) (defun x-face-xbm-to-pbm (xbm &optional raw mirrored) "Return a PBM image converted from an XBM image. If the optional RAW is non-nil, the raw PBM format will be used. If the optional MIRRORED is non-nil, the return value will be right and left mirrored for each byte." (let (width height bits i rest) (with-temp-buffer (insert xbm) (goto-char (point-min)) (setq case-fold-search t) (unless (and (search-forward "_width" nil t) (numberp (setq width (read (current-buffer)))) (progn (goto-char (point-min)) (search-forward "_height" nil t)) (numberp (setq height (read (current-buffer)))) (search-forward "{" nil t) (progn (delete-region (point-min) (1+ (point))) t) (search-forward "}" nil t) (progn (delete-region (1- (point)) (point-max)) (goto-char (point-min)) (while (search-forward "0x" nil t) (replace-match "\\\\x")) (goto-char (point-min)) (while (re-search-forward "[^0-9A-FX\\]+" nil t) (replace-match "")) (= (buffer-size) (/ (* width height) 2)))) (erase-buffer) (insert-char 0 288) (setq width 48 height 48)) (if mirrored (setq bits (read (concat "\"" (buffer-string) "\""))) (dolist (byte (append (read (concat "\"" (buffer-string) "\"")) nil)) (push (char-to-string (aref x-face-mirror-table-8bit-binary byte)) bits)) (setq bits (apply 'concat (nreverse bits))))) (if raw (format "P4\n%d %d\n%s" width height bits) (dolist (byte (prog1 (append bits nil) (setq bits nil))) (setq i 8 rest nil) (while (> i 0) (push (if (zerop (logand byte 1)) "0" "1") rest) (setq byte (lsh byte -1) i (1- i))) (setq bits (nconc bits rest))) (format "P1\n%d %d\n%s\n" width height (mapconcat 'identity bits " "))))) (defun x-face-gray-faces-to-xpm (faces) "Return an XPM image converted from plain PBM images. Note that it currently limits the depth to 6-bit, lower bits will be ignored." (dolist (face (prog1 (nthcdr (max 0 (- (length faces) 6)) (nreverse faces)) (setq faces nil))) (push (read (concat "[" (substring face 9) "]")) faces)) (let* ((ix 0) iy pixel (depth (length faces)) (picture (make-vector 2304 nil)) (ncolors (expt 2 depth)) (step (/ 256 (1- ncolors))) brt) (while (< ix 2304) (setq iy 0 pixel 0) (while (< iy depth) (setq pixel (+ pixel pixel (aref (nth iy faces) ix)) iy (1+ iy))) (aset picture ix pixel) (setq ix (1+ ix))) ;; Here's a raw PGM image. ;; (format "P5\n48 48\n%d\n%s" (1- ncolors) (concat picture)) (with-temp-buffer (insert "\ /* XPM */ static char * Gray_X_Face[] = { /* width height ncolors chars_per_pixel */ \"48 48 " (number-to-string ncolors) " 1\", /* colors */ ") (setq ix 0) (while (< ix ncolors) (setq iy (* ix step)) (insert (format "\"%c c #%02x%02x%02x\",\n" (+ ix 35) iy iy iy)) (setq ix (1+ ix))) (insert "\ /* pixels */ \"") (setq ix 0 iy 48) (while (< ix 2304) (insert (+ (aref picture ix) 35)) (setq ix (1+ ix)) (when (zerop (setq iy (1- iy))) (insert "\",\n\"") (setq iy 48))) (delete-backward-char 3) (insert "\n};\n") (buffer-string)))) (defun x-face-extract-x-face-fields-to-pictures (buffer name) "Extract X-Face fields and return pictures." (save-excursion (set-buffer buffer) (let ((data (x-face-extract-x-face-fields-to-icons)) (spec (funcall x-face-icons-to-color-picture-function nil nil nil nil 'spec)) icons type x y pictures) (while (setq icons (cdr (pop data))) (setq type (pop icons) x (pop icons) y (pop icons)) (pop icons) (push (if (eq 'rgb type) (cons spec (funcall x-face-icons-to-color-picture-function name x y (x-face-concat-rgb-icons x y icons))) (if (eq 'gray type) (let ((buffer (get-buffer-create " *gray x-face*"))) (save-excursion (set-buffer buffer) (erase-buffer) (insert (x-face-gray-faces-to-xpm (mapcar (lambda (icon) (save-excursion (set-buffer (x-face-icons-to-xbm "noname" x y icon)) (unwind-protect (x-face-xbm-to-pbm (buffer-string)) (kill-buffer (current-buffer))))) icons))) (cons "xpm" buffer))) (cons "xbm" (x-face-icons-to-xbm name x y (x-face-concat-mono-icons x y icons))))) pictures)) (nreverse pictures)))) ;;; Internal functions for viewing and saving. (defun x-face-view-buffer (spec_buffer) (let ((spec (car spec_buffer)) (buffer (cdr spec_buffer)) tmp-dir umask tmp-fname) (save-excursion (set-buffer buffer) (if (and x-face-view-asynchronous x-face-view-asynchronous-function) (progn (while (file-exists-p (setq tmp-dir (expand-file-name (format x-face-tmp-directory-name-format x-face-tmp-file-number) x-face-tmp-directory))) (incf x-face-tmp-file-number)) (if (fboundp 'set-default-file-modes) (progn (setq umask (default-file-modes)) (unwind-protect (progn (set-default-file-modes 448) ;; decimal for octal 0700 ;; Create temporary directory. If it has already been ;; created by another user, an error will occur. (funcall x-face-create-directory-function tmp-dir)) (set-default-file-modes umask))) (funcall x-face-create-directory-function tmp-dir) (set-file-modes tmp-dir 448)) ;; tmp-dir has been created (setq tmp-fname (expand-file-name (format "X-Face.%s" spec) tmp-dir)) ;; tmp-fname is safe (x-face-save-buffer-no-conversion tmp-fname 'silent) (funcall x-face-view-asynchronous-function tmp-fname)) (apply 'x-face-call-process-buffer-no-conversion x-face-viewer-program x-face-viewer-options))) (kill-buffer buffer))) (defun x-face-save-files (buffer name) "Save X-Face headers to files." (let ((directory (x-face-file-name-as-directory x-face-image-file-directory-for-save 'noslash)) (re (format "^%s\\(-[0-9]+\\)?\\.\\(bmp\\|xbm\\|xpm\\)\\(%s\\)?$" (regexp-quote name) (mapconcat (function (lambda (elt) (regexp-quote (cadr elt)))) x-face-compressor-program-list "\\|"))) (spec (funcall x-face-icons-to-color-picture-function nil nil nil nil 'spec)) (compr (x-face-filename-suffix)) (case-fold-search t) real-dir exists num names fname data icons type x y) (setq real-dir (expand-file-name directory)) (if (file-exists-p real-dir) (or (file-directory-p real-dir) (error "!! %s is not a directory." directory)) (funcall x-face-create-directory-function real-dir)) (setq exists (x-face-directory-files real-dir nil re nil t) num (and exists (car (sort (mapcar (function (lambda (str) (if (and (string-match re str) (setq str (match-string 1 str))) (- (string-to-int str)) 0))) exists) '>)))) (save-excursion (set-buffer buffer) (setq data (x-face-extract-x-face-fields-to-icons)) (while (setq icons (cdr (pop data))) (setq type (pop icons) x (pop icons) y (pop icons)) (pop icons) (if (eq 'rgb type) (setq names (x-face-generate-file-name real-dir name num spec compr) num (pop names) fname (pop names) buffer (funcall x-face-icons-to-color-picture-function (pop names) x y (x-face-concat-rgb-icons x y icons))) (setq names (x-face-generate-file-name real-dir name num "xbm" compr) num (pop names) fname (pop names) buffer (x-face-icons-to-xbm (pop names) x y (x-face-concat-mono-icons x y icons)))) (save-excursion (set-buffer buffer) (x-face-compress-buffer) (x-face-save-buffer-no-conversion fname 'silent)) (setq x-face-post-messages-save (append x-face-post-messages-save (list (concat "Wrote " (x-face-abbreviate-file-name fname))))) (kill-buffer buffer))))) (defun x-face-icon-to-ascii-buffer (&optional keep-trailing-white-space) "Convert icon data to an ascii picture." (goto-char (point-min)) (while (re-search-forward "/\\*\\(.\\|\n\\)*\\*/[\n\t ]*" nil t) (replace-match "")) (goto-char (point-min)) (let (p c1 c2 x a) (while (not (eobp)) (setq x 12 a "") (while (> x 0) (decf x) (setq p (point) c1 (x-face-hex-char-to-binary (x-face-following-char)) c1 (logior (lsh (logand c1 8) 4) (lsh (logand c1 4) 3) (lsh (logand c1 2) 2) (lsh (logand c1 1) 1))) (goto-char (+ (point) 12)) (setq c2 (x-face-hex-char-to-binary (x-face-following-char)) c2 (logior c1 (logior (lsh (logand c2 8) 3) (lsh (logand c2 4) 2) (lsh (logand c2 2) 1) (logand c2 1))) a (concat a (mapconcat (function (lambda (ref) (aref x-face-ascii-picture-table ref))) (list (lsh c2 -6) (lsh (logand c2 48) -4) (lsh (logand c2 12) -2) (logand c2 3)) ""))) (goto-char (1+ p))) (delete-region (- (point) 12) (+ (point) 12)) (insert (if (and (not keep-trailing-white-space) (string-match " +$" a)) (substring a 0 (match-beginning 0)) a) "\n"))) (goto-char (point-min)) (set-buffer-modified-p nil)) (defun x-face-view-single-ascii (icon) (let ((buffer (get-buffer-create " *x-face-ascii*")) (wconf (current-window-configuration))) (set-buffer buffer) (setq buffer-read-only nil) (erase-buffer) (insert icon) (x-face-icon-to-ascii-buffer) (pop-to-buffer buffer) (delete-other-windows) (set-window-start (get-buffer-window buffer) (if (< (window-height) 24) (progn (goto-char (point-min)) (re-search-forward "^\\( *\n\\)+" nil t) (point)) (point-min))) (message "Press any key to continue") (let ((fn (if (featurep 'xemacs) 'next-command-event 'read-event))) (funcall fn) (discard-input)) (erase-buffer) (insert-char ?\n 12) (insert " Please wait...") (message "") (redisplay-frame) (set-window-configuration wconf))) (defun x-face-save-or-view (task) "Save or view X-Face headers." (let ((method (assq major-mode x-face-save-or-view-method-alist)) (msg (cond ((eq 'save task) "Sav") ((memq task '(view ascii)) "View"))) prepare buffer post name) (and method (setq method (cdr method) prepare (car method) buffer (cadr method) post (caddr method))) (unwind-protect (progn (message "Extracting X-Face fields...") (and prepare (let ((gnus-show-all-headers (and (boundp 'gnus-show-all-headers) gnus-show-all-headers)) (gnus-show-mime (and (boundp 'gnus-show-mime) gnus-show-mime))) (or (boundp 'gnus-original-article-buffer) (setq gnus-show-all-headers t gnus-show-mime nil)) (if (eq 'x-face-vm-get-all-headers prepare) (funcall prepare (format "Extracing X-Face fields...")) (funcall prepare)))) (setq buffer (condition-case () (if (fboundp buffer) (funcall buffer) (symbol-value buffer)) (error nil))) (or (x-face-buffer-live-p buffer) (setq buffer (current-buffer))) (save-excursion (set-buffer buffer) (save-restriction (x-face-narrow-to-header) (or (re-search-forward "^X-Face\\(-[0-9]+\\)?:" nil t) (x-face-error "!! No X-Face fields" buffer)) (and (memq task '(view save)) (goto-char (point-min)) (setq name (x-face-extract-mail-address (x-face-mail-fetch-field "from")))))) (cond ((eq 'view task) (mapcar 'x-face-view-buffer (prog1 (x-face-extract-x-face-fields-to-pictures buffer name) (message "Viewing X-Face...")))) ((eq 'save task) (x-face-save-files buffer name)) ((eq 'ascii task) (mapcar 'x-face-view-single-ascii (x-face-extract-x-face-fields-to-single-icons-buffer buffer))))) (and post (funcall post)) (when (eq 'save task) (x-face-messages x-face-post-messages-save) (setq x-face-post-messages-save nil)) (and (x-face-buffer-live-p x-face-extracted-headers-buffer) (kill-buffer x-face-extracted-headers-buffer)) (and (memq task '(view ascii)) (message "%sing X-Face...done" msg))))) (defun x-face-read-image-format () (let ((table '(("xpm" . x-face-icons-to-xpm) ("os2-bmp" . x-face-icons-to-os2-bmp) ("win-bmp" . x-face-icons-to-win-bmp))) (format "")) (while (string-equal "" format) (setq format (completing-read "Color image format: " table nil t (car (rassq x-face-icons-to-color-picture-function table))))) (cdr (assoc format table)))) ;;; Commands. ;;;###autoload (defun x-face-encode (file &optional arg) "Read an XBM file FILE, encode it to the X-Face data, and show it. If ARG is given, show the Emacs-Lisp form instead." (interactive (list (x-face-read-existing-file-name "[Encode] ") current-prefix-arg)) (setq file (expand-file-name file)) (let ((buf1 (get-buffer-create " *x-face*")) buf2 icons type geometry width height num msg x-faces start next str attributes modtime size cache glyph) (save-excursion (set-buffer buf1) (x-face-find-file-no-conversion file) (message "Converting xbm to icon(s)...") (setq icons (x-face-xbm-to-icon-strings)) (kill-buffer buf1) (setq type (pop icons) geometry (pop icons) width (car geometry) height (cdr geometry) num (and (or (> width 1) (> height 1)) 0) icons (car icons) msg (if num "Converting icons to x-faces..." "Converting icon to x-face...")) (message msg) (setq x-faces (x-face-icon-strings-to-x-face-strings icons)) (when (interactive-p) (x-face-set-buffer-disable-undo (setq buf2 (generate-new-buffer (format "*X-Face: %s*" (file-name-nondirectory file))))) (mapcar (function (lambda (x-face) (insert "X-Face:" x-face))) x-faces) (goto-char (point-min)) (if arg (while (re-search-forward "^X-Face:" nil t) (replace-match "") (insert "(setq " x-face-user-x-face-variable-name (if num (format "-%02d" (incf num)) "") "\n ") (setq start (point) next (or (and (re-search-forward "^[^\n\t ]" nil t) (goto-char (match-beginning 0))) (point-max)) str (prin1-to-string (buffer-substring start next))) (delete-region start next) (insert str ")\n")) (and x-face-add-x-face-version-header (x-face-insert-version-header)) (when num (if (or (eq 'rgb type) (and (not type) (x-face-Y-or-n-p "Is this X-Face type RGB? ") (setq type 'rgb))) (insert (apply 'format "X-Face-Type: RGB; geometry=%dx%d\n" (if (eq 1 height) '(1 1) (list width (/ height 3))))) (insert (format "X-Face-Type: geometry=%dx%d\n" width height)))) (goto-char (point-min)) (and x-face-xmas-xface-p (not (eq 'tty (device-type))) (x-face-xmas-highlight-headers-hack-x-face-p-p) (progn (setq attributes (file-attributes file) modtime (nth 5 attributes) size (nth 7 attributes) cache (assoc file x-face-xmas-image-file-cache) glyph (cadddr cache)) (if (and (equal modtime (cadr cache)) (eq size (caddr cache))) (setq glyph (if (or (eq 'rgb type) (eq 1 (length glyph))) (cdar glyph) (cddr glyph))) (and (setq glyph (car (x-face-xmas-extract-x-face-fields-to-glyphs))) (or (> width 1) (> height 1)) (put-alist file (list modtime size (list (cons (* 48 height) glyph))) x-face-xmas-image-file-cache))) (and glyph (set-extent-begin-glyph (make-extent (point) (point)) glyph)) (insert "\n")))) (goto-char (point-max)) (set-buffer-modified-p nil) (setq buffer-read-only t) (display-buffer buf2) (set-window-start (get-buffer-window buf2) 1)) (message (concat msg "done"))) (list (cons 'type type) (cons 'width width) (cons 'height height) (cons 'data x-faces)))) ;;;###autoload (defun x-face-menu-encode () "Generate X-Face string(s) from xbm file using menu." (interactive) (and (> (string-to-int emacs-version) 18) (let ((minibuffer-setup-hook minibuffer-setup-hook) x-face-default-xbm-file completions) (add-hook 'minibuffer-setup-hook 'x-face-minibuffer-completion-help) (call-interactively 'x-face-encode) (and (setq completions (get-buffer "*Completions*")) (setq completions (get-buffer-window completions)) (delete-window completions))))) ;;;###autoload (defun x-face-insert (&optional file append) "Read an XBM file FILE, encode it to the X-Face data, and insert it to the current buffer as a message header. If FILE is omitted, use a file specified by the `x-face-default-xbm-file' variable. Although it normally deletes existing X-Face headers before inserting, you can insert multiple X-Face headers using the optional argument APPEND (it can be specified by the `C-u' key for the interactive use)." (interactive (list (x-face-read-existing-file-name "[Insert] ") current-prefix-arg)) (or file (interactive-p) (setq file (x-face-read-existing-file-name "[Insert] " (not x-face-insert-interactive)))) (and file (let ((buffer (get-buffer-create " *x-face*")) icons type geometry width height mult msg x-faces points pt1 pt2 cache modtime size rate) (save-excursion (set-buffer buffer) (x-face-find-file-no-conversion file) (setq icons (x-face-xbm-to-icon-strings) type (pop icons) geometry (pop icons) width (car geometry) height (cdr geometry) mult (or (> width 1) (> height 1)) icons (car icons) msg (if mult "Converting icons to x-faces...%s" "Converting icon to x-face...%s"))) (message msg "") (setq x-faces (x-face-icon-strings-to-x-face-strings icons)) (and (featurep 'xemacs) (x-face-xmas-remove-x-face-glyph)) (save-excursion (save-restriction (x-face-narrow-to-header) (while (setq points (x-face-search-field "^x-face-version" t)) (delete-region (nth 0 points) (nth 2 points))) (goto-char (point-min)) (if (setq points (x-face-search-field "^x-face\\(-.+\\)?" t) pt1 (nth 0 points)) (if append (while (x-face-search-field "^x-face\\(-.+\\)?" t)) (delete-region (nth 0 points) (nth 2 points)) (while (setq points (x-face-search-field "^x-face\\(-.+\\)?" t)) (delete-region (nth 0 points) (nth 2 points)))) (goto-char (point-max)) ;; for Mew 1.93b45 (and (eq 'mew-draft-mode major-mode) (boundp 'mew-mv:) (progn (forward-line -1) (or (looking-at mew-mv:) (goto-char (point-max)))))) (or pt1 (setq pt1 (point))) (setq pt2 (point)) (mapcar (function (lambda (x-face) (insert "X-Face:" x-face))) x-faces) (when mult (goto-char pt2) (if (or (eq 'rgb type) (and (not type) (interactive-p) (x-face-Y-or-n-p "Is this X-Face type RGB? "))) (insert (apply 'format "X-Face-Type: RGB; geometry=%dx%d\n" (if (eq 1 height) '(1 1) (list width (/ height 3))))) (if (and (interactive-p) (x-face-Y-or-n-p "Is this X-Face type Animate? ")) (progn (setq rate (read-minibuffer "rate= " "0.5")) (insert (format "X-Face-Type: animate=%g;geometry=%dx%d\n" rate width 1))) (insert (format "X-Face-Type: geometry=%dx%d\n" width height)))) (and (featurep 'xemacs) (setq file (expand-file-name file) cache (assoc file x-face-xmas-image-file-cache) modtime (cadr cache) size (caddr cache)) (put-text-property (1- (point)) (point) 'x-face-file-attributes (list file modtime size)))) (and x-face-add-x-face-version-header (goto-char pt1) (x-face-insert-version-header)) (goto-char pt1) (run-hooks 'x-face-insert-hook) (if (interactive-p) (progn (and x-face-xmas-auto-image (not (and (listp x-face-xmas-auto-image) (memq major-mode x-face-xmas-auto-image))) (x-face-xmas-display-x-face 1)) (setq x-face-xmas-last-highlight-headers-hack-x-face-p 'unknown)) (and (featurep 'xemacs) (setq x-face-xmas-last-highlight-headers-hack-x-face-p (x-face-xmas-highlight-headers-hack-x-face-p-p)))) (and (boundp 'mew-draft-buffer-header) (markerp mew-draft-buffer-header) (setq mew-draft-buffer-header (point-max-marker))) (message msg "done") (and (boundp 'mew-marker-header-end) (markerp mew-marker-header-end) (set-marker mew-marker-header-end (point-max)))))))) ;;;###autoload (defun x-face-menu-insert () "Insert an X-Face using menu." (interactive) (and (> (string-to-int emacs-version) 18) (let ((minibuffer-setup-hook minibuffer-setup-hook) (winconf (current-window-configuration)) x-face-default-xbm-file) (add-hook 'minibuffer-setup-hook 'x-face-minibuffer-completion-help) (call-interactively 'x-face-insert) (set-window-configuration winconf)))) ;;;###autoload (defun x-face-save (&optional arg) "Extract X-Face headers in the current buffer, encode them to XBM data, and save them in the local system. Directory where XBM files will be saved in is specified by the `x-face-image-file-directory-for-save' variable. You can use this command in a summary buffer rather than an article buffer for some mail softwares, e.g. Gnus, Wanderlust, etc." (interactive "P") (let ((x-face-icons-to-color-picture-function (if arg (x-face-read-image-format) x-face-icons-to-color-picture-function))) (x-face-save-or-view 'save))) ;;;###autoload (defun x-face-view (&optional arg) "Extract X-Face headers in the current buffer, encode them to XBM data, and show them using an external image viewer. You can use this command in a summary buffer rather than an article buffer for some mail softwares, e.g. Gnus, Wanderlust, etc." (interactive "P") (let ((x-face-icons-to-color-picture-function (if arg (x-face-read-image-format) x-face-icons-to-color-picture-function))) (x-face-save-or-view 'view))) ;;;###autoload (defun x-face-ascii-view () "Extract X-Face headers in the current buffer, encode them to XBM data, and show them as ascii pictures in an Emacs frame." (interactive) (x-face-save-or-view 'ascii)) ;;; x-face-mule (defun x-face-snatch-x-face-mule-original-x-face-fields () "Snatching at the x-face-mule's resources." (let ((xfaces (or (and (boundp 'x-face-mule-original-x-face-fields) x-face-mule-original-x-face-fields) (and (boundp 'x-face-mule:original-x-face-fields) x-face-mule:original-x-face-fields))) (from (or (and (boundp 'x-face-mule-original-from-field) x-face-mule-original-from-field) (and (boundp 'x-face-mule:original-from-field) x-face-mule:original-from-field)))) (and xfaces (save-excursion (setq x-face-extracted-headers-buffer (set-buffer (get-buffer-create " *header*"))) (setq buffer-read-only nil) (erase-buffer) (if from (insert from) (and (setq from (x-face-mail-fetch-mail-address)) (insert "From: " from "\n"))) (when (car xfaces) (insert (car xfaces)) (or (bolp) (insert "\n"))) (mapcar (function (lambda (xface) (insert xface) (or (bolp) (insert "\n")))) (cadr xfaces))) x-face-extracted-headers-buffer))) ;; Pickup the macro `gnus-summary-article-number'. (eval-when-compile (condition-case nil (load "gnus-sum" t) (error nil))) ;;; GNUS, Gnus (defun x-face-gnus-get-article () (or (and (boundp 'gnus-original-article-buffer) (x-face-buffer-live-p gnus-original-article-buffer) (eq gnus-current-article (or (condition-case nil (gnus-summary-article-number) (invalid-function nil));; It maybe unexpanded macro. (condition-case nil ;; Attempt to eval the macro as a function. (eval (funcall (cdr (symbol-function 'gnus-summary-article-number)))) (error nil))))) (cond ((eq 'gnus-summary-mode major-mode) (if (boundp 'gnus-original-article-buffer) ;; >= v5.2 (gnus-summary-show-article) ;; <= v5.1 (let ((gnus-show-all-headers t) gnus-show-mime) (gnus-summary-show-article)))) ((eq 'gnus-Subject-mode major-mode) ;; <= 3.14.4 (let ((gnus-show-all-headers t)) (gnus-Subject-show-article)))))) (defun x-face-find-gnus-article-buffer () "Find an article buffer which may includes X-Face headers." (or (save-excursion (set-buffer (or (and (boundp 'gnus-article-buffer) (x-face-buffer-live-p gnus-article-buffer)) (and (boundp 'gnus-Article-buffer) (x-face-buffer-live-p gnus-Article-buffer)))) (x-face-snatch-x-face-mule-original-x-face-fields)) (and (boundp 'gnus-original-article-buffer) (x-face-buffer-live-p gnus-original-article-buffer)) (and (boundp 'gnus-article-buffer) (x-face-buffer-live-p gnus-article-buffer)) (and (boundp 'gnus-Article-buffer) (x-face-buffer-live-p gnus-Article-buffer)))) (defun x-face-gnus-unwind-after-save-or-view () (or (boundp 'gnus-original-article-buffer) (cond ((eq 'gnus-summary-mode major-mode) (gnus-summary-show-article)) ((eq 'gnus-Subject-mode major-mode) (gnus-Subject-show-article))))) ;;; MH-E (defun x-face-mh-get-article () "Get current message in article buffer." (or (and (x-face-buffer-live-p mh-show-buffer) (save-excursion (set-buffer mh-show-buffer) (x-face-snatch-x-face-mule-original-x-face-fields))) (let ((file (concat mh-folder-filename (mh-get-msg-num t)))) (save-excursion (setq x-face-extracted-headers-buffer (set-buffer (get-buffer-create " *header*"))) (setq buffer-read-only nil) (erase-buffer) (insert-file-contents file) (x-face-delcr) (and (search-forward "\n\n" nil t) (delete-region (1- (point)) (point-max))))))) ;;; Mew (eval-when-compile (provide 'mew) (condition-case nil (require 'mew-cache) (error nil)) (condition-case nil (require 'mew-syntax) (error nil)) ;; Avoid macro `mew-cache-hit' expand (Mew 1.94.2 or earlier). ;; Changed `mew-cache-hit' from macro to function at Mew 2.0. (if (not (fboundp 'mew-current-get-fld)) (setq byte-compile-macro-environment (cons '(mew-cache-hit . nil) byte-compile-macro-environment)))) (defun x-face-mew-get-article () "Get current message in article buffer." (or (let ((buffer (mew-buffer-message))) (and (x-face-buffer-live-p buffer) (save-excursion (set-buffer buffer) (and (mew-header-get-value "x-face:") (x-face-snatch-x-face-mule-original-x-face-fields))))) (let* ((file (cond ((fboundp 'mew-current-get-fld) (mew-expand-folder (mew-current-get-fld (mew-frame-id)) (mew-current-get-msg (mew-frame-id)))) ((fboundp 'mew-expand-folder) (mew-expand-folder (mew-summary-folder-name) (mew-summary-message-number))) (t (mew-expand-file-name (mew-summary-message-number) (mew-summary-folder-name))))) (buf (cond ((fboundp 'mew-current-get-fld) (mew-cache-hit (mew-current-get-fld (mew-frame-id)) (mew-current-get-msg (mew-frame-id)) 'must-hist)) (t (mew-current-get 'cache)))) (part (cond ((fboundp 'mew-syntax-nums) (or (mew-syntax-nums) '(1))) ((fboundp 'mew-syntax-number) (mew-syntax-number)) (t (mew-current-get 'part)))) (syntax (cond ((fboundp 'mew-syntax-get-entry) (mew-syntax-get-entry (mew-cache-decode-syntax buf) part)) (t (mew-syntax-get-entry-strnum (mew-cache-decode-syntax (mew-cache-hit (mew-current-get 'message))) part)))) (beg (mew-syntax-get-begin syntax)) (end (mew-syntax-get-end syntax))) (save-excursion (setq x-face-extracted-headers-buffer (set-buffer (get-buffer-create " *header*"))) (setq buffer-read-only nil) (erase-buffer) (cond ((and part (not (equal part '(1)))) (insert-buffer-substring buf beg end)) (t (insert-file-contents file nil 0 (* (if (boundp 'mew-header-reasonable-size) mew-header-reasonable-size 5000) 2)) (x-face-delcr) (and (search-forward "\n\n" nil t) (delete-region (1- (point)) (point-max))))))))) ;;; RMAIL, VM (defun x-face-get-all-headers-in-article-buffer () (unless (x-face-snatch-x-face-mule-original-x-face-fields) (goto-char (point-min)) (let ((end (if (search-forward "\n\n" nil t) (point) (point-max))) headers) (goto-char (point-min)) (save-restriction (widen) (goto-char (if (search-backward "\n\n" nil t) (match-end 0) (point-min))) (setq headers (buffer-substring-no-properties (point) end))) (setq x-face-extracted-headers-buffer (set-buffer (get-buffer-create " *header*"))) (erase-buffer) (insert headers)))) (defun x-face-rmail-get-all-headers () "Get all headers in article buffer." (save-excursion (x-face-get-all-headers-in-article-buffer))) (eval-when-compile (condition-case nil (require 'vm-macro) ; >= VM 6.63 (error nil)) (condition-case nil (require 'vm-misc) ; <= VM 6.62 (error nil))) (defun x-face-vm-get-all-headers (msg) "Get all headers in article buffer." (vm-follow-summary-cursor) (message msg) (save-excursion (vm-select-folder-buffer) (x-face-get-all-headers-in-article-buffer))) ;;; cmail (defun x-face-cmail-get-article () "Get current message in article buffer." (let ((page (cmail-get-page-number-from-summary)) (folder (get-buffer (cmail-folder-buffer cmail-current-folder))) beg end) (save-excursion (set-buffer folder) (unless (x-face-snatch-x-face-mule-original-x-face-fields) (cmail-n-page page) (setq beg (point)) (cmail-n-page (1+ page)) (forward-line -1) (setq end (point)) (goto-char beg) (and (re-search-forward "\\(\n\r?\\)\n" end t) (setq end (match-end 1))) (setq x-face-extracted-headers-buffer (set-buffer (get-buffer-create " *header*"))) (setq buffer-read-only nil) (erase-buffer) (insert-buffer-substring folder beg end) (x-face-delcr))))) ;;; Wanderlust (defun x-face-wl-get-article () "Get current message in article buffer." (save-excursion (wl-summary-set-message-buffer-or-redisplay) (let ((message-buf (wl-message-get-original-buffer))) (setq x-face-extracted-headers-buffer (set-buffer (get-buffer-create " *header*"))) (setq buffer-read-only nil) (erase-buffer) (insert-buffer-substring message-buf)))) ;;; Asynchronous view functions. (defun x-face-view-asynchronous-function-for-OS/2 (file) "Asynchronous view function for OS/2." (unwind-protect (progn (call-process "cmd.exe" nil nil nil "/c" (mapconcat 'identity (append (list "detach" x-face-viewer-program) x-face-viewer-options (list file)) " ")) (sleep-for x-face-viewer-startup-time)) (delete-file file) (delete-directory (file-name-directory file)))) (defun x-face-sentinel-delete-file (process event) (let* ((list (assq process x-face-delete-file-alist)) (file (cdr list))) (when (and file (file-exists-p file)) (delete-file file) (delete-directory (file-name-directory file))) (setq x-face-delete-file-alist (delq list x-face-delete-file-alist)))) (defun x-face-view-asynchronous-function-for-win95 (file) "Asynchronous view function for Windoze." (let ((buffer (get-buffer-create "*X-Face-process*")) (msg (format "Executing..: %s %s" x-face-viewer-program file))) (unwind-protect (progn (save-excursion (x-face-set-buffer-disable-undo buffer) (message "%s" msg) (insert msg "\n\n") (let (process) (setq process (start-process x-face-viewer-program buffer x-face-viewer-program file)) (setq x-face-delete-file-alist (cons (cons process file) x-face-delete-file-alist)) (set-process-sentinel process 'x-face-sentinel-delete-file))))))) (defun x-face-view-asynchronous-function-for-some (file) "Asynchronous view function for some UN|X systems." (call-process "/bin/sh" nil nil nil "-c" (mapconcat 'identity (append (list "(" "/bin/cat" file "|" x-face-viewer-program) x-face-viewer-options (list ")>/dev/null 2>&1 /dev/null 2>&1 (string-to-int emacs-version) 18) (progn (defconst x-face-menu-title "X-Face") (defvar x-face-menu-map (make-sparse-keymap x-face-menu-title)) (defconst x-face-menu-list '(("View" x-face-view (zerop (minibuffer-depth))) ("View Ascii" x-face-ascii-view (zerop (minibuffer-depth))) ("Encode" x-face-menu-encode (zerop (minibuffer-depth))) ("Insert" x-face-menu-insert (and (not buffer-read-only) (zerop (minibuffer-depth)))) ("Select XFace" select-xface (and (fboundp (quote select-xface)) (not buffer-read-only) (zerop (minibuffer-depth)))) ("Save" x-face-save (zerop (minibuffer-depth))))) (mapcar (function (lambda (item) (let ((name (car item)) (command (cadr item)) (enablep (caddr item))) (define-key x-face-menu-map (vector (intern name)) (cons name (cons '(nil) command))) (put command 'menu-enable enablep)))) (reverse x-face-menu-list)) (defun x-face-define-menu () "Define menu for Mule 2.3, Emacs 20.x." (let ((map (current-local-map)) (flag menu-bar-mode)) (if map (progn (menu-bar-mode 1) (define-key map (vector 'menu-bar (intern x-face-menu-title)) (cons x-face-menu-title x-face-menu-map)) (or flag (menu-bar-mode -1)) (redraw-display)) (message "!! Local keymap does not exists.") (sit-for 1)))))) ;;; Splash screen. (eval-and-compile (unless (featurep 'xemacs) (load "bitmap" t))) (eval-when-compile (unless (featurep 'xemacs) (defvar filename) (defmacro x-face-image-bitmap-logo () (and (featurep 'bitmap) (let ((dir (if (and (boundp 'filename) (stringp filename) (file-exists-p filename)) (file-name-directory filename) default-directory)) xbm logo warn) (setq xbm (expand-file-name (if (string-match "(\\(alpha\\|beta\\)[0-9]+)$" x-face-version-number) "x-face-beta-logo.xbm" "x-face-logo.xbm") dir)) (if (file-exists-p xbm) (unless (setq logo (condition-case () (bitmap-decode-xbm (bitmap-read-xbm-file xbm)) (error nil))) (setq warn "Warning: cannot create image data.")) (setq warn (format "Warning: file \"%s\" not found." xbm))) (and warn (if (fboundp 'byte-compile-warn) (byte-compile-warn "%s" warn) (message "%s" warn))) logo))))) (unless (featurep 'xemacs) (defconst x-face-image-bitmap-logo (when (featurep 'bitmap) (let ((cmp (x-face-image-bitmap-logo))) (when cmp (condition-case () (let ((len (length cmp)) (bitmap (bitmap-compose (aref cmp 0))) (i 1)) (while (< i len) (setq bitmap (concat bitmap "\n" (bitmap-compose (aref cmp i))) i (1+ i))) bitmap) (error nil)))))) (defun x-face-bitmap-splash-at-point () (or (bolp) (insert "\n")) (let ((bow (point)) (width 0) (fill-column (window-width)) eoi height vmargin hmargin) (insert x-face-image-bitmap-logo) (or (bolp) (insert "\n")) ;; (and (fboundp 'facep) ;; (facep 'gnus-splash-face) ;; (put-text-property bow (point) 'face 'gnus-splash-face)) (setq eoi (point) height (count-lines bow eoi) vmargin (max 0 (- (window-height) 2 height))) (goto-char bow) (while (< (point) eoi) (end-of-line) (setq width (max width (current-column))) (forward-line 1)) (and (> vmargin 0) (insert "\n")) (insert x-face-version "\n") ;; (and (fboundp 'facep) ;; (facep 'bold-italic) ;; (put-text-property eoi (point) 'face 'bold-italic)) (center-region eoi (point)) (setq hmargin (max 0 (/ (- fill-column width) 2))) (insert-char ?\n (/ vmargin 2)) (goto-char eoi) (forward-line -1) (while (> (point) bow) (insert-char ?\ hmargin) (forward-line -1)) (goto-char bow) (insert-char ?\ hmargin) (goto-char bow) (insert-char ?\n (/ (max 0 (1- vmargin)) 2)) (goto-char bow) (set-window-start (get-buffer-window (current-buffer)) bow))) (defun x-face-bitmap-splash (&optional arg) (interactive "P") (and x-face-image-bitmap-logo (let (config buffer) (unwind-protect (progn (setq config (current-window-configuration)) (switch-to-buffer (setq buffer (generate-new-buffer (concat (if arg "*" " *") x-face-version "*")))) (delete-other-windows) (x-face-bitmap-splash-at-point) (set-buffer-modified-p nil) (sit-for 0) (or arg (sleep-for 2))) (unless arg (kill-buffer buffer) (set-window-configuration config) (sit-for 0)))))) (or x-face-inhibit-loadup-splash (and window-system (featurep 'bitmap) (x-face-bitmap-splash)))) (provide 'x-face) (run-hooks 'x-face-load-hook) (eval-when-compile (and (featurep 'xemacs) (setq load-path (cons (if (and (boundp 'filename) (stringp filename) (file-exists-p filename)) (file-name-directory filename) default-directory) load-path)))) (and (featurep 'xemacs) (require 'x-face-xmas)) ;;; x-face.el ends here