mirror of https://github.com/Chizi123/.emacs.d.git

Chizi123
2018-11-19 a4b9172aefa91861b587831e06f55b1e19f3f3be
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; 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.
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
(byte-code "\300\301!\210\302\303!\204\304\303\305\"\210\302\306!\204\304\306\307\"\210\302\310!\204'\304\310\311\312B\"\210\302\313!\2044\304\313\311\314B\"\210\302\315!\204?\304\315\316\"\210\302\317!\204J\304\317\320\"\210\302\321!\204d\304\321\322\"\210\323\324\325\"\210\323\324\326\"\210\323\324\327\"\210\300\207" [require diff fboundp characterp defalias char-valid-p region-active-p #[0 "\205    \207" [transient-mark-mode mark-active] 1] registerv-make macro #[385 "\207" #1=[] 3 "\n\n(fn DATA &rest DUMMY)"] registerv-data #[257 "\207" #1# 2 "\n\n(fn DATA)"] diff-no-select #[1282 "CCC\306\242!\204\307\242!\240\210\306\242!\204#\211\307\242!\240\210\242\204,\240\210\242<\2048\211\242C\240\210\204A\310\311!\262\312\242!\312\242!\313\314    \315\242\316\317\204\\\205\203\320\n\242;\203j\n\242\202o\321 \242!\320 \242;\203} \242\202\202\321\242!F    \206\213\n\242    \206\223\f\242D\244\"\"B\322#\nrq\210\323\324p!\210\323\325 \210)\326p!\210\327 \210\330\305!\210\331\332\333\334\335      $\336\"\337\340%\211\323\341\261\210)\204\342\343!\203\343\344    01%\345\346\"\210\347\331\332\350\334\335  \"\351\"\352\353%\"\266\202*\323\354\3550\356 \3561&!\210\203!\357!\210\203)\357!\210))\266\204\207" [diff-switches diff-command default-directory buffer-read-only inhibit-read-only revert-buffer-function bufferp expand-file-name get-buffer-create "*Diff*" diff-file-local-copy mapconcat identity append mapcar shell-quote-argument "-L" prin1-to-string " " t buffer-disable-undo erase-buffer buffer-enable-undo diff-mode make-local-variable make-byte-code 514 "\304\300\242\301\242\302\242\303p%\207" vconcat vector [diff-no-select] 8 "\n\n(fn IGNORE-AUTO NOCONFIRM)" "\n" fboundp start-process "Diff" set-process-filter diff-process-filter set-process-sentinel "r\302!q\210\303\304!!\210\300\203\305\300!\210\301\205\305\301!)\207" [process-buffer diff-sentinel process-exit-status delete-file] 5 "\n\n(fn PROC MSG)" diff-sentinel call-process nil delete-file shell-file-name shell-command-switch] 22 "\n\n(fn OLD NEW &optional SWITCHES NO-ASYNC BUF)"] diff-file-local-copy #[257 "\300!\203r\211q\210\301\302!\303\304\211\304\305%\210\211\262)\207\306!\207" [bufferp make-temp-file "buffer-content-" write-region nil nomessage file-local-copy] 8 "\n\n(fn FILE-OR-BUF)"] user-error error add-to-list debug-ignored-errors "^No further undo information" "^No further redo information" "^No further redo information for region"] 4)
#@41 Tree of undo entries in current buffer.
(defvar buffer-undo-tree nil (#$ . 2951))
(byte-code "\301\302\303\304#\210\305\302!\210\306\307\310\311\312\313%\210\314\315\316\317\320DD\321\312\307\322\323&\210\314\324\316\317\325DD\326\312\307\322\327&\210\314\330\316\317\331DD\332\312\307\322\333&\210\314\334\316\317\335DD\336\312\307\322\337\340!\341\"\203W\342\202X\333&\210\314\343\316\317\344DD\345\312\307\322\346&\210\314\347\316\317\350DD\351\312\307\322\333&\210\314\352\316\317\353DD\354\312\307\322\333&\210\314\355\316\317\356DD\357\312\307\322\333&\210\314\360\316\317\361DD\362\312\307\322\363&\210\364\365\366\367\312\307%\210\364\370\371\372\312\307%\210\364\373\374\375\312\307%\210\364\376\377\201@\312\307%\210\364\201A\201B\201C\312\307%\207" [emacs-version put buffer-undo-tree permanent-local t make-variable-buffer-local custom-declare-group undo-tree nil "Tree undo/redo." :group undo custom-declare-variable undo-tree-mode-lighter funcall function #[0 "\300\207" [#1=" Undo-Tree"] 1 #1#] "Lighter displayed in mode line\nwhen `undo-tree-mode' is enabled." :type string undo-tree-incompatible-major-modes #[0 "\300\207" [(term-mode)] 1] "List of major-modes in which `undo-tree-mode' should not be enabled.\n(See `turn-on-undo-tree-mode'.)" (repeat symbol) undo-tree-enable-undo-in-region #[0 "\300\207" [t] 1] "When non-nil, enable undo-in-region.\n\nWhen undo-in-region is enabled, undoing or redoing when the\nregion is active (in `transient-mark-mode') or with a prefix\nargument (not in `transient-mark-mode') only undoes changes\nwithin the current region." boolean undo-tree-auto-save-history #[0 "\300\207" [nil] 1] "When non-nil, `undo-tree-mode' will save undo history to file\nwhen a buffer is saved to file.\n\nIt will automatically load undo history when a buffer is loaded\nfrom file, if an undo save file exists.\n\nBy default, undo-tree history is saved to a file called\n\".<buffer-file-name>.~undo-tree~\" in the same directory as the\nfile itself. To save under a different directory, customize\n`undo-tree-history-directory-alist' (see the documentation for\nthat variable for details).\n\nWARNING! `undo-tree-auto-save-history' will not work properly in\nEmacs versions prior to 24.3, so it cannot be enabled via\nthe customization interface in versions earlier than that one. To\nignore this warning and enable it regardless, set\n`undo-tree-auto-save-history' to a non-nil value outside of\ncustomize." version-list-< version-to-list (24 3) (choice (const :tag "<disabled>" nil)) undo-tree-history-directory-alist #[0 "\300\207" [nil] 1] "Alist of filename patterns and undo history directory names.\nEach element looks like (REGEXP . DIRECTORY).  Undo history for\nfiles with names matching REGEXP will be saved in DIRECTORY.\nDIRECTORY may be relative or absolute.  If it is absolute, so\nthat all matching files are backed up into the same directory,\nthe file names in this directory will be the full name of the\nfile backed up with all directory separators changed to `!' to\nprevent clashes.  This will not work correctly if your filesystem\ntruncates the resulting name.\n\nFor the common case of all backups going into one directory, the\nalist should contain a single element pairing \".\" with the\nappropriate directory name.\n\nIf this variable is nil, or it fails to match a filename, the\nbackup is made in the original file's directory.\n\nOn MS-DOS filesystems without long names this variable is always\nignored." (repeat (cons (regexp :tag "Regexp matching filename") (directory :tag "Undo history directory name"))) undo-tree-visualizer-relative-timestamps #[0 "\300\207" [t] 1] "When non-nil, display times relative to current time\nwhen displaying time stamps in visualizer.\n\nOtherwise, display absolute times." undo-tree-visualizer-timestamps #[0 "\300\207" [nil] 1] "When non-nil, display time-stamps by default\nin undo-tree visualizer.\n\n\\<undo-tree-visualizer-mode-map>You can always toggle time-stamps on and off using \\[undo-tree-visualizer-toggle-timestamps], regardless of the\nsetting of this variable." undo-tree-visualizer-diff #[0 "\300\207" [nil] 1] "When non-nil, display diff by default in undo-tree visualizer.\n\n\\<undo-tree-visualizer-mode-map>You can always toggle the diff display using \\[undo-tree-visualizer-toggle-diff], regardless of the\nsetting of this variable." undo-tree-visualizer-lazy-drawing #[0 "\300\207" [100] 1] "When non-nil, use lazy undo-tree drawing in visualizer.\n\nSetting this to a number causes the visualizer to switch to lazy\ndrawing when the number of nodes in the tree is larger than this\nvalue.\n\nLazy drawing means that only the visible portion of the tree will\nbe drawn initially, and the tree will be extended later as\nneeded. For the most part, the only visible effect of this is to\nsignificantly speed up displaying the visualizer for very large\ntrees.\n\nThere is one potential negative effect of lazy drawing. Other\nbranches of the tree will only be drawn once the node from which\nthey branch off becomes visible. So it can happen that certain\nportions of the tree that would be shown with lazy drawing\ndisabled, will not be drawn immediately when it is\nenabled. However, this effect is quite rare in practice." (choice (const :tag "never" nil) (const :tag "always" t) (integer :tag "> size")) custom-declare-face undo-tree-visualizer-default-face ((((class color)) :foreground "gray")) "Face used to draw undo-tree in visualizer." undo-tree-visualizer-current-face ((((class color)) :foreground "red")) "Face used to highlight current undo-tree node in visualizer." undo-tree-visualizer-active-branch-face ((((class color) (background dark)) (:foreground "white" :weight bold)) (((class color) (background light)) (:foreground "black" :weight bold))) "Face used to highlight active undo-tree branch in visualizer." undo-tree-visualizer-register-face ((((class color)) :foreground "yellow")) "Face used to highlight undo-tree nodes saved to a register\nin visualizer." undo-tree-visualizer-unmodified-face ((((class color)) :foreground "cyan")) "Face used to highlight nodes corresponding to unmodified buffers\nin visualizer."] 10)
#@30 Parent buffer in visualizer.
(defvar undo-tree-visualizer-parent-buffer nil (#$ . 9149))
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-parent-buffer permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-parent-mtime nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-parent-mtime permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-spacing nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-spacing permanent-local t make-variable-buffer-local] 4)
(defalias 'undo-tree-visualizer-calculate-spacing #[0 "\203\f    \203\n\302\207\303\207\304\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-relative-timestamps 9 13 3] 1])
(put 'undo-tree-visualizer-calculate-spacing 'byte-optimizer 'byte-compile-inline-expand)
(defvar undo-tree-visualizer-initial-node nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-initial-node permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-selected-node nil)
(byte-code "\300\301\302\303#\210\304\305!\207" [put undo-tree-visualizer-selected-node permanent-local t make-variable-buffer-local undo-tree-visualizer-selected] 4)
(defvar undo-tree-visualizer-needs-extending-down nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-needs-extending-down permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-needs-extending-up nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-needs-extending-up permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-inhibit-kill-visualizer nil)
(defvar undo-tree-insert-face nil)
(defconst undo-tree-visualizer-buffer-name " *undo-tree*")
(defconst undo-tree-diff-buffer-name "*undo-tree Diff*")
(byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook write-file-functions undo-tree-save-history-hook find-file-hook undo-tree-load-history-hook] 3)
#@32 Keymap used in undo-tree-mode.
(defvar undo-tree-map nil (#$ . 11156))
(byte-code "\204C\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\311#\210\302\312\311#\210\302\313\311#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\301\207" [undo-tree-map make-sparse-keymap define-key [remap undo] undo-tree-undo [remap undo-only] [67108911] "" [67108927] undo-tree-redo [134217823] [remap redo] "u" undo-tree-visualize "ru" undo-tree-save-state-to-register "rU" undo-tree-restore-state-from-register] 5)
#@38 Keymap used in undo-tree visualizer.
(defvar undo-tree-visualizer-mode-map nil (#$ . 11717))
(byte-code "\204\323\301 \302\303\304#\210\302\305\306#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\306#\210\302\313\306#\210\302\314\306#\210\302\315\316#\210\302\317\320#\210\302\321\316#\210\302\322\316#\210\302\323\316#\210\302\324\320#\210\302\325\320#\210\302\326\320#\210\302\327\330#\210\302\331\332#\210\302\333\330#\210\302\334\332#\210\302\335\330#\210\302\336\332#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\302\351\352#\210\302\353\350#\210\302\354\352#\210\302\355\356#\210\302\357\360#\210\302\361\362#\210\302\363\364#\210\301\207" [undo-tree-visualizer-mode-map make-sparse-keymap define-key [remap previous-line] undo-tree-visualize-undo [remap next-line] undo-tree-visualize-redo [up] "p" "" [down] "n" "" [remap forward-char] undo-tree-visualize-switch-branch-right [remap backward-char] undo-tree-visualize-switch-branch-left [right] "f" "" [left] "b" "" [remap backward-paragraph] undo-tree-visualize-undo-to-x [remap forward-paragraph] undo-tree-visualize-redo-to-x "\373" "\375" [C-up] [C-down] [mouse-1] undo-tree-visualizer-mouse-set "t" undo-tree-visualizer-toggle-timestamps "d" undo-tree-visualizer-toggle-diff "s" undo-tree-visualizer-selection-mode "," undo-tree-visualizer-scroll-left "." undo-tree-visualizer-scroll-right "<" ">" [next] undo-tree-visualizer-scroll-up [prior] undo-tree-visualizer-scroll-down "q" undo-tree-visualizer-quit "" undo-tree-visualizer-abort] 5)
#@53 Keymap used in undo-tree visualizer selection mode.
(defvar undo-tree-visualizer-selection-mode-map nil (#$ . 13329))
(byte-code "\204\235\301 \302\303\304#\210\302\305\306#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\306#\210\302\313\306#\210\302\314\306#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\322#\210\302\326\322#\210\302\327\322#\210\302\330\324#\210\302\331\324#\210\302\332\324#\210\302\333\334#\210\302\335\336#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\301\207" [undo-tree-visualizer-selection-mode-map make-sparse-keymap define-key [remap previous-line] undo-tree-visualizer-select-previous [remap next-line] undo-tree-visualizer-select-next [up] "p" "" [down] "n" "" [next] #[0 "\300\301!\207" [undo-tree-visualizer-select-next 10] 2 nil nil] [prior] #[0 "\300\301!\207" [undo-tree-visualizer-select-previous 10] 2 nil nil] [remap forward-char] undo-tree-visualizer-select-right [remap backward-char] undo-tree-visualizer-select-left [right] "f" "" [left] "b" "" "," #[0 "\300\301!\207" [undo-tree-visualizer-select-left 10] 2 nil nil] "." #[0 "\300\301!\207" [undo-tree-visualizer-select-right 10] 2 nil nil] "<" #[0 "\300\301!\207" [undo-tree-visualizer-select-left 10] 2 nil nil] ">" #[0 "\300\301!\207" [undo-tree-visualizer-select-right 10] 2 nil nil] " " undo-tree-visualizer-set [mouse-1] undo-tree-visualizer-mouse-select "d" undo-tree-visualizer-selection-toggle-diff] 5)
(defvar undo-tree-old-undo-menu-item nil)
#@42 Update `undo-tree-mode' Edit menu items.
(defalias 'undo-tree-update-menu-bar #[0 "\203\303\304    \305\"\236A\306\304    \307\"\310\311#\210\312\304    \313\"\314\315\303$\207\306\304    \316\"\317\n#\210\306\304    \320\"\321\322#\207" [undo-tree-mode global-map undo-tree-old-undo-menu-item undo lookup-key [menu-bar edit] define-key [menu-bar edit] [undo] (menu-item "Undo" undo-tree-undo :enable (and undo-tree-mode (not buffer-read-only) (not (eq t buffer-undo-list)) (undo-tree-node-previous (undo-tree-current buffer-undo-tree))) :help "Undo last operation") define-key-after [menu-bar edit] [redo] (menu-item "Redo" undo-tree-redo :enable (and undo-tree-mode (not buffer-read-only) (not (eq t buffer-undo-list)) (undo-tree-node-next (undo-tree-current buffer-undo-tree))) :help "Redo last operation") [menu-bar edit] [undo] [menu-bar edit] [redo] nil] 5 (#$ . 14908)])
(add-hook 'menu-bar-update-hook 'undo-tree-update-menu-bar)
#@68 compiler-macro for inlining `undo-tree-p'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-p (and (memq (type-of cl-x) cl-struct-undo-tree-tags) t)) nil] 9 (#$ . 15841)])
(put 'undo-tree-p 'compiler-macro 'undo-tree-p--cmacro)
#@13 
 
(fn CL-X)
(defalias 'undo-tree-p #[257 "\301!>\205    \302\207" [cl-struct-undo-tree-tags type-of t] 3 (#$ . 16170)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put undo-tree-p side-effect-free error-free put undo-tree cl-deftype-satisfies] 5)
#@71 compiler-macro for inlining `undo-tree-root'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-root--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-root (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 1)) nil] 9 (#$ . 16441)])
(put 'undo-tree-root 'compiler-macro 'undo-tree-root--cmacro)
#@268 Access slot "root" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-root #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 1] 5 (#$ . 16822)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-root side-effect-free t] 4)
#@74 compiler-macro for inlining `undo-tree-current'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-current--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-current (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 2)) nil] 9 (#$ . 17359)])
(put 'undo-tree-current 'compiler-macro 'undo-tree-current--cmacro)
#@271 Access slot "current" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-current #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2] 5 (#$ . 17755)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-current side-effect-free t] 4)
#@71 compiler-macro for inlining `undo-tree-size'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-size--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-size (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 3)) nil] 9 (#$ . 18301)])
(put 'undo-tree-size 'compiler-macro 'undo-tree-size--cmacro)
#@268 Access slot "size" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-size #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 3] 5 (#$ . 18682)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-size side-effect-free t] 4)
#@72 compiler-macro for inlining `undo-tree-count'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-count--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-count (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 4)) nil] 9 (#$ . 19219)])
(put 'undo-tree-count 'compiler-macro 'undo-tree-count--cmacro)
#@269 Access slot "count" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-count #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 4] 5 (#$ . 19605)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-count side-effect-free t] 4)
#@78 compiler-macro for inlining `undo-tree-object-pool'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-object-pool--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-object-pool (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 5)) nil] 9 (#$ . 20145)])
(put 'undo-tree-object-pool 'compiler-macro 'undo-tree-object-pool--cmacro)
#@275 Access slot "object-pool" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-object-pool #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 5] 5 (#$ . 20561)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put undo-tree-object-pool side-effect-free t defalias copy-undo-tree copy-sequence] 4)
#@46 Constructor for objects of type `undo-tree'.
(defalias 'make-undo-tree #[0 "\300\301\211\"\211\302\211\303\304\305\306\307$\310\311&\207" [undo-tree-make-node nil 0 make-hash-table :test eq :weakness value record undo-tree] 12 (#$ . 21167)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&    \207" [function-put make-undo-tree side-effect-free t cl-struct-define undo-tree nil cl-structure-object record ((cl-tag-slot) (root) (current) (size) (count) (object-pool)) cl-struct-undo-tree-tags] 11)
#@80 compiler-macro for inlining `undo-tree-node-previous'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-node-previous--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-previous (aref cl-x 0)) nil] 9 (#$ . 21701)])
(put 'undo-tree-node-previous 'compiler-macro 'undo-tree-node-previous--cmacro)
#@371 Access slot "previous" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-node-previous #[257 "\211\300H\207" [0] 3 (#$ . 22050)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-previous side-effect-free t] 4)
#@76 compiler-macro for inlining `undo-tree-node-next'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-node-next--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-next (aref cl-x 1)) nil] 9 (#$ . 22604)])
(put 'undo-tree-node-next 'compiler-macro 'undo-tree-node-next--cmacro)
#@367 Access slot "next" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-node-next #[257 "\211\300H\207" [1] 3 (#$ . 22933)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-next side-effect-free t] 4)
#@76 compiler-macro for inlining `undo-tree-node-undo'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-node-undo--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-undo (aref cl-x 2)) nil] 9 (#$ . 23475)])
(put 'undo-tree-node-undo 'compiler-macro 'undo-tree-node-undo--cmacro)
#@367 Access slot "undo" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-node-undo #[257 "\211\300H\207" [2] 3 (#$ . 23804)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-undo side-effect-free t] 4)
#@76 compiler-macro for inlining `undo-tree-node-redo'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-node-redo--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-redo (aref cl-x 3)) nil] 9 (#$ . 24346)])
(put 'undo-tree-node-redo 'compiler-macro 'undo-tree-node-redo--cmacro)
#@367 Access slot "redo" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-node-redo #[257 "\211\300H\207" [3] 3 (#$ . 24675)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-redo side-effect-free t] 4)
#@81 compiler-macro for inlining `undo-tree-node-timestamp'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-node-timestamp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-timestamp (aref cl-x 4)) nil] 9 (#$ . 25217)])
(put 'undo-tree-node-timestamp 'compiler-macro 'undo-tree-node-timestamp--cmacro)
#@372 Access slot "timestamp" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-node-timestamp #[257 "\211\300H\207" [4] 3 (#$ . 25571)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-timestamp side-effect-free t] 4)
#@78 compiler-macro for inlining `undo-tree-node-branch'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-node-branch--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-branch (aref cl-x 5)) nil] 9 (#$ . 26128)])
(put 'undo-tree-node-branch 'compiler-macro 'undo-tree-node-branch--cmacro)
#@369 Access slot "branch" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-node-branch #[257 "\211\300H\207" [5] 3 (#$ . 26467)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-branch side-effect-free t] 4)
#@81 compiler-macro for inlining `undo-tree-node-meta-data'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-node-meta-data--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-meta-data (aref cl-x 6)) nil] 9 (#$ . 27015)])
(put 'undo-tree-node-meta-data 'compiler-macro 'undo-tree-node-meta-data--cmacro)
#@372 Access slot "meta-data" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-node-meta-data #[257 "\211\300H\207" [6] 3 (#$ . 27369)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-meta-data side-effect-free t] 4)
#@87 Constructor for objects of type `undo-tree-node'.
 
(fn NEXT-NODE UNDO &optional REDO)
(defalias 'undo-tree-make-node-backwards #[898 "C\300 \301\203\302\303\304\305G\\D\"\210\306\307\307&\207" [current-time 0 signal wrong-number-of-arguments undo-tree-make-node-backwards 3 vector nil] 15 (#$ . 27926)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-make-node-backwards side-effect-free t] 4)
#@110 compiler-macro for inlining `undo-tree-make-node'.
 
(fn CL-WHOLE-ARG &cl-quote PREVIOUS UNDO &optional REDO)
(defalias 'undo-tree-make-node--cmacro #[1155 "\300\301\203\302\303\304\305G\\D\"\210\306\307\310\311\211\211   \n\n&\n\207" [(current-time) 0 signal wrong-number-of-arguments undo-tree-make-node--cmacro 4 cl--defsubst-expand (previous undo redo timestamp branch) (cl-block undo-tree-make-node (vector previous nil undo redo timestamp branch nil)) nil] 18 (#$ . 28359)])
(put 'undo-tree-make-node 'compiler-macro 'undo-tree-make-node--cmacro)
#@86 Constructor for objects of type `undo-tree-node'.
 
(fn PREVIOUS UNDO &optional REDO)
(defalias 'undo-tree-make-node #[898 "\300 \301\203\302\303\304\305G\\D\"\210\306\307\307&\207" [current-time 0 signal wrong-number-of-arguments undo-tree-make-node 3 vector nil] 14 (#$ . 28927)])
(byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306&    \207" [function-put undo-tree-make-node side-effect-free t cl-struct-define undo-tree-node nil vector ((previous) (next) (undo) (redo) (timestamp) (branch) (meta-data)) cl-struct-undo-tree-node-tags] 11)
#@10 
 
(fn N)
(defalias 'undo-tree-node-p '(macro . #[257 "\300\301\211\211\211\302 \303\301&G\304\305D\306\307DEE\207" [vector nil current-time 0 and vectorp = length] 9 (#$ . 29506)]))
#@93 compiler-macro for inlining `undo-tree-region-data-undo-beginning'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-region-data-undo-beginning--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-undo-beginning (aref cl-x 0)) nil] 9 (#$ . 29698)])
(put 'undo-tree-region-data-undo-beginning 'compiler-macro 'undo-tree-region-data-undo-beginning--cmacro)
#@379 Access slot "undo-beginning" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-region-data-undo-beginning #[257 "\211\300H\207" [0] 3 (#$ . 30112)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-undo-beginning side-effect-free t] 4)
#@87 compiler-macro for inlining `undo-tree-region-data-undo-end'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-region-data-undo-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-undo-end (aref cl-x 1)) nil] 9 (#$ . 30700)])
(put 'undo-tree-region-data-undo-end 'compiler-macro 'undo-tree-region-data-undo-end--cmacro)
#@373 Access slot "undo-end" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-region-data-undo-end #[257 "\211\300H\207" [1] 3 (#$ . 31084)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-undo-end side-effect-free t] 4)
#@93 compiler-macro for inlining `undo-tree-region-data-redo-beginning'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-region-data-redo-beginning--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-redo-beginning (aref cl-x 2)) nil] 9 (#$ . 31654)])
(put 'undo-tree-region-data-redo-beginning 'compiler-macro 'undo-tree-region-data-redo-beginning--cmacro)
#@379 Access slot "redo-beginning" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-region-data-redo-beginning #[257 "\211\300H\207" [2] 3 (#$ . 32068)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-redo-beginning side-effect-free t] 4)
#@87 compiler-macro for inlining `undo-tree-region-data-redo-end'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-region-data-redo-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-redo-end (aref cl-x 3)) nil] 9 (#$ . 32656)])
(put 'undo-tree-region-data-redo-end 'compiler-macro 'undo-tree-region-data-redo-end--cmacro)
#@373 Access slot "redo-end" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-region-data-redo-end #[257 "\211\300H\207" [3] 3 (#$ . 33040)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-redo-end side-effect-free t] 4)
#@107 compiler-macro for inlining `undo-tree-make-redo-region-data'.
 
(fn CL-WHOLE-ARG REDO-BEGINNING REDO-END)
(defalias 'undo-tree-make-redo-region-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (redo-beginning redo-end) (cl-block undo-tree-make-redo-region-data (vector nil nil redo-beginning redo-end)) nil] 11 (#$ . 33611)])
(put 'undo-tree-make-redo-region-data 'compiler-macro 'undo-tree-make-redo-region-data--cmacro)
#@88 Constructor for objects of type `undo-tree-region-data'.
 
(fn REDO-BEGINNING REDO-END)
(defalias 'undo-tree-make-redo-region-data #[514 "\300\301\211$\207" [vector nil] 7 (#$ . 34067)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-make-redo-region-data side-effect-free t] 4)
#@107 compiler-macro for inlining `undo-tree-make-undo-region-data'.
 
(fn CL-WHOLE-ARG UNDO-BEGINNING UNDO-END)
(defalias 'undo-tree-make-undo-region-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (undo-beginning undo-end) (cl-block undo-tree-make-undo-region-data (vector undo-beginning undo-end nil nil)) nil] 11 (#$ . 34370)])
(put 'undo-tree-make-undo-region-data 'compiler-macro 'undo-tree-make-undo-region-data--cmacro)
#@88 Constructor for objects of type `undo-tree-region-data'.
 
(fn UNDO-BEGINNING UNDO-END)
(defalias 'undo-tree-make-undo-region-data #[514 "\300\301\211$\207" [vector nil] 7 (#$ . 34826)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-make-undo-region-data side-effect-free t] 4)
#@136 compiler-macro for inlining `undo-tree-make-region-data'.
 
(fn CL-WHOLE-ARG &optional UNDO-BEGINNING UNDO-END REDO-BEGINNING REDO-END)
(defalias 'undo-tree-make-region-data--cmacro #[1281 "\300\301\302\303\211\211                &    \207" [cl--defsubst-expand (undo-beginning undo-end redo-beginning redo-end) (cl-block undo-tree-make-region-data (vector undo-beginning undo-end redo-beginning redo-end)) nil] 15 (#$ . 35129)])
(put 'undo-tree-make-region-data 'compiler-macro 'undo-tree-make-region-data--cmacro)
#@122 Constructor for objects of type `undo-tree-region-data'.
 
(fn &optional UNDO-BEGINNING UNDO-END REDO-BEGINNING REDO-END)
(defalias 'undo-tree-make-region-data #[1024 "\300$\207" [vector] 9 (#$ . 35640)])
(byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306&    \207" [function-put undo-tree-make-region-data side-effect-free t cl-struct-define undo-tree-region-data nil vector ((undo-beginning) (undo-end) (redo-beginning) (redo-end)) cl-struct-undo-tree-region-data-tags] 11)
#@10 
 
(fn R)
(defalias 'undo-tree-region-data-p '(macro . #[257 "\300\301\211\211\211$G\302\303D\304\305DEE\207" [vector nil and vectorp = length] 7 (#$ . 36141)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-clear-region-data '(macro . #[257 "\300\301D\302\303\302\304\305\301D\306BBEEE\207" [setf undo-tree-node-meta-data delq nil :region plist-put (:region nil)] 10 (#$ . 36311)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-undo-beginning '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-undo-beginning r)))] 6 (#$ . 36534)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-undo-end '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-undo-end r)))] 6 (#$ . 36797)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-redo-beginning '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-redo-beginning r)))] 6 (#$ . 37048)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-redo-end '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-redo-end r)))] 6 (#$ . 37311)]))
(byte-code "\300\301\302\303#\300\304\302\305#\300\306\302\307#\300\310\302\311#\300\207" [function-put undo-tree-node-undo-beginning gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-undo-beginning #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-undo-beginning r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-undo-end #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-undo-end #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-undo-end r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-redo-beginning #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-redo-beginning #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-redo-beginning r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-redo-end #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-redo-end #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-redo-end r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 7)
#@89 compiler-macro for inlining `undo-tree-visualizer-data-lwidth'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-visualizer-data-lwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-lwidth (aref cl-x 0)) nil] 9 (#$ . 39394)])
(put 'undo-tree-visualizer-data-lwidth 'compiler-macro 'undo-tree-visualizer-data-lwidth--cmacro)
#@213 Access slot "lwidth" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-visualizer-data-lwidth #[257 "\211\300H\207" [0] 3 (#$ . 39788)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-lwidth side-effect-free t] 4)
#@89 compiler-macro for inlining `undo-tree-visualizer-data-cwidth'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-visualizer-data-cwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-cwidth (aref cl-x 1)) nil] 9 (#$ . 40202)])
(put 'undo-tree-visualizer-data-cwidth 'compiler-macro 'undo-tree-visualizer-data-cwidth--cmacro)
#@213 Access slot "cwidth" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-visualizer-data-cwidth #[257 "\211\300H\207" [1] 3 (#$ . 40596)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-cwidth side-effect-free t] 4)
#@89 compiler-macro for inlining `undo-tree-visualizer-data-rwidth'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-visualizer-data-rwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-rwidth (aref cl-x 2)) nil] 9 (#$ . 41010)])
(put 'undo-tree-visualizer-data-rwidth 'compiler-macro 'undo-tree-visualizer-data-rwidth--cmacro)
#@213 Access slot "rwidth" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-visualizer-data-rwidth #[257 "\211\300H\207" [2] 3 (#$ . 41404)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-rwidth side-effect-free t] 4)
#@89 compiler-macro for inlining `undo-tree-visualizer-data-marker'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-visualizer-data-marker--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-marker (aref cl-x 3)) nil] 9 (#$ . 41818)])
(put 'undo-tree-visualizer-data-marker 'compiler-macro 'undo-tree-visualizer-data-marker--cmacro)
#@213 Access slot "marker" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-visualizer-data-marker #[257 "\211\300H\207" [3] 3 (#$ . 42212)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-marker side-effect-free t] 4)
#@120 compiler-macro for inlining `undo-tree-make-visualizer-data'.
 
(fn CL-WHOLE-ARG &optional LWIDTH CWIDTH RWIDTH MARKER)
(defalias 'undo-tree-make-visualizer-data--cmacro #[1281 "\300\301\302\303\211\211                &    \207" [cl--defsubst-expand (lwidth cwidth rwidth marker) (cl-block undo-tree-make-visualizer-data (vector lwidth cwidth rwidth marker)) nil] 15 (#$ . 42627)])
(put 'undo-tree-make-visualizer-data 'compiler-macro 'undo-tree-make-visualizer-data--cmacro)
#@106 Constructor for objects of type `undo-tree-visualizer-data'.
 
(fn &optional LWIDTH CWIDTH RWIDTH MARKER)
(defalias 'undo-tree-make-visualizer-data #[1024 "\300$\207" [vector] 9 (#$ . 43098)])
(byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306&    \207" [function-put undo-tree-make-visualizer-data side-effect-free t cl-struct-define undo-tree-visualizer-data nil vector ((lwidth) (cwidth) (rwidth) (marker)) cl-struct-undo-tree-visualizer-data-tags] 11)
#@10 
 
(fn V)
(defalias 'undo-tree-visualizer-data-p '(macro . #[257 "\300\301\211\211\211$G\302\303D\304\305DEE\207" [vector nil and vectorp = length] 7 (#$ . 43579)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-clear-visualizer-data #[257 "\211\300H\211@\301=\203\211\300AAI\262\2022\211\203)\211A@\301=\204)\211A\262\202\211\2052\211\302\233\241\207" [6 :visualizer 3] 6 (#$ . 43753)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-lwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-lwidth v)))] 6 (#$ . 43986)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-cwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-cwidth v)))] 6 (#$ . 44245)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-rwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-rwidth v)))] 6 (#$ . 44504)]))
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-marker '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-marker v)))] 6 (#$ . 44763)]))
(byte-code "\300\301\302\303#\300\304\302\305#\300\306\302\307#\300\310\302\311#\300\207" [function-put undo-tree-node-lwidth gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-lwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-lwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-cwidth #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-cwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-cwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-rwidth #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-rwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-rwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-marker #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-marker #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-marker v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 7)
#@87 compiler-macro for inlining `undo-tree-register-data-buffer'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-register-data-buffer--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-register-data-buffer (aref cl-x 0)) nil] 9 (#$ . 46874)])
(put 'undo-tree-register-data-buffer 'compiler-macro 'undo-tree-register-data-buffer--cmacro)
#@169 Access slot "buffer" of `(undo-tree-register-data (:type vector) (:constructor nil) (:constructor undo-tree-make-register-data (buffer node)))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-register-data-buffer #[257 "\211\300H\207" [0] 3 (#$ . 47258)])
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-register-data-buffer side-effect-free t] 4)
#@85 compiler-macro for inlining `undo-tree-register-data-node'.
 
(fn CL-WHOLE-ARG CL-X)
(defalias 'undo-tree-register-data-node--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-register-data-node (aref cl-x 1)) nil] 9 (#$ . 47624)])
(put 'undo-tree-register-data-node 'compiler-macro 'undo-tree-register-data-node--cmacro)
#@167 Access slot "node" of `(undo-tree-register-data (:type vector) (:constructor nil) (:constructor undo-tree-make-register-data (buffer node)))' struct CL-X.
 
(fn CL-X)
(defalias 'undo-tree-register-data-node #[257 "\211\300H\207" [1] 3 (#$ . 47998)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put undo-tree-register-data-node side-effect-free t defalias copy-undo-tree-register-data copy-sequence] 4)
#@92 compiler-macro for inlining `undo-tree-make-register-data'.
 
(fn CL-WHOLE-ARG BUFFER NODE)
(defalias 'undo-tree-make-register-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (buffer node) (cl-block undo-tree-make-register-data (vector buffer node)) nil] 11 (#$ . 48420)])
(put 'undo-tree-make-register-data 'compiler-macro 'undo-tree-make-register-data--cmacro)
#@78 Constructor for objects of type `undo-tree-register-data'.
 
(fn BUFFER NODE)
(defalias 'undo-tree-make-register-data #[514 "\300\"\207" [vector] 5 (#$ . 48817)])
(byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306&    \207" [function-put undo-tree-make-register-data side-effect-free t cl-struct-define undo-tree-register-data nil vector ((buffer) (node)) cl-struct-undo-tree-register-data-tags] 11)
#@13 
 
(fn DATA)
(defalias 'undo-tree-register-data-p #[257 "\300!\205\211G\301U\205\300\302H!\205\211\302HG\303U\207" [vectorp 2 1 7] 4 (#$ . 49240)])
#@13 
 
(fn DATA)
(defalias 'undo-tree-register-data-print-func #[257 "\300\301\302\303H\"!\207" [princ format "an undo-tree state for buffer %s" 0] 6 (#$ . 49401)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-register '(macro . #[257 "\300\301D\302BB\207" [plist-get undo-tree-node-meta-data (:register)] 4 (#$ . 49568)]))
(byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-register gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-register #[514 "\300\301D\302\301D\303FE\207" [setf undo-tree-node-meta-data plist-put :register] 8 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4)
#@70 Add an UNDO node to current branch of `buffer-undo-tree'.
 
(fn UNDO)
(defalias 'undo-tree-grow #[257 "\302!    >\204\303\304\305D\"\210\306H\307\310\310\311 \312\310&\211\313\313HBI\266\302!    >\2047\303\304\305D\"\210\211\306I\262\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 vector nil current-time 0 1] 10 (#$ . 50032)])
#@247 Add new node *above* undo-tree NODE, and return new node.
Note that this will overwrite NODE's "previous" link, so should
only be used on a detached NODE, never on nodes that are already
part of `buffer-undo-tree'.
 
(fn NODE UNDO &optional REDO)
(defalias 'undo-tree-grow-backwards #[770 "\300#\211\301I\266\211\207" [undo-tree-make-node-backwards 0] 8 (#$ . 50426)])
#@235 Splice NODE into undo tree, below node SPLICE.
Note that this will overwrite NODE's "next" and "previous"
links, so should only be used on a detached NODE, never on nodes
that are already part of `buffer-undo-tree'.
 
(fn NODE SPLICE)
(defalias 'undo-tree-splice-node #[514 "\211\300\300HI\266\211\301\301HI\266\211\302I\266\211\211\300CI\266\211\211\301\302I\266\300H\211\205@\211@\211\211\302I\266A\266\202\202+\207" [1 5 0] 8 (#$ . 50807)])
#@40 Snip NODE out of undo tree.
 
(fn NODE)
(defalias 'undo-tree-snip-node #[257 "\211\300H\301\211\302HG\300U\203%\211\302\302HI\266\211\303\303HI\266\202\207\304\302H\"\262\303HU\203D\211\303\303H\\I\266\202\\\303HV\203\\\211\303\303H\302HGS\\I\266\300U\203u\211\302\302H\302HA\244I\266\202\207S\302H\233\262\211\302HAA\244\241\210\302H\211\205\237\211@\211\211\300I\266A\266\202\202\212\262\207" [0 nil 1 5 undo-tree-position] 10 (#$ . 51275)])
#@41 
 
(fn --UNDO-TREE-MAPC-FUNCTION-- NODE)
(defalias 'undo-tree-mapc #[514 "\211C\300\205\211A\262\242\262!\210\301\302H\"\262\202\207" [nil append 1] 7 (#$ . 51777)])
#@54 Return number of branches at current undo tree node.
(defalias 'undo-tree-num-branches '(macro . #[0 "\300\207" [(length (undo-tree-node-next (undo-tree-current buffer-undo-tree)))] 1 (#$ . 51961)]))
#@150 Find the first occurrence of NODE in LIST.
Return the index of the matching item, or nil of not found.
Comparison is done with `eq'.
 
(fn NODE LIST)
(defalias 'undo-tree-position #[514 "\300\3012@=\203\302\301\"\210\211T\262A\211\262\204\3030\207" [0 found throw nil] 6 (#$ . 52168)])
(defvar *undo-tree-id-counter* 0)
(make-variable-buffer-local '*undo-tree-id-counter*)
(defalias 'undo-tree-generate-id '(macro . #[0 "\300\207" [(let ((num (prog1 *undo-tree-id-counter* (incf *undo-tree-id-counter*)))) (make-symbol (format "undo-tree-id%d" num)))] 1]))
#@18 
 
(fn UNDO-TREE)
(defalias 'undo-tree-decircle #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\211\300H\211\205\211@\211\211\301\302I\266A\266\202\202\207" [1 0 nil] 7 "\n\n(fn NODE)"] type-of signal wrong-type-argument undo-tree 1] 7 (#$ . 52742)])
#@18 
 
(fn UNDO-TREE)
(defalias 'undo-tree-recircle #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\211\300H\211\205\211@\211\211\301I\266A\266\202\202\207" [1 0] 7 "\n\n(fn NODE)"] type-of signal wrong-type-argument undo-tree 1] 7 (#$ . 53068)])
#@12 
 
(fn ELT)
(defalias 'undo-list-marker-elt-p '(macro . #[257 "\300\301DD\207" [markerp car-safe] 4 (#$ . 53387)]))
#@12 
 
(fn ELT)
(defalias 'undo-list-GCd-marker-elt-p '(macro . #[257 "\300\301D\302\303DD\304\305\306\303DDDC\307BB\310\311DD\257\207" [and car-safe symbolp car let str symbol-name ((and (> (length str) 12) (string= (substring str 0 12) "undo-tree-id"))) numberp cdr-safe] 9 (#$ . 53509)]))
#@12 
 
(fn ELT)
(defalias 'undo-tree-move-GC-elts-to-pool #[257 "\303\242!\2050\211T\304\305\306\"!\262\307@\310    !\n>\204&\311\312\313    D\"\210    \314H#\210\240\262\207" [*undo-tree-id-counter* buffer-undo-tree cl-struct-undo-tree-tags markerp make-symbol format "undo-tree-id%d" puthash type-of signal wrong-type-argument undo-tree 5] 9 (#$ . 53809)])
#@12 
 
(fn ELT)
(defalias 'undo-tree-restore-GC-elts-from-pool #[257 "\211\242\203C\211@9\203C\302@!\211G\303V\205\211\304\303O\305\230\262\203C\211\243\247\203C\211\306@\307!    >\204:\310\311\312D\"\210\313H\"\240\205D\207\211\207" [buffer-undo-tree cl-struct-undo-tree-tags symbol-name 12 0 "undo-tree-id" gethash type-of signal wrong-type-argument undo-tree 5] 8 (#$ . 54172)])
#@18 
 
(fn UNDO-LIST)
(defalias 'undo-list-clean-GCd-elts #[257 "\211@\242\203L\211@@9\203L\302@@!\211G\303V\205\211\304\303O\305\230\262\203L\211@\243\247\203L\306@@\307!    >\204>\310\311\312D\"\210\313H\"\204\211A\262\202\211\211A\203\251\211A@\242\203\242\211A@@9\203\242\302A@@!\211G\303V\205t\211\304\303O\305\230\262\203\242\211A@\243\247\203\242\306A@@\307!    >\204\225\310\311\312D\"\210\313H\"\204\242\211AA\241\210\211A\262\202M\210\207" [buffer-undo-tree cl-struct-undo-tree-tags symbol-name 12 0 "undo-tree-id" gethash type-of signal wrong-type-argument undo-tree 5] 8 (#$ . 54566)])
#@30 
 
(fn &optional DISCARD-POS)
(defalias 'undo-list-pop-changeset #[256 "@\203\211\203@\250\203A\211\202@\301=\203#\302B\211\207\211A\242C\211\303@!\210\203?@\250\203?A\202/@\203[@\301=\204[\211\211A\242C\241\210\211A\262\202*\207" [buffer-undo-list undo-tree-canary nil undo-tree-move-GC-elts-to-pool] 7 (#$ . 55194)])
#@18 
 
(fn UNDO-LIST)
(defalias 'undo-tree-copy-list #[257 "\211\205A\300\211\204\301\211A\262\242!\262\202C\262\262\203>\211\301\302\211A\262\242!!\241\203\211AC\241\210\211A\262\202\266\202\207" [nil undo-tree-restore-GC-elts-from-pool undo-copy-list-1] 8 (#$ . 55553)])
(defalias 'undo-list-transfer-to-tree #[0 "\303=\203\n\304\305!\210\204\306     \204\307    A@\310=\206#    @\310=?\205:\311 \312 \313\314\211\314\315\314&\266\202\316!\n>\204F\317\320\321D\"\210\322H\323\322H!\324\316!\n>\204^\317\320\321D\"\210\211\322I\266    \203\211    A@\310=\204\211\325\311 \"\262\323\322H!\\\262\211T\262\202f    A@\310=\204\230    @\310=\203\351\211\315I\266\211\324\324HBI\266\211\326\315I\266\316!\n>\204\301\317\320\321D\"\210\211\327\327H\\I\266\316!\n>\204\333\317\320\321D\"\210\211\330\330H\\I\266\2026\325\314\"\262\316!\n>\204\376\317\320\321D\"\210\211\324I\266\331\316!\n>\204\317\320\321D\"\210\211\327I\266\316!\n>\204-\317\320\321D\"\210\211\330I\266\332\266\333 \207" [buffer-undo-tree buffer-undo-list cl-struct-undo-tree-tags t cl--assertion-failed (not (eq buffer-undo-tree t)) make-undo-tree (nil undo-tree-canary) undo-tree-canary undo-list-pop-changeset current-time vector nil 0 type-of signal wrong-type-argument undo-tree 2 undo-list-byte-size 1 undo-tree-grow-backwards 5 3 4 (nil undo-tree-canary) (nil undo-tree-canary) undo-tree-discard-history] 10])
#@18 
 
(fn UNDO-LIST)
(defalias 'undo-list-byte-size #[257 "\300\211\203(\301\\\262\211@:\203!\211@@;\203!\302@@!\\\262\211A\262\202\207" [0 8 string-bytes] 6 (#$ . 57023)])
#@68 Rebuild `buffer-undo-list' from information in `buffer-undo-tree'.
(defalias 'undo-list-rebuild-from-tree #[0 "\303=?\205\242\304 \210\305    \205\242\306    !\n>\204\307\310\311    D\"\210    \312HCC\313\314\315@@\211\312H\262\"\316\"B\262\211@\204V\211A@@\306    !\n>\204N\307\310\311    D\"\210    \317H=?\205\240\211@\203\320@@\211\317H\262\"\321 \210\313\314\315@@\211\312H\262\"\322\"B\262\2026\211A\262\320@@\211\323H\262\"\321 \210\211\211@\211A\240\210\266\2026\262\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t undo-list-transfer-to-tree nil type-of signal wrong-type-argument undo-tree 1 sort mapcar identity #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"] 2 append undo-boundary #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"] 3] 7 (#$ . 57211)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-oldest-leaf #[257 "\211\300H\203\301\302\303\300H\"\304\"@\262\202\207" [1 sort mapcar identity #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"]] 6 (#$ . 58044)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-discard-node #[257 "\211\302!    >\204\303\304\305D\"\210\306H=?\205\310\211\302!    >\204(\303\304\305D\"\210\307H=\203\211\307HG\307V\203<\310\311!\207\211\307H@\302!    >\204O\303\304\305D\"\210\306H=\203X\312\207\313\314H\315\"\211\203o\316!=\203o\317\312\"\210\210\302!    >\204\303\304\305D\"\210\211\307\307H@I\262\262\302!    >\204\232\303\304\305D\"\210\211\320\320H\321\306H!\321\320H!\\ZI\266\302!    >\204\277\303\304\305D\"\210\211\322\322HSI\266\211\211\306\312I\266\211\211\320\312I\266\211\211\323\312I\266\211\307HG\307V\204\211\307H@\302!    >\204\372\303\304\305D\"\210\306H=\203\324!\207\207\211\323H\211\325H\307H8\313\314H\315\"\211\203'\316!=\203'\317\312\"\210\210\302!    >\2047\303\304\305D\"\210\211\320\320H\321\306H!\321\320H!\\ZI\266\302!    >\204]\303\304\305D\"\210\211\322\322HSI\266\211\307\326\307H\"I\266\211\325\327\307H\"I\266\302!    >\204\222\303\304\305D\"\210\306H=\204\277\307H\203\305\302!    >\204\257\303\304\305D\"\210\307H=\203\277\307HG\307V\203\305\324!\202\306\266\202\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 1 error "Trying to discard undo-tree root which still has multiple branches" nil plist-get 6 :register get-register set-register 3 undo-list-byte-size 4 0 undo-tree-oldest-leaf 5 delq undo-tree-position] 11 (#$ . 58268)])
#@126 Discard undo history until we're within memory usage limits
set by `undo-limit', `undo-strong-limit' and `undo-outer-limit'.
(defalias 'undo-tree-discard-history #[0 "\306!    >\204\307\310\311D\"\210\312H\nV\205N\306!    >\204&\307\310\311D\"\210\313H\313HG\313V\203H\314\306!    >\204A\307\310\311D\"\210\313H!\202Z\306!    >\204W\307\310\311D\"\210\313H\211\203}\306!    >\204m\307\310\311D\"\210\312H V\203}\315!\262\202Z\211\203\356\306!    >\204\220\307\310\311D\"\210\312H\nV\203\356\306!    >\204\247\307\310\311D\"\210\312H\306!    >\204\272\307\310\311D\"\210\313H=\203\325\316\313H@\317H!\316\313H@\312H!\\\202\340\316\317H!\316\312H!\\Z\nV\203\356\315!\262\202}\306!    >\204\375\307\310\311D\"\210\312H\fV\205L \203+\320\321\322\323 \306!    >\204\307\310\311D\"\210\312H#!\205L\324\211\202L\325\326\321\327\323 \306!    >\204@\307\310\311D\"\210\312H#\330P\331#\210\324\211\262\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-limit undo-strong-limit undo-outer-limit undo-ask-before-discard type-of signal wrong-type-argument undo-tree 3 1 undo-tree-oldest-leaf undo-tree-discard-node undo-list-byte-size 2 yes-or-no-p format "Buffer `%s' undo info is %d bytes long;  discard it? " buffer-name nil display-warning (undo discard-info) "Buffer `%s' undo info was %d bytes long.\n" "The undo info was discarded because it exceeded `undo-outer-limit'.\n\nThis is normal if you executed a command that made a huge change\nto the buffer. In that case, to prevent similar problems in the\nfuture, set `undo-outer-limit' to a value that is large enough to\ncover the maximum size of normal changes you expect a single\ncommand to make, but not so large that it might exceed the\nmaximum memory allotted to Emacs.\n\nIf you did not execute any such command, the situation is\nprobably due to a bug and you should report it.\n\nYou can disable the popping up of this buffer by adding the entry\n(undo discard-info) to the user option `warning-suppress-types',\nwhich is defined in the `warnings' library.\n" :warning] 10 (#$ . 59724)])
#@61 Recursively compute widths for nodes below NODE.
 
(fn NODE)
(defalias 'undo-tree-compute-widths #[257 "\211C\300\205\312\301\302@!\211\262!\203(\302@!\211\262G\303U\203(\211B\262\202@\304\305H\306\"\301!\203=\211G\307U\204R\211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\312\312HI\266@\304\305H\306\"\301!\203p\211G\307U\204\205\211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\313\313HI\266@\304\305H\306\"\301!\203\243\211G\307U\204\270\211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\314\314HI\266\211A\262\210\202\207" [nil vectorp undo-tree-node-compute-widths 7 plist-get 6 :visualizer 4 plist-put vector 0 1 2] 16 (#$ . 61816)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-compute-widths #[257 "\211\300HG\301\211\211\302\3032\217\301U\203\250\300\262\304\305H\306\"\307!\203)\211G\310U\204>\211\305\311\305H\306\312\302\211\211\211$\211\262#I\266\211\211\301\211I\266\304\305H\306\"\307!\203Y\211G\310U\204n\211\305\311\305H\306\312\302\211\211\211$\211\262#I\266\211\211\300\211I\266\304\305H\306\"\307!\203\211\211G\310U\204\236\211\305\311\305H\306\312\302\211\211\211$\211\262#I\266\211\211\313\301I\266\202\211\314\313\"\300U\203\\\300H\262\313\245\301\211W\203G\211\304@\305H\306\"\307!\205\330\211G\310U\205\330\211\301H\262\2035\315\304@\305H\306\"\307!\205\370\211G\310U\205\370\211\301H\262\304@\305H\306\"\307!\205\211G\310U\205\211\300H\262\304@\305H\306\"\307!\205,\211G\310U\205,\211\313H\262#\\\262\202;\316\303@\"\210A\262\210\211T\262\202\272\266\304@\305H\306\"\307!\205`\211G\310U\205`\211\301H\262\203\205\304@\305H\306\"\307!\205}\211G\310U\205}\211\301H\262\\\262\202\213\316\303@\"\210\304@\305H\306\"\307!\205\242\211G\310U\205\242\211\300H\262\262\304@\305H\306\"\307!\205\276\211G\310U\205\276\211\313H\262\\\262\211A\262\313\245\301\211W\203W\211\304@\305H\306\"\307!\205\351\211G\310U\205\351\211\301H\262\203E\315\304@\305H\306\"\307!\205\211G\310U\205\211\301H\262\304@\305H\306\"\307!\205\"\211G\310U\205\"\211\300H\262\304@\305H\306\"\307!\205<\211G\310U\205<\211\313H\262#\\\262\202K\316\303@\"\210A\262\210\211T\262\202\313\266\202\211\300H\262\313\245\301\211W\203\362\211\304@\305H\306\"\307!\205\203\211G\310U\205\203\211\301H\262\203\340\315\304@\305H\306\"\307!\205\243\211G\310U\205\243\211\301H\262\304@\305H\306\"\307!\205\275\211G\310U\205\275\211\300H\262\304@\305H\306\"\307!\205\327\211G\310U\205\327\211\313H\262#\\\262\202\346\316\303@\"\210A\262\210\211T\262\202e\266\301\262\313\245\301\211W\203\207\211\304@\305H\306\"\307!\205\211G\310U\205\211\301H\262\203u\315\304@\305H\306\"\307!\2058\211G\310U\2058\211\301H\262\304@\305H\306\"\307!\205R\211G\310U\205R\211\300H\262\304@\305H\306\"\307!\205l\211G\310U\205l\211\313H\262#\\\262\202{\316\303@\"\210A\262\210\211T\262\202\373\266\312#0\207" [1 0 nil need-widths plist-get 6 :visualizer vectorp 4 plist-put vector 2 mod + throw] 19 (#$ . 62555)])
#@13 
 
(fn TREE)
(defalias 'undo-tree-clear-visualizer-data #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\300!\207" [undo-tree-node-clear-visualizer-data] 3 "\n\n(fn N)"] type-of signal wrong-type-argument undo-tree 1] 7 (#$ . 65004)])
#@29 
 
(fn NODE &optional MTIME)
(defalias 'undo-tree-node-unmodified-p #[513 "\300\211\301H\206\302H@\211\262\205\303H\262\3042D\211\205A\211@\211:\203:\211@\305=\203:\211A:\203:\306\304A\"\210A\266\202\202\2620\262\211\205i?\206i\211A<\203[\211\232\202i\211@@U\205i\211AA@U\207" [nil 3 1 2 found t throw] 9 (#$ . 65308)])
(defvar undo-adjusted-markers nil)
#@18 
 
(fn START END)
(defalias 'undo-tree-pull-undo-in-region-branch #[514 "\304\"\203    \305\207\306C\211\306C\211\307!    >\204\310\311\312D\"\210\313H\314\"\306\211\306\211\211\211\211\211\211\203\235    \262    \315H@\262    \262\306    \315HG\315U\203o\316 \210    \262\307!    >\204g\310\311\312D\"\210\313H\262\n\202G)\n=\203{\306\262    \211\315\317 \315H\"I\266\211\320\306I\266\262    \262\202    \315H\203\321\306\211\211\211\322 \320\306&\262\262    \323H\n\315H8\211\262 \203\366\324 \313H!\324\f\325H!\322 \321\306\320\306&\266\204\211\315\315HBI\266\315H@\262\202\265\315H@\262\306\262\307!    >\204\310\311\312D\"\210\313H\262\n\3262.?\205-    \205-    \313H\205-\306\324 \313H!B\262A@\262\203P\327\"\262\204a\262\202a\321\306\211\306\322 \320\306&\262\262\211\203\370\330#\203\242\211:\203\203\211@;\204\200\211@\250\203\203\305\262\331\"\210\f\332A\"C\241\210\fA\262 \211AA\241\210\202\360\211:\203\267\211@\305=\203\267\211AA\241\210\202\360\333#\203\326\203\313\306\262\202\360\306\262\334\326\305\"\210\202\360\335!\211A\320U\204\353 C\241\210 A\262\f\210A\262A@\262\202a\313HA@\203\211\313H\211\313AI\210\266\202$=\203\306\262\315H@\262    \320H\262\n\2020\210 A\262 \204|\205A\211\315\315HBI\266\211\323\320I\266\211\320I\266\306\307!    >\204i\310\311\312D\"\210\313H=\204w\336 \210\202Z)\306\202A\306\307!    >\204\214\310\311\312D\"\210\313H\307!    >\204\240\310\311\312D\"\210\313H\f=\204\257\316 \210\202\221\307!    >\204\276\310\311\312D\"\210\313H=\204\314\336 \210\202\257)\266\204\321\n\306\306\322 \320\306&\262    \211\315\n\315HBI\266    \211\323\320I\266\307!    >\204\310\311\312D\"\210\211\313\nI\266\202\342\204W\327\"\262    \211\315\n\315HBI\266    \211\323\320I\266\211\320\fI\266\307!    >\204L\310\311\312D\"\210\211\313\nI\266\202\342\211\320\fI\266    \211\315\n\315HBI\266    \211\323\320I\266\203\266\307!    >\204\211\310\311\312D\"\210\211\313\320HI\266\306\307!    >\204\244\310\311\312D\"\210\313H=\204\265\336\306\337\"\210\202\225)\321\306\211\306\322 \320\306&\262\n\340\n\"\210\307!    >\204\332\310\311\312D\"\210\211\313\fI\266\320H\262\n    \315H@\211\262 \203@    =\204@\307!    >\204\n\310\311\312D\"\210\211\341\341HTI\262\203@\307!    >\204&\310\311\312D\"\210\211\325\325H\342\313H!\342\325H!\\\\I\262\204\350\305)\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-adjusted-markers mark-active undo-tree-reverting-redo-in-region-p t nil type-of signal wrong-type-argument undo-tree 2 undo-tree-repeated-undo-in-region-p 1 undo-tree-undo-1 delq 0 vector current-time 5 undo-copy-list 3 abort undo-tree-grow-backwards undo-elt-in-region undo-tree-adjust-elements-to-elt undo-tree-apply-deltas undo-elt-crosses-region throw undo-delta undo-tree-redo-1 preserve-undo undo-tree-splice-node 4 undo-list-byte-size] 29 (#$ . 65698)])
#@18 
 
(fn START END)
(defalias 'undo-tree-pull-redo-in-region-branch #[514 "\303\"\203    \304\207\305C\211\305C\211\306!    >\204\307\310\311D\"\210\312H\313\"\305\211\305\211\211\211\203V\314H@\211\262\203\253\211\315\305I\266\211\314\316 \314H\"I\266\202\253\314H\203\253\317\305\211\211\211\320 \315\305&\262\262\321H\314H8\211\262\203\245\322\323H!\320 \317\305\211\315\305&\266\203\211\314\314HBI\266\314H@\262\202m\314H@\262\262\3242\250?\205\247\205\247\323H\205\247\211\323\305\323HBI\262\262A@\262\211\203n\325#\203\211:\203\370\211@;\204\365\211@\250\203\370\304\262\326\304#\210    \327 A\330#C\241\210    A\262\n\211AA\241\210\202f\211:\203-\211@\304=\203-\211AA\241\210\202f\331#\203L\203A\305\262\202f\305\262 \332\324\304\"\210\202f\333!\211A\315U\204aC\241\210A\262    \210A\262A@\262\202\326\323HA@\203\210\211\312H\211\312AI\210\266\202\235=\203\230\314H@\262\202\235\334!\210\314H@\262\202\2620\210\nA\262 \306!    >\204\275\307\310\311D\"\210\312H\262\n@\204\361\205\231\205\231\211\314\314HBI\266\211\321\315I\266\211\315    I\266\305\202\231\203\376\335\305 #\202\n\317\305\211\211\320 \315\305&\262\211\314\314HBI\266\211\321\315I\266\211\315    I\266\204y\262\314H@\211\262\203y\306!    >\204J\307\310\311D\"\210\211\336\336HTI\262\203y\306!    >\204f\307\310\311D\"\210\211\323\323H\337 \323H!\\I\262\2040\306!    >\204\210\307\310\311D\"\210\211\323\323H\337    \323H!\\I\266\304)\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-adjusted-markers undo-tree-reverting-undo-in-region-p t nil type-of signal wrong-type-argument undo-tree 2 undo-tree-repeated-redo-in-region-p 1 0 delq vector current-time 5 undo-copy-list 3 abort undo-elt-in-region undo-tree-adjust-elements-to-elt undo-tree-apply-deltas -1 undo-elt-crosses-region throw undo-delta undo-tree-snip-node undo-tree-grow-backwards 4 undo-list-byte-size] 25 (#$ . 68744)])
#@341 Adjust buffer positions of undo elements, starting at NODE's
and going up the tree (or down the active branch if BELOW is
non-nil) and through the nodes' undo elements until we reach
UNDO-ELT.  UNDO-ELT must appear somewhere in the undo changeset
of either NODE itself or some node above it in the tree.
 
(fn NODE UNDO-ELT &optional BELOW)
(defalias 'undo-tree-adjust-elements-to-elt #[770 "\300!C\301H\211@\205C\211@=?\205C\211\302@\303#\240\210\211A\211\262@\204\2036\304H\305H8\262\202;\306H\262\301H\262\202\207" [undo-delta 2 undo-tree-apply-deltas -1 5 1 0] 10 (#$ . 70794)])
#@38 
 
(fn UNDO-ELT DELTAS &optional SGN)
(defalias 'undo-tree-apply-deltas #[770 "\300\211\211\203\253\211@\211@\262\211A\206\301_\262\250\203-Y\203\244Z\262\202\244:\203\244@;\203b\302A!A\303WY\203]\203U\304\202V\301Z_\241\210\266\202\244@\250\203\204@Y\203\244\211@Z\240\210\211AZ\241\210\202\244@\204\244\305\233\211@Y\203\243\211@Z\240\210\211AZ\241\210\210A\266\202\202\210\207" [nil 1 abs 0 -1 3] 13 (#$ . 71404)])
#@18 
 
(fn START END)
(defalias 'undo-tree-repeated-undo-in-region-p #[514 "\302!    >\204\303\304\305D\"\210\306H\211\307H\310H8\211\262\205V\311\312H\313\"\314!\2055\211G\315U\2055\211\316H\262=\205V\311\312H\313\"\314!\205R\211G\315U\205R\211\310H\262=\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 5 1 plist-get 6 :region vectorp 4 0] 6 (#$ . 71899)])
#@18 
 
(fn START END)
(defalias 'undo-tree-repeated-redo-in-region-p #[514 "\302!    >\204\303\304\305D\"\210\306H\307\310H\311\"\312!\205(\211G\313U\205(\211\306H\262=\205I\307\310H\311\"\312!\205E\211G\313U\205E\211\314H\262=\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 plist-get 6 :region vectorp 4 3] 6 (#$ . 72323)])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias undo-tree-reverting-undo-in-region-p undo-tree-repeated-undo-in-region-p undo-tree-reverting-redo-in-region-p undo-tree-repeated-redo-in-region-p] 3)
#@97 Non-nil if Undo-Tree mode is enabled.
Use the command `undo-tree-mode' to change this variable.
(defvar undo-tree-mode nil (#$ . 72922))
(make-variable-buffer-local 'undo-tree-mode)
#@513 Toggle undo-tree mode.
With no argument, this command toggles the mode.
A positive prefix argument turns the mode on.
A negative prefix argument turns it off.
 
Undo-tree-mode replaces Emacs' standard undo feature with a more
powerful yet easier to use version, that treats the undo history
as what it is: a tree.
 
The following keys are available in `undo-tree-mode':
 
  \{undo-tree-map}
 
Within the undo-tree visualizer, the following keys are available:
 
  \{undo-tree-visualizer-mode-map}
 
(fn &optional ARG)
(defalias 'undo-tree-mode #[256 "\302 \303=\203 ?\202\304!\305V\211\204\306 \210\307\310\311\203&\312\202'\313\"\210\314\315!\203K\302 \203;\211\302 \232\203K\316\317\320\203F\321\202G\322#\266\210\323 \210\207" [undo-tree-mode buffer-undo-tree current-message toggle prefix-numeric-value 0 undo-list-rebuild-from-tree nil run-hooks undo-tree-mode-hook undo-tree-mode-on-hook undo-tree-mode-off-hook called-interactively-p any " in current buffer" message "Undo-Tree mode %sabled%s" "en" "dis" force-mode-line-update] 8 (#$ . 73111) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
(defvar undo-tree-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\211%\207" [undo-tree-map undo-tree-mode-hook variable-documentation put "Hook run after entering or leaving `undo-tree-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode undo-tree-mode undo-tree-mode-lighter nil] 6)
#@753 Enable `undo-tree-mode' in the current buffer, when appropriate.
Some major modes implement their own undo system, which should
not normally be overridden by `undo-tree-mode'. This command does
not enable `undo-tree-mode' in such buffers. If you want to force
`undo-tree-mode' to be enabled regardless, use (undo-tree-mode 1)
instead.
 
The heuristic used to detect major modes in which
`undo-tree-mode' should not be used is to check whether either
the `undo' command has been remapped, or the default undo
keybindings (C-/ and C-_) have been overridden somewhere other
than in the global map. In addition, `undo-tree-mode' will not be
enabled if the buffer's `major-mode' appears in
`undo-tree-incompatible-major-modes'.
 
(fn &optional PRINT-MESSAGE)
(defalias 'turn-on-undo-tree-mode #[256 "\302\303!\204\304 \204    >\203\211\205\305\306!\207\307\310!\207" [major-mode undo-tree-incompatible-major-modes key-binding [remap undo] undo-tree-overridden-undo-bindings-p message "Buffer does not support undo-tree-mode; undo-tree-mode NOT enabled" undo-tree-mode 1] 3 (#$ . 74663) "p"])
#@285 Returns t if default undo bindings are overridden, nil otherwise.
Checks if either of the default undo key bindings ("C-/" or
"C-_") are overridden in the current buffer by any keymap other
than the global one. (So global redefinitions of the default undo
key bindings do not count.)
(defalias 'undo-tree-overridden-undo-bindings-p #[0 "\300\301 \302\"\300\301 \303\"\304\305\306\"\210\304\307\306\"\210\310\311\312\313\314\"\315\"\316$\216\317\320!\2032\317\321!\306=?\206>\317\322!\205>\317\323!\306=?)\207" [lookup-key current-global-map [67108911] [31] global-set-key [67108911] undo [31] make-byte-code 0 "\302\303\300\"\210\302\304\301\"\207" vconcat vector [global-set-key [67108911] [31]] 3 key-binding [67108911] [67108911] [31] [31]] 9 (#$ . 75761)])
(defvar undo-tree-mode-major-mode nil)
(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317& \207" [make-variable-buffer-local undo-tree-mode-major-mode custom-declare-variable global-undo-tree-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Global Undo-Tree mode is enabled.\nSee the `global-undo-tree-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-undo-tree-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group undo-tree :type boolean] 12)
#@359 Toggle Undo-Tree mode in all buffers.
With prefix ARG, enable Global Undo-Tree mode if ARG is positive;
otherwise, disable it.  If called from Lisp, enable the mode if
ARG is omitted or nil.
 
Undo-Tree mode is enabled in all buffers where
`turn-on-undo-tree-mode' would do it.
See `undo-tree-mode' for more information on Undo-Tree mode.
 
(fn &optional ARG)
(defalias 'global-undo-tree-mode #[256 "\302 \303\300\304=\203\305\300!?\202\306!\307V\"\210\203.\310\311\312\"\210\310\313\314\"\210\310\315\316\"\210\202=\317\311\312\"\210\317\313\314\"\210\317\315\316\"\210\320 \211\203c\211@r\211q\210\203S\321 \210\202[    \203[\301\322!\210)A\266\202\202?\210\323\324\305\300!\203p\325\202q\326\"\210\327\330!\203\233\331\300!\210\302 \203\211\211\302 \232\203\233\332\333\334\305\300!\203\226\335\202\227\336#\266\210\337 \210\305\300!\207" [global-undo-tree-mode undo-tree-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook after-change-major-mode-hook global-undo-tree-mode-enable-in-buffers find-file-hook global-undo-tree-mode-check-buffers change-major-mode-hook global-undo-tree-mode-cmhh remove-hook buffer-list turn-on-undo-tree-mode -1 run-hooks global-undo-tree-mode-hook global-undo-tree-mode-on-hook global-undo-tree-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Global Undo-Tree mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 77198) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
(defvar global-undo-tree-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [global-undo-tree-mode-map global-undo-tree-mode-hook variable-documentation put "Hook run after entering or leaving `global-undo-tree-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode global-undo-tree-mode nil boundp] 6)
(defvar undo-tree-mode-set-explicitly nil nil)
(make-variable-buffer-local 'undo-tree-mode-set-explicitly)
(defalias 'undo-tree-mode-set-explicitly #[0 "\301\211\207" [undo-tree-mode-set-explicitly t] 2])
(byte-code "\300\301\302\303#\210\304\305\301\"\207" [put undo-tree-mode-set-explicitly definition-name global-undo-tree-mode add-hook undo-tree-mode-hook] 4)
(defvar global-undo-tree-mode-buffers nil)
(defalias 'global-undo-tree-mode-enable-in-buffers #[0 "\211\2056\211@\305!\203/r\211q\210    \204,\n =\204,\f\203)\304\306!\210\307 \210\202,\307 \210 )A\266\202\202\207" [global-undo-tree-mode-buffers undo-tree-mode-set-explicitly undo-tree-mode-major-mode major-mode undo-tree-mode buffer-live-p -1 turn-on-undo-tree-mode] 4])
(put 'global-undo-tree-mode-enable-in-buffers 'definition-name 'global-undo-tree-mode)
(defalias 'global-undo-tree-mode-check-buffers #[0 "\301 \210\302\303\304\305\"\207" [global-undo-tree-mode-buffers global-undo-tree-mode-enable-in-buffers nil remove-hook post-command-hook global-undo-tree-mode-check-buffers] 3])
(put 'global-undo-tree-mode-check-buffers 'definition-name 'global-undo-tree-mode)
(defalias 'global-undo-tree-mode-cmhh #[0 "p\211\235\203\f\210\202\211B\210\301\302\303\"\207" [global-undo-tree-mode-buffers add-hook post-command-hook global-undo-tree-mode-check-buffers] 3])
(put 'global-undo-tree-mode-cmhh 'definition-name 'global-undo-tree-mode)
#@347 Undo changes.
Repeat this command to undo more changes.
A numeric ARG serves as a repeat count.
 
In Transient Mark mode when the mark is active, only undo changes
within the current region. Similarly, when not in Transient Mark
mode, just \[universal-argument] as an argument limits undo to
changes within the current region.
 
(fn &optional ARG)
(defalias 'undo-tree-undo #[256 "\303=\203\n\304\305!\210\306!\210\307    !\n>\204\310\311\312    D\"\210    \313H\314HG\314V\205+\315\316!\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" undo-tree-undo-1 type-of signal wrong-type-argument undo-tree 2 1 message "Undo branch point!"] 5 (#$ . 80589) "*P"])
#@56 
 
(fn &optional ARG PRESERVE-REDO PRESERVE-TIMESTAMPS)
(defalias 'undo-tree-undo-1 #[768 "\306\205\307 \206\205\247?\310\211\311 \210\247\203'\312!\206(\313\314\211W\203G\211\315 !\f>\204?\316\317\320 D\"\210 \321H\314H\204K\322\323!\210    \203\\\324\325 \326 \"\204\\\322\327!\210\315 !\f>\204k\316\317\320 D\"\210 \321H\262\315 !\f>\204\316\317\320 D\"\210 \211\330\330H\331\321H!ZI\266\211\321\332\321H!I\266\315 !\f>\204\252\316\317\320 D\"\210 \211\330\330H\331\321H!\\I\266    \203\312\333 `\310\223\262\334\306\"\210\335\313\336\321H!\"\210\337 \210\203,\340 \210\315 !\f>\204\356\316\317\320 D\"\210 \211\330\330H\331\330H!ZI\266\211\330\332\330H!I\266\315 !\f>\204\316\317\320 D\"\210 \211\330\330H\331\330H!\\I\266\202s\315 !\f>\204;\316\317\320 D\"\210 \211\330\330H\331\330H!ZI\266\211\330\340\341!I\266\315 !\f>\204c\316\317\320 D\"\210 \211\330\330H\331\330H!\\I\266\315 !\f>\204\202\316\317\320 D\"\210 \211\321\315 !\f>\204\224\316\317\320 D\"\210 \321H\314HI\266\204\272\315 !\f>\204\260\316\317\320 D\"\210 \321H\211\342\343 I\266    \204\325\211\344\345\310\345\346\347 \344H\346\310#\"\"I\266\202?b\210\350\344H\346\"\351!\203\354\211G\342U\204\211\344\347\344H\346\352\310\211\211\211$\211\262#I\266\211\211\314\325 I\266\350\344H\346\"\351!\203\211G\342U\2042\211\344\347\344H\346\352\310\211\211\211$\211\262#I\266\211\211\313\326 I\266\310\211\223\210\210\211T\262\202)\266    ?\211*\207" [undo-tree-enable-undo-in-region undo-in-region undo-in-progress buffer-undo-tree cl-struct-undo-tree-tags deactivate-mark t region-active-p nil undo-list-transfer-to-tree prefix-numeric-value 1 0 type-of signal wrong-type-argument undo-tree 2 user-error "No further undo information" undo-tree-pull-undo-in-region-branch region-beginning region-end "No further undo information for region" 3 undo-list-byte-size undo-list-clean-GCd-elts make-marker set-marker-insertion-type primitive-undo undo-tree-copy-list undo-boundary undo-list-pop-changeset discard-pos 4 current-time 6 delq :region plist-put plist-get vectorp vector] 23 (#$ . 81311)])
#@305 Redo changes. A numeric ARG serves as a repeat count.
 
In Transient Mark mode when the mark is active, only redo changes
within the current region. Similarly, when not in Transient Mark
mode, just \[universal-argument] as an argument limits redo to
changes within the current region.
 
(fn &optional ARG)
(defalias 'undo-tree-redo #[256 "\303=\203\n\304\305!\210\306!\210\307    !\n>\204\310\311\312    D\"\210    \313H\314HG\314V\205+\315\316!\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" undo-tree-redo-1 type-of signal wrong-type-argument undo-tree 2 1 message "Undo branch point!"] 5 (#$ . 83484) "*P"])
#@56 
 
(fn &optional ARG PRESERVE-UNDO PRESERVE-TIMESTAMPS)
(defalias 'undo-tree-redo-1 #[768 "\305\205\306 \206\205\247?\307\211\310 \210\247\203%\311!\206&\312\313\211W\203+\211\314\n! >\204=\315\316\317\nD\"\210\n\320H\312H\204I\321\322!\210\203Z\323\324 \325 \"\204Z\321\326!\210\314\n! >\204i\315\316\317\nD\"\210\n\320H\262\327H\312H8\262\314\n! >\204\206\315\316\317\nD\"\210\n\211\330\330H\331\330H!ZI\266\211\330\332\330H!I\266\314\n! >\204\261\315\316\317\nD\"\210\n\211\330\330H\331\330H!\\I\266\203\321\333 `\307\223\262\334\305\"\210\335\312\336\330H!\"\210\337 \210\314\n! >\204\355\315\316\317\nD\"\210\n\211\320I\266\203J\340 \210\314\n! >\204\f\315\316\317\nD\"\210\n\211\330\330H\331\320H!ZI\266\211\320\332\320H!I\266\314\n! >\2047\315\316\317\nD\"\210\n\211\330\330H\331\320H!\\I\266\202\221\314\n! >\204Y\315\316\317\nD\"\210\n\211\330\330H\331\320H!ZI\266\211\320\340\341!I\266\314\n! >\204\201\315\316\317\nD\"\210\n\211\330\330H\331\320H!\\I\266\204\236\211\342\343 I\266\204\271\211\344\345\307\345\346\347 \344H\346\307#\"\"I\266\202#b\210\350\344H\346\"\351!\203\320\211G\342U\204\345\211\344\347\344H\346\352\307\211\211\211$\211\262#I\266\211\211\320\324 I\266\350\344H\346\"\351!\203\211G\342U\204\211\344\347\344H\346\352\307\211\211\211$\211\262#I\266\211\211\330\325 I\266\307\211\223\210\210\211T\262\202'\266?\211)\207" [undo-tree-enable-undo-in-region undo-in-progress buffer-undo-tree cl-struct-undo-tree-tags deactivate-mark t region-active-p nil undo-list-transfer-to-tree prefix-numeric-value 1 0 type-of signal wrong-type-argument undo-tree 2 user-error "No further redo information" undo-tree-pull-redo-in-region-branch region-beginning region-end "No further redo information for region" 5 3 undo-list-byte-size undo-list-clean-GCd-elts make-marker set-marker-insertion-type primitive-undo undo-tree-copy-list undo-boundary undo-list-pop-changeset discard-pos 4 current-time 6 delq :region plist-put plist-get vectorp vector] 23 (#$ . 84164)])
#@149 Switch to a different BRANCH of the undo tree.
This will affect which branch to descend when *redoing* changes
using `undo-tree-redo'.
 
(fn BRANCH)
(defalias 'undo-tree-switch-branch #[257 "\303=\203\n\304\305!\210\306    !\n>\204\307\310\311    D\"\210    \312H\313HG\313X\203(\304\314!\210\211\315W\204I\211\306    !\n>\204>\307\310\311    D\"\210    \312H\313HGSV\203M\304\316!\210\317 \210\306    !\n>\204_\307\310\311    D\"\210    \312H\211\320I\266\321\322\"\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" type-of signal wrong-type-argument undo-tree 2 1 "Not at undo branch point" 0 "Invalid branch number" undo-list-transfer-to-tree 5 message "Switched to branch %d"] 6 (#$ . 86276) (byte-code "\203\n\304!\206\200    \305=?\205\200\306 \210\307\n! >\204#\310\311\312\nD\"\210\n\313H\314H\307\n! >\2047\310\311\312\nD\"\210\n\313H\315HG\313U\203H\315Z\202~\307\n! >\204W\310\311\312\nD\"\210\n\313H\315HG\313V\205~\316\317\320\307\n! >\204t\310\311\312\nD\"\210\n\313H\315HGS#!\262C\207" [prefix-arg buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags prefix-numeric-value t undo-list-transfer-to-tree type-of signal wrong-type-argument undo-tree 2 5 1 read-number format "Branch (0-%d, on %d): "] 8)])
#@43 
 
(fn NODE &optional PRESERVE-TIMESTAMPS)
(defalias 'undo-tree-set #[513 "\302\303\304\"\305\306!    >\204\307\310\311D\"\210\312H\313#\210\305\313#\210\211\314H\203A\211\314H\211\315\316\211\314H\312H\"I\266\211\314H\211\262\204\306!    >\204P\307\310\311D\"\210\317H\262\320\"\204d\211\314H\262\202U\306!    >\204s\307\310\311D\"\210\317H=\204\204\321\322\211#\210\202d\306!    >\204\223\307\310\311D\"\210\317H=\204\244\323\322\211#\210\202\204\207" [buffer-undo-tree cl-struct-undo-tree-tags make-hash-table :test eq puthash type-of signal wrong-type-argument undo-tree 1 t 0 5 undo-tree-position 2 gethash undo-tree-undo-1 nil undo-tree-redo-1] 11 (#$ . 87566)])
#@184 Store current undo-tree state to REGISTER.
The saved state can be restored using
`undo-tree-restore-state-from-register'.
Argument is a character, naming the register.
 
(fn REGISTER)
(defalias 'undo-tree-save-state-to-register #[257 "\303=\203\n\304\305!\210\306 \210\307\310\311p\312    !\n>\204!\313\314\315    D\"\210    \316H\"\317\320#\"\210\312    !\n>\2049\313\314\315    D\"\210    \316H\211\211\321\322\321H\323#I\262\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" undo-list-transfer-to-tree set-register registerv-make vector type-of signal wrong-type-argument undo-tree 2 :print-func undo-tree-register-data-print-func 6 plist-put :register] 10 (#$ . 88270) "cUndo-tree state to register: "])
#@167 Restore undo-tree state from REGISTER.
The state must be saved using `undo-tree-save-state-to-register'.
Argument is a character, naming the register.
 
(fn REGISTER)
(defalias 'undo-tree-restore-state-from-register #[257 "\302!\211\303H>\204\304\305\306D\"\210\211\307H\262    \310=\203$\311\312!\210\202=\313!\2041\311\314!\210\202=p\303H=\204=\311\315!\210\316 \210\317\307H!\207" [cl-struct-registerv-tags buffer-undo-list get-register 0 signal wrong-type-argument registerv 1 t user-error "No undo information in this buffer" undo-tree-register-data-p "Register doesn't contain undo-tree state" "Register contains undo-tree state for a different buffer" undo-list-transfer-to-tree undo-tree-set] 6 (#$ . 89040) "*cRestore undo-tree state from register: "])
#@320 Create the undo history file name for FILE.
Normally this is the file's name with "." prepended and
".~undo-tree~" appended.
 
A match for FILE is sought in `undo-tree-history-directory-alist'
(see the documentation of that variable for details). If the
directory for the backup doesn't exist, it is created.
 
(fn FILE)
(defalias 'undo-tree-make-history-save-file-name #[257 "\302!\303!\304\305!\306R)\207" [undo-tree-history-directory-alist backup-directory-alist make-backup-file-name-1 file-name-directory "." file-name-nondirectory ".~undo-tree~"] 6 (#$ . 89819)])
#@320 Store undo-tree history to file.
 
If optional argument FILENAME is omitted, default save file is
".<buffer-file-name>.~undo-tree" if buffer is visiting a file.
Otherwise, prompt for one.
 
If OVERWRITE is non-nil, any existing file will be overwritten
without asking for confirmation.
 
(fn &optional FILENAME OVERWRITE)
(defalias 'undo-tree-save-history #[512 "\305=\203\n\306\307!\210\310 \210    \205\276    \305=?\205\276\3111\"\312 0\202&\210\313    !\210p\314\204?\n\2037\315\n!\202=\316\317\320!\314\"\262\321!\203S\204S\322\323\324\"!\205\274\325\216\326    !\210\327    !\262\330! >\204m\331\332\333D\"\210\211\211\334\314I\266\335 \336\337\340\341\342!\343\"\344$\216\211\204\211\345 \210\346\347!r\211q\210\336\337\350\341\342!\351\"\352$\216\353\354!p\"\210\355p!\210\305\353p\"\210)\356\314\211#*\262)\262)\266\202\207" [buffer-undo-list buffer-undo-tree buffer-file-name cl-struct-undo-tree-tags print-circle t user-error "No undo information in this buffer" undo-list-transfer-to-tree (error) undo-tree-kill-visualizer undo-tree-clear-visualizer-data nil undo-tree-make-history-save-file-name expand-file-name read-file-name "File to save in: " file-exists-p yes-or-no-p format "Overwrite \"%s\"? " #[0 "\301!\207" [buffer-undo-tree undo-tree-recircle] 2] undo-tree-decircle copy-undo-tree type-of signal wrong-type-argument undo-tree 5 jka-compr-installed-p make-byte-code 0 "\300?\205\301 \207" vconcat vector [jka-compr-uninstall] 1 jka-compr-install generate-new-buffer " *temp*" "\301\300!\205    \302\300!\207" [buffer-name kill-buffer] 2 prin1 sha1 terpri write-region] 12 (#$ . 90399) nil])
#@324 Load undo-tree history from file.
 
If optional argument FILENAME is null, default load file is
".<buffer-file-name>.~undo-tree" if buffer is visiting a file.
Otherwise, prompt for one.
 
If optional argument NOERROR is non-nil, return nil instead of
signaling an error if file is not found.
 
(fn &optional FILENAME NOERROR)
(defalias 'undo-tree-load-history #[512 "\204\203\303!\202\304\305\306!\307\"\262\3102\375\311!\2041\211\203,\312\310\307\"\210\2021\313\314\"\210\307\211\211p\262\315 \316\317\320\321\322!\323\"\324$\216\211\204L\325 \210\326\327!r\211q\210\316\317\330\321\322!\331\"\332$\216\333!\210eb\210\3341u\335p!\211\2620\202\214\210\336\307!\210\203\202\337\202\203\340\341\"\210\312\310\307\"\210\342!\230\204\252\336\307!\210\203\241\337\202\242\340\343!\210\312\310\307\"\210\3441\270\335p!\211\2620\202\317\210\336\307!\210\203\305\337\202\306\313\341\"\210\312\310\307\"\210\336\307!\210*\210)\210\345!    >\204\347\346\347\350D\"\210\211\211\351\352\353\354\355\356$I\266\357!\210\211\211\266\2030\207" [buffer-file-name cl-struct-undo-tree-tags buffer-undo-tree undo-tree-make-history-save-file-name expand-file-name read-file-name "File to load from: " nil load-error file-exists-p throw error "File \"%s\" does not exist; could not load undo-tree history" jka-compr-installed-p make-byte-code 0 "\300?\205\301 \207" vconcat vector [jka-compr-uninstall] 1 jka-compr-install generate-new-buffer " *temp*" "\301\300!\205    \302\300!\207" [buffer-name kill-buffer] 2 insert-file-contents (error) read kill-buffer message user-error "Error reading undo-tree history from \"%s\"" sha1 "Buffer has been modified; could not load undo-tree history" (error) type-of signal wrong-type-argument undo-tree 5 make-hash-table :test eq :weakness value undo-tree-recircle] 13 (#$ . 92037) nil])
(defalias 'undo-tree-save-history-hook #[0 "\205    \205\n\303=?\205\304\305\303\"\210\305\207" [undo-tree-mode undo-tree-auto-save-history buffer-undo-list t undo-tree-save-history nil] 3])
(defalias 'undo-tree-load-history-hook #[0 "\205    \205\n\304=?\205 ?\205\305\306\304\"\207" [undo-tree-mode undo-tree-auto-save-history buffer-undo-list revert-buffer-in-progress-p t undo-tree-load-history nil] 3])
#@43 Visualize the current buffer's undo tree.
(defalias 'undo-tree-visualize #[0 "\306 \210\307=\203 \310\311!\210\312 \210\313\314\315\316\307$\210    p\317\320\321 !!\210\211\322!\2050\323\324\322!!8\325!%>\204A\326\327\330D\"\210\331H&\203X'\203T\332\202Y\333\202Y\334(\335\336!\210\335\337!\210\340 \210\335\341!\210!\307=\206\221!\247\205\221\325!%>\204\213\326\327\330D\"\210\342H!Y!\203\233\343 \210\307)\344!*\207" [buffer-undo-list buffer-undo-tree display-buffer-mark-dedicated undo-tree-visualizer-buffer-name undo-tree-visualizer-parent-buffer undo-tree-visualizer-parent-mtime deactivate-mark t user-error "No undo information in this buffer" undo-list-transfer-to-tree add-hook before-change-functions undo-tree-kill-visualizer nil soft switch-to-buffer-other-window get-buffer-create buffer-file-name 5 file-attributes type-of signal wrong-type-argument undo-tree 2 9 13 3 make-local-variable undo-tree-visualizer-timestamps undo-tree-visualizer-diff undo-tree-visualizer-mode undo-tree-visualizer-lazy-drawing 4 undo-tree-visualizer-show-diff undo-tree-draw-tree cl-struct-undo-tree-tags undo-tree-visualizer-initial-node undo-tree-visualizer-relative-timestamps undo-tree-visualizer-spacing inhibit-read-only] 6 (#$ . 94312) "*"])
#@20 
 
(fn &rest DUMMY)
(defalias 'undo-tree-kill-visualizer #[128 "\206\302    !??\205r    q\210\303 )\207" [undo-tree-inhibit-kill-visualizer undo-tree-visualizer-buffer-name get-buffer undo-tree-visualizer-quit] 3 (#$ . 95601)])
#@18 
 
(fn UNDO-TREE)
(defalias 'undo-tree-draw-tree #[257 "\203\306!    >\204\307\310\311D\"\210\211\312H\202+\306!    >\204(\307\310\311D\"\210\211\313H\314 \210\315\211\316!\210\317!\210\203Q\320\321 \312\245!\210\322\312\323 \324\245]!\210\202p\320\313!\210\322\323 \312\245\325\326!\f\203j \324Z\312\245\202k\327\312#]!\210\211\330\331H\332\"\333!\203\204\211G\324U\204\231\211\331\334\331H\332\335\315\211\211\211$\211\262#I\266\211\211\336\337 I\266\340\330\331H\332\"\333!\205\270\211G\324U\205\270\211\336H\262\315\"\210\330\331H\332\"\333!\205\323\211G\324U\205\323\211\336H\262`\315\223\210\341\315)\204\352\342\343\"\210\202\342!\210\344!\210\n\262\315\211\203\342\211A\262\242!\210\202\367)\266\345)\346 \206$\306!    >\204!\307\310\311D\"\210\313H!\210)\347\306!    >\2047\307\310\311D\"\210\312H\350\"\207" [undo-tree-visualizer-lazy-drawing cl-struct-undo-tree-tags undo-tree-visualizer-needs-extending-down undo-tree-visualizer-needs-extending-up undo-tree-visualizer-timestamps undo-tree-visualizer-spacing type-of signal wrong-type-argument undo-tree 2 1 erase-buffer nil undo-tree-clear-visualizer-data undo-tree-compute-widths undo-tree-move-down window-height undo-tree-move-forward window-width 4 + undo-tree-node-char-lwidth 0 plist-get 6 :visualizer vectorp plist-put vector 3 make-marker set-marker-insertion-type undo-tree-visualizer-default-face undo-tree-extend-down t undo-tree-extend-up undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch undo-tree-draw-node current undo-tree-insert-face] 16 (#$ . 95833)])
#@30 
 
(fn NODE &optional BOTTOM)
(defalias 'undo-tree-extend-down #[513 "\301C\301\302!\203,G\303U\203,\304\305H\306\"\302!\205'\211G\307U\205'\211\310H\262\204\204:\211\211\262\301\262\203\211A\262\242\262\311=\204\246\302!\203]G\303U\203]\312H=\203\246\250\203\202\313\304\305H\306\"\302!\205{\211G\307U\205{\211\310H\262!Y\204\246\204\372\314\304\305H\306\"\302!\205\236\211G\307U\205\236\211\310H\262\301\311#\203\372\315H\203\316\304\316H\315H8\305H\306\"\302!\205\311\211G\307U\205\311\211\310H\262\204\357\304\305H\306\"\302!\205\344\211G\307U\205\344\211\310H\262b\210\317!\210\311\262\320\315H\"\262\202,B\202,\207" [undo-tree-visualizer-needs-extending-down nil vectorp 7 plist-get 6 :visualizer 4 3 t 0 line-number-at-pos pos-visible-in-window-p 1 5 undo-tree-draw-subtree append] 10 (#$ . 97450)])
#@27 
 
(fn NODE &optional TOP)
(defalias 'undo-tree-extend-up #[513 "\302\211\303!\203*G\304U\203*\305\306H\307\"\303!\205%\211G\310U\205%\211\311H\262\204r\203r\312H\262\211\203G\313=\204\240\303!\203PG\304U\203P=\203\240\250\203u\314\305\306H\307\"\303!\205n\211G\310U\205n\211\311H\262!W\204\240\204;\314`!\314\315 !^\314\305\306H\307\"\303!\205\231\211G\310U\205\231\211\311H\262!W\203;\305\306H\307\"\303!\205\266\211G\310U\205\266\211\311H\262\204l\316!\210\317!\210\211\305\306H\307\"\303!\203\327\211G\310U\204\354\211\306\320\306H\307\321\302\211\211\211$\211\262#I\266\211\211\311\322 I\266\323\305\306H\307\"\303!\205 \211G\310U\205 \211\311H\262\302\"\210\305\306H\307\"\303!\205&\211G\310U\205&\211\311H\262`\302\223\210\324\325!\"\244\313\262\202l\211\205@\302\262\202l\302\305\306H\307\"\303!\205_\211G\310U\205_\211\311H\262b\210\326\327!\210e\330 |\210\211\262\202*\207" [undo-tree-visualizer-needs-extending-down undo-tree-visualizer-needs-extending-up nil vectorp 7 plist-get 6 :visualizer 4 3 0 t line-number-at-pos window-start undo-tree-compute-widths undo-tree-move-to-parent plist-put vector make-marker set-marker-insertion-type delq undo-tree-draw-subtree undo-tree-move-up 1 line-beginning-position] 17 (#$ . 98337)])
#@26 
 
(fn FROM &optional TO)
(defalias 'undo-tree-expand-down #[513 "\205_\303\304\211\2031\305\"\262\306\307H\310\"\311!\205)\211G\312U\205)\211\313H\262b\210\314\303!\210\262\304\205\\\211\203Q\211@\305!\203J\303\262A\266\202\202;\210\211\205\\\315\316!))\266\203\207" [undo-tree-visualizer-needs-extending-down inhibit-read-only undo-tree-insert-face t nil undo-tree-extend-down plist-get 6 :visualizer vectorp 4 3 redisplay undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch] 9 (#$ . 99673)])
#@26 
 
(fn FROM &optional TO)
(defalias 'undo-tree-expand-up #[513 "\205\300\306\307\211\203s\310\"\262\311\312H\313\"\314!\205)\211G\315U\205)\211\316H\262b\210\317`!\nX\203s\320 \321U\203C\322 \323\245\202D\316!\210\310!\203O\306\262\311\312H\313\"\314!\205e\211G\315U\205e\211\316H\262b\210 \321U\204s\324\n!\210\203\200\310!\203\200\306\262\f\262\307\211\211\203\227\211@\325!\210A\266\202\202\206\210\205\275\326\327\206\271\330!>\204\265\331\332\333D\"\210\334H\"))\266\203\207" [undo-tree-visualizer-needs-extending-up inhibit-read-only scroll-margin scroll-conservatively undo-tree-visualizer-needs-extending-down undo-tree-insert-face t nil undo-tree-extend-up plist-get 6 :visualizer vectorp 4 3 line-number-at-pos undo-tree-move-up 0 window-height 2 recenter undo-tree-extend-down undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch type-of signal wrong-type-argument undo-tree 1 buffer-undo-tree cl-struct-undo-tree-tags] 10 (#$ . 100224)])
#@27 
 
(fn NODE &optional END)
(defalias 'undo-tree-highlight-active-branch #[513 "C\211\205B\211A\262\242\262=\204>\204\301\302H\303\"\304!\2050\211G\305U\2050\211\306H\262b\210\307\310\"\262\211\244\262\202\207" [undo-tree-visualizer-needs-extending-down plist-get 6 :visualizer vectorp 4 3 undo-tree-draw-subtree active] 6 (#$ . 101253)])
#@31 
 
(fn NODE &optional CURRENT)
(defalias 'undo-tree-draw-node #[513 "\306\307H\310\"\311!\205\211G\312U\205\211\313H\262b\210\203$\314    \315\245!\210\n\2053\n:\2031\n\2063\nC\306\307H\316\" \203E\317 \"\202H\317!\320\203\212\321\322!\211\323H\f>\204`\324\325\326D\"\210\211\327H\262!\203\212\322!\211\323H\f>\204|\324\325\326D\"\210\211\327H\262\211\327H\262=\204\215\320\262\203\236\330\312H $\202\271\203\250\331!\202\271\203\260\332\202\271\203\270\333\202\271\334\262\203\303\335\202\320\203\313\336\202\320\205\320\337\n\244\340!\210\314\203\343    \315\245T\202\344\327!\210\306\307H\310\"\311!\205\374\211G\312U\205\374\211\313H\262`\320\223\210\341``T\342$)\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-spacing undo-tree-insert-face undo-tree-visualizer-parent-mtime cl-struct-registerv-tags undo-tree-visualizer-relative-timestamps plist-get 6 :visualizer vectorp 4 3 undo-tree-move-backward 2 :register undo-tree-node-unmodified-p nil undo-tree-register-data-p get-register 0 signal wrong-type-argument registerv 1 undo-tree-timestamp-to-string char-to-string "s" "x" "o" (undo-tree-visualizer-current-face) (undo-tree-visualizer-unmodified-face) (undo-tree-visualizer-register-face) undo-tree-insert put-text-property undo-tree-node] 11 (#$ . 101620)])
#@37 
 
(fn NODE &optional ACTIVE-BRANCH)
(defalias 'undo-tree-draw-subtree #[513 "\301HG\302\211\211\211\303!\210\304U\204\356\301U\203\312\305\301!\210\306\307!\210\310\301!\210\305\301!\210\306\307!\210\310\301!\210\305\301!\210\301H@\262\311\312\313H\314\"\315!\205S\211G\316U\205S\211\317H\262!\204\246\211\312\313H\314\"\315!\203m\211G\316U\204\202\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312\313H\314\"\315!\205\241\211G\316U\205\241\211\317H\262\302\"\210\312\313H\314\"\315!\205\274\211G\316U\205\274\211\317H\262`\302\223\210\211B\262\202\356\305\301!\210\306\307!\210\310\301!\210\322 \211\262`\302\223\210\310\324!\324    \301H@!Z!\210\322 \211\262`\302\223\210\302\301HB\262\325\245\304\211W\203\373\211A\262\203\"@\n\326H \301H8=\203\331\327\325!\210\306\330\331    \325#\"\210b\210\327\301!\210\305\301!\210\306\332!\210\310\325!\210\305\301!\210\311\312@\313H\314\"\315!\205`\211G\316U\205`\211\317H\262!\204\265@\312\313H\314\"\315!\203{\211G\316U\204\220\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\260\211G\316U\205\260\211\317H\262\302\"\210\312@\313H\314\"\315!\205\314\211G\316U\205\314\211\317H\262`\302\223\210@B\262b\210\327\333\334@!\324A@!\301$!\210`\302\223\266\211T\262\202\266\335\325\"\301U\203\337\211A\262\203\211@\326H\301H8=\203\275\305\301!\210\306\307!\210\310\301!\210\305\301!\210\311\312@\313H\314\"\315!\205E\211G\316U\205E\211\317H\262!\204\232\211@\312\313H\314\"\315!\203`\211G\316U\204u\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\225\211G\316U\205\225\211\317H\262\302\"\210\312@\313H\314\"\315!\205\261\211G\316U\205\261\211\317H\262`\302\223\210\211@B\262b\210\327\333\334@!A@\203\324\324A@!\202\325\304\301$!\210`\302\223\210\211T\302\223\210\325\245\304\211W\203\354\211A\262\203@\n\326H \301H8=\203\272b\210\306\330\331\301#\"\210b\210\310\301!\210\305\301!\210\306\336!\210\305\301!\210\311\312@\313H\314\"\315!\205A\211G\316U\205A\211\317H\262!\204\226@\312\313H\314\"\315!\203\\\211G\316U\204q\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\221\211G\316U\205\221\211\317H\262\302\"\210\312@\313H\314\"\315!\205\255\211G\316U\205\255\211\317H\262`\302\223\210@B\262A\203\344b\210\327\333\334@!A@\203\331\324A@!\202\332\304\301$!\210`\302\223\210\210\211T\262\202\351\266\237\207" [undo-tree-visualizer-spacing 1 nil undo-tree-draw-node 0 undo-tree-move-down undo-tree-insert 124 undo-tree-move-backward markerp plist-get 6 :visualizer vectorp 4 3 plist-put vector make-marker set-marker-insertion-type undo-tree-node-char-lwidth 2 5 undo-tree-move-forward 95 - 47 + undo-tree-node-char-rwidth mod 92] 23 (#$ . 102971)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-char-lwidth #[257 "\211\301HG\302U\203 \302\207T\303\304H\305\"\306!\205#\211G\307U\205#\211\302H\262_\303\304H\305\"\306!\205<\211G\307U\205<\211\301H\262\302U\203J\310\245T\202K\302Z\207" [undo-tree-visualizer-spacing 1 0 plist-get 6 :visualizer vectorp 4 2] 5 (#$ . 105983)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-node-char-rwidth #[257 "\211\301HG\302U\203 \302\207T\303\304H\305\"\306!\205#\211G\307U\205#\211\310H\262_\303\304H\305\"\306!\205<\211G\307U\205<\211\301H\262\302U\203J\310\245T\202K\302Z\207" [undo-tree-visualizer-spacing 1 0 plist-get 6 :visualizer vectorp 4 2] 5 (#$ . 106321)])
#@26 
 
(fn STR &optional ARG)
(defalias 'undo-tree-insert #[513 "\211\204\302\262\303!\203\304\"\262\302\262\211\305\211W\203*\211c\266\211T\262\202\266\211G_\262\306!\210\307\310!\210    \205H\311`Z`\312    $\207" [mark-active undo-tree-insert-face 1 characterp make-string 0 undo-tree-move-forward nil backward-delete-char put-text-property face] 7 (#$ . 106659)])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-move-down #[256 "\300 i\301\204 \302\262y\210\300 \262\211\\U\204?\303W\2035\304\305#\306\"c\210Z\\y\210\202?\304ZZ\306\"c\210\307!\207" [line-number-at-pos nil 1 0 make-string - 10 undo-tree-move-forward] 9 (#$ . 107046)])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-move-up #[256 "\211\204\300\262\301[!\207" [1 undo-tree-move-down] 3 (#$ . 107340)])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-move-forward #[256 "\211\204\300\262\301\302Y\203,\303 `Z\262\211V\203u\202r\301\210\304Z\305\"c\202r\302W\205r[\262`\306 Z\262\211\307ZW\203k\310 `\301\223\311\312\"\210eb\210m\204g\313\304\314\315#\305\"!\210\300y\210\202Q\211b\266\206p\300[u\207" [1 nil 0 line-end-position make-string 32 line-beginning-position 2 make-marker set-marker-insertion-type t insert-before-markers - -2] 9 (#$ . 107477)])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-move-backward #[256 "\211\204\300\262\301[!\207" [1 undo-tree-move-forward] 3 (#$ . 107960)])
#@13 
 
(fn NODE)
(defalias 'undo-tree-move-to-parent #[257 "\211\301H\211\302H\211G\303\304\305H\306\"\307!\205\211G\310U\205\211\311H\262b\210\302U\204\312\"\262\313\314\"\302U\203@\211\314\245U\204\211\314\245W\203\245\211\233\262\315\316\317@!\314\245\302#!\210\320\314\245\302#\301\211W\203\206\211A\262\315\316\321@!\317    @!\302$!\266\211T\262\202b\266\313\314\"\302U\203A\262\315\316\321@!\314\245\302#!\210\202\314\245\233\262\313\314\"\302U\203\306\322\316\317@!\314\245\302#!\210A\262\320\314\245\313\314\"#\301\211W\203\365\211\322\316\321@!\317    @!\302$!\210A\262\210\211T\262\202\321\266\322\316\321@!\314\245\302#!\210\323\311!\207" [undo-tree-visualizer-spacing 0 1 nil plist-get 6 :visualizer vectorp 4 3 undo-tree-position mod 2 undo-tree-move-forward + undo-tree-node-char-rwidth - undo-tree-node-char-lwidth undo-tree-move-backward undo-tree-move-up] 14 (#$ . 108106)])
#@54 
 
(fn TIMESTAMP &optional RELATIVE CURRENT REGISTER)
(defalias 'undo-tree-timestamp-to-string #[1025 "\203\253\300\301\302\303 \"!!\304\305\245\211\262\306V\203+\211\307V\203$\310\202v\311\312\"\202v\305\246\262\313\245\211\262\306V\203B\311\314\"\202v\313\246\262\315\245\211\262\306V\203Y\311\316\"\202v\315\246\262\317\245\211\262\306V\203p\311\320\"\202v\311\321\317\246\"\262\203\200\322\202\201\323\203\220\324\325!\326Q\202\221\327Q\262G\262\211\330W\203\251\331\330Z\332\"P\202\252\207\203\263\333\202\264\334\335\336\"\203\306\324\325!\326Q\202\307\327Q\207" [floor float-time subtract-time current-time nil 315360000 0 999 "-ages" format "-%dy" 86400 "-%dd" 3600 "-%dh" 60 "-%dm" "-%ds" "*" " " "[" char-to-string "]" "   " 9 make-string 32 " *" "  " format-time-string "%H:%M:%S"] 11 (#$ . 109065)])
(defvar undo-tree-visualizer-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [undo-tree-visualizer-mode-hook variable-documentation put "Hook run after entering undo-tree-visualizer mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp undo-tree-visualizer-mode-map definition-name undo-tree-visualizer-mode] 4)
(defvar undo-tree-visualizer-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [undo-tree-visualizer-mode-map variable-documentation put purecopy "Keymap for `undo-tree-visualizer-mode'." undo-tree-visualizer-mode derived-mode-parent special-mode] 5)
#@607 Major mode used in undo-tree visualizer.
 
The undo-tree visualizer can only be invoked from a buffer in
which `undo-tree-mode' is enabled. The visualizer displays the
undo history tree graphically, and allows you to browse around
the undo history, undoing or redoing the corresponding changes in
the parent buffer.
 
Within the undo-tree visualizer, the following keys are available:
 
  \{undo-tree-visualizer-mode-map}
 
In addition to any hooks its parent mode `special-mode' might have run,
this mode runs the hook `undo-tree-visualizer-mode-hook', as the final or penultimate step
during initialization.
(defalias 'undo-tree-visualizer-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 !\210\307\321\211)\322\323!\207" [delay-mode-hooks major-mode mode-name undo-tree-visualizer-mode-map truncate-lines cursor-type make-local-variable t special-mode undo-tree-visualizer-mode "undo-tree-visualizer" mode-class put keymap-parent set-keymap-parent current-local-map use-local-map nil run-mode-hooks undo-tree-visualizer-mode-hook undo-tree-visualizer-selected-node] 6 (#$ . 110712) nil])
#@75 Undo changes. A numeric ARG serves as a repeat count.
 
(fn &optional ARG)
(defalias 'undo-tree-visualize-undo #[256 "\306!    >\204\307\310\311D\"\210\312H\313C\314\315\316!\210*\317\f!\210\320 \210\321\322\323\324\325\"\326\"\327$\216\315\330!*\207" [buffer-undo-tree cl-struct-undo-tree-tags inhibit-read-only undo-tree-insert-face undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer type-of signal wrong-type-argument undo-tree 2 nil undo-tree-visualizer-active-branch-face t undo-tree-draw-node switch-to-buffer-other-window deactivate-mark make-byte-code 0 "\301\306\n! >\204\307\310\311\nD\"\210\n\312H\240\210\313\f!\210 \203#\314\300\301\242\"\210\315\316\301\242\317\"\210)\2054\320 \207" vconcat vector [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-buffer-name undo-tree-visualizer-lazy-drawing type-of signal wrong-type-argument undo-tree 2 switch-to-buffer-other-window undo-tree-expand-up t undo-tree-draw-node current undo-tree-visualizer-update-diff inhibit-read-only undo-tree-visualizer-diff] 5 undo-tree-undo-1] 10 (#$ . 111881) "p"])
#@75 Redo changes. A numeric ARG serves as a repeat count.
 
(fn &optional ARG)
(defalias 'undo-tree-visualize-redo #[256 "\306!    >\204\307\310\311D\"\210\312H\313C\314\315\316\306!    >\204(\307\310\311D\"\210\312H!\210*\317\f!\210\320 \210\321\322\323\324\325\"\326\"\327$\216\315\330!*\207" [buffer-undo-tree cl-struct-undo-tree-tags inhibit-read-only undo-tree-insert-face undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer type-of signal wrong-type-argument undo-tree 2 nil undo-tree-visualizer-active-branch-face t undo-tree-draw-node switch-to-buffer-other-window deactivate-mark make-byte-code 0 "\301\306\n! >\204\307\310\311\nD\"\210\n\312H\240\210\313\f!\210 \203#\314\300\301\242\"\210\315\316\301\242\317\"\210)\2054\320 \207" vconcat vector [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-buffer-name undo-tree-visualizer-lazy-drawing type-of signal wrong-type-argument undo-tree 2 switch-to-buffer-other-window undo-tree-expand-down t undo-tree-draw-node current undo-tree-visualizer-update-diff inhibit-read-only undo-tree-visualizer-diff] 5 undo-tree-redo-1] 10 (#$ . 112994) "p"])
#@170 Switch to next branch of the undo tree.
This will affect which branch to descend when *redoing* changes
using `undo-tree-redo' or `undo-tree-visualizer-redo'.
 
(fn ARG)
(defalias 'undo-tree-visualize-switch-branch-right #[257 "\304\305!    >\204\306\307\310D\"\210\311H\312H\313\"\314!\205'\211G\315U\205'\211\316H\262b\210\317\320\321\305!    >\204?\306\307\310D\"\210\311H!\210*\305!    >\204T\306\307\310D\"\210\311H\322H\305!    >\204h\306\307\310D\"\210\311H\211\322\\\305!    >\204\306\307\310D\"\210\311H\323HGY\203\242\305!    >\204\230\306\307\310D\"\210\311H\323HGS\202\261\\\324X\203\256\324\202\261\\I\266\320\304\305!    >\204\306\306\307\310D\"\210\311H\312H\313\"\314!\205\335\211G\315U\205\335\211\316H\262b\210\325\321\305!    >\204\363\306\307\310D\"\210\311H!\210)\326\305!    >\204    \306\307\310D\"\210\311H\327\")\207" [buffer-undo-tree cl-struct-undo-tree-tags inhibit-read-only undo-tree-insert-face plist-get type-of signal wrong-type-argument undo-tree 2 6 :visualizer vectorp 4 3 undo-tree-visualizer-default-face t undo-tree-highlight-active-branch 5 1 0 undo-tree-visualizer-active-branch-face undo-tree-draw-node current] 10 (#$ . 114149) "p"])
#@174 Switch to previous branch of the undo tree.
This will affect which branch to descend when *redoing* changes
using `undo-tree-redo' or `undo-tree-visualizer-redo'.
 
(fn ARG)
(defalias 'undo-tree-visualize-switch-branch-left #[257 "\300[!\207" [undo-tree-visualize-switch-branch-right] 3 (#$ . 115363) "p"])
#@32 Quit the undo-tree visualizer.
(defalias 'undo-tree-visualizer-quit #[0 "\302!\210\303\216r    q\210\304\305\306\307#*\207" [buffer-undo-tree undo-tree-visualizer-parent-buffer undo-tree-clear-visualizer-data #[0 "\203\302 \210    \303\304\303!\210\305\216\306!\211\262\203\307!\202!\310!)\207" [undo-tree-visualizer-diff undo-tree-visualizer-parent-buffer undo-tree-visualizer-hide-diff nil kill-buffer #[0 "\300\207" [nil] 1] get-buffer-window select-window switch-to-buffer] 4] remove-hook before-change-functions undo-tree-kill-visualizer t] 4 (#$ . 115676) nil])
#@68 Quit the undo-tree visualizer and return buffer to original state.
(defalias 'undo-tree-visualizer-abort #[0 "\301 \210\302!\207" [undo-tree-visualizer-initial-node undo-tree-visualizer-quit undo-tree-set] 3 (#$ . 116255) nil])
#@105 Set buffer to state corresponding to undo tree node
at POS, or point if POS is nil.
 
(fn &optional POS)
(defalias 'undo-tree-visualizer-set #[256 "\211\204`\262\306\307\"\211\205+\310!\210\311\312!\210)\310\n!\210\311\313\f!\210) \205+\314 \207" [undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer undo-tree-visualizer-buffer-name inhibit-read-only buffer-undo-tree undo-tree-visualizer-diff get-text-property undo-tree-node switch-to-buffer-other-window t undo-tree-set undo-tree-draw-tree undo-tree-visualizer-update-diff] 4 (#$ . 116492) nil])
#@83 Set buffer to state corresponding to undo tree node
at mouse event POS.
 
(fn POS)
(defalias 'undo-tree-visualizer-mouse-set #[257 "\300\301A@!!\207" [undo-tree-visualizer-set event-start] 4 (#$ . 117073) "@e"])
#@485 Undo to last branch point, register, or saved state.
If X is the symbol `branch', undo to last branch point. If X is
the symbol `register', undo to last register. If X is the sumbol
`saved', undo to last saved state. If X is null, undo to first of
these that's encountered.
 
Interactively, a single \[universal-argument] specifies
`branch', a double \[universal-argument] \[universal-argument]
specifies `saved', and a negative prefix argument specifies
`register'.
 
(fn &optional X)
(defalias 'undo-tree-visualize-undo-to-x #[256 "\306\307!\203&\211\203&\310!\262\211\311W\203\312\202$\211\313X\203#\314\202$\315\262\203.    \202@\316\n! >\204=\317\320\321\nD\"\210\n\322H\f\323\324 \210\311H\203\343\203Y\325 \210    \211\262\202q\326 \210\316\n! >\204k\317\320\321\nD\"\210\n\322H\211\262\210\203|\314=\203\226\316\n! >\204\213\317\320\321\nD\"\210\n\322H\327HG\327V\204\343\203\240\312=\203\323\330\331H\332\"\211\262\203\323\333\334!\211\311H >\204\277\317\320\335D\"\210\211\327H\262\211\262!\203\323\327H=\204\343\203\335\315=\203E\336!\203E\205\356\337\205\355    !\207" [undo-tree-visualizer-selection-mode undo-tree-visualizer-selected-node buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-diff cl-struct-registerv-tags called-interactively-p any prefix-numeric-value 0 register 4 branch saved type-of signal wrong-type-argument undo-tree 2 nil undo-tree-visualizer-hide-diff undo-tree-visualizer-select-previous undo-tree-visualize-undo 1 plist-get 6 :register undo-tree-register-data-p get-register registerv undo-tree-node-unmodified-p undo-tree-visualizer-show-diff] 10 (#$ . 117292) "P"])
#@485 Redo to last branch point, register, or saved state.
If X is the symbol `branch', redo to last branch point. If X is
the symbol `register', redo to last register. If X is the sumbol
`saved', redo to last saved state. If X is null, redo to first of
these that's encountered.
 
Interactively, a single \[universal-argument] specifies
`branch', a double \[universal-argument] \[universal-argument]
specifies `saved', and a negative prefix argument specifies
`register'.
 
(fn &optional X)
(defalias 'undo-tree-visualize-redo-to-x #[256 "\306\307!\203&\211\203&\310!\262\211\311W\203\312\202$\211\313X\203#\314\202$\315\262\203.    \202@\316\n! >\204=\317\320\321\nD\"\210\n\322H\f\323\324 \210\325H\203\343\203Y\326 \210    \211\262\202q\327 \210\316\n! >\204k\317\320\321\nD\"\210\n\322H\211\262\210\203|\314=\203\226\316\n! >\204\213\317\320\321\nD\"\210\n\322H\325HG\325V\204\343\203\240\312=\203\323\330\331H\332\"\211\262\203\323\333\334!\211\311H >\204\277\317\320\335D\"\210\211\325H\262\211\262!\203\323\325H=\204\343\203\335\315=\203E\336!\203E\205\356\337\205\355    !\207" [undo-tree-visualizer-selection-mode undo-tree-visualizer-selected-node buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-diff cl-struct-registerv-tags called-interactively-p any prefix-numeric-value 0 register 4 branch saved type-of signal wrong-type-argument undo-tree 2 nil undo-tree-visualizer-hide-diff 1 undo-tree-visualizer-select-next undo-tree-visualize-redo plist-get 6 :register undo-tree-register-data-p get-register registerv undo-tree-node-unmodified-p undo-tree-visualizer-show-diff] 10 (#$ . 118962) "P"])
#@32 Toggle display of time-stamps.
(defalias 'undo-tree-visualizer-toggle-timestamps #[0 "?\211\203    \203\305\202\306\202\307\310\311\f!)\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-relative-timestamps undo-tree-visualizer-spacing inhibit-read-only buffer-undo-tree 9 13 3 t undo-tree-draw-tree] 3 (#$ . 120627) nil])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-scroll-left #[256 "\300\206\301\302\"\207" [scroll-left 1 t] 4 (#$ . 120973) "p"])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-scroll-right #[256 "\300\206\301\302\"\207" [scroll-right 1 t] 4 (#$ . 121118) "p"])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-scroll-up #[256 "\211\247\203 \211\301W\204\211\302=\203\303!\207\304\216\305!\210)?\205'm\205'\306 \207" [undo-tree-visualizer-needs-extending-down 0 - undo-tree-visualizer-scroll-down #[0 "\302\303!    >\204\304\305\306D\"\210\307H\310H\303!    >\204$\304\305\306D\"\210\307H\311H8!\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-expand-down type-of signal wrong-type-argument undo-tree 2 5 1] 6] scroll-up-command scroll-up] 3 (#$ . 121265) "P"])
#@22 
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-scroll-down #[256 "\211\247\203 \211\304W\204\211\305=\203\306!\207\211\206\307 Z\310\311 !S    \2038\211W\2038\312eb\210\313Z!\210)\266\314\216\315!\210) ?\205Lo\205L\316 \207" [next-screen-context-lines undo-tree-visualizer-needs-extending-up inhibit-read-only undo-tree-visualizer-needs-extending-down 0 - undo-tree-visualizer-scroll-up window-height line-number-at-pos window-start t undo-tree-move-up #[0 "\302\303!    >\204\304\305\306D\"\210\307H\310H!\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-expand-up type-of signal wrong-type-argument undo-tree 2 0] 5] scroll-down-command scroll-down] 6 (#$ . 121798) "P"])
#@139 Non-nil if Undo-Tree-Visualizer-Selection mode is enabled.
Use the command `undo-tree-visualizer-selection-mode' to change this variable.
(defvar undo-tree-visualizer-selection-mode nil (#$ . 122512))
(make-variable-buffer-local 'undo-tree-visualizer-selection-mode)
#@74 Toggle mode to select nodes in undo-tree visualizer.
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-selection-mode #[256 "\306 \307=\203 ?\202\310!\311V\211\203H\312\313\n! >\204(\314\315\316\nD\"\210\n\317H \203~\320'!\321(\211\203Cr\211q\210\322 \210))\210\202~\323\211\324\313\n! >\204\\\314\315\316\nD\"\210\n\317H\325H\326\"\327!\205s\211G\330U\205s\211\331H\262b\210 \203~\332 \210\333\334\203\210\335\202\211\336\"\210\337\340!\203\255\306 \203\235\211\306 \232\203\255\341\342\343\203\250\344\202\251\345#\266\210\346 \210\207" [undo-tree-visualizer-selection-mode cursor-type buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-selected-node undo-tree-visualizer-diff current-message toggle prefix-numeric-value 0 box type-of signal wrong-type-argument undo-tree 2 get-buffer t erase-buffer nil plist-get 6 :visualizer vectorp 4 3 undo-tree-visualizer-update-diff run-hooks undo-tree-visualizer-selection-mode-hook undo-tree-visualizer-selection-mode-on-hook undo-tree-visualizer-selection-mode-off-hook called-interactively-p any " in current buffer" message "Undo-Tree-Visualizer-Selection mode %sabled%s" "en" "dis" force-mode-line-update undo-tree-diff-buffer-name inhibit-read-only] 8 (#$ . 122785) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
(defvar undo-tree-visualizer-selection-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\211%\207" [undo-tree-visualizer-selection-mode-map undo-tree-visualizer-selection-mode-hook variable-documentation put "Hook run after entering or leaving `undo-tree-visualizer-selection-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode undo-tree-visualizer-selection-mode "Select" nil] 6)
#@44 Move to previous node.
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-previous #[256 "\3032-\206\n\304\305\211W\205*\211\305H\204\306\303\307\"\210\305H\262\210\211T\262\202 \266\2020\210    \2037\310\"\210\n\203E\211=\204E\311!\210\312\313H\314\"\315!\205[\211G\316U\205[\211\317H\262b\210\211\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff top 1 0 throw t undo-tree-expand-up undo-tree-visualizer-update-diff plist-get 6 :visualizer vectorp 4 3] 8 (#$ . 124630) "p"])
#@40 Move to next node.
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-next #[256 "\30325\206\n\304\305\211W\2052\211\306H\304H8\204!\307\303\310\"\210\306H\304H8\262\210\211T\262\202 \266\2020\210    \203?\311\"\210\n\203M\211=\204M\312!\210\313\314H\315\"\316!\205c\211G\317U\205c\211\320H\262b\210\211\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff bottom 1 0 5 throw t undo-tree-expand-down undo-tree-visualizer-update-diff plist-get 6 :visualizer vectorp 4 3] 8 (#$ . 125199) "p"])
#@51 Move right to a sibling node.
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-right #[256 "\302\303\304H\305\"\306!\205\211G\307U\205\211\310H\262b\210\311 \262\3122Y\313\211W\205V\211\2037=\203N\302u\210\314`\315\"\262`U\203-\316\312\317\"\210\202-\210\211T\262\202&\266\2020\210\303\206`\304H\305\"\306!\205t\211G\307U\205t\211\310H\262b\210    \203\212\203\212=\204\212\320!\210\205\221\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-diff nil plist-get 6 :visualizer vectorp 4 3 line-end-position end 0 get-text-property undo-tree-node throw t undo-tree-visualizer-update-diff] 9 (#$ . 125781) "p"])
#@50 Move left to a sibling node.
 
(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-left #[256 "\302`\303\"\304\305\306H\307\"\310!\205\211G\311U\205\211\312H\262b\210\313 \262\3142\\\315\211W\205Y\211\203:=\203Q\316u\210\302`\303\"\262`U\2030\317\314\320\"\210\2020\210\211T\262\202)\266\2020\210\305\206c\306H\307\"\310!\205w\211G\311U\205w\211\312H\262b\210    \203\215\203\215=\204\215\321!\210\205\224\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-diff get-text-property undo-tree-node nil plist-get 6 :visualizer vectorp 4 3 line-beginning-position beg 0 -1 throw t undo-tree-visualizer-update-diff] 9 (#$ . 126459) "p"])
#@12 
 
(fn POS)
(defalias 'undo-tree-visualizer-select #[257 "\303\304\"\211\205A\305\306H\307\"\310!\205\211G\311U\205\211\312H\262b\210\2030\313    \"\210\314    \"\210\n\203>\211    =\204>\315!\210\211\211\207" [undo-tree-visualizer-lazy-drawing undo-tree-visualizer-selected-node undo-tree-visualizer-diff get-text-property undo-tree-node plist-get 6 :visualizer vectorp 4 3 undo-tree-expand-up undo-tree-expand-down undo-tree-visualizer-update-diff] 5 (#$ . 127155)])
#@53 Select undo tree node at mouse event POS.
 
(fn POS)
(defalias 'undo-tree-visualizer-mouse-select #[257 "\300\301A@!!\207" [undo-tree-visualizer-select event-start] 4 (#$ . 127637) "@e"])
#@46 Toggle diff display in undo-tree visualizer.
(defalias 'undo-tree-visualizer-toggle-diff #[0 "\203\301 \207\302 \207" [undo-tree-visualizer-diff undo-tree-visualizer-hide-diff undo-tree-visualizer-show-diff] 1 (#$ . 127831) nil])
#@61 Toggle diff display in undo-tree visualizer selection mode.
(defalias 'undo-tree-visualizer-selection-toggle-diff #[0 "\203\301 \207\302`\303\"\211\205\304!\207" [undo-tree-visualizer-diff undo-tree-visualizer-hide-diff get-text-property undo-tree-node undo-tree-visualizer-show-diff] 3 (#$ . 128070) nil])
#@23 
 
(fn &optional NODE)
(defalias 'undo-tree-visualizer-show-diff #[256 "\303r    q\210\304!)\305\306\307 \262\310\"\210\311!)\207" [undo-tree-visualizer-diff undo-tree-visualizer-parent-buffer display-buffer-mark-dedicated t undo-tree-diff soft nil split-window set-window-buffer shrink-window-if-larger-than-buffer] 7 (#$ . 128389)])
(defalias 'undo-tree-visualizer-hide-diff #[0 "\302\303    !\211\205$\304!r\305\306\307\310\311!\312\"\313$\216\314@\315\"\210\316 *\262\207" [undo-tree-visualizer-diff undo-tree-diff-buffer-name nil get-buffer-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord kill-buffer-and-window] 8])
#@23 
 
(fn &optional NODE)
(defalias 'undo-tree-diff #[256 "\306\211\307\310!    >\204\311\312\313D\"\210\314H\315\206#\316H\206#\317\"\210\320p!\262\315\317\"\210)\266\321p\306\322\323 !%\262\307r\211q\210eb\210`\324\325!T|\210db\210\326y\210`d|\210\306\307*\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-inhibit-kill-visualizer undo-tree-diff-buffer-name inhibit-read-only cursor-type nil t type-of signal wrong-type-argument undo-tree 2 undo-tree-set 0 preserve-timestamps diff-file-local-copy diff-no-select noasync get-buffer-create line-end-position 3 -2 buffer-read-only] 10 (#$ . 129133)])
#@23 
 
(fn &optional NODE)
(defalias 'undo-tree-visualizer-update-diff #[256 "rq\210\302!\210)\303    !\211\205\304 \210\305!\207" [undo-tree-visualizer-parent-buffer undo-tree-diff-buffer-name undo-tree-diff get-buffer-window balance-windows shrink-window-if-larger-than-buffer] 4 (#$ . 129762)])
(provide 'undo-tree)