;ELC   
;;; Compiled
;;; in Emacs version 26.3
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@31 Current version of InVersion.
(defvar inversion-version "1.3" (#$ . 408))
#@61 An earlier release which is incompatible with this release.
(defvar inversion-incompatible-version "0.1alpha1" (#$ . 488))
#@382 List of decoders for version strings.
Each decoder is of the form:

  ( RELEASE-TYPE REGEXP MAX )

RELEASE-TYPE is a symbol specifying something like `beta' or `alpha'.
REGEXP is the regular expression to match a version string.
MAX is the maximum number of match-numbers in the release number.
Decoders must be ordered to decode least stable versions before the
more stable ones.
(defconst inversion-decoders '((alpha "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]*\\)?\\s-*\\.?alpha\\([0-9]+\\)?$" 4) (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]*\\)?\\s-*\\.?beta\\([0-9]+\\)?$" 4) (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]*\\)?\\s-*\\.?(beta\\([0-9]+\\)?)$" 4) (beta "^[^/]+/\\w+--\\w+--\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)--patch-\\([0-9]+\\)" 4) (beta "^\\w+: v\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)-\\([0-9]+\\)-\\(.*\\)" 5) (prerelease "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*\\.?pre\\([0-9]+\\)?$" 3) (full "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]+\\)?$" 3) (fullsingle "^\\([0-9]+\\)$" 1) (patch "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]+\\)?\\s-*(patch \\([0-9]+\\))" 4) (point "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" 3) (point "^\\w+: v\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)-\\(0\\)-\\(.*\\)" 5) (build "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\).\\([0-9]+\\)$" 4) (full "^[^/]+/\\w+--\\w+--\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)--version-\\([0-9]+\\)" 4) (full "^\\w+: v\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)" 5)) (#$ . 618))
#@155 Decode VERSION-STRING into an encoded list.
Return value is of the form:
  (RELEASE MAJOR MINOR ...)
where RELEASE is a symbol such as `full', or `beta'.
(defalias 'inversion-decode-version #[(version-string) "\306\n\203V 	\204V \307\n@A@\"\203O \306\310\n@8\311\fX\203C \f\224\2036 \312\f\224\f\225O!\2027 \311B\fT\211\202! \n@@\237B+\202 \nA\211\204 	*\207" [inversion-decoders result decoders version-string count num-left nil string-match 2 1 string-to-number ver] 5 (#$ . 2092)])
#@41 Return the decoded version for PACKAGE.
(defalias 'inversion-package-version #[(package) "\303\304!\305P!J\306\211\204 \307\310\211#\210\311\n!\211\204# \307\312\n#\210	*\207" [package code ver intern-soft symbol-name "-version" nil error "Package %S does not define %S-version" inversion-decode-version "%S-version value (%s) cannot be decoded"] 5 (#$ . 2604)])
#@227 Return the decoded incompatibility version for PACKAGE.
The incompatibility version is specified by the programmer of
a package when a package is not backward compatible.  It is
not an indication of new features or bug fixes.
(defalias 'inversion-package-incompatibility-version #[(package) "\302\303!\304P!J\211\205 \305	!)\207" [package ver intern-soft symbol-name "-incompatible-version" inversion-decode-version] 4 (#$ . 2981)])
#@29 Convert CODE into a string.
(defalias 'inversion-recode #[(code) "@A@\3058\3068\211\307=\203 \310\211\202$ \f\311=\203$ \312\313\314\n\f	%,\207" [code p i n r 2 3 full "" point "." format "%s.%s%s%s"] 7 (#$ . 3423)])
#@39 Convert RELEASE-SYMBOL into a number.
(defalias 'inversion-release-to-number #[(release-symbol) "\303	\"	G\n	\235GZ)\207" [release-symbol inversion-decoders ra assoc] 4 (#$ . 3659)])
#@42 Return non-nil if VER1 is equal to VER2.
(defalias 'inversion-= #[(ver1 ver2) "	\232\207" [ver1 ver2] 2 (#$ . 3850)])
#@43 Return non-nil if VER1 is less than VER2.
(defalias 'inversion-< #[(ver1 ver2) "\306@!A@\3078\3108\3118\306	@!	A@\307	8\310	8\311	8\n\f\fF\f\nF\232\203T \203T \n\203T \nW\202\273 \232\203y \f\232\203y \f\232\203y \203y \n\203y \nW\202\273 \232\203\227 \f\232\203\227 \f\203\227 \203\227 \fW\202\273 \232\203\256 \203\256 \f\203\256 \fW\202\273 \205\273 \205\273 W.\n\207" [ver1 ver2 v2-4 v2-3 v2-2 v2-1 inversion-release-to-number 2 3 4 v2-0 v1-4 v1-3 v1-2 v1-1 v1-0] 11 (#$ . 3975)])
#@455 Check that a given version meets the minimum requirement.
VERSION, INCOMPATIBLE-VERSION and MINIMUM are of similar format to
return entries of `inversion-decode-version', or a classic version
string.	 INCOMPATIBLE-VERSION can be nil.
RESERVED arguments are kept for a later use.
Return:
- nil if everything is ok.
- `outdated' if VERSION is less than MINIMUM.
- `incompatible' if VERSION is not backward compatible with MINIMUM.
- t if the check failed.
(defalias 'inversion-check-version #[(version incompatible-version minimum &rest reserved) ";\203 \306!\202\f 	;\203 \306	!\202 	\307\n\"\203% \310\202d \311\n\"\2030 \312\202d \311\n\"\203c \f;\203B \306\f!\202C \f\211\204L \310\202_ \307\n\"\204Z \311\n\"\203^ \305\202_ \310)\202d \313*\207" [version minimum req code incompatible-version incompatible inversion-decode-version inversion-= nil inversion-< outdated t] 4 (#$ . 4534)])
#@457 Test that PACKAGE meets the MINIMUM version requirement.
PACKAGE is a symbol, similar to what is passed to `require'.
MINIMUM is of similar format to return entries of
`inversion-decode-version', or a classic version string.
RESERVED arguments are kept for a later user.
This depends on the symbols `PACKAGE-version' and optionally
`PACKAGE-incompatible-version' being defined in PACKAGE.
Return nil if everything is ok.	 Return an error string otherwise.
(defalias 'inversion-test #[(package minimum &rest reserved) "\304\305!\306!	\n$\211\204 \307\2020 \310=\203! \311\312	#\2020 \313=\203/ \311\314	#\2020 \315)\207" [package minimum reserved check inversion-check-version inversion-package-version inversion-package-incompatibility-version nil outdated format "You need to upgrade package %s to %s" incompatible "Package %s version is not backward compatible with %s" "Inversion version check failed."] 6 (#$ . 5445)])
#@600 Test that PACKAGE at OLDVERSION is still compatible.
If something like a save file is loaded at OLDVERSION, this
test will identify if OLDVERSION is compatible with the current version
of PACKAGE.
PACKAGE is a symbol, similar to what is passed to `require'.
OLDVERSION is of similar format to return entries of
`inversion-decode-version', or a classic version string.
RESERVED arguments are kept for a later user.
This depends on the symbols `PACKAGE-version' and optionally
`PACKAGE-incompatible-version' being defined in PACKAGE.
Return nil if everything is ok.	 Return an error string otherwise.
(defalias 'inversion-reverse-test #[(package oldversion &rest reserved) "\304\305!\306!	\n$\211\204 \307\2020 \310=\203! \311\312	#\2020 \313=\203/ \311\314	#\2020 \315)\207" [package oldversion reserved check inversion-check-version inversion-package-version inversion-package-incompatibility-version nil outdated format "Package %s version %s is not compatible with current version" incompatible "Package %s version is not backward compatible with %s" "Inversion version check failed."] 6 (#$ . 6383)])
#@416 Declare that you need PACKAGE with at least VERSION.
PACKAGE might be found in FILE.  (See `require'.)
Throws an error if VERSION is incompatible with what is installed.
Optional argument DIRECTORY is a location where new versions of
this tool can be located.  If there is a versioning problem and
DIRECTORY is provided, inversion will offer to download the file.
Optional argument RESERVED is saved for later use.
(defalias 'inversion-require #[(package version &optional file directory &rest reserved) "\305	\"\210\306\n\"\211\203  \f\203 \307\f\n$\210\202  \310!\210)\207" [package file version err directory require inversion-test inversion-download-package-ask error] 6 (#$ . 7502)])
#@127 Declare that you need either EMACS-VER, XEMACS-VER or SXEMACS-ver.
Only checks one based on which kind of Emacs is being run.
(defalias 'inversion-require-emacs #[(emacs-ver xemacs-ver sxemacs-ver) "\302\303\"\211\203 \304	!\202 \305)\207" [emacs-ver err inversion-test emacs error t] 4 (#$ . 8206)])
#@59 Regexp template and match data index of a version string.
(defconst inversion-find-data '("(def\\(var\\|const\\)\\s-+%s-%s\\s-+\"\\([^\"]+\\)" 2) (#$ . 8517))
#@542 Search for the version and incompatible version of PACKAGE.
Does not load PACKAGE nor requires that it has been previously loaded.
Search in the directories in `load-path' for a PACKAGE.el library.
Visit the file found and search for the declarations of variables or
constants `PACKAGE-version' and `PACKAGE-incompatible-version'.  The
value of these variables must be a version string.

Return a pair (VERSION-STRING . INCOMPATIBLE-VERSION-STRING) where
INCOMPATIBLE-VERSION-STRING can be nil.
Return nil when VERSION-STRING was not found.
(defalias 'inversion-find-version #[(package) "\306\307\310\"\311\"\n@\nA@\312	\203R \313\314!rq\210\315\216\316	\312\317\320$\210eb\210\321\307\305#\312\311#\203Q \322\f!Ceb\210\321\307\323#\312\311#\203Q \322\f!\241\210+,\207" [package file inversion-find-data tag idx version locate-library format "%s.el" t nil generate-new-buffer " *temp*" #[nil "\301!\205	 \302!\207" [#1=#:temp-buffer buffer-name kill-buffer] 2] insert-file-contents-literally 0 3000 re-search-forward match-string incompatible-version #1#] 5 (#$ . 8683)])
#@317 Add the PACKAGE path to `load-path' if necessary.
MINIMUM is the minimum version requirement of PACKAGE.
Optional argument INSTALLDIR is the base directory where PACKAGE is
installed.  It defaults to `default-directory'/PACKAGE.
SUBDIRS are sub-directories to add to `load-path', following the main
INSTALLDIR path.
(defalias 'inversion-add-to-load-path #[(package minimum &optional installdir &rest subdirs) "\306!\211\203 \307	@	A\n#\205t \310\311	@\n$\205t \206& \312\313\314\"!\315\316\f!\203R \203M \312@!A\316!\203/ \317\320\"\210\202/ \317\320\f\"\210\306!\211\204` \321\322\"\210\307@A\n#\205s \321\323@#+)\207" [package ver minimum installdir default-directory subdir inversion-find-version inversion-check-version message "Outdated %s %s shadowed to meet minimum version %s" expand-file-name format "./%s" nil file-directory-p add-to-list load-path error "Failed to find version for newly installed %s" "Outdated %s %s just installed" subdirs newver] 6 (#$ . 9780)])
#@333 Get a list of distributions of PACKAGE from DIRECTORY.
DIRECTORY can be an ange-ftp compatible filename, such as:
 "/ftp@ftp1.sourceforge.net/pub/sourceforge/PACKAGE"
If it is a URL, wget will be used for download.
Optional argument VERSION will restrict the list of available versions
to the file matching VERSION exactly, or nil.
(defalias 'inversion-locate-package-files #[(package directory &optional version) "9\203	 \303!\304	\305\n\203 \306\307\n\310\260\202 #\207" [package directory version symbol-name directory-files t "^" "-" "\\>"] 8 (#$ . 10794)])
#@57 Common distribution mechanisms for Emacs Lisp packages.
(defvar inversion-package-common-tails '(".tar.gz" ".tar" ".zip" ".gz") (#$ . 11370))
#@300 Use `inversion-locate-package-files' to get a list of PACKAGE files.
DIRECTORY is the location where distributions of PACKAGE are.
VERSION is an optional argument specifying a version to restrict to.
The return list is an alist with the version string in the CAR,
and the full path name in the CDR.
(defalias 'inversion-locate-package-files-and-split #[(package directory &optional version) "9\203	 \306!\307	\n#\310\f\203f \f@\311!\310\203M \204M \312@\313P\"\203D GT\314\224OA\211\204) \204X \315\316\"\210BB\fA,\202 *\207" [package directory version out f file symbol-name inversion-locate-package-files nil file-name-nondirectory string-match "$" 0 error "Cannot decode version for %s" dist inversion-package-common-tails tails verstring] 5 (#$ . 11519)])
#@111 Due to ERR, offer to download PACKAGE from DIRECTORY.
The package should have VERSION available for download.
(defalias 'inversion-download-package-ask #[(err package directory version) "9\203	 \306!\307	\n#\211\204 \310\f!\202M \311\f\312P!\204' \310\f!\202M \313\314\315\"\316\"G\317V\203F \320\321\322	\316\323	!P\324&D\325@A\"))\207" [package directory version files err dest symbol-name inversion-locate-package-files-and-split error y-or-n-p ": Download update? " read-directory-name format "Download %s to: " t 1 "foo" read-file-name "Version to download: " file-name-as-directory nil copy-file] 9 (#$ . 12331)])
(provide 'inversion)
