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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310DD\311\312\313\314\303&\207" [require cl-lib seq kmacro custom-declare-variable edmacro-eight-bits funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil if `edit-kbd-macro' should leave 8-bit characters intact.\nDefault nil means to write characters above \\177 in octal notation." :type boolean :group] 8)
(defvar edmacro-mode-map (define-keymap "C-c C-c" 'edmacro-finish-edit "C-c C-q" 'edmacro-insert-key))
(custom-declare-face 'edmacro-label '((default :inherit bold) (((class color) (background dark)) :foreground "light blue") (((min-colors 88) (class color) (background light)) :foreground "DarkBlue") (((class color) (background light)) :foreground "blue") (t :inherit bold)) "Face used for labels in `edit-kbd-macro'." :version "29.1" :group 'kmacro)
(defvar edmacro-mode-font-lock-keywords (byte-code "\300\301B\302\303\304\305\306\307B\257\310\311BE\207" ["^\\(\\(?:Command\\|Key\\|Macro\\):\\)" (0 'edmacro-label) "^\\(;; Keyboard Macro Editor\\.  Press \\)\\(.*?\\)\\( to finish; press \\)" (1 'font-lock-comment-face) (2 'help-key-binding) (3 'font-lock-comment-face) "\\(.*?\\)\\( to cancel.*\\)" (nil nil (1 'help-key-binding) (2 'font-lock-comment-face)) ";+.*" (0 'font-lock-comment-face)] 7))#@436 Edit a keyboard macro.
At the prompt, type any key sequence which is bound to a keyboard macro.
Or, type `\[kmacro-end-and-call-macro]' or \`RET' to edit the last
keyboard macro, `\[view-lossage]' to edit the last 300
keystrokes as a keyboard macro, or `\[execute-extended-command]'
to edit a macro by its command name.
With a prefix argument, format the macro in a more concise way.

(fn KEYS &optional PREFIX FINISH-HOOK STORE-HOOK)
(defalias 'edit-kbd-macro #[1025 "\205\302\306!\203 \307!\202 \306!\205 \307\310\311#\310\211\211\203- \262\310\262\202\270 \312>\204@ \313>\204@ \314\235\203] \204M \315\316!\204M \317 \210\206R \320\262\310\262	\300\262\202\270 \321D>\203~ \322\323!\262\320\230\203t \324\325!\210\310\262	K\262\202\270 \326>\204\212 \327>\203\227 \330 \262\310\262	\300\262\202\270 \204\246 \324\331\332!\"\210\202\270 9\203\262 K\262\202\270 \262\310\262\333!\203\315 \334!\262\335!\262\336!\262\306!\204\333 \324\337\332!\"\210\340\341!\210p\342!\343\344\"\343\f?\"\345\346!\340\347!\210\350!\210\351 \210\352	!\210\310\353\354\355\305!\210\355\356!\210.\355\357!\210\n/\355\360!\210\3610\310@\362 \210\363\364\365\"c\210\366\367\261\210\n\204\230\370\n\203F\371!\202G\372\367\261\210\373\n\206S\374\"\203g\235\204gB\262\211\203\200\211\203\203\375\343\211A\262\242\344\"\367\261\210\202k\376c\210\210\203\230\203\230\377\201A #c\210\201B c\210\212\367\261)\210\201C \201D !\210=\203\271\201E \310!\210\201F \201G !\266\212\207" [last-kbd-macro edmacro-mode-map buffer-read-only major-mode mode-name edmacro-original-buffer arrayp key-binding nil t (call-last-kbd-macro kmacro-call-macro kmacro-end-or-call-macro kmacro-end-and-call-macro) (call-last-kbd-macro kmacro-call-macro kmacro-end-or-call-macro kmacro-end-and-call-macro) ("" [return]) y-or-n-p "No keyboard macro defined.  Create one?" keyboard-quit "" execute-extended-command read-command "Name of keyboard macro to edit: " error "No command name given" (view-lossage electric-view-lossage) (view-lossage electric-view-lossage) recent-keys "Key sequence %s is not defined" key-description kmacro-p kmacro--counter kmacro--format kmacro--keys "Key sequence %s is not a keyboard macro" message "Formatting keyboard macro..." edmacro-fix-menu-commands edmacro-format-keys 1 get-buffer-create "*Edit Macro*" "Formatting keyboard macro...done" switch-to-buffer kill-all-local-variables use-local-map edmacro-mode "Edit Macro" make-local-variable edmacro-finish-hook edmacro-store-hook font-lock-defaults (edmacro-mode-font-lock-keywords nil nil ((34 . "w"))) erase-buffer substitute-command-keys ";; Keyboard Macro Editor.  Press \\[edmacro-finish-edit] to finish; press \\[kill-buffer] \\`RET' to cancel.\n" no-face ";; Original keys: " "\n" "\nCommand: " symbol-name "none" where-is-internal (keymap) "Key: " "Key: none\n" format font-lock-multiline "Counter: %d\nFormat: \"%s\"\n" "\nMacro:\n\n" recenter (4) set-buffer-modified-p run-hooks edmacro-format-hook] 19 (#$ . 1368) (byte-code "\301\302\303!!D\207" [current-prefix-arg read-key-sequence substitute-command-keys "Keyboard macro to edit (\\[kmacro-end-and-call-macro], \\[execute-extended-command], \\[view-lossage], or keys): "] 3)])#@71 Edit the most recently defined keyboard macro.

(fn &optional PREFIX)
(defalias 'edit-last-kbd-macro #[256 "\300\301\"\207" [edit-kbd-macro call-last-kbd-macro] 4 (#$ . 4667) "P"])#@100 Edit a keyboard macro which has been given a name by `name-last-kbd-macro'.

(fn &optional PREFIX)
(defalias 'edit-named-kbd-macro #[256 "\300\301\"\207" [edit-kbd-macro execute-extended-command] 4 (#$ . 4855) "P"])#@616 Read the region as a keyboard macro definition.
The region between START and END is interpreted as spelled-out keystrokes,
e.g., "M-x abc RET".  See documentation for `edmacro-mode' for details.
Leading/trailing "C-x (" and "C-x )" in the text are allowed and ignored.
The resulting macro is installed as the "current" keyboard macro.

In Lisp, may also be called with a single STRING argument in which case
the result is returned rather than being installed as the current macro.
The result is a vector of input events.
Second argument NEED-VECTOR means to return an event vector always.

(fn START &optional END)
(defalias 'read-kbd-macro #[513 ";\203\n \301\"\207\301{!\211\207" [last-kbd-macro edmacro-parse-keys] 5 (#$ . 5078) "r"])#@331 Return the keyboard macro MACRO as a human-readable string.
This string is suitable for passing to `read-kbd-macro'.
Second argument VERBOSE means to put one command per line with comments.
If VERBOSE is `1', put everything on one line.  If VERBOSE is omitted
or nil, use a compact 80-column format.

(fn &optional MACRO VERBOSE)
(defalias 'format-kbd-macro #[512 "\203 9\203 K\262\301\206 \"\207" [last-kbd-macro edmacro-format-keys] 5 (#$ . 5828)])
(defalias 'edmacro-finish-edit #[0 "\306=\204\n \307\310!\210\311\304!\210\312\211\211\211\211e\211b\210\312\313\314!\204*\313\315!\203i \n\203- \307\316!\210\317\320!\211\321\232\204e \211\322\232?\205@ \323!\262\324!\203e \325K!\204e \326N\204e \327\330\331	\"!\204e \332 \210\210\202*\313\333!\203\325 \n\203w \307\334!\210\335\317\320!!\211\321\232\204\321 \211\322\232\203\217 \336\262\210\202*\211B\262\337!\211\203\320 \340!\203\320 \325!\204\320 \341!\204\320 \324!\203\301 \325K!\204\320 \211\326N\204\320 \327\330\342\343\320\"\"!\204\320 \332 \210\210\210\202*\313\344!\203\365 \n\203\343 \307\345!\210\317\320!\211\321\232\204\361 \346!\262\210\202*\313\347!\203\n\203\307\350!\210\317\320!\211\321\232\204\211\262\210\202*\313\351!\203 \352\225b\210\2020m\2040\307\353!\2030\320y\210\202 `)\262pd{\354 \n\f\204U\n\204U\204U\321\232\204U\307\355!\210\203\"\356!\203bq\210\357\360!\210\361!\357\362!\210\203y!\266\202\"\f\305=\203\214\211G\352V\205\210\211\312\262\f\203\253\211G\352U\203\240\363!\210\202\253\f\326\f\f#M\210\n\203\324\f\203!\364\365\"\312:\203\317@\262\366!\210A\262\202\273\266\202\"\203!\211G\352U\203\374\312:\203\367@\262\366!\210A\262\202\343\266\202\"\312:\203@\262\367\206\326#\"\210A\262\202\377\266\210\370!\210\356!\2031\371!\210\211\2057\211 \207" [major-mode case-fold-search edmacro-store-hook edmacro-original-buffer edmacro-finish-hook last-kbd-macro edmacro-mode error "This command is valid only in buffers created by `edit-kbd-macro'" run-hooks nil looking-at "[ 	]*\\($\\|;;\\|REM[ 	\n]\\)" "Command:[ 	]*\\([^ 	\n]*\\)[ 	]*$" "\"Command\" line not allowed in this context" match-string 1 "" "none" intern fboundp arrayp kmacro y-or-n-p format "Command %s is already defined; proceed?" keyboard-quit "Key:\\(.*\\)$" "\"Key\" line not allowed in this context" kbd t key-binding commandp kmacro-p "Key %s is already defined; proceed?" edmacro-format-keys "Counter:[ 	]*\\([^ 	\n]*\\)[ 	]*$" "\"Counter\" line not allowed in this context" string-to-number "Format:[ 	]*\"\\([^\n]*\\)\"[ 	]*$" "\"Format\" line not allowed in this context" "Macro:[ 	\n]*" 0 "Expected a `Macro:' line" buffer-modified-p "No command name or keys specified" buffer-name message "Compiling keyboard macro..." edmacro-parse-keys "Compiling keyboard macro...done" fmakunbound where-is-internal (keymap) global-unset-key global-set-key kill-buffer switch-to-buffer] 21 nil [nil (edmacro-mode)]])#@59 Insert the written name of a KEY in the buffer.

(fn KEY)
(defalias 'edmacro-insert-key #[257 "n\203\f \300\301\"\302\261\207\300!\303\261\207" [edmacro-format-keys t "\n" " "] 4 (#$ . 8851) ["kKey to insert: " (edmacro-mode)]])#@3094 \<edmacro-mode-map>Keyboard Macro Editing mode.  Press \[edmacro-finish-edit] to save and exit.
To abort the edit, just kill this buffer with \[kill-buffer] \`RET'.

Press \[edmacro-insert-key] to insert the name of any key by typing the key.

The editing buffer contains a "Command:" line and any number of
"Key:" lines at the top.  These are followed by a "Macro:" line
and the macro itself as spelled-out keystrokes: `C-x C-f foo RET'.

The "Command:" line specifies the command name to which the macro
is bound, or "none" for no command name.  Write "last-kbd-macro"
to refer to the current keyboard macro (as used by \[call-last-kbd-macro]).

The "Key:" lines specify key sequences to which the macro is bound,
or "none" for no key bindings.

You can edit these lines to change the places where the new macro
is stored.


Format of keyboard macros during editing:

Text is divided into "words" separated by whitespace.  Except for
the words described below, the characters of each word go directly
as characters of the macro.  The whitespace that separates words
is ignored.  Whitespace in the macro must be written explicitly,
as in "foo SPC bar RET".

 * The special words RET, SPC, TAB, DEL, LFD, ESC, and NUL represent
   special control characters.  The words must be written in uppercase.

 * A word in angle brackets, e.g., <return>, <down>, or <f1>, represents
   a function key.  (Note that in the standard configuration, the
   function key <return> and the control key RET are synonymous.)
   You can use angle brackets on the words RET, SPC, etc., but they
   are not required there.

 * Keys can be written by their ASCII code, using a backslash followed
   by up to six octal digits.  This is the only way to represent keys
   with codes above \377.

 * One or more prefixes M- (meta), C- (control), S- (shift), A- (alt),
   H- (hyper), and s- (super) may precede a character or key notation.
   For function keys, the prefixes may go inside or outside of the
   brackets:  C-<down> = <C-down>.  The prefixes may be written in
   any order:  M-C-x = C-M-x.

   Prefixes are not allowed on multi-key words, e.g., C-abc, except
   that the Meta prefix is allowed on a sequence of digits and optional
   minus sign:  M--123 = M-- M-1 M-2 M-3.

 * The `^' notation for control characters also works:  ^M = C-m.

 * Double angle brackets enclose command names:  <<next-line>> is
   shorthand for M-x next-line RET.

 * Finally, REM or ;; causes the rest of the line to be ignored as a
   comment.

Any word may be prefixed by a multiplier in the form of a decimal
number and `*':  3*<right> = <right> <right> <right>, and
10*foo = foofoofoofoofoofoofoofoofoofoo.

Multiple text keys can normally be strung together to form a word,
but you may need to add whitespace if the word would look like one
of the above notations:  `; ; ;' is a keyboard macro with three
semicolons, but `;;;' is a comment.  Likewise, `\ 1 2 3' is four
keys but `\123' is a single key written in octal, and `< right >'
is seven keys but `<right>' is a single function key.  When in
doubt, use whitespace.
(defalias 'edmacro-mode #[0 "\300\301!\207" [error "This mode can be enabled only by `edit-kbd-macro'"] 2 (#$ . 9091) nil])
(put 'edmacro-mode 'mode-class 'special)#@32 

(fn MACRO &optional VERBOSE)
(defalias 'edmacro-format-keys #[513 "\303!\262\304 \305\306\233\203 \307\202 \310\311\312\313\314\"\315\316\317=\211\203) \311\262\n\n;\203T \316GW\203R H\320Y\203K H\321\\I\210T\262\2023 \266\316H\322=\204O\316H\250\203\252 \316H>\203\252 \323\324\316\317#!\325>\203\252 \317HA>\203\212 \211T\262\202y H	>?\205\245 \313\326\324\316#\327#\324\"\262\262\206>\316H\330=\203\366 \323\331!\332=\203\366 \317H\330=\203\312 \211T\262\202\273 H	>?\205\361 \211\315S\211\262\316Y\203\350 \211\333P\262\202\326 \262\324\"\262\262\206>\316H\330=\205>\323\334!\332=\205>\317\317H\335=\203\336\262H\337>\203!\211T\262\202H	>?\205<\313\333\324\317#\327#\324\"\262\262\340\341\317\f\311\211\211\211:\203j@\262\342\"\262\203`B\262A\262\311\262\202G\237\266\205#\324\316#\311\211\211\311\211\211\211\211:\203\252@\262\342\"\262\250?\205\226\211\262?\211\262\203\252A\262\311\262\202\266\205\206\342\n\"\211\262\205\262\324\n\316#\262\342\n\"\211\262\205\311\211\343\311\211:\203@\262\342\n\"\262\250\204\203\262\262\n\262\311\211\262\202\343\203A\262\311\262\202\326\203\311\262	\266\311\202\211\266\206\316H\fG\311\211W\203\200H\262\250\203\200\344V\203\200W\203\200\345U\204\200\323\346!!\347=\203\200G\336ZV\204vTH=\203v\336\\H=\204\200T\262\311\262\202)\266\204\311;\203\214\311\262\347=\203	\204\317V\203\250\203\344V\203X\203\345U\204\350V\203\276\350\262\324\316#\260\262\351\352\"\203\330\336\262\211\316\336O\262\351\353\"\204\351\354\"\204\355\211\235\203\364\355\346\327#\262\203 \356\357#\262\262	\202X\360=\203G	V\203GH\361>\203G\324\n#\260\262\362\363!!\203G\362\363!!\203:\211\262\356\364\"\262T\262	\202X\355\365\366\"\206T	\327#\262	\203e\367\n!P\262\370\327\"\204\250\317	\371\211\372\316\373\374\375\\&\n\204\223T\262\211\\\262\202o\317V\203\246\356\376#\262\n_\262\266\324\n\"\262\203\n\f\315\232\204\302\f\377P\262\fP\262\203;\204\3269\203\f\201@ \201A G\201B \245Z\317]\201C \"\201D ;\203\371\202\377\201E !R\262\316\262\f\266\n\202T G\\\336\\\201F V\203+\n\204+\f\201G P\262\317\262\f\202=\f\315\232\204=\f\327P\262T\262\f\fP\262G\\\262\f\266\n\202T )\207" [edmacro-eight-bits case-fold-search local-function-key-map edmacro-fix-menu-commands current-active-maps (end-macro 48 49 50 51 52 53 54 55 56 57 45 21 134217773 134217776 134217777 134217778 134217779 134217780 134217781 134217782 134217783 134217784 134217785) 13 255 127 nil ("NUL" "TAB" "LFD" "RET" "ESC" "SPC" "DEL" "REM") vconcat [end-macro] #1="" 0 1 128 134217600 end-macro key-binding cl-subseq (digit-argument negative-argument) "M-" " " 21 [21] universal-argument "C-u " [21] 45 2 (48 49 50 51 52 53 54 55 56 57) apply max lookup-key t 32 92 char-to-string self-insert-command 30 string-match "^[ACHMsS]-." "^;;\\|^<.*>$\\|^\\\\[0-9]+$\\|^[0-9]+\\*." "^\\^.$" mapconcat format "%s * %d" execute-extended-command (return 13) commandp intern-soft "<<%s>>" make-closure #[257 "\211\250\203\227 \301\302\303\302\304T\262\305W\203< \306H\262:\203< @\262\307\"\310U\2045 \211\311\312\"P\262A\262\202\n \266\204\307\313\"\211\314X\203y \211\315\267\202f \316\202\223 \317\202\223 \320\202\223 \321\202\223 \322\202\223 \323\202\223 \311\324\325X\203r \326\202s \327\\\"\202\223 \211\330U\203\203 \331\202\223 \211\300X\203\217 \332!\202\223 \311\333\"\262P\207\2119\203\241 \311\334\"\207\335\336\"\207" [V0 -1 nil (4194304 67108864 16777216 134217728 8388608 33554432) #1# 6 "ACHMsS" logand 0 format "%c-" 262143 32 #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (0 78 9 82 10 86 13 90 27 94 32 98)) "NUL" "TAB" "LFD" "RET" "ESC" "SPC" "C-%c" 26 96 64 127 "DEL" char-to-string "\\%o" "<%s>" error "Unrecognized item in macro: %s"] 10 "\n\n(fn CH)"] edmacro-sanitize-for-string string-search cl-mismatch :start1 :end1 :start2 :end2 "%d*%s" "\n" make-string 3 8 9 ";; " symbol-name 72 "\n "] 35 (#$ . 12354)])#@192 Convert a key sequence vector SEQ into a string.
The string represents the same events; Meta is indicated by bit 7.
This function assumes that the events can be stored in a string.

(fn SEQ)
(defalias 'edmacro-sanitize-for-string #[257 "\300!\262\301GW\203 \302H\303\"I\210T\262\202 \266\207" [copy-sequence 0 logand 127] 8 (#$ . 16639)])#@32 

(fn MACRO &optional NOERROR)
(defalias 'edmacro-fix-menu-commands #[513 "\304!\203\211 \305\306\307!\210\310\305\"\262\211\203\203 \211@\211:\204% \211B\262\202| \211@\311=\204| \211@\312=\204| \211\313\232\203A \314B\262\202| \211A@A@\315\232\203W \316\314@\"B\262\202| \317!\204| \211\211\242\320=\262\204| \321!	\nF>\204| \204| \322\323\"\210A\266\202\202 \210\324\237!\207\207" [mouse-wheel-down-event mouse-wheel-up-event mouse-wheel-right-event mouse-wheel-left-event vectorp nil require mwheel append help-echo switch-frame (menu-bar) menu-bar (menu-bar) vector mouse-event-p mouse-movement event-basic-type error "`edmacro-fix-menu-commands': Unsupported event: %S" vconcat] 10 (#$ . 16997)])#@37 

(fn STRING &optional NEED-VECTOR)
(defalias 'edmacro-parse-keys #[513 "\300!\211;\203 \301\302\"\207\207" [kbd seq-into vector] 6 (#$ . 17727)])
(provide 'edmacro)
