
(defun vm-summary-mode nil "\
Major mode for VM folder summaries.
This major mode uses the same keymap as vm-mode.  See the vm-mode documentation
for a list of available commands." (byte-code "ÊËÅÇÅ‰ˆÌ	!‡" [mode-name major-mode mode-line-format vm-mode-line-format buffer-read-only t vm-summary-pointer nil truncate-lines vm-mode-map "VM Summary" vm-summary-mode use-local-map] 2))

(put (quote vm-summary-mode) (quote mode-class) (quote special))

(defun vm-summarize (&optional display) "\
Summarize the contents of the folder in a summary buffer. 
The format is as described by the variable vm-summary-format.  Generally
one line per message is most pleasing to the eye but this is not
mandatory." (interactive "p") (byte-code "Âˆ… Ê!… qˆË	!… Ê	!?… Â‰ˆÌ ˆ	?…O pÅÍÎÏÊ \"!‰ˆŠ	qˆÐÑ!ˆÒÑ!ˆ‰ˆÓ )ˆÅ‰*ˆ…€ ƒ} ÔÕ!?…z 	…j Å=	Ö	!ˆÅ=…y × )‚€ Ø	!ˆ…� Ê!…� qˆÙ ‡" [vm-mail-buffer vm-summary-buffer nil b inhibit-quit t vm-summary-redo-start-point display vm-mutable-windows pop-up-windows buffer-name bufferp vm-error-if-folder-empty get-buffer-create format "%s Summary" abbrev-mode 0 auto-fill-mode vm-summary-mode vm-set-window-configuration summarize display-buffer vm-proportion-windows switch-to-buffer vm-update-summary-and-mode-line] 17))

(defun vm-do-summary (&optional start-point) (byte-code "	† 
ËÌÍÎ !Ï\"Ð\\ÈÑÒ!ˆŠqˆÈ	ƒA @ÓHÔHƒ< @ÓHÔHbˆÕ`d\"‚> db‚H Ö ˆÈ‰	ˆ…� 
qˆ×Ø@\"‰ˆqˆ@ÓHÔÙ IˆÚÛ\"ˆ@ÓHÜÙ IˆAT‰ˆÝÌ\"!…‰ ÑÞ\"ˆ‚I ))ˆÑß!,‡" [mp start-point vm-message-list n modulus summary vm-summary-buffer buffer-read-only nil vm-summary-pointer vm-mail-buffer 0 % vm-abs random 11 10 message "Generating summary..." 1 2 delete-region erase-buffer vm-sprintf vm-summary-format point-marker insert "  " 3 zerop "Generating summary... %d" "Generating summary... done"] 16))

(defun vm-do-needed-summary-rebuild nil (byte-code "… 	ƒ$ Å:… !ˆÂ‰ˆ… Æ@!ˆÂ‰‚8 …8 	…8 …8 Æ@!ˆÂ‰‡" [vm-summary-redo-start-point vm-summary-buffer nil vm-message-pointer vm-need-summary-pointer-update vm-do-summary vm-set-summary-pointer] 5))

(defun vm-update-message-summary (m) (byte-code "		ÆH	ÇHÈHJÆH=… 	ÇHÉHBÊ…w @ËHÆH…0 ÌÍ@ËHÆH!!…n ŠÎÏ@\"‰ˆÍ@ËHÆH!qˆÄÊŠ@ËHÆHbˆÐgÑUƒ^ Ò‚_ Ó
\"ˆÔ`@ËHÕH\")*)ˆA‰ˆ‚ *‡" [m-list m summary inhibit-quit t buffer-read-only 2 0 6 7 nil 1 buffer-name marker-buffer vm-sprintf vm-summary-format insert 32 "  " "->" delete-region 3] 10))

(defun vm-set-summary-pointer (m) (byte-code "…c Ë!ÃÅpÌŽÍŽqˆ	…\" Î ‰ˆÏ	!ˆÃ…9 ÐHÑHbˆÒcˆÓÑ!ˆ	‰ˆ	ÐHÑHbˆÔcˆÓÑ!ˆÕÖ!ˆ	…^ 
…^ Ê ))))+‡" [vm-summary-buffer w old-window nil inhibit-quit t vm-sbe-buffer buffer-read-only vm-summary-pointer m vm-auto-center-summary get-buffer-window ((byte-code "p=?… Á!… q‡" [vm-sbe-buffer buffer-name] 2)) ((byte-code "… Á!‡" [old-window select-window] 2)) selected-window select-window 1 2 "  " delete-char "->" forward-char -2] 8))

(defun vm-mark-for-display-update (message) (byte-code "	B‰‡" [vm-messages-needing-display-update message] 2))

(defun vm-force-mode-line-update nil (byte-code "ŠÀ qˆÁÂ !)‡" [other-buffer set-buffer-modified-p buffer-modified-p] 4))

(defun vm-update-summary-and-mode-line nil (byte-code "É ˆÊ ˆ?ƒ Á‚¢ @ËHÌH‰ˆ@ÍHÌHƒ' Î‰‚9 @ÍHËHƒ6 Ï‰‚9 Ð‰ˆ@ÍHÑH…H ÒP‰ˆ@ÍHÓH…W ÔP‰ˆ@ÍHÕH…f ÖP‰ˆ@ÍH×H…u ØP‰ˆ@ÍHÙH…„ ÚP‰ˆ@ÍHÍH…“ ÛP‰ˆ@ËHËH…¢ ÜP‰ˆ…ª ?…¶ ÝÃÂÞßà&ˆ…Ì á@!ˆA‰ˆ‚· ˆ…Û â!ˆÁ‰ˆã ‡" [vm-message-pointer nil vm-ml-message-number vm-ml-attributes-string t vm-summary-buffer vm-real-buffers vm-messages-needing-display-update vm-deferred-message vm-do-needed-renumbering vm-do-needed-summary-rebuild 1 0 2 "new" "unread" "read" 7 " edited" 3 " filed" 5 " written" 4 " replied" 6 " forwarded" " deleted" " MARKED" vm-copy-local-variables vm-ml-highest-message-number vm-buffer-modified-p vm-message-list vm-update-message-summary message vm-force-mode-line-update] 9))

(defun vm-auto-center-summary nil (byte-code "… Á=† ÂÁ!?… ÃÄ!‡" [vm-auto-center-summary t one-window-p recenter (4)] 3))

(defun vm-follow-summary-cursor nil (byte-code "…“ 	Ì=…“ `ÈÈŠqˆ‰)ˆ?†5 
@ÍHÎHY…5 
@ÍHÏHWƒ< È‚’ 
@ÍHÎHWƒN ‰	‚U A	È‰ˆ	=?…g 
	@ÍHÏHY…t 	A‰	ˆ‚V ˆ	=?…’ ŠqˆÐ	\"ˆË‰
ˆÑ ˆË)+‡" [vm-follow-summary-cursor major-mode point message-pointer message-list vm-mail-buffer vm-message-pointer vm-message-list nil mp vm-need-summary-pointer-update t vm-summary-mode 1 2 3 vm-record-and-change-message-pointer vm-preview-current-message] 3))

(defun vm-sprintf (format-variable message) (byte-code "ÃNJ=?… Ä!ˆ
ÅÆN!)‡" [format-variable vm-su-message message vm-compiled-format vm-compile-format eval vm-format-sexp] 4))

(defun vm-compile-format (format-variable) (byte-code "	JÇÇÇÇÇÈÇ!ˆÉÊËÌ!#…ÓÍÎ!H‰ˆÏ>ƒ·ÐUƒ: ÑÒD
B‰‚WÓUƒJ ÔÒD
B‰‚WÕUƒZ ÖÒD
B‰‚W×Uƒj ØÒD
B‰‚WÙUƒz ÚÒD
B‰‚WÛUƒŠ ÜÒD
B‰‚WÝUƒš ÞÒD
B‰‚WßUƒª àÒD
B‰‚WáUƒº âÒD
B‰‚WãUƒÊ äÒD
B‰‚WåUƒÚ æÒD
B‰‚WçUƒê èÒD
B‰‚WéUƒú êÒD
B‰‚WëUƒ
ìÒD
B‰‚WíUƒîÒD
B‰‚WïUƒ*ðÒD
B‰‚WñUƒ:òÒD
B‰‚WóUƒJôÒD
B‰‚WõU…WöÒD
B‰ˆÍ÷!ƒrø
ù
@úÍû!Ëû!O!E\"‚‰Íû!…‰ø
ü
@úÍû!Ëû!O!E\"ˆÍý!…¡ø
þ
@úÍÿ!Ëÿ!O!E\"ˆ�@ †«ÌÍÌ!OBB‰‚É�A †ÀÌÍÌ!OBB‰ˆËÌ!‰ˆ‚ ˆ†ÚÌGOB�B �C �D !\"À�D 
!BB‰ˆ�E 	�F 
#ˆ�E 	�G #.‡" [format format-variable sexp sexp-fmt conv-spec last-match-end case-fold-search nil store-match-data string-match "%\\(-\\)?\\([0-9]\\)*\\(\\.\\([0-9]+\\)\\)?\\([aAcdfFhilmMnstTwyz*%]\\)" match-end 0 match-beginning 5 (97 65 99 100 102 70 104 105 108 77 109 110 115 116 84 119 121 122 42) 97 vm-su-attribute-indicators vm-su-message 65 vm-su-attribute-indicators-long 99 vm-su-byte-count 100 vm-su-monthday 102 vm-su-from 70 vm-su-full-name 104 vm-su-hour 105 vm-su-message-id 108 vm-su-line-count 109 vm-su-month 77 vm-su-month-number 110 vm-su-message-number 115 vm-su-subject 84 vm-su-to-names 116 vm-su-to 119 vm-su-weekday 121 vm-su-year 122 vm-su-zone 42 vm-su-mark 1 setcar vm-left-justify-string string-to-int 2 vm-right-justify-string 3 vm-truncate-string 4 "%s" "%%" apply concat nreverse put vm-format-sexp vm-compiled-format] 30))

(defun vm-get-header-contents (message header-name) (byte-code "ÆÆÇ
\"‰ˆŠÈÉHÉH!qˆŒÊ ˆÉHÉHbˆË	Ì!Å#…L ƒ> ÍÎÏÐ!ÑÐ!\"Q‰‚H ÎÏÐ!ÑÐ!\"‰ˆ‚  ˆ))*‡" [contents regexp vm-header-regexp-format header-name message t nil format marker-buffer 0 widen re-search-forward vm-text-of ", " buffer-substring match-beginning 1 match-end] 14))

(defun vm-left-justify-string (string width) (byte-code "G	Yƒ ‚ Â	GZÃ\"P‡" [string width make-string 32] 4))

(defun vm-right-justify-string (string width) (byte-code "G	Yƒ ‚ Â	GZÃ\"P‡" [string width make-string 32] 3))

(defun vm-truncate-string (string width) (byte-code "G	Xƒ ‚ Â	O‡" [string width 0] 3))

(defun vm-su-attribute-indicators (m) (byte-code "ÂHÂHƒ Ã‚% ÂHÄHƒ Å‚% ÂHÆHƒ$ Ç‚% ÈÂHÉHƒ1 Ê‚> ÂHËHƒ= Ì‚> ÈÂHÍHƒJ Î‚W ÂHÏHƒV Ð‚W ÈÂHÑHƒc Ò‚d ÈR‡" [m t 2 "D" 0 "N" 1 "U" " " 3 "F" 5 "W" 4 "R" 6 "Z" 7 "E"] 5))

(defun vm-su-attribute-indicators-long (m) (byte-code "ÂÃHÃHƒ Ä‚& ÃHÅHƒ Æ‚& ÃHÇHƒ% È‚& ÉÃHÊHƒ2 Ë‚3 ÉÃHÌHƒ? Í‚@ ÉÃHÎHƒL Ï‚M ÉÃHÐHƒY Ñ‚Z ÉÃHÒHƒf Ó‚g É&‡" [m t concat 2 "D" 0 "N" 1 "U" " " 4 "r" 6 "z" 3 "f" 5 "w" 7 "e"] 8))

(defun vm-su-byte-count (m) (byte-code "ÁHÂH† ÁHÂÃÄ!Å!Z!I‡" [m 3 0 int-to-string vm-text-end-of vm-text-of] 7))

(defun vm-su-weekday (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 1 vm-su-do-date] 3))

(defun vm-su-monthday (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 2 vm-su-do-date] 3))

(defun vm-su-month (m) (byte-code "ÁHÁH† Â!ˆÁHÁH‡" [m 3 vm-su-do-date] 3))

(defun vm-su-month-number (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 15 vm-su-do-date] 3))

(defun vm-su-year (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 4 vm-su-do-date] 3))

(defun vm-su-hour (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 5 vm-su-do-date] 3))

(defun vm-su-zone (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 6 vm-su-do-date] 3))

(defun vm-su-mark (m) (byte-code "ÁHÁHƒ Â‚ Ã‡" [m 1 "*" " "] 2))

(defun vm-grok-From_-date (message) (byte-code "Ã=ƒ
 Á‚/ ŠÄ
ÅHÅH!qˆŒÆ ˆ
ÅHÅHbˆÇÈ!…- ÉÊË!ÌË!\"))‡" [vm-folder-type nil message mmdf marker-buffer 0 widen looking-at "From [^ 	
]+[ 	]+\\([^ 	
].*\\)" buffer-substring match-beginning 1 match-end] 8))

(defun vm-su-do-date (m) (byte-code "ÃÄ	Å\"† Æ	!‰ˆ?ƒG 	ÇHÈÉIˆ	ÇHÊÉIˆ	ÇHÇÉIˆ	ÇHËÉIˆ	ÇHÌÉIˆ	ÇHÍÉIˆ	ÇHÎÉI‚BÏÐ\"ƒ± ÑÊ!ƒd 	ÇHÈÑÊ!ÒÊ!OI‚j 	ÇHÈÉIˆ	ÇHÊÑÇ!ÒÇ!OIˆÓ	ÑÌ!ÒÌ!O\"ˆ	ÇHÌÑÍ!ÒÍ!OIˆ	ÇHÍÑÎ!ÒÎ!OIˆ	ÇHÎÑÔ!ÒÔ!OI‚BÏÕ\"ƒ	ÇHÈÑÈ!ÒÈ!OIˆÓ	ÑÊ!ÒÊ!O\"ˆ	ÇHÊÑÇ!ÒÇ!OIˆ	ÇHÍÑÌ!ÒÌ!OIˆ	ÇHÌÑÍ!ÒÍ!OIˆÑÎ!…	ÇHÎÑÎ!ÒÎ!OI‚B	ÇHÈÉIˆ	ÇHÊÉIˆ	ÇHÇÉIˆ	ÇHËÉIˆ	ÇHÌÉIˆ	ÇHÍÉIˆ	ÇHÎÉI)‡" [date m t nil vm-get-header-contents "Date" vm-grok-From_-date 3 1 "" 2 15 4 5 6 string-match "\\(\\([a-z][a-z][a-z]\\),\\)?[ 	
]*\\([0-9][0-9]?\\)[ 	
---]*\\([a-z][a-z][a-z]\\)[ 	
---]*\\([0-9]*[0-9][0-9]\\)[ 	
]*\\([0-9:]+\\)[ 	
]*\\([a-z][a-z]?[a-z]?\\|[---+][0-9][0-9][0-9][0-9]\\)" match-beginning match-end vm-su-do-month 7 "\\([a-z][a-z][a-z]\\)[ 	
]*\\([a-z][a-z][a-z]\\)[ 	
]*\\([0-9][0-9]?\\)[ 	
]*\\([0-9:]+\\)[ 	
]*[0-9][0-9]\\([0-9][0-9]\\)[ 	
]*\\([a-z][a-z]?[a-z]?\\|[---+][0-9][0-9][0-9][0-9]\\)?"] 37))

(defun vm-su-do-month (m month-abbrev) (byte-code "ÌÀ!?…& ÍÎÏÐÑÒÓÔÕÖ	×
Ø‰ˆÙÚÛ�‡" [vm-su-month-sym-jan vm-su-month-sym-feb vm-su-month-sym-mar vm-su-month-sym-apr vm-su-month-sym-may vm-su-month-sym-jun vm-su-month-sym-jul vm-su-month-sym-aug vm-su-month-sym-sep vm-su-month-sym-oct vm-su-month-sym-nov vm-su-month-sym-dec boundp ("January" "1") ("February" "2") ("March" "3") ("April" "4") ("May" "5") ("June" "6") ("July" "7") ("August" "8") ("September" "9") ("October" "10") ("November" "11") ("December" "12") nil (byte-code "ÃÄÅ	!P!J
ÆHÆ@Iˆ
ÆHÇA@I)‡" [val month-abbrev m intern "vm-su-month-sym-" downcase 3 15] 5) ((error (byte-code "ÁHÁÂIˆÁHÃÄI‡" [m 3 "???" 15 "?"] 3)))] 4))

(defun vm-su-full-name (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 7 vm-su-do-author] 3))

(defun vm-su-from (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 8 vm-su-do-author] 3))

(defun vm-grok-From_-author (message) (byte-code "Ã=ƒ
 Á‚/ ŠÄ
ÅHÅH!qˆŒÆ ˆ
ÅHÅHbˆÇÈ!…- ÉÊË!ÌË!\"))‡" [vm-folder-type nil message mmdf marker-buffer 0 widen looking-at "From \\([^ 	
]+\\)" buffer-substring match-beginning 1 match-end] 8))

(defun vm-su-do-author (m) (byte-code "ÄÄÅ
Æ\"‰ˆÅ
Ç\"† È
!‰ˆ	?ƒ, É‰ˆ?…) É‰‚‚ ÊË	\"ƒV ÌÍ!…; ?…H 	ÌÍ!ÎÍ!O‰ˆ	ÌÏ!ÎÏ!O‰‚‚ ÊÐ	\"…‚ ?…l 	ÌÍ!ÎÍ!O‰ˆ	ÌÑ!ÌÍ!SO	ÎÍ!TÎÑ!OP‰ˆ…‹ ÊÒ	\"…Õ Ó	ÌÔ!ÎÔ!OÕÌÖ!…¨ Ì×!…¨ ÌØ!?ƒ¸ 	ÌÖ!ÎÖ!OÙP‚¹ Ú	ÌÍ!Î×!†Æ ÎÍ!OÎ×!ƒÑ Ú‚Ò Û%‰ˆ?†ß ÊÜ\"…å 	‰ˆ
ÔHÝIˆ
ÔHÞ	I*‡" [full-name from m vm-gargle-uucp nil vm-get-header-contents "Full-Name" "From" vm-grok-From_-author "???" string-match "^\\([^< 	
]+\\([ 	
]+[^< 	
]+\\)*\\)?[ 	
]*\\(<\\([^>]+\\)>\\)" match-beginning 1 match-end 4 "[ -]*(\\([^)]+\\))[ -]*" 0 "\\([^!@:.]+\\)\\(\\.[^!@:]+\\)?!\\([^!@: 	
]+\\)\\(@\\([^!@:. 	
]+\\)\\(.[^ 	
]+\\)?\\)?[ 	
]*$" concat 3 "@" 5 2 6 "." "" ".UUCP" "^[ 	
]*$" 7 8] 34))

(autoload (quote rfc822-addresses) "rfc822")

(defun vm-su-do-recipients (m) (byte-code "ÁÊÊÊÊÊÊËÌ\"†\" ËÍ\"†\" Î ËÏ\"ƒ9 ÐQ‚: Ñ!‰ˆÒ!‰ˆ…¶ Ó@Ô\"†« ÕÖ@\"ƒŠ ×Ø!ƒy @×Ø!ÙØ!O
B‰‚‡ @×Ú!ÙÚ!O
B‰‚« ÕÛ@\"ƒ¤ @×Ü!ÙÜ!O
B‰‚« @
B‰ˆA‰ˆ‚K ˆ	…$…$ÕÝ@\"…Þß@×Ú!ÙÚ!Oà×á!…é ×Ø!…é ×â!?ƒû @×á!Ùá!OãP‚ü Ô@×Ü!ÙØ!†ÙÜ!OÙØ!ƒÔ‚ä%\"ˆA‰ˆ‚¼ ˆÚHåæçÐ#IˆÚHèæç
Ð#I.‡" [mail-use-rfc822 t names addresses to cc all list m vm-gargle-uucp nil vm-get-header-contents "To" "Apparently-To" user-login-name "Cc" ", " rfc822-addresses vm-parse-addresses string= "" string-match "^\\(\\([^<]+[^ 	
]\\)[ 	
]+\\)?<\\([^>]+\\)>" match-beginning 2 match-end 3 "[ -]*(\\([^)]+\\))[ -]*" 1 "\\([^!@:.]+\\)\\(\\.[^!@:]+\\)?!\\([^!@: 	
]+\\)\\(@\\([^!@:. 	
]+\\)\\(.[^ 	
]+\\)?\\)?[ 	
]*$" setcar concat "@" 5 6 "." ".UUCP" 13 mapconcat identity 14] 37))

(defun vm-su-to (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 13 vm-su-do-recipients] 3))

(defun vm-su-to-names (m) (byte-code "ÁHÂH† Ã!ˆÁHÂH‡" [m 3 14 vm-su-do-recipients] 3))

(defun vm-su-message-id (m) (byte-code "ÁHÂH† ÁHÂÃÄ\"† ÅI‡" [m 3 9 vm-get-header-contents "Message-Id" ""] 5))

(defun vm-su-line-count (m) (byte-code "ÅHÆH†6 ÅHÆp
Ç=…! …! È@ÉHÉH!qˆÊŽŒË ˆÌÍÎ!Ï!\"!)))I‡" [m vm-sbe-buffer major-mode vm-message-list vm-message-pointer 3 10 vm-virtual-mode marker-buffer 0 ((byte-code "p=?… Á!… q‡" [vm-sbe-buffer buffer-name] 2)) widen int-to-string count-lines vm-text-of vm-text-end-of] 10))

(defun vm-su-message-number (m) (byte-code "ÁHÂH‡" [m 1 0] 2))

(defun vm-su-subject (m) (byte-code "ÁHÂH† ÁHÂÃÄ\"† ÅI‡" [m 3 11 vm-get-header-contents "Subject" ""] 5))
