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



(byte-code "\300\301!\210\302\303\304\305\306\301%\210\307\310\311\312\313DD\314\315\316%\210\307\317\311\312\320DD\321\315\322%\207" [require erc custom-declare-group erc-ezbounce nil "Interface to the EZBounce IRC bouncer (a virtual IRC server)." :group custom-declare-variable erc-ezb-regexp funcall function #[0 "\300\207" ["^ezbounce!srv$"] 1 #1=""] "Regexp used by the EZBouncer to identify itself to the user." :type regexp erc-ezb-login-alist #[0 "\300\207" [nil] 1 #1#] "Alist of logins suitable for the server we're connecting to.\n\nThe alist's format is as follows:\n\n (((server . port) . (username . password))\n  ((server . port) . (username . password))\n  ...)" (repeat (cons (cons :tag "Server" string string) (cons :tag "Login" string string)))] 6)#@52 Alist of actions to take on NOTICEs from EZBounce.
(defvar erc-ezb-action-alist '(("^\\[awaiting login/pass command\\]$" . erc-ezb-identify) ("^\\[use /quote CONN <server> to connect\\]$" . erc-ezb-select) ("^ID +IRC NICK +TO +TIME$" . erc-ezb-init-session-list) ("^$" . erc-ezb-end-of-session-list) (".*" . erc-ezb-add-session)) (#$ . 851))#@37 List of detached EZBounce sessions.
(defvar erc-ezb-session-list nil (#$ . 1198))
(make-variable-buffer-local 'erc-ezb-session-list)#@75 Indicate whether current notices are expected to be EZB session listings.
(defvar erc-ezb-inside-session-listing nil (#$ . 1336))#@73 Send EZB commands to the EZBouncer verbatim.

(fn LINE &optional FORCE)
(defalias 'erc-cmd-ezb #[513 "\300\301P!\207" [erc-server-send "EZB "] 5 (#$ . 1471)])
(put 'erc-cmd-EZB 'do-not-parse-args t)#@204 Return an appropriate EZBounce login for SERVER and PORT.
Look up entries in `erc-ezb-login-alist'.  If the username or password
in the alist is nil, prompt for the appropriate values.

(fn SERVER PORT)
(defalias 'erc-ezb-get-login #[514 "\301B\"A\211\2052 \211@A\204 \302\303\304#!\262\211\204- \305\303\306#!\262B\266\202\207" [erc-ezb-login-alist assoc read-from-minibuffer format "EZBounce user name for %s:%s: " read-passwd "EZBounce password for %s:%s: "] 10 (#$ . 1677)])#@16 

(fn MESSAGE)
(defalias 'erc-ezb-lookup-action #[257 "\301\211\204$ \203$ @@@A\302\"\203 \211\262A\262\266\202 \207" [erc-ezb-action-alist nil string-match] 8 (#$ . 2179)])#@56 React on an EZBounce NOTICE request.

(fn PROC PARSED)
(defalias 'erc-ezb-notice-autodetect #[514 "\302!>\204 \303\304\305D\"\210\211\306H\302!>\204! \303\304\305D\"\210\307H\310!\311	\"\2036 \211\2036 \211!\210\266\312\207" [cl-struct-erc-response-tags erc-ezb-regexp type-of signal wrong-type-argument erc-response 2 5 erc-ezb-lookup-action string-match nil] 8 (#$ . 2371)])#@49 Identify to the EZBouncer server.

(fn MESSAGE)
(defalias 'erc-ezb-identify #[257 "\302\303	!\"\211\205 \211@A\304\305\306R!\266\202\207" [erc-session-server erc-session-port erc-ezb-get-login erc-port-to-string erc-server-send "LOGIN " " "] 9 (#$ . 2765)])#@55 Reset the EZBounce session list to nil.

(fn MESSAGE)
(defalias 'erc-ezb-init-session-list #[257 "\302\303\211\207" [erc-ezb-session-list erc-ezb-inside-session-listing nil t] 3 (#$ . 3033)])#@65 Indicate the end of the EZBounce session listing.

(fn MESSAGE)
(defalias 'erc-ezb-end-of-session-list #[257 "\301\211\207" [erc-ezb-inside-session-listing nil] 3 (#$ . 3232)])#@60 Add an EZBounce session to the session list.

(fn MESSAGE)
(defalias 'erc-ezb-add-session #[257 "\205. \302\303\"\205. \304\305\"\304\306\"\304\307\"E\211	\235\203% 	\202* \211	B\211\262\266\203\207" [erc-ezb-inside-session-listing erc-ezb-session-list string-match "^\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\)$" match-string 1 2 3] 7 (#$ . 3415)])#@70 Select an IRC server to use by EZBounce, in ERC style.

(fn MESSAGE)
(defalias 'erc-ezb-select #[257 "\205 \301 ?\205\" \302\303\304\305\211\306%\307\302\310\311\312!\"!\313\314\315#!\266\202\207" [erc-ezb-session-list erc-ezb-select-session read-from-minibuffer "IRC server: " "" nil erc-server-history-list erc-string-to-port "IRC port: " erc-port-to-string "6667" erc-server-send format "CONN %s %s"] 8 (#$ . 3795)])#@37 Select a detached EZBounce session.
(defalias 'erc-ezb-select-session #[0 "\301\302\"\211\303\230?\205 \304\305\306\"!\207" [erc-ezb-session-list completing-read "Existing Session (RET to enter a new one): " "" erc-server-send format "REATTACH %s"] 5 (#$ . 4224)])#@45 Add EZBouncer convenience functions to ERC.
(defalias 'erc-ezb-initialize #[0 "\300\301\302\"\207" [add-hook erc-server-NOTICE-functions erc-ezb-notice-autodetect] 3 (#$ . 4497)])
(provide 'erc-ezbounce)
