;ELC   
;;; compiled by kwzh@nutrimat.gnu.ai.mit.edu on Wed Jul 17 16:50:38 1996
;;; from file /gd/gnu/emacs/19.0/lisp/gnus-score.el
;;; emacs version 19.31.94.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`gnus-score.el' was compiled for Emacs 19.29 or later"))


(require (quote gnus))
#@549 *List of global score files and directories.
Set this variable if you want to use people's score files.  One entry
for each score file or each score file directory.  Gnus will decide
by itself what score files are applicable to which group.

Say you want to use the single score file
"/ftp.ifi.uio.no@ftp:/pub/larsi/ding/score/soc.motss.SCORE" and all
score files in the "/ftp.some-where:/pub/score" directory.

 (setq gnus-global-score-files
       '("/ftp.ifi.uio.no:/pub/larsi/ding/score/soc.motss.SCORE"
         "/ftp.some-where:/pub/score"))
(defvar gnus-global-score-files nil (#$ . -508))
#@514 *Alist mapping regexps to lists of score files.
Each element of this alist should be of the form
	("REGEXP" [ "SCORE-FILE-1" ] [ "SCORE-FILE-2" ] ... )

If the name of a group is matched by REGEXP, the corresponding scorefiles
will be used for that group.
The first match found is used, subsequent matching entries are ignored (to
use multiple matches, see gnus-score-file-multiple-match-alist).

These score files are loaded in addition to any files returned by
gnus-score-find-score-files-function (which see).
(defvar gnus-score-file-single-match-alist nil (#$ . -1112))
#@539 *Alist mapping regexps to lists of score files.
Each element of this alist should be of the form
	("REGEXP" [ "SCORE-FILE-1" ] [ "SCORE-FILE-2" ] ... )

If the name of a group is matched by REGEXP, the corresponding scorefiles
will be used for that group.
If multiple REGEXPs match a group, the score files corresponding to each
match will be used (for only one match to be used, see
gnus-score-file-single-match-alist).

These score files are loaded in addition to any files returned by
gnus-score-find-score-files-function (which see).
(defvar gnus-score-file-multiple-match-alist nil (#$ . -1693))
#@29 *Suffix of the score files.
(defvar gnus-score-file-suffix "SCORE" (#$ . -2300))
#@38 *Suffix of the adaptive score files.
(defvar gnus-adaptive-file-suffix "ADAPT" (#$ . -2387))
#@648 *Function used to find score files.
The function will be called with the group name as the argument, and
should return a list of score files to apply to that group.  The score
files do not actually have to exist.

Predefined values are:

gnus-score-find-single: Only apply the group's own score file.
gnus-score-find-hierarchical: Also apply score files from parent groups.
gnus-score-find-bnews: Apply score files whose names matches.

See the documentation to these functions for more information.

This variable can also be a list of functions to be called.  Each
function should either return a list of score files, or a list of
score alists.
(defvar gnus-score-find-score-files-function (quote gnus-score-find-bnews) (#$ . -2487))
#@79 *Scoring commands will raise/lower the score with this number as the default.
(defvar gnus-score-interactive-default-score 1000 (#$ . -3229))
#@127 *Number of days before unused score file entries are expired.
If this variable is nil, no score file entries will be expired.
(defvar gnus-score-expiry-days 7 (#$ . -3378))
#@169 *In non-nil, update matching score entry dates.
If this variable is nil, then score entries that provide matches
will be expired along with non-matching score entries.
(defvar gnus-update-score-entry-dates t (#$ . -3558))
#@59 *All orphans get this score added. Set in the score file.
(defvar gnus-orphan-score nil (#$ . -3786))
#@29 *Alist of marks and scores.
(defvar gnus-default-adaptive-score-alist (quote ((gnus-kill-file-mark) (gnus-unread-mark) (gnus-read-mark (from 3) (subject 30)) (gnus-catchup-mark (subject -10)) (gnus-killed-mark (from -1) (subject -20)) (gnus-del-mark (from -2) (subject -15)))) (#$ . -3894))
#@65 *Have the score entry functions pretend that they are a keymap.
(defvar gnus-score-mimic-keymap nil (#$ . -4191))
#@396 *Number that says how long a match has to be before using substring matching.
When doing adaptive scoring, one normally uses fuzzy or substring
matching.  However, if the header one matches is short, the possibility
for false positives is great, so if the length of the match is less
than this variable, exact matching will be used.

If this variable is nil, exact matching will always be used.
(defvar gnus-score-exact-adapt-limit 10 (#$ . -4312))
#@61 *All score files that match this regexp will not be cached.
(defvar gnus-score-uncacheable-files "ADAPT$" (#$ . -4767))
#@240 Default header when entering new scores.

Should be one of the following symbols.

 a: from
 s: subject
 b: body
 h: head
 i: message-id
 t: references
 x: xref
 l: lines
 d: date
 f: followup

If nil, the user will be asked for a header.
(defvar gnus-score-default-header nil (#$ . 4894))
#@311 Default match type when entering new scores.

Should be one of the following symbols.

 s: substring
 e: exact string
 f: fuzzy string
 r: regexp string
 b: before date
 a: at date
 n: this date
 <: less than number
 >: greater than number
 =: equal to number

If nil, the user will be asked for a match type.
(defvar gnus-score-default-type nil (#$ . 5191))
#@58 Use case folding for new score file entries iff not nil.
(defvar gnus-score-default-fold nil (#$ . 5556))
#@186 Default duration of effect when entering new scores.

Should be one of the following symbols.

 t: temporary
 p: permanent
 i: immediate

If nil, the user will be asked for a duration.
(defvar gnus-score-default-duration nil (#$ . 5669))
#@72 *Function called with the name of the score file just written to disk.
(defvar gnus-score-after-write-file-function nil (#$ . -5913))
(byte-code "! B! B!  B!- B!; B!H 	B!U \nB" [boundp gnus-internal-global-score-files nil current-load-list gnus-score-file-list gnus-short-name-score-file-cache gnus-score-help-winconf gnus-adaptive-score-alist gnus-default-adaptive-score-alist gnus-score-trace gnus-score-edit-buffer] 2)
#@685 Alist containing score information.
The keys can be symbols or strings.  The following symbols are defined. 

touched: If this alist has been modified.
mark:    Automatically mark articles below this.
expunge: Automatically expunge articles below this.
files:   List of other score files to load when loading this one.
eval:    Sexp to be evaluated when the score file is loaded.

String entries have the form (HEADER (MATCH TYPE SCORE DATE) ...) 
where HEADER is the header being scored, MATCH is the string we are
looking for, TYPE is a flag indicating whether it should use regexp or
substring matching, SCORE is the score to add and DATE is the date
of the last successful match.
(defvar gnus-score-alist nil (#$ . 6405))
(byte-code "! B! B!  BB%\"" [boundp gnus-score-cache nil current-load-list gnus-scores-articles gnus-score-index (("number" 0 gnus-score-integer) ("subject" 1 gnus-score-string) ("from" 2 gnus-score-string) ("date" 3 gnus-score-date) ("message-id" 4 gnus-score-string) ("references" 5 gnus-score-string) ("chars" 6 gnus-score-integer) ("lines" 7 gnus-score-integer) ("xref" 8 gnus-score-string) ("head" -1 gnus-score-body) ("body" -1 gnus-score-body) ("all" -1 gnus-score-body) ("followup" 2 gnus-score-followup) ("thread" 5 gnus-score-thread)) gnus-header-index autoload gnus-uu-ctl-map "gnus-uu" keymap gnus-define-keys-1 (gnus-summary-score-map "V" gnus-summary-mode-map) ("s" gnus-summary-set-score "a" gnus-summary-score-entry "S" gnus-summary-current-score "c" gnus-score-change-score-file "m" gnus-score-set-mark-below "x" gnus-score-set-expunge-below "R" gnus-summary-rescore "e" gnus-score-edit-current-scores "f" gnus-score-edit-file "F" gnus-score-flush-cache "t" gnus-score-find-trace "C" gnus-score-customize)] 6)
#@196 Make a score entry based on the current article.
The user will be prompted for header to score on, match type,
permanence, and the string to be used.  The numerical prefix will be
used as score.
(defalias 'gnus-summary-lower-score #[(&optional score) "\n![!" [gnus-summary-increase-score gnus-score-default score] 3 (#$ . 8208) "P"])
#@75 *The default header to score on when entering a score rule interactively.
(defvar gnus-score-default-header nil (#$ . -8551))
#@74 *The default score type to use when entering a score rule interactively.
(defvar gnus-score-default-type nil (#$ . -8683))
#@81 *The default score duration to use on when entering a score rule interactively.
(defvar gnus-score-default-duration nil (#$ . -8812))
(defalias 'gnus-score-kill-help-buffer #[nil "! ! !" [get-buffer "*Score Help*" kill-buffer gnus-score-help-winconf set-window-configuration] 2])
#@196 Make a score entry based on the current article.
The user will be prompted for header to score on, match type,
permanence, and the string to be used.  The numerical prefix will be
used as score.
(defalias 'gnus-summary-increase-score #[(&optional score) " \n!W ł V\n\f EE8 !HE !HR !H  y !\"  炅 \n## U Ub \n#b  \n  # !U  # !  P!#, A@\f#$ U=U \f\"\"#  \fA@uq#u!U$!!$@ A ## UUB # %\n!A@1-C %1!)8똃?ND 8MA@! A@E F G  \"o ĕO F H  \" ĕO I >J  ! K A@ \nL =?\nM =?N 8?&." [gnus-set-global-variables gnus-score-default score nscore 0 76 73 prefix increase ((97 "from" nil nil string) (115 "subject" nil nil string) (98 "body" "" nil body-string) (104 "head" "" nil body-string) (105 "message-id" nil t string) (116 "references" "message-id" nil string) (120 "xref" nil nil string) (108 "lines" nil nil number) (100 "date" nil nil date) (102 "followup" nil nil string) (84 "thread" nil nil string)) char-to-header ((115 s "substring" string) (101 e "exact string" string) (102 f "fuzzy string" string) (114 r "regexp string" string) (122 s "substring" body-string) (112 s "regexp string" body-string) (98 before "before date" date) (97 at "at date" date) (110 now "this date" date) (60 < "less than number" number) (62 > "greater than number" number) (61 = "equal to number" number)) char-to-type 116 current-time-string "temporary" (112 perm "permanent") (105 now "immediate") char-to-perm gnus-score-mimic-keymap mimic gnus-score-default-header symbol-name hchar gnus-score-default-type tchar gnus-score-default-duration pchar nil entry temporary type match ((gnus-score-kill-help-buffer)) sit-for 1 message "%c-" "%s header (%s?): " "Increase" "Lower" mapconcat #[(s) "	@!" [char-to-string s] 2] "" read-char 63 8 gnus-score-insert-help "Match on header" gnus-score-kill-help-buffer error "%c %c" 115 "%c %c-" "%s header '%s' with match type (%s?): " #[(s) "	88= @!Ň" [4 entry 3 s char-to-string ""] 3] "Match type" delq mapcar #[(s) "	88= " [4 entry 3 s] 3] 2 "%c %c %c" 112 "%c %c %c-" "%s permanence (%s?): " #[(s) "	@!" [char-to-string s] 2] "Match permanence" "%c %c %c %c" gnus-summary-header "xref" string-match "^Xref: *" "^[^:]* +" (r R regexp Regexp) regexp-quote gnus-summary-score-entry s perm 3] 9 (#$ . 9112) "P"])
(defalias 'gnus-score-insert-help #[(string alist idx) " !qp!p! ȱ\n̉S @8GVJ A5 \\ S S\n W !cZ!Q\n@@\n@8#c\nA\nTi .  !! )%!!)" [current-window-configuration gnus-score-help-winconf get-buffer-create "*Score Help*" buffer-disable-undo delete-windows-on erase-buffer string ":\n\n" -1 alist 0 nil format pad width n i list max idx 4 window-width delete-char "\n" 3 "%c: %-" int-to-string "s" gnus-appt-select-lowest-window split-window pop-to-buffer 1 window-min-height shrink-window-if-larger-than-buffer select-window get-buffer-window gnus-summary-buffer] 8])
(defalias 'gnus-summary-header #[(header &optional no-err) "`\" \n!)`\"  N \n8B !B \"A@HV ?V !V V !*" [get-text-property gnus-intangible to gnus-summary-goto-subject gnus-number gnus-summary-last-subject nil headers article 3 gnus-newsgroup-data vectorp assoc header gnus-header-index no-err error "Pseudo-articles can't be scored" "No article on current line"] 5])
(defalias 'gnus-newsgroup-score-alist #[nil "	\"\f !) 	!!" [gnus-group-get-parameter gnus-newsgroup-name score-file param-file gnus-score-load gnus-score-file-name gnus-score-alist] 4])
(defalias 'gnus-score-get #[(symbol &optional alist) "	\n\f \f  \"A" [assoc symbol alist gnus-score-alist gnus-newsgroup-score-alist] 3])
(put (quote gnus-score-get) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@395 Enter score file entry.
HEADER is the header being scored.
MATCH is the string we are looking for.
TYPE is the match type: substring, regexp, exact, fuzzy.
SCORE is the score to add.
DATE is the expire date, or nil for no expire, or 'now for immediate expire.
If optional argument `PROMPT' is non-nil, allow user to edit match.
If optional argument `SILENT' is nil, show effect of score entry.
(defalias 'gnus-summary-score-entry #[(header match type score date &optional prompt silent) "= = = == 8 \"2 ɕO4 )9 G =G !!\" =k ؂v ;u قv W ۂ $ ! \"\" \"8= !=~#U $%%$ &  \"A*()  !F\f !E\f\nD\fC)c)\"(c(88=c(8:8H(8c8c(A(A@T#A@]#\\x)s)BvC\"\"*/ \"A@Y \"8=$ +" [type t r s nil match subject string-match "^[Rr][Ee]: *" 0 "" f gnus-simplify-subject-fuzzy gnus-score-default score format "%s" header new prompt read-string "Match %s on %s, %s: " date now "now" "temp" "permanent" "lower" "raise" int-to-string 2 assoc gnus-header-index gnus-score-integer string-to-int gnus-score-interactive-default-score alist symbol gnus-score-alist gnus-newsgroup-score-alist elem old gnus-day-number 3 gnus-score-set touched (t) silent gnus-score-string gnus-summary-score-effect gnus-summary-rescore] 7 (#$ . 13425) (list (completing-read "Header: " gnus-header-index (lambda (x) (fboundp (nth 2 x))) t) (read-string "Match: ") (if (y-or-n-p "Use regexp match? ") (quote r) (quote s)) (and current-prefix-arg (prefix-numeric-value current-prefix-arg)) (cond ((not (y-or-n-p "Add to score file? ")) (quote now)) ((y-or-n-p "Expire kill? ") (current-time-string)) (t nil)))])
#@204 Simulate the effect of a score file entry.
HEADER is the header being scored.
MATCH is the string we are looking for.
TYPE is a flag indicating if it is a regexp or substring.
SCORE is the score to add.
(defalias 'gnus-summary-score-effect #[(header match type score) "; GV !eb\f=  !< \f=* < \f=9 !Q< !\fm?v \"o \f=a !\fg \f\"o !*y> *" [match 0 error "No match" type f gnus-simplify-subject-fuzzy r e "\\`" regexp-quote "\\'" regexp gnus-summary-header header noerr t case-fold-search content string-match gnus-summary-raise-score score 1] 4 (#$ . 15270) (list (completing-read "Header: " gnus-header-index (lambda (x) (fboundp (nth 2 x))) t) (read-string "Match: ") (y-or-n-p "Use regexp match? ") (prefix-numeric-value current-prefix-arg))])
(defalias 'gnus-summary-score-crossposting #[(score date) "! !#> ˔˕O\f \fQ& +" [gnus-summary-header "xref" 0 nil group start xref error "This article is not crossposted" string-match " \\([^ 	]+\\):" 1 gnus-newsgroup-name gnus-summary-score-entry " " ":" score date t] 8])
#@61 Automatically mark articles with score below SCORE as read.
(defalias 'gnus-score-set-mark-below #[(score) "	 		 C\"\" " [score gnus-summary-default-score 0 gnus-score-set mark touched (t) gnus-summary-mark-below gnus-score-update-lines] 3 (#$ . 16405) (list (or (and current-prefix-arg (prefix-numeric-value current-prefix-arg)) (string-to-int (read-string "Mark below: "))))])
#@41 Update all lines in the summary buffer.
(defalias 'gnus-score-update-lines #[nil "ebm?  y )" [gnus-summary-update-line 1] 1 (#$ . 16808)])
#@63 Update all lines in the summary buffer, even the hidden ones.
(defalias 'gnus-score-update-all-lines #[nil "ebm   `	B y 	- 	A@b  *" [nil hidden gnus-summary-show-thread gnus-summary-update-line 1 gnus-summary-hide-thread] 2 (#$ . 16964)])
#@56 Automatically expunge articles with score below SCORE.
(defalias 'gnus-score-set-expunge-below #[(score) "	 		 C\"\"" [score gnus-summary-default-score 0 gnus-score-set expunge touched (t)] 3 (#$ . 17234) (list (or (and current-prefix-arg (prefix-numeric-value current-prefix-arg)) (string-to-int (read-string "Expunge below: "))))])
#@66 Add SCORE to all followups to the article in the current buffer.
(defalias 'gnus-score-followup-article #[(&optional score) "	!!* eb!) qP	 &+" [gnus-score-default score gnus-buffer-live-p gnus-summary-buffer mail-fetch-field "message-id" id gnus-summary-score-entry "references" "[ 	]*$" r current-time-string nil t] 9 (#$ . 17587) "P"])
#@78 Add SCORE to all later articles in the thread the current buffer is part of.
(defalias 'gnus-score-followup-thread #[(&optional score) "	!!% eb!$ q	 %+" [gnus-score-default score gnus-buffer-live-p gnus-summary-buffer mail-fetch-field "message-id" id gnus-summary-score-entry "references" s current-time-string] 7 (#$ . 17958) "P"])
(defalias 'gnus-score-set #[(symbol value &optional alist) "\n 	\n  \f\"\f  	   \"A*D 1 D ; !D \fBAB*" [alist gnus-score-alist gnus-newsgroup-score-alist assoc symbol entry read-only value error "Empty alist"] 3])
#@46 Raise the score of the current article by N.
(defalias 'gnus-summary-raise-score #[(n) " `\" \f!)`\"  A( 	( / \f\\!" [gnus-set-global-variables gnus-summary-set-score get-text-property gnus-intangible to gnus-summary-goto-subject gnus-number gnus-summary-last-subject gnus-newsgroup-scored gnus-summary-default-score 0 n gnus-score-interactive-default-score] 5 (#$ . 18570) "p"])
#@44 Set the score of the current article to N.
(defalias 'gnus-summary-set-score #[(n) "   U Ȃ+   W) 	+ \n\")`\"> !)`\"H  \\ e BB* )" [gnus-set-global-variables gnus-summary-show-thread nil buffer-read-only gnus-summary-update-mark n gnus-summary-default-score 0 32 gnus-score-below-mark gnus-score-over-mark score get-text-property gnus-intangible to gnus-summary-goto-subject gnus-number gnus-summary-last-subject article gnus-newsgroup-scored gnus-summary-update-line] 4 (#$ . 18984) "p"])
#@42 Return the score of the current article.
(defalias 'gnus-summary-current-score #[nil " `\" !)`\"  \nA, , #" [gnus-set-global-variables gnus-message 1 "%s" get-text-property gnus-intangible to gnus-summary-goto-subject gnus-number gnus-summary-last-subject gnus-newsgroup-scored gnus-summary-default-score 0] 7 (#$ . 19546) nil])
#@29 Change current score alist.
(defalias 'gnus-score-change-score-file #[(file) "	!!" [gnus-score-load-file file gnus-set-mode-line summary] 2 (#$ . 19910) (list (read-file-name "Change to score file: " gnus-kill-files-directory))])
(byte-code "	B" [gnus-score-edit-exit-function current-load-list] 2)
#@31 Edit the current score alist.
(defalias 'gnus-score-edit-current-scores #[(file) " !\f  !!!	! !	)!\"" [current-window-configuration winconf buffer-name gnus-summary-buffer gnus-score-save gnus-make-directory file-name-directory file find-file-noselect gnus-score-edit-buffer gnus-configure-windows edit-score gnus-score-mode gnus-score-edit-done gnus-score-edit-exit-function make-local-variable gnus-prev-winconf gnus-message 4 substitute-command-keys "\\<gnus-score-mode-map>\\[gnus-score-edit-exit] to save edits"] 4 (#$ . 20224) (list gnus-current-score-file)])
#@20 Edit a score file.
(defalias 'gnus-score-edit-file #[(file) "\n!!\f!   \n!	! !)!\"" [gnus-make-directory file-name-directory file buffer-name gnus-summary-buffer gnus-score-save current-window-configuration winconf find-file-noselect gnus-score-edit-buffer gnus-configure-windows edit-score gnus-score-mode gnus-score-edit-done gnus-score-edit-exit-function make-local-variable gnus-prev-winconf gnus-message 4 substitute-command-keys "\\<gnus-score-mode-map>\\[gnus-score-edit-exit] to save edits"] 4 (#$ . 20830) (list (read-file-name "Edit score file: " gnus-kill-files-directory))])
(defalias 'gnus-score-load-file #[(file) "!P\f!\" \f !\fP!\f\"\f	\n\f9 Am \f!P DB\nd d DB\fBB @@; @@@At  C\f*   \"A*@   \"A*@   \"A*@ \"A*   \"A*99 \"A*@SS \"A*ll \"A*@ \"A*@ \"A* \"A*@! \n\fB\"#\f!\n!!\"'' I(q H @:? @@9? @@! @@ @A@L A )R*뚃a,-oˉ,:},-/00112233.\f4\f-" [expand-file-name string-match "^" gnus-kill-files-directory file file-name-as-directory assoc gnus-score-cache cached gnus-internal-global-score-files global nil lists alist gnus-score-alist gnus-score-load-score-alist touched read-only t found a mark symbol gnus-newsgroup-score-alist expunge mark-and-expunge files exclude-files orphan adapt thread-mark-and-expunge adapt-file local eval apply append mapcar #[(file) "	!" [gnus-score-load-file file] 2] #[(sfile) "	!\"" [expand-file-name sfile file-name-directory file] 4] gnus-scores-exclude-files gnus-summary-buffer make-local-variable gnus-orphan-score (t) gnus-newsgroup-adaptive gnus-default-adaptive-score-alist (ignore) gnus-adaptive-score-alist gnus-thread-expunge-below gnus-summary-mark-below gnus-summary-expunge-below gnus-newsgroup-adaptive-score-file gnus-current-score-file] 14])
(defalias 'gnus-score-load #[(file) "	\n\" A% 	!\f !	\fB\nB)" [assoc file gnus-score-cache cache gnus-score-alist nil gnus-score-load-score-alist copy-alist ((touched nil))] 4])
(defalias 'gnus-score-remove-from-cache #[(file) "\n\"\"" [delq assoc file gnus-score-cache] 4])
(defalias 'gnus-score-load-score-alist #[(file) "! ?  !eb#)( ˏ)	@=7 	!9 	\f\")" [nil alist file-readable-p file gnus-score-alist gnus-set-work-buffer insert-file-contents re-search-forward "[()0-9a-zA-Z]" t (byte-code "p!" [read] 2) ((error (byte-code "# !Ǉ" [gnus-message 3 "Problem with score file %s" file ding sit-for 2 nil] 4))) setq gnus-score-transform-old-to-new gnus-score-check-syntax] 4])
#@38 Check the syntax of the score ALIST.
(defalias 'gnus-score-check-syntax #[(alist file) " : # 	\n 	 @<? @# @@; @A\n<^ @A@# @@\n 	 \nA\n@ϝ @? @;? @# A@ A@ A@# AA@ AA@ AA@# AAA@ AAA@9? AAA@#	d 		A) 	 	\"!-" [alist nil gnus-message 1 "Score file is not a list: %s" file ding type s err sr a format "Illegal score element %s in %s" "Illegal header match %s in %s" ("lines" "chars") "Illegal match %s in %s" "Non-integer score %s in %s" "Non-integer date %s in %s" "Non-symbol match type %s in %s" 3 sit-for 2] 6 (#$ . 23841)])
(defalias 'gnus-score-transform-old-to-new #[(alist) "	8	@= 	A@	| 	@@;c \fA\fB_ @@@8@8F @8!@A@R ɂS FA- )u \fA<q \f@\fADr \fB	A D+B" [2 alist nil out entry quote scor 3 gnus-day-number r s touched t] 7])
(defalias 'gnus-score-save #[nil "!qp!		 	@		A	@	A\f\fA A  \"A*Ϛ \f\f^ ^  \"A* !r ! 	\" !P\" p\" p\")!!  U ! ! ed%# #!$ $\" ! +p!*" [gnus-score-cache cache nil gnus-score-alist get-buffer-create "*Score*" buffer-disable-undo file score entry touched alist symbol assoc gnus-newsgroup-score-alist (t) read-only file-exists-p file-writable-p delq erase-buffer emacs-lisp-mode-hook string-match regexp-quote gnus-adaptive-file-suffix "$" prin1 pp gnus-make-directory file-name-directory buffer-size 0 delete-file write-region silent gnus-score-after-write-file-function gnus-score-uncacheable-files gnus-score-remove-from-cache kill-buffer] 6])
(defalias 'gnus-score-headers #[(score-files &optional trace) "0 @;! @!\n' @\nA d \n	c 	@\"Z @Z 	@\n\"	A	> *\n	]	f \nf  ! Z\"A@ H   B\fB !qp! \"A@&!,A@@\"A@&\n\"\"W 8\n-% 	B p!)\fS\f@AUL\f@@H\f@AB B \fA5\".f *" [nil news scores gnus-orphan-score gnus-scores-articles gnus-scores-exclude-files score-files gnus-score-load-file c s rassq gnus-score-cache delq gnus-summary-default-score gnus-header-index entries gnus-day-number current-time-string now gnus-score-expiry-days expire gnus-newsgroup-headers headers gnus-current-score-file current-score-file entry header new gnus-message 5 "Scoring..." 0 gnus-newsgroup-scored get-buffer-create "*Headers*" buffer-disable-undo assoc "references" gnus-score-index gnus-score-orphans apply max mapcar #[(score) "	\n   \"A*G" [header score alist symbol assoc gnus-score-alist gnus-newsgroup-score-alist] 3] 2 trace kill-buffer "Scoring...done"] 7])
(defalias 'gnus-get-new-thread-ids #[(articles) "\n\"A@ĉ	\nC @@\nH@	HA̘ B ." [assoc "message-id" gnus-header-index gnus-score-index nil tref this art id-list refind index articles ""] 7])
(defalias 'gnus-score-orphans #[(score) "	!	\n	\" i @@HAϘ\" \fM 	B	\" \f_ \fб`S`	$C	\" \f{ \fб`S`	$\n \n@\nA\neb#{ y! eb`\" @AA\\ y=  ." [gnus-get-new-thread-ids gnus-scores-articles nil this-id last this arts art articles alike new-thread-ids sort gnus-score-string< erase-buffer gnus-score-index "" 10 put-text-property search-forward t 0 kill-line 1 get-text-property score] 9])
(defalias 'gnus-score-integer #[(scores header now expire &optional trace) "	\n\"A@É@A	\f\"A\f A@	@\n	88 	A@C 	8=q =q =q =q =v { \" @@H \n\"  \f\"	B B @@A\\A   \" \f#	AA& ' 'W \f#A.	 +Ç" [assoc header gnus-header-index nil alist entries gnus-score-index scores rest kill match 3 > type gnus-score-interactive-default-score score 2 date found < <= >= = error "Illegal match type: %s" match-func gnus-scores-articles articles 0 trace rassq gnus-score-cache gnus-score-trace t gnus-update-score-entry-dates gnus-score-set touched (t) now expire (t)] 5])
(defalias 'gnus-score-date #[(scores header now expire &optional trace) "	\n\"A@É@A	\f\"A\f A@		@!	8; 	A@F 	8=\\ Ղw =g ւw =r ؂w \" @@H !\"  \f!\"	B\"B\"@@A\\A  $ \f#	AA())W\f#A.\n +Ç" [assoc header gnus-header-index nil alist entries gnus-score-index scores rest kill timezone-make-date-sortable match 3 before type gnus-score-interactive-default-score score 2 date found after string< gnus-string> at string= error "Illegal match type: %s" match-func gnus-scores-articles articles l trace rassq gnus-score-cache gnus-score-trace t gnus-update-score-entry-dates gnus-score-set touched (t) now expire (t)] 5])
(defalias 'gnus-score-body #[(scores header now expire &optional trace) "q\n\"\n	ʘ ˂* 	̘) ͂* AO AB @@H\n!\"o !ՕO!\"| @@H$\"~eb = `# d} # `d}@A	\"A A#@$@%$8 ($A@	)*$8,-(=-(=-(=-(=?2(=L(=L(=L(=Pu(=l(=l(=l(=p߂u(\"9eb9%#@*@A\\-:<\"$B=B=,->@ A #$AABC,CW@ D ##A##.	 A .ć" [nntp-server-buffer sort gnus-scores-articles #[(a1 a2) "@H\n@HW" [a1 0 a2] 3] nil buffer-read-only articles scores all-scores header "head" gnus-request-head "body" gnus-request-body gnus-request-article request-func entries alist ofunc article last 0 gnus-check-backend-function string-match "^gnus-" symbol-name intern gnus-newsgroup-name gnus-message 7 "Scoring on article %s of %s..." search-forward "\n\n" t assoc rest kill match 3 s type gnus-score-interactive-default-score score 2 date found R S Regexp String case-fold-search r regexp re-search-forward string error "Illegal match type: %s" search-func trace rassq gnus-score-cache gnus-score-trace gnus-update-score-entry-dates gnus-score-set touched (t) now expire (t)] 6])
(defalias 'gnus-score-followup #[(scores header now expire &optional trace thread) "	\n\"A@\fŉ	\n\fq: \"!)\"  @@H\fA\fr BJ  ܱ`S`$C\fJ  ܱ`S`$\f)\f@	\fA		\"\n\nA \nA@@ 8 #A@ $%8'(#!H+U	+U	+U	+U?0+1U91U01U01U49#\":;eb1U: #y`U`U`\";(;;@;A;@%?$rK: #`\";(;A;@@%?$B' (@A B C 	#AAD E 'EW A B F 	#\nA\n\n. q!)G .\fBC" [assoc header gnus-header-index gnus-current-score-file scores nil news new articles alist entries art this last alike all-scores current-score-file gnus-score-index gnus-summary-buffer gnus-score-load-file gnus-newsgroup-adaptive-score-file gnus-score-file-name gnus-newsgroup-name gnus-adaptive-file-suffix sort gnus-scores-articles gnus-score-string< erase-buffer 10 put-text-property rest kill match 3 s type gnus-score-interactive-default-score score 2 date found symbol-name 0 mt 82 83 69 70 case-fold-search dmt 114 re-search-forward 101 115 102 search-forward error "Illegal match type: %s" search-func arts t get-text-property gnus-score-add-followups thread gnus-update-score-entry-dates gnus-score-set touched (t) now expire (t) "references"] 13])
#@38 Add a score entry to the adapt file.
(defalias 'gnus-score-add-followups #[(header score scores &optional thread) "q	H\f@\fA@F @Ț A@88 A@8= \"  ?a V ςW  &-" [gnus-summary-buffer header 4 id scores nil entry dont "references" 3 s assoc t gnus-summary-score-entry thread "thread" score current-time-string] 8 (#$ . 31787)])
(defalias 'gnus-score-string #[(score-list header now expire &optional trace) "	\n\"A@É	\n\f\" v @	@H\nA\nV 	\fB\f. j ұ`S`\f$	C\f\n.  ұ`S`\f$|@A	\"A A@@8 A@ 8!H\"U \"U \"U \"U?'\"(U (U(U(U \"12	(U4seb(Um11#1y`U`U`\"2522@	2A2		A\\7\"B8B8n22@	2A2		A\\y>m11#1b`\"252+2A2@		A\\7\"B8B82+2A2@		A\\ysR<R#AA@sAsAWsB #A. \fC  @A	\"AA@@8A@8!H\"U?'\"(2	(Uebmf#fy`U``U``\"25F2`2A2@		A\\7\"B8B82`2A2@		A\\Fy5<D #AA@AAWE #A.\f.\nÇ" [assoc header gnus-header-index nil fuzzy scores articles alist entries art this last alike gnus-score-index sort gnus-scores-articles gnus-score-string< erase-buffer 10 put-text-property score-list rest kill match 3 s type gnus-score-interactive-default-score score 2 date found symbol-name 0 mt 82 83 69 70 case-fold-search dmt 114 re-search-forward 101 115 102 search-forward error "Illegal match type: %s" search-func arts t get-text-property trace rassq gnus-score-cache gnus-score-trace 1 "" "\n" gnus-update-score-entry-dates gnus-score-set touched (t) now expire (t) gnus-simplify-buffer-fuzzy (t) (t)] 11])
(defalias 'gnus-score-string< #[(a1 a2) "@	H\n@	H" [a1 gnus-score-index a2] 3])
(defalias 'gnus-score-build-cons #[(article) "@HAB" [article 0] 2])
(defalias 'gnus-current-score-file-nondirectory #[(&optional score-file) " 	 !! )" [score-file gnus-current-score-file gnus-short-group-name file-name-nondirectory "none"] 4])
(defalias 'gnus-score-adaptive #[nil "	! 	\n\n \n@	@9, 	@J	A	} 	@	@@=E ͂K 	@@!	@AB	@	@@=f ӂm 	@@!P!BE	A	5 \nA q \"!)+@A@A	!@8:!@8\n!	!	@@\n!	@A@ ݂	@A@ޚ ߂  G W 	@A@⚃\f	@8&	A	 A ." [gnus-copy-sequence gnus-adaptive-score-alist malist alist current-time-string date gnus-newsgroup-data data nil elem headers match followup "references" symbol-name lambda (h) intern "mail-header-" "message-id" (h) gnus-summary-buffer gnus-score-load-file gnus-newsgroup-adaptive-score-file gnus-score-file-name gnus-newsgroup-name gnus-adaptive-file-suffix 3 gnus-summary-score-entry = "date" a gnus-score-exact-adapt-limit e "subject" f s 2 t] 9])
(defalias 'gnus-score-edit-done #[nil "p!	\n \n!!!*" [buffer-file-name gnus-prev-winconf winconf bufnam set-window-configuration gnus-score-remove-from-cache gnus-score-load-file] 2])
#@59 Find all score rules that applies to the current article.
(defalias 'gnus-score-find-trace #[nil "`\" !)`\"  8Cp	\n\f!6 q )!	L \"z !  	s 	@A	@@!#c	A	[ eb\n!," [3 get-text-property gnus-intangible to gnus-summary-goto-subject gnus-number gnus-summary-last-subject gnus-newsgroup-data nil trace buf gnus-newsgroup-scored gnus-newsgroup-headers get-buffer "*Gnus Scores*" erase-buffer gnus-score-trace gnus-possibly-score-headers gnus-error 1 "No score rules apply to the current article." pop-to-buffer gnus-add-current-to-buffer-list format "%S  ->  %s\n" file-name-nondirectory] 6 (#$ . 35211) nil])
#@57 Redo the entire scoring process in the current summary.
(defalias 'gnus-summary-rescore #[nil "   " [gnus-score-save nil gnus-score-cache gnus-newsgroup-scored gnus-possibly-score-headers gnus-score-update-all-lines] 1 (#$ . 35888) nil])
#@33 Flush the cache of score files.
(defalias 'gnus-score-flush-cache #[nil " \"" [gnus-score-save nil gnus-score-cache gnus-score-alist gnus-short-name-score-file-cache gnus-message 6 "The score cache is now flushed"] 3 (#$ . 36142) nil])
(byte-code "\"! BŇ" [gnus-add-shutdown gnus-score-close gnus boundp gnus-score-file-alist-cache nil current-load-list] 3)
#@37 Clear all internal score variables.
(defalias 'gnus-score-close #[nil "" [nil gnus-score-cache gnus-internal-global-score-files gnus-score-file-list gnus-score-file-alist-cache] 2 (#$ . 36534)])
#@75 Raise articles which has the same subject with SCORE and select the next.
(defalias 'gnus-summary-raise-same-subject-and-select #[(score) "`\" !)`\"  8- !- H)!!D !5 !)" [3 get-text-property gnus-intangible to gnus-summary-goto-subject gnus-number gnus-summary-last-subject gnus-newsgroup-data headers vectorp 1 subject gnus-summary-raise-score score gnus-summary-find-subject gnus-summary-next-article t] 5 (#$ . 36745) "p"])
#@55 Raise articles which has the same subject with SCORE.
(defalias 'gnus-summary-raise-same-subject #[(score) "`\" !)`\"  8- !- H)!!D !5 \")" [3 get-text-property gnus-intangible to gnus-summary-goto-subject gnus-number gnus-summary-last-subject gnus-newsgroup-data headers vectorp 1 subject gnus-summary-raise-score score gnus-summary-find-subject gnus-summary-next-subject t] 5 (#$ . 37224) "p"])
(defalias 'gnus-score-default #[(level) " !\n" [level prefix-numeric-value gnus-score-interactive-default-score] 2])
#@67 Raise the score of the articles in the current thread with SCORE.
(defalias 'gnus-summary-raise-thread #[(&optional score) "	!  @!	!A )`)	\"!1 b*  !" [gnus-score-default score nil e gnus-summary-articles-in-thread articles gnus-summary-goto-subject gnus-summary-raise-score t gnus-summary-check-current zerop gnus-summary-next-subject 1 gnus-summary-recenter gnus-summary-position-point gnus-set-mode-line summary] 5 (#$ . 37798) "P"])
#@75 Raise articles which has the same subject with SCORE and select the next.
(defalias 'gnus-summary-lower-same-subject-and-select #[(score) "	[!" [gnus-summary-raise-same-subject-and-select score] 2 (#$ . 38277) "p"])
#@55 Raise articles which has the same subject with SCORE.
(defalias 'gnus-summary-lower-same-subject #[(score) "	[!" [gnus-summary-raise-same-subject score] 2 (#$ . 38501) "p"])
#@59 Lower score of articles in the current thread with SCORE.
(defalias 'gnus-summary-lower-thread #[(&optional score) "\n!S[!" [gnus-summary-raise-thread gnus-score-default score] 3 (#$ . 38683) "P"])
#@44 Return a list of all possible score files.
(defalias 'gnus-score-score-files #[(group) "\f 	\f !\f!\f!! ǉ!? 9 \"\f!\"Bb S @S \f@\"b \f!8\f #BA" [gnus-global-score-files gnus-internal-global-score-files gnus-score-search-global-directories file-name-as-directory gnus-kill-files-directory file-exists-p expand-file-name nil gnus-score-file-list gnus-use-long-file-name not-score gnus-short-name-score-file-cache gnus-message 6 "Finding all score files..." gnus-score-score-files-1 "Finding all score files...done" gnus-file-newer-than 5 file-attributes directory-files t gnus-score-file-regexp] 5 (#$ . 38890)])
#@44 Return all possible score files under DIR.
(defalias 'gnus-score-score-files-1 #[(dir) "\n!$ ĉ		A	@P !˝ != ! \" B W C," [directory-files expand-file-name dir t nil gnus-score-file-regexp file out regexp files file-name-nondirectory ("." "..") file-directory-p gnus-score-score-files-1 string-match "~/News/this.file.does.not.exist.SCORE"] 5 (#$ . 39566)])
#@45 Return a regexp that match all score files.
(defalias 'gnus-score-file-regexp #[nil "\n!\f!Ű" ["\\(" regexp-quote gnus-score-file-suffix "\\|" gnus-adaptive-file-suffix "\\)\\'"] 5 (#$ . 39989)])
#@147 Return a list of score files for GROUP.
The score files are those files in the ~/News/ directory which matches
GROUP using BNews sys file syntax.
(defalias 'gnus-score-find-bnews #[(group) "\n!\"!!G	 A!qp!\f \f@cebP#ى#eb!!g dS	^!s db!`Te|eb ! Q# ى# )eb! !uceb# ى# eb# ى# eb! d{ d{ \n\"\f\n\"\f@B\fA5 p!\n!33\"B).	" [append gnus-score-score-files group gnus-internal-global-score-files sfiles file-name-as-directory expand-file-name gnus-kill-files-directory kill-dir klen gnus-score-file-regexp score-regexp 58 nnheader-file-name-translation-alist trans nil ofiles not-match regexp get-buffer-create "*gnus score files*" buffer-disable-undo erase-buffer re-search-forward "." t replace-match "" looking-at regexp-quote delete-char search-backward "/" "[/:" char-to-string "]" "nn[a-z]+\\+" search-forward "+" -1 "\\" "++" "\\+\\+" "all" ".*" "not." 5 1 string-match kill-buffer gnus-score-file-name localscore delete] 5 (#$ . 40199)])
#@50 Return list containing the score file for GROUP.
(defalias 'gnus-score-find-single #[(group) " \n\"\n!D" [gnus-newsgroup-adaptive-score-file gnus-score-file-name group gnus-adaptive-file-suffix] 3 (#$ . 41338)])
#@103 Return list of score files for GROUP.
This includes the score file for the group and all its parents.
(defalias 'gnus-score-find-hierarchical #[(group) "!T# O\fB \fB\f\"\f\"*" [copy-sequence (nil) 0 start all string-match "\\." group mapcar #[(newsgroup) "	\n\"" [gnus-score-file-name newsgroup gnus-adaptive-file-suffix] 3] gnus-score-file-name] 4 (#$ . 41564)])
#@103 Return list of score files for GROUP.
The list is determined from the variable gnus-score-file-alist.
(defalias 'gnus-score-find-alist #[(group) "\" \nAY / @@\"( \n@A!A 	P @@\"I \n@A!A6 \nBB\n*" [gnus-score-file-multiple-match-alist nil score-files alist assoc group gnus-score-file-alist-cache string-match copy-sequence gnus-score-file-single-match-alist] 4 (#$ . 41971)])
(defalias 'gnus-possibly-score-headers #[(&optional trace) " < C !I @9, !7 <7 @=)B \n@!A \"X \nB)\nb \n\"*" [gnus-score-find-score-files-function nil score-files funcs gnus-score-find-alist gnus-newsgroup-name form fboundp lambda gnus-group-get-parameter score-file param-file gnus-score-headers trace] 4])
#@48 Return the name of a score file for NEWSGROUP.
(defalias 'gnus-score-file-name #[(newsgroup &optional suffix) " 	 Ę \"6 !, !Q\"6 !Q\"!)" [suffix gnus-score-file-suffix nnheader-translate-file-chars newsgroup "" expand-file-name gnus-kill-files-directory gnus-use-long-file-name not-score gnus-newsgroup-savable-name "." gnus-newsgroup-directory-form "/"] 5 (#$ . 42771)])
#@52 Scan all global score directories for score files.
(defalias 'gnus-score-search-global-directories #[(files) "\n' \n@\" \n@ P#  \n@	B\nA 		)" [nil out files string-match "/$" directory-files t gnus-score-file-regexp "$" gnus-internal-global-score-files] 6 (#$ . 43185) (list gnus-global-score-files)])
#@44 Toggle folding for new score file entries.
(defalias 'gnus-score-default-fold-toggle #[nil "?\f \"\"" [gnus-score-default-fold gnus-message 1 "New score file entries will be case insensitive." "New score file entries will be case sensitive."] 4 (#$ . 43514) nil])
(provide (quote gnus-score))
