summaryrefslogtreecommitdiff
path: root/localrepo/nov-20230715.1434.tar
blob: c3217ff58b0b25f144d5648192762984ba6d8759 (plain)
ofshex dumpascii
0000 6e 6f 76 2d 32 30 32 33 30 37 31 35 2e 31 34 33 34 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nov-20230715.1434/..............
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 36 31 32 00 20 35 00 00 00 0000000.00000000000.011612..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 6e 6f 76 2d 32 30 32 33 30 37 31 35 2e 31 34 33 34 2f 6e 6f 76 2d 70 6b 67 2e 65 6c 00 00 00 00 nov-20230715.1434/nov-pkg.el....
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 30 30 37 35 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 32 31 00 20 30 00 00 00 0000752.00000000000.013521..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 6e 6f 76 22 20 22 32 30 32 33 30 37 31 35 2e (define-package."nov"."20230715.
0420 31 34 33 34 22 20 22 46 65 61 74 75 72 65 66 75 6c 20 45 50 55 42 20 72 65 61 64 65 72 20 6d 6f 1434"."Featureful.EPUB.reader.mo
0440 64 65 22 0a 20 20 27 28 28 65 73 78 6d 6c 20 22 30 2e 33 2e 36 22 29 0a 20 20 20 20 28 65 6d 61 de"...'((esxml."0.3.6").....(ema
0460 63 73 20 22 32 35 2e 31 22 29 29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 63 63 33 31 63 65 30 33 35 cs."25.1"))...:commit."cc31ce035
0480 36 32 32 36 63 33 61 32 31 32 38 31 31 39 62 30 38 64 65 36 31 30 37 65 33 38 66 64 64 31 37 22 6226c3a2128119b08de6107e38fdd17"
04a0 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 22 56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69 64 65 .:authors...'(("Vasilij.Schneide
04c0 72 6d 61 6e 6e 22 20 2e 20 22 6d 61 69 6c 40 76 61 73 69 6c 69 6a 2e 64 65 22 29 29 0a 20 20 3a rmann"..."mail@vasilij.de"))...:
04e0 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 22 56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69 maintainers...'(("Vasilij.Schnei
0500 64 65 72 6d 61 6e 6e 22 20 2e 20 22 6d 61 69 6c 40 76 61 73 69 6c 69 6a 2e 64 65 22 29 29 0a 20 dermann"..."mail@vasilij.de"))..
0520 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69 .:maintainer...'("Vasilij.Schnei
0540 64 65 72 6d 61 6e 6e 22 20 2e 20 22 6d 61 69 6c 40 76 61 73 69 6c 69 6a 2e 64 65 22 29 0a 20 20 dermann"..."mail@vasilij.de")...
0560 3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 68 79 70 65 72 6d 65 64 69 61 22 20 22 6d 75 6c 74 :keywords...'("hypermedia"."mult
0580 69 6d 65 64 69 61 22 20 22 65 70 75 62 22 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f imedia"."epub")...:url."https://
05a0 64 65 70 70 2e 62 72 61 75 73 65 2e 63 63 2f 6e 6f 76 2e 65 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c depp.brause.cc/nov.el").;;.Local
05c0 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 .Variables:.;;.no-byte-compile:.
05e0 74 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 t.;;.End:.......................
0600 6e 6f 76 2d 32 30 32 33 30 37 31 35 2e 31 34 33 34 2f 6e 6f 76 2e 65 6c 00 00 00 00 00 00 00 00 nov-20230715.1434/nov.el........
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0680 30 31 31 32 35 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 34 30 00 20 30 00 00 00 0112521.00000000000.012740..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 3b 3b 3b 20 6e 6f 76 2e 65 6c 20 2d 2d 2d 20 46 65 61 74 75 72 65 66 75 6c 20 45 50 55 42 20 72 ;;;.nov.el.---.Featureful.EPUB.r
0820 65 61 64 65 72 20 6d 6f 64 65 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 eader.mode..;;.Copyright.(C).201
0840 37 20 56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69 64 65 72 6d 61 6e 6e 20 3c 6d 61 69 6c 40 76 61 7.Vasilij.Schneidermann.<mail@va
0860 73 69 6c 69 6a 2e 64 65 3e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 56 61 73 69 6c 69 6a 20 53 63 silij.de>..;;.Author:.Vasilij.Sc
0880 68 6e 65 69 64 65 72 6d 61 6e 6e 20 3c 6d 61 69 6c 40 76 61 73 69 6c 69 6a 2e 64 65 3e 0a 3b 3b hneidermann.<mail@vasilij.de>.;;
08a0 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 64 65 70 70 2e 62 72 61 75 73 65 2e 63 63 2f 6e 6f 76 .URL:.https://depp.brause.cc/nov
08c0 2e 65 6c 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 34 2e 30 0a 3b 3b 20 50 61 63 6b 61 67 65 .el.;;.Version:.0.4.0.;;.Package
08e0 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 73 78 6d 6c 20 22 30 2e 33 2e 36 22 29 20 28 65 6d 61 -Requires:.((esxml."0.3.6").(ema
0900 63 73 20 22 32 35 2e 31 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 68 79 70 65 72 6d 65 cs."25.1")).;;.Keywords:.hyperme
0920 64 69 61 2c 20 6d 75 6c 74 69 6d 65 64 69 61 2c 20 65 70 75 62 0a 0a 3b 3b 20 54 68 69 73 20 66 dia,.multimedia,.epub..;;.This.f
0940 69 6c 65 20 69 73 20 4e 4f 54 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b ile.is.NOT.part.of.GNU.Emacs...;
0960 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b ;.This.program.is.free.software;
0980 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 .you.can.redistribute.it.and/or.
09a0 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 modify.;;.it.under.the.terms.of.
09c0 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 the.GNU.General.Public.License.a
09e0 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 s.published.by.;;.the.Free.Softw
0a00 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 are.Foundation,.either.version.3
0a20 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 .of.the.License,.or.;;.(at.your.
0a40 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 option).any.later.version...;;.T
0a60 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 his.program.is.distributed.in.th
0a80 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b e.hope.that.it.will.be.useful,.;
0aa0 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ;.but.WITHOUT.ANY.WARRANTY;.with
0ac0 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
0ae0 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 .;;.MERCHANTABILITY.or.FITNESS.F
0b00 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
0b20 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 e.;;.GNU.General.Public.License.
0b40 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 for.more.details...;;.You.should
0b60 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 .have.received.a.copy.of.the.GNU
0b80 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 .General.Public.License.;;.along
0ba0 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 .with.this.program...If.not,.see
0bc0 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e .<http://www.gnu.org/licenses/>.
0be0 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 6e 6f 76 2e 65 6c 20 70 72 6f ..;;;.Commentary:..;;.nov.el.pro
0c00 76 69 64 65 73 20 61 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 72 65 61 64 69 6e 67 20 45 vides.a.major.mode.for.reading.E
0c20 50 55 42 20 64 6f 63 75 6d 65 6e 74 73 2e 0a 3b 3b 0a 3b 3b 20 46 65 61 74 75 72 65 73 3a 0a 3b PUB.documents..;;.;;.Features:.;
0c40 3b 0a 3b 3b 20 2d 20 42 61 73 69 63 20 6e 61 76 69 67 61 74 69 6f 6e 20 28 6a 75 6d 70 20 74 6f ;.;;.-.Basic.navigation.(jump.to
0c60 20 54 4f 43 2c 20 70 72 65 76 69 6f 75 73 2f 6e 65 78 74 20 63 68 61 70 74 65 72 29 0a 3b 3b 20 .TOC,.previous/next.chapter).;;.
0c80 2d 20 52 65 6d 65 6d 62 65 72 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 74 68 65 20 -.Remembering.and.restoring.the.
0ca0 6c 61 73 74 20 72 65 61 64 20 70 6f 73 69 74 69 6f 6e 0a 3b 3b 20 2d 20 4a 75 6d 70 20 74 6f 20 last.read.position.;;.-.Jump.to.
0cc0 6e 65 78 74 20 63 68 61 70 74 65 72 20 77 68 65 6e 20 73 63 72 6f 6c 6c 69 6e 67 20 62 65 79 6f next.chapter.when.scrolling.beyo
0ce0 6e 64 20 65 6e 64 0a 3b 3b 20 2d 20 53 74 6f 72 69 6e 67 20 61 6e 64 20 66 6f 6c 6c 6f 77 69 6e nd.end.;;.-.Storing.and.followin
0d00 67 20 4f 72 67 20 6c 69 6e 6b 73 20 74 6f 20 45 50 55 42 20 66 69 6c 65 73 0a 3b 3b 20 2d 20 52 g.Org.links.to.EPUB.files.;;.-.R
0d20 65 6e 64 65 72 73 20 45 50 55 42 32 20 28 2e 6e 63 78 29 20 61 6e 64 20 45 50 55 42 33 20 28 3c enders.EPUB2.(.ncx).and.EPUB3.(<
0d40 6e 61 76 3e 29 20 54 4f 43 73 0a 3b 3b 20 2d 20 48 79 70 65 72 6c 69 6e 6b 73 20 74 6f 20 69 6e nav>).TOCs.;;.-.Hyperlinks.to.in
0d60 74 65 72 6e 61 6c 20 61 6e 64 20 65 78 74 65 72 6e 61 6c 20 74 61 72 67 65 74 73 0a 3b 3b 20 2d ternal.and.external.targets.;;.-
0d80 20 53 75 70 70 6f 72 74 73 20 74 65 78 74 75 61 6c 20 61 6e 64 20 69 6d 61 67 65 20 64 6f 63 75 .Supports.textual.and.image.docu
0da0 6d 65 6e 74 73 0a 3b 3b 20 2d 20 49 6e 66 6f 2d 73 74 79 6c 65 20 68 69 73 74 6f 72 79 20 6e 61 ments.;;.-.Info-style.history.na
0dc0 76 69 67 61 74 69 6f 6e 0a 3b 3b 20 2d 20 56 69 65 77 20 73 6f 75 72 63 65 20 6f 66 20 64 6f 63 vigation.;;.-.View.source.of.doc
0de0 75 6d 65 6e 74 20 66 69 6c 65 73 0a 3b 3b 20 2d 20 4d 65 74 61 64 61 74 61 20 64 69 73 70 6c 61 ument.files.;;.-.Metadata.displa
0e00 79 0a 3b 3b 20 2d 20 49 6d 61 67 65 20 72 65 73 63 61 6c 69 6e 67 0a 0a 3b 3b 3b 20 43 6f 64 65 y.;;.-.Image.rescaling..;;;.Code
0e20 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 64 :..(require.'cl-lib).(require.'d
0e40 6f 6d 29 0a 28 72 65 71 75 69 72 65 20 27 65 73 78 6d 6c 2d 71 75 65 72 79 29 0a 28 72 65 71 75 om).(require.'esxml-query).(requ
0e60 69 72 65 20 27 69 6d 61 67 65 29 0a 28 72 65 71 75 69 72 65 20 27 73 65 71 29 0a 28 72 65 71 75 ire.'image).(require.'seq).(requ
0e80 69 72 65 20 27 73 68 72 29 0a 28 72 65 71 75 69 72 65 20 27 75 72 6c 2d 70 61 72 73 65 29 0a 28 ire.'shr).(require.'url-parse).(
0ea0 72 65 71 75 69 72 65 20 27 78 6d 6c 29 0a 0a 28 72 65 71 75 69 72 65 20 27 62 6f 6f 6b 6d 61 72 require.'xml)..(require.'bookmar
0ec0 6b 29 0a 28 72 65 71 75 69 72 65 20 27 65 61 73 79 6d 65 6e 75 29 0a 28 72 65 71 75 69 72 65 20 k).(require.'easymenu).(require.
0ee0 27 69 6d 65 6e 75 29 0a 28 72 65 71 75 69 72 65 20 27 6f 72 67 29 0a 28 72 65 71 75 69 72 65 20 'imenu).(require.'org).(require.
0f00 27 72 65 63 65 6e 74 66 29 0a 0a 28 77 68 65 6e 20 28 6e 6f 74 20 28 66 62 6f 75 6e 64 70 20 27 'recentf)..(when.(not.(fboundp.'
0f20 6c 69 62 78 6d 6c 2d 70 61 72 73 65 2d 78 6d 6c 2d 72 65 67 69 6f 6e 29 29 0a 20 20 28 6d 65 73 libxml-parse-xml-region))...(mes
0f40 73 61 67 65 20 22 59 6f 75 72 20 45 6d 61 63 73 20 77 61 73 6e 27 74 20 63 6f 6d 70 69 6c 65 64 sage."Your.Emacs.wasn't.compiled
0f60 20 77 69 74 68 20 6c 69 62 78 6d 6c 20 73 75 70 70 6f 72 74 22 29 29 0a 0a 0c 0a 3b 3b 3b 20 45 .with.libxml.support"))....;;;.E
0f80 50 55 42 20 70 72 65 70 61 72 61 74 69 6f 6e 0a 0a 28 64 65 66 67 72 6f 75 70 20 6e 6f 76 20 6e PUB.preparation..(defgroup.nov.n
0fa0 69 6c 0a 20 20 22 45 50 55 42 20 72 65 61 64 65 72 20 6d 6f 64 65 22 0a 20 20 3a 67 72 6f 75 70 il..."EPUB.reader.mode"...:group
0fc0 20 27 6d 75 6c 74 69 6d 65 64 69 61 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d 75 6e .'multimedia)..(defcustom.nov-un
0fe0 7a 69 70 2d 70 72 6f 67 72 61 6d 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 75 6e zip-program.(executable-find."un
1000 7a 69 70 22 29 0a 20 20 22 50 61 74 68 20 74 6f 20 64 65 63 6f 6d 70 72 65 73 73 69 6f 6e 20 65 zip")..."Path.to.decompression.e
1020 78 65 63 75 74 61 62 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 66 69 6c 65 20 3a 6d 75 73 74 xecutable."...:type.'(file.:must
1040 2d 6d 61 74 63 68 20 74 29 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28 64 65 66 63 75 -match.t)...:group.'nov)..(defcu
1060 73 74 6f 6d 20 6e 6f 76 2d 75 6e 7a 69 70 2d 61 72 67 73 20 27 28 22 2d 6f 64 22 20 64 69 72 65 stom.nov-unzip-args.'("-od".dire
1080 63 74 6f 72 79 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 41 72 67 75 6d 65 6e 74 73 20 74 6f 20 ctory.filename)..."Arguments.to.
10a0 64 65 63 6f 6d 70 72 65 73 73 69 6f 6e 20 65 78 65 63 75 74 61 62 6c 65 2e 0a 54 68 69 73 20 76 decompression.executable..This.v
10c0 61 72 69 61 62 6c 65 20 65 78 70 65 63 74 73 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 ariable.expects.a.list.of.string
10e0 73 2c 20 65 78 63 65 70 74 20 66 6f 72 20 60 64 69 72 65 63 74 6f 72 79 27 0a 61 6e 64 20 60 66 s,.except.for.`directory'.and.`f
1100 69 6c 65 6e 61 6d 65 27 20 73 79 6d 62 6f 6c 73 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 ilename'.symbols,.which.will.be.
1120 72 65 70 6c 61 63 65 64 20 61 63 63 6f 72 64 69 6e 67 6c 79 20 77 68 65 6e 0a 6f 70 65 6e 69 6e replaced.accordingly.when.openin
1140 67 20 61 6e 20 45 50 55 42 20 66 69 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 6c 69 73 74 0a 20 g.an.EPUB.file."...:type.'list..
1160 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d 76 61 .:group.'nov)..(defcustom.nov-va
1180 72 69 61 62 6c 65 2d 70 69 74 63 68 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 61 20 76 riable-pitch.t..."Non-nil.if.a.v
11a0 61 72 69 61 62 6c 65 20 70 69 74 63 68 20 66 61 63 65 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 ariable.pitch.face.should.be.use
11c0 64 2e 0a 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 66 61 63 65 20 69 73 d..Otherwise.the.default.face.is
11e0 20 75 73 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 .used."...:type.'boolean...:grou
1200 70 20 27 6e 6f 76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d 74 65 78 74 2d 77 69 64 p.'nov)..(defcustom.nov-text-wid
1220 74 68 20 6e 69 6c 0a 20 20 22 57 69 64 74 68 20 66 69 6c 6c 65 64 20 74 65 78 74 20 73 68 61 6c th.nil..."Width.filled.text.shal
1240 6c 20 6f 63 63 75 70 79 2e 0a 41 6e 20 69 6e 74 65 67 65 72 20 69 73 20 69 6e 74 65 72 70 72 65 l.occupy..An.integer.is.interpre
1260 74 65 64 20 61 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 2e 20 20 49 ted.as.the.number.of.columns...I
1280 66 20 6e 69 6c 2c 20 75 73 65 0a 74 68 65 20 66 75 6c 6c 20 77 69 6e 64 6f 77 27 73 20 77 69 64 f.nil,.use.the.full.window's.wid
12a0 74 68 2e 20 20 49 66 20 74 2c 20 64 69 73 61 62 6c 65 20 66 69 6c 6c 69 6e 67 20 63 6f 6d 70 6c th...If.t,.disable.filling.compl
12c0 65 74 65 6c 79 2e 20 20 4e 6f 74 65 0a 74 68 61 74 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 etely...Note.that.this.variable.
12e0 6f 6e 6c 79 20 68 61 73 20 61 6e 20 65 66 66 65 63 74 20 69 6e 20 45 6d 61 63 73 20 32 35 2e 31 only.has.an.effect.in.Emacs.25.1
1300 20 6f 72 20 67 72 65 61 74 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 .or.greater."...:type.'(choice.(
1320 69 6e 74 65 67 65 72 20 3a 74 61 67 20 22 46 69 78 65 64 20 77 69 64 74 68 20 69 6e 20 63 68 61 integer.:tag."Fixed.width.in.cha
1340 72 61 63 74 65 72 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 racters")..................(cons
1360 74 20 20 20 3a 74 61 67 20 22 55 73 65 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 77 t...:tag."Use.the.width.of.the.w
1380 69 6e 64 6f 77 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f indow".nil)..................(co
13a0 6e 73 74 20 20 20 3a 74 61 67 20 22 44 69 73 61 62 6c 65 20 66 69 6c 6c 69 6e 67 22 20 74 29 29 nst...:tag."Disable.filling".t))
13c0 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d ...:group.'nov)..(defcustom.nov-
13e0 72 65 6e 64 65 72 2d 68 74 6d 6c 2d 66 75 6e 63 74 69 6f 6e 20 27 6e 6f 76 2d 72 65 6e 64 65 72 render-html-function.'nov-render
1400 2d 68 74 6d 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 -html..."Function.used.to.render
1420 20 48 54 4d 4c 2e 0a 49 74 27 73 20 63 61 6c 6c 65 64 20 77 69 74 68 6f 75 74 20 61 72 67 75 6d .HTML..It's.called.without.argum
1440 65 6e 74 73 20 77 69 74 68 20 61 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 6e 69 6e 67 20 48 54 ents.with.a.buffer.containing.HT
1460 4d 4c 20 61 6e 64 0a 73 68 6f 75 6c 64 20 63 68 61 6e 67 65 20 69 74 20 74 6f 20 63 6f 6e 74 61 ML.and.should.change.it.to.conta
1480 69 6e 20 74 68 65 20 72 65 6e 64 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 2e 22 0a in.the.rendered.version.of.it.".
14a0 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 ..:type.'function...:group.'nov)
14c0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d 70 72 65 2d 68 74 6d 6c 2d 72 65 6e 64 65 72 ..(defcustom.nov-pre-html-render
14e0 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f 72 65 20 60 6e 6f -hook.nil..."Hook.run.before.`no
1500 76 2d 72 65 6e 64 65 72 2d 68 74 6d 6c 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 v-render-html'."...:type.'hook..
1520 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d 70 6f .:group.'nov)..(defcustom.nov-po
1540 73 74 2d 68 74 6d 6c 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 st-html-render-hook.nil..."Hook.
1560 72 75 6e 20 61 66 74 65 72 20 60 6e 6f 76 2d 72 65 6e 64 65 72 2d 68 74 6d 6c 27 2e 22 0a 20 20 run.after.`nov-render-html'."...
1580 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28 64 65 66 :type.'hook...:group.'nov)..(def
15a0 63 75 73 74 6f 6d 20 6e 6f 76 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65 20 28 6c 6f 63 61 custom.nov-save-place-file.(loca
15c0 74 65 2d 75 73 65 72 2d 65 6d 61 63 73 2d 66 69 6c 65 20 22 6e 6f 76 2d 70 6c 61 63 65 73 22 29 te-user-emacs-file."nov-places")
15e0 0a 20 20 22 46 69 6c 65 20 6e 61 6d 65 20 77 68 65 72 65 20 6c 61 73 74 20 72 65 61 64 69 6e 67 ..."File.name.where.last.reading
1600 20 70 6c 61 63 65 73 20 61 72 65 20 73 61 76 65 64 20 74 6f 20 61 6e 64 20 72 65 73 74 6f 72 65 .places.are.saved.to.and.restore
1620 64 20 66 72 6f 6d 2e 0a 49 66 20 73 65 74 20 74 6f 20 60 6e 69 6c 27 2c 20 6e 6f 20 73 61 76 69 d.from..If.set.to.`nil',.no.savi
1640 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 69 73 20 70 65 72 66 6f 72 6d 65 64 2e 22 0a ng.and.restoring.is.performed.".
1660 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 66 69 6c 65 20 20 3a 74 61 67 20 22 46 69 ..:type.'(choice.(file..:tag."Fi
1680 6c 65 20 6e 61 6d 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 le.name")..................(cons
16a0 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 73 61 76 65 20 6c 61 73 74 20 72 65 61 64 69 6e 67 20 t.:tag."Don't.save.last.reading.
16c0 70 6c 61 63 65 73 22 20 6e 69 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28 64 places".nil))...:group.'nov)..(d
16e0 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 efcustom.nov-header-line-format.
1700 22 25 74 3a 20 25 63 22 0a 20 20 22 48 65 61 64 65 72 20 6c 69 6e 65 20 66 6f 72 6d 61 74 2e 0a "%t:.%c"..."Header.line.format..
1720 2d 20 25 74 20 69 73 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 65 20 74 69 74 6c 65 2e 0a 2d -.%t.is.replaced.by.the.title..-
1740 20 25 63 20 69 73 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 65 20 63 68 61 70 74 65 72 20 74 .%c.is.replaced.by.the.chapter.t
1760 69 74 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 itle."...:type.'string...:group.
1780 27 6e 6f 76 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 66 69 6c 65 2d 6e 61 'nov)..(defvar-local.nov-file-na
17a0 6d 65 20 6e 69 6c 0a 20 20 22 50 61 74 68 20 74 6f 20 74 68 65 20 45 50 55 42 20 66 69 6c 65 20 me.nil..."Path.to.the.EPUB.file.
17c0 62 61 63 6b 69 6e 67 20 74 68 69 73 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d backing.this.buffer.")..(defvar-
17e0 6c 6f 63 61 6c 20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72 20 6e 69 6c 0a 20 20 22 54 65 6d 70 6f 72 local.nov-temp-dir.nil..."Tempor
1800 61 72 79 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 62 75 66 ary.directory.containing.the.buf
1820 66 65 72 27 73 20 45 50 55 42 20 66 69 6c 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 fer's.EPUB.files.")..(defvar-loc
1840 61 6c 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 50 61 74 68 20 al.nov-content-file.nil..."Path.
1860 74 6f 20 74 68 65 20 45 50 55 42 20 62 75 66 66 65 72 27 73 20 2e 6f 70 66 20 66 69 6c 65 2e 22 to.the.EPUB.buffer's..opf.file."
1880 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 65 70 75 62 2d 76 65 72 73 69 6f )..(defvar-local.nov-epub-versio
18a0 6e 20 6e 69 6c 0a 20 20 22 56 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 6f 66 20 74 68 65 20 45 n.nil..."Version.string.of.the.E
18c0 50 55 42 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 PUB.buffer.")..(defvar-local.nov
18e0 2d 6d 65 74 61 64 61 74 61 20 6e 69 6c 0a 20 20 22 4d 65 74 61 64 61 74 61 20 6f 66 20 74 68 65 -metadata.nil..."Metadata.of.the
1900 20 45 50 55 42 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e .EPUB.buffer.")..(defvar-local.n
1920 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 66 6f 72 20 74 68 ov-documents.nil..."Alist.for.th
1940 65 20 45 50 55 42 20 62 75 66 66 65 72 27 73 20 64 6f 63 75 6d 65 6e 74 73 2e 0a 45 61 63 68 20 e.EPUB.buffer's.documents..Each.
1960 61 6c 69 73 74 20 69 74 65 6d 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 65 20 69 64 65 6e 74 alist.item.consists.of.the.ident
1980 69 66 69 65 72 20 61 6e 64 20 66 75 6c 6c 20 70 61 74 68 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d ifier.and.full.path.")..(defvar-
19a0 6c 6f 63 61 6c 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 30 0a 20 20 22 49 local.nov-documents-index.0..."I
19c0 6e 64 65 78 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 72 65 6e 64 65 72 65 64 20 64 ndex.of.the.currently.rendered.d
19e0 6f 63 75 6d 65 6e 74 20 69 6e 20 74 68 65 20 45 50 55 42 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 ocument.in.the.EPUB.buffer.")..(
1a00 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 74 6f 63 2d 69 64 20 6e 69 6c 0a 20 20 22 54 defvar-local.nov-toc-id.nil..."T
1a20 4f 43 20 69 64 65 6e 74 69 66 69 65 72 20 6f 66 20 74 68 65 20 45 50 55 42 20 62 75 66 66 65 72 OC.identifier.of.the.EPUB.buffer
1a40 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 68 69 73 74 6f 72 79 20 6e .")..(defvar-local.nov-history.n
1a60 69 6c 0a 20 20 22 53 74 61 63 6b 20 6f 66 20 64 6f 63 75 6d 65 6e 74 73 20 75 73 65 72 20 68 61 il..."Stack.of.documents.user.ha
1a80 73 20 76 69 73 69 74 65 64 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 73 s.visited..Each.element.of.the.s
1aa0 74 61 63 6b 20 69 73 20 61 20 6c 69 73 74 20 28 4e 4f 44 45 49 4e 44 45 58 20 42 55 46 46 45 52 tack.is.a.list.(NODEINDEX.BUFFER
1ac0 50 4f 53 29 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 68 69 73 74 6f POS).")..(defvar-local.nov-histo
1ae0 72 79 2d 66 6f 72 77 61 72 64 20 6e 69 6c 0a 20 20 22 53 74 61 63 6b 20 6f 66 20 64 6f 63 75 6d ry-forward.nil..."Stack.of.docum
1b00 65 6e 74 73 20 75 73 65 72 20 68 61 73 20 76 69 73 69 74 65 64 20 77 69 74 68 20 60 6e 6f 76 2d ents.user.has.visited.with.`nov-
1b20 68 69 73 74 6f 72 79 2d 62 61 63 6b 27 20 63 6f 6d 6d 61 6e 64 2e 0a 45 61 63 68 20 65 6c 65 6d history-back'.command..Each.elem
1b40 65 6e 74 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 69 73 20 61 20 6c 69 73 74 20 28 4e 4f 44 45 ent.of.the.stack.is.a.list.(NODE
1b60 49 4e 44 45 58 20 42 55 46 46 45 52 50 4f 53 29 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d INDEX.BUFFERPOS).")..(defun.nov-
1b80 6d 61 6b 65 2d 70 61 74 68 20 28 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 0a 20 20 22 43 72 make-path.(directory.file)..."Cr
1ba0 65 61 74 65 20 61 20 70 61 74 68 20 66 72 6f 6d 20 44 49 52 45 43 54 4f 52 59 20 61 6e 64 20 46 eate.a.path.from.DIRECTORY.and.F
1bc0 49 4c 45 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 ILE."...(concat.(file-name-as-di
1be0 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 6f 72 79 29 20 66 69 6c 65 29 29 0a 0a 28 64 65 66 75 rectory.directory).file))..(defu
1c00 6e 20 6e 6f 76 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 28 64 69 72 65 63 74 6f 72 79 n.nov-directory-files.(directory
1c20 29 0a 20 20 22 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 69 6e 20 )..."Returns.a.list.of.files.in.
1c40 44 49 52 45 43 54 4f 52 59 20 65 78 63 65 70 74 20 66 6f 72 20 2e 20 61 6e 64 20 2e 2e 22 0a 20 DIRECTORY.except.for...and..."..
1c60 20 28 73 65 71 2d 72 65 6d 6f 76 65 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 73 74 72 .(seq-remove.(lambda.(file).(str
1c80 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 2f 5c 5c 2e 5c 5c 28 3f 3a 5c 5c 2e 5c 5c 29 3f 5c 5c 27 ing-match-p."/\\.\\(?:\\.\\)?\\'
1ca0 22 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 ".file))...............(director
1cc0 79 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e y-files.directory.t)))..(defun.n
1ce0 6f 76 2d 63 6f 6e 74 61 69 6e 73 2d 6e 65 73 74 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 ov-contains-nested-directory-p.(
1d00 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 44 49 52 45 43 54 4f directory)..."Non-nil.if.DIRECTO
1d20 52 59 20 63 6f 6e 74 61 69 6e 73 20 65 78 61 63 74 6c 79 20 6f 6e 65 20 64 69 72 65 63 74 6f 72 RY.contains.exactly.one.director
1d40 79 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 73 20 28 6e 6f 76 2d 64 69 72 65 63 74 6f y."...(let*.((files.(nov-directo
1d60 72 79 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 ry-files.directory))..........(f
1d80 69 6c 65 20 28 63 61 72 20 66 69 6c 65 73 29 29 29 0a 20 20 20 20 28 61 6e 64 20 28 3d 20 28 6c ile.(car.files))).....(and.(=.(l
1da0 65 6e 67 74 68 20 66 69 6c 65 73 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 64 ength.files).1)..........(file-d
1dc0 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 66 69 6c 65 29 29 irectory-p.file)..........file))
1de0 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 75 6e 6e 65 73 74 2d 64 69 72 65 63 74 6f 72 79 20 28 )..(defun.nov-unnest-directory.(
1e00 64 69 72 65 63 74 6f 72 79 20 63 68 69 6c 64 29 0a 20 20 22 4d 6f 76 65 20 63 6f 6e 74 65 6e 74 directory.child)..."Move.content
1e20 73 20 6f 66 20 43 48 49 4c 44 20 69 6e 74 6f 20 44 49 52 45 43 54 4f 52 59 2c 20 74 68 65 6e 20 s.of.CHILD.into.DIRECTORY,.then.
1e40 64 65 6c 65 74 65 20 43 48 49 4c 44 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 74 68 69 73 20 delete.CHILD."...;;.FIXME:.this.
1e60 77 69 6c 6c 20 6d 6f 73 74 20 63 65 72 74 61 69 6e 6c 79 20 66 61 69 6c 20 66 6f 72 20 63 6f 6e will.most.certainly.fail.for.con
1e80 2f 63 6f 6e 0a 20 20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 28 6e 6f 76 2d 64 69 72 65 63 74 /con...(dolist.(item.(nov-direct
1ea0 6f 72 79 2d 66 69 6c 65 73 20 63 68 69 6c 64 29 29 0a 20 20 20 20 28 72 65 6e 61 6d 65 2d 66 69 ory-files.child)).....(rename-fi
1ec0 6c 65 20 69 74 65 6d 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 28 64 65 6c 65 74 65 2d 64 69 le.item.directory))...(delete-di
1ee0 72 65 63 74 6f 72 79 20 63 68 69 6c 64 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d 66 69 78 rectory.child))..(defun.nov--fix
1f00 2d 70 65 72 6d 69 73 73 69 6f 6e 73 20 28 66 69 6c 65 2d 6f 72 2d 64 69 72 65 63 74 6f 72 79 20 -permissions.(file-or-directory.
1f20 6d 6f 64 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 6f 64 65 73 20 28 66 69 6c 65 2d 6d 6f 64 65 mode)...(let*.((modes.(file-mode
1f40 73 20 66 69 6c 65 2d 6f 72 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 s.file-or-directory))..........(
1f60 66 69 78 65 64 2d 6d 6f 64 65 20 28 66 69 6c 65 2d 6d 6f 64 65 73 2d 73 79 6d 62 6f 6c 69 63 2d fixed-mode.(file-modes-symbolic-
1f80 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 64 65 20 6d 6f 64 65 73 29 29 29 0a 20 20 20 20 28 73 65 74 to-number.mode.modes))).....(set
1fa0 2d 66 69 6c 65 2d 6d 6f 64 65 73 20 66 69 6c 65 2d 6f 72 2d 64 69 72 65 63 74 6f 72 79 20 66 69 -file-modes.file-or-directory.fi
1fc0 78 65 64 2d 6d 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 66 69 78 2d 70 65 72 6d xed-mode)))..(defun.nov-fix-perm
1fe0 69 73 73 69 6f 6e 73 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 49 74 65 72 61 74 65 20 72 issions.(directory)..."Iterate.r
2000 65 63 75 72 73 69 76 65 6c 79 20 74 68 72 6f 75 67 68 20 44 49 52 45 43 54 4f 52 59 20 74 6f 20 ecursively.through.DIRECTORY.to.
2020 66 69 78 20 69 74 73 20 66 69 6c 65 73 2e 22 0a 20 20 28 6e 6f 76 2d 2d 66 69 78 2d 70 65 72 6d fix.its.files."...(nov--fix-perm
2040 69 73 73 69 6f 6e 73 20 64 69 72 65 63 74 6f 72 79 20 22 2b 72 78 22 29 0a 20 20 28 64 6f 6c 69 issions.directory."+rx")...(doli
2060 73 74 20 28 66 69 6c 65 20 28 6e 6f 76 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69 st.(file.(nov-directory-files.di
2080 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 rectory)).....(if.(file-director
20a0 79 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 66 69 78 2d 70 65 72 6d 69 y-p.file).........(nov-fix-permi
20c0 73 73 69 6f 6e 73 20 66 69 6c 65 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 2d 66 69 78 2d 70 65 72 ssions.file).......(nov--fix-per
20e0 6d 69 73 73 69 6f 6e 73 20 66 69 6c 65 20 22 2b 72 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e missions.file."+r"))))..(defun.n
2100 6f 76 2d 75 6e 7a 69 70 2d 65 70 75 62 20 28 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 6e 61 6d ov-unzip-epub.(directory.filenam
2120 65 29 0a 20 20 22 45 78 74 72 61 63 74 20 46 49 4c 45 4e 41 4d 45 20 69 6e 74 6f 20 44 49 52 45 e)..."Extract.FILENAME.into.DIRE
2140 43 54 4f 52 59 2e 0a 55 6e 6e 65 63 65 73 73 61 72 79 20 6e 65 73 74 69 6e 67 20 69 73 20 72 65 CTORY..Unnecessary.nesting.is.re
2160 6d 6f 76 65 64 20 77 69 74 68 20 60 6e 6f 76 2d 75 6e 6e 65 73 74 2d 64 69 72 65 63 74 6f 72 79 moved.with.`nov-unnest-directory
2180 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 74 75 73 20 28 61 70 70 6c 79 20 23 27 63 61 '."...(let*.((status.(apply.#'ca
21a0 6c 6c 2d 70 72 6f 63 65 73 73 20 6e 6f 76 2d 75 6e 7a 69 70 2d 70 72 6f 67 72 61 6d 20 6e 69 6c ll-process.nov-unzip-program.nil
21c0 20 22 2a 6e 6f 76 20 75 6e 7a 69 70 2a 22 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."*nov.unzip*".t................
21e0 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 .........(mapcar.(lambda.(arg)..
2200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2220 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(cond..........................
2240 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 61 72 67 20 27 64 69 72 65 63 74 6f 72 79 29 20 64 ..........((eq.arg.'directory).d
2260 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 irectory).......................
2280 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 61 72 67 20 27 66 69 6c 65 6e 61 6d 65 29 .............((eq.arg.'filename)
22a0 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .filename)......................
22c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 61 72 67 29 29 29 0a 20 20 20 20 20 20 20 20 ..............(t.arg))).........
22e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 76 2d 75 6e 7a 69 ........................nov-unzi
2300 70 2d 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 29 0a 20 20 20 20 28 77 p-args)))..........child).....(w
2320 68 69 6c 65 20 28 73 65 74 71 20 63 68 69 6c 64 20 28 6e 6f 76 2d 63 6f 6e 74 61 69 6e 73 2d 6e hile.(setq.child.(nov-contains-n
2340 65 73 74 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 ested-directory-p.directory))...
2360 20 20 20 20 28 6e 6f 76 2d 75 6e 6e 65 73 74 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 ....(nov-unnest-directory.direct
2380 6f 72 79 20 63 68 69 6c 64 29 29 0a 20 20 20 20 3b 3b 20 48 41 43 4b 3a 20 75 6e 7a 69 70 20 70 ory.child)).....;;.HACK:.unzip.p
23a0 72 65 73 65 72 76 65 73 20 66 69 6c 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c 20 6e 6f 20 6d 61 reserves.file.permissions,.no.ma
23c0 74 74 65 72 20 68 6f 77 20 73 69 6c 6c 79 20 74 68 65 79 0a 20 20 20 20 3b 3b 20 61 72 65 2c 20 tter.how.silly.they.....;;.are,.
23e0 73 6f 20 65 6e 73 75 72 65 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 so.ensure.files.and.directories.
2400 61 72 65 20 72 65 61 64 61 62 6c 65 0a 20 20 20 20 28 6e 6f 76 2d 66 69 78 2d 70 65 72 6d 69 73 are.readable.....(nov-fix-permis
2420 73 69 6f 6e 73 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 73 74 61 74 75 73 29 29 0a 0a 28 sions.directory).....status))..(
2440 64 65 66 75 6e 20 6e 6f 76 2d 77 61 72 6e 20 28 6d 65 73 73 61 67 65 20 26 6f 70 74 69 6f 6e 61 defun.nov-warn.(message.&optiona
2460 6c 20 6c 65 76 65 6c 29 0a 20 20 22 4c 69 6b 65 20 60 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e l.level)..."Like.`display-warnin
2480 67 27 2c 20 62 75 74 20 66 6f 72 20 6e 6f 76 2d 73 70 65 63 69 66 69 63 20 77 61 72 6e 69 6e 67 g',.but.for.nov-specific.warning
24a0 73 2e 0a 44 69 73 70 6c 61 79 73 20 4d 45 53 53 41 47 45 20 69 6e 20 61 20 77 61 72 6e 69 6e 67 s..Displays.MESSAGE.in.a.warning
24c0 73 20 62 75 66 66 65 72 2c 20 77 69 74 68 20 4c 45 56 45 4c 20 61 73 20 73 65 76 65 72 69 74 79 s.buffer,.with.LEVEL.as.severity
24e0 2e 22 0a 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 20 27 6e 6f 76 20 6d 65 73 73 61 ."...(display-warning.'nov.messa
2500 67 65 20 6c 65 76 65 6c 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6e 6f 76 2d 69 67 6e 6f 72 65 ge.level))..(defmacro.nov-ignore
2520 2d 66 69 6c 65 2d 65 72 72 6f 72 73 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 4c 69 6b -file-errors.(&rest.body)..."Lik
2540 65 20 60 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 27 2c 20 62 75 74 20 66 6f 72 20 66 69 6c 65 20 e.`ignore-errors',.but.for.file.
2560 65 72 72 6f 72 73 2e 22 0a 20 20 60 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 20 errors."...`(condition-case.nil.
2580 28 70 72 6f 67 6e 20 2c 40 62 6f 64 79 29 20 28 66 69 6c 65 2d 65 72 72 6f 72 20 6e 69 6c 29 29 (progn.,@body).(file-error.nil))
25a0 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 73 6c 75 72 70 20 28 66 69 6c 65 6e 61 6d 65 20 26 6f )..(defun.nov-slurp.(filename.&o
25c0 70 74 69 6f 6e 61 6c 20 70 61 72 73 65 2d 78 6d 6c 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 74 ptional.parse-xml-p)..."Return.t
25e0 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 46 49 4c 45 4e 41 4d 45 2e 0a 49 66 20 50 41 52 53 he.contents.of.FILENAME..If.PARS
2600 45 2d 58 4d 4c 2d 50 20 69 73 20 74 2c 20 72 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 E-XML-P.is.t,.return.the.content
2620 73 20 61 73 20 70 61 72 73 65 64 20 62 79 20 6c 69 62 78 6d 6c 2e 22 0a 20 20 28 77 69 74 68 2d s.as.parsed.by.libxml."...(with-
2640 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e temp-buffer.....(insert-file-con
2660 74 65 6e 74 73 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 28 69 66 20 70 61 72 73 65 2d 78 6d tents.filename).....(if.parse-xm
2680 6c 2d 70 0a 20 20 20 20 20 20 20 20 28 6c 69 62 78 6d 6c 2d 70 61 72 73 65 2d 78 6d 6c 2d 72 65 l-p.........(libxml-parse-xml-re
26a0 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 gion.(point-min).(point-max))...
26c0 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e ....(buffer-string))))..(defun.n
26e0 6f 76 2d 6d 69 6d 65 74 79 70 65 2d 76 61 6c 69 64 2d 70 20 28 64 69 72 65 63 74 6f 72 79 29 0a ov-mimetype-valid-p.(directory).
2700 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 44 49 52 45 43 54 4f 52 59 20 63 6f 6e 74 61 69 6e .."Return.t.if.DIRECTORY.contain
2720 73 20 61 20 76 61 6c 69 64 20 45 50 55 42 20 6d 69 6d 65 74 79 70 65 20 66 69 6c 65 2e 22 0a 20 s.a.valid.EPUB.mimetype.file."..
2740 20 28 6e 6f 76 2d 69 67 6e 6f 72 65 2d 66 69 6c 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 6c 65 .(nov-ignore-file-errors.....(le
2760 74 20 28 28 66 69 6c 65 6e 61 6d 65 20 28 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20 64 69 72 65 t.((filename.(nov-make-path.dire
2780 63 74 6f 72 79 20 22 6d 69 6d 65 74 79 70 65 22 29 29 29 0a 20 20 20 20 20 20 28 65 71 75 61 6c ctory."mimetype"))).......(equal
27a0 20 28 6e 6f 76 2d 73 6c 75 72 70 20 66 69 6c 65 6e 61 6d 65 29 20 22 61 70 70 6c 69 63 61 74 69 .(nov-slurp.filename)."applicati
27c0 6f 6e 2f 65 70 75 62 2b 7a 69 70 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e on/epub+zip"))))..(defun.nov-con
27e0 74 61 69 6e 65 72 2d 66 69 6c 65 6e 61 6d 65 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 52 tainer-filename.(directory)..."R
2800 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 66 69 6c 65 6e 61 6d 65 20 66 6f 72 eturn.the.container.filename.for
2820 20 44 49 52 45 43 54 4f 52 59 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 6d 65 20 28 .DIRECTORY."...(let.((filename.(
2840 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20 64 69 72 65 63 74 6f 72 79 20 22 4d 45 54 41 2d 49 4e nov-make-path.directory."META-IN
2860 46 22 29 29 29 0a 20 20 20 20 28 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20 66 69 6c 65 6e 61 6d F"))).....(nov-make-path.filenam
2880 65 20 22 63 6f 6e 74 61 69 6e 65 72 2e 78 6d 6c 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 e."container.xml")))..(defun.nov
28a0 2d 63 6f 6e 74 61 69 6e 65 72 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 6e 61 6d 65 20 28 63 6f 6e -container-content-filename.(con
28c0 74 65 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 66 69 6c 65 tent)..."Return.the.content.file
28e0 6e 61 6d 65 20 66 6f 72 20 43 4f 4e 54 45 4e 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 71 75 65 name.for.CONTENT."...(let*.((que
2900 72 79 20 22 63 6f 6e 74 61 69 6e 65 72 3e 72 6f 6f 74 66 69 6c 65 73 3e 72 6f 6f 74 66 69 6c 65 ry."container>rootfiles>rootfile
2920 5b 6d 65 64 69 61 2d 74 79 70 65 3d 27 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 65 62 70 73 2d 70 [media-type='application/oebps-p
2940 61 63 6b 61 67 65 2b 78 6d 6c 27 5d 22 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 65 ackage+xml']")..........(node.(e
2960 73 78 6d 6c 2d 71 75 65 72 79 20 71 75 65 72 79 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 sxml-query.query.content))).....
2980 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 66 75 6c 6c 2d 70 61 74 68 29 29 29 0a 0a 28 64 (dom-attr.node.'full-path)))..(d
29a0 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 61 69 6e 65 72 2d 76 61 6c 69 64 2d 70 20 28 64 69 72 65 efun.nov-container-valid-p.(dire
29c0 63 74 6f 72 79 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 44 49 52 45 43 54 4f 52 59 20 ctory)..."Return.t.if.DIRECTORY.
29e0 68 6f 6c 64 73 20 61 20 76 61 6c 69 64 20 45 50 55 42 20 63 6f 6e 74 61 69 6e 65 72 2e 22 0a 20 holds.a.valid.EPUB.container."..
2a00 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 6d 65 20 28 6e 6f 76 2d 63 6f 6e 74 61 69 6e 65 72 2d .(let.((filename.(nov-container-
2a20 66 69 6c 65 6e 61 6d 65 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 filename.directory))).....(when.
2a40 28 61 6e 64 20 66 69 6c 65 6e 61 6d 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c (and.filename.(file-exists-p.fil
2a60 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 6e ename)).......(let*.((content.(n
2a80 6f 76 2d 73 6c 75 72 70 20 66 69 6c 65 6e 61 6d 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 ov-slurp.filename.t))...........
2aa0 20 20 20 28 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 20 28 6e 6f 76 2d 63 6f 6e 74 61 69 6e 65 72 2d ...(content-file.(nov-container-
2ac0 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 6e 61 6d 65 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 content-filename.content))).....
2ae0 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 2d 66 ....(when.(and.content.content-f
2b00 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 6e ile)...........(file-exists-p.(n
2b20 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 65 6e 74 2d 66 ov-make-path.directory.content-f
2b40 69 6c 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 65 70 75 62 2d 76 61 6c 69 ile)))))))..(defun.nov-epub-vali
2b60 64 2d 70 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 44 d-p.(directory)..."Return.t.if.D
2b80 49 52 45 43 54 4f 52 59 20 6d 61 6b 65 73 20 75 70 20 61 20 76 61 6c 69 64 20 45 50 55 42 20 64 IRECTORY.makes.up.a.valid.EPUB.d
2ba0 6f 63 75 6d 65 6e 74 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6e 6f 76 2d 6d 69 6d 65 ocument."...(when.(not.(nov-mime
2bc0 74 79 70 65 2d 76 61 6c 69 64 2d 70 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 28 6d 65 type-valid-p.directory)).....(me
2be0 73 73 61 67 65 20 22 49 6e 76 61 6c 69 64 20 6d 69 6d 65 74 79 70 65 22 29 29 0a 20 20 28 6e 6f ssage."Invalid.mimetype"))...(no
2c00 76 2d 63 6f 6e 74 61 69 6e 65 72 2d 76 61 6c 69 64 2d 70 20 64 69 72 65 63 74 6f 72 79 29 29 0a v-container-valid-p.directory)).
2c20 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 75 72 6c 64 65 63 6f 64 65 20 28 73 74 72 69 6e 67 29 0a 20 .(defun.nov-urldecode.(string)..
2c40 20 22 52 65 74 75 72 6e 20 75 72 6c 64 65 63 6f 64 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 ."Return.urldecoded.version.of.S
2c60 54 52 49 4e 47 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 73 74 72 69 6e 67 0a 20 20 TRING.or.nil."...(when.string...
2c80 20 20 28 75 72 6c 2d 75 6e 68 65 78 2d 73 74 72 69 6e 67 20 73 74 72 69 6e 67 29 29 29 0a 0a 28 ..(url-unhex-string.string)))..(
2ca0 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 76 65 72 73 69 6f 6e 20 28 63 6f 6e 74 65 defun.nov-content-version.(conte
2cc0 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 45 50 55 42 20 76 65 72 73 69 6f 6e 20 66 nt)..."Return.the.EPUB.version.f
2ce0 6f 72 20 43 4f 4e 54 45 4e 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 65 73 78 or.CONTENT."...(let*.((node.(esx
2d00 6d 6c 2d 71 75 65 72 79 20 22 70 61 63 6b 61 67 65 22 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 ml-query."package".content))....
2d20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 76 ......(version.(dom-attr.node.'v
2d40 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 76 65 72 73 69 6f 6e ersion))).....(when.(not.version
2d60 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 65 72 73 69 6f 6e 20 6e 6f 74 20 73 70 65 63 ).......(error."Version.not.spec
2d80 69 66 69 65 64 22 29 29 0a 20 20 20 20 76 65 72 73 69 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6e ified")).....version))..(defun.n
2da0 6f 76 2d 63 6f 6e 74 65 6e 74 2d 75 6e 69 71 75 65 2d 69 64 65 6e 74 69 66 69 65 72 2d 6e 61 6d ov-content-unique-identifier-nam
2dc0 65 20 28 63 6f 6e 74 65 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 75 6e 69 71 75 65 e.(content)..."Return.the.unique
2de0 20 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65 20 72 65 66 65 72 65 6e 63 65 64 20 69 6e 20 43 .identifier.name.referenced.in.C
2e00 4f 4e 54 45 4e 54 2e 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 69 6e 20 60 6e 6f 76 2d 63 6f 6e ONTENT..This.is.used.in.`nov-con
2e20 74 65 6e 74 2d 75 6e 69 71 75 65 2d 69 64 65 6e 74 69 66 69 65 72 27 20 74 6f 20 72 65 74 72 69 tent-unique-identifier'.to.retri
2e40 65 76 65 20 74 68 65 0a 74 68 65 20 73 70 65 63 69 66 69 63 20 74 79 70 65 20 6f 66 20 75 6e 69 eve.the.the.specific.type.of.uni
2e60 71 75 65 20 69 64 65 6e 74 69 66 69 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 que.identifier."...(let*.((node.
2e80 28 65 73 78 6d 6c 2d 71 75 65 72 79 20 22 70 61 63 6b 61 67 65 5b 75 6e 69 71 75 65 2d 69 64 65 (esxml-query."package[unique-ide
2ea0 6e 74 69 66 69 65 72 5d 22 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 ntifier]".content))..........(na
2ec0 6d 65 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 75 6e 69 71 75 65 2d 69 64 65 6e 74 69 me.(dom-attr.node.'unique-identi
2ee0 66 69 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 6e 61 6d 65 29 0a 20 20 20 fier))).....(when.(not.name)....
2f00 20 20 20 28 65 72 72 6f 72 20 22 55 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d ...(error."Unique.identifier.nam
2f20 65 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 22 29 29 0a 20 20 20 20 6e 61 6d 65 29 29 0a 0a 28 e.not.specified")).....name))..(
2f40 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 75 6e 69 71 75 65 2d 69 64 65 6e 74 69 66 defun.nov-content-unique-identif
2f60 69 65 72 20 28 63 6f 6e 74 65 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 74 68 65 20 ier.(content)..."Return.the.the.
2f80 75 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65 72 20 66 6f 72 20 43 4f 4e 54 45 4e 54 2e 22 0a unique.identifier.for.CONTENT.".
2fa0 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 75 6e 69 71 ..(let*.((name.(nov-content-uniq
2fc0 75 65 2d 69 64 65 6e 74 69 66 69 65 72 2d 6e 61 6d 65 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 ue-identifier-name.content))....
2fe0 20 20 20 20 20 20 28 73 65 6c 65 63 74 6f 72 20 28 66 6f 72 6d 61 74 20 22 70 61 63 6b 61 67 65 ......(selector.(format."package
3000 3e 6d 65 74 61 64 61 74 61 3e 69 64 65 6e 74 69 66 69 65 72 5b 69 64 3d 27 25 73 27 5d 22 0a 20 >metadata>identifier[id='%s']"..
3020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 73 78 6d 6c ..........................(esxml
3040 2d 71 75 65 72 79 2d 63 73 73 2d 65 73 63 61 70 65 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 -query-css-escape.name))).......
3060 20 20 20 28 69 64 20 28 63 61 72 20 28 64 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 28 65 73 78 6d 6c ...(id.(car.(dom-children.(esxml
3080 2d 71 75 65 72 79 20 73 65 6c 65 63 74 6f 72 20 63 6f 6e 74 65 6e 74 29 29 29 29 29 0a 20 20 20 -query.selector.content)))))....
30a0 20 28 77 68 65 6e 20 28 6e 6f 74 20 69 64 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e .(when.(not.id).......(error."Un
30c0 69 71 75 65 20 69 64 65 6e 74 69 66 69 65 72 20 6e 6f 74 20 66 6f 75 6e 64 20 62 79 20 69 74 73 ique.identifier.not.found.by.its
30e0 20 6e 61 6d 65 3a 20 25 73 22 20 6e 61 6d 65 29 29 0a 20 20 20 20 28 69 6e 74 65 72 6e 20 69 64 .name:.%s".name)).....(intern.id
3100 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 75 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65 72 20 )))..;;.NOTE:.unique.identifier.
3120 69 73 20 71 75 65 72 69 65 64 20 73 65 70 61 72 61 74 65 6c 79 20 61 73 20 69 64 65 6e 74 69 66 is.queried.separately.as.identif
3140 69 65 72 73 20 63 61 6e 0a 3b 3b 20 61 70 70 65 61 72 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 63 iers.can.;;.appear.more.than.onc
3160 65 20 61 6e 64 20 6f 6e 6c 79 20 6f 6e 65 20 6f 66 20 74 68 65 6d 20 63 61 6e 20 62 65 20 74 68 e.and.only.one.of.them.can.be.th
3180 65 20 75 6e 69 71 75 65 20 6f 6e 65 0a 28 64 65 66 76 61 72 20 6e 6f 76 2d 72 65 71 75 69 72 65 e.unique.one.(defvar.nov-require
31a0 64 2d 6d 65 74 61 64 61 74 61 2d 74 61 67 73 20 27 28 74 69 74 6c 65 20 6c 61 6e 67 75 61 67 65 d-metadata-tags.'(title.language
31c0 29 0a 20 20 22 52 65 71 75 69 72 65 64 20 6d 65 74 61 64 61 74 61 20 74 61 67 73 20 75 73 65 64 )..."Required.metadata.tags.used
31e0 20 66 6f 72 20 60 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 6d 65 74 61 64 61 74 61 27 2e 22 29 0a 0a .for.`nov-content-metadata'.")..
3200 28 64 65 66 76 61 72 20 6e 6f 76 2d 6f 70 74 69 6f 6e 61 6c 2d 6d 65 74 61 64 61 74 61 2d 74 61 (defvar.nov-optional-metadata-ta
3220 67 73 0a 20 20 27 28 63 6f 6e 74 72 69 62 75 74 6f 72 20 63 6f 76 65 72 61 67 65 20 63 72 65 61 gs...'(contributor.coverage.crea
3240 74 6f 72 20 64 61 74 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 66 6f 72 6d 61 74 0a 20 20 20 20 tor.date.description.format.....
3260 70 75 62 6c 69 73 68 65 72 20 72 65 6c 61 74 69 6f 6e 20 72 69 67 68 74 73 20 73 6f 75 72 63 65 publisher.relation.rights.source
3280 20 73 75 62 6a 65 63 74 20 74 79 70 65 29 0a 20 20 22 4f 70 74 69 6f 6e 61 6c 20 6d 65 74 61 64 .subject.type)..."Optional.metad
32a0 61 74 61 20 74 61 67 73 20 75 73 65 64 20 66 6f 72 20 60 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 6d ata.tags.used.for.`nov-content-m
32c0 65 74 61 64 61 74 61 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d etadata'.")..(defun.nov-content-
32e0 6d 65 74 61 64 61 74 61 20 28 63 6f 6e 74 65 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6d metadata.(content)..."Return.a.m
3300 65 74 61 64 61 74 61 20 61 6c 69 73 74 20 66 6f 72 20 43 4f 4e 54 45 4e 54 2e 0a 52 65 71 75 69 etadata.alist.for.CONTENT..Requi
3320 72 65 64 20 6b 65 79 73 20 61 72 65 20 5c 5c 3d 27 69 64 65 6e 74 69 66 69 65 72 20 61 6e 64 20 red.keys.are.\\='identifier.and.
3340 65 76 65 72 79 74 68 69 6e 67 20 69 6e 0a 60 6e 6f 76 2d 72 65 71 75 69 72 65 64 2d 6d 65 74 61 everything.in.`nov-required-meta
3360 64 61 74 61 2d 74 61 67 73 27 2c 20 6f 70 74 69 6f 6e 61 6c 20 6b 65 79 73 20 61 72 65 20 69 6e data-tags',.optional.keys.are.in
3380 0a 60 6e 6f 76 2d 6f 70 74 69 6f 6e 61 6c 2d 6d 65 74 61 64 61 74 61 2d 74 61 67 73 27 2e 22 0a .`nov-optional-metadata-tags'.".
33a0 20 20 28 6c 65 74 2a 20 28 28 69 64 65 6e 74 69 66 69 65 72 20 28 6e 6f 76 2d 63 6f 6e 74 65 6e ..(let*.((identifier.(nov-conten
33c0 74 2d 75 6e 69 71 75 65 2d 69 64 65 6e 74 69 66 69 65 72 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 t-unique-identifier.content))...
33e0 20 20 20 20 20 20 20 28 63 61 6e 64 69 64 61 74 65 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 .......(candidates.(mapcar.(lamb
3400 64 61 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 da.(node).......................
3420 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 64 6f 6d 2d 74 61 67 20 6e 6f 64 65 29 20 28 63 .........(cons.(dom-tag.node).(c
3440 61 72 20 28 64 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 ar.(dom-children.node)))).......
3460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 71 75 .......................(esxml-qu
3480 65 72 79 2d 61 6c 6c 20 22 70 61 63 6b 61 67 65 3e 6d 65 74 61 64 61 74 61 3e 2a 22 20 63 6f 6e ery-all."package>metadata>*".con
34a0 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 64 20 28 6d 61 70 63 tent)))..........(required.(mapc
34c0 61 72 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar.(lambda.(tag)................
34e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 61 6e 64 69 64 61 74 65 20 28 ..............(let.((candidate.(
3500 63 64 72 20 28 61 73 73 71 20 74 61 67 20 63 61 6e 64 69 64 61 74 65 73 29 29 29 29 0a 20 20 20 cdr.(assq.tag.candidates))))....
3520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 ............................(whe
3540 6e 20 28 6e 6f 74 20 63 61 6e 64 69 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.(not.candidate)...............
3560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 74 68 69 73 ...................;;.NOTE:.this
3580 20 73 68 6f 75 6c 64 20 69 64 65 61 6c 6c 79 20 62 65 20 61 0a 20 20 20 20 20 20 20 20 20 20 20 .should.ideally.be.a............
35a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 61 72 6e 69 6e 67 ......................;;.warning
35c0 2c 20 62 75 74 20 60 77 61 72 6e 27 20 69 73 20 74 6f 6f 20 6f 62 74 72 75 73 69 76 65 0a 20 20 ,.but.`warn'.is.too.obtrusive...
35e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
3600 6d 65 73 73 61 67 65 20 22 52 65 71 75 69 72 65 64 20 6d 65 74 61 64 61 74 75 6d 20 25 73 20 6e message."Required.metadatum.%s.n
3620 6f 74 20 66 6f 75 6e 64 22 20 74 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ot.found".tag)).................
3640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 74 61 67 20 63 61 6e 64 69 64 61 ...............(cons.tag.candida
3660 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te)))...........................
3680 20 6e 6f 76 2d 72 65 71 75 69 72 65 64 2d 6d 65 74 61 64 61 74 61 2d 74 61 67 73 29 29 0a 20 20 .nov-required-metadata-tags))...
36a0 20 20 20 20 20 20 20 28 6f 70 74 69 6f 6e 61 6c 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 .......(optional.(mapcar.(lambda
36c0 20 28 74 61 67 29 20 28 63 6f 6e 73 20 74 61 67 20 28 63 64 72 20 28 61 73 73 71 20 74 61 67 20 .(tag).(cons.tag.(cdr.(assq.tag.
36e0 63 61 6e 64 69 64 61 74 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 candidates))))..................
3700 20 20 20 20 20 20 20 20 20 20 6e 6f 76 2d 6f 70 74 69 6f 6e 61 6c 2d 6d 65 74 61 64 61 74 61 2d ..........nov-optional-metadata-
3720 74 61 67 73 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20 60 28 28 69 64 65 6e 74 69 66 69 65 tags))).....(append.`((identifie
3740 72 20 2e 20 2c 69 64 65 6e 74 69 66 69 65 72 29 29 20 72 65 71 75 69 72 65 64 20 6f 70 74 69 6f r...,identifier)).required.optio
3760 6e 61 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 6d 61 6e 69 66 nal)))..(defun.nov-content-manif
3780 65 73 74 20 28 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 65 6e 74 29 0a 20 20 22 45 78 74 72 61 est.(directory.content)..."Extra
37a0 63 74 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 6d 61 6e 69 66 65 73 74 20 66 69 6c 65 73 20 66 6f ct.an.alist.of.manifest.files.fo
37c0 72 20 43 4f 4e 54 45 4e 54 20 69 6e 20 44 49 52 45 43 54 4f 52 59 2e 0a 45 61 63 68 20 61 6c 69 r.CONTENT.in.DIRECTORY..Each.ali
37e0 73 74 20 69 74 65 6d 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 65 20 69 64 65 6e 74 69 66 69 st.item.consists.of.the.identifi
3800 65 72 20 61 6e 64 20 66 75 6c 6c 20 70 61 74 68 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 er.and.full.path."...(mapcar.(la
3820 6d 62 64 61 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 mbda.(node).............(let.((i
3840 64 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 d.(dom-attr.node.'id))..........
3860 20 20 20 20 20 20 20 20 20 28 68 72 65 66 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 68 .........(href.(dom-attr.node.'h
3880 72 65 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 69 6e 74 65 ref)))...............(cons.(inte
38a0 72 6e 20 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 76 2d rn.id).....................(nov-
38c0 6d 61 6b 65 2d 70 61 74 68 20 64 69 72 65 63 74 6f 72 79 20 28 6e 6f 76 2d 75 72 6c 64 65 63 6f make-path.directory.(nov-urldeco
38e0 64 65 20 68 72 65 66 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 71 75 de.href)))))...........(esxml-qu
3900 65 72 79 2d 61 6c 6c 20 22 70 61 63 6b 61 67 65 3e 6d 61 6e 69 66 65 73 74 3e 69 74 65 6d 22 20 ery-all."package>manifest>item".
3920 63 6f 6e 74 65 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 73 content)))..(defun.nov-content-s
3940 70 69 6e 65 20 28 63 6f 6e 74 65 6e 74 29 0a 20 20 22 45 78 74 72 61 63 74 20 61 20 6c 69 73 74 pine.(content)..."Extract.a.list
3960 20 6f 66 20 73 70 69 6e 65 20 69 64 65 6e 74 69 66 69 65 72 73 20 66 6f 72 20 43 4f 4e 54 45 4e .of.spine.identifiers.for.CONTEN
3980 54 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 20 28 69 6e T."...(mapcar.(lambda.(node).(in
39a0 74 65 72 6e 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 69 64 72 65 66 29 29 29 0a 20 20 tern.(dom-attr.node.'idref)))...
39c0 20 20 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 71 75 65 72 79 2d 61 6c 6c 20 22 70 61 63 6b 61 67 ........(esxml-query-all."packag
39e0 65 3e 73 70 69 6e 65 3e 69 74 65 6d 72 65 66 22 20 63 6f 6e 74 65 6e 74 29 29 29 0a 0a 28 64 65 e>spine>itemref".content)))..(de
3a00 66 75 6e 20 6e 6f 76 2d 2d 63 6f 6e 74 65 6e 74 2d 65 70 75 62 32 2d 66 69 6c 65 73 20 28 63 6f fun.nov--content-epub2-files.(co
3a20 6e 74 65 6e 74 20 6d 61 6e 69 66 65 73 74 20 66 69 6c 65 73 29 0a 20 20 28 6c 65 74 2a 20 28 28 ntent.manifest.files)...(let*.((
3a40 6e 6f 64 65 20 28 65 73 78 6d 6c 2d 71 75 65 72 79 20 22 70 61 63 6b 61 67 65 3e 73 70 69 6e 65 node.(esxml-query."package>spine
3a60 5b 74 6f 63 5d 22 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 64 20 28 64 [toc]".content))..........(id.(d
3a80 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 74 6f 63 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 om-attr.node.'toc))).....(when.(
3aa0 6e 6f 74 20 69 64 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55 42 20 32 20 4e 43 58 not.id).......(error."EPUB.2.NCX
3ac0 20 49 44 20 6e 6f 74 20 66 6f 75 6e 64 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 74 .ID.not.found")).....(setq.nov-t
3ae0 6f 63 2d 69 64 20 28 69 6e 74 65 72 6e 20 69 64 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 74 6f oc-id.(intern.id)).....(let.((to
3b00 63 2d 66 69 6c 65 20 28 61 73 73 71 20 6e 6f 76 2d 74 6f 63 2d 69 64 20 6d 61 6e 69 66 65 73 74 c-file.(assq.nov-toc-id.manifest
3b20 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 74 6f 63 2d 66 69 6c 65 29 0a 20 ))).......(when.(not.toc-file)..
3b40 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55 42 20 32 20 4e 43 58 20 66 69 6c 65 20 6e .......(error."EPUB.2.NCX.file.n
3b60 6f 74 20 66 6f 75 6e 64 22 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 74 6f 63 2d 66 69 6c 65 ot.found")).......(cons.toc-file
3b80 20 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d 63 6f 6e 74 65 6e 74 2d .files))))..(defun.nov--content-
3ba0 65 70 75 62 33 2d 66 69 6c 65 73 20 28 63 6f 6e 74 65 6e 74 20 6d 61 6e 69 66 65 73 74 20 66 69 epub3-files.(content.manifest.fi
3bc0 6c 65 73 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 65 73 78 6d 6c 2d 71 75 65 72 79 les)...(let*.((node.(esxml-query
3be0 20 22 70 61 63 6b 61 67 65 3e 6d 61 6e 69 66 65 73 74 3e 69 74 65 6d 5b 70 72 6f 70 65 72 74 69 ."package>manifest>item[properti
3c00 65 73 7e 3d 6e 61 76 5d 22 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 64 es~=nav]".content))..........(id
3c20 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 69 64 29 29 29 0a 20 20 20 20 28 77 68 65 6e .(dom-attr.node.'id))).....(when
3c40 20 28 6e 6f 74 20 69 64 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55 42 20 33 20 3c .(not.id).......(error."EPUB.3.<
3c60 6e 61 76 3e 20 49 44 20 6e 6f 74 20 66 6f 75 6e 64 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e nav>.ID.not.found")).....(setq.n
3c80 6f 76 2d 74 6f 63 2d 69 64 20 28 69 6e 74 65 72 6e 20 69 64 29 29 0a 20 20 20 20 28 6c 65 74 20 ov-toc-id.(intern.id)).....(let.
3ca0 28 28 74 6f 63 2d 66 69 6c 65 20 28 61 73 73 71 20 6e 6f 76 2d 74 6f 63 2d 69 64 20 6d 61 6e 69 ((toc-file.(assq.nov-toc-id.mani
3cc0 66 65 73 74 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 74 6f 63 2d 66 69 6c fest))).......(when.(not.toc-fil
3ce0 65 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55 42 20 33 20 3c 6e 61 76 3e 20 e).........(error."EPUB.3.<nav>.
3d00 66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 22 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 69 file.not.found")).......(setq.fi
3d20 6c 65 73 20 28 73 65 71 2d 72 65 6d 6f 76 65 20 28 6c 61 6d 62 64 61 20 28 69 74 65 6d 29 20 28 les.(seq-remove.(lambda.(item).(
3d40 65 71 20 28 63 61 72 20 69 74 65 6d 29 20 6e 6f 76 2d 74 6f 63 2d 69 64 29 29 20 66 69 6c 65 73 eq.(car.item).nov-toc-id)).files
3d60 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 74 6f 63 2d 66 69 6c 65 20 66 69 6c 65 73 29 29 29 )).......(cons.toc-file.files)))
3d80 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 73 20 28 64 69 72 )..(defun.nov-content-files.(dir
3da0 65 63 74 6f 72 79 20 63 6f 6e 74 65 6e 74 29 0a 20 20 22 43 72 65 61 74 65 20 63 6f 72 72 65 63 ectory.content)..."Create.correc
3dc0 74 6c 79 20 6f 72 64 65 72 65 64 20 66 69 6c 65 20 61 6c 69 73 74 20 66 6f 72 20 43 4f 4e 54 45 tly.ordered.file.alist.for.CONTE
3de0 4e 54 20 69 6e 20 44 49 52 45 43 54 4f 52 59 2e 0a 45 61 63 68 20 61 6c 69 73 74 20 69 74 65 6d NT.in.DIRECTORY..Each.alist.item
3e00 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 20 61 6e 64 20 .consists.of.the.identifier.and.
3e20 66 75 6c 6c 20 70 61 74 68 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6d 61 6e 69 66 65 73 74 20 28 full.path."...(let*.((manifest.(
3e40 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 6d 61 6e 69 66 65 73 74 20 64 69 72 65 63 74 6f 72 79 20 63 nov-content-manifest.directory.c
3e60 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 70 69 6e 65 20 28 6e 6f 76 2d 63 6f ontent))..........(spine.(nov-co
3e80 6e 74 65 6e 74 2d 73 70 69 6e 65 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 ntent-spine.content))..........(
3ea0 66 69 6c 65 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 69 74 65 6d 29 20 28 61 73 files.(mapcar.(lambda.(item).(as
3ec0 73 71 20 69 74 65 6d 20 6d 61 6e 69 66 65 73 74 29 29 20 73 70 69 6e 65 29 29 29 0a 20 20 20 20 sq.item.manifest)).spine))).....
3ee0 28 69 66 20 28 76 65 72 73 69 6f 6e 3c 20 6e 6f 76 2d 65 70 75 62 2d 76 65 72 73 69 6f 6e 20 22 (if.(version<.nov-epub-version."
3f00 33 2e 30 22 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 2d 63 6f 6e 74 65 6e 74 2d 65 70 75 62 3.0").........(nov--content-epub
3f20 32 2d 66 69 6c 65 73 20 63 6f 6e 74 65 6e 74 20 6d 61 6e 69 66 65 73 74 20 66 69 6c 65 73 29 0a 2-files.content.manifest.files).
3f40 20 20 20 20 20 20 28 6e 6f 76 2d 2d 63 6f 6e 74 65 6e 74 2d 65 70 75 62 33 2d 66 69 6c 65 73 20 ......(nov--content-epub3-files.
3f60 63 6f 6e 74 65 6e 74 20 6d 61 6e 69 66 65 73 74 20 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 content.manifest.files))))..(def
3f80 75 6e 20 6e 6f 76 2d 2d 77 61 6c 6b 2d 6e 63 78 2d 6e 6f 64 65 20 28 6e 6f 64 65 29 0a 20 20 28 un.nov--walk-ncx-node.(node)...(
3fa0 6c 65 74 20 28 28 74 61 67 20 28 64 6f 6d 2d 74 61 67 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 let.((tag.(dom-tag.node)).......
3fc0 20 20 28 63 68 69 6c 64 72 65 6e 20 28 73 65 71 2d 66 69 6c 74 65 72 20 28 6c 61 6d 62 64 61 20 ..(children.(seq-filter.(lambda.
3fe0 28 63 68 69 6c 64 29 20 28 65 71 20 28 64 6f 6d 2d 74 61 67 20 63 68 69 6c 64 29 20 27 6e 61 76 (child).(eq.(dom-tag.child).'nav
4000 50 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Point)).........................
4020 20 20 20 20 20 20 28 64 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 ......(dom-children.node))))....
4040 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 65 71 20 74 61 67 20 27 6e 61 76 4d 61 70 29 0a 20 20 .(cond......((eq.tag.'navMap)...
4060 20 20 20 20 28 69 6e 73 65 72 74 20 22 3c 6f 6c 3e 5c 6e 22 29 0a 20 20 20 20 20 20 28 6d 61 70 ....(insert."<ol>\n").......(map
4080 63 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 20 28 6e 6f 76 2d 2d 77 61 6c 6b 2d 6e 63 78 2d c.(lambda.(node).(nov--walk-ncx-
40a0 6e 6f 64 65 20 6e 6f 64 65 29 29 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 node.node)).children).......(ins
40c0 65 72 74 20 22 3c 2f 6f 6c 3e 5c 6e 22 29 29 0a 20 20 20 20 20 28 28 65 71 20 74 61 67 20 27 6e ert."</ol>\n"))......((eq.tag.'n
40e0 61 76 50 6f 69 6e 74 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6c 61 62 65 6c 2d 6e 6f 64 avPoint).......(let*.((label-nod
4100 65 20 28 65 73 78 6d 6c 2d 71 75 65 72 79 20 22 6e 61 76 4c 61 62 65 6c 3e 74 65 78 74 22 20 6e e.(esxml-query."navLabel>text".n
4120 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 2d 6e 6f 64 65 ode))..............(content-node
4140 20 28 65 73 78 6d 6c 2d 71 75 65 72 79 20 22 63 6f 6e 74 65 6e 74 22 20 6e 6f 64 65 29 29 0a 20 .(esxml-query."content".node))..
4160 20 20 20 20 20 20 20 20 20 20 20 20 28 68 72 65 66 20 28 6e 6f 76 2d 75 72 6c 64 65 63 6f 64 65 ............(href.(nov-urldecode
4180 20 28 64 6f 6d 2d 61 74 74 72 20 63 6f 6e 74 65 6e 74 2d 6e 6f 64 65 20 27 73 72 63 29 29 29 0a .(dom-attr.content-node.'src))).
41a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 62 65 6c 20 28 63 61 72 20 28 64 6f 6d 2d 63 68 .............(label.(car.(dom-ch
41c0 69 6c 64 72 65 6e 20 6c 61 62 65 6c 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 ildren.label-node)))).........(w
41e0 68 65 6e 20 28 6e 6f 74 20 68 72 65 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 hen.(not.href)...........(error.
4200 22 4e 61 76 69 67 61 74 69 6f 6e 20 70 6f 69 6e 74 20 69 73 20 6d 69 73 73 69 6e 67 20 68 72 65 "Navigation.point.is.missing.hre
4220 66 20 61 74 74 72 69 62 75 74 65 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 69 f.attribute")).........(let.((li
4240 6e 6b 20 28 66 6f 72 6d 61 74 20 22 3c 61 20 68 72 65 66 3d 5c 22 25 73 5c 22 3e 25 73 3c 2f 61 nk.(format."<a.href=\"%s\">%s</a
4260 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 >".............................(
4280 78 6d 6c 2d 65 73 63 61 70 65 2d 73 74 72 69 6e 67 20 68 72 65 66 29 0a 20 20 20 20 20 20 20 20 xml-escape-string.href).........
42a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 78 6d 6c 2d 65 73 63 61 70 65 2d ....................(xml-escape-
42c0 73 74 72 69 6e 67 20 28 6f 72 20 6c 61 62 65 6c 20 68 72 65 66 29 29 29 29 29 0a 20 20 20 20 20 string.(or.label.href)))))......
42e0 20 20 20 20 20 28 69 66 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(if.children...............
4300 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 (progn.................(insert.(
4320 66 6f 72 6d 61 74 20 22 3c 6c 69 3e 5c 6e 25 73 5c 6e 3c 6f 6c 3e 5c 6e 22 20 6c 69 6e 6b 29 29 format."<li>\n%s\n<ol>\n".link))
4340 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 .................(mapc.(lambda.(
4360 6e 6f 64 65 29 20 28 6e 6f 76 2d 2d 77 61 6c 6b 2d 6e 63 78 2d 6e 6f 64 65 20 6e 6f 64 65 29 29 node).(nov--walk-ncx-node.node))
4380 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 29 .......................children)
43a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 .................(insert.(format
43c0 20 22 3c 2f 6f 6c 3e 5c 6e 3c 2f 6c 69 3e 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ."</ol>\n</li>\n")))............
43e0 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 3c 6c 69 3e 5c 6e 25 73 5c 6e 3c 2f 6c 69 .(insert.(format."<li>\n%s\n</li
4400 3e 5c 6e 22 20 6c 69 6e 6b 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 6e >\n".link)))))))))..(defun.nov-n
4420 63 78 2d 74 6f 2d 68 74 6d 6c 20 28 70 61 74 68 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 4e 43 58 cx-to-html.(path)..."Convert.NCX
4440 20 64 6f 63 75 6d 65 6e 74 20 61 74 20 50 41 54 48 20 74 6f 20 48 54 4d 4c 2e 22 0a 20 20 28 6c .document.at.PATH.to.HTML."...(l
4460 65 74 20 28 28 72 6f 6f 74 20 28 65 73 78 6d 6c 2d 71 75 65 72 79 20 22 6e 61 76 4d 61 70 22 20 et.((root.(esxml-query."navMap".
4480 28 6e 6f 76 2d 73 6c 75 72 70 20 70 61 74 68 20 74 29 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d (nov-slurp.path.t)))).....(with-
44a0 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 6e 6f 76 2d 2d 77 61 6c 6b 2d 6e 63 78 temp-buffer.......(nov--walk-ncx
44c0 2d 6e 6f 64 65 20 72 6f 6f 74 29 0a 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 -node.root).......(buffer-string
44e0 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 55 49 0a 0a 28 64 65 66 76 61 72 20 6e 6f 76 2d 6d 6f 64 65 ))))....;;;.UI..(defvar.nov-mode
4500 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b -map...(let.((map.(make-sparse-k
4520 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 eymap))).....(define-key.map.(kb
4540 64 20 22 67 22 29 20 27 6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 20 20 d."g").'nov-render-document)....
4560 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 76 22 29 20 27 6e 6f 76 2d .(define-key.map.(kbd."v").'nov-
4580 76 69 65 77 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 view-source).....(define-key.map
45a0 20 28 6b 62 64 20 22 56 22 29 20 27 6e 6f 76 2d 76 69 65 77 2d 63 6f 6e 74 65 6e 74 2d 73 6f 75 .(kbd."V").'nov-view-content-sou
45c0 72 63 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 61 rce).....(define-key.map.(kbd."a
45e0 22 29 20 27 6e 6f 76 2d 72 65 6f 70 65 6e 2d 61 73 2d 61 72 63 68 69 76 65 29 0a 20 20 20 20 28 ").'nov-reopen-as-archive).....(
4600 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6d 22 29 20 27 6e 6f 76 2d 64 69 define-key.map.(kbd."m").'nov-di
4620 73 70 6c 61 79 2d 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 splay-metadata).....(define-key.
4640 6d 61 70 20 28 6b 62 64 20 22 6e 22 29 20 27 6e 6f 76 2d 6e 65 78 74 2d 64 6f 63 75 6d 65 6e 74 map.(kbd."n").'nov-next-document
4660 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 5d 22 29 20 ).....(define-key.map.(kbd."]").
4680 27 6e 6f 76 2d 6e 65 78 74 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 'nov-next-document).....(define-
46a0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 27 6e 6f 76 2d 70 72 65 76 69 6f 75 73 2d key.map.(kbd."p").'nov-previous-
46c0 64 6f 63 75 6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b document).....(define-key.map.(k
46e0 62 64 20 22 5b 22 29 20 27 6e 6f 76 2d 70 72 65 76 69 6f 75 73 2d 64 6f 63 75 6d 65 6e 74 29 0a bd."[").'nov-previous-document).
4700 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 74 22 29 20 27 6e ....(define-key.map.(kbd."t").'n
4720 6f 76 2d 67 6f 74 6f 2d 74 6f 63 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 ov-goto-toc).....(define-key.map
4740 20 28 6b 62 64 20 22 6c 22 29 20 27 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 62 61 63 6b 29 0a 20 20 .(kbd."l").'nov-history-back)...
4760 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 27 6e 6f 76 ..(define-key.map.(kbd."r").'nov
4780 2d 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 -history-forward).....(define-ke
47a0 79 20 6d 61 70 20 28 6b 62 64 20 22 54 41 42 22 29 20 27 73 68 72 2d 6e 65 78 74 2d 6c 69 6e 6b y.map.(kbd."TAB").'shr-next-link
47c0 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 54 41 ).....(define-key.map.(kbd."M-TA
47e0 42 22 29 20 27 73 68 72 2d 70 72 65 76 69 6f 75 73 2d 6c 69 6e 6b 29 0a 20 20 20 20 28 64 65 66 B").'shr-previous-link).....(def
4800 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62 3e 22 29 20 27 73 ine-key.map.(kbd."<backtab>").'s
4820 68 72 2d 70 72 65 76 69 6f 75 73 2d 6c 69 6e 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 hr-previous-link).....(define-ke
4840 79 20 6d 61 70 20 28 6b 62 64 20 22 53 50 43 22 29 20 27 6e 6f 76 2d 73 63 72 6f 6c 6c 2d 75 70 y.map.(kbd."SPC").'nov-scroll-up
4860 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 2d 53 50 ).....(define-key.map.(kbd."S-SP
4880 43 22 29 20 27 6e 6f 76 2d 73 63 72 6f 6c 6c 2d 64 6f 77 6e 29 0a 20 20 20 20 28 64 65 66 69 6e C").'nov-scroll-down).....(defin
48a0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 44 45 4c 22 29 20 27 6e 6f 76 2d 73 63 72 6f 6c e-key.map.(kbd."DEL").'nov-scrol
48c0 6c 2d 64 6f 77 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 l-down).....(define-key.map.(kbd
48e0 20 22 3c 68 6f 6d 65 3e 22 29 20 27 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 62 75 66 66 65 72 29 ."<home>").'beginning-of-buffer)
4900 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 65 6e 64 3e .....(define-key.map.(kbd."<end>
4920 22 29 20 27 65 6e 64 2d 6f 66 2d 62 75 66 66 65 72 29 0a 20 20 20 20 6d 61 70 29 29 0a 0a 28 64 ").'end-of-buffer).....map))..(d
4940 65 66 76 61 72 20 6e 6f 76 2d 62 75 74 74 6f 6e 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 efvar.nov-button-map...(let.((ma
4960 70 20 28 63 6f 70 79 2d 6b 65 79 6d 61 70 20 6e 6f 76 2d 6d 6f 64 65 2d 6d 61 70 29 29 29 0a 20 p.(copy-keymap.nov-mode-map)))..
4980 20 20 20 28 73 65 74 2d 6b 65 79 6d 61 70 2d 70 61 72 65 6e 74 20 6d 61 70 20 73 68 72 2d 6d 61 ...(set-keymap-parent.map.shr-ma
49a0 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 54 p).....(define-key.map.(kbd."RET
49c0 22 29 20 27 6e 6f 76 2d 62 72 6f 77 73 65 2d 75 72 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d ").'nov-browse-url).....(define-
49e0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 6d 6f 75 73 65 2d 32 3e 22 29 20 27 6e 6f 76 2d 62 key.map.(kbd."<mouse-2>").'nov-b
4a00 72 6f 77 73 65 2d 75 72 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 rowse-url).....(define-key.map.(
4a20 6b 62 64 20 22 63 22 29 20 27 6e 6f 76 2d 63 6f 70 79 2d 75 72 6c 29 0a 20 20 20 20 6d 61 70 29 kbd."c").'nov-copy-url).....map)
4a40 29 0a 0a 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 6e 6f 76 2d 6d 6f 64 65 2d 6d 65 )..(easy-menu-define.nov-mode-me
4a60 6e 75 20 6e 6f 76 2d 6d 6f 64 65 2d 6d 61 70 20 22 4d 65 6e 75 20 66 6f 72 20 6e 6f 76 2d 6d 6f nu.nov-mode-map."Menu.for.nov-mo
4a80 64 65 22 0a 20 20 27 28 22 45 50 55 42 22 0a 20 20 20 20 5b 22 4e 65 78 74 22 20 6e 6f 76 2d 6e de"...'("EPUB".....["Next".nov-n
4aa0 65 78 74 2d 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 47 6f 20 74 6f 20 74 ext-document......:help."Go.to.t
4ac0 68 65 20 6e 65 78 74 20 64 6f 63 75 6d 65 6e 74 22 5d 0a 20 20 20 20 5b 22 50 72 65 76 69 6f 75 he.next.document"].....["Previou
4ae0 73 22 20 6e 6f 76 2d 70 72 65 76 69 6f 75 73 2d 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 3a 68 s".nov-previous-document......:h
4b00 65 6c 70 20 22 47 6f 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 64 6f 63 75 6d 65 6e 74 elp."Go.to.the.previous.document
4b20 22 5d 0a 20 20 20 20 5b 22 42 61 63 6b 77 61 72 64 22 20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 62 "].....["Backward".nov-history-b
4b40 61 63 6b 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 47 6f 20 62 61 63 6b 20 69 6e 20 74 68 65 20 68 ack......:help."Go.back.in.the.h
4b60 69 73 74 6f 72 79 20 74 6f 20 74 68 65 20 6c 61 73 74 20 76 69 73 69 74 65 64 20 64 6f 63 75 6d istory.to.the.last.visited.docum
4b80 65 6e 74 22 5d 0a 20 20 20 20 5b 22 46 6f 72 77 61 72 64 22 20 6e 6f 76 2d 68 69 73 74 6f 72 79 ent"].....["Forward".nov-history
4ba0 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 47 6f 20 66 6f 72 77 61 72 64 20 -forward......:help."Go.forward.
4bc0 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 20 6f 66 20 76 69 73 69 74 65 64 20 64 6f 63 75 6d 65 in.the.history.of.visited.docume
4be0 6e 74 73 22 5d 0a 20 20 20 20 5b 22 4e 65 78 74 20 4c 69 6e 6b 22 20 73 68 72 2d 6e 65 78 74 2d nts"].....["Next.Link".shr-next-
4c00 6c 69 6e 6b 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 47 6f 20 74 6f 20 74 68 65 20 6e 65 78 74 20 link......:help."Go.to.the.next.
4c20 6c 69 6e 6b 22 5d 0a 20 20 20 20 5b 22 50 72 65 76 69 6f 75 73 20 4c 69 6e 6b 22 20 73 68 72 2d link"].....["Previous.Link".shr-
4c40 70 72 65 76 69 6f 75 73 2d 6c 69 6e 6b 0a 20 20 20 20 20 3a 6b 65 79 73 20 22 4d 2d 54 41 42 22 previous-link......:keys."M-TAB"
4c60 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 47 6f 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 ......:help."Go.to.the.previous.
4c80 6c 69 6e 6b 22 5d 0a 20 20 20 20 5b 22 54 61 62 6c 65 20 6f 66 20 43 6f 6e 74 65 6e 74 73 22 20 link"].....["Table.of.Contents".
4ca0 6e 6f 76 2d 67 6f 74 6f 2d 74 6f 63 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 44 69 73 70 6c 61 79 nov-goto-toc......:help."Display
4cc0 20 74 68 65 20 74 61 62 6c 65 20 6f 66 20 63 6f 6e 74 65 6e 74 73 22 5d 0a 20 20 20 20 5b 22 52 .the.table.of.contents"].....["R
4ce0 65 64 69 73 70 6c 61 79 22 20 6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e 74 0a 20 20 edisplay".nov-render-document...
4d00 20 20 20 3a 68 65 6c 70 20 22 52 65 64 69 73 70 6c 61 79 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 ...:help."Redisplay.the.document
4d20 22 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 56 69 65 77 20 4d 65 74 61 64 61 74 61 "]....."---".....["View.Metadata
4d40 22 20 6e 6f 76 2d 64 69 73 70 6c 61 79 2d 6d 65 74 61 64 61 74 61 0a 20 20 20 20 20 3a 68 65 6c ".nov-display-metadata......:hel
4d60 70 20 22 56 69 65 77 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 6f 66 20 74 68 65 20 45 50 55 42 p."View.the.metadata.of.the.EPUB
4d80 20 64 6f 63 75 6d 65 6e 74 22 5d 0a 20 20 20 20 5b 22 56 69 65 77 20 48 54 4d 4c 20 53 6f 75 72 .document"].....["View.HTML.Sour
4da0 63 65 22 20 6e 6f 76 2d 76 69 65 77 2d 73 6f 75 72 63 65 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 ce".nov-view-source......:help."
4dc0 56 69 65 77 20 74 68 65 20 48 54 4d 4c 20 73 6f 75 72 63 65 20 6f 66 20 74 68 65 20 63 75 72 72 View.the.HTML.source.of.the.curr
4de0 65 6e 74 20 64 6f 63 75 6d 65 6e 74 20 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 22 5d 0a 20 ent.document.in.a.new.buffer"]..
4e00 20 20 20 5b 22 56 69 65 77 20 4f 50 46 20 53 6f 75 72 63 65 22 20 6e 6f 76 2d 76 69 65 77 2d 63 ...["View.OPF.Source".nov-view-c
4e20 6f 6e 74 65 6e 74 2d 73 6f 75 72 63 65 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 56 69 65 77 20 74 ontent-source......:help."View.t
4e40 68 65 20 4f 50 46 20 73 6f 75 72 63 65 20 6f 66 20 74 68 65 20 45 50 55 42 20 64 6f 63 75 6d 65 he.OPF.source.of.the.EPUB.docume
4e60 6e 74 20 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 22 5d 0a 20 20 20 20 5b 22 56 69 65 77 20 nt.in.a.new.buffer"].....["View.
4e80 61 73 20 41 72 63 68 69 76 65 22 20 6e 6f 76 2d 72 65 6f 70 65 6e 2d 61 73 2d 61 72 63 68 69 76 as.Archive".nov-reopen-as-archiv
4ea0 65 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 52 65 6f 70 65 6e 20 74 68 65 20 45 50 55 42 20 64 6f e......:help."Reopen.the.EPUB.do
4ec0 63 75 6d 65 6e 74 20 61 73 20 61 6e 20 61 72 63 68 69 76 65 22 5d 29 29 0a 0a 28 64 65 66 75 6e cument.as.an.archive"]))..(defun
4ee0 20 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 20 28 29 0a 20 20 22 44 65 6c 65 74 65 20 74 65 6d 70 6f .nov-clean-up.()..."Delete.tempo
4f00 72 61 72 79 20 66 69 6c 65 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 50 55 42 20 62 rary.files.of.the.current.EPUB.b
4f20 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72 0a 20 20 20 uffer."...(when.nov-temp-dir....
4f40 20 28 6c 65 74 20 28 28 69 64 65 6e 74 69 66 69 65 72 20 28 63 64 72 20 28 61 73 73 71 20 27 69 .(let.((identifier.(cdr.(assq.'i
4f60 64 65 6e 74 69 66 69 65 72 20 6e 6f 76 2d 6d 65 74 61 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 dentifier.nov-metadata))).......
4f80 20 20 20 20 28 69 6e 64 65 78 20 28 69 66 20 28 69 6e 74 65 67 65 72 70 20 6e 6f 76 2d 64 6f 63 ....(index.(if.(integerp.nov-doc
4fa0 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uments-index)...................
4fc0 20 20 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 0a 20 20 20 20 20 20 20 20 20 ...nov-documents-index..........
4fe0 20 20 20 20 20 20 20 20 20 20 30 29 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 73 61 76 65 2d 70 ..........0))).......(nov-save-p
5000 6c 61 63 65 20 69 64 65 6e 74 69 66 69 65 72 20 69 6e 64 65 78 20 28 70 6f 69 6e 74 29 29 29 0a lace.identifier.index.(point))).
5020 20 20 20 20 28 6e 6f 76 2d 69 67 6e 6f 72 65 2d 66 69 6c 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 ....(nov-ignore-file-errors.....
5040 20 28 64 65 6c 65 74 65 2d 64 69 72 65 63 74 6f 72 79 20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72 20 .(delete-directory.nov-temp-dir.
5060 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 2d 61 6c 6c 20 28 t))))..(defun.nov-clean-up-all.(
5080 29 0a 20 20 22 44 65 6c 65 74 65 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 6f 66 20 61 )..."Delete.temporary.files.of.a
50a0 6c 6c 20 6f 70 65 6e 65 64 20 45 50 55 42 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 64 6f 6c 69 ll.opened.EPUB.buffers."...(doli
50c0 73 74 20 28 62 75 66 66 65 72 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 28 77 st.(buffer.(buffer-list)).....(w
50e0 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 ith-current-buffer.buffer.......
5100 28 77 68 65 6e 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6e 6f 76 2d 6d 6f 64 65 29 0a (when.(eq.major-mode.'nov-mode).
5120 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 29 29 29 29 29 0a 0a 28 64 65 66 ........(nov-clean-up)))))..(def
5140 75 6e 20 6e 6f 76 2d 65 78 74 65 72 6e 61 6c 2d 75 72 6c 2d 70 20 28 75 72 6c 29 0a 20 20 22 52 un.nov-external-url-p.(url)..."R
5160 65 74 75 72 6e 20 74 20 69 66 20 55 52 4c 20 72 65 66 65 72 73 20 74 6f 20 61 6e 20 65 78 74 65 eturn.t.if.URL.refers.to.an.exte
5180 72 6e 61 6c 20 64 6f 63 75 6d 65 6e 74 2e 22 0a 20 20 28 61 6e 64 20 28 75 72 6c 2d 74 79 70 65 rnal.document."...(and.(url-type
51a0 20 28 75 72 6c 2d 67 65 6e 65 72 69 63 2d 70 61 72 73 65 2d 75 72 6c 20 75 72 6c 29 29 20 74 29 .(url-generic-parse-url.url)).t)
51c0 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 75 72 6c 2d 66 69 6c 65 6e 61 6d 65 2d 61 6e 64 2d 74 )..(defun.nov-url-filename-and-t
51e0 61 72 67 65 74 20 28 75 72 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 arget.(url)..."Return.a.list.of.
5200 55 52 4c 27 73 20 66 69 6c 65 6e 61 6d 65 20 61 6e 64 20 74 61 72 67 65 74 2e 22 0a 20 20 28 73 URL's.filename.and.target."...(s
5220 65 74 71 20 75 72 6c 20 28 75 72 6c 2d 67 65 6e 65 72 69 63 2d 70 61 72 73 65 2d 75 72 6c 20 75 etq.url.(url-generic-parse-url.u
5240 72 6c 29 29 0a 20 20 28 6d 61 70 63 61 72 20 27 6e 6f 76 2d 75 72 6c 64 65 63 6f 64 65 20 28 6c rl))...(mapcar.'nov-urldecode.(l
5260 69 73 74 20 28 75 72 6c 2d 66 69 6c 65 6e 61 6d 65 20 75 72 6c 29 20 28 75 72 6c 2d 74 61 72 67 ist.(url-filename.url).(url-targ
5280 65 74 20 75 72 6c 29 29 29 29 0a 0a 3b 3b 20 61 64 61 70 74 65 64 20 66 72 6f 6d 20 60 73 68 72 et.url))))..;;.adapted.from.`shr
52a0 2d 72 65 73 63 61 6c 65 2d 69 6d 61 67 65 27 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 69 6e 73 65 72 -rescale-image'.(defun.nov-inser
52c0 74 2d 69 6d 61 67 65 20 28 70 61 74 68 20 61 6c 74 29 0a 20 20 22 49 6e 73 65 72 74 20 61 6e 20 t-image.(path.alt)..."Insert.an.
52e0 69 6d 61 67 65 20 66 6f 72 20 50 41 54 48 20 61 74 20 70 6f 69 6e 74 2c 20 66 61 6c 6c 69 6e 67 image.for.PATH.at.point,.falling
5300 20 62 61 63 6b 20 74 6f 20 41 4c 54 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 68 6f 6e 6f .back.to.ALT..This.function.hono
5320 72 73 20 60 73 68 72 2d 6d 61 78 2d 69 6d 61 67 65 2d 70 72 6f 70 6f 72 74 69 6f 6e 27 20 69 66 rs.`shr-max-image-proportion'.if
5340 20 70 6f 73 73 69 62 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 79 70 65 20 28 69 66 20 28 6f .possible."...(let.((type.(if.(o
5360 72 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 69 6d 61 67 65 2d 74 72 61 6e 73 66 6f 72 6d r.(and.(fboundp.'image-transform
5380 73 2d 70 29 20 28 69 6d 61 67 65 2d 74 72 61 6e 73 66 6f 72 6d 73 2d 70 29 29 0a 20 20 20 20 20 s-p).(image-transforms-p))......
53a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 62 6f 75 6e 64 70 20 27 .................(not.(fboundp.'
53c0 69 6d 61 67 65 6d 61 67 69 63 6b 2d 74 79 70 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 imagemagick-types)))............
53e0 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69 6d 61 67 .......nil.................'imag
5400 65 6d 61 67 69 63 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 64 69 73 70 6c 61 79 emagick))).....(if.(not.(display
5420 2d 67 72 61 70 68 69 63 2d 70 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 61 6c 74 -graphic-p)).........(insert.alt
5440 29 0a 20 20 20 20 20 20 28 73 65 71 2d 6c 65 74 20 28 78 31 20 79 31 20 78 32 20 79 32 29 20 28 ).......(seq-let.(x1.y1.x2.y2).(
5460 77 69 6e 64 6f 77 2d 69 6e 73 69 64 65 2d 70 69 78 65 6c 2d 65 64 67 65 73 0a 20 20 20 20 20 20 window-inside-pixel-edges.......
5480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 ........................(get-buf
54a0 66 65 72 2d 77 69 6e 64 6f 77 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 fer-window.(current-buffer)))...
54c0 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(let.((image..............
54e0 20 20 3b 3b 20 60 63 72 65 61 74 65 2d 69 6d 61 67 65 27 20 65 72 72 6f 72 73 20 6f 75 74 20 66 ..;;.`create-image'.errors.out.f
5500 6f 72 20 75 6e 73 75 70 70 6f 72 74 65 64 20 69 6d 61 67 65 20 74 79 70 65 73 0a 20 20 20 20 20 or.unsupported.image.types......
5520 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 ..........(ignore-errors........
5540 20 20 20 20 20 20 20 20 20 20 28 63 72 65 61 74 65 2d 69 6d 61 67 65 20 70 61 74 68 20 74 79 70 ..........(create-image.path.typ
5560 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.nil...........................
5580 20 20 20 20 20 3a 61 73 63 65 6e 74 20 31 30 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....:ascent.100................
55a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 2d 77 69 64 74 68 20 28 74 72 75 6e ................:max-width.(trun
55c0 63 61 74 65 20 28 2a 20 73 68 72 2d 6d 61 78 2d 69 6d 61 67 65 2d 70 72 6f 70 6f 72 74 69 6f 6e cate.(*.shr-max-image-proportion
55e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 78 32 20 78 31 ........................(-.x2.x1
5620 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))).............................
5640 20 20 20 3a 6d 61 78 2d 68 65 69 67 68 74 20 28 74 72 75 6e 63 61 74 65 20 28 2a 20 73 68 72 2d ...:max-height.(truncate.(*.shr-
5660 6d 61 78 2d 69 6d 61 67 65 2d 70 72 6f 70 6f 72 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 max-image-proportion............
5680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
56a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 79 32 20 79 31 29 29 29 29 29 29 29 0a 20 20 20 .............(-.y2.y1)))))))....
56c0 20 20 20 20 20 20 20 28 69 66 20 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .......(if.image...............(
56e0 69 6e 73 65 72 74 2d 69 6d 61 67 65 20 69 6d 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 insert-image.image).............
5700 28 69 6e 73 65 72 74 20 61 6c 74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6e 6f 76 2d (insert.alt)))))))..(defvar.nov-
5720 6f 72 69 67 69 6e 61 6c 2d 73 68 72 2d 74 61 67 2d 69 6d 67 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 original-shr-tag-img-function...
5740 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 27 73 68 72 2d 74 61 67 2d 69 6d 67 29 29 0a (symbol-function.'shr-tag-img)).
5760 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 72 65 6e 64 65 72 2d 69 6d 67 20 28 64 6f 6d 20 26 6f 70 74 .(defun.nov-render-img.(dom.&opt
5780 69 6f 6e 61 6c 20 75 72 6c 29 0a 20 20 22 43 75 73 74 6f 6d 20 3c 69 6d 67 3e 20 72 65 6e 64 65 ional.url)..."Custom.<img>.rende
57a0 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 44 4f 4d 2e 0a 55 73 65 73 20 60 73 68 72 ring.function.for.DOM..Uses.`shr
57c0 2d 74 61 67 2d 69 6d 67 27 20 66 6f 72 20 65 78 74 65 72 6e 61 6c 20 70 61 74 68 73 20 61 6e 64 -tag-img'.for.external.paths.and
57e0 20 60 6e 6f 76 2d 69 6e 73 65 72 74 2d 69 6d 61 67 65 27 20 66 6f 72 0a 69 6e 74 65 72 6e 61 6c .`nov-insert-image'.for.internal
5800 20 6f 6e 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 6f 72 20 75 72 6c 20 28 63 64 .ones."...(let.((url.(or.url.(cd
5820 72 20 28 61 73 73 71 20 27 73 72 63 20 28 63 61 64 72 20 64 6f 6d 29 29 29 29 29 0a 20 20 20 20 r.(assq.'src.(cadr.dom))))).....
5840 20 20 20 20 28 61 6c 74 20 28 6f 72 20 28 63 64 72 20 28 61 73 73 71 20 27 61 6c 74 20 28 63 61 ....(alt.(or.(cdr.(assq.'alt.(ca
5860 64 72 20 64 6f 6d 29 29 29 20 22 22 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 76 2d 65 78 74 dr.dom))).""))).....(if.(nov-ext
5880 65 72 6e 61 6c 2d 75 72 6c 2d 70 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 41 43 4b ernal-url-p.url).........;;.HACK
58a0 3a 20 61 76 6f 69 64 20 68 61 6e 67 69 6e 67 20 69 6e 20 61 6e 20 69 6e 66 69 6e 69 74 65 20 6c :.avoid.hanging.in.an.infinite.l
58c0 6f 6f 70 20 77 68 65 6e 20 75 73 69 6e 67 0a 20 20 20 20 20 20 20 20 3b 3b 20 60 63 6c 2d 6c 65 oop.when.using.........;;.`cl-le
58e0 74 66 27 20 74 6f 20 6f 76 65 72 72 69 64 65 20 60 73 68 72 2d 74 61 67 2d 69 6d 67 27 20 77 69 tf'.to.override.`shr-tag-img'.wi
5900 74 68 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 69 th.a.function.that.........;;.mi
5920 67 68 74 20 63 61 6c 6c 20 60 73 68 72 2d 74 61 67 2d 69 6d 67 27 20 61 67 61 69 6e 0a 20 20 20 ght.call.`shr-tag-img'.again....
5940 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6e 6f 76 2d 6f 72 69 67 69 6e 61 6c 2d 73 68 72 2d 74 .....(funcall.nov-original-shr-t
5960 61 67 2d 69 6d 67 2d 66 75 6e 63 74 69 6f 6e 20 64 6f 6d 20 75 72 6c 29 0a 20 20 20 20 20 20 28 ag-img-function.dom.url).......(
5980 73 65 74 71 20 75 72 6c 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 6e 6f 76 2d setq.url.(expand-file-name.(nov-
59a0 75 72 6c 64 65 63 6f 64 65 20 75 72 6c 29 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 69 6e 73 65 urldecode.url))).......(nov-inse
59c0 72 74 2d 69 6d 61 67 65 20 75 72 6c 20 61 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 rt-image.url.alt))))..(defun.nov
59e0 2d 72 65 6e 64 65 72 2d 74 69 74 6c 65 20 28 64 6f 6d 29 0a 20 20 22 43 75 73 74 6f 6d 20 3c 74 -render-title.(dom)..."Custom.<t
5a00 69 74 6c 65 3e 20 72 65 6e 64 65 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 44 4f 4d itle>.rendering.function.for.DOM
5a20 2e 0a 53 65 74 73 20 60 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 27 20 61 63 63 6f ..Sets.`header-line-format'.acco
5a40 72 64 69 6e 67 20 74 6f 20 60 6e 6f 76 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 rding.to.`nov-header-line-format
5a60 27 2e 22 0a 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 09 '."...(setq.header-line-format..
5a80 28 61 6e 64 20 6e 6f 76 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 09 20 20 20 (and.nov-header-line-format.....
5aa0 20 20 28 6c 65 74 20 28 28 74 69 74 6c 65 20 28 63 64 72 20 28 61 73 73 71 20 27 74 69 74 6c 65 ..(let.((title.(cdr.(assq.'title
5ac0 20 6e 6f 76 2d 6d 65 74 61 64 61 74 61 29 29 29 0a 09 09 20 20 20 28 63 68 61 70 74 65 72 2d 74 .nov-metadata)))......(chapter-t
5ae0 69 74 6c 65 20 28 63 61 72 20 28 64 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 64 6f 6d 29 29 29 29 0a itle.(car.(dom-children.dom)))).
5b00 09 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 63 68 61 70 74 65 72 2d 74 69 74 6c 65 ........(when.(not.chapter-title
5b20 29 0a 09 09 20 28 73 65 74 71 20 63 68 61 70 74 65 72 2d 74 69 74 6c 65 20 28 70 72 6f 70 65 72 )....(setq.chapter-title.(proper
5b40 74 69 7a 65 20 22 4e 6f 20 74 69 74 6c 65 22 20 27 66 61 63 65 20 27 69 74 61 6c 69 63 29 29 29 tize."No.title".'face.'italic)))
5b60 0a 09 20 20 20 20 20 20 20 3b 3b 20 74 68 69 73 20 73 68 6f 75 6c 64 6e 27 74 20 68 61 70 70 65 .........;;.this.shouldn't.happe
5b80 6e 20 66 6f 72 20 70 72 6f 70 65 72 6c 79 20 61 75 74 68 6f 72 65 64 20 45 50 55 42 73 0a 09 20 n.for.properly.authored.EPUBs...
5ba0 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 74 69 74 6c 65 29 0a 09 09 20 28 73 65 74 71 ......(when.(not.title)....(setq
5bc0 20 74 69 74 6c 65 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 4e 6f 20 74 69 74 6c 65 22 20 27 66 .title.(propertize."No.title".'f
5be0 61 63 65 20 27 69 74 61 6c 69 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 ace.'italic)))................(r
5c00 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 eplace-regexp-in-string.........
5c20 20 20 20 20 20 20 20 20 22 25 22 20 22 25 25 22 0a 09 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 ........"%"."%%"..........(forma
5c40 74 2d 73 70 65 63 0a 09 09 20 6e 6f 76 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 t-spec....nov-header-line-format
5c60 0a 09 09 20 60 28 28 3f 63 20 2e 20 2c 63 68 61 70 74 65 72 2d 74 69 74 6c 65 29 0a 09 09 20 20 ....`((?c...,chapter-title).....
5c80 20 28 3f 74 20 2e 20 2c 74 69 74 6c 65 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6e .(?t...,title))))))))..(defvar.n
5ca0 6f 76 2d 73 68 72 2d 72 65 6e 64 65 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 27 28 3b ov-shr-rendering-functions...'(;
5cc0 3b 20 64 65 66 61 75 6c 74 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 75 72 6c 2d 72 65 74 72 ;.default.function.uses.url-retr
5ce0 69 65 76 65 20 61 6e 64 20 66 61 69 6c 73 20 6f 6e 20 6c 6f 63 61 6c 20 69 6d 61 67 65 73 0a 20 ieve.and.fails.on.local.images..
5d00 20 20 20 28 69 6d 67 20 2e 20 6e 6f 76 2d 72 65 6e 64 65 72 2d 69 6d 67 29 0a 20 20 20 20 3b 3b ...(img...nov-render-img).....;;
5d20 20 74 69 74 6c 65 73 20 61 72 65 20 72 65 6e 64 65 72 65 64 20 2a 69 6e 73 69 64 65 2a 20 74 68 .titles.are.rendered.*inside*.th
5d40 65 20 64 6f 63 75 6d 65 6e 74 20 62 79 20 64 65 66 61 75 6c 74 0a 20 20 20 20 28 74 69 74 6c 65 e.document.by.default.....(title
5d60 20 2e 20 6e 6f 76 2d 72 65 6e 64 65 72 2d 74 69 74 6c 65 29 29 0a 20 20 22 41 6c 69 73 74 20 6f ...nov-render-title))..."Alist.o
5d80 66 20 72 65 6e 64 65 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 75 73 65 64 20 77 69 74 68 20 f.rendering.functions.used.with.
5da0 60 73 68 72 2d 72 65 6e 64 65 72 2d 72 65 67 69 6f 6e 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6e `shr-render-region'.")..(defun.n
5dc0 6f 76 2d 72 65 6e 64 65 72 2d 68 74 6d 6c 20 28 29 0a 20 20 22 52 65 6e 64 65 72 20 48 54 4d 4c ov-render-html.()..."Render.HTML
5de0 20 69 6e 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 77 69 74 68 20 73 68 72 2e 22 0a 20 20 .in.current.buffer.with.shr."...
5e00 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6e 6f 76 2d 70 72 65 2d 68 74 6d 6c 2d 72 65 6e 64 65 72 2d (run-hooks.'nov-pre-html-render-
5e20 68 6f 6f 6b 29 0a 20 20 28 6c 65 74 20 28 3b 3b 20 48 41 43 4b 3a 20 6d 61 6b 65 20 62 75 74 74 hook)...(let.(;;.HACK:.make.butt
5e40 6f 6e 73 20 75 73 65 20 6f 75 72 20 6f 77 6e 20 63 6f 6d 6d 61 6e 64 73 0a 20 20 20 20 20 20 20 ons.use.our.own.commands........
5e60 20 28 73 68 72 2d 6d 61 70 20 6e 6f 76 2d 62 75 74 74 6f 6e 2d 6d 61 70 29 0a 20 20 20 20 20 20 .(shr-map.nov-button-map).......
5e80 20 20 28 73 68 72 2d 65 78 74 65 72 6e 61 6c 2d 72 65 6e 64 65 72 69 6e 67 2d 66 75 6e 63 74 69 ..(shr-external-rendering-functi
5ea0 6f 6e 73 20 6e 6f 76 2d 73 68 72 2d 72 65 6e 64 65 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 73 29 ons.nov-shr-rendering-functions)
5ec0 0a 20 20 20 20 20 20 20 20 28 73 68 72 2d 75 73 65 2d 66 6f 6e 74 73 20 6e 6f 76 2d 76 61 72 69 .........(shr-use-fonts.nov-vari
5ee0 61 62 6c 65 2d 70 69 74 63 68 29 29 0a 20 20 20 20 3b 3b 20 48 41 43 4b 3a 20 60 73 68 72 2d 65 able-pitch)).....;;.HACK:.`shr-e
5f00 78 74 65 72 6e 61 6c 2d 72 65 6e 64 65 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 73 27 20 64 6f 65 xternal-rendering-functions'.doe
5f20 73 6e 27 74 20 63 6f 76 65 72 0a 20 20 20 20 3b 3b 20 65 76 65 72 79 20 75 73 61 67 65 20 6f 66 sn't.cover.....;;.every.usage.of
5f40 20 60 73 68 72 2d 74 61 67 2d 69 6d 67 27 0a 20 20 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 .`shr-tag-img'.....(cl-letf.(((s
5f60 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 27 73 68 72 2d 74 61 67 2d 69 6d 67 29 20 27 6e 6f ymbol-function.'shr-tag-img).'no
5f80 76 2d 72 65 6e 64 65 72 2d 69 6d 67 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 65 71 20 6e 6f 76 v-render-img)).......(if.(eq.nov
5fa0 2d 74 65 78 74 2d 77 69 64 74 68 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 65 74 -text-width.t)...........(cl-let
5fc0 66 20 28 28 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 27 73 68 72 2d 66 69 6c 6c 2d 6c f.(((symbol-function.'shr-fill-l
5fe0 69 6e 65 29 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 72 2d ine).'ignore)).............(shr-
6000 72 65 6e 64 65 72 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 render-region.(point-min).(point
6020 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 68 72 2d 77 69 64 74 68 -max))).........(let.((shr-width
6040 20 6e 6f 76 2d 74 65 78 74 2d 77 69 64 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 68 72 .nov-text-width))...........(shr
6060 2d 72 65 6e 64 65 72 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e -render-region.(point-min).(poin
6080 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6e 6f 76 2d 70 6f t-max))))))...(run-hooks.'nov-po
60a0 73 74 2d 68 74 6d 6c 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f st-html-render-hook))..(defun.no
60c0 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e 74 20 28 29 0a 20 20 22 52 65 6e 64 65 72 20 74 v-render-document.()..."Render.t
60e0 68 65 20 64 6f 63 75 6d 65 6e 74 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 20 60 6e 6f 76 2d 64 he.document.referenced.by.`nov-d
6100 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 27 2e 0a 49 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 ocuments-index'..If.the.document
6120 20 70 61 74 68 20 72 65 66 65 72 73 20 74 6f 20 61 6e 20 69 6d 61 67 65 20 28 61 73 20 64 65 74 .path.refers.to.an.image.(as.det
6140 65 72 6d 69 6e 65 64 20 62 79 0a 60 69 6d 61 67 65 2d 74 79 70 65 2d 66 69 6c 65 2d 6e 61 6d 65 ermined.by.`image-type-file-name
6160 2d 72 65 67 65 78 70 73 27 29 2c 20 61 6e 20 69 6d 61 67 65 20 69 73 20 69 6e 73 65 72 74 65 64 -regexps'),.an.image.is.inserted
6180 2c 20 6f 74 68 65 72 77 69 73 65 0a 74 68 65 20 48 54 4d 4c 20 69 73 20 72 65 6e 64 65 72 65 64 ,.otherwise.the.HTML.is.rendered
61a0 20 77 69 74 68 20 60 6e 6f 76 2d 72 65 6e 64 65 72 2d 68 74 6d 6c 2d 66 75 6e 63 74 69 6f 6e 27 .with.`nov-render-html-function'
61c0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 71 2d 6c 65 74 20 28 69 ."...(interactive)...(seq-let.(i
61e0 64 20 26 72 65 73 74 20 70 61 74 68 29 20 28 61 72 65 66 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 d.&rest.path).(aref.nov-document
6200 73 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 0a 20 20 20 20 28 6c 65 74 20 s.nov-documents-index).....(let.
6220 28 3b 3b 20 48 41 43 4b 3a 20 74 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 6f 6b 65 64 20 (;;.HACK:.this.should.be.looked.
6240 75 70 20 69 6e 20 74 68 65 20 6d 61 6e 69 66 65 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 69 6d up.in.the.manifest...........(im
6260 61 67 65 70 20 28 73 65 71 2d 66 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 69 74 65 6d 29 20 28 73 agep.(seq-find.(lambda.(item).(s
6280 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 28 63 61 72 20 69 74 65 6d 29 20 70 61 74 68 29 29 0a tring-match-p.(car.item).path)).
62a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 61 67 ............................imag
62c0 65 2d 74 79 70 65 2d 66 69 6c 65 2d 6e 61 6d 65 2d 72 65 67 65 78 70 73 29 29 0a 20 20 20 20 20 e-type-file-name-regexps))......
62e0 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 61 6c 6c 6f 77 73 20 72 65 73 6f 6c 76 69 6e 67 20 69 .....;;.NOTE:.allows.resolving.i
6300 6d 61 67 65 20 72 65 66 65 72 65 6e 63 65 73 20 63 6f 72 72 65 63 74 6c 79 0a 20 20 20 20 20 20 mage.references.correctly.......
6320 20 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d ....(default-directory.(file-nam
6340 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 62 75 66 e-directory.path))...........buf
6360 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 fer-read-only).......(erase-buff
6380 65 72 29 0a 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 69 6d 61 67 65 70 0a er)........(cond........(imagep.
63a0 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 69 6e 73 65 72 74 2d 69 6d 61 67 65 20 70 61 74 68 20 22 ........(nov-insert-image.path."
63c0 22 29 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 76 65 72 73 69 6f 6e 3c 20 6e 6f 76 2d 65 "))........((and.(version<.nov-e
63e0 70 75 62 2d 76 65 72 73 69 6f 6e 20 22 33 2e 30 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pub-version."3.0")..............
6400 28 65 71 20 69 64 20 6e 6f 76 2d 74 6f 63 2d 69 64 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 (eq.id.nov-toc-id)).........(ins
6420 65 72 74 20 28 6e 6f 76 2d 6e 63 78 2d 74 6f 2d 68 74 6d 6c 20 70 61 74 68 29 29 29 0a 20 20 20 ert.(nov-ncx-to-html.path)))....
6440 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6e 6f 76 2d 73 6c 75 72 ....(t.........(insert.(nov-slur
6460 70 20 70 61 74 68 29 29 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 69 6d 61 p.path))))........(when.(not.ima
6480 67 65 70 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6e 6f 76 2d 72 65 6e 64 65 72 gep).........(funcall.nov-render
64a0 2d 68 74 6d 6c 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 -html-function)).......;;.NOTE:.
64c0 74 68 69 73 20 69 73 20 68 6f 77 20 64 6f 63 2d 76 69 65 77 20 61 76 6f 69 64 73 20 6f 76 65 72 this.is.how.doc-view.avoids.over
64e0 77 72 69 74 69 6e 67 20 74 68 65 20 66 69 6c 65 0a 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 writing.the.file.......(set-buff
6500 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 er-modified-p.nil).......(goto-c
6520 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d har.(point-min)))))..(defun.nov-
6540 66 69 6e 64 2d 64 6f 63 75 6d 65 6e 74 20 28 70 72 65 64 69 63 61 74 65 29 0a 20 20 22 52 65 74 find-document.(predicate)..."Ret
6560 75 72 6e 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 60 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 urn.first.item.in.`nov-documents
6580 27 20 50 52 45 44 49 43 41 54 45 20 69 73 20 74 72 75 65 20 66 6f 72 2e 22 0a 20 20 28 6c 65 74 '.PREDICATE.is.true.for."...(let
65a0 20 28 28 69 20 30 29 0a 20 20 20 20 20 20 20 20 64 6f 6e 65 29 0a 20 20 20 20 28 77 68 69 6c 65 .((i.0).........done).....(while
65c0 20 28 61 6e 64 20 28 6e 6f 74 20 64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(and.(not.done)................
65e0 20 28 3c 20 69 20 28 6c 65 6e 67 74 68 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 29 29 29 0a 20 .(<.i.(length.nov-documents)))..
6600 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 28 61 .....(when.(funcall.predicate.(a
6620 72 65 66 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 73 ref.nov-documents.i)).........(s
6640 65 74 71 20 64 6f 6e 65 20 74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 31 2b 20 69 etq.done.t)).......(setq.i.(1+.i
6660 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 6f 6e 65 0a 20 20 20 20 20 20 28 31 2d 20 69 29 29 ))).....(when.done.......(1-.i))
6680 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 28 69 6e ))..(defun.nov-goto-document.(in
66a0 64 65 78 29 0a 20 20 22 47 6f 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 64 65 6e 6f 74 dex)..."Go.to.the.document.denot
66c0 65 64 20 62 79 20 49 4e 44 45 58 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 69 73 74 6f 72 79 20 28 ed.by.INDEX."...(let.((history.(
66e0 63 6f 6e 73 20 28 6c 69 73 74 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 28 cons.(list.nov-documents-index.(
6700 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e point))........................n
6720 6f 76 2d 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 64 6f 63 75 ov-history))).....(setq.nov-docu
6740 6d 65 6e 74 73 2d 69 6e 64 65 78 20 69 6e 64 65 78 29 0a 20 20 20 20 28 6e 6f 76 2d 72 65 6e 64 ments-index.index).....(nov-rend
6760 65 72 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 68 69 73 74 6f er-document).....(setq.nov-histo
6780 72 79 20 68 69 73 74 6f 72 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 67 6f 74 6f 2d 74 ry.history)))..(defun.nov-goto-t
67a0 6f 63 20 28 29 0a 20 20 22 47 6f 20 74 6f 20 74 68 65 20 54 4f 43 20 69 6e 64 65 78 20 61 6e 64 oc.()..."Go.to.the.TOC.index.and
67c0 20 72 65 6e 64 65 72 20 74 68 65 20 54 4f 43 20 64 6f 63 75 6d 65 6e 74 2e 22 0a 20 20 28 69 6e .render.the.TOC.document."...(in
67e0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 64 65 78 20 28 6e 6f 76 2d 66 teractive)...(let.((index.(nov-f
6800 69 6e 64 2d 64 6f 63 75 6d 65 6e 74 20 28 6c 61 6d 62 64 61 20 28 64 6f 63 29 20 28 65 71 20 28 ind-document.(lambda.(doc).(eq.(
6820 63 61 72 20 64 6f 63 29 20 6e 6f 76 2d 74 6f 63 2d 69 64 29 29 29 29 29 0a 20 20 20 20 28 77 68 car.doc).nov-toc-id))))).....(wh
6840 65 6e 20 28 6e 6f 74 20 69 6e 64 65 78 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 75 en.(not.index).......(error."Cou
6860 6c 64 6e 27 74 20 6c 6f 63 61 74 65 20 54 4f 43 22 29 29 0a 20 20 20 20 28 6e 6f 76 2d 67 6f 74 ldn't.locate.TOC")).....(nov-got
6880 6f 2d 64 6f 63 75 6d 65 6e 74 20 69 6e 64 65 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d o-document.index)))..(defun.nov-
68a0 76 69 65 77 2d 73 6f 75 72 63 65 20 28 29 0a 20 20 22 56 69 65 77 20 74 68 65 20 73 6f 75 72 63 view-source.()..."View.the.sourc
68c0 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 6f 63 75 6d 65 6e 74 20 69 6e 20 61 20 6e e.of.the.current.document.in.a.n
68e0 65 77 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 ew.buffer."...(interactive)...(f
6900 69 6e 64 2d 66 69 6c 65 20 28 63 64 72 20 28 61 72 65 66 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 ind-file.(cdr.(aref.nov-document
6920 73 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 29 29 29 0a 0a 28 64 65 66 75 s.nov-documents-index))))..(defu
6940 6e 20 6e 6f 76 2d 76 69 65 77 2d 63 6f 6e 74 65 6e 74 2d 73 6f 75 72 63 65 20 28 29 0a 20 20 22 n.nov-view-content-source.()..."
6960 56 69 65 77 20 74 68 65 20 73 6f 75 72 63 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 66 View.the.source.of.the.content.f
6980 69 6c 65 20 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 ile.in.a.new.buffer."...(interac
69a0 74 69 76 65 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 66 tive)...(find-file.nov-content-f
69c0 69 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 72 65 6f 70 65 6e 2d 61 73 2d 61 72 63 68 ile))..(defun.nov-reopen-as-arch
69e0 69 76 65 20 28 29 0a 20 20 22 52 65 6f 70 65 6e 20 74 68 65 20 45 50 55 42 20 64 6f 63 75 6d 65 ive.()..."Reopen.the.EPUB.docume
6a00 6e 74 20 75 73 69 6e 67 20 60 61 72 63 68 69 76 65 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 69 6e 74 nt.using.`archive-mode'."...(int
6a20 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 eractive)...(with-current-buffer
6a40 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6c 69 74 65 72 61 6c 6c 79 20 6e 6f 76 2d 66 69 6c 65 2d 6e .(find-file-literally.nov-file-n
6a60 61 6d 65 29 0a 20 20 20 20 28 61 72 63 68 69 76 65 2d 6d 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 ame).....(archive-mode)))..(defu
6a80 6e 20 6e 6f 76 2d 64 69 73 70 6c 61 79 2d 6d 65 74 61 64 61 74 61 20 28 29 0a 20 20 22 56 69 65 n.nov-display-metadata.()..."Vie
6aa0 77 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 6f 66 20 74 68 65 20 45 50 55 42 20 64 6f 63 75 6d w.the.metadata.of.the.EPUB.docum
6ac0 65 6e 74 20 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 ent.in.a.new.buffer."...(interac
6ae0 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 22 2a 45 50 55 42 20 6d 65 74 tive)...(let.((buffer."*EPUB.met
6b00 61 64 61 74 61 2a 22 29 0a 20 20 20 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 6e 6f 76 2d 6d adata*").........(metadata.nov-m
6b20 65 74 61 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 20 6e 6f 76 2d 65 70 etadata).........(version.nov-ep
6b40 75 62 2d 76 65 72 73 69 6f 6e 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 ub-version)).....(with-current-b
6b60 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 62 75 66 66 65 72 29 uffer.(get-buffer-create.buffer)
6b80 0a 20 20 20 20 20 20 28 73 70 65 63 69 61 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 6c 65 74 .......(special-mode).......(let
6ba0 20 28 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 29 0a 20 20 20 20 20 20 20 20 28 65 72 61 .(buffer-read-only).........(era
6bc0 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d se-buffer).........(insert.(form
6be0 61 74 20 22 45 50 55 42 20 56 65 72 73 69 6f 6e 3a 20 25 73 5c 6e 22 20 76 65 72 73 69 6f 6e 29 at."EPUB.Version:.%s\n".version)
6c00 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 6d 65 74 61 64 61 74 61 ).........(dolist.(item.metadata
6c20 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 6c 65 74 20 28 6b 65 79 20 26 72 65 73 74 20 )...........(seq-let.(key.&rest.
6c40 76 61 6c 75 65 29 20 69 74 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 value).item.............(insert.
6c60 28 66 6f 72 6d 61 74 20 22 25 73 3a 20 22 20 28 63 61 70 69 74 61 6c 69 7a 65 20 28 73 79 6d 62 (format."%s:.".(capitalize.(symb
6c80 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 ol-name.key)))).............(if.
6ca0 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 6b 65 value.................(if.(eq.ke
6cc0 79 20 27 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.'description).................
6ce0 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 ....(let.((beg.(point)))........
6d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 76 61 6c 75 65 29 0a 20 20 ...............(insert.value)...
6d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 72 2d 72 65 6e 64 65 72 2d ....................(shr-render-
6d40 72 65 67 69 6f 6e 20 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 region.beg.(point)))............
6d60 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 76 61 6c 75 .......(insert.(format."%s".valu
6d80 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 70 72 6f 70 e)))...............(insert.(prop
6da0 65 72 74 69 7a 65 20 22 4e 6f 6e 65 22 20 27 66 61 63 65 20 27 69 74 61 6c 69 63 29 29 29 0a 20 ertize."None".'face.'italic)))..
6dc0 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 ...........(insert."\n")))......
6de0 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 ...(goto-char.(point-min))))....
6e00 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 .(pop-to-buffer.buffer)))..(defu
6e20 6e 20 6e 6f 76 2d 6e 65 78 74 2d 64 6f 63 75 6d 65 6e 74 20 28 29 0a 20 20 22 47 6f 20 74 6f 20 n.nov-next-document.()..."Go.to.
6e40 74 68 65 20 6e 65 78 74 20 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 72 65 6e 64 65 72 20 69 74 2e the.next.document.and.render.it.
6e60 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 3c 20 6e 6f 76 "...(interactive)...(when.(<.nov
6e80 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 6e 6f 76 -documents-index.(1-.(length.nov
6ea0 2d 64 6f 63 75 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 -documents))).....(nov-goto-docu
6ec0 6d 65 6e 74 20 28 31 2b 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 29 29 29 ment.(1+.nov-documents-index))))
6ee0 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 70 72 65 76 69 6f 75 73 2d 64 6f 63 75 6d 65 6e 74 20 28 ..(defun.nov-previous-document.(
6f00 29 0a 20 20 22 47 6f 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 64 6f 63 75 6d 65 6e 74 )..."Go.to.the.previous.document
6f20 20 61 6e 64 20 72 65 6e 64 65 72 20 69 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 .and.render.it."...(interactive)
6f40 0a 20 20 28 77 68 65 6e 20 28 3e 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 ...(when.(>.nov-documents-index.
6f60 30 29 0a 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 28 31 2d 20 6e 6f 0).....(nov-goto-document.(1-.no
6f80 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f v-documents-index))))..(defun.no
6fa0 76 2d 73 63 72 6f 6c 6c 2d 75 70 20 28 61 72 67 29 0a 20 20 22 53 63 72 6f 6c 6c 20 77 69 74 68 v-scroll-up.(arg)..."Scroll.with
6fc0 20 60 73 63 72 6f 6c 6c 2d 75 70 27 20 6f 72 20 76 69 73 69 74 20 6e 65 78 74 20 63 68 61 70 74 .`scroll-up'.or.visit.next.chapt
6fe0 65 72 20 69 66 20 61 74 20 62 6f 74 74 6f 6d 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 er.if.at.bottom."...(interactive
7000 20 22 50 22 29 0a 20 20 28 69 66 20 28 3e 3d 20 28 77 69 6e 64 6f 77 2d 65 6e 64 29 20 28 70 6f ."P")...(if.(>=.(window-end).(po
7020 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 6e 65 78 74 2d 64 6f 63 75 6d 65 int-max)).......(nov-next-docume
7040 6e 74 29 0a 20 20 20 20 28 73 63 72 6f 6c 6c 2d 75 70 20 61 72 67 29 29 29 0a 0a 28 64 65 66 75 nt).....(scroll-up.arg)))..(defu
7060 6e 20 6e 6f 76 2d 73 63 72 6f 6c 6c 2d 64 6f 77 6e 20 28 61 72 67 29 0a 20 20 22 53 63 72 6f 6c n.nov-scroll-down.(arg)..."Scrol
7080 6c 20 77 69 74 68 20 60 73 63 72 6f 6c 6c 2d 64 6f 77 6e 27 20 6f 72 20 76 69 73 69 74 20 70 72 l.with.`scroll-down'.or.visit.pr
70a0 65 76 69 6f 75 73 20 63 68 61 70 74 65 72 20 69 66 20 61 74 20 74 6f 70 2e 22 0a 20 20 28 69 6e evious.chapter.if.at.top."...(in
70c0 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 69 66 20 28 61 6e 64 20 28 3c 3d 20 28 77 teractive."P")...(if.(and.(<=.(w
70e0 69 6e 64 6f 77 2d 73 74 61 72 74 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 indow-start).(point-min)).......
7100 20 20 20 20 20 28 3e 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 30 29 29 0a .....(>.nov-documents-index.0)).
7120 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 70 72 65 76 69 6f ......(progn.........(nov-previo
7140 75 73 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 us-document).........(goto-char.
7160 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 28 73 63 72 6f 6c 6c 2d 64 6f 77 6e 20 61 (point-max))).....(scroll-down.a
7180 72 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 76 69 73 69 74 2d 72 65 6c 61 74 69 76 65 rg)))..(defun.nov-visit-relative
71a0 2d 66 69 6c 65 20 28 66 69 6c 65 6e 61 6d 65 20 74 61 72 67 65 74 29 0a 20 20 22 56 69 73 69 74 -file.(filename.target)..."Visit
71c0 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 61 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 46 49 .the.document.as.specified.by.FI
71e0 4c 45 4e 41 4d 45 20 61 6e 64 20 54 41 52 47 45 54 2e 22 0a 20 20 28 6c 65 74 20 28 69 6e 64 65 LENAME.and.TARGET."...(let.(inde
7200 78 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 28 6c 65 6e 67 74 68 x).....(when.(not.(zerop.(length
7220 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 .filename))).......(let*.((curre
7240 6e 74 2d 70 61 74 68 20 28 63 64 72 20 28 61 72 65 66 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 nt-path.(cdr.(aref.nov-documents
7260 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 29 29 0a 20 20 20 20 20 20 20 20 .nov-documents-index))).........
7280 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 .....(directory.(file-name-direc
72a0 74 6f 72 79 20 63 75 72 72 65 6e 74 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 tory.current-path)).............
72c0 20 28 70 61 74 68 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 28 6e 6f 76 2d 6d 61 6b 65 2d .(path.(file-truename.(nov-make-
72e0 70 61 74 68 20 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 path.directory.filename)))......
7300 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 20 28 6e 6f 76 2d 66 69 6e 64 2d 64 6f 63 75 6d 65 6e ........(match.(nov-find-documen
7320 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 t......................(lambda.(
7340 64 6f 63 29 20 28 65 71 75 61 6c 20 70 61 74 68 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 doc).(equal.path.(file-truename.
7360 28 63 64 72 20 64 6f 63 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e (cdr.doc))))))).........(when.(n
7380 6f 74 20 6d 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 75 6c ot.match)...........(error."Coul
73a0 64 6e 27 74 20 6c 6f 63 61 74 65 20 64 6f 63 75 6d 65 6e 74 22 29 29 0a 20 20 20 20 20 20 20 20 dn't.locate.document")).........
73c0 28 73 65 74 71 20 69 6e 64 65 78 20 6d 61 74 63 68 29 29 29 0a 20 20 20 20 3b 3b 20 48 41 43 4b (setq.index.match))).....;;.HACK
73e0 3a 20 74 68 69 73 20 62 69 6e 64 69 6e 67 20 69 73 20 6f 6e 6c 79 20 6e 65 65 64 20 66 6f 72 20 :.this.binding.is.only.need.for.
7400 45 6d 61 63 73 20 32 37 2e 31 20 61 6e 64 20 6f 6c 64 65 72 2c 20 61 73 20 6f 66 0a 20 20 20 20 Emacs.27.1.and.older,.as.of.....
7420 3b 3b 20 45 6d 61 63 73 20 32 38 2e 31 2c 20 73 68 72 2e 65 6c 20 61 6c 77 61 79 73 20 61 64 64 ;;.Emacs.28.1,.shr.el.always.add
7440 73 20 74 68 65 20 73 68 72 2d 74 61 72 67 65 74 2d 69 64 20 70 72 6f 70 65 72 74 79 0a 20 20 20 s.the.shr-target-id.property....
7460 20 28 6c 65 74 20 28 28 73 68 72 2d 74 61 72 67 65 74 2d 69 64 20 74 61 72 67 65 74 29 29 0a 20 .(let.((shr-target-id.target))..
7480 20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 28 6f 72 20 69 6e 64 65 .....(nov-goto-document.(or.inde
74a0 78 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 29 29 29 0a 20 20 28 77 68 65 x.nov-documents-index))))...(whe
74c0 6e 20 74 61 72 67 65 74 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 70 6f 69 6e 74 2d 6d n.target.....(let.((pos.(point-m
74e0 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 64 6f 6e 65 29 0a 20 20 20 20 20 20 28 77 68 69 6c in))...........done).......(whil
7500 65 20 28 61 6e 64 20 28 6e 6f 74 20 64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.(and.(not.done)...............
7520 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 ....(setq.pos.(next-single-prope
7540 72 74 79 2d 63 68 61 6e 67 65 20 70 6f 73 20 27 73 68 72 2d 74 61 72 67 65 74 2d 69 64 29 29 29 rty-change.pos.'shr-target-id)))
7560 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 70 65 72 74 79 20 28 67 65 74 2d 74 65 .........(let.((property.(get-te
7580 78 74 2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 27 73 68 72 2d 74 61 72 67 65 74 2d 69 64 29 29 xt-property.pos.'shr-target-id))
75a0 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 65 71 75 61 6c 20 70 72 6f )...........(when.(or.(equal.pro
75c0 70 65 72 74 79 20 74 61 72 67 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 perty.target)...................
75e0 20 20 3b 3b 20 4e 4f 54 45 3a 20 61 73 20 6f 66 20 45 6d 61 63 73 20 32 38 2e 31 20 74 68 69 73 ..;;.NOTE:.as.of.Emacs.28.1.this
7600 20 6d 61 79 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 74 61 72 67 65 74 73 0a 20 20 20 20 20 20 .may.be.a.list.of.targets.......
7620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 70 72 6f 70 65 72 ..............(and.(consp.proper
7640 74 79 29 20 28 6d 65 6d 62 65 72 20 74 61 72 67 65 74 20 70 72 6f 70 65 72 74 79 29 29 29 0a 20 ty).(member.target.property)))..
7660 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 20 ...........(goto-char.pos)......
7680 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 20 28 31 2d 20 28 6d 61 78 20 31 20 73 63 72 6f .......(recenter.(1-.(max.1.scro
76a0 6c 6c 2d 6d 61 72 67 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 ll-margin))).............(setq.d
76c0 6f 6e 65 20 74 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 64 6f 6e 65 29 one.t)))).......(when.(not.done)
76e0 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 63 61 74 65 .........(error."Couldn't.locate
7700 20 74 61 72 67 65 74 22 29 29 29 29 29 0a 0a 3b 3b 20 61 64 61 70 74 65 64 20 66 72 6f 6d 20 60 .target")))))..;;.adapted.from.`
7720 73 68 72 2d 62 72 6f 77 73 65 2d 75 72 6c 27 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 62 72 6f 77 73 shr-browse-url'.(defun.nov-brows
7740 65 2d 75 72 6c 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f 75 73 65 2d 65 76 65 6e 74 29 0a 20 20 e-url.(&optional.mouse-event)...
7760 22 46 6f 6c 6c 6f 77 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 75 72 6c 20 77 69 74 68 20 60 62 72 "Follow.an.external.url.with.`br
7780 6f 77 73 65 2d 75 72 6c 27 2e 0a 49 6e 74 65 72 6e 61 6c 20 55 52 4c 73 20 61 72 65 20 76 69 73 owse-url'..Internal.URLs.are.vis
77a0 69 74 65 64 20 77 69 74 68 20 60 6e 6f 76 2d 76 69 73 69 74 2d 72 65 6c 61 74 69 76 65 2d 66 69 ited.with.`nov-visit-relative-fi
77c0 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 6c 61 73 74 2d le'."...(interactive.(list.last-
77e0 6e 6f 6e 6d 65 6e 75 2d 65 76 65 6e 74 29 29 0a 20 20 28 6d 6f 75 73 65 2d 73 65 74 2d 70 6f 69 nonmenu-event))...(mouse-set-poi
7800 6e 74 20 6d 6f 75 73 65 2d 65 76 65 6e 74 29 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 67 65 nt.mouse-event)...(let.((url.(ge
7820 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 73 68 72 2d 75 72 6c t-text-property.(point).'shr-url
7840 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 75 72 6c 29 0a 20 20 20 20 20 20 28 75 ))).....(when.(not.url).......(u
7860 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 69 6e 6b 20 75 6e 64 65 72 20 70 6f 69 6e 74 22 29 ser-error."No.link.under.point")
7880 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 76 2d 65 78 74 65 72 6e 61 6c 2d 75 72 6c 2d 70 20 75 72 ).....(if.(nov-external-url-p.ur
78a0 6c 29 0a 20 20 20 20 20 20 20 20 28 62 72 6f 77 73 65 2d 75 72 6c 20 75 72 6c 29 0a 20 20 20 20 l).........(browse-url.url).....
78c0 20 20 28 61 70 70 6c 79 20 27 6e 6f 76 2d 76 69 73 69 74 2d 72 65 6c 61 74 69 76 65 2d 66 69 6c ..(apply.'nov-visit-relative-fil
78e0 65 20 28 6e 6f 76 2d 75 72 6c 2d 66 69 6c 65 6e 61 6d 65 2d 61 6e 64 2d 74 61 72 67 65 74 20 75 e.(nov-url-filename-and-target.u
7900 72 6c 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 70 79 2d 75 72 6c 20 28 26 6f rl)))))..(defun.nov-copy-url.(&o
7920 70 74 69 6f 6e 61 6c 20 6d 6f 75 73 65 2d 65 76 65 6e 74 29 0a 20 20 28 69 6e 74 65 72 61 63 74 ptional.mouse-event)...(interact
7940 69 76 65 20 28 6c 69 73 74 20 6c 61 73 74 2d 6e 6f 6e 6d 65 6e 75 2d 65 76 65 6e 74 29 29 0a 20 ive.(list.last-nonmenu-event))..
7960 20 28 6d 6f 75 73 65 2d 73 65 74 2d 70 6f 69 6e 74 20 6d 6f 75 73 65 2d 65 76 65 6e 74 29 0a 20 .(mouse-set-point.mouse-event)..
7980 20 28 6c 65 74 20 28 28 75 72 6c 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 .(let.((url.(get-text-property.(
79a0 70 6f 69 6e 74 29 20 27 73 68 72 2d 75 72 6c 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f point).'shr-url))).....(when.(no
79c0 74 20 75 72 6c 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 69 6e t.url).......(user-error."No.lin
79e0 6b 20 75 6e 64 65 72 20 70 6f 69 6e 74 22 29 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 6e 65 77 20 75 k.under.point")).....(kill-new.u
7a00 72 6c 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 75 72 6c 29 29 29 0a 0a 28 64 rl).....(message."%s".url)))..(d
7a20 65 66 75 6e 20 6e 6f 76 2d 73 61 76 65 64 2d 70 6c 61 63 65 73 20 28 29 0a 20 20 22 52 65 74 72 efun.nov-saved-places.()..."Retr
7a40 69 65 76 65 20 73 61 76 65 64 20 70 6c 61 63 65 73 20 69 6e 20 60 6e 6f 76 2d 73 61 76 65 2d 70 ieve.saved.places.in.`nov-save-p
7a60 6c 61 63 65 2d 66 69 6c 65 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 6e 6f 76 2d 73 61 lace-file'."...(when.(and.nov-sa
7a80 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 6e 6f 76 ve-place-file.(file-exists-p.nov
7aa0 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65 29 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d -save-place-file)).....(with-tem
7ac0 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 p-buffer.......(insert-file-cont
7ae0 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 6e 6f 76 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 ents-literally.nov-save-place-fi
7b00 6c 65 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 le).......(goto-char.(point-min)
7b20 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 ).......(condition-case.nil.....
7b40 20 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 ......(read.(current-buffer))...
7b60 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 77 61 72 6e 20 ......(error..........(nov-warn.
7b80 22 46 61 69 6c 65 64 20 74 6f 20 72 65 74 72 69 65 76 65 20 73 61 76 65 64 20 70 6c 61 63 65 73 "Failed.to.retrieve.saved.places
7ba0 20 66 72 6f 6d 20 60 6e 6f 76 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65 27 22 29 0a 20 20 .from.`nov-save-place-file'")...
7bc0 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 73 61 76 65 .......nil)))))..(defun.nov-save
7be0 64 2d 70 6c 61 63 65 20 28 69 64 65 6e 74 69 66 69 65 72 29 0a 20 20 22 52 65 74 72 69 65 76 65 d-place.(identifier)..."Retrieve
7c00 20 73 61 76 65 64 20 70 6c 61 63 65 20 66 6f 72 20 49 44 45 4e 54 49 46 49 45 52 20 69 6e 20 60 .saved.place.for.IDENTIFIER.in.`
7c20 6e 6f 76 2d 73 61 76 65 64 2d 70 6c 61 63 65 2d 66 69 6c 65 27 2e 22 0a 20 20 28 63 64 72 20 28 nov-saved-place-file'."...(cdr.(
7c40 61 73 73 71 20 69 64 65 6e 74 69 66 69 65 72 20 28 6e 6f 76 2d 73 61 76 65 64 2d 70 6c 61 63 65 assq.identifier.(nov-saved-place
7c60 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 73 61 76 65 2d 70 6c 61 63 65 20 28 69 64 s))))..(defun.nov-save-place.(id
7c80 65 6e 74 69 66 69 65 72 20 69 6e 64 65 78 20 70 6f 69 6e 74 29 0a 20 20 22 53 61 76 65 20 70 6c entifier.index.point)..."Save.pl
7ca0 61 63 65 20 61 73 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 49 44 45 4e 54 49 46 49 45 52 2c ace.as.identified.by.IDENTIFIER,
7cc0 20 49 4e 44 45 58 20 61 6e 64 20 50 4f 49 4e 54 2e 0a 53 61 76 69 6e 67 20 69 73 20 6f 6e 6c 79 .INDEX.and.POINT..Saving.is.only
7ce0 20 64 6f 6e 65 20 69 66 20 60 6e 6f 76 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65 27 20 69 .done.if.`nov-save-place-file'.i
7d00 73 20 73 65 74 2e 22 0a 20 20 28 77 68 65 6e 20 6e 6f 76 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 s.set."...(when.nov-save-place-f
7d20 69 6c 65 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 6c 61 63 65 20 60 28 2c 69 64 65 6e 74 69 66 ile.....(let*.((place.`(,identif
7d40 69 65 72 20 28 69 6e 64 65 78 20 2e 20 2c 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 ier.(index...,index)............
7d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 20 2e 20 2c 70 .....................(point...,p
7d80 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 61 63 65 73 20 28 63 6f 6e 73 oint)))............(places.(cons
7da0 20 70 6c 61 63 65 20 28 61 73 73 71 2d 64 65 6c 65 74 65 2d 61 6c 6c 20 69 64 65 6e 74 69 66 69 .place.(assq-delete-all.identifi
7dc0 65 72 20 28 6e 6f 76 2d 73 61 76 65 64 2d 70 6c 61 63 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 er.(nov-saved-places))))........
7de0 20 20 20 20 70 72 69 6e 74 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 ....print-level............print
7e00 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 66 69 6c 65 20 6e -length).......(with-temp-file.n
7e20 6f 76 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 ov-save-place-file.........(inse
7e40 72 74 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 70 6c 61 63 65 73 29 29 29 29 29 29 rt.(prin1-to-string.places))))))
7e60 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d 69 6e 64 65 78 2d 76 61 6c 69 64 2d 70 20 28 64 6f 63 ..(defun.nov--index-valid-p.(doc
7e80 75 6d 65 6e 74 73 20 69 6e 64 65 78 29 0a 20 20 28 61 6e 64 20 28 69 6e 74 65 67 65 72 70 20 69 uments.index)...(and.(integerp.i
7ea0 6e 64 65 78 29 0a 20 20 20 20 20 20 20 28 3e 3d 20 69 6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 ndex)........(>=.index.0).......
7ec0 20 28 3c 20 69 6e 64 65 78 20 28 6c 65 6e 67 74 68 20 64 6f 63 75 6d 65 6e 74 73 29 29 29 29 0a .(<.index.(length.documents)))).
7ee0 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 62 61 63 6b 20 28 29 0a 20 20 22 47 .(defun.nov-history-back.()..."G
7f00 6f 20 62 61 63 6b 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 20 74 6f 20 74 68 65 20 6c 61 73 o.back.in.the.history.to.the.las
7f20 74 20 76 69 73 69 74 65 64 20 64 6f 63 75 6d 65 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 t.visited.document."...(interact
7f40 69 76 65 29 0a 20 20 28 6f 72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 28 75 73 ive)...(or.nov-history.......(us
7f60 65 72 2d 65 72 72 6f 72 20 22 54 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 64 6f 63 75 er-error."This.is.the.first.docu
7f80 6d 65 6e 74 20 79 6f 75 20 6c 6f 6f 6b 65 64 20 61 74 22 29 29 0a 20 20 28 6c 65 74 20 28 28 68 ment.you.looked.at"))...(let.((h
7fa0 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 6e 6f 76 2d 64 istory-forward.(cons.(list.nov-d
7fc0 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 ocuments-index.(point)).........
7fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 76 2d 68 69 73 74 6f .......................nov-histo
8000 72 79 2d 66 6f 72 77 61 72 64 29 29 29 0a 20 20 20 20 28 73 65 71 2d 6c 65 74 20 28 69 6e 64 65 ry-forward))).....(seq-let.(inde
8020 78 20 6f 70 6f 69 6e 74 29 20 28 63 61 72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 29 0a 20 20 20 20 x.opoint).(car.nov-history).....
8040 20 20 28 73 65 74 71 20 6e 6f 76 2d 68 69 73 74 6f 72 79 20 28 63 64 72 20 6e 6f 76 2d 68 69 73 ..(setq.nov-history.(cdr.nov-his
8060 74 6f 72 79 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 tory)).......(nov-goto-document.
8080 69 6e 64 65 78 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 68 69 73 74 6f 72 79 20 28 index).......(setq.nov-history.(
80a0 63 64 72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f cdr.nov-history)).......(setq.no
80c0 76 2d 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 20 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 v-history-forward.history-forwar
80e0 64 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6f 70 6f 69 6e 74 29 0a 20 20 20 20 d).......(goto-char.opoint).....
8100 20 20 28 72 65 63 65 6e 74 65 72 20 28 31 2d 20 28 6d 61 78 20 31 20 73 63 72 6f 6c 6c 2d 6d 61 ..(recenter.(1-.(max.1.scroll-ma
8120 72 67 69 6e 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 66 rgin))))))..(defun.nov-history-f
8140 6f 72 77 61 72 64 20 28 29 0a 20 20 22 47 6f 20 66 6f 72 77 61 72 64 20 69 6e 20 74 68 65 20 68 orward.()..."Go.forward.in.the.h
8160 69 73 74 6f 72 79 20 6f 66 20 76 69 73 69 74 65 64 20 64 6f 63 75 6d 65 6e 74 73 2e 22 0a 20 20 istory.of.visited.documents."...
8180 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6f 72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d (interactive)...(or.nov-history-
81a0 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 69 73 20 forward.......(user-error."This.
81c0 69 73 20 74 68 65 20 6c 61 73 74 20 64 6f 63 75 6d 65 6e 74 20 79 6f 75 20 6c 6f 6f 6b 65 64 20 is.the.last.document.you.looked.
81e0 61 74 22 29 29 0a 20 20 28 6c 65 74 20 28 28 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 20 28 at"))...(let.((history-forward.(
8200 63 64 72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 29 29 29 0a 20 20 20 20 28 cdr.nov-history-forward))).....(
8220 73 65 71 2d 6c 65 74 20 28 69 6e 64 65 78 20 6f 70 6f 69 6e 74 29 20 28 63 61 72 20 6e 6f 76 2d seq-let.(index.opoint).(car.nov-
8240 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f history-forward).......(nov-goto
8260 2d 64 6f 63 75 6d 65 6e 74 20 69 6e 64 65 78 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 76 -document.index).......(setq.nov
8280 2d 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 20 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 -history-forward.history-forward
82a0 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6f 70 6f 69 6e 74 29 0a 20 20 20 20 20 ).......(goto-char.opoint)......
82c0 20 28 72 65 63 65 6e 74 65 72 20 28 31 2d 20 28 6d 61 78 20 31 20 73 63 72 6f 6c 6c 2d 6d 61 72 .(recenter.(1-.(max.1.scroll-mar
82e0 67 69 6e 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e gin))))))..;;;###autoload.(defin
8300 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 6e 6f 76 2d 6d 6f 64 65 20 73 70 65 63 69 61 6c 2d e-derived-mode.nov-mode.special-
8320 6d 6f 64 65 20 22 45 50 55 42 22 0a 20 20 22 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 72 65 mode."EPUB"..."Major.mode.for.re
8340 61 64 69 6e 67 20 45 50 55 42 20 64 6f 63 75 6d 65 6e 74 73 22 0a 20 20 28 61 64 64 2d 68 6f 6f ading.EPUB.documents"...(add-hoo
8360 6b 20 27 6b 69 6c 6c 2d 62 75 66 66 65 72 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 63 6c 65 61 6e 2d 75 k.'kill-buffer-hook.'nov-clean-u
8380 70 20 6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 65 6d 61 63 73 p.nil.t)...(add-hook.'kill-emacs
83a0 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 2d 61 6c 6c 29 0a 20 20 28 61 64 64 2d -hook.'nov-clean-up-all)...(add-
83c0 68 6f 6f 6b 20 27 63 68 61 6e 67 65 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 27 6e 6f hook.'change-major-mode-hook.'no
83e0 76 2d 63 6c 65 61 6e 2d 75 70 20 6e 69 6c 20 74 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 62 v-clean-up.nil.t)...(when.(not.b
8400 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55 uffer-file-name).....(error."EPU
8420 42 20 6d 75 73 74 20 62 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 66 69 6c 65 22 29 B.must.be.associated.with.file")
8440 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 6e 6f 76 2d 75 6e 7a 69 70 2d 70 72 6f 67 72 61 6d )...(when.(not.nov-unzip-program
8460 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 75 6e 7a 69 70 20 65 78 65 63 75 74 61 62 6c 65 20 6e ).....(error."unzip.executable.n
8480 6f 74 20 66 6f 75 6e 64 2c 20 63 75 73 74 6f 6d 69 7a 65 20 60 6e 6f 76 2d 75 6e 7a 69 70 2d 70 ot.found,.customize.`nov-unzip-p
84a0 72 6f 67 72 61 6d 27 22 29 29 0a 20 20 28 73 65 74 71 20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72 20 rogram'"))...(setq.nov-temp-dir.
84c0 28 6d 61 6b 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 6e 6f 76 2d 22 20 74 20 22 2e 65 70 75 62 22 (make-temp-file."nov-".t.".epub"
84e0 29 29 0a 20 20 28 6c 65 74 20 28 28 65 78 69 74 2d 63 6f 64 65 20 28 6e 6f 76 2d 75 6e 7a 69 70 ))...(let.((exit-code.(nov-unzip
8500 2d 65 70 75 62 20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e -epub.nov-temp-dir.buffer-file-n
8520 61 6d 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 69 6e 74 65 67 65 72 70 20 ame))).....(when.(not.(integerp.
8540 65 78 69 74 2d 63 6f 64 65 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 29 exit-code)).......(nov-clean-up)
8560 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55 42 20 65 78 74 72 61 63 74 69 6f 6e 20 61 .......(error."EPUB.extraction.a
8580 62 6f 72 74 65 64 20 62 79 20 73 69 67 6e 61 6c 20 25 73 22 20 65 78 69 74 2d 63 6f 64 65 29 29 borted.by.signal.%s".exit-code))
85a0 0a 20 20 20 20 28 77 68 65 6e 20 28 3e 20 65 78 69 74 2d 63 6f 64 65 20 31 29 20 3b 20 65 78 69 .....(when.(>.exit-code.1).;.exi
85c0 74 20 63 6f 64 65 20 31 20 69 73 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 61 20 77 61 72 6e 69 6e t.code.1.is.most.likely.a.warnin
85e0 67 0a 20 20 20 20 20 20 28 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 29 0a 20 20 20 20 20 20 28 65 72 g.......(nov-clean-up).......(er
8600 72 6f 72 20 22 45 50 55 42 20 65 78 74 72 61 63 74 69 6f 6e 20 66 61 69 6c 65 64 20 77 69 74 68 ror."EPUB.extraction.failed.with
8620 20 65 78 69 74 20 63 6f 64 65 20 25 64 20 28 73 65 65 20 2a 6e 6f 76 20 75 6e 7a 69 70 2a 20 62 .exit.code.%d.(see.*nov.unzip*.b
8640 75 66 66 65 72 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 69 74 2d 63 6f 64 65 29 29 uffer)"..............exit-code))
8660 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6e 6f 76 2d 65 70 75 62 2d 76 61 6c 69 64 2d 70 )...(when.(not.(nov-epub-valid-p
8680 20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72 29 29 0a 20 20 20 20 28 6e 6f 76 2d 63 6c 65 61 6e 2d 75 .nov-temp-dir)).....(nov-clean-u
86a0 70 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 45 50 55 42 20 66 69 6c 65 p).....(error."Invalid.EPUB.file
86c0 22 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 6e 6f 76 2d 73 6c 75 72 70 "))...(let*.((content.(nov-slurp
86e0 20 28 6e 6f 76 2d 63 6f 6e 74 61 69 6e 65 72 2d 66 69 6c 65 6e 61 6d 65 20 6e 6f 76 2d 74 65 6d .(nov-container-filename.nov-tem
8700 70 2d 64 69 72 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 2d 66 69 6c p-dir).t))..........(content-fil
8720 65 2d 6e 61 6d 65 20 28 6e 6f 76 2d 63 6f 6e 74 61 69 6e 65 72 2d 63 6f 6e 74 65 6e 74 2d 66 69 e-name.(nov-container-content-fi
8740 6c 65 6e 61 6d 65 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 lename.content))..........(conte
8760 6e 74 2d 66 69 6c 65 20 28 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20 6e 6f 76 2d 74 65 6d 70 2d nt-file.(nov-make-path.nov-temp-
8780 64 69 72 20 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 dir.content-file-name)).........
87a0 20 28 77 6f 72 6b 2d 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 .(work-dir.(file-name-directory.
87c0 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 content-file))..........(content
87e0 20 28 6e 6f 76 2d 73 6c 75 72 70 20 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 20 74 29 29 29 0a 20 20 .(nov-slurp.content-file.t)))...
8800 20 20 28 73 65 74 71 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 20 63 6f 6e 74 65 6e 74 ..(setq.nov-content-file.content
8820 2d 66 69 6c 65 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 65 70 75 62 2d 76 65 72 73 69 6f -file).....(setq.nov-epub-versio
8840 6e 20 28 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 76 65 72 73 69 6f 6e 20 63 6f 6e 74 65 6e 74 29 29 n.(nov-content-version.content))
8860 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 6d 65 74 61 64 61 74 61 20 28 6e 6f 76 2d 63 6f 6e .....(setq.nov-metadata.(nov-con
8880 74 65 6e 74 2d 6d 65 74 61 64 61 74 61 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 28 73 65 74 tent-metadata.content)).....(set
88a0 71 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 20 28 61 70 70 6c 79 20 27 76 65 63 74 6f 72 20 28 q.nov-documents.(apply.'vector.(
88c0 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 73 20 77 6f 72 6b 2d 64 69 72 20 63 6f 6e 74 65 nov-content-files.work-dir.conte
88e0 6e 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e nt))).....(setq.nov-documents-in
8900 64 65 78 20 30 29 29 0a 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 74 dex.0))...(setq.buffer-undo-list
8920 20 74 29 0a 20 20 28 73 65 74 71 20 6e 6f 76 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 62 75 66 66 65 .t)...(setq.nov-file-name.(buffe
8940 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 20 3b 20 6b 65 70 74 20 66 6f 72 20 63 6f 6d 70 61 74 69 r-file-name)).;.kept.for.compati
8960 62 69 6c 69 74 79 20 72 65 61 73 6f 6e 73 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 62 6f 6f bility.reasons...(setq-local.boo
8980 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 kmark-make-record-function......
89a0 20 20 20 20 20 20 20 20 20 27 6e 6f 76 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f .........'nov-bookmark-make-reco
89c0 72 64 29 0a 20 20 28 6c 65 74 20 28 28 70 6c 61 63 65 20 28 6e 6f 76 2d 73 61 76 65 64 2d 70 6c rd)...(let.((place.(nov-saved-pl
89e0 61 63 65 20 28 63 64 72 20 28 61 73 73 71 20 27 69 64 65 6e 74 69 66 69 65 72 20 6e 6f 76 2d 6d ace.(cdr.(assq.'identifier.nov-m
8a00 65 74 61 64 61 74 61 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 70 6c 61 63 65 0a 20 20 20 20 20 etadata))))).....(if.place......
8a20 20 20 20 28 6c 65 74 20 28 28 69 6e 64 65 78 20 28 63 64 72 20 28 61 73 73 71 20 27 69 6e 64 65 ...(let.((index.(cdr.(assq.'inde
8a40 78 20 70 6c 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 20 x.place)))...............(point.
8a60 28 63 64 72 20 28 61 73 73 71 20 27 70 6f 69 6e 74 20 70 6c 61 63 65 29 29 29 29 0a 20 20 20 20 (cdr.(assq.'point.place)))).....
8a80 20 20 20 20 20 20 28 69 66 20 28 6e 6f 76 2d 2d 69 6e 64 65 78 2d 76 61 6c 69 64 2d 70 20 6e 6f ......(if.(nov--index-valid-p.no
8aa0 76 2d 64 6f 63 75 6d 65 6e 74 73 20 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 v-documents.index)..............
8ac0 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f .(progn.................(setq.no
8ae0 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 v-documents-index.index)........
8b00 20 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 .........(nov-render-document)..
8b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 69 6e 74 29 ...............(goto-char.point)
8b40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 77 61 72 6e 20 22 43 6f 75 6c 64 6e 27 ).............(nov-warn."Couldn'
8b60 74 20 72 65 73 74 6f 72 65 20 6c 61 73 74 20 70 6f 73 69 74 69 6f 6e 22 29 0a 20 20 20 20 20 20 t.restore.last.position").......
8b80 20 20 20 20 20 20 28 6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e 74 29 29 29 0a 20 20 ......(nov-render-document)))...
8ba0 20 20 20 20 28 6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e 74 29 29 29 29 0a 0a 0c 0a ....(nov-render-document))))....
8bc0 3b 3b 3b 20 72 65 63 65 6e 74 66 20 69 6e 74 65 72 6f 70 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d ;;;.recentf.interop..(defun.nov-
8be0 61 64 64 2d 74 6f 2d 72 65 63 65 6e 74 66 20 28 29 0a 20 20 22 41 64 64 20 72 65 61 6c 20 70 61 add-to-recentf.()..."Add.real.pa
8c00 74 68 20 74 6f 20 72 65 63 65 6e 74 66 20 6c 69 73 74 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 22 th.to.recentf.list.if.possible."
8c20 0a 20 20 28 77 68 65 6e 20 6e 6f 76 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 28 72 65 63 65 ...(when.nov-file-name.....(rece
8c40 6e 74 66 2d 61 64 64 2d 66 69 6c 65 20 6e 6f 76 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 0a 28 ntf-add-file.nov-file-name)))..(
8c60 61 64 64 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 61 64 64 add-hook.'nov-mode-hook.'nov-add
8c80 2d 74 6f 2d 72 65 63 65 6e 74 66 29 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 6d 6f 64 65 -to-recentf).(add-hook.'nov-mode
8ca0 2d 68 6f 6f 6b 20 27 68 61 63 6b 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d -hook.'hack-dir-local-variables-
8cc0 6e 6f 6e 2d 66 69 6c 65 2d 62 75 66 66 65 72 29 0a 0a 0c 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d non-file-buffer)....(defun.nov--
8ce0 66 69 6e 64 2d 66 69 6c 65 20 28 66 69 6c 65 20 69 6e 64 65 78 20 70 6f 69 6e 74 29 0a 20 20 22 find-file.(file.index.point)..."
8d00 4f 70 65 6e 20 46 49 4c 45 20 69 6e 20 6e 6f 76 2d 6d 6f 64 65 20 61 6e 64 20 67 6f 20 74 6f 20 Open.FILE.in.nov-mode.and.go.to.
8d20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 49 4e 44 45 58 20 61 6e 64 20 50 4f 53 49 54 49 4f 4e the.specified.INDEX.and.POSITION
8d40 2e 0a 49 66 20 46 49 4c 45 20 69 73 20 6e 69 6c 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 ..If.FILE.is.nil,.the.current.bu
8d60 66 66 65 72 20 69 73 20 75 73 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 66 69 6c 65 0a 20 20 20 20 ffer.is.used."...(when.file.....
8d80 28 66 69 6e 64 2d 66 69 6c 65 20 66 69 6c 65 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 (find-file.file))...(unless.(eq.
8da0 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6e 6f 76 2d 6d 6f 64 65 29 0a 20 20 20 20 28 6e 6f 76 2d 6d major-mode.'nov-mode).....(nov-m
8dc0 6f 64 65 29 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6e 6f 76 2d 2d 69 6e 64 65 78 2d 76 ode))...(when.(not.(nov--index-v
8de0 61 6c 69 64 2d 70 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 20 69 6e 64 65 78 29 29 0a 20 20 20 alid-p.nov-documents.index))....
8e00 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 64 6f 63 75 6d 65 6e 74 73 20 69 6e 64 65 78 .(error."Invalid.documents.index
8e20 22 29 29 0a 20 20 28 73 65 74 71 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 "))...(setq.nov-documents-index.
8e40 69 6e 64 65 78 29 0a 20 20 28 6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 index)...(nov-render-document)..
8e60 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 69 6e 74 29 29 0a 0a 3b 3b 20 42 6f 6f 6b 6d 61 72 6b .(goto-char.point))..;;.Bookmark
8e80 20 69 6e 74 65 72 6f 70 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b .interop.(defun.nov-bookmark-mak
8ea0 65 2d 72 65 63 6f 72 64 20 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 62 6f 6f 6b 6d 61 72 e-record..()..."Create.a.bookmar
8ec0 6b 20 65 70 75 62 20 72 65 63 6f 72 64 2e 22 0a 20 20 28 63 6f 6e 73 20 28 62 75 66 66 65 72 2d k.epub.record."...(cons.(buffer-
8ee0 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 60 28 28 66 69 6c 65 6e 61 6d 65 20 2e 20 2c 6e 6f 76 name).........`((filename...,nov
8f00 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 78 20 2e 20 2c -file-name)...........(index...,
8f20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 28 nov-documents-index)...........(
8f40 70 6f 73 69 74 69 6f 6e 20 2e 20 2c 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 position...,(point))...........(
8f60 68 61 6e 64 6c 65 72 20 2e 20 6e 6f 76 2d 62 6f 6f 6b 6d 61 72 6b 2d 6a 75 6d 70 2d 68 61 6e 64 handler...nov-bookmark-jump-hand
8f80 6c 65 72 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6e ler))))..;;;###autoload.(defun.n
8fa0 6f 76 2d 62 6f 6f 6b 6d 61 72 6b 2d 6a 75 6d 70 2d 68 61 6e 64 6c 65 72 20 28 62 6d 6b 29 0a 20 ov-bookmark-jump-handler.(bmk)..
8fc0 20 22 54 68 65 20 62 6f 6f 6b 6d 61 72 6b 20 68 61 6e 64 6c 65 72 2d 66 75 6e 63 74 69 6f 6e 20 ."The.bookmark.handler-function.
8fe0 69 6e 74 65 72 66 61 63 65 20 66 6f 72 20 62 6f 6f 6b 6d 61 72 6b 20 42 4d 4b 2e 0a 0a 53 65 65 interface.for.bookmark.BMK...See
9000 20 61 6c 73 6f 20 60 6e 6f 76 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 27 .also.`nov-bookmark-make-record'
9020 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d ."...(let.((file.(bookmark-prop-
9040 67 65 74 20 62 6d 6b 20 27 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 64 get.bmk.'filename)).........(ind
9060 65 78 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65 74 20 62 6d 6b 20 27 69 6e 64 65 78 ex.(bookmark-prop-get.bmk.'index
9080 29 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 )).........(position.(bookmark-p
90a0 72 6f 70 2d 67 65 74 20 62 6d 6b 20 27 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 6e 6f rop-get.bmk.'position))).....(no
90c0 76 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 66 69 6c 65 20 69 6e 64 65 78 20 70 6f 73 69 74 69 6f 6e v--find-file.file.index.position
90e0 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 4f 72 67 20 69 6e 74 65 72 6f 70 0a 0a 28 64 65 66 75 6e 20 6e )))....;;;.Org.interop..(defun.n
9100 6f 76 2d 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 20 28 70 61 74 68 29 0a 20 20 22 46 6f 6c ov-org-link-follow.(path)..."Fol
9120 6c 6f 77 20 6e 6f 76 3a 20 6c 69 6e 6b 20 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 50 41 54 48 low.nov:.link.designated.by.PATH
9140 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 5c 5c 28 2e 2a 5c 5c ."...(if.(string-match."^\\(.*\\
9160 29 3a 3a 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3a 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 24 22 20 70 )::\\([0-9]+\\):\\([0-9]+\\)$".p
9180 61 74 68 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 ath).......(let.((file.(match-st
91a0 72 69 6e 67 20 31 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 78 ring.1.path)).............(index
91c0 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 .(string-to-number.(match-string
91e0 20 32 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 20 28 73 .2.path))).............(point.(s
9200 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 20 tring-to-number.(match-string.3.
9220 70 61 74 68 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 2d 66 69 6e 64 2d 66 69 6c 65 path)))).........(nov--find-file
9240 20 66 69 6c 65 20 69 6e 64 65 78 20 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 .file.index.point)).....(error."
9260 49 6e 76 61 6c 69 64 20 6e 6f 76 2e 65 6c 20 6c 69 6e 6b 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 Invalid.nov.el.link")))..(defun.
9280 6e 6f 76 2d 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 20 28 29 0a 20 20 22 53 74 6f 72 65 20 63 nov-org-link-store.()..."Store.c
92a0 75 72 72 65 6e 74 20 45 50 55 42 20 6c 6f 63 61 74 69 6f 6e 20 61 73 20 6e 6f 76 3a 20 6c 69 6e urrent.EPUB.location.as.nov:.lin
92c0 6b 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 k."...(when.(and.(eq.major-mode.
92e0 27 6e 6f 76 2d 6d 6f 64 65 29 20 6e 6f 76 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 77 'nov-mode).nov-file-name).....(w
9300 68 65 6e 20 28 6e 6f 74 20 28 69 6e 74 65 67 65 72 70 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 hen.(not.(integerp.nov-documents
9320 2d 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e -index)).......(setq.nov-documen
9340 74 73 2d 69 6e 64 65 78 20 30 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6f 72 67 2d 73 74 6f 72 ts-index.0)).....(let.((org-stor
9360 65 2d 70 72 6f 70 73 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 e-props-function............(if.
9380 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 2d 70 72 6f 70 73 29 0a (fboundp.'org-link-store-props).
93a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 2d 70 ...............'org-link-store-p
93c0 72 6f 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6f 72 67 2d 73 74 6f 72 65 2d 6c 69 6e rops..............'org-store-lin
93e0 6b 2d 70 72 6f 70 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 6b 20 28 66 6f 72 6d 61 k-props))...........(link.(forma
9400 74 20 22 6e 6f 76 3a 25 73 3a 3a 25 64 3a 25 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."nov:%s::%d:%d"...............
9420 20 20 20 20 20 20 20 20 20 20 6e 6f 76 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 ..........nov-file-name.........
9440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e ................nov-documents-in
9460 64 65 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 dex.........................(poi
9480 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 73 63 72 69 70 74 69 6f 6e 20 28 66 6f nt)))...........(description.(fo
94a0 72 6d 61 74 20 22 45 50 55 42 20 66 69 6c 65 20 61 74 20 25 73 22 20 6e 6f 76 2d 66 69 6c 65 2d rmat."EPUB.file.at.%s".nov-file-
94c0 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6f 72 67 2d 73 74 6f 72 65 name))).......(funcall.org-store
94e0 2d 70 72 6f 70 73 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a -props-function................:
9500 74 79 70 65 20 22 6e 6f 76 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 69 6e 6b 20 type."nov"................:link.
9520 6c 69 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e link................:description
9540 20 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 29 0a 0a 28 63 6f 6e 64 0a 20 28 28 66 62 6f 75 6e .description))))..(cond..((fboun
9560 64 70 20 27 6f 72 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 29 0a 20 20 28 dp.'org-link-set-parameters)...(
9580 6f 72 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 22 6e 6f 76 22 org-link-set-parameters...."nov"
95a0 0a 20 20 20 3a 66 6f 6c 6c 6f 77 20 27 6e 6f 76 2d 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 ....:follow.'nov-org-link-follow
95c0 0a 20 20 20 3a 73 74 6f 72 65 20 27 6e 6f 76 2d 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 29 29 ....:store.'nov-org-link-store))
95e0 0a 20 28 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 61 64 64 2d 6c 69 6e 6b 2d 74 79 70 65 29 0a ..((fboundp.'org-add-link-type).
9600 20 20 28 6f 72 67 2d 61 64 64 2d 6c 69 6e 6b 2d 74 79 70 65 20 22 6e 6f 76 22 20 27 6e 6f 76 2d ..(org-add-link-type."nov".'nov-
9620 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6f 72 org-link-follow)...(add-hook.'or
9640 67 2d 73 74 6f 72 65 2d 6c 69 6e 6b 2d 66 75 6e 63 74 69 6f 6e 73 20 27 6e 6f 76 2d 6f 72 67 2d g-store-link-functions.'nov-org-
9660 6c 69 6e 6b 2d 73 74 6f 72 65 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 49 6d 65 6e 75 20 69 6e 74 65 72 link-store)))....;;;.Imenu.inter
9680 6f 70 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 69 6d 65 6e 75 2d 67 6f 74 6f 2d 66 75 6e 63 74 69 op..(defun.nov-imenu-goto-functi
96a0 6f 6e 20 28 5f 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 20 74 61 72 67 65 74 29 0a 20 20 22 56 69 on.(_name.filename.target)..."Vi
96c0 73 69 74 20 69 6d 65 6e 75 20 69 74 65 6d 20 75 73 69 6e 67 20 46 49 4c 45 4e 41 4d 45 20 61 6e sit.imenu.item.using.FILENAME.an
96e0 64 20 54 41 52 47 45 54 2e 22 0a 20 20 3b 3b 20 4d 61 6b 65 20 73 75 72 65 20 66 69 6c 65 20 69 d.TARGET."...;;.Make.sure.file.i
9700 73 20 76 69 73 69 74 65 64 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 6f 63 20 66 69 6c 65 2e 0a s.visited.relative.to.toc.file..
9720 20 20 28 6c 65 74 20 28 28 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 30 29 29 ..(let.((nov-documents-index.0))
9740 0a 20 20 20 20 28 6e 6f 76 2d 76 69 73 69 74 2d 72 65 6c 61 74 69 76 65 2d 66 69 6c 65 20 66 69 .....(nov-visit-relative-file.fi
9760 6c 65 6e 61 6d 65 20 74 61 72 67 65 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 69 6d 65 lename.target)))..(defun.nov-ime
9780 6e 75 2d 63 72 65 61 74 65 2d 69 6e 64 65 78 20 28 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 49 nu-create-index.()..."Generate.I
97a0 6d 65 6e 75 20 69 6e 64 65 78 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 6f 63 2d 70 61 74 68 20 menu.index."...(let*.((toc-path.
97c0 28 63 64 72 20 28 61 72 65 66 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 20 30 29 29 29 0a 20 20 (cdr.(aref.nov-documents.0)))...
97e0 20 20 20 20 20 20 20 28 6e 63 78 70 20 28 76 65 72 73 69 6f 6e 3c 20 6e 6f 76 2d 65 70 75 62 2d .......(ncxp.(version<.nov-epub-
9800 76 65 72 73 69 6f 6e 20 22 33 2e 30 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 6f 63 20 28 77 version."3.0"))..........(toc.(w
9820 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ith-temp-buffer.................
9840 28 69 66 20 6e 63 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e (if.ncxp.....................(in
9860 73 65 72 74 20 28 6e 6f 76 2d 6e 63 78 2d 74 6f 2d 68 74 6d 6c 20 74 6f 63 2d 70 61 74 68 29 29 sert.(nov-ncx-to-html.toc-path))
9880 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d ...................(insert-file-
98a0 63 6f 6e 74 65 6e 74 73 20 74 6f 63 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 contents.toc-path)).............
98c0 20 20 20 20 28 6c 69 62 78 6d 6c 2d 70 61 72 73 65 2d 68 74 6d 6c 2d 72 65 67 69 6f 6e 20 28 70 ....(libxml-parse-html-region.(p
98e0 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 28 6d oint-min).(point-max))))).....(m
9900 61 70 63 61 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 apcar......(lambda.(node).......
9920 20 28 6c 65 74 20 28 28 68 72 65 66 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f 64 65 20 27 68 72 65 .(let.((href.(dom-attr.node.'hre
9940 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 62 65 6c 20 28 64 6f 6d 2d 74 65 78 f))..............(label.(dom-tex
9960 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 6c 65 74 20 28 66 69 6c t.node)))..........(seq-let.(fil
9980 65 6e 61 6d 65 20 74 61 72 67 65 74 29 20 28 6e 6f 76 2d 75 72 6c 2d 66 69 6c 65 6e 61 6d 65 2d ename.target).(nov-url-filename-
99a0 61 6e 64 2d 74 61 72 67 65 74 20 68 72 65 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 and-target.href)............(lis
99c0 74 20 6c 61 62 65 6c 20 66 69 6c 65 6e 61 6d 65 20 27 6e 6f 76 2d 69 6d 65 6e 75 2d 67 6f 74 6f t.label.filename.'nov-imenu-goto
99e0 2d 66 75 6e 63 74 69 6f 6e 20 74 61 72 67 65 74 29 29 29 29 0a 20 20 20 20 20 28 65 73 78 6d 6c -function.target))))......(esxml
9a00 2d 71 75 65 72 79 2d 61 6c 6c 20 22 61 22 20 74 6f 63 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e -query-all."a".toc))))..(defun.n
9a20 6f 76 2d 69 6d 65 6e 75 2d 73 65 74 75 70 20 28 29 0a 20 20 28 73 65 74 71 20 69 6d 65 6e 75 2d ov-imenu-setup.()...(setq.imenu-
9a40 63 72 65 61 74 65 2d 69 6e 64 65 78 2d 66 75 6e 63 74 69 6f 6e 20 27 6e 6f 76 2d 69 6d 65 6e 75 create-index-function.'nov-imenu
9a60 2d 63 72 65 61 74 65 2d 69 6e 64 65 78 29 29 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 6d -create-index)).(add-hook.'nov-m
9a80 6f 64 65 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 69 6d 65 6e 75 2d 73 65 74 75 70 29 0a 0a 0c 0a 3b 3b ode-hook.'nov-imenu-setup)....;;
9aa0 3b 20 6d 75 6c 74 69 2d 69 73 65 61 72 63 68 20 69 6e 74 65 72 6f 70 0a 0a 28 64 65 66 75 6e 20 ;.multi-isearch.interop..(defun.
9ac0 6e 6f 76 2d 6d 69 73 65 61 72 63 68 2d 6e 65 78 74 2d 62 75 66 66 65 72 20 28 62 75 66 66 65 72 nov-misearch-next-buffer.(buffer
9ae0 20 77 72 61 70 29 0a 20 20 28 69 66 20 69 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 .wrap)...(if.isearch-forward....
9b00 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 3c 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 ...(cond........((<.nov-document
9b20 73 2d 69 6e 64 65 78 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 s-index.(1-.(length.nov-document
9b40 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 s))).........(nov-goto-document.
9b60 28 31 2b 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 (1+.nov-documents-index)).......
9b80 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 28 77 72 61 70 ..(current-buffer))........(wrap
9ba0 0a 20 20 20 20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 30 29 0a 20 .........(nov-goto-document.0)..
9bc0 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 3e 20 .......nil)).....(cond......((>.
9be0 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 28 6e 6f nov-documents-index.0).......(no
9c00 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 28 31 2d 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 v-goto-document.(1-.nov-document
9c20 73 2d 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 s-index)).......(current-buffer)
9c40 29 0a 20 20 20 20 20 28 77 72 61 70 0a 20 20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 )......(wrap.......(nov-goto-doc
9c60 75 6d 65 6e 74 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 29 ument.(1-.(length.nov-documents)
9c80 29 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 6d 69 73 )).......nil))))..(defun.nov-mis
9ca0 65 61 72 63 68 2d 73 65 74 75 70 20 28 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 6d 75 6c earch-setup.()...(setq-local.mul
9cc0 74 69 2d 69 73 65 61 72 63 68 2d 6e 65 78 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 ti-isearch-next-buffer-function.
9ce0 23 27 6e 6f 76 2d 6d 69 73 65 61 72 63 68 2d 6e 65 78 74 2d 62 75 66 66 65 72 29 29 0a 28 61 64 #'nov-misearch-next-buffer)).(ad
9d00 64 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6e 6f 76 2d 6d 69 73 65 d-hook.'nov-mode-hook.#'nov-mise
9d20 61 72 63 68 2d 73 65 74 75 70 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6e 6f 76 29 0a 3b 3b 3b 20 arch-setup)..(provide.'nov).;;;.
9d40 6e 6f 76 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nov.el.ends.here................
9d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................