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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310\311DD\312\313\314\315\316\317\320&	\210\305\321\307\310\322DD\323\313\324\315\316\317\320&	\207" [require cl-lib eieio sqlite tabulated-list custom-declare-variable multisession-storage funcall function #[0 "\300\207" [files] 1 #1=""] "Storage method for multisession variables.\nValid methods are `sqlite' and `files'." :type (choice (const :tag "SQLite" sqlite) (const :tag "Files" files)) :version "29.1" :group files multisession-directory #[0 "\301\302\"\207" [user-emacs-directory expand-file-name "multisession/"] 3 #1#] "Directory to store multisession variables." file] 10)#@210 Make NAME into a multisession variable initialized from INITIAL-VALUE.
DOC should be a doc string, and ARGS are keywords as applicable to
`make-multisession'.

(fn NAME INITIAL-VALUE &optional DOC &rest ARGS)
(defalias 'define-multisession-variable '(macro . #[898 "\300\301\"\204 \301\302\303\304\305!#D\244\262\306\307\310\305!\311BBBBBF\207" [plist-get :package replace-regexp-in-string "-.*" "" symbol-name defvar make-multisession :key :initial-value] 12 (#$ . 749)]))
(byte-code "\300\301\302\303#\300\207" [function-put define-multisession-variable lisp-indent-function defun] 4)
(defconst multisession--unbound (make-symbol "unbound"))#@71 compiler-macro for inlining `multisession-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession-p (and (memq (type-of cl-x) cl-struct-multisession-tags) t)) nil] 9 (#$ . 1412)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession-p compiler-macro multisession-p--cmacro] 4)#@13 

(fn CL-X)
(defalias 'multisession-p #[257 "\301!>\205	 \302\207" [cl-struct-multisession-tags type-of t] 3 (#$ . 1811)])
(byte-code "\300\301\302\303#\300\301\304\305#\306\307\310\301#\300\207" [function-put multisession-p side-effect-free error-free pure t define-symbol-prop multisession cl-deftype-satisfies] 6)#@74 compiler-macro for inlining `multisession--key'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession--key--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession--key (progn (or (multisession-p cl-x) (signal 'wrong-type-argument (list 'multisession cl-x))) (aref cl-x 1))) nil] 9 (#$ . 2135)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--key compiler-macro multisession--key--cmacro] 4)#@61 Access slot "key" of `multisession' struct CL-X.

(fn CL-X)
(defalias 'multisession--key #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-multisession-tags type-of signal wrong-type-argument multisession 1] 5 (#$ . 2596)])
(byte-code "\300\301\302\303#\300\207" [function-put multisession--key side-effect-free t] 4)#@84 compiler-macro for inlining `multisession--initial-value'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession--initial-value--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession--initial-value (progn (or (multisession-p cl-x) (signal 'wrong-type-argument (list 'multisession cl-x))) (aref cl-x 2))) nil] 9 (#$ . 2936)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--initial-value compiler-macro multisession--initial-value--cmacro] 4)#@71 Access slot "initial-value" of `multisession' struct CL-X.

(fn CL-X)
(defalias 'multisession--initial-value #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-multisession-tags type-of signal wrong-type-argument multisession 2] 5 (#$ . 3447)])
(byte-code "\300\301\302\303#\300\207" [function-put multisession--initial-value side-effect-free t] 4)#@78 compiler-macro for inlining `multisession--package'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession--package--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession--package (progn (or (multisession-p cl-x) (signal 'wrong-type-argument (list 'multisession cl-x))) (aref cl-x 3))) nil] 9 (#$ . 3817)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--package compiler-macro multisession--package--cmacro] 4)#@65 Access slot "package" of `multisession' struct CL-X.

(fn CL-X)
(defalias 'multisession--package #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-multisession-tags type-of signal wrong-type-argument multisession 3] 5 (#$ . 4298)])
(byte-code "\300\301\302\303#\300\207" [function-put multisession--package side-effect-free t] 4)#@78 compiler-macro for inlining `multisession--storage'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession--storage--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession--storage (progn (or (multisession-p cl-x) (signal 'wrong-type-argument (list 'multisession cl-x))) (aref cl-x 4))) nil] 9 (#$ . 4650)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--storage compiler-macro multisession--storage--cmacro] 4)#@65 Access slot "storage" of `multisession' struct CL-X.

(fn CL-X)
(defalias 'multisession--storage #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-multisession-tags type-of signal wrong-type-argument multisession 4] 5 (#$ . 5131)])
(byte-code "\300\301\302\303#\300\207" [function-put multisession--storage side-effect-free t] 4)#@83 compiler-macro for inlining `multisession--synchronized'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession--synchronized--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession--synchronized (progn (or (multisession-p cl-x) (signal 'wrong-type-argument (list 'multisession cl-x))) (aref cl-x 5))) nil] 9 (#$ . 5483)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--synchronized compiler-macro multisession--synchronized--cmacro] 4)#@70 Access slot "synchronized" of `multisession' struct CL-X.

(fn CL-X)
(defalias 'multisession--synchronized #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-multisession-tags type-of signal wrong-type-argument multisession 5] 5 (#$ . 5989)])
(byte-code "\300\301\302\303#\300\207" [function-put multisession--synchronized side-effect-free t] 4)#@83 compiler-macro for inlining `multisession--cached-value'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession--cached-value--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession--cached-value (progn (or (multisession-p cl-x) (signal 'wrong-type-argument (list 'multisession cl-x))) (aref cl-x 6))) nil] 9 (#$ . 6356)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--cached-value compiler-macro multisession--cached-value--cmacro] 4)#@70 Access slot "cached-value" of `multisession' struct CL-X.

(fn CL-X)
(defalias 'multisession--cached-value #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-multisession-tags type-of signal wrong-type-argument multisession 6] 5 (#$ . 6862)])
(byte-code "\300\301\302\303#\300\207" [function-put multisession--cached-value side-effect-free t] 4)#@86 compiler-macro for inlining `multisession--cached-sequence'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'multisession--cached-sequence--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block multisession--cached-sequence (progn (or (multisession-p cl-x) (signal 'wrong-type-argument (list 'multisession cl-x))) (aref cl-x 7))) nil] 9 (#$ . 7229)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--cached-sequence compiler-macro multisession--cached-sequence--cmacro] 4)#@73 Access slot "cached-sequence" of `multisession' struct CL-X.

(fn CL-X)
(defalias 'multisession--cached-sequence #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-multisession-tags type-of signal wrong-type-argument multisession 7] 5 (#$ . 7750)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put multisession--cached-sequence side-effect-free t defalias copy-multisession copy-sequence] 4)#@159 compiler-macro for inlining `multisession--create'.

(fn CL-WHOLE &cl-quote &key KEY INITIAL-VALUE PACKAGE STORAGE SYNCHRONIZED CACHED-VALUE CACHED-SEQUENCE)
(defalias 'multisession--create--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"\206 \305A@\300\306\"A@\300\307\"\206+ \310A@\300\311\"\2066 \312A@\211\203p \211@\313>\203X \211A\204P \314\315@\"\210\211AA\262\202: \316	>A@\203g \317\262\202: \314\320@\"\210\202: \210\321\322\323\317\f\317\f\f\f\f\f\f\f&\f\207" [plist-member :key :initial-value :package :storage (nil multisession-storage) :synchronized :cached-value (nil multisession--unbound) :cached-sequence (nil 0) (:key :initial-value :package :storage :synchronized :cached-value :cached-sequence :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:key :initial-value :package :storage :synchronized :cached-value :cached-sequence)" cl--defsubst-expand (key initial-value package storage synchronized cached-value cached-sequence) (cl-block multisession--create (record 'multisession key initial-value package storage synchronized cached-value cached-sequence))] 22 (#$ . 8178)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop multisession--create compiler-macro multisession--create--cmacro] 4)#@136 Constructor for objects of type `multisession'.

(fn &key KEY INITIAL-VALUE PACKAGE STORAGE SYNCHRONIZED CACHED-VALUE CACHED-SEQUENCE)
(defalias 'multisession--create #[128 "\302\303\"A@\302\304\"A@\302\305\"A@\302\306\"\206 \307DA@\302\310\"A@\302\311\"\206/ \307	DA@\302\312\"\206: \313A@\211\203t \211@\314>\203\\ \211A\204T \315\316@\"\210\211AA\262\202> \317	>A@\203k \307\262\202> \315\320@\"\210\202> \210\321\322&\207" [multisession-storage multisession--unbound plist-member :key :initial-value :package :storage nil :synchronized :cached-value :cached-sequence (nil 0) (:key :initial-value :package :storage :synchronized :cached-value :cached-sequence :allow-other-keys) error "Missing argument for %s" :allow-other-keys "Keyword argument %s not one of (:key :initial-value :package :storage :synchronized :cached-value :cached-sequence)" record multisession] 17 (#$ . 9503)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\207" [function-put multisession--create side-effect-free t cl-struct-define multisession "A persistent variable that will live across Emacs invocations." cl-structure-object record nil ((cl-tag-slot) (key) (initial-value nil) (package) (storage multisession-storage) (synchronized nil) (cached-value multisession--unbound) (cached-sequence 0)) cl-struct-multisession-tags] 11)#@89 Create a multisession object.

(fn &key KEY INITIAL-VALUE PACKAGE SYNCHRONIZED STORAGE)
(defalias 'make-multisession #[128 "\302\303\"A@\302\304\"A@\302\305\"A@\302\306\"A@\302\307\"A@\211\203U \211@\310>\203= \211A\2045 \311\312@\"\210\211AA\262\202 \313>A@\203L \314\262\202 \311\315@\"\210\202 \210\204^ \311\316!\210\204f \311\317!\210;\204o \311\320!\210;\204x \311\321!\210\322\323\206\205 	\324&\207" [multisession-storage multisession--unbound plist-member :key :initial-value :package :synchronized :storage (:key :initial-value :package :synchronized :storage :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:key :initial-value :package :synchronized :storage)" "No package for the multisession object" "No key for the multisession object" "The package has to be a string" "The key has to be a string" record multisession 0] 15 (#$ . 10878)])#@59 Return the value of the multisession OBJECT.

(fn OBJECT)
(defalias 'multisession-value #[257 "\204A \303!	>\204 \304\305\306D\"\210\211\307H\n=\203. \303!	>\204* \304\305\306D\"\210\211\310H\207\303!	>\204= \304\305\306D\"\210\211\307H\207\311\303!	>\204Q \304\305\306D\"\210\312H\"\207" [user-init-file cl-struct-multisession-tags multisession--unbound type-of signal wrong-type-argument multisession 6 2 multisession-backend-value 4] 6 (#$ . 11824)])#@61 Set the stored value of OBJECT to VALUE.

(fn OBJECT VALUE)
(defalias 'multisession--set-value #[514 "\204 \302!	>\204 \303\304\305D\"\210\306I\207\307\302!	>\204( \303\304\305D\"\210\310H#\207" [user-init-file cl-struct-multisession-tags type-of signal wrong-type-argument multisession 6 multisession--backend-set-value 4] 7 (#$ . 12295)])#@54 Delete OBJECT from the backend storage.

(fn OBJECT)
(defalias 'multisession-delete #[257 "\301\302!>\204 \303\304\305D\"\210\306H\"\207" [cl-struct-multisession-tags multisession--backend-delete type-of signal wrong-type-argument multisession 4] 6 (#$ . 12653)])
(byte-code "\300\301\302\303#\300\207" [function-put multisession-value gv-expander #[385 "\300\301\302$\207" [gv--defsetter multisession-value #[385 "\300\301C\"B\207" [multisession--set-value append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4)
(defvar multisession--db nil)
(defalias 'multisession--ensure-db #[0 "?\205C \302\303	\"\304!\305!\204 \306\307\"\210\310!\266\311\312\211C\313 \203? \314\315#\216\316!\210 \262\211\317!\240)\210\207 \266\204\207" [multisession--db multisession-directory expand-file-name "sqlite/multisession.sqlite" file-name-directory file-exists-p make-directory t sqlite-open #[0 "\301\302\"\210\301\303\"\210\304\305\"?\205  \301\306\"\210\307\310\"\210\307\311\"\207" [multisession--db sqlite-pragma "journal_mode = WAL" "synchronous = NORMAL" sqlite-select "select name from sqlite_master where type = 'table' and name = 'multisession'" "auto_vacuum = FULL" sqlite-execute "create table multisession (package text not null, key text not null, sequence number not null default 1, value text not null)" "create unique index multisession_idx on multisession (package, key)"] 3] nil sqlite-available-p make-closure #[0 "\300\242\206 \302\301!\207" [V0 V1 sqlite-rollback] 2] sqlite-transaction sqlite-commit] 8])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\207" [cl-generic-define-method multisession-backend-value nil ((_type (eql 'sqlite)) object) #[514 "\303 \210\304!>\204 \305\306\307D\"\210\211\310H\304!>\204$ \305\306\307D\"\210\311HD\304!>\2047 \305\306\307D\"\210\312H	=\203\216 \313\n\314#@\211\203{ \315@!@\304!>\204^ \305\306\307D\"\210\312I\210\304!>\204s \305\306\307D\"\210\316A@I\210\207\304!>\204\212 \305\306\307D\"\210\317H\207\304!>\204\235 \305\306\307D\"\210\320H\203\313\n\321\304!>\204\266 \305\306\307D\"\210\316HB#@\211\203\363 \315@!@\304!>\204\326 \305\306\307D\"\210\312I\210\304!>\204\353 \305\306\307D\"\210\316A@I\210\207\304!>\204\305\306\307D\"\210\312H\207\304!>\204\305\306\307D\"\210\312H\207" [cl-struct-multisession-tags multisession--unbound multisession--db multisession--ensure-db type-of signal wrong-type-argument multisession 3 1 6 sqlite-select "select value, sequence from multisession where package = ? and key = ?" read-from-string 7 2 5 "select value, sequence from multisession where sequence > ? and package = ? and key = ?"] 10 "\n\n(fn TYPE OBJECT)"] multisession--backend-set-value ((_type (eql 'sqlite)) object value) #[771 "\30026 \301\211\302W\203/ \3031 \304\300\305\"\"0\210\202 \210\211T\262\306\307\310\311\302!!\302\245\\!\210\202 \312\313\314\"\2620\207" [done 0 10 (sqlite-locked-error) throw multisession--set-value-sqlite sleep-for 0.1 float random signal sqlite-locked-error "Database is locked"] 9 "\n\n(fn TYPE OBJECT VALUE)"]] 6)#@21 

(fn OBJECT VALUE)
(defalias 'multisession--set-value-sqlite #[514 "\301 \210\302\303\211C\304 \203) \305\306#\216\307!\210\"\262\211\310!\240)\210\207\"\207" [multisession--db multisession--ensure-db #[514 "\305!>\204 \306\307\310D\"\210\311H\305!>\204! \306\307\310D\"\210\312HD\313\314\313\315!+\203< \211\204< \316\317\"\210\320\f\321\322\211D\"#\210\305!>\204W \306\307\310D\"\210\323\324\f\325#@@I\210\305!>\204s \306\307\310D\"\210\326I\207" [cl-struct-multisession-tags print-level print-circle print-length multisession--db type-of signal wrong-type-argument multisession 3 1 nil t readablep error "Unable to store unreadable value: %s" sqlite-execute "insert into multisession(package, key, sequence, value) values(?, ?, 1, ?) on conflict(package, key) do update set sequence = sequence + 1, value = ?" append 7 sqlite-select "select sequence from multisession where package = ? and key = ?" 6] 11 "\n\n(fn OBJECT VALUE)"] nil sqlite-available-p make-closure #[0 "\300\242\206 \302\301!\207" [V0 V1 sqlite-rollback] 2] sqlite-transaction sqlite-commit] 10 (#$ . 15807)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\207" [cl-generic-define-method multisession--backend-values nil ((_type (eql 'sqlite))) #[257 "\301 \210\302\303\"\207" [multisession--db multisession--ensure-db sqlite-select "select package, key, value from multisession order by package, key"] 4 "\n\n(fn TYPE)"] multisession--backend-delete ((_type (eql 'sqlite)) object) #[514 "\302\303\304!	>\204 \305\306\307D\"\210\310H\304!	>\204& \305\306\307D\"\210\311HD#\207" [multisession--db cl-struct-multisession-tags sqlite-execute "delete from multisession where package = ? and key = ?" type-of signal wrong-type-argument multisession 3 1] 10 "\n\n(fn TYPE OBJECT)"]] 6)#@13 

(fn NAME)
(defalias 'multisession--encode-file-name #[257 "\300!\207" [url-hexify-string] 3 (#$ . 17644)])#@20 

(fn FILE OBJECT)
(defalias 'multisession--read-file-value #[514 "\3022\216 \303\304\305W\203\205 \3061n \307\302\310\311\312\"r\211q\210\313\314\"\216\315!\3168\262\317\320!\210\321p!\322!	>\204C \323\324\325\nD\"\210\326I\210\322!	>\204Z \323\324\325\nD\"\210\327I+\210\211\262\262\262\"0\210\202 T\262\211\262\330\331\332\333\305!!\305\245\\!\266\202 \323@A\"\266\2020\207" [coding-system-for-read cl-struct-multisession-tags done 0 nil 10 (permission-denied file-missing) throw generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] file-attributes 5 utf-8-emacs-unix insert-file-contents read type-of signal wrong-type-argument multisession 6 7 sleep-for 0.1 float random] 13 (#$ . 17759)])#@15 

(fn OBJECT)
(defalias 'multisession--object-file-name #[257 "\302\303\304\305!>\204 \306\307\310D\"\210\311H!\312\304\305!>\204* \306\307\310D\"\210\313H!\314\260	\"\207" [cl-struct-multisession-tags multisession-directory expand-file-name "files/" multisession--encode-file-name type-of signal wrong-type-argument multisession 3 "/" 1 ".value"] 10 (#$ . 18550)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\313\302\314\302\315%\207" [cl-generic-define-method multisession-backend-value nil ((_type (eql 'files)) object) #[514 "\302!\303!>\204 \304\305\306D\"\210\307H	=\2038 \310!\203% \311\"\207\303!>\2044 \304\305\306D\"\210\312H\207\303!>\204G \304\305\306D\"\210\313H\203\212 \310!\203w \314\303!>\204c \304\305\306D\"\210\315H\316!\3138\262\"\203w \311\"\207\303!>\204\206 \304\305\306D\"\210\307H\207\303!>\204\231 \304\305\306D\"\210\307H\207" [cl-struct-multisession-tags multisession--unbound multisession--object-file-name type-of signal wrong-type-argument multisession 6 file-exists-p multisession--read-file-value 2 5 time-less-p 7 file-attributes] 8 "\n\n(fn TYPE OBJECT)"] multisession--backend-set-value ((_type (eql 'files)) object value) #[771 "\306!\307 \310!\311!\204 \312\313\"\210\210\314\315\313\"r\211q\210\316\317\"\216\320\313\320\321p\"+\210eb\210\3221< \323p!0\210\202C \210\324\325\326 \"\210\327\320\330!\320\331ed\320\332%\210\333\"\210\334\313#-\266\335!#>\204v \336\337\340D\"\210\341I\210\335!#>\204\214 \336\337\340D\"\210\342I\207" [print-level print-circle print-length write-region-inhibit-fsync create-lockfiles coding-system-for-write multisession--object-file-name current-time file-name-directory file-exists-p make-directory t generate-new-buffer #1=" *temp*" make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] nil prin1 (error) read error "Unable to store unreadable value: %s" buffer-string utf-8-emacs-unix make-temp-name write-region silent set-file-times rename-file type-of signal wrong-type-argument multisession 7 6 cl-struct-multisession-tags] 15 "\n\n(fn TYPE OBJECT VALUE)"] multisession--backend-values ((_type (eql 'files))) #[257 "\301\302\303\304\305\"\306\"\"\207" [multisession-directory mapcar #[257 "\301!\302\303\304\"@!\302\305\303!@!!\306\307\310\"r\211q\210\311\312\"\216\313\314!\210\315p!+\262E\207" [coding-system-for-read file-name-split url-unhex-string last 2 file-name-sans-extension generate-new-buffer #1# t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] utf-8-emacs-unix insert-file-contents read] 8 "\n\n(fn FILE)"] directory-files-recursively expand-file-name "files" "\\.value\\'"] 7 "\n\n(fn TYPE)"] multisession--backend-delete ((_type (eql 'files)) object) #[514 "\300!\301!\205\f \302!\207" [multisession--object-file-name file-exists-p delete-file] 5 "\n\n(fn TYPE OBJECT)"]] 6)
(defvar multisession-edit-mode-map (define-keymap :parent tabulated-list-mode-map "d" 'multisession-delete-value "e" 'multisession-edit-value))
(defvar multisession-edit-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [multisession-edit-mode-hook variable-documentation put "Hook run after entering Multisession mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp multisession-edit-mode-map definition-name multisession-edit-mode] 4)
(defvar multisession-edit-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204* \303\307\310\311#\210\312\307\306\307!\203& \313\202( \314 \"\210\307\302N\2048 \303\307\302\304\315!#\210\306\300!\204X \303\300\310\311#\210\312\300\306\300!\203P \313\202V \316\300\313\"\210\"\210\300\302N\204f \303\300\302\304\317!#\210\303\311\320\321#\207" [multisession-edit-mode-abbrev-table multisession-edit-mode-map variable-documentation put purecopy "Keymap for `multisession-edit-mode'." boundp multisession-edit-mode-syntax-table definition-name multisession-edit-mode defvar-1 nil make-syntax-table "Syntax table for `multisession-edit-mode'." define-abbrev-table "Abbrev table for `multisession-edit-mode'." derived-mode-parent special-mode] 5)#@277 This mode lists all elements in the "multisession" database.

In addition to any hooks its parent mode `special-mode' might have
run, this mode runs the hook `multisession-edit-mode-hook', as the
final or penultimate step during initialization.

\{multisession-edit-mode-map}
(defalias 'multisession-edit-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324\325\"\204R !=\204R \326\325!C#\210\327!\210\330\f!\210!\331 \210\306\332!\210\307\306\333!\210\307\334\"\306\335!\210\336)\337\340!\207" [delay-mode-hooks major-mode mode-name multisession-edit-mode-map multisession-edit-mode-syntax-table multisession-edit-mode-abbrev-table make-local-variable t special-mode multisession-edit-mode "Multisession" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table buffer-disable-undo buffer-read-only truncate-lines [("Package" 10) ("Key" 30) ("Value" 30)] revert-buffer-function multisession-edit-mode--revert run-mode-hooks multisession-edit-mode-hook local-abbrev-table tabulated-list-format] 5 (#$ . 22913)])#@165 List all values in the "multisession" database.
If CHOOSE-STORAGE (interactively, the prefix), query for the
storage method to list.

(fn &optional CHOOSE-STORAGE)
(defalias 'list-multisession-values #[256 "\211\203 \301\302\303\304\305\306$!\202 \307\310\311\312\"!!\210\313 \210\314\300!\210\211\315 \210eb\207" [multisession-storage intern completing-read "Storage method: " (sqlite files) nil t pop-to-buffer get-buffer-create format "*Multisession %s*" multisession-edit-mode make-local-variable multisession-edit-mode--revert] 7 (#$ . 24225) "P"])#@16 

(fn &rest _)
(defalias 'multisession-edit-mode--revert #[128 "\303\304`\305\"\306 \210\307 \210\310\311\312	!\"\313\303!\210eb\210\211\205. \314\305\303#\211\205, \315!b\262)\207" [inhibit-read-only multisession-storage tabulated-list-entries t get-text-property tabulated-list-id erase-buffer tabulated-list-init-header mapcar #[257 "\211@A@B\300@A@\301\302\303\304\305	AA@\"##D\207" [vector string-replace "\n" "\\n" format "%s"] 11 "\n\n(fn ELEM)"] multisession--backend-values tabulated-list-print text-property-search-forward prop-match-beginning] 7 (#$ . 24789)])#@37 Delete the value at point.

(fn ID)
(defalias 'multisession-delete-value #[257 "\211\204 \302\303!\210\304\305!\204 \306\307!\210\310\311\312@\313A$\"\210\314\315 \210`\316y\210`|)\207" [multisession-storage inhibit-read-only error "No value on the current line" yes-or-no-p "Really delete this item? " user-error "Not deleting" multisession--backend-delete make-multisession :package :key t beginning-of-line 1] 8 (#$ . 25376) [(byte-code "\300`\301\"C\207" [get-text-property tabulated-list-id] 3) (multisession-edit-mode)]])#@35 Edit the value at point.

(fn ID)
(defalias 'multisession-edit-value #[257 "\211\204 \301\302!\210\303A!\211\205 \304!\205 \211J\262\206( \305\306@\307A\310&\311!\312\313\314\315\316!\"!@\"\266\317 \207" [multisession-storage error "No value on the current line" intern-soft boundp make-multisession :package :key :storage multisession-value multisession--set-value read-from-string read-string "New value: " prin1-to-string multisession-edit-mode--revert] 10 (#$ . 25916) [(byte-code "\300`\301\"C\207" [get-text-property tabulated-list-id] 3) (multisession-edit-mode)]])
(provide 'multisession)
