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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310\311\312\313\303\314\315&	\210\316\317\320\321\322DD\323\324\325\314\315&\210\316\326\320\321\327DD\330\324\331\314\315&\207" [require seq cl-lib auth-source url-parse custom-declare-group auth-source-pass nil "password-store integration within auth-source." :prefix "auth-source-pass-" :group :version "27.1" custom-declare-variable auth-source-pass-filename funcall function #[0 "\300\301!\206 \302\207" [getenv "PASSWORD_STORE_DIR" "~/.password-store"] 2 #1=""] "Filename of the password-store folder." :type directory auth-source-pass-port-separator #[0 "\300\207" [":"] 1 #1#] "Separator string between host and port in entry filename." string] 10)
#@221 Given some search query, return matching credentials.

See `auth-source-search' for details on the parameters SPEC, BACKEND, TYPE,
HOST, USER and PORT.

(fn &rest SPEC &key BACKEND TYPE HOST USER PORT &allow-other-keys)
(defalias 'auth-source-pass-search #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\203> \306\307\"=\204> \310\311\312?\306\n\307\"=D\313$\210\314\267\202L \315\316!\210\313\207\313\207\317#\211\205W \211C\207" [plist-member :backend :type :host :user :port eieio-oref type cl--assertion-failed (or (null type) (eq type (oref backend type))) "Invalid password-store search: %s %s" nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (t 68 nil 74)) warn "auth-source-pass does not handle host wildcards." auth-source-pass--build-result] 14 (#$ . 822)])
#@128 Build auth-source-pass entry matching HOSTS, PORT and USER.

HOSTS can be a string or a list of strings.

(fn HOSTS PORT USER)
(defalias 'auth-source-pass--build-result #[771 "\300#\211\2056 \301\302\303\"\304\302\305\"\206 \306\302\307\"\206\" \310\311\312	\"\257\313\314\315\316\317#\"\210\211\262\207" [auth-source-pass--find-match :host auth-source-pass--get-attr "host" :port "port" :user "user" :secret make-closure #[0 "\301\302\300\"\207" [V0 auth-source-pass--get-attr secret] 3] auth-source-pass--do-debug "return %s as final result (plus hidden password)" seq-subseq 0 -2] 14 (#$ . 1675)])
#@36 Enable auth-source-password-store.
(defalias 'auth-source-pass-enable #[0 "\300\301\302\"\210\303 \207" [add-to-list auth-sources password-store auth-source-forget-all-cached] 3 (#$ . 2297)])
#@41 Auth-source backend for password-store.
(defvar auth-source-pass-backend (byte-code "\301\302X\205 \303\304\305\306\307\310\311&\207" [emacs-major-version auth-source-backend 25 "password-store" :source "." :type password-store :search-function auth-source-pass-search] 8) (#$ . 2495))
#@69 Create a password-store auth-source backend from ENTRY.

(fn ENTRY)
(defalias 'auth-source-pass-backend-parse #[257 "\211\301=\205\n \302\"\207" [auth-source-pass-backend password-store auth-source-backend-parse-parameters] 4 (#$ . 2790)])
(byte-code "\300\301!\203 \302\301\303\"\210\202 \304\305\306\303#\210\300\207" [boundp auth-source-backend-parser-functions add-hook auth-source-pass-backend-parse advice-add auth-source-backend-parse :before-until] 4)
#@364 Return the value associated to KEY in the password-store entry ENTRY.

ENTRY is the name of a password-store entry.
The key used to retrieve the password is the symbol `secret'.

The convention used as the format for a password-store file is
the following (see URL `https://www.passwordstore.org/#organization'):

secret
key1: value1
key2: value2

(fn KEY ENTRY)
(defalias 'auth-source-pass-get #[514 "\300!\301\"\207" [auth-source-pass-parse-entry auth-source-pass--get-attr] 6 (#$ . 3261)])
#@224 Return value associated with KEY in an ENTRY-DATA.

ENTRY-DATA is the data from a parsed password-store entry.
The key used to retrieve the password is the symbol `secret'.

See `auth-source-pass-get'.

(fn KEY ENTRY-DATA)
(defalias 'auth-source-pass--get-attr #[514 "\300\"A\206 \301\230\205 \300\302\"A\207" [assoc "user" "username"] 5 (#$ . 3764)])
#@61 Return a string with the file content of ENTRY.

(fn ENTRY)
(defalias 'auth-source-pass--read-entry #[257 "\301\302\303\"r\211q\210\304\305\"\216\306\307\310\311\"\"!\210\312ed\"*\207" [auth-source-pass-filename generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents expand-file-name format "%s.gpg" buffer-substring-no-properties] 7 (#$ . 4128)])
#@110 Return an alist of the data associated with ENTRY.

ENTRY is the name of a password-store entry.

(fn ENTRY)
(defalias 'auth-source-pass-parse-entry #[257 "\3001 \301!0\202 \210\302\211\205 \303\304!B\305!B\207" [(error) auth-source-pass--read-entry nil secret auth-source-pass--parse-secret auth-source-pass--parse-data] 5 (#$ . 4564)])
#@134 Parse the password-store data in the string CONTENTS and return its secret.
The secret is the first line of CONTENTS.

(fn CONTENTS)
(defalias 'auth-source-pass--parse-secret #[257 "\300\301\302#@\207" [split-string "\n" t] 5 (#$ . 4915)])
#@151 Parse the password-store data in the string CONTENTS and return an alist.
CONTENTS is the contents of a password-store formatted file.

(fn CONTENTS)
(defalias 'auth-source-pass--parse-data #[257 "\300\301\302\303$A\304\305\306\307\"\"\207" [split-string "\n" t "[ 	]+" seq-remove null mapcar #[257 "\300\301\"\211\205 \302\303O!\302T\304O!B\207" [seq-position 58 string-trim 0 nil] 7 "\n\n(fn LINE)"]] 7 (#$ . 5163)])
#@68 Call `auth-source-do-debug' with MSG and a prefix.

(fn &rest MSG)
(defalias 'auth-source-pass--do-debug #[128 "\300\301\302@PAB\"\207" [apply auth-source-do-debug "auth-source-pass: "] 5 (#$ . 5596)])
#@46 Return a list of all password store entries.
(defalias 'auth-source-pass-entries #[0 "\301!\302\303\304\"\305\306\"\"\207" [auth-source-pass-filename expand-file-name mapcar make-closure #[257 "\301\302\300\"!\207" [V0 file-name-sans-extension file-relative-name] 5 "\n\n(fn FILE)"] directory-files-recursively "\\.gpg\\'"] 6 (#$ . 5806)])
#@264 Return password-store entry data matching HOSTS, USER and PORT.

Disambiguate between user provided inside HOSTS (e.g., user@server.com) and
inside USER by giving priority to USER.  Same for PORT.
HOSTS can be a string or a list of strings.

(fn HOSTS USER PORT)
(defalias 'auth-source-pass--find-match #[771 "\300\301\302#<\203 \202 C\"\207" [seq-some make-closure #[257 "\302\303\304\300\301#\"\211\203 \305\306\"\203 \207\306BB\207" [V0 V1 apply auth-source-pass--find-match-unambiguous auth-source-pass--disambiguate assoc "host"] 7 "\n\n(fn HOST)"]] 8 (#$ . 6157)])
#@215 Return (HOST USER PORT) after disambiguation.
Disambiguate between having user provided inside HOST (e.g.,
user@server.com) and inside USER by giving priority to USER.
Same for PORT.

(fn HOST &optional USER PORT)
(defalias 'auth-source-pass--disambiguate #[769 "\302\303\304\305\306#)\266\203\203 \202 \307\310\"!\311!	>\204) \312\313\314D\"\210\211\315H\2060 \206F \311!	>\204C \312\313\314D\"\210\316H\206\216 \317\311!	>\204[ \312\313\314D\"\210\211\320H\206\213 \311!	>\204p \312\313\314D\"\210\211\321H\205\213 \322\311!	>\204\206 \312\313\314D\"\210\321H\323\"\262!E\207" [inhibit-changing-match-data cl-struct-url-tags url-generic-parse-url ".*://" nil t string-match format "https://%s" type-of signal wrong-type-argument url 4 2 number-to-string 5 1 url-scheme-get-property default-port] 13 (#$ . 6748)])
#@235 Return password-store entry data matching HOSTNAME, USER and PORT.
If many matches are found, return the first one.  If no match is found,
return nil.

HOSTNAME should not contain any username or port number.

(fn HOSTNAME USER PORT)
(defalias 'auth-source-pass--find-match-unambiguous #[771 "\300 \301#\302\303\206 \304\206 \304$\210\302\305\"\210\3062n \211\211\205k \211@\307\"\310\"G\211\311\267\202N \302\312\"\266\202Y \302\313@#\266\202Y \302\314G$\266\211\203b \315\306\"\210\266A\266\202\202# \2620\207" [auth-source-pass-entries auth-source-pass--generate-entry-suffixes auth-source-pass--do-debug "searching for entries matching hostname=%S, user=%S, port=%S" "" "corresponding suffixes to search for: %S" auth-source-pass-break auth-source-pass--entries-matching-suffix auth-source-pass--select-from-entries #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (0 58 1 67)) "found no entries matching %S" "found 1 entry matching %S: %S" "found %s entries matching %S: %S" throw] 15 (#$ . 7596)])
#@168 Return best matching password-store entry data from ENTRIES.

If USER is non-nil, give precedence to entries containing a user field
matching USER.

(fn ENTRIES USER)
(defalias 'auth-source-pass--select-from-entries #[514 "\300\30128 \211\2034 \211@\302!\211\203, \204, \211\262\203' \303\304\"\232\203, \305\301\"\210\210A\266\202\202 \2620\207" [nil auth-source-pass-break auth-source-pass-parse-entry auth-source-pass--get-attr "user" throw] 9 (#$ . 8676)])
#@135 Return entries matching SUFFIX.
If ENTRIES is nil, use the result of calling `auth-source-pass-entries' instead.

(fn SUFFIX ENTRIES)
(defalias 'auth-source-pass--entries-matching-suffix #[514 "\300\301\302\"\206 \303 \"\207" [cl-remove-if-not make-closure #[257 "\302\303\304\300!\"\305\306\307#)\207" [V0 inhibit-changing-match-data format "\\(^\\|/\\)%s$" regexp-quote nil t string-match] 8 "\n\n(fn ENTRY)"] auth-source-pass-entries] 6 (#$ . 9156)])
#@274 Return a list of possible entry path suffixes in the password-store.

Based on the supported filename patterns for HOSTNAME, USER, &
PORT, return a list of possible suffixes for matching entries in
the password-store.

PORT may be a list of ports.

(fn HOSTNAME USER PORT)
(defalias 'auth-source-pass--generate-entry-suffixes #[771 "\300\301\302\"!\303\304\305#\"\207" [auth-source-pass--domains split-string "\\." seq-mapcat make-closure #[257 "\302\303\304\300#\301:\203 \301\202 \301C\"\207" [V0 V1 seq-mapcat make-closure #[257 "\302\301\300#\207" [V0 V1 auth-source-pass--name-port-user-suffixes] 5 "\n\n(fn P)"]] 6 "\n\n(fn DOMAIN)"]] 9 (#$ . 9625)])
#@304 Return a list of possible domain names matching the hostname.

This function takes a list of NAME-COMPONENTS, the strings
separated by periods in the hostname, and returns a list of full
domain names containing the trailing sequences of those
components, from longest to shortest.

(fn NAME-COMPONENTS)
(defalias 'auth-source-pass--domains #[257 "\300\301\"\207" [cl-maplist #[257 "\300\301\302#\207" [mapconcat identity "."] 5 "\n\n(fn COMPONENTS)"]] 4 (#$ . 10297)])
#@260 Return a list of possible path suffixes for NAME, USER, & PORT.

The resulting list is ordered from most specific to least
specific, with paths matching all of NAME, USER, & PORT first,
then NAME & USER, then NAME & PORT, then just NAME.

(fn NAME USER PORT)
(defalias 'auth-source-pass--name-port-user-suffixes #[771 "\301\302\205 \205 \303\304%\303\305	%D\2051 \303\306#\303\307#D\205> \303\310$C\303\311	\"CF\"\207" [auth-source-pass-port-separator seq-mapcat identity format "%s@%s%s%s" "%s%s%s/%s" "%s@%s" "%s/%s" "%s%s%s" "%s"] 12 (#$ . 10775)])
(provide 'auth-source-pass)
