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



(require 'macroexp)
(defvar cl--optimize-speed 1)
(defvar cl--optimize-safety 1)#@445 This is a list of functions that format user objects for printing.
Each function is called in turn with three arguments: the object, the
stream, and the print level (currently ignored).  If it is able to
print the object it returns true; otherwise it returns nil and the
printer proceeds to the next function on the list.

This variable is not used at present, but it is defined in hopes that
a future Emacs interpreter will be able to use it.
(defvar cl-custom-print-functions nil (#$ . 165))#@265 Increment PLACE by X (1 by default).
PLACE may be a symbol, or any generalized variable allowed by `setf'.
The return value is the incremented value of PLACE.

If X is specified, it should be an expression that should
evaluate to a number.

(fn PLACE &optional X)
(defalias 'cl-incf '(macro . #[513 "9\203 \300\203 \301E\202 \302DE\207\303\301\206 \304F\207" [setq + 1+ cl-callf 1] 7 (#$ . 665)]))#@265 Decrement PLACE by X (1 by default).
PLACE may be a symbol, or any generalized variable allowed by `setf'.
The return value is the decremented value of PLACE.

If X is specified, it should be an expression that should
evaluate to a number.

(fn PLACE &optional X)
(put 'cl-incf 'edebug-form-spec '(place &optional form))
(defalias 'cl-decf '(macro . #[513 "9\203 \300\203 \301E\202 \302DE\207\303\301\206 \304F\207" [setq - 1- cl-callf 1] 7 (#$ . 1081)]))#@316 Add X to the list stored in PLACE unless X is already in the list.
PLACE is a generalized variable that stores a list.

Like (push X PLACE), except that PLACE is unmodified if X is `eql'
to an element already in the list stored in PLACE.


Keywords supported:  :test :test-not :key

(fn X PLACE [KEYWORD VALUE]...)
(put 'cl-decf 'edebug-form-spec 'cl-incf)
(defalias 'cl-pushnew '(macro . #[642 "9\203D \211\2049 \300!\203 \202 \301\302!\303\304E\305D\306\307	EEF=\2030 \207\310DC\"\207\306\311BBBE\207\312\311BBBB\207" [macroexp-const-p make-symbol "var" if memql with-no-warnings setq cons macroexp-let* cl-adjoin cl-callf2] 12 (#$ . 1555)]))#@69 Delete region from START to END and insert VAL.

(fn START END VAL)
(put 'cl-pushnew 'edebug-form-spec '(form place &rest &or [[&or ":test" ":test-not" ":key"] form] [keywordp form]))
(defalias 'cl--set-buffer-substring #[771 "\212|\210b\210\211c)\210\207" [] 5 (#$ . 2231)])#@26 

(fn STR START END VAL)
(defalias 'cl--set-substring #[1028 "\203 \300W\203 G\\\262\202 G\262\300W\203# G\\\262\300V\205- \300OGW\205: \301OQ\207" [0 nil] 9 (#$ . 2515)])#@35 

(fn DO PLACE FROM &optional TO)#@22 

(fn GETTER SETTER)#@10 

(fn V)#@129 Define function CL-F as definition EL-F.
Like `defalias' but marks the alias itself as inlinable.

(fn CL-F EL-F &optional DOC)
(byte-code "\300\301\302\303#\304\305\306\"\210\304\307\310\"\207" [function-put substring gv-expander #[1027 "\300\301\302	$\"\207" [gv-get make-closure #[514 "\303\301!\203\n \301\202 \304\305!\303\300!\203 \300\202 \304\306!\302\307F\310\311\n%\"\300=\2036 \266\201\202? \312\300DC\"\266\202\301=\203F \207\312\301DC\"\207" [V0 V1 V2 macroexp-const-p make-symbol "start" "end" substring make-closure #[257 "\304!\203\n \211\202 \305\306!\307\302\310\303\301\300\257!E=\203! \207\311DC\"\207" [V0 V1 V2 V3 macroexp-const-p make-symbol "v" progn cl--set-substring macroexp-let*] 9 (#$ . 2780)] macroexp-let*] 12 (#$ . 2754)]] 11 (#$ . 2715)] defalias cl--block-wrapper identity cl--block-throw throw] 4)
(defalias 'cl--defalias #[770 "\300#\210\301\302\303#\207" [defalias put byte-optimizer byte-compile-inline-expand] 7 (#$ . 2795)])#@256 Return multiple values, Common Lisp style, taken from a list.
LIST specifies the list of values that the containing function
should return.

Note that Emacs Lisp doesn't really support multiple values, so
all this function does is return LIST.

(fn LIST)
(cl--defalias 'cl-values 'list "Return multiple values, Common Lisp style.\nThe arguments of `cl-values' are the values\nthat the containing function should return.\n\n(fn &rest VALUES)")
(defalias 'cl-values-list #[257 "\211<\204 \300\301C\"\210\207" [signal wrong-type-argument] 4 (#$ . 3804)])#@240 Return a list of the multiple values produced by EXPRESSION.
This handles multiple values in Common Lisp style, but it does not
work right when EXPRESSION calls an ordinary Emacs Lisp function
that returns just one value.

(fn EXPRESSION)
(defalias 'cl-multiple-value-list #[257 "\207" [] 2 (#$ . 4364)])#@259 Evaluate EXPRESSION to get multiple values and apply FUNCTION to them.
This handles multiple values in Common Lisp style, but it does not work
right when EXPRESSION calls an ordinary Emacs Lisp function that returns just
one value.

(fn FUNCTION EXPRESSION)
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put cl-multiple-value-list speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'cl-multiple-value-apply #[514 "\300\"\207" [apply] 5 (#$ . 4675)])#@143 Apply FUNCTION to ARGUMENTS, taking multiple values into account.
This implementation only handles the case where there is only one argument.
(byte-code "\300\301\302\303#\304\301\305\306#\210\307\310\311\312#\210\313\314\315\316#\210\307\317\320\321#\210\322\317\320\323#\207" [function-put cl-multiple-value-apply speed -1 put byte-optimizer byte-compile-inline-expand defalias cl-multiple-value-call apply "Apply FUNCTION to ARGUMENTS, taking multiple values into account.\nThis implementation only handles the case where there is only one argument." cl--defalias cl-nth-value nth "Evaluate EXPRESSION to get multiple values and return the Nth one.\nThis handles multiple values in Common Lisp style, but it does not work\nright when EXPRESSION calls an ordinary Emacs Lisp function that returns just\none value.\n\n(fn N EXPRESSION)" cl--compiling-file macroexp-compiling-p nil make-obsolete "28.1"] 5)
(defvar cl--proclaims-deferred nil)#@59 Record a global declaration specified by SPEC.

(fn SPEC)
(defalias 'cl-proclaim #[257 "\301\302!\203 \302\303\"\210\202 \211B\304\207" [cl--proclaims-deferred fboundp cl--do-proclaim t nil] 4 (#$ . 6115)])#@231 Like `cl-proclaim', but takes any number of unevaluated, unquoted arguments.
Puts `(cl-eval-when (compile load eval) ...)' around the declarations
so that they are registered at compile-time as well as run-time.

(fn &rest SPECS)#@10 

(fn X)
(defalias 'cl-declaim '(macro . #[128 "\300\301\"\302 \203 \303\304BB\207\305B\207" [mapcar #[257 "\300\301DD\207" [cl-proclaim quote] 4 (#$ . 6568)] macroexp-compiling-p cl-eval-when (compile load eval) progn] 5 (#$ . 6333)]))#@46 Return t if NUMBER is positive.

(fn NUMBER)
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias cl-floatp-safe floatp nil make-obsolete "24.4"] 4)
(defalias 'cl-plusp #[257 "\211\300V\207" [0] 3 (#$ . 6815)])#@46 Return t if NUMBER is negative.

(fn NUMBER)
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put cl-plusp speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'cl-minusp #[257 "\211\300W\207" [0] 3 (#$ . 7044)])#@43 Return t if INTEGER is odd.

(fn INTEGER)
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put cl-minusp speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'cl-oddp #[257 "\300\301\"\301=\207" [logand 1] 4 (#$ . 7291)])#@44 Return t if INTEGER is even.

(fn INTEGER)
(defalias 'cl-evenp #[257 "\300\301\"\302=\207" [logand 1 0] 4 (#$ . 7548)])#@30 

(fn DIGITS START END BASE)#@10 

(fn I)
(defconst cl-digit-char-table (byte-code "\300\301\302\"\303\211\304\305\306$\210\211\307\310\311$\210\211\312\313\311$\210\207" [make-vector 256 nil #[1028 "\300\301\302$\303\"\"\207" [mapc make-closure #[257 "\302\300\301Z\\I\207" [V0 V1 V2] 6 (#$ . 7708)] number-sequence] 10 (#$ . 7674)] 48 57 0 65 90 10 97 122] 7))#@146 Test if CHAR is a digit in the specified RADIX (default 10).
If true return the decimal value of digit CHAR in RADIX.

(fn CHAR &optional RADIX)
(defalias 'cl-digit-char-p #[513 "\211\206 \301\211\302Y\205 \211\303X\262\204 \304\305\306\307E\"\210H\211\205- \211\206( \301W\205- \211\207" [cl-digit-char-table 10 2 36 signal args-out-of-range radix (2 36)] 7 (#$ . 8057)])#@201 The largest value that a Lisp float can hold.
If your system supports infinities, this is the largest finite value.
For Emacs, this equals 1.7976931348623157e+308.
Call `cl-float-limits' to set this.
(defconst cl-most-positive-float nil (#$ . 8444))#@134 The largest negative value that a Lisp float can hold.
This is simply -`cl-most-positive-float'.
Call `cl-float-limits' to set this.
(defconst cl-most-negative-float nil (#$ . 8700))#@222 The smallest value greater than zero that a Lisp float can hold.
For Emacs, this equals 5e-324 if subnormal numbers are supported,
`cl-least-positive-normalized-float' if they are not.
Call `cl-float-limits' to set this.
(defconst cl-least-positive-float nil (#$ . 8889))#@142 The smallest value less than zero that a Lisp float can hold.
This is simply -`cl-least-positive-float'.
Call `cl-float-limits' to set this.
(defconst cl-least-negative-float nil (#$ . 9167))#@191 The smallest normalized Lisp float greater than zero.
This is the smallest value that has full precision.
For Emacs, this equals 2.2250738585072014e-308.
Call `cl-float-limits' to set this.
(defconst cl-least-positive-normalized-float nil (#$ . 9365))#@142 The smallest normalized Lisp float less than zero.
This is simply -`cl-least-positive-normalized-float'.
Call `cl-float-limits' to set this.
(defconst cl-least-negative-normalized-float nil (#$ . 9623))#@221 The smallest positive float that adds to 1.0 to give a distinct value.
Adding a number less than this to 1.0 returns 1.0 due to roundoff.
For Emacs, this equals 2.220446049250313e-16.
Call `cl-float-limits' to set this.
(defconst cl-float-epsilon nil (#$ . 9832))#@162 The smallest positive float that subtracts from 1.0 to give a distinct value.
For Emacs, this equals 1.1102230246251565e-16.
Call `cl-float-limits' to set this.
(defconst cl-float-negative-epsilon nil (#$ . 10102))#@364 Apply FUNCTION to each element of SEQ, and make a list of the results.
If there are several SEQs, FUNCTION is called with that many arguments,
and mapping stops as soon as the shortest list runs out.  With just one
SEQ, this is like `mapcar'.  With several, it is like the Common Lisp
`mapcar' function extended to arbitrary sequence types.

(fn FUNCTION SEQ...)
(cl--defalias 'cl-copy-seq 'copy-sequence)
(defalias 'cl-mapcar #[642 "\211\203? \211A\204 <\203 \211@<\204 \300B\301#\207\302@\203< \211\203< \211A\262\242\211A\262\242\"B\262\202 \237\207\303\"\207" [cl--mapcar-many accumulate nil mapcar] 9 (#$ . 10323)])#@49 Return the fifth element of the list X.

(fn X)
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\313#\210\300\314\315\316#\207" [cl--defalias cl-svref aref cl-first car cl-second cadr cl-rest cdr cl-third caddr "Return the third element of the list X." cl-fourth cadddr "Return the fourth element of the list X."] 4)
(defalias 'cl-fifth #[257 "\3008\207" [4] 3 (#$ . 10969)])#@22 

(fn DO &rest ARGS)#@16 

(fn STORE X)#@49 Return the sixth element of the list X.

(fn X)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put cl-fifth gv-expander #[385 "\300\301\302$\207" [gv--defsetter cl-fifth #[514 "\300\301\302EE\207" [setcar nthcdr 4] 6 (#$ . 11425)]] 7 (#$ . 11399)] speed -1 put byte-optimizer byte-compile-inline-expand] 6)
(defalias 'cl-sixth #[257 "\3008\207" [5] 3 (#$ . 11445)])#@51 Return the seventh element of the list X.

(fn X)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put cl-sixth gv-expander #[385 "\300\301\302$\207" [gv--defsetter cl-sixth #[514 "\300\301\302EE\207" [setcar nthcdr 5] 6 (#$ . 11425)]] 7 (#$ . 11399)] speed -1 put byte-optimizer byte-compile-inline-expand] 6)
(defalias 'cl-seventh #[257 "\3008\207" [6] 3 (#$ . 11853)])#@50 Return the eighth element of the list X.

(fn X)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put cl-seventh gv-expander #[385 "\300\301\302$\207" [gv--defsetter cl-seventh #[514 "\300\301\302EE\207" [setcar nthcdr 6] 6 (#$ . 11425)]] 7 (#$ . 11399)] speed -1 put byte-optimizer byte-compile-inline-expand] 6)
(defalias 'cl-eighth #[257 "\3008\207" [7] 3 (#$ . 12265)])#@49 Return the ninth element of the list X.

(fn X)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put cl-eighth gv-expander #[385 "\300\301\302$\207" [gv--defsetter cl-eighth #[514 "\300\301\302EE\207" [setcar nthcdr 7] 6 (#$ . 11425)]] 7 (#$ . 11399)] speed -1 put byte-optimizer byte-compile-inline-expand] 6)
(defalias 'cl-ninth #[257 "\3008\207" [8] 3 (#$ . 12679)])#@49 Return the tenth element of the list X.

(fn X)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put cl-ninth gv-expander #[385 "\300\301\302$\207" [gv--defsetter cl-ninth #[514 "\300\301\302EE\207" [setcar nthcdr 8] 6 (#$ . 11425)]] 7 (#$ . 11399)] speed -1 put byte-optimizer byte-compile-inline-expand] 6)
(defalias 'cl-tenth #[257 "\3008\207" [9] 3 (#$ . 13089)])#@193 Return a new list with specified ARGs as elements, consed to last ARG.
Thus, `(cl-list* A B C D)' is equivalent to `(nconc (list A B C) D)', or to
`(cons A (cons B (cons C D)))'.

(fn ARG...)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\210\311\312\313\"\210\311\314\315\"\210\311\316\317\"\210\311\320\321\"\210\311\322\323\"\210\311\324\325\"\210\311\326\327\"\210\311\330\331\"\210\311\332\333\"\210\311\334\335\"\210\311\336\337\"\210\311\340\341\"\210\311\342\343\"\210\311\344\345\"\210\311\346\347\"\210\311\350\351\"\210\311\352\353\"\210\311\354\355\"\210\311\356\357\"\210\311\360\361\"\210\311\362\363\"\210\311\364\365\"\210\311\366\367\"\210\311\370\371\"\207" [function-put cl-tenth gv-expander #[385 "\300\301\302$\207" [gv--defsetter cl-tenth #[514 "\300\301\302EE\207" [setcar nthcdr 9] 6 (#$ . 11425)]] 7 (#$ . 11399)] speed -1 put byte-optimizer byte-compile-inline-expand defalias cl-caaar caaar cl-caadr caadr cl-cadar cadar cl-caddr caddr cl-cdaar cdaar cl-cdadr cdadr cl-cddar cddar cl-cdddr cdddr cl-caaaar caaaar cl-caaadr caaadr cl-caadar caadar cl-caaddr caaddr cl-cadaar cadaar cl-cadadr cadadr cl-caddar caddar cl-cadddr cadddr cl-cdaaar cdaaar cl-cdaadr cdaadr cl-cdadar cdadar cl-cdaddr cdaddr cl-cddaar cddaar cl-cddadr cddadr cl-cdddar cdddar cl-cddddr cddddr] 6)
(defalias 'cl-list* #[385 "\211\204 \207\211A\204 @B\207\211G\300!\301Z\233\211A@\241\210B\207" [copy-sequence 2] 7 (#$ . 13498)])#@73 Return a copy of LIST with the tail SUBLIST removed.

(fn LIST SUBLIST)
(byte-code "\300\301\302\303#\300\207" [function-put cl-list* compiler-macro cl--compiler-macro-list*] 4)
(defalias 'cl-ldiff #[514 "\300:\203 =\204 \211A\262\242B\262\202 \237\207" [nil] 5 (#$ . 14965)])#@132 Return a copy of LIST, which may be a dotted list.
The elements of LIST are not copied, just the list structure itself.

(fn LIST)
(defalias 'cl-copy-list #[257 "\211:\203 \300:\203 \211A\262\242B\262\202 \211\237\241\210\207@\207" [nil] 5 (#$ . 15258)])#@188 Return ITEM consed onto the front of LIST only if it's not already there.
Otherwise, return LIST unmodified.

Keywords supported:  :test :test-not :key

(fn ITEM LIST [KEYWORD VALUE]...)
(byte-code "\300\301\302\303#\300\207" [function-put cl-copy-list side-effect-free error-free] 4)
(defalias 'cl-adjoin #[642 "\211\300\232\204 \211\204 \247\204 >\203 \207B\207\211\301\232\204% \211\2041 \235\203- \207B\207\302\303$\207" [(:test eq) (:test equal) apply cl--adjoin] 8 (#$ . 15529)])#@215 Substitute NEW for OLD everywhere in TREE (non-destructively).
Return a copy of TREE with all elements `eql' to OLD replaced by NEW.

Keywords supported:  :test :test-not :key

(fn NEW OLD TREE [KEYWORD VALUE]...)
(byte-code "\300\301\302\303#\300\207" [function-put cl-adjoin compiler-macro cl--compiler-macro-adjoin] 4)
(defalias 'cl-subst #[899 "\211\204 \247\203 \250\204 \300\301BC$\207\302#\207" [apply cl-sublis cl--do-subst] 9 (#$ . 16039)])#@30 

(fn CL-NEW CL-OLD CL-TREE)
(defalias 'cl--do-subst #[771 "\211=\203 \207\211:\203- \300@#\300A#@=\203) \211A=\203) \207B\207\207" [cl--do-subst] 8 (#$ . 16507)])#@116 Add KEY and VALUE to ALIST.
Return a new list with (cons KEY VALUE) as car and ALIST as cdr.

(fn KEY VALUE ALIST)
(defalias 'cl-acons #[771 "BB\207" [] 5 (#$ . 16692)])#@253 Make an alist from KEYS and VALUES.
Return a new alist composed by associating KEYS to corresponding VALUES;
the process stops as soon as KEYS or VALUES run out.
If ALIST is non-nil, the new pairs are prepended to it.

(fn KEYS VALUES &optional ALIST)
(defalias 'cl-pairlis #[770 "\300\301#\244\207" [cl-mapcar cons] 7 (#$ . 16871)])#@24 

(fn ORIG-FUN OBJECT)
(byte-code "\300\301!\210\302\303\304\305#\204 \306\307!\210\306\310!\210\300\207" [provide cl-lib load "cl-loaddefs" noerror quiet require cl-macs cl-seq] 4)
(defalias 'cl--old-struct-type-of #[514 "\301!\203\\ \211G\302V\203\\ \211\302H\2119\205W \303\304\305!\"\205W \211K\306=\204A \307\305!\310\311O!\312!K\306=\204? L\210\306M\210\266\211J\313!>\204R \314\315\316D\"\210\211\317H\262\262\206_ !\207" [cl-struct-cl--class-tags vectorp 0 string-prefix-p "cl-struct-" symbol-name :quick-object-witness-check intern 10 nil cl--struct-get-class type-of signal wrong-type-argument cl--class 1] 8 (#$ . 17213)])#@296 Non-nil if Cl-Old-Struct-Compat mode is enabled.
See the `cl-old-struct-compat-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `cl-old-struct-compat-mode'.#@2 #@807 Enable backward compatibility with old-style structs.

This can be needed when using code byte-compiled using the old
macro-expansion of `cl-defstruct' that used vectors objects instead
of record objects.

This is a global minor mode.  If called interactively, toggle the
`Cl-Old-Struct-Compat mode' mode.  If the prefix argument is positive,
enable the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable the
mode if ARG is nil, omitted, or is a positive number.  Disable the mode
if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \='cl-old-struct-compat-mode)'.

The mode's hook is called both when the mode is enabled and when it is
disabled.

(fn &optional ARG)
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315&\207" [custom-declare-variable cl-old-struct-compat-mode funcall function #[0 "\300\207" [nil] 1 (#$ . 18169)] (#$ . 17870) :set custom-set-minor-mode :initialize custom-initialize-default :type boolean :group tools] 12)
(defalias 'cl-old-struct-compat-mode #[256 "\302 \303\301\304=\203 \305\301!?\202! \247\203  \306W\203  \307\202! \310\"\210\311\300!\2038 \312\301\"\305\301!\2038 \301B	\203E \313\314\315\316#\210\202J \317\314\316\"\210\320\321\305\301!\203V \322\202W \323\"\210\324\325!\203\200 \326\301!\210\302 \203o \211\302 \232\203\200 \327\330\331\305\301!\203| \332\202} \333\334$\210\210\335 \210\305\301!\207" [global-minor-modes cl-old-struct-compat-mode current-message set-default toggle default-value 1 nil t boundp delq advice-add type-of :around cl--old-struct-type-of advice-remove run-hooks cl-old-struct-compat-mode-hook cl-old-struct-compat-mode-on-hook cl-old-struct-compat-mode-off-hook called-interactively-p any customize-mark-as-set message "%s %sabled%s" "Cl-Old-Struct-Compat mode" "en" "dis" "" force-mode-line-update] 7 (#$ . 18176) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar cl-old-struct-compat-mode-hook nil)#@86 Return a function that takes any number of arguments, but returns VALUE.

(fn VALUE)#@16 

(fn &rest _)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\210\314\312\310\315#\207" [cl-old-struct-compat-mode-map cl-old-struct-compat-mode-hook variable-documentation put "Hook run after entering or leaving `cl-old-struct-compat-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode cl-old-struct-compat-mode boundp make-obsolete "30.1"] 6)
(defalias 'cl-constantly #[257 "\300\301\"\207" [make-closure #[128 "\300\207" [V0] 2 (#$ . 20367)]] 4 (#$ . 20277)])
