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



(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312&\210\313\314\315\316\317DD\320\321\322\307\304\311\323&	\210\303\324\325\326\307\304\307\327\311\312&	\207" [require cl-lib seq custom-declare-group tab-line nil "Window-local tabs." :group convenience :version "27.1" custom-declare-variable tab-line-tab-face-functions funcall function #[0 "\300\207" [(tab-line-tab-face-modified tab-line-tab-face-special)] 1 ""] "Functions called to modify tab faces.\nEach function is called with five arguments: the tab, a list of\nall tabs, the face returned by the previously called modifier,\nwhether the tab is a buffer, and whether the tab is selected." :type (repeat (choice (function-item tab-line-tab-face-special) (function-item tab-line-tab-face-modified) (function-item tab-line-tab-face-inactive-alternating) (function-item tab-line-tab-face-group) (function :tag "Custom function"))) "28.1" tab-line-faces ((tab-line custom-face)) "Faces used in the tab line." faces] 10)
(custom-declare-face 'tab-line-tab '((default :inherit tab-line) (((class color) (min-colors 88)) :box (:line-width 1 :style released-button)) (t :inverse-video nil)) "Tab line face for selected tab." :version "27.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-tab-inactive '((default :inherit tab-line-tab) (((class color) (min-colors 88)) :background "grey75") (t :inverse-video t)) "Tab line face for non-selected tab." :version "27.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-tab-inactive-alternate '((t :inherit tab-line-tab-inactive :background "grey65")) "Alternate face for inactive tab-line tabs.\nApplied to alternating tabs when option\n`tab-line-tab-face-functions' includes function\n`tab-line-tab-face-inactive-alternating'." :version "28.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-tab-special '((default :weight bold) (((supports :slant italic)) :slant italic :weight normal)) "Face for special (i.e. non-file-backed) tabs.\nApplied when option `tab-line-tab-face-functions' includes\nfunction `tab-line-tab-face-special'." :version "28.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-tab-modified '((t :inherit font-lock-doc-face)) "Face for modified tabs.\nApplied when option `tab-line-tab-face-functions' includes\nfunction `tab-line-tab-face-modified'." :version "28.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-tab-group '((t :inherit tab-line :box nil)) "Face for group tabs.\nApplied when option `tab-line-tab-face-functions' includes\nfunction `tab-line-tab-face-group'." :version "28.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-tab-current '((default :inherit tab-line-tab) (((class color) (min-colors 88)) :background "grey85")) "Tab line face for tab with current buffer in selected window." :version "27.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-highlight '((((class color) (min-colors 88)) :box (:line-width 1 :style released-button) :background "grey85" :foreground "black") (t :inverse-video nil)) "Tab line face for highlighting." :version "27.1" :group 'tab-line-faces)
(custom-declare-face 'tab-line-close-highlight '((t :foreground "red")) "Tab line face for highlighting of the close button." :version "27.1" :group 'tab-line-faces)#@47 Local keymap for `tab-line-mode' window tabs.
(defvar tab-line-tab-map (define-keymap "<tab-line> <down-mouse-1>" 'tab-line-select-tab "<tab-line> <mouse-2>" 'tab-line-close-tab "<tab-line> <down-mouse-3>" 'tab-line-tab-context-menu "RET" 'tab-line-select-tab) (#$ . 3340))#@50 Local keymap to add `tab-line-mode' window tabs.
(defvar tab-line-add-map (define-keymap "<tab-line> <down-mouse-1>" 'tab-line-new-tab "<tab-line> <down-mouse-2>" 'tab-line-new-tab "RET" 'tab-line-new-tab) (#$ . 3619))#@52 Local keymap to close `tab-line-mode' window tabs.
(defvar tab-line-tab-close-map (define-keymap "<tab-line> <mouse-1>" 'tab-line-close-tab "<tab-line> <mouse-2>" 'tab-line-close-tab) (#$ . 3843))#@65 Local keymap to scroll `tab-line-mode' window tabs to the left.
(defvar tab-line-left-map (define-keymap "<tab-line> <down-mouse-1>" 'tab-line-hscroll-left "<tab-line> <down-mouse-2>" 'tab-line-hscroll-left "RET" 'tab-line-new-tab) (#$ . 4045))#@66 Local keymap to scroll `tab-line-mode' window tabs to the right.
(defvar tab-line-right-map (define-keymap "<tab-line> <down-mouse-1>" 'tab-line-hscroll-right "<tab-line> <down-mouse-2>" 'tab-line-hscroll-right "RET" 'tab-line-new-tab) (#$ . 4295))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\306\317\320\321\322\323\310\311\312\313&\207" [custom-declare-variable tab-line-new-tab-choice funcall function #[0 "\300\207" [t] 1 #1=""] "Defines what to show in a new tab.\nIf t, display a selection menu with all available buffers.\nIf the value is a function, call it with no arguments." :type (choice (const :tag "Buffer menu" t) (function :tag "Function")) :group tab-line :version "27.1" tab-line-new-button-show #[0 "\300\207" [t] 1 #1#] "If non-nil, show the \"New tab\" button in the tab line." boolean :initialize custom-initialize-default :set #[514 "\300\"\210\301 \207" [set-default force-mode-line-update] 5 "\n\n(fn SYM VAL)"]] 14)#@32 Button for creating a new tab.
(defvar tab-line-new-button (propertize " + " 'display '(image :type xpm :file "tabs/new.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-add-map 'mouse-face 'tab-line-highlight 'help-echo "Click to add tab") (#$ . 5296))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315\316\317&\207" [custom-declare-variable tab-line-close-button-show funcall function #[0 "\300\207" [t] 1 ""] "Defines where to show the close tab button.\nIf t, show the close tab button on all tabs.\nIf `selected', show it only on the selected tab.\nIf `non-selected', show it only on non-selected tab.\nIf nil, don't show it at all." :type (choice (const :tag "On all tabs" t) (const :tag "On selected tab" selected) (const :tag "On non-selected tabs" non-selected) (const :tag "None" nil)) :initialize custom-initialize-default :set #[514 "\300\"\210\301 \207" [set-default force-mode-line-update] 5 "\n\n(fn SYM VAL)"] :group tab-line :version "27.1"] 14)#@37 Button for closing the clicked tab.
(defvar tab-line-close-button (propertize " x" 'display '(image :type xpm :file "tabs/close.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-tab-close-map 'mouse-face 'tab-line-close-highlight 'help-echo "Click to close tab") (#$ . 6292))#@48 Button for scrolling horizontally to the left.
(defvar tab-line-left-button (propertize " <" 'display '(image :type xpm :file "tabs/left-arrow.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-left-map 'mouse-face 'tab-line-highlight 'help-echo "Click to scroll left") (#$ . 6577))#@49 Button for scrolling horizontally to the right.
(defvar tab-line-right-button (propertize "> " 'display '(image :type xpm :file "tabs/right-arrow.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-right-map 'mouse-face 'tab-line-highlight 'help-echo "Click to scroll right") (#$ . 6868))#@28 String that delimits tabs.
(defvar tab-line-separator nil (#$ . 7164))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315\316\317&\207" [custom-declare-variable tab-line-tab-name-function funcall function #[0 "\300\207" [tab-line-tab-name-buffer] 1 ""] "Function to get a tab name.\nThe function is called with one or two arguments: the buffer or\nanother object whose tab's name is requested, and, optionally,\nthe list of all tabs." :type (choice (const :tag "Buffer name" tab-line-tab-name-buffer) (const :tag "Truncated buffer name" tab-line-tab-name-truncated-buffer) (function :tag "Function")) :initialize custom-initialize-default :set #[514 "\300\"\210\301 \207" [set-default force-mode-line-update] 5 "\n\n(fn SYM VAL)"] :group tab-line :version "27.1"] 14)#@233 Generate tab name from BUFFER.
Reduce tab width proportionally to space taken by other tabs.
This function can be overridden by changing the default value of the
variable `tab-line-tab-name-function'.

(fn BUFFER &optional BUFFERS)
(defalias 'tab-line-tab-name-buffer #[513 "\300!\207" [buffer-name] 4 (#$ . 7961)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable tab-line-tab-name-truncated-max funcall function #[0 "\300\207" [20] 1 ""] "Maximum length of the tab name from the current buffer.\nEffective when `tab-line-tab-name-function' is customized\nto `tab-line-tab-name-truncated-buffer'." :type natnum :group tab-line :version "27.1"] 10)
(defvar tab-line-tab-name-ellipsis t)#@226 Generate tab name from BUFFER, truncating it as needed.
Truncate it to the length specified by `tab-line-tab-name-truncated-max'.
If truncated, append ellipsis per `tab-line-tab-name-ellipsis'.

(fn BUFFER &optional BUFFERS)
(defalias 'tab-line-tab-name-truncated-buffer #[513 "\302!\211GW\203 \207\303\304\305\211	%\306#\207" [tab-line-tab-name-truncated-max tab-line-tab-name-ellipsis buffer-name propertize truncate-string-to-width nil help-echo] 10 (#$ . 8701)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315\316\317&\207" [custom-declare-variable tab-line-tabs-function funcall function #[0 "\300\207" [tab-line-tabs-window-buffers] 1 ""] "Function to get a list of tabs to display in the tab line.\nThis function should return either a list of buffers whose names will\nbe displayed, or just a list of strings to display in the tab line.\nBy default, use function `tab-line-tabs-window-buffers' that\nreturns a list of buffers associated with the selected window.\nWhen `tab-line-tabs-mode-buffers', return a list of buffers\nwith the same major mode as the current buffer.\nWhen `tab-line-tabs-buffer-groups', return a list of buffers\ngrouped either by `tab-line-tabs-buffer-group-function', when set,\nor by `tab-line-tabs-buffer-groups'." :type (choice (const :tag "Window buffers" tab-line-tabs-window-buffers) (const :tag "Same mode buffers" tab-line-tabs-mode-buffers) (const :tag "Grouped buffers" tab-line-tabs-buffer-groups) (function :tag "Function")) :initialize custom-initialize-default :set #[514 "\300\"\210\301 \207" [set-default force-mode-line-update] 5 "\n\n(fn SYM VAL)"] :group tab-line :version "27.1"] 14)#@124 Function to return a global list of buffers.
Used only for `tab-line-tabs-mode-buffers' and `tab-line-tabs-buffer-groups'.
(defvar tab-line-tabs-buffer-list-function 'tab-line-tabs-buffer-list (#$ . 10377))
(defalias 'tab-line-tabs-buffer-list #[0 "\300\301\302\303pC\304\305\306 \"\307 #!\"\207" [seq-filter #[257 "\300!\205 \301!\302H\303U?\207" [buffer-live-p buffer-name 0 32] 3 "\n\n(fn B)"] seq-uniq append mapcar car window-prev-buffers buffer-list] 8])#@74 Return a list of buffers with the same major mode as the current buffer.
(defalias 'tab-line-tabs-mode-buffers #[0 "\302\303\304\305\306\307\"	 \"#\207" [major-mode tab-line-tabs-buffer-list-function seq-sort-by buffer-name string< seq-filter make-closure #[257 "r\211q\210\301\300!)\207" [V0 derived-mode-p] 3 "\n\n(fn B)"]] 8 (#$ . 10846)])#@189 Function to add a buffer to the appropriate group of tabs.
Takes a buffer as arg and should return a group name as a string.
If the return value is nil, the buffer should be filtered out.
(defvar tab-line-tabs-buffer-group-function nil (#$ . 11198))#@38 Function to sort buffers in a group.
(defvar tab-line-tabs-buffer-group-sort-function nil (#$ . 11453))#@31 Function to sort group names.
(defvar tab-line-tabs-buffer-groups-sort-function 'string< (#$ . 11562))#@262 How to group various major modes together in the tab line.
Each element has the form (REGEXP . GROUPNAME).
If the major mode's name matches REGEXP, it belongs to GROUPNAME.
The default is for each major mode to have a separate group
named the same as the mode.
(defvar tab-line-tabs-buffer-groups mouse-buffer-menu-mode-groups (#$ . 11671))#@25 

(fn &optional BUFFER)
(defalias 'tab-line-tabs-buffer-group-name #[256 "\303!\203\n !\207\211\203 r\211q\210\304	!)\202 \304	!\305\306\307\"\n\"A\206( \211\207" [tab-line-tabs-buffer-group-function mode-name tab-line-tabs-buffer-groups functionp format-mode-line seq-find make-closure #[257 "\211@\300\301\302\303$\207" [V0 nil string-match t] 9 "\n\n(fn GROUP)"]] 6 (#$ . 12017)])#@254 Return a list of tabs that should be displayed in the tab line.
By default return a list of buffers grouped by major mode,
according to `tab-line-tabs-buffer-groups'.
If non-nil, `tab-line-tabs-buffer-group-function' is used to
generate the group name.
(defalias 'tab-line-tabs-buffer-groups #[0 "\303\304\305\"\203#  \306	\307\304\310\311\312\313\"\"\"\"\303\304\314\"\310\315\316\"\"\207\303\304\314\"\317p!\2063 \211\2063 \320\232\203? \321\304\314\304#\210\322\323B\324\325\315\326\"BF\327\315\330\" \"\331\n!\203a \306\n\"\202b \211\310\332\"B\207" [tab-line-tabs-buffer-list-function tab-line-tabs-buffer-groups-sort-function tab-line-tabs-buffer-group-sort-function window-parameter nil tab-line-groups seq-sort delq mapcar car seq-group-by #[257 "\300!\207" [tab-line-tabs-buffer-group-name] 3 "\n\n(fn BUFFER)"] tab-line-group make-closure #[257 "\301\302B\303\300\232B\304\305\306\"BF\207" [V0 tab name selected select make-closure #[0 "\301\302\303\302#\210\301\302\304\300#\210\301\302\305\302#\207" [V0 set-window-parameter nil tab-line-groups tab-line-group tab-line-hscroll] 4]] 8 "\n\n(fn GROUP)"] tab-line-tabs-buffer-group-name "All" set-window-parameter tab name (group-tab . t) select #[0 "\301\302\303\304#\210\301\302\305\300#\210\301\302\306\302#\207" [V0 set-window-parameter nil tab-line-groups t tab-line-group tab-line-hscroll] 4] seq-filter #[257 "\301!\300\232\207" [V0 tab-line-tabs-buffer-group-name] 3 "\n\n(fn B)"] functionp #[257 "\301\302!B\303p=B\304B\305\306\307\"B\257\207" [tab-line-tab-name-function tab name selected buffer close make-closure #[256 "\301\206 \300!\207" [V0 kill-buffer] 3 "\n\n(fn &optional B)"]] 9 "\n\n(fn BUFFER)"]] 10 (#$ . 12416)])#@292 Return a list of tabs that should be displayed in the tab line.
By default returns a list of window buffers, i.e. buffers previously
shown in the same window where the tab line is displayed.
This list can be overridden by changing the default value of the
variable `tab-line-tabs-function'.
(defalias 'tab-line-tabs-window-buffers #[0 "\300 \301!\302\303\304\"\305!\"\306\307\"\302\303\310\"\311\312\313!\"\"\306\307\"\314\"\315\316!C#\207" [selected-window window-buffer seq-remove make-closure #[257 "\211\300=\207" [V0] 3 "\n\n(fn B)"] window-next-buffers seq-filter buffer-live-p #[257 "\211\300=\207" [V0] 3 "\n\n(fn B)"] mapcar car window-prev-buffers seq-difference append reverse] 11 (#$ . 14149)])
(byte-code "\300\301\302\303\304DD\305\306\303\307\310\311\312\313\314\315\316&\207" [custom-declare-variable tab-line-tab-name-format-function funcall function #[0 "\300\207" [tab-line-tab-name-format-default] 1 ""] "Function to format a tab name.\nThe function will be called two arguments: the tab whose name to format,\nand the list of all the tabs; it should return the formatted tab name\nto display in the tab line.\nThe first argument could also be a different object, for example the buffer\nwhich the tab will represent." :type :initialize custom-initialize-default :set #[514 "\300\"\210\301 \207" [set-default force-mode-line-update] 5 "\n\n(fn SYM VAL)"] :group tab-line :version "28.1"] 14)#@91 Default function to use as `tab-line-tab-name-format-function', which see.

(fn TAB TABS)
(defalias 'tab-line-tab-name-format-default #[514 "\305!\211\203 \306 =\202 \307\236A\203 \"\202! \310\236A\2032 \311 \203. \312\2023 \313\2023 \314	\211\203N \211@\211		%\262A\266\202\2024 \210\315\316\211\317\320\321#\322\n\323	\203d \324\202e \325\326\327&\204| \330	\236\204| \331	\236\203\223 \203\223 \203\212 \332\202\213 \307=\204\223 \f\206\224 \333P\334	\335\205\237 \336\337\340BB\"BB#\207" [tab-line-tab-name-function tab-line-tab-face-functions tab-line-tab-map tab-line-close-button-show tab-line-close-button bufferp window-buffer selected name mode-line-window-selected-p tab-line-tab-current tab-line-tab tab-line-tab-inactive apply propertize string-replace "%" "%%" keymap help-echo "Current tab" "Click to select tab" follow-link ignore buffer close non-selected "" tab append (selected t) face (mouse-face tab-line-highlight)] 16 (#$ . 15584)])#@115 Template of the format for displaying tab line for selected window.
This is used by `tab-line-format'.

(fn TABS)
(defalias 'tab-line-format-template #[257 "\206 \306 \203 \307\202 \310\311\312\313\"\314\315\316#\"\317\"\211A@\262\320@\204: \205a \312\262\321\312\313#\202a \247\205H \322U?\205H 	\247\203X \323!GSW\202\\ G\324V\205` \nE\203m \323!\233\202n C\325=\205\201 \f\205\201 \205\201 C$\207" [tab-line-separator tab-line-left-button tab-line-right-button tab-line-tabs-function tab-line-new-button-show tab-line-new-button window-system " " "|" window-parameter nil tab-line-hscroll mapcar make-closure #[257 "\300\n\301\"P\207" [V0 V1 tab-line-tab-name-format-function] 5 "\n\n(fn TAB)"] tab-line-auto-hscroll append set-window-parameter 0 truncate 1 tab-line-tabs-window-buffers] 11 (#$ . 16584)])#@285 Return FACE for TAB in TABS with alternation.
SELECTED-P nil means TAB is not the selected tab.
When TAB is not selected and is even-numbered, make FACE
inherit from `tab-line-tab-inactive-alternate'.  For use in
`tab-line-tab-face-functions'.

(fn TAB TABS FACE BUFFER-P SELECTED-P)
(defalias 'tab-line-tab-face-inactive-alternating #[1285 "\211\204 \300\301\"!\203 \302\303DD\262\207" [cl-evenp cl-position :inherit tab-line-tab-inactive-alternate] 9 (#$ . 17433)])#@235 Return FACE for TAB according to whether its buffer is special.
When TAB is a non-file-visiting buffer, make FACE inherit from
`tab-line-tab-special'.  For use in
`tab-line-tab-face-functions'.

(fn TAB TABS FACE BUFFER-P SELECTED-P)
(defalias 'tab-line-tab-face-special #[1285 "\203 \202\f \300\236A\211\203 \301!\204 \302\303DD\262\210\207" [buffer buffer-file-name :inherit tab-line-tab-special] 9 (#$ . 17916)])#@241 Return FACE for TAB according to whether its buffer is modified.
When TAB is a modified, file-backed buffer, make FACE inherit
from `tab-line-tab-modified'.  For use in
`tab-line-tab-face-functions'.

(fn TAB TABS FACE BUFFER-P SELECTED-P)
(defalias 'tab-line-tab-face-modified #[1285 "\203 \202\f \300\236A\211\203# \301!\203# \302!\203# \303\304DD\262\210\207" [buffer buffer-file-name buffer-modified-p :inherit tab-line-tab-modified] 9 (#$ . 18348)])#@142 Return FACE for TAB according to whether it's a group tab.
For use in `tab-line-tab-face-functions'.

(fn TAB TABS FACE BUFFER-P SELECTED-P)
(defalias 'tab-line-tab-face-group #[1285 "\300\301\"\203 \302\303DD\262\207" [alist-get group-tab :inherit tab-line-tab-group] 8 (#$ . 18818)])#@47 Return default list of cache keys.

(fn TABS)
(defalias 'tab-line-cache-key-default #[257 "\211\301\302 !\303\304\305\"\306 \307>\205 \310 \205 \311 \257\207" [tab-line-tab-face-functions buffer-name window-buffer window-parameter nil tab-line-hscroll mode-line-window-selected-p tab-line-tab-face-modified buffer-file-name buffer-modified-p] 7 (#$ . 19115)])#@177 Function that adds more cache keys.
It is called with one argument, a list of tabs, and should return a list
of cache keys.  You can use `add-function' to add more cache keys.
(defvar tab-line-cache-key-function 'tab-line-cache-key-default (#$ . 19485))#@60 Format for displaying the tab line of the selected window.
(defalias 'tab-line-format #[0 " 	!\303\304\305\"\n\203. \3068\250\203. \211\203. \211@A@A@\232\204. \307\304\310\311\3068!#\210\211\203> \211@\232\203> \211A\206I \307\304\305\312!B#A\207" [tab-line-tabs-function tab-line-cache-key-function tab-line-auto-hscroll window-parameter nil tab-line-cache 2 set-window-parameter tab-line-hscroll float tab-line-format-template] 9 (#$ . 19744)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable tab-line-auto-hscroll funcall function #[0 "\300\207" [t] 1 ""] "Allow or disallow automatic horizontal scrolling of the tab line.\nNon-nil means the tab lines are automatically scrolled horizontally to make\nthe selected tab visible." :type boolean :group tab-line :version "27.1"] 10)
(defvar tab-line-auto-hscroll-buffer (generate-new-buffer " *tab-line-hscroll*"))#@20 

(fn PROP STRING)
(defalias 'tab-line--get-tab-property #[514 "\300\301#\206  \300\302#\206  \303\302#\211\205 \300#\262\207" [get-pos-property 1 0 next-single-property-change] 7 (#$ . 20671)])#@24 

(fn STRINGS HSCROLL)
(defalias 'tab-line-auto-hscroll #[514 "rq\210\306\307\306\306\211\310 \210\311\312\"\210eb\210\313ed\314#\210\315\316!\317V\262\2036\211\2036\250\2046\320\321\322#\211\2035\247\203L \211\323!W\203\270 \310 \210\311\312\324\325	\317T#!\"\210eb\210\313ed\314#\210\315\316!\317V\203\252 \326`\327\"\211\205\213 \330\327\"\206\213 \326\327\"\211\262\205\213 \330\327\"\211\205\225 \320\331#\211\203\245 \332!\262\333\306\334\n#\210\266\2026\306\262\333\306\334#\266\2026\310 \210\311\312\325\323	!T#\"\210eb\210\313ed\314#\210\315\316!\317V\2035\310 \210\311\312\324\325	\317T#!\"\210eb\210\313ed\314#\210\315\316!\317V\2035\326`\327\"\211\205\330\327\"\206\326\327\"\211\262\205\330\327\"\211\205#\320\335#\211\2033\332!\262\333\306\334\n#\210\266\210*\211D\266\203)\207" [tab-line-auto-hscroll-buffer inhibit-modification-hooks truncate-partial-width-windows truncate-lines word-wrap tab-line-auto-hscroll nil t erase-buffer apply insert add-face-text-property tab-line vertical-motion 1 0 seq-position selected #[514 "\300\"\207" [tab-line--get-tab-property] 5 "\n\n(fn STR PROP)"] truncate reverse seq-subseq previous-single-property-change tab get-pos-property #[514 "\300\301\"=\207" [tab-line--get-tab-property tab] 5 "\n\n(fn STR TAB)"] float set-window-parameter tab-line-hscroll #[514 "\300\301\"=\207" [tab-line--get-tab-property tab] 5 "\n\n(fn STR TAB)"]] 14 (#$ . 20882)])#@29 

(fn &optional ARG WINDOW)
(defalias 'tab-line-hscroll #[512 "\301\302\"\203 \303!r\304\305\"\216\306@\307\"\210 *\262\202!  \310\302\311\247\2031 \312!\2022 \311\2068 \313\\GS^]#\210\205G \314\315!\207" [tab-line-tabs-function window-parameter tab-line-hscroll internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord set-window-parameter 0 truncate 1 force-mode-line-update t] 10 (#$ . 22369)])#@144 Scroll the tab line ARG positions to the right.
Interactively, ARG is the prefix numeric argument and defaults to 1.

(fn &optional ARG EVENT)
(defalias 'tab-line-hscroll-right #[512 "\211<\205\f \300!\211@\262\301\"\210\302!\207" [event-start tab-line-hscroll force-mode-line-update] 6 (#$ . 22872) (list current-prefix-arg last-nonmenu-event)])#@143 Scroll the tab line ARG positions to the left.
Interactively, ARG is the prefix numeric argument and defaults to 1.

(fn &optional ARG EVENT)
(defalias 'tab-line-hscroll-left #[512 "\211<\205\f \300!\211@\262\301\206 \302[\"\210\303!\207" [event-start tab-line-hscroll 1 force-mode-line-update] 6 (#$ . 23230) (list current-prefix-arg last-nonmenu-event)])#@261 Add a new tab to the selected-window's tab line.
This command is usually invoked by clicking on the plus-shaped button
on the tab line.  Switching to another buffer also adds a new tab
corresponding to the new buffer shown in the window.

(fn &optional EVENT)
(defalias 'tab-line-new-tab #[256 "\304!\203	  \207	\211<\203 \305 \203 \204 \306!\202# \307\310 !)\207" [tab-line-new-tab-choice mouse-buffer-menu-mode-groups tab-line-tabs-buffer-groups tty-menu-open-use-tmm functionp display-popup-menus-p mouse-buffer-menu tmm-prompt mouse-buffer-menu-keymap] 3 (#$ . 23599) (list last-nonmenu-event)])#@248 Switch to the buffer specified by the tab on which you click.
This command maintains the original order of prev/next buffers.
So, for example, switching to a previous tab is equivalent to
using the `previous-buffer' command.

(fn &optional EVENT)
(defalias 'tab-line-select-tab #[256 "\300!\301\302\303!@\"\304!\203 \211\202 \305\236A\211\203% \306\211@\262\"\207\307\236A\310!\205J \311\211@\262!r\312\313\"\216\314@\315\"\210 \210\316 *\262\207" [event-start tab-line--get-tab-property tab posn-string bufferp buffer tab-line-select-tab-buffer select functionp internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord force-mode-line-update] 9 (#$ . 24213) "e"])#@32 

(fn BUFFER &optional WINDOW)
(defalias 'tab-line-select-tab-buffer #[513 "\301!\302\303\304\"\305!\"\302\303\306\"\307\310\311!\"\"\312\"\313=\203E >\203E \314\"T\315\211W\205D \316\317!\266\211T\262\2020 \207\313=\203m >\203m \314\"T\315\211W\205l \316\320!\266\211T\262\202X \207\321!r\303\322\"\216\323@\324\"\210\325!*\207" [tab-line-tabs-function window-buffer seq-remove make-closure #[257 "\211\300=\207" [V0] 3 "\n\n(fn B)"] window-next-buffers #[257 "\211\300=\207" [V0] 3 "\n\n(fn B)"] mapcar car window-prev-buffers seq-difference tab-line-tabs-window-buffers seq-position 0 nil switch-to-next-buffer switch-to-prev-buffer internal--before-with-selected-window #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord switch-to-buffer] 11 (#$ . 24982)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable tab-line-switch-cycling funcall function #[0 "\300\207" [nil] 1 ""] "Enable cycling tab switch.\nIf non-nil, `tab-line-switch-to-prev-tab' in the first tab\nswitches to the last tab and `tab-line-switch-to-next-tab' in the\nlast tab switches to the first tab.  This variable is not consulted\nwhen `tab-line-tabs-function' is `tab-line-tabs-window-buffers'." :type boolean :group tab-line :version "28.1"] 10)#@144 Switch to the previous tab's buffer.
Its effect is the same as using the `previous-buffer' command
(\[previous-buffer]).

(fn &optional EVENT)
(defalias 'tab-line-switch-to-prev-tab #[256 "\211<\205\f \302!\211@\262\303=\203 \304!\207\305\206 \306 !r\307\310\"\216\311@\312\"\210\313\314 \"\315p\316#\211\205N 	\203J \211\317X\203J GS8\202N \211S8\320!\203X \211\202\\ \321\236A\320!\205e \322!\266\204*\207" [tab-line-tabs-function tab-line-switch-cycling event-start tab-line-tabs-window-buffers switch-to-prev-buffer internal--before-with-selected-window selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord seq-filter #[257 "\300!\206	 \301\236\207" [bufferp buffer] 3 "\n\n(fn TAB)"] seq-position #[514 "\300!\203\n \211=\207\211\301\236A=\207" [bufferp buffer] 5 "\n\n(fn TAB BUFFER)"] 0 bufferp buffer switch-to-buffer] 9 (#$ . 26326) (list last-nonmenu-event)])#@132 Switch to the next tab's buffer.
Its effect is the same as using the `next-buffer' command
(\[next-buffer]).

(fn &optional EVENT)
(defalias 'tab-line-switch-to-next-tab #[256 "\211<\205\f \302!\211@\262\303=\203 \304!\207\305\206 \306 !r\307\310\"\216\311@\312\"\210\313\314 \"\315p\316#\211\205M 	\203I GTX\203I @\202M \211T8\317!\203W \211\202[ \320\236A\317!\205d \321!\266\204*\207" [tab-line-tabs-function tab-line-switch-cycling event-start tab-line-tabs-window-buffers switch-to-next-buffer internal--before-with-selected-window selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord seq-filter #[257 "\300!\206	 \301\236\207" [bufferp buffer] 3 "\n\n(fn TAB)"] seq-position #[514 "\300!\203\n \211=\207\211\301\236A=\207" [bufferp buffer] 5 "\n\n(fn TAB BUFFER)"] bufferp buffer switch-to-buffer] 9 (#$ . 27289) (list last-nonmenu-event)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable tab-line-close-tab-function funcall function #[0 "\300\207" [bury-buffer] 1 ""] "What to do upon closing a tab on the tab line.\nIf `bury-buffer', put the tab's buffer at the end of the list of all\nbuffers, which effectively hides the buffer's tab from the tab line.\nIf `kill-buffer', kills the tab's buffer.\nWhen a function, it is called with the tab as its argument.\nThis option is useful when `tab-line-tabs-function' has the value\n`tab-line-tabs-window-buffers'." :type (choice (const :tag "Bury buffer" bury-buffer) (const :tag "Kill buffer" kill-buffer) (function :tag "Function")) :group tab-line :version "27.1"] 10)#@215 Close the selected tab.
This command is usually invoked by clicking on the close button on the
right side of the tab.  This command buries the buffer, so it goes out of
sight of the tab line.

(fn &optional EVENT)
(defalias 'tab-line-close-tab #[256 "\211<\205 \301!\211\205 \211\211@\262\302\303\304!@\"\305!\203\" \211\202& \306\236A\305!?\2051 \307\236A\310\2068 \311 !r\312\313\"\216\314@\315\"\210\316!\203Q  \210\202\211 \317\267\202 \320!\210\202\211 p=\203j \321 \210\202\211 \322\323\324\325 \"\"\210\326\323\327\330 \"\"\210\202\211 \316!\203\211 !\210\331 *\207" [tab-line-close-tab-function event-start tab-line--get-tab-property tab posn-string bufferp buffer close internal--before-with-selected-window selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord functionp #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (kill-buffer 87 bury-buffer 94)) kill-buffer bury-buffer set-window-prev-buffers nil assq-delete-all window-prev-buffers set-window-next-buffers delq window-next-buffers force-mode-line-update] 12 (#$ . 28955) (list last-nonmenu-event)])#@67 Pop up the context menu for a tab-line tab.

(fn &optional EVENT)
(defalias 'tab-line-tab-context-menu #[256 "\300\301\302\303\304#!\305\306\307#\210\310\"\207" [make-sparse-keymap propertize "Context Menu" hide t define-key-after [close] (menu-item "Close" tab-line-close-tab :help "Close the tab") popup-menu] 6 (#$ . 30150) "e"])#@65 Pop up the context menu for the tab line.

(fn &optional EVENT)
(defalias 'tab-line-context-menu #[256 "\300\301\302\303\304#!\305\306\307#\210\310\"\207" [make-sparse-keymap propertize "Context Menu" hide t define-key-after [close] (menu-item "New tab" tab-line-new-tab :help "Create a new tab") popup-menu] 6 (#$ . 30491) "e"])#@95 Non-nil if Tab-Line mode is enabled.
Use the command `tab-line-mode' to change this variable.
(defvar tab-line-mode nil (#$ . 30829))
(make-variable-buffer-local 'tab-line-mode)#@624 Toggle display of tab line in the windows displaying the current buffer.

This is a minor mode.  If called interactively, toggle the
`Tab-Line 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 `tab-line-mode'.

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

(fn &optional ARG)
(defalias 'tab-line-mode #[256 "\303 \304=\203 ?\202 \247\203 \305W\203 \306\202 \307\310\301!\2031 \311\300	\"\2031 \300	B\312\203> \n\204F \202G \n\232\203F \306\210\313\314\203Q \315\202R \316\"\210\317\320!\203u \303 \203f \211\303 \232\203u \321\322\323\203q \324\202r \325\326$\210\210\327 \210\207" [tab-line-mode local-minor-modes tab-line-format current-message toggle 1 nil t boundp delq (:eval (tab-line-format)) run-hooks tab-line-mode-hook tab-line-mode-on-hook tab-line-mode-off-hook called-interactively-p any message "%s %sabled%s" "Tab-Line mode" "en" "dis" " in current buffer" force-mode-line-update] 7 (#$ . 31013) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar tab-line-mode-hook nil)
(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\315\316\317\320DD\321\322\323\324\325\326\327&	\207" [tab-line-mode-map tab-line-mode-hook variable-documentation put "Hook run after entering or leaving `tab-line-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 tab-line-mode boundp custom-declare-variable tab-line-exclude-modes funcall function #[0 "\300\207" [(completion-list-mode)] 1 ""] "List of major modes for which the tab-line display is not enabled.\nBuffers under any of these major modes will not show the tab line in\ntheir windows, even if `global-tab-line-mode' is enabled." :type (repeat symbol) :group tab-line :version "27.1"] 10)
(defvar tab-line-exclude nil nil)
(make-variable-buffer-local 'tab-line-exclude)#@359 Turn on `tab-line-mode' in all pertinent buffers.
Temporary buffers, buffers whose names begin with a space, buffers
under major modes that are either mentioned in `tab-line-exclude-mode'
or have a non-nil `tab-line-exclude' property on their symbol,
and buffers that have a non-nil buffer-local value
of `tab-line-exclude', are exempt from `tab-line-mode'.
(defalias 'tab-line-mode--turn-on #[0 "\302 \206$ \303\304 \305\306\307$\266\203\206$ 	>\206$ \310N\206$ \311\310p\"?\205+ \312\313!\207" [major-mode tab-line-exclude-modes minibufferp "\\` " buffer-name nil string-match t tab-line-exclude buffer-local-value tab-line-mode 1] 8 (#$ . 33383)])
(put 'global-tab-line-mode 'globalized-minor-mode t)
(defvar tab-line-mode-major-mode nil nil)
(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317\320\321&\207" [make-variable-buffer-local tab-line-mode-major-mode custom-declare-variable global-tab-line-mode funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil if Global Tab-Line mode is enabled.\nSee the `global-tab-line-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `global-tab-line-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean :group tab-line :version "27.1"] 14)#@460 Toggle Tab-Line mode in all buffers.
With prefix ARG, enable Global Tab-Line mode if ARG is positive;
otherwise, disable it.

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.

Tab-Line mode is enabled in all buffers where `tab-line-mode--turn-on'
would do it.

See `tab-line-mode' for more information on Tab-Line mode.

(fn &optional ARG)
(defalias 'global-tab-line-mode #[256 "\303 \304\301\305=\203 \306\301!?\202! \247\203  \307W\203  \310\202! \311\"\210\312\300!\2038 \313\301\"\306\301!\2038 \301B	\203N \314\315\316\"\210\314\317\320\"\210\314\321\322\"\210\202] \323\315\316\"\210\323\317\320\"\210\323\321\322\"\210\324 \211\203\203 \211@r\211q\210	\203s \325 \210\202{ \n\203{ \302\326!\210)A\266\202\202_ \210\327\330\306\301!\203\220 \331\202\221 \332\"\210\333\334!\203\272 \335\301!\210\303 \203\251 \211\303 \232\203\272 \336\337\340\306\301!\203\266 \341\202\267 \342\343$\210\210\344 \210\306\301!\207" [global-minor-modes global-tab-line-mode tab-line-mode current-message set-default toggle default-value 1 nil t boundp delq add-hook after-change-major-mode-hook global-tab-line-mode-enable-in-buffers find-file-hook global-tab-line-mode-check-buffers change-major-mode-hook global-tab-line-mode-cmhh remove-hook buffer-list tab-line-mode--turn-on -1 run-hooks global-tab-line-mode-hook global-tab-line-mode-on-hook global-tab-line-mode-off-hook called-interactively-p any customize-mark-as-set message "%s %sabled%s" "Global Tab-Line mode" "en" "dis" "" force-mode-line-update] 7 (#$ . 34784) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar global-tab-line-mode-hook nil)
(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%\207" [global-tab-line-mode-map global-tab-line-mode-hook variable-documentation put "Hook run after entering or leaving `global-tab-line-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 global-tab-line-mode boundp] 6)
(defvar tab-line-mode-set-explicitly nil nil)
(make-variable-buffer-local 'tab-line-mode-set-explicitly)
(defalias 'tab-line-mode-set-explicitly #[0 "\301\211\207" [tab-line-mode-set-explicitly t] 2])
(byte-code "\300\301\302\303#\210\304\305\301\"\207" [put tab-line-mode-set-explicitly definition-name global-tab-line-mode add-hook tab-line-mode-hook] 4)
(defvar global-tab-line-mode-buffers nil)
(defalias 'global-tab-line-mode-enable-in-buffers #[0 "\305\211\211\2059 \211@\306!\2032 r\211q\210	\204/ \n=\204/ \f\203, \304\307!\210\310 \210\202/ \310 \210)A\266\202\202 \207" [global-tab-line-mode-buffers tab-line-mode-set-explicitly tab-line-mode-major-mode major-mode tab-line-mode nil buffer-live-p -1 tab-line-mode--turn-on] 5])
(put 'global-tab-line-mode-enable-in-buffers 'definition-name 'global-tab-line-mode)
(defalias 'global-tab-line-mode-check-buffers #[0 "\300 \210\301\302\303\"\207" [global-tab-line-mode-enable-in-buffers remove-hook post-command-hook global-tab-line-mode-check-buffers] 3])
(put 'global-tab-line-mode-check-buffers 'definition-name 'global-tab-line-mode)
(defalias 'global-tab-line-mode-cmhh #[0 "p\211\235\203 \266\202 \211B\210\301\302\303\"\207" [global-tab-line-mode-buffers add-hook post-command-hook global-tab-line-mode-check-buffers] 3])
(byte-code "\300\301\302\303#\210\304\305\306\"\210\304\307\310\"\210\304\311\312\"\210\304\313\310\"\210\304\314\312\"\210\304\315\310\"\210\304\316\312\"\210\304\317\320\"\210\304\321\322\"\210\304\323\320\"\210\304\324\322\"\210\304\325\320\"\210\304\326\322\"\210\327\330!\207" [put global-tab-line-mode-cmhh definition-name global-tab-line-mode global-set-key [tab-line down-mouse-3] tab-line-context-menu [tab-line mouse-4] tab-line-hscroll-left [tab-line mouse-5] tab-line-hscroll-right [tab-line wheel-up] [tab-line wheel-down] [tab-line wheel-left] [tab-line wheel-right] [tab-line S-mouse-4] tab-line-switch-to-prev-tab [tab-line S-mouse-5] tab-line-switch-to-next-tab [tab-line S-wheel-up] [tab-line S-wheel-down] [tab-line S-wheel-left] [tab-line S-wheel-right] provide tab-line] 4)
