| ofs | hex dump | ascii | 
|---|
| 0000 |  65 73 78 6d 6c 2d 32 30 32 33 30 33 30 38 2e 32    32 35 34 2f 00 00 00 00 00 00 00 00 00 00 00 00  | esxml-20230308.2254/............ | 
| 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 32 31 33 37 00 20 35 00 00 00  | 0000000.00000000000.012137..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 |  65 73 78 6d 6c 2d 32 30 32 33 30 33 30 38 2e 32    32 35 34 2f 65 73 78 6d 6c 2e 65 6c 00 00 00 00  | esxml-20230308.2254/esxml.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 32 34 31 32 36 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 36 31 36 00 20 30 00 00 00  | 0024126.00000000000.013616..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 |  3b 3b 3b 20 65 73 78 6d 6c 2e 65 6c 20 2d 2d 2d    20 4c 69 62 72 61 72 79 20 66 6f 72 20 77 6f 72  | ;;;.esxml.el.---.Library.for.wor | 
| 0420 |  6b 69 6e 67 20 77 69 74 68 20 78 6d 6c 20 76 69    61 20 65 73 78 6d 6c 20 61 6e 64 20 73 78 6d 6c  | king.with.xml.via.esxml.and.sxml | 
| 0440 |  0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43    29 20 32 30 31 32 0a 0a 3b 3b 20 41 75 74 68 6f  | .;;.Copyright.(C).2012..;;.Autho | 
| 0460 |  72 3a 20 56 61 6e 79 61 20 49 7a 61 6b 73 6f 6e    61 73 2d 53 6d 69 74 68 20 3c 69 7a 61 6b 30 30  | r:.Vanya.Izaksonas-Smith.<izak00 | 
| 0480 |  30 32 20 61 74 20 75 6d 6e 20 64 6f 74 20 65 64    75 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72  | 02.at.umn.dot.edu>.;;.Maintainer | 
| 04a0 |  3a 20 56 61 6e 79 61 20 49 7a 61 6b 73 6f 6e 61    73 2d 53 6d 69 74 68 0a 3b 3b 20 55 52 4c 3a 20  | :.Vanya.Izaksonas-Smith.;;.URL:. | 
| 04c0 |  68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63    6f 6d 2f 74 61 6c 69 37 31 33 2f 65 73 78 6d 6c  | https://github.com/tali713/esxml | 
| 04e0 |  0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 31 35 74    68 20 41 75 67 75 73 74 20 32 30 31 32 0a 3b 3b  | .;;.Created:.15th.August.2012.;; | 
| 0500 |  20 56 65 72 73 69 6f 6e 3a 20 30 2e 33 2e 37 0a    3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 74 6f 6f  | .Version:.0.3.7.;;.Keywords:.too | 
| 0520 |  6c 73 2c 20 6c 69 73 70 2c 20 63 6f 6d 6d 0a 3b    3b 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 41  | ls,.lisp,.comm.;;.Description:.A | 
| 0540 |  20 6c 69 62 72 61 72 79 20 66 6f 72 20 65 61 73    69 6c 79 20 67 65 6e 65 72 61 74 69 6e 67 20 58  | .library.for.easily.generating.X | 
| 0560 |  4d 4c 2f 58 48 54 4d 4c 20 69 6e 20 65 6c 69 73    70 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 70 72 6f  | ML/XHTML.in.elisp.;;.;;.This.pro | 
| 0580 |  67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66    74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72  | gram.is.free.software;.you.can.r | 
| 05a0 |  65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61    6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20  | edistribute.it.and/or.modify.;;. | 
| 05c0 |  69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72    6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65  | it.under.the.terms.of.the.GNU.Ge | 
| 05e0 |  6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63    65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65  | neral.Public.License.as.publishe | 
| 0600 |  64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65    20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61  | d.by.;;.the.Free.Software.Founda | 
| 0620 |  74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72    73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69  | tion,.either.version.3.of.the.Li | 
| 0640 |  63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74    20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e  | cense,.or.;;.(at.your.option).an | 
| 0660 |  79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e    0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61  | y.later.version...;;.This.progra | 
| 0680 |  6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64    20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61  | m.is.distributed.in.the.hope.tha | 
| 06a0 |  74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65    66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48  | t.it.will.be.useful,.;;.but.WITH | 
| 06c0 |  4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59    3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74  | OUT.ANY.WARRANTY;.without.even.t | 
| 06e0 |  68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61    6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41  | he.implied.warranty.of.;;.MERCHA | 
| 0700 |  4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54    4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49  | NTABILITY.or.FITNESS.FOR.A.PARTI | 
| 0720 |  43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20    53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47  | CULAR.PURPOSE...See.the.;;.GNU.G | 
| 0740 |  65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69    63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64  | eneral.Public.License.for.more.d | 
| 0760 |  65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20    73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65  | etails...;;.You.should.have.rece | 
| 0780 |  69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74    68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50  | ived.a.copy.of.the.GNU.General.P | 
| 07a0 |  75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b    20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73  | ublic.License.;;.along.with.this | 
| 07c0 |  20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f    74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77  | .program...If.not,.see.<http://w | 
| 07e0 |  77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e    73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d  | ww.gnu.org/licenses/>...;;;.Comm | 
| 0800 |  65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73    20 69 73 20 58 4d 4c 2f 58 48 54 4d 4c 20 64 6f  | entary:..;;.This.is.XML/XHTML.do | 
| 0820 |  6e 65 20 77 69 74 68 20 53 2d 45 78 70 72 65 73    73 69 6f 6e 73 20 69 6e 20 45 6d 61 63 73 4c 69  | ne.with.S-Expressions.in.EmacsLi | 
| 0840 |  73 70 2e 20 20 53 69 6d 70 6c 79 2c 0a 3b 3b 20    74 68 69 73 20 69 73 20 74 68 65 20 65 61 73 69  | sp...Simply,.;;.this.is.the.easi | 
| 0860 |  65 73 74 20 77 61 79 20 74 6f 20 77 72 69 74 65    20 48 54 4d 4c 20 6f 72 20 58 4d 4c 20 69 6e 20  | est.way.to.write.HTML.or.XML.in. | 
| 0880 |  4c 69 73 70 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73    20 6c 69 62 72 61 72 79 20 75 73 65 73 20 74 68  | Lisp..;;.;;.This.library.uses.th | 
| 08a0 |  65 20 6e 61 74 69 76 65 20 66 6f 72 6d 20 6f 66    20 58 4d 4c 20 72 65 70 72 65 73 65 6e 74 61 74  | e.native.form.of.XML.representat | 
| 08c0 |  69 6f 6e 20 61 73 20 75 73 65 64 20 62 79 0a 3b    3b 20 6d 61 6e 79 20 6c 69 62 72 61 72 69 65 73  | ion.as.used.by.;;.many.libraries | 
| 08e0 |  20 61 6c 72 65 61 64 79 20 69 6e 63 6c 75 64 65    64 20 77 69 74 68 69 6e 20 65 6d 61 63 73 2e 20  | .already.included.within.emacs.. | 
| 0900 |  20 54 68 69 73 20 72 65 70 72 65 73 65 6e 74 61    74 69 6f 6e 0a 3b 3b 20 77 69 6c 6c 20 62 65 20  | .This.representation.;;.will.be. | 
| 0920 |  72 65 66 65 72 72 65 64 20 74 6f 20 61 73 20 22    65 73 78 6d 6c 22 20 74 68 72 6f 75 67 68 6f 75  | referred.to.as."esxml".throughou | 
| 0940 |  74 20 74 68 69 73 20 6c 69 62 72 61 72 79 2e 20    20 53 65 65 0a 3b 3b 20 60 65 73 78 6d 6c 2d 74  | t.this.library...See.;;.`esxml-t | 
| 0960 |  6f 2d 78 6d 6c 27 20 66 6f 72 20 61 20 63 6f 6e    63 69 73 65 20 64 65 73 63 72 69 70 74 69 6f 6e  | o-xml'.for.a.concise.description | 
| 0980 |  20 6f 66 20 74 68 65 20 66 6f 72 6d 61 74 2e 0a    3b 3b 0a 3b 3b 20 54 68 69 73 20 6c 69 62 72 61  | .of.the.format..;;.;;.This.libra | 
| 09a0 |  72 79 20 69 73 20 6e 6f 74 20 69 6e 74 65 6e 64    65 64 20 74 6f 20 62 65 20 75 73 65 64 20 64 69  | ry.is.not.intended.to.be.used.di | 
| 09c0 |  72 65 63 74 6c 79 20 62 79 20 61 20 75 73 65 72    2c 20 74 68 6f 75 67 68 0a 3b 3b 20 69 74 20 63  | rectly.by.a.user,.though.;;.it.c | 
| 09e0 |  65 72 74 61 69 6e 6c 79 20 63 6f 75 6c 64 20 62    65 2e 20 20 49 74 20 63 6f 75 6c 64 20 62 65 20  | ertainly.could.be...It.could.be. | 
| 0a00 |  75 73 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65    20 73 74 61 74 69 63 20 68 74 6d 6c 2c 0a 3b 3b  | used.to.generate.static.html,.;; | 
| 0a20 |  20 6f 72 20 75 73 65 20 61 20 6c 69 62 72 61 72    79 20 6c 69 6b 65 20 60 65 6c 6e 6f 64 65 27 20  | .or.use.a.library.like.`elnode'. | 
| 0a40 |  74 6f 20 73 65 72 76 65 20 64 79 6e 61 6d 69 63    20 70 61 67 65 73 2e 20 20 4f 72 20 65 76 65 6e  | to.serve.dynamic.pages...Or.even | 
| 0a60 |  20 74 6f 0a 3b 3b 20 65 78 74 72 61 63 74 20 61    20 66 6f 72 6d 20 66 72 6f 6d 20 61 20 73 69 74  | .to.;;.extract.a.form.from.a.sit | 
| 0a80 |  65 20 74 6f 20 70 72 6f 64 75 63 65 20 61 6e 20    41 50 49 2e 0a 3b 3b 0a 3b 3b 20 54 4f 44 4f 3a  | e.to.produce.an.API..;;.;;.TODO: | 
| 0aa0 |  20 42 65 74 74 65 72 20 64 6f 63 75 6d 65 6e 74    61 74 69 6f 6e 2c 20 6d 6f 72 65 20 63 6f 6e 76  | .Better.documentation,.more.conv | 
| 0ac0 |  65 6e 69 65 6e 63 65 2e 0a 3b 3b 0a 3b 3b 20 4e    4f 54 49 43 45 3a 20 43 6f 64 65 20 62 61 73 65  | enience..;;.;;.NOTICE:.Code.base | 
| 0ae0 |  20 77 69 6c 6c 20 62 65 20 74 72 61 6e 73 69 74    69 6f 6e 69 6e 67 20 74 6f 20 75 73 69 6e 67 20  | .will.be.transitioning.to.using. | 
| 0b00 |  70 63 61 73 65 20 69 6e 73 74 65 61 64 20 6f 66    0a 3b 3b 20 64 65 73 74 72 75 63 74 75 72 69 6e  | pcase.instead.of.;;.destructurin | 
| 0b20 |  67 20 62 69 6e 64 20 77 68 65 72 65 76 65 72 20    70 6f 73 73 69 62 6c 65 2e 20 20 49 66 20 74 68  | g.bind.wherever.possible...If.th | 
| 0b40 |  69 73 20 6c 65 61 64 73 20 74 6f 20 68 61 72 64    20 74 6f 0a 3b 3b 20 64 65 62 75 67 20 63 6f 64  | is.leads.to.hard.to.;;.debug.cod | 
| 0b60 |  65 2c 20 70 6c 65 61 73 65 20 6c 65 74 20 6d 65    20 6b 6e 6f 77 2c 20 61 6e 64 20 49 20 77 69 6c  | e,.please.let.me.know,.and.I.wil | 
| 0b80 |  6c 20 64 6f 20 77 68 61 74 65 76 65 72 20 49 20    63 61 6e 20 74 6f 0a 3b 3b 20 72 65 73 6f 6c 76  | l.do.whatever.I.can.to.;;.resolv | 
| 0ba0 |  65 20 74 68 65 73 65 20 69 73 73 75 65 73 2e 0a    3b 3b 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65  | e.these.issues..;;.;;;.Code:.(re | 
| 0bc0 |  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 78 6d 6c 29 0a 28 72  | quire.'cl-lib).(require.'xml).(r | 
| 0be0 |  65 71 75 69 72 65 20 27 70 63 61 73 65 29 0a 0a    28 64 65 66 75 6e 20 73 74 72 69 6e 67 2d 74 72  | equire.'pcase)..(defun.string-tr | 
| 0c00 |  69 6d 2d 77 68 69 74 65 73 70 61 63 65 20 28 73    74 72 69 6e 67 29 0a 20 20 22 41 20 73 69 6d 70  | im-whitespace.(string)..."A.simp | 
| 0c20 |  6c 65 20 66 75 6e 63 74 69 6f 6e 2c 20 73 74 72    69 70 73 20 74 68 65 20 77 68 69 74 65 73 70 61  | le.function,.strips.the.whitespa | 
| 0c40 |  63 65 20 66 72 6f 6d 20 62 65 67 69 6e 6e 69 6e    67 20 61 6e 64 0a 65 6e 64 20 6f 66 20 74 68 65  | ce.from.beginning.and.end.of.the | 
| 0c60 |  20 73 74 72 69 6e 67 2e 20 20 4c 65 61 76 65 73    20 61 6c 6c 20 6f 74 68 65 72 20 77 68 69 74 65  | .string...Leaves.all.other.white | 
| 0c80 |  73 70 61 63 65 20 75 6e 74 6f 75 63 68 65 64 2e    22 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67  | space.untouched."...(replace-reg | 
| 0ca0 |  65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20    20 28 72 78 20 73 74 72 69 6e 67 2d 73 74 61 72  | exp-in-string....(rx.string-star | 
| 0cc0 |  74 20 28 2a 20 77 68 69 74 65 73 70 61 63 65 29    0a 20 20 20 20 20 20 20 28 67 72 6f 75 70 20 28  | t.(*.whitespace)........(group.( | 
| 0ce0 |  2b 3f 20 61 6e 79 74 68 69 6e 67 29 29 0a 20 20    20 20 20 20 20 28 2a 20 77 68 69 74 65 73 70 61  | +?.anything))........(*.whitespa | 
| 0d00 |  63 65 29 20 73 74 72 69 6e 67 2d 65 6e 64 29 0a    20 20 20 22 5c 5c 31 22 0a 20 20 20 73 74 72 69  | ce).string-end)...."\\1"....stri | 
| 0d20 |  6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78    6d 6c 2d 74 72 69 6d 2d 77 73 20 28 65 73 78 6d  | ng))..(defun.esxml-trim-ws.(esxm | 
| 0d40 |  6c 29 0a 20 20 22 54 68 69 73 20 6d 61 79 20 63    61 75 73 65 20 70 72 6f 62 6c 65 6d 73 2c 20 69  | l)..."This.may.cause.problems,.i | 
| 0d60 |  73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 70    61 72 73 69 6e 67 20 78 6d 6c 20 69 6e 74 6f 20  | s.intended.for.parsing.xml.into. | 
| 0d80 |  73 78 6d 6c 0a 62 75 74 20 6d 61 79 20 65 72 6f    6e 65 6f 75 73 6c 79 20 64 65 6c 65 74 65 20 64  | sxml.but.may.eroneously.delete.d | 
| 0da0 |  65 73 69 72 61 62 6c 65 20 77 68 69 74 65 20 73    70 61 63 65 2e 22 0a 20 20 28 69 66 20 28 73 74  | esirable.white.space."...(if.(st | 
| 0dc0 |  72 69 6e 67 70 20 65 73 78 6d 6c 29 20 28 73 74    72 69 6e 67 2d 74 72 69 6d 2d 77 68 69 74 65 73  | ringp.esxml).(string-trim-whites | 
| 0de0 |  70 61 63 65 20 65 73 78 6d 6c 29 0a 20 20 20 20    28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c  | pace.esxml).....(pcase-let.((`(, | 
| 0e00 |  74 61 67 20 2c 61 74 74 72 73 20 2e 20 2c 62 6f    64 79 29 20 65 73 78 6d 6c 29 29 0a 20 20 20 20  | tag.,attrs...,body).esxml))..... | 
| 0e20 |  20 20 60 28 2c 74 61 67 20 2c 61 74 74 72 73 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28  | ..`(,tag.,attrs..............,@( | 
| 0e40 |  6d 61 70 63 61 72 20 27 65 73 78 6d 6c 2d 74 72    69 6d 2d 77 73 20 62 6f 64 79 29 29 29 29 29 0a  | mapcar.'esxml-trim-ws.body))))). | 
| 0e60 |  0a 28 64 65 66 75 6e 20 61 74 74 72 70 20 28 61    74 74 72 29 0a 20 20 22 52 65 74 75 72 6e 73 20  | .(defun.attrp.(attr)..."Returns. | 
| 0e80 |  74 20 69 66 20 61 74 74 72 20 69 73 20 61 20 61    6e 20 65 73 78 6d 6c 20 61 74 74 72 69 62 75 74  | t.if.attr.is.a.an.esxml.attribut | 
| 0ea0 |  65 2e 0a 41 6e 20 65 73 78 6d 6c 20 61 74 74 72    69 62 75 74 65 20 69 73 20 61 20 63 6f 6e 73 20  | e..An.esxml.attribute.is.a.cons. | 
| 0ec0 |  6f 66 20 74 68 65 20 66 6f 72 6d 20 28 73 79 6d    62 6f 6c 20 2e 20 73 74 72 69 6e 67 29 22 0a 20  | of.the.form.(symbol...string)".. | 
| 0ee0 |  28 61 6e 64 20 28 63 6f 6e 73 70 20 61 74 74 72    29 0a 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c  | (and.(consp.attr)........(symbol | 
| 0f00 |  70 20 28 63 61 72 20 61 74 74 72 29 29 0a 20 20    20 20 20 20 20 28 73 74 72 69 6e 67 70 20 28 63  | p.(car.attr))........(stringp.(c | 
| 0f20 |  64 72 20 61 74 74 72 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 65 73 78 6d 6c 2d 2d 63 6f 6e 76 65  | dr.attr))))..(defun.esxml--conve | 
| 0f40 |  72 74 2d 70 61 69 72 20 28 61 74 74 72 29 0a 20    20 22 43 6f 6e 76 65 72 74 73 20 66 72 6f 6d 20  | rt-pair.(attr)..."Converts.from. | 
| 0f60 |  63 6f 6e 73 20 63 65 6c 6c 20 74 6f 20 61 74 74    72 69 62 75 74 65 20 70 61 69 72 2e 20 20 4e 6f  | cons.cell.to.attribute.pair...No | 
| 0f80 |  74 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 0a 67    65 6e 65 72 61 6c 20 75 73 65 2e 22 0a 20 20 28  | t.intended.for.general.use."...( | 
| 0fa0 |  70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 63    61 72 20 2e 20 2c 63 64 72 29 20 61 74 74 72 29  | pcase-let.((`(,car...,cdr).attr) | 
| 0fc0 |  29 0a 20 20 20 20 28 63 6c 2d 63 68 65 63 6b 2d    74 79 70 65 20 63 64 72 20 73 74 72 69 6e 67 29  | ).....(cl-check-type.cdr.string) | 
| 0fe0 |  0a 20 20 20 20 28 63 6f 6e 63 61 74 20 28 73 79    6d 62 6f 6c 2d 6e 61 6d 65 20 63 61 72 29 0a 20  | .....(concat.(symbol-name.car).. | 
| 1000 |  20 20 20 20 20 20 20 20 20 20 20 22 3d 22 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e  | ..........."=".............(prin | 
| 1020 |  31 2d 74 6f 2d 73 74 72 69 6e 67 20 28 78 6d 6c    2d 65 73 63 61 70 65 2d 73 74 72 69 6e 67 20 63  | 1-to-string.(xml-escape-string.c | 
| 1040 |  64 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    61 74 74 72 73 70 20 28 61 74 74 72 73 29 0a 20  | dr)))))..(defun.attrsp.(attrs).. | 
| 1060 |  20 20 20 22 52 65 74 75 72 6e 73 20 74 20 69 66    20 61 74 74 72 73 20 69 73 20 61 20 6c 69 73 74  | ..."Returns.t.if.attrs.is.a.list | 
| 1080 |  20 6f 66 20 65 73 78 6d 6c 20 61 74 74 72 69 62    75 74 65 73 2e 0a 0a 53 65 65 3a 20 60 61 74 74  | .of.esxml.attributes...See:.`att | 
| 10a0 |  72 70 27 22 0a 20 20 28 61 6e 64 20 28 6c 69 73    74 70 20 61 74 74 72 73 29 0a 20 20 20 20 20 20  | rp'"...(and.(listp.attrs)....... | 
| 10c0 |  20 28 63 6c 2d 65 76 65 72 79 20 28 6c 61 6d 62    64 61 20 28 61 74 74 72 29 0a 20 20 20 20 20 20  | .(cl-every.(lambda.(attr)....... | 
| 10e0 |  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 61 74 74 72 29 0a 20  | .............(and.(consp.attr).. | 
| 1100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20  | .......................(symbolp. | 
| 1120 |  28 63 61 72 20 61 74 74 72 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (car.attr))..................... | 
| 1140 |  20 20 20 20 28 73 74 72 69 6e 67 70 20 28 63 64    72 20 61 74 74 72 29 29 29 29 0a 20 20 20 20 20  | ....(stringp.(cdr.attr))))...... | 
| 1160 |  20 20 20 20 20 20 20 20 20 20 20 20 61 74 74 72    73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78  | ............attrs)))..(defun.esx | 
| 1180 |  6d 6c 2d 76 61 6c 69 64 61 74 65 2d 66 6f 72 6d    20 28 65 73 78 6d 6c 29 0a 20 20 22 41 20 66 61  | ml-validate-form.(esxml)..."A.fa | 
| 11a0 |  73 74 20 65 73 78 6d 6c 20 76 61 6c 69 64 61 74    6f 72 2e 20 20 57 69 6c 6c 20 65 72 72 6f 72 20  | st.esxml.validator...Will.error. | 
| 11c0 |  6f 6e 20 69 6e 76 61 6c 69 64 20 73 75 62 70 61    72 74 73 20 6d 61 6b 69 6e 67 0a 69 74 20 73 75  | on.invalid.subparts.making.it.su | 
| 11e0 |  69 74 61 62 6c 65 20 66 6f 72 20 68 69 6e 64 73    69 67 68 74 20 74 65 73 74 69 6e 67 2e 22 0a 20  | itable.for.hindsight.testing.".. | 
| 1200 |  20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70    20 65 73 78 6d 6c 29 20 6e 69 6c 29 0a 20 20 20  | .(cond.((stringp.esxml).nil).... | 
| 1220 |  20 20 20 20 20 28 28 3c 20 28 6c 65 6e 67 74 68    20 65 73 78 6d 6c 29 20 32 29 0a 20 20 20 20 20  | .....((<.(length.esxml).2)...... | 
| 1240 |  20 20 20 20 28 65 72 72 6f 72 20 22 25 73 20 69    73 20 74 6f 6f 20 73 68 6f 72 74 20 74 6f 20 62  | ....(error."%s.is.too.short.to.b | 
| 1260 |  65 20 61 20 76 61 6c 69 64 20 65 73 78 6d 6c 20    65 78 70 72 65 73 73 69 6f 6e 22 20 65 73 78 6d  | e.a.valid.esxml.expression".esxm | 
| 1280 |  6c 29 29 0a 20 20 20 20 20 20 20 20 28 74 20 28    70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 74  | l)).........(t.(pcase-let.((`(,t | 
| 12a0 |  61 67 20 2c 61 74 74 72 73 20 2e 20 2c 62 6f 64    79 29 20 65 73 78 6d 6c 29 29 0a 20 20 20 20 20  | ag.,attrs...,body).esxml))...... | 
| 12c0 |  20 20 20 20 20 20 20 20 28 63 6c 2d 63 68 65 63    6b 2d 74 79 70 65 20 74 61 67 20 73 79 6d 62 6f  | ........(cl-check-type.tag.symbo | 
| 12e0 |  6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    28 63 6c 2d 63 68 65 63 6b 2d 74 79 70 65 20 61  | l)..............(cl-check-type.a | 
| 1300 |  74 74 72 73 20 61 74 74 72 73 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72  | ttrs.attrs)..............(mapcar | 
| 1320 |  20 27 65 73 78 6d 6c 2d 76 61 6c 69 64 61 74 65    2d 66 6f 72 6d 20 62 6f 64 79 29 29 29 29 29 0a  | .'esxml-validate-form.body))))). | 
| 1340 |  0a 3b 3b 20 57 68 69 6c 65 20 74 68 65 20 66 6f    6c 6c 6f 77 69 6e 67 20 63 6f 75 6c 64 20 63 65  | .;;.While.the.following.could.ce | 
| 1360 |  72 74 61 69 6e 6c 79 20 68 61 76 65 20 62 65 65    6e 20 77 72 69 74 74 65 6e 20 75 73 69 6e 67 20  | rtainly.have.been.written.using. | 
| 1380 |  66 6f 72 6d 61 74 2c 0a 3b 3b 20 63 6f 6e 63 61    74 20 6d 61 6b 65 73 20 74 68 65 6d 20 65 61 73  | format,.;;.concat.makes.them.eas | 
| 13a0 |  69 65 72 20 74 6f 20 72 65 61 64 2e 20 20 55 70    64 61 74 65 20 6c 61 74 65 72 20 69 66 20 6e 65  | ier.to.read...Update.later.if.ne | 
| 13c0 |  63 63 65 73 61 72 79 20 66 6f 72 0a 3b 3b 20 65    66 66 69 63 69 65 6e 63 79 2e 0a 0a 3b 3b 20 54  | ccesary.for.;;.efficiency...;;.T | 
| 13e0 |  68 6f 75 67 68 20 61 74 20 66 69 72 73 74 20 67    6c 61 6e 63 65 20 74 68 65 20 72 65 63 75 72 73  | hough.at.first.glance.the.recurs | 
| 1400 |  69 76 65 20 6e 61 74 75 72 65 20 6f 66 20 74 68    69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 69 67 68  | ive.nature.of.this.function.migh | 
| 1420 |  74 0a 3b 3b 20 67 69 76 65 20 6f 6e 65 20 70 61    75 73 65 2c 20 73 69 6e 63 65 20 78 6d 6c 20 69  | t.;;.give.one.pause,.since.xml.i | 
| 1440 |  73 20 61 20 72 65 63 75 72 73 69 76 65 20 64 61    74 61 20 74 79 70 65 2c 20 61 20 72 65 63 75 72  | s.a.recursive.data.type,.a.recur | 
| 1460 |  73 69 76 65 0a 3b 3b 20 70 61 72 73 65 72 20 69    73 20 61 6e 20 6f 70 74 69 6d 61 6c 20 73 74 72  | sive.;;.parser.is.an.optimal.str | 
| 1480 |  61 74 65 67 79 2e 20 20 65 61 63 68 20 6e 6f 64    65 20 77 69 6c 6c 20 62 65 20 76 69 73 69 74 65  | ategy...each.node.will.be.visite | 
| 14a0 |  64 20 65 78 61 63 74 6c 79 0a 3b 3b 20 6f 6e 63    65 20 64 75 72 69 6e 67 20 74 68 65 20 74 72 61  | d.exactly.;;.once.during.the.tra | 
| 14c0 |  6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 0a 3b 3b 0a    3b 3b 20 46 75 72 74 68 65 72 2c 20 73 69 6e 63  | nsformation..;;.;;.Further,.sinc | 
| 14e0 |  65 20 61 20 73 74 72 69 6e 67 20 69 73 20 61 20    74 65 72 6d 69 6e 61 6c 20 6e 6f 64 65 20 61 6e  | e.a.string.is.a.terminal.node.an | 
| 1500 |  64 20 73 69 6e 63 65 20 78 6d 6c 20 63 61 6e 20    62 65 0a 3b 3b 20 72 65 70 72 65 73 65 6e 74 65  | d.since.xml.can.be.;;.represente | 
| 1520 |  64 20 61 73 20 61 20 73 74 72 69 6e 67 2c 20 6e    6f 6e 20 64 79 6e 61 6d 69 63 20 70 6f 72 74 69  | d.as.a.string,.non.dynamic.porti | 
| 1540 |  6f 6e 73 20 6f 66 20 74 68 65 20 70 61 67 65 20    6d 61 79 20 62 65 0a 3b 3b 20 70 72 65 63 61 63  | ons.of.the.page.may.be.;;.precac | 
| 1560 |  68 65 64 20 71 75 69 74 65 20 65 61 73 69 6c 79    2e 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d  | hed.quite.easily..(defun.esxml-- | 
| 1580 |  74 6f 2d 78 6d 6c 2d 72 65 63 75 72 73 69 76 65    20 28 65 73 78 6d 6c 29 0a 20 20 28 70 63 61 73  | to-xml-recursive.(esxml)...(pcas | 
| 15a0 |  65 20 65 73 78 6d 6c 0a 20 20 20 20 28 28 70 72    65 64 20 73 74 72 69 6e 67 70 29 0a 20 20 20 20  | e.esxml.....((pred.stringp)..... | 
| 15c0 |  20 28 78 6d 6c 2d 65 73 63 61 70 65 2d 73 74 72    69 6e 67 20 65 73 78 6d 6c 29 29 0a 20 20 20 20  | .(xml-escape-string.esxml))..... | 
| 15e0 |  28 60 28 72 61 77 2d 73 74 72 69 6e 67 20 2c 73    74 72 69 6e 67 29 0a 20 20 20 20 20 28 63 6c 2d  | (`(raw-string.,string)......(cl- | 
| 1600 |  63 68 65 63 6b 2d 74 79 70 65 20 73 74 72 69 6e    67 20 73 74 72 69 6e 67 70 29 0a 20 20 20 20 20  | check-type.string.stringp)...... | 
| 1620 |  73 74 72 69 6e 67 29 0a 20 20 20 20 28 60 28 63    6f 6d 6d 65 6e 74 20 6e 69 6c 20 2c 62 6f 64 79  | string).....(`(comment.nil.,body | 
| 1640 |  29 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22    3c 21 2d 2d 20 22 20 62 6f 64 79 20 22 20 2d 2d  | )......(concat."<!--.".body.".-- | 
| 1660 |  3e 22 29 29 0a 20 20 20 20 28 60 28 2c 74 61 67    20 2c 61 74 74 72 73 20 2e 20 2c 62 6f 64 79 29  | >")).....(`(,tag.,attrs...,body) | 
| 1680 |  0a 20 20 20 20 20 3b 3b 20 63 6f 64 65 20 67 6f    65 73 20 68 65 72 65 20 74 6f 20 63 61 74 63 68  | ......;;.code.goes.here.to.catch | 
| 16a0 |  20 69 6e 76 61 6c 69 64 20 64 61 74 61 2e 0a 20    20 20 20 20 28 63 6f 6e 63 61 74 20 22 3c 22 20  | .invalid.data.......(concat."<". | 
| 16c0 |  28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 61 67    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | (symbol-name.tag)..............( | 
| 16e0 |  77 68 65 6e 20 61 74 74 72 73 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61  | when.attrs................(conca | 
| 1700 |  74 20 22 20 22 20 28 6d 61 70 63 6f 6e 63 61 74    20 27 65 73 78 6d 6c 2d 2d 63 6f 6e 76 65 72 74  | t.".".(mapconcat.'esxml--convert | 
| 1720 |  2d 70 61 69 72 20 61 74 74 72 73 20 22 20 22 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | -pair.attrs."."))).............. | 
| 1740 |  28 69 66 20 62 6f 64 79 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61  | (if.body..................(conca | 
| 1760 |  74 20 22 3e 22 20 28 6d 61 70 63 6f 6e 63 61 74    20 27 65 73 78 6d 6c 2d 2d 74 6f 2d 78 6d 6c 2d  | t.">".(mapconcat.'esxml--to-xml- | 
| 1780 |  72 65 63 75 72 73 69 76 65 20 62 6f 64 79 20 22    22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | recursive.body."").............. | 
| 17a0 |  20 20 20 20 20 20 20 20 20 20 20 20 22 3c 2f 22    20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 61  | ............"</".(symbol-name.ta | 
| 17c0 |  67 29 20 22 3e 22 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 22 2f 3e 22 29 29 29 29 29  | g).">")................"/>"))))) | 
| 17e0 |  0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 74    6f 2d 78 6d 6c 20 28 65 73 78 6d 6c 29 0a 20 20  | ..(defun.esxml-to-xml.(esxml)... | 
| 1800 |  22 54 68 69 73 20 74 72 61 6e 73 6c 61 74 65 73    20 61 6e 20 65 73 78 6d 6c 20 65 78 70 72 65 73  | "This.translates.an.esxml.expres | 
| 1820 |  73 69 6f 6e 2c 20 69 2e 65 2e 20 74 68 61 74 20    77 68 69 63 68 20 69 73 20 72 65 74 75 72 6e 65  | sion,.i.e..that.which.is.returne | 
| 1840 |  64 0a 62 79 20 78 6d 6c 2d 70 61 72 73 65 2d 72    65 67 69 6f 6e 2e 20 54 68 65 20 73 74 72 75 63  | d.by.xml-parse-region..The.struc | 
| 1860 |  74 75 72 65 20 69 73 20 64 65 66 69 6e 65 64 20    61 73 20 61 6e 79 20 6f 66 20 74 68 65 0a 66 6f  | ture.is.defined.as.any.of.the.fo | 
| 1880 |  6c 6c 6f 77 69 6e 67 20 66 6f 72 6d 73 3a 0a 0a    2d 20 41 20 73 74 72 69 6e 67 2e 0a 0a 20 53 54  | llowing.forms:..-.A.string....ST | 
| 18a0 |  52 49 4e 47 0a 0a 53 54 52 49 4e 47 3a 20 74 68    65 20 73 74 72 69 6e 67 20 69 74 20 69 73 20 72  | RING..STRING:.the.string.it.is.r | 
| 18c0 |  65 74 75 72 6e 65 64 20 77 69 74 68 20 65 6e 74    69 74 69 65 73 20 65 73 63 61 70 65 64 0a 0a 2d  | eturned.with.entities.escaped..- | 
| 18e0 |  20 41 20 6c 69 73 74 20 77 68 65 72 65 20 74 68    65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20  | .A.list.where.the.first.element. | 
| 1900 |  69 73 20 74 68 65 20 72 61 77 2d 73 74 72 69 6e    67 20 73 79 6d 62 6f 6c 20 61 6e 64 20 74 68 65  | is.the.raw-string.symbol.and.the | 
| 1920 |  0a 20 20 73 65 63 6f 6e 64 20 69 73 20 61 20 73    74 72 69 6e 67 2e 0a 0a 20 28 72 61 77 2d 73 74  | ...second.is.a.string....(raw-st | 
| 1940 |  72 69 6e 67 20 53 54 52 49 4e 47 29 0a 0a 53 54    52 49 4e 47 3a 20 74 68 65 20 73 74 72 69 6e 67  | ring.STRING)..STRING:.the.string | 
| 1960 |  20 69 73 20 72 65 74 75 72 6e 65 64 20 75 6e 63    68 61 6e 67 65 64 2e 20 54 68 69 73 20 61 6c 6c  | .is.returned.unchanged..This.all | 
| 1980 |  6f 77 73 20 66 6f 72 20 63 61 63 68 69 6e 67 0a    20 20 20 20 20 20 20 20 6f 66 20 61 6e 79 20 63  | ows.for.caching.........of.any.c | 
| 19a0 |  6f 6e 73 74 61 6e 74 20 70 61 72 74 73 2c 20 73    75 63 68 20 61 73 20 68 65 61 64 65 72 73 20 61  | onstant.parts,.such.as.headers.a | 
| 19c0 |  6e 64 20 66 6f 6f 74 65 72 73 2e 0a 0a 2d 20 41    20 6c 69 73 74 20 77 68 65 72 65 20 74 68 65 20  | nd.footers...-.A.list.where.the. | 
| 19e0 |  66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 69 73    20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 73 79 6d  | first.element.is.the.comment.sym | 
| 1a00 |  62 6f 6c 20 61 6e 64 20 74 68 65 0a 20 20 73 65    63 6f 6e 64 20 69 73 20 61 20 73 74 72 69 6e 67  | bol.and.the...second.is.a.string | 
| 1a20 |  2e 0a 0a 20 28 63 6f 6d 6d 65 6e 74 20 53 54 52    49 4e 47 29 0a 0a 53 54 52 49 4e 47 3a 20 74 68  | ....(comment.STRING)..STRING:.th | 
| 1a40 |  65 20 73 74 72 69 6e 67 20 69 73 20 65 6d 62 65    64 64 65 64 20 69 6e 20 61 20 48 54 4d 4c 20 63  | e.string.is.embedded.in.a.HTML.c | 
| 1a60 |  6f 6d 6d 65 6e 74 2e 0a 0a 2d 20 41 20 6c 69 73    74 20 77 68 65 72 65 20 74 68 65 20 66 69 72 73  | omment...-.A.list.where.the.firs | 
| 1a80 |  74 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 68 65    20 74 61 67 2c 20 74 68 65 20 73 65 63 6f 6e 64  | t.element.is.the.tag,.the.second | 
| 1aa0 |  20 69 73 0a 61 6e 20 61 6c 69 73 74 20 6f 66 20    61 74 74 72 69 62 75 74 65 20 76 61 6c 75 65 20  | .is.an.alist.of.attribute.value. | 
| 1ac0 |  70 61 69 72 73 20 61 6e 64 20 74 68 65 20 72 65    6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 6c  | pairs.and.the.remainder.of.the.l | 
| 1ae0 |  69 73 74 0a 69 73 20 30 20 6f 72 20 6d 6f 72 65    20 65 73 78 6d 6c 20 65 6c 65 6d 65 6e 74 73 2e  | ist.is.0.or.more.esxml.elements. | 
| 1b00 |  0a 0a 20 28 54 41 47 20 41 54 54 52 53 20 26 72    65 73 74 20 42 4f 44 59 29 0a 0a 54 41 47 3a 20  | ...(TAG.ATTRS.&rest.BODY)..TAG:. | 
| 1b20 |  69 73 20 74 68 65 20 74 61 67 20 61 6e 64 20 6d    75 73 74 20 62 65 20 61 20 73 79 6d 62 6f 6c 2e  | is.the.tag.and.must.be.a.symbol. | 
| 1b40 |  0a 0a 41 54 54 52 53 3a 20 69 73 20 61 6e 20 61    6c 69 73 74 20 6f 66 20 61 74 74 72 69 62 75 74  | ..ATTRS:.is.an.alist.of.attribut | 
| 1b60 |  65 20 70 61 69 72 73 20 65 61 63 68 20 70 61 69    72 20 6d 75 73 74 20 62 65 20 6f 66 20 74 68 65  | e.pairs.each.pair.must.be.of.the | 
| 1b80 |  0a 20 20 20 20 20 20 20 66 6f 72 6d 20 28 4b 45    59 20 2e 20 56 41 4c 55 45 29 2e 0a 0a 4b 45 59  | ........form.(KEY...VALUE)...KEY | 
| 1ba0 |  3a 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66    20 74 68 65 20 61 74 74 72 69 62 75 74 65 20 61  | :.is.the.name.of.the.attribute.a | 
| 1bc0 |  6e 64 20 6d 75 73 74 20 62 65 20 61 20 73 79 6d    62 6f 6c 2e 0a 0a 56 41 4c 55 45 3a 20 69 73 20  | nd.must.be.a.symbol...VALUE:.is. | 
| 1be0 |  74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65    20 61 74 74 72 69 62 75 74 65 20 61 6e 64 20 6d  | the.value.of.the.attribute.and.m | 
| 1c00 |  75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 2e    0a 0a 42 4f 44 59 3a 20 69 73 20 7a 65 72 6f 20  | ust.be.a.string...BODY:.is.zero. | 
| 1c20 |  6f 72 20 6d 6f 72 65 20 65 73 78 6d 6c 20 65 78    70 72 65 73 73 69 6f 6e 73 2e 20 20 48 61 76 69  | or.more.esxml.expressions...Havi | 
| 1c40 |  6e 67 20 6e 6f 20 62 6f 64 79 20 66 6f 72 6d 73    0a 20 20 20 20 20 20 69 6d 70 6c 69 65 73 20 74  | ng.no.body.forms.......implies.t | 
| 1c60 |  68 61 74 20 74 68 65 20 74 61 67 20 73 68 6f 75    6c 64 20 62 65 20 73 65 6c 66 20 63 6c 6f 73 65  | hat.the.tag.should.be.self.close | 
| 1c80 |  64 2e 20 20 49 66 20 74 68 65 72 65 20 69 73 0a    20 20 20 20 20 20 6f 6e 65 20 6f 72 20 6d 6f 72  | d...If.there.is.......one.or.mor | 
| 1ca0 |  65 20 62 6f 64 79 20 66 6f 72 6d 73 20 74 68 65    20 74 61 67 20 77 69 6c 6c 20 61 6c 77 61 79 73  | e.body.forms.the.tag.will.always | 
| 1cc0 |  20 62 65 20 65 78 70 6c 69 63 69 74 6c 79 0a 20    20 20 20 20 20 63 6c 6f 73 65 64 2c 20 65 76 65  | .be.explicitly.......closed,.eve | 
| 1ce0 |  6e 20 69 66 20 74 68 65 79 20 61 72 65 20 74 68    65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 22  | n.if.they.are.the.empty.string." | 
| 1d00 |  0a 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 20 20 28 65 73  | ...(condition-case.nil.......(es | 
| 1d20 |  78 6d 6c 2d 2d 74 6f 2d 78 6d 6c 2d 72 65 63 75    72 73 69 76 65 20 65 73 78 6d 6c 29 0a 20 20 20  | xml--to-xml-recursive.esxml).... | 
| 1d40 |  20 28 65 72 72 6f 72 20 28 65 73 78 6d 6c 2d 76    61 6c 69 64 61 74 65 2d 66 6f 72 6d 20 65 73 78  | .(error.(esxml-validate-form.esx | 
| 1d60 |  6d 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70    70 2d 65 73 78 6d 6c 2d 74 6f 2d 78 6d 6c 20 28  | ml))))..(defun.pp-esxml-to-xml.( | 
| 1d80 |  65 73 78 6d 6c 29 0a 20 20 22 54 68 69 73 20 74    72 61 6e 73 6c 61 74 65 73 20 61 6e 20 65 73 78  | esxml)..."This.translates.an.esx | 
| 1da0 |  6d 6c 20 65 78 70 72 65 73 69 6f 6e 20 61 73 20    60 65 73 78 6d 6c 2d 74 6f 2d 78 6d 6c 27 20 62  | ml.expresion.as.`esxml-to-xml'.b | 
| 1dc0 |  75 74 0a 69 6e 64 65 6e 74 73 20 69 74 20 66 6f    72 20 65 61 73 65 20 6f 66 20 68 75 6d 61 6e 20  | ut.indents.it.for.ease.of.human. | 
| 1de0 |  72 65 61 64 61 62 69 6c 69 74 79 2c 20 69 74 20    69 73 20 6e 65 63 65 73 73 61 72 69 6c 79 0a 73  | readability,.it.is.necessarily.s | 
| 1e00 |  6c 6f 77 65 72 20 61 6e 64 20 77 69 6c 6c 20 70    72 6f 64 75 63 65 20 6c 6f 6e 67 65 72 20 6f 75  | lower.and.will.produce.longer.ou | 
| 1e20 |  74 70 75 74 2e 22 0a 20 20 28 70 63 61 73 65 20    65 73 78 6d 6c 0a 20 20 20 20 28 28 70 72 65 64  | tput."...(pcase.esxml.....((pred | 
| 1e40 |  20 73 74 72 69 6e 67 70 29 0a 20 20 20 20 20 28    78 6d 6c 2d 65 73 63 61 70 65 2d 73 74 72 69 6e  | .stringp)......(xml-escape-strin | 
| 1e60 |  67 20 65 73 78 6d 6c 29 29 0a 20 20 20 20 28 60    28 72 61 77 2d 73 74 72 69 6e 67 20 2c 73 74 72  | g.esxml)).....(`(raw-string.,str | 
| 1e80 |  69 6e 67 29 0a 20 20 20 20 20 28 63 6c 2d 63 68    65 63 6b 2d 74 79 70 65 20 73 74 72 69 6e 67 20  | ing)......(cl-check-type.string. | 
| 1ea0 |  73 74 72 69 6e 67 70 29 0a 20 20 20 20 20 73 74    72 69 6e 67 29 0a 20 20 20 20 28 60 28 63 6f 6d  | stringp)......string).....(`(com | 
| 1ec0 |  6d 65 6e 74 20 6e 69 6c 20 2c 62 6f 64 79 29 0a    20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 3c 21  | ment.nil.,body)......(concat."<! | 
| 1ee0 |  2d 2d 20 22 20 62 6f 64 79 20 22 20 2d 2d 3e 22    29 29 0a 20 20 20 20 28 60 28 2c 74 61 67 20 2c  | --.".body.".-->")).....(`(,tag., | 
| 1f00 |  61 74 74 72 73 20 2e 20 2c 62 6f 64 79 29 0a 20    20 20 20 20 28 63 6c 2d 63 68 65 63 6b 2d 74 79  | attrs...,body)......(cl-check-ty | 
| 1f20 |  70 65 20 74 61 67 20 73 79 6d 62 6f 6c 29 0a 20    20 20 20 20 28 63 6c 2d 63 68 65 63 6b 2d 74 79  | pe.tag.symbol)......(cl-check-ty | 
| 1f40 |  70 65 20 61 74 74 72 73 20 61 74 74 72 73 29 0a    20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 3c 22  | pe.attrs.attrs)......(concat."<" | 
| 1f60 |  20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 61    67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(symbol-name.tag).............. | 
| 1f80 |  28 77 68 65 6e 20 61 74 74 72 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63  | (when.attrs................(conc | 
| 1fa0 |  61 74 20 22 20 22 20 28 6d 61 70 63 6f 6e 63 61    74 20 27 65 73 78 6d 6c 2d 2d 63 6f 6e 76 65 72  | at.".".(mapconcat.'esxml--conver | 
| 1fc0 |  74 2d 70 61 69 72 20 61 74 74 72 73 20 22 20 22    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | t-pair.attrs.".")))............. | 
| 1fe0 |  20 28 69 66 20 62 6f 64 79 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63  | .(if.body..................(conc | 
| 2000 |  61 74 20 22 3e 22 20 28 69 66 20 28 63 6c 2d 65    76 65 72 79 20 27 73 74 72 69 6e 67 70 20 62 6f  | at.">".(if.(cl-every.'stringp.bo | 
| 2020 |  64 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 20 20 20 20 20 20  | dy)............................. | 
| 2040 |  20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20    27 69 64 65 6e 74 69 74 79 20 62 6f 64 79 20 22  | .....(mapconcat.'identity.body." | 
| 2060 |  20 22 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  | .")............................. | 
| 2080 |  20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 22 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(concat."\n"................. | 
| 20a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d  | .......................(replace- | 
| 20c0 |  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 20 20 20 20 20 20 20  | regexp-in-string................ | 
| 20e0 |  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 22 5e 22 20 22 20 20  | ........................."^".".. | 
| 2100 |  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 20 20  | "............................... | 
| 2120 |  20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f    6e 63 61 74 20 27 70 70 2d 65 73 78 6d 6c 2d 74  | ..........(mapconcat.'pp-esxml-t | 
| 2140 |  6f 2d 78 6d 6c 20 62 6f 64 79 20 22 5c 6e 22 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | o-xml.body."\n"))............... | 
| 2160 |  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 22 5c 6e 22 29 29 0a  | ........................."\n")). | 
| 2180 |  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 22 3c 2f 22 20 28 73  | ........................."</".(s | 
| 21a0 |  79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 61 67 29 20    22 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ymbol-name.tag).">")............ | 
| 21c0 |  20 20 20 20 22 2f 3e 22 29 29 29 0a 20 20 20 20    28 5f 0a 20 20 20 20 20 28 65 72 72 6f 72 20 22  | ...."/>"))).....(_......(error." | 
| 21e0 |  25 73 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69    64 20 65 73 78 6d 6c 20 65 78 70 72 65 73 73 69  | %s.is.not.a.valid.esxml.expressi | 
| 2200 |  6f 6e 22 20 65 73 78 6d 6c 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 73 78 6d 6c 2d 74 6f 2d 65 73  | on".esxml))))..(defun.sxml-to-es | 
| 2220 |  78 6d 6c 20 28 73 78 6d 6c 29 0a 20 20 22 54 72    61 6e 73 6c 61 74 65 73 20 73 78 6d 6c 20 74 6f  | xml.(sxml)..."Translates.sxml.to | 
| 2240 |  20 65 73 78 6d 6c 20 73 6f 20 74 68 65 20 63 6f    6d 6d 6f 6e 20 73 74 61 6e 64 61 72 64 20 63 61  | .esxml.so.the.common.standard.ca | 
| 2260 |  6e 20 62 65 20 75 73 65 64 2e 0a 53 65 65 3a 20    68 74 74 70 3a 2f 2f 6f 6b 6d 69 6a 2e 6f 72 67  | n.be.used..See:.http://okmij.org | 
| 2280 |  2f 66 74 70 2f 53 63 68 65 6d 65 2f 53 58 4d 4c    2e 68 74 6d 6c 2e 20 41 64 64 69 74 69 6f 6e 61  | /ftp/Scheme/SXML.html..Additiona | 
| 22a0 |  6c 6c 79 2c 0a 28 2a 52 41 57 2d 53 54 52 49 4e    47 2a 20 5c 22 73 74 72 69 6e 67 5c 22 29 20 69  | lly,.(*RAW-STRING*.\"string\").i | 
| 22c0 |  73 20 74 72 61 6e 73 6c 61 74 65 64 20 74 6f 20    28 72 61 77 2d 73 74 72 69 6e 67 0a 5c 22 73 74  | s.translated.to.(raw-string.\"st | 
| 22e0 |  72 69 6e 67 5c 22 29 2e 22 0a 20 20 28 70 63 61    73 65 20 73 78 6d 6c 0a 20 20 20 20 28 60 28 2a  | ring\")."...(pcase.sxml.....(`(* | 
| 2300 |  52 41 57 2d 53 54 52 49 4e 47 2a 20 2c 62 6f 64    79 29 0a 20 20 20 20 20 60 28 72 61 77 2d 73 74  | RAW-STRING*.,body)......`(raw-st | 
| 2320 |  72 69 6e 67 20 2c 62 6f 64 79 29 29 0a 20 20 20    20 28 60 28 2a 43 4f 4d 4d 45 4e 54 2a 20 2c 62  | ring.,body)).....(`(*COMMENT*.,b | 
| 2340 |  6f 64 79 29 0a 20 20 20 20 20 60 28 63 6f 6d 6d    65 6e 74 20 6e 69 6c 20 2c 62 6f 64 79 29 29 0a  | ody)......`(comment.nil.,body)). | 
| 2360 |  20 20 20 20 28 60 28 2c 74 61 67 20 28 40 20 2e    20 2c 61 74 74 72 73 29 20 2e 20 2c 62 6f 64 79  | ....(`(,tag.(@...,attrs)...,body | 
| 2380 |  29 0a 20 20 20 20 20 60 28 2c 74 61 67 20 2c 28    6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28  | )......`(,tag.,(mapcar.(lambda.( | 
| 23a0 |  61 74 74 72 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 28 63 6f  | attr)........................(co | 
| 23c0 |  6e 73 20 28 63 61 72 20 61 74 74 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ns.(car.attr)................... | 
| 23e0 |  20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28    63 61 64 72 20 61 74 74 72 29 0a 20 20 20 20 20  | ...........(or.(cadr.attr)...... | 
| 2400 |  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 70 72 69  | ............................(pri | 
| 2420 |  6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 61    72 20 61 74 74 72 29 29 29 29 29 0a 20 20 20 20  | n1-to-string.(car.attr)))))..... | 
| 2440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 61 74 74 72 73 29 0a 20 20 20 20 20 20 20 20  | .................attrs)......... | 
| 2460 |  20 20 20 20 2c 40 28 6d 61 70 63 61 72 20 27 73    78 6d 6c 2d 74 6f 2d 65 73 78 6d 6c 20 62 6f 64  | ....,@(mapcar.'sxml-to-esxml.bod | 
| 2480 |  79 29 29 29 0a 20 20 20 20 28 60 28 2c 74 61 67    20 2e 20 2c 62 6f 64 79 29 0a 20 20 20 20 20 60  | y))).....(`(,tag...,body)......` | 
| 24a0 |  28 2c 74 61 67 20 6e 69 6c 0a 20 20 20 20 20 20    20 20 20 20 20 20 2c 40 28 6d 61 70 63 61 72 20  | (,tag.nil.............,@(mapcar. | 
| 24c0 |  27 73 78 6d 6c 2d 74 6f 2d 65 73 78 6d 6c 20 62    6f 64 79 29 29 29 0a 20 20 20 20 28 28 61 6e 64  | 'sxml-to-esxml.body))).....((and | 
| 24e0 |  20 73 78 6d 6c 20 28 70 72 65 64 20 73 74 72 69    6e 67 70 29 29 20 73 78 6d 6c 29 29 29 0a 0a 28  | .sxml.(pred.stringp)).sxml)))..( | 
| 2500 |  64 65 66 75 6e 20 73 78 6d 6c 2d 74 6f 2d 78 6d    6c 20 28 73 78 6d 6c 29 0a 20 20 22 54 72 61 6e  | defun.sxml-to-xml.(sxml)..."Tran | 
| 2520 |  73 6c 61 74 65 73 20 73 78 6d 6c 20 74 6f 20 78    6d 6c 2c 20 76 69 61 20 65 73 78 6d 6c 2c 20 68  | slates.sxml.to.xml,.via.esxml,.h | 
| 2540 |  65 79 20 69 74 27 73 20 6f 6e 6c 79 20 61 20 63    6f 6e 73 74 61 6e 74 0a 66 61 63 74 6f 72 2e 20  | ey.it's.only.a.constant.factor.. | 
| 2560 |  3a 29 22 0a 20 20 28 65 73 78 6d 6c 2d 74 6f 2d    78 6d 6c 20 28 73 78 6d 6c 2d 74 6f 2d 65 73 78  | :)"...(esxml-to-xml.(sxml-to-esx | 
| 2580 |  6d 6c 20 73 78 6d 6c 29 29 29 0a 0a 0c 0a 0a 3b    3b 20 54 4f 44 4f 3a 20 6d 61 6b 65 20 61 67 6e  | ml.sxml))).....;;.TODO:.make.agn | 
| 25a0 |  6f 73 74 69 63 20 77 69 74 68 20 72 65 73 70 65    63 74 20 74 6f 20 6c 69 62 78 6d 6c 20 76 73 20  | ostic.with.respect.to.libxml.vs. | 
| 25c0 |  78 6d 6c 2e 65 6c 0a 28 64 65 66 75 6e 20 78 6d    6c 2d 74 6f 2d 65 73 78 6d 6c 20 28 73 74 72 69  | xml.el.(defun.xml-to-esxml.(stri | 
| 25e0 |  6e 67 20 26 6f 70 74 69 6f 6e 61 6c 20 74 72 69    6d 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d  | ng.&optional.trim)...(with-temp- | 
| 2600 |  62 75 66 66 65 72 0a 20 20 20 20 28 69 6e 73 65    72 74 20 73 74 72 69 6e 67 29 0a 20 20 20 20 28  | buffer.....(insert.string).....( | 
| 2620 |  6c 65 74 20 28 28 70 61 72 73 65 2d 74 72 65 65    20 28 6c 69 62 78 6d 6c 2d 70 61 72 73 65 2d 78  | let.((parse-tree.(libxml-parse-x | 
| 2640 |  6d 6c 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74    2d 6d 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20  | ml-region.(point-min)........... | 
| 2660 |  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  | ................................ | 
| 2680 |  20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29    29 29 29 0a 20 20 20 20 20 20 28 69 66 20 74 72  | .....(point-max)))).......(if.tr | 
| 26a0 |  69 6d 0a 20 20 20 20 20 20 20 20 20 20 28 65 73    78 6d 6c 2d 74 72 69 6d 2d 77 73 20 70 61 72 73  | im...........(esxml-trim-ws.pars | 
| 26c0 |  65 2d 74 72 65 65 29 0a 20 20 20 20 20 20 20 20    70 61 72 73 65 2d 74 72 65 65 29 29 29 29 0a 0a  | e-tree).........parse-tree)))).. | 
| 26e0 |  3b 3b 20 54 4f 44 4f 2c 20 6d 6f 76 65 20 74 6f    20 65 73 78 70 61 74 68 20 77 68 65 6e 20 6d 61  | ;;.TODO,.move.to.esxpath.when.ma | 
| 2700 |  74 75 72 65 0a 28 64 65 66 75 6e 20 65 73 78 6d    6c 2d 67 65 74 2d 62 79 2d 6b 65 79 20 28 65 73  | ture.(defun.esxml-get-by-key.(es | 
| 2720 |  78 6d 6c 20 6b 65 79 20 76 61 6c 75 65 29 0a 20    20 22 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74  | xml.key.value)..."Returns.a.list | 
| 2740 |  20 6f 66 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73    20 77 68 6f 73 65 20 77 74 74 72 69 62 75 74 65  | .of.all.elements.whose.wttribute | 
| 2760 |  20 4b 45 59 20 6d 61 74 63 68 0a 56 41 4c 55 45    2e 20 20 4b 45 59 20 73 68 6f 75 6c 64 20 62 65  | .KEY.match.VALUE...KEY.should.be | 
| 2780 |  20 61 20 73 79 6d 62 6f 6c 2c 20 61 6e 64 20 56    41 4c 55 45 20 73 68 6f 75 6c 64 20 62 65 20 61  | .a.symbol,.and.VALUE.should.be.a | 
| 27a0 |  20 73 74 72 69 6e 67 2e 0a 57 69 6c 6c 20 6e 6f    74 20 72 65 63 75 72 73 65 20 62 65 6c 6f 77 20  | .string..Will.not.recurse.below. | 
| 27c0 |  61 20 6d 61 74 63 68 2e 22 0a 20 20 28 75 6e 6c    65 73 73 20 28 73 74 72 69 6e 67 70 20 65 73 78  | a.match."...(unless.(stringp.esx | 
| 27e0 |  6d 6c 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c    65 74 20 28 28 60 28 2c 74 61 67 20 2c 61 74 74  | ml).....(pcase-let.((`(,tag.,att | 
| 2800 |  72 73 20 2e 20 2c 62 6f 64 79 29 20 65 73 78 6d    6c 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 65  | rs...,body).esxml)).......(if.(e | 
| 2820 |  71 75 61 6c 20 76 61 6c 75 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73  | qual.value..................(ass | 
| 2840 |  6f 63 2d 64 65 66 61 75 6c 74 20 6b 65 79 20 61    74 74 72 73 29 29 0a 20 20 20 20 20 20 20 20 20  | oc-default.key.attrs)).......... | 
| 2860 |  20 28 6c 69 73 74 20 65 73 78 6d 6c 29 0a 20 20    20 20 20 20 20 20 28 61 70 70 6c 79 20 27 61 70  | .(list.esxml).........(apply.'ap | 
| 2880 |  70 65 6e 64 20 28 6d 61 70 63 61 72 20 28 6c 61    6d 62 64 61 20 28 73 65 78 70 29 0a 20 20 20 20  | pend.(mapcar.(lambda.(sexp)..... | 
| 28a0 |  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 65 73  | .............................(es | 
| 28c0 |  78 6d 6c 2d 67 65 74 2d 62 79 2d 6b 65 79 20 73    65 78 70 20 6b 65 79 20 76 61 6c 75 65 29 29 0a  | xml-get-by-key.sexp.key.value)). | 
| 28e0 |  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 62  | ...............................b | 
| 2900 |  6f 64 79 29 29 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 65 73 78 6d 6c 2d 67 65 74 2d 74 61 67 73  | ody))))))..(defun.esxml-get-tags | 
| 2920 |  20 28 65 73 78 6d 6c 20 74 61 67 73 29 0a 20 20    22 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20  | .(esxml.tags)..."Returns.a.list. | 
| 2940 |  6f 66 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73 20    77 68 6f 73 65 20 74 61 67 20 69 73 20 61 20 6d  | of.all.elements.whose.tag.is.a.m | 
| 2960 |  65 6d 62 65 72 20 6f 66 20 54 41 47 53 2e 0a 54    41 47 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20  | ember.of.TAGS..TAGS.should.be.a. | 
| 2980 |  6c 69 73 74 20 6f 66 20 74 61 67 73 20 74 6f 20    62 65 20 6d 61 74 63 68 65 64 20 61 67 61 69 6e  | list.of.tags.to.be.matched.again | 
| 29a0 |  73 74 2e 20 57 69 6c 6c 20 6e 6f 74 0a 72 65 63    75 72 73 65 20 62 65 6c 6f 77 20 61 20 6d 61 74  | st..Will.not.recurse.below.a.mat | 
| 29c0 |  63 68 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28    73 74 72 69 6e 67 70 20 65 73 78 6d 6c 29 0a 20  | ch."...(unless.(stringp.esxml).. | 
| 29e0 |  20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28    60 28 2c 74 61 67 20 2c 61 74 74 72 73 20 2e 20  | ...(pcase-let.((`(,tag.,attrs... | 
| 2a00 |  2c 62 6f 64 79 29 20 65 73 78 6d 6c 29 29 0a 20    20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72  | ,body).esxml)).......(if.(member | 
| 2a20 |  20 74 61 67 20 74 61 67 73 29 0a 20 20 20 20 20    20 20 20 20 20 28 6c 69 73 74 20 65 73 78 6d 6c  | .tag.tags)...........(list.esxml | 
| 2a40 |  29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79    20 27 61 70 70 65 6e 64 20 28 6d 61 70 63 61 72  | ).........(apply.'append.(mapcar | 
| 2a60 |  20 28 6c 61 6d 62 64 61 20 28 73 65 78 70 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(lambda.(sexp)................. | 
| 2a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 65 73 78 6d 6c 2d 67 65 74 2d 74 61 67 73  | .................(esxml-get-tags | 
| 2aa0 |  20 73 65 78 70 20 74 61 67 73 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .sexp.tags)).................... | 
| 2ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 62 6f 64 79    29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65  | ............body))))))..(defun.e | 
| 2ae0 |  73 78 6d 6c 2d 67 65 74 2d 66 6f 72 6d 73 20 28    65 73 78 6d 6c 29 0a 20 20 22 52 65 74 75 72 6e  | sxml-get-forms.(esxml)..."Return | 
| 2b00 |  73 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20    66 6f 72 6d 73 2e 22 0a 20 20 28 65 73 78 6d 6c  | s.a.list.of.all.forms."...(esxml | 
| 2b20 |  2d 67 65 74 2d 74 61 67 73 20 65 73 78 6d 6c 20    27 28 66 6f 72 6d 29 29 29 0a 0a 3b 3b 20 74 61  | -get-tags.esxml.'(form)))..;;.ta | 
| 2b40 |  6b 65 6e 20 66 72 6f 6d 20 6b 76 0a 28 64 65 66    6d 61 63 72 6f 20 65 73 78 6d 6c 2d 64 65 73 74  | ken.from.kv.(defmacro.esxml-dest | 
| 2b60 |  72 75 63 74 75 72 69 6e 67 2d 6d 61 70 63 61 72    20 28 61 72 67 73 20 73 65 78 70 20 73 65 71 29  | ructuring-mapcar.(args.sexp.seq) | 
| 2b80 |  0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64    65 6e 74 20 32 29 29 0a 20 20 28 6c 65 74 20 28  | ...(declare.(indent.2))...(let.( | 
| 2ba0 |  28 65 6e 74 72 79 20 28 6d 61 6b 65 2d 73 79 6d    62 6f 6c 20 22 65 6e 74 72 79 22 29 29 29 0a 20  | (entry.(make-symbol."entry"))).. | 
| 2bc0 |  20 20 20 60 28 6d 61 70 63 61 72 20 28 6c 61 6d    62 64 61 20 28 2c 65 6e 74 72 79 29 0a 20 20 20  | ...`(mapcar.(lambda.(,entry).... | 
| 2be0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d    64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69  | ............(cl-destructuring-bi | 
| 2c00 |  6e 64 20 2c 61 72 67 73 20 2c 65 6e 74 72 79 20    2c 73 65 78 70 29 29 0a 20 20 20 20 20 20 20 20  | nd.,args.,entry.,sexp))......... | 
| 2c20 |  20 20 20 20 20 2c 73 65 71 29 29 29 0a 0a 28 70    72 6f 76 69 64 65 20 27 65 73 78 6d 6c 29 0a 3b  | .....,seq)))..(provide.'esxml).; | 
| 2c40 |  3b 3b 20 65 73 78 6d 6c 2e 65 6c 20 65 6e 64 73    20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00  | ;;.esxml.el.ends.here........... | 
| 2c60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2c80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2ca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2cc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2ce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2d00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2d20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2e00 |  65 73 78 6d 6c 2d 32 30 32 33 30 33 30 38 2e 32    32 35 34 2f 65 73 78 6d 6c 2d 71 75 65 72 79 2e  | esxml-20230308.2254/esxml-query. | 
| 2e20 |  65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | el.............................. | 
| 2e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2e60 |  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 | 
| 2e80 |  30 30 37 30 34 30 36 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 37 36 33 00 20 30 00 00 00  | 0070406.00000000000.014763..0... | 
| 2ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2f00 |  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................... | 
| 2f20 |  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................... | 
| 2f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 2fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 3000 |  3b 3b 3b 20 65 73 78 6d 6c 2d 71 75 65 72 79 2e    65 6c 20 2d 2d 2d 20 73 65 6c 65 63 74 20 65 73  | ;;;.esxml-query.el.---.select.es | 
| 3020 |  78 6d 6c 20 6e 6f 64 65 73 20 6a 51 75 65 72 79    2d 73 74 79 6c 65 0a 0a 3b 3b 20 43 6f 70 79 72  | xml.nodes.jQuery-style..;;.Copyr | 
| 3040 |  69 67 68 74 20 28 43 29 20 32 30 31 37 20 56 61    73 69 6c 69 6a 20 53 63 68 6e 65 69 64 65 72 6d  | ight.(C).2017.Vasilij.Schneiderm | 
| 3060 |  61 6e 6e 20 3c 6d 61 69 6c 40 76 61 73 69 6c 69    6a 2e 64 65 3e 0a 0a 3b 3b 20 41 75 74 68 6f 72  | ann.<mail@vasilij.de>..;;.Author | 
| 3080 |  3a 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  | :.Vasilij.Schneidermann.<mail@va | 
| 30a0 |  73 69 6c 69 6a 2e 64 65 3e 0a 3b 3b 20 4d 61 69    6e 74 61 69 6e 65 72 3a 20 56 61 73 69 6c 69 6a  | silij.de>.;;.Maintainer:.Vasilij | 
| 30c0 |  20 53 63 68 6e 65 69 64 65 72 6d 61 6e 6e 0a 3b    3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 31 2e 31  | .Schneidermann.;;.Version:.0.1.1 | 
| 30e0 |  0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 64 61    74 61 2c 20 6c 69 73 70 0a 3b 3b 20 50 61 63 6b  | .;;.Keywords:.data,.lisp.;;.Pack | 
| 3100 |  61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28    63 6c 2d 6c 69 62 20 22 30 2e 31 22 29 29 0a 3b  | age-Requires:.((cl-lib."0.1")).; | 
| 3120 |  3b 0a 3b 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  | ;.;;.This.program.is.free.softwa | 
| 3140 |  72 65 3b 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  | re;.you.can.redistribute.it.and/ | 
| 3160 |  6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 69 74 20    75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20  | or.;;.modify.it.under.the.terms. | 
| 3180 |  6f 66 20 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  | of.the.GNU.General.Public.Licens | 
| 31a0 |  65 20 61 73 0a 3b 3b 20 70 75 62 6c 69 73 68 65    64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f  | e.as.;;.published.by.the.Free.So | 
| 31c0 |  66 74 77 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  | ftware.Foundation,.either.versio | 
| 31e0 |  6e 20 33 20 6f 66 20 74 68 65 0a 3b 3b 20 4c 69    63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f  | n.3.of.the.;;.License,.or.(at.yo | 
| 3200 |  75 72 20 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  | ur.option).any.later.version...; | 
| 3220 |  3b 20 54 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  | ;.This.program.is.distributed.in | 
| 3240 |  20 74 68 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  | .the.hope.that.it.will.be.useful | 
| 3260 |  2c 0a 3b 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  | ,.;;.but.WITHOUT.ANY.WARRANTY;.w | 
| 3280 |  69 74 68 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  | ithout.even.the.implied.warranty | 
| 32a0 |  20 6f 66 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  | .of.;;.MERCHANTABILITY.or.FITNES | 
| 32c0 |  53 20 46 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  | S.FOR.A.PARTICULAR.PURPOSE...See | 
| 32e0 |  20 74 68 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  | .the.;;.GNU.General.Public.Licen | 
| 3300 |  73 65 20 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  | se.for.more.details...;;.You.sho | 
| 3320 |  75 6c 64 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  | uld.have.received.a.copy.of.the. | 
| 3340 |  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 0a 3b 3b 20 61 6c  | GNU.General.Public.License.;;.al | 
| 3360 |  6f 6e 67 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  | ong.with.this.program...If.not,. | 
| 3380 |  73 65 65 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  | see.<http://www.gnu.org/licenses | 
| 33a0 |  2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74    61 72 79 3a 0a 0a 3b 3b 20 54 72 61 64 69 74 69  | />...;;;.Commentary:..;;.Traditi | 
| 33c0 |  6f 6e 61 6c 6c 79 20 70 65 6f 70 6c 65 20 70 69    63 6b 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f  | onally.people.pick.one.of.the.fo | 
| 33e0 |  6c 6c 6f 77 69 6e 67 20 6f 70 74 69 6f 6e 73 20    77 68 65 6e 20 66 61 63 65 64 0a 3b 3b 20 77 69  | llowing.options.when.faced.;;.wi | 
| 3400 |  74 68 20 74 68 65 20 74 61 73 6b 20 6f 66 20 65    78 74 72 61 63 74 69 6e 67 20 64 61 74 61 20 66  | th.the.task.of.extracting.data.f | 
| 3420 |  72 6f 6d 20 58 4d 4c 20 69 6e 20 45 6d 61 63 73    20 4c 69 73 70 3a 0a 3b 3b 0a 3b 3b 20 2d 20 55  | rom.XML.in.Emacs.Lisp:.;;.;;.-.U | 
| 3440 |  73 69 6e 67 20 72 65 67 75 6c 61 72 20 65 78 70    72 65 73 73 69 6f 6e 73 20 6f 6e 20 74 68 65 20  | sing.regular.expressions.on.the. | 
| 3460 |  75 6e 70 61 72 73 65 64 20 64 6f 63 75 6d 65 6e    74 0a 3b 3b 20 2d 20 4d 61 6e 75 61 6c 20 74 72  | unparsed.document.;;.-.Manual.tr | 
| 3480 |  65 65 20 74 72 61 76 65 72 73 61 6c 20 77 69 74    68 20 60 61 73 73 6f 63 27 2c 20 60 63 61 72 27  | ee.traversal.with.`assoc',.`car' | 
| 34a0 |  20 61 6e 64 20 60 63 64 72 27 0a 3b 3b 0a 3b 3b    20 42 72 6f 77 73 65 72 73 20 66 61 63 65 64 20  | .and.`cdr'.;;.;;.Browsers.faced. | 
| 34c0 |  61 20 73 69 6d 69 6c 61 72 20 70 72 6f 62 6c 65    6d 20 75 6e 74 69 6c 20 6a 51 75 65 72 79 20 68  | a.similar.problem.until.jQuery.h | 
| 34e0 |  61 70 70 65 6e 65 64 2c 20 73 68 6f 72 74 6c 79    0a 3b 3b 20 61 66 74 65 72 77 61 72 64 73 20 74  | appened,.shortly.;;.afterwards.t | 
| 3500 |  68 65 79 20 73 74 61 72 74 65 64 20 70 72 6f 76    69 64 69 6e 67 20 74 68 65 20 60 6e 6f 64 65 2e  | hey.started.providing.the.`node. | 
| 3520 |  71 75 65 72 79 53 65 6c 65 63 74 6f 72 27 20 61    6e 64 0a 3b 3b 20 60 6e 6f 64 65 2e 71 75 65 72  | querySelector'.and.;;.`node.quer | 
| 3540 |  79 53 65 6c 65 63 74 6f 72 41 6c 6c 27 20 41 50    49 20 66 6f 72 20 72 65 74 72 69 65 76 69 6e 67  | ySelectorAll'.API.for.retrieving | 
| 3560 |  20 6f 6e 65 20 6f 72 20 61 6c 6c 20 6e 6f 64 65    73 0a 3b 3b 20 6d 61 74 63 68 69 6e 67 20 61 20  | .one.or.all.nodes.;;.matching.a. | 
| 3580 |  67 69 76 65 6e 20 43 53 53 20 73 65 6c 65 63 74    6f 72 2e 20 20 54 68 69 73 20 63 6f 64 65 20 69  | given.CSS.selector...This.code.i | 
| 35a0 |  6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 73 61    6d 65 20 41 50 49 0a 3b 3b 20 77 69 74 68 20 74  | mplements.the.same.API.;;.with.t | 
| 35c0 |  68 65 20 60 65 73 78 6d 6c 2d 71 75 65 72 79 27    20 61 6e 64 20 60 65 73 78 6d 6c 2d 71 75 65 72  | he.`esxml-query'.and.`esxml-quer | 
| 35e0 |  79 2d 61 6c 6c 27 20 66 75 6e 63 74 69 6f 6e 73    2e 20 20 54 68 65 0a 3b 3b 20 66 6f 6c 6c 6f 77  | y-all'.functions...The.;;.follow | 
| 3600 |  69 6e 67 20 74 61 62 6c 65 20 73 75 6d 6d 61 72    69 7a 65 73 20 74 68 65 20 63 75 72 72 65 6e 74  | ing.table.summarizes.the.current | 
| 3620 |  6c 79 20 73 75 70 70 6f 72 74 65 64 20 6d 6f 64    69 66 69 65 72 73 20 61 6e 64 0a 3b 3b 20 63 6f  | ly.supported.modifiers.and.;;.co | 
| 3640 |  6d 62 69 6e 61 74 6f 72 73 3a 0a 3b 3b 0a 3b 3b    20 7c 20 4e 61 6d 65 20 20 20 20 20 20 20 20 20  | mbinators:.;;.;;.|.Name......... | 
| 3660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 7c 20 53 75 70 70 6f 72 74 65  | ......................|.Supporte | 
| 3680 |  64 3f 20 7c 20 53 79 6e 74 61 78 20 20 20 20 20    20 7c 0a 3b 3b 20 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d  | d?.|.Syntax......|.;;.|--------- | 
| 36a0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d  | ---------------------------+---- | 
| 36c0 |  2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 7c 0a 3b 3b 20 7c 20 4e 61 6d  | --------+-------------|.;;.|.Nam | 
| 36e0 |  65 73 70 61 63 65 73 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  | espaces......................... | 
| 3700 |  7c 20 4e 6f 20 20 20 20 20 20 20 20 20 7c 20 66    6f 6f 7c 62 61 72 20 20 20 20 20 7c 0a 3b 3b 20  | |.No.........|.foo|bar.....|.;;. | 
| 3720 |  7c 20 43 6f 6d 6d 61 73 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | |.Commas........................ | 
| 3740 |  20 20 20 20 20 7c 20 59 65 73 20 20 20 20 20 20    20 20 7c 20 66 6f 6f 2c 20 62 61 72 20 20 20 20  | .....|.Yes........|.foo,.bar.... | 
| 3760 |  7c 0a 3b 3b 20 7c 20 44 65 73 63 65 6e 64 61 6e    74 20 63 6f 6d 62 69 6e 61 74 6f 72 20 20 20 20  | |.;;.|.Descendant.combinator.... | 
| 3780 |  20 20 20 20 20 20 20 20 20 20 7c 20 59 65 73 20    20 20 20 20 20 20 20 7c 20 66 6f 6f 20 62 61 72  | ..........|.Yes........|.foo.bar | 
| 37a0 |  20 20 20 20 20 7c 0a 3b 3b 20 7c 20 43 68 69 6c    64 20 63 6f 6d 62 69 6e 61 74 6f 72 20 20 20 20  | .....|.;;.|.Child.combinator.... | 
| 37c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c    20 59 65 73 20 20 20 20 20 20 20 20 7c 20 66 6f  | ...............|.Yes........|.fo | 
| 37e0 |  6f 3e 62 61 72 20 20 20 20 20 7c 0a 3b 3b 20 7c    20 41 64 6a 61 63 65 6e 74 20 73 69 62 6c 69 6e  | o>bar.....|.;;.|.Adjacent.siblin | 
| 3800 |  67 20 63 6f 6d 62 69 6e 61 74 6f 72 20 20 20 20    20 20 20 20 7c 20 4e 6f 20 20 20 20 20 20 20 20  | g.combinator........|.No........ | 
| 3820 |  20 7c 20 66 6f 6f 2b 62 61 72 20 20 20 20 20 7c    0a 3b 3b 20 7c 20 47 65 6e 65 72 61 6c 20 73 69  | .|.foo+bar.....|.;;.|.General.si | 
| 3840 |  62 6c 69 6e 67 20 63 6f 6d 62 69 6e 61 74 6f 72    20 20 20 20 20 20 20 20 20 7c 20 4e 6f 20 20 20  | bling.combinator.........|.No... | 
| 3860 |  20 20 20 20 20 20 7c 20 66 6f 6f 7e 62 61 72 20    20 20 20 20 7c 0a 3b 3b 20 7c 20 55 6e 69 76 65  | ......|.foo~bar.....|.;;.|.Unive | 
| 3880 |  72 73 61 6c 20 73 65 6c 65 63 74 6f 72 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20  | rsal.selector.................|. | 
| 38a0 |  59 65 73 20 20 20 20 20 20 20 20 7c 20 2a 20 20    20 20 20 20 20 20 20 20 20 7c 0a 3b 3b 20 7c 20  | Yes........|.*...........|.;;.|. | 
| 38c0 |  54 79 70 65 20 73 65 6c 65 63 74 6f 72 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | Type.selector................... | 
| 38e0 |  20 20 20 7c 20 59 65 73 20 20 20 20 20 20 20 20    7c 20 74 61 67 20 20 20 20 20 20 20 20 20 7c 0a  | ...|.Yes........|.tag.........|. | 
| 3900 |  3b 3b 20 7c 20 49 44 20 73 65 6c 65 63 74 6f 72    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ;;.|.ID.selector................ | 
| 3920 |  20 20 20 20 20 20 20 20 7c 20 59 65 73 20 20 20    20 20 20 20 20 7c 20 23 66 6f 6f 20 20 20 20 20  | ........|.Yes........|.#foo..... | 
| 3940 |  20 20 20 7c 0a 3b 3b 20 7c 20 43 6c 61 73 73 20    73 65 6c 65 63 74 6f 72 20 20 20 20 20 20 20 20  | ...|.;;.|.Class.selector........ | 
| 3960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 59    65 73 20 20 20 20 20 20 20 20 7c 20 2e 66 6f 6f  | .............|.Yes........|..foo | 
| 3980 |  20 20 20 20 20 20 20 20 7c 0a 3b 3b 20 7c 20 41    74 74 72 69 62 75 74 65 20 73 65 6c 65 63 74 6f  | ........|.;;.|.Attribute.selecto | 
| 39a0 |  72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 7c 20 59 65 73 20 20 20 20 20 20 20 20 7c  | r.................|.Yes........| | 
| 39c0 |  20 5b 66 6f 6f 5d 20 20 20 20 20 20 20 7c 0a 3b    3b 20 7c 20 45 78 61 63 74 20 6d 61 74 63 68 20  | .[foo].......|.;;.|.Exact.match. | 
| 39e0 |  61 74 74 72 69 62 75 74 65 20 73 65 6c 65 63 74    6f 72 20 20 20 20 20 7c 20 59 65 73 20 20 20 20  | attribute.selector.....|.Yes.... | 
| 3a00 |  20 20 20 20 7c 20 5b 66 6f 6f 3d 62 61 72 5d 20    20 20 7c 0a 3b 3b 20 7c 20 50 72 65 66 69 78 20  | ....|.[foo=bar]...|.;;.|.Prefix. | 
| 3a20 |  6d 61 74 63 68 20 61 74 74 72 69 62 75 74 65 20    73 65 6c 65 63 74 6f 72 20 20 20 20 7c 20 59 65  | match.attribute.selector....|.Ye | 
| 3a40 |  73 20 20 20 20 20 20 20 20 7c 20 5b 66 6f 6f 5e    3d 62 61 72 5d 20 20 7c 0a 3b 3b 20 7c 20 53 75  | s........|.[foo^=bar]..|.;;.|.Su | 
| 3a60 |  66 66 69 78 20 6d 61 74 63 68 20 61 74 74 72 69    62 75 74 65 20 73 65 6c 65 63 74 6f 72 20 20 20  | ffix.match.attribute.selector... | 
| 3a80 |  20 7c 20 59 65 73 20 20 20 20 20 20 20 20 7c 20    5b 66 6f 6f 24 3d 62 61 72 5d 20 20 7c 0a 3b 3b  | .|.Yes........|.[foo$=bar]..|.;; | 
| 3aa0 |  20 7c 20 53 75 62 73 74 72 69 6e 67 20 6d 61 74    63 68 20 61 74 74 72 69 62 75 74 65 20 73 65 6c  | .|.Substring.match.attribute.sel | 
| 3ac0 |  65 63 74 6f 72 20 7c 20 59 65 73 20 20 20 20 20    20 20 20 7c 20 5b 66 6f 6f 2a 3d 62 61 72 5d 20  | ector.|.Yes........|.[foo*=bar]. | 
| 3ae0 |  20 7c 0a 3b 3b 20 7c 20 49 6e 63 6c 75 64 65 20    6d 61 74 63 68 20 61 74 74 72 69 62 75 74 65 20  | .|.;;.|.Include.match.attribute. | 
| 3b00 |  73 65 6c 65 63 74 6f 72 20 20 20 7c 20 59 65 73    20 20 20 20 20 20 20 20 7c 20 5b 66 6f 6f 7e 3d  | selector...|.Yes........|.[foo~= | 
| 3b20 |  62 61 72 5d 20 20 7c 0a 3b 3b 20 7c 20 44 61 73    68 20 6d 61 74 63 68 20 61 74 74 72 69 62 75 74  | bar]..|.;;.|.Dash.match.attribut | 
| 3b40 |  65 20 73 65 6c 65 63 74 6f 72 20 20 20 20 20 20    7c 20 59 65 73 20 20 20 20 20 20 20 20 7c 20 5b  | e.selector......|.Yes........|.[ | 
| 3b60 |  66 6f 6f 7c 3d 62 61 72 5d 20 20 7c 0a 3b 3b 20    7c 20 41 74 74 72 69 62 75 74 65 20 73 65 6c 65  | foo|=bar]..|.;;.|.Attribute.sele | 
| 3b80 |  63 74 6f 72 20 6d 6f 64 69 66 69 65 72 73 20 20    20 20 20 20 20 7c 20 4e 6f 20 20 20 20 20 20 20  | ctor.modifiers.......|.No....... | 
| 3ba0 |  20 20 7c 20 5b 66 6f 6f 3d 62 61 72 20 69 5d 20    7c 0a 3b 3b 20 7c 20 50 73 65 75 64 6f 20 65 6c  | ..|.[foo=bar.i].|.;;.|.Pseudo.el | 
| 3bc0 |  65 6d 65 6e 74 73 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 7c 20 4e 6f 20 20  | ements....................|.No.. | 
| 3be0 |  20 20 20 20 20 20 20 7c 20 3a 3a 66 6f 6f 20 20    20 20 20 20 20 7c 0a 3b 3b 20 7c 20 50 73 65 75  | .......|.::foo.......|.;;.|.Pseu | 
| 3c00 |  64 6f 20 63 6c 61 73 73 65 73 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c  | do.classes.....................| | 
| 3c20 |  20 4e 6f 20 20 20 20 20 20 20 20 20 7c 20 3a 66    6f 6f 20 20 20 20 20 20 20 20 7c 0a 0a 3b 3b 3b  | .No.........|.:foo........|..;;; | 
| 3c40 |  20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65    20 27 63 6c 2d 6c 69 62 29 0a 0a 0c 0a 3b 3b 3b  | .Code:..(require.'cl-lib)....;;; | 
| 3c60 |  20 43 53 53 20 73 65 6c 65 63 74 6f 72 20 70 61    72 73 69 6e 67 0a 0a 3b 3b 20 68 74 74 70 73 3a  | .CSS.selector.parsing..;;.https: | 
| 3c80 |  2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 54 52 2f    73 65 6c 65 63 74 6f 72 73 2f 23 77 33 63 73 65  | //www.w3.org/TR/selectors/#w3cse | 
| 3ca0 |  6c 67 72 61 6d 6d 61 72 0a 3b 3b 20 68 74 74 70    73 3a 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 54  | lgrammar.;;.https://www.w3.org/T | 
| 3cc0 |  52 2f 73 65 6c 65 63 74 6f 72 73 34 2f 23 67 72    61 6d 6d 61 72 0a 3b 3b 20 68 74 74 70 73 3a 2f  | R/selectors4/#grammar.;;.https:/ | 
| 3ce0 |  2f 77 77 77 2e 77 33 2e 6f 72 67 2f 54 52 2f 32    30 30 33 2f 57 44 2d 63 73 73 33 2d 73 79 6e 74  | /www.w3.org/TR/2003/WD-css3-synt | 
| 3d00 |  61 78 2d 32 30 30 33 30 38 31 33 2f 23 64 65 74    61 69 6c 65 64 2d 67 72 61 6d 6d 61 72 0a 3b 3b  | ax-20030813/#detailed-grammar.;; | 
| 3d20 |  20 68 74 74 70 73 3a 2f 2f 77 77 77 2e 77 33 2e    6f 72 67 2f 54 52 2f 32 30 30 33 2f 57 44 2d 63  | .https://www.w3.org/TR/2003/WD-c | 
| 3d40 |  73 73 33 2d 73 79 6e 74 61 78 2d 32 30 30 33 30    38 31 33 2f 23 74 6f 6b 65 6e 69 7a 61 74 69 6f  | ss3-syntax-20030813/#tokenizatio | 
| 3d60 |  6e 0a 0a 3b 3b 20 79 6f 75 20 6d 69 67 68 74 20    62 65 20 77 6f 6e 64 65 72 69 6e 67 20 77 68 79  | n..;;.you.might.be.wondering.why | 
| 3d80 |  20 49 27 6d 20 75 73 69 6e 67 20 62 6f 74 68 20    6c 65 76 65 6c 20 33 20 61 6e 64 20 34 20 73 74  | .I'm.using.both.level.3.and.4.st | 
| 3da0 |  61 6e 64 61 72 64 73 2c 0a 3b 3b 20 77 65 6c 6c    2c 20 74 68 65 20 6c 65 76 65 6c 20 33 20 6f 6e  | andards,.;;.well,.the.level.3.on | 
| 3dc0 |  65 20 68 61 73 20 61 20 62 75 67 67 79 20 6c 65    78 65 72 20 73 65 63 74 69 6f 6e 20 77 68 65 72  | e.has.a.buggy.lexer.section.wher | 
| 3de0 |  65 61 73 20 6c 65 76 65 6c 20 34 0a 3b 3b 20 6f    6d 69 74 73 20 63 72 75 63 69 61 6c 20 70 61 72  | eas.level.4.;;.omits.crucial.par | 
| 3e00 |  73 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 73 2c    20 73 6f 20 62 6f 74 68 20 68 61 76 65 20 74 6f  | ser.definitions,.so.both.have.to | 
| 3e20 |  20 62 65 20 75 73 65 64 2e 2e 2e 0a 0a 3b 3b 20    54 4f 44 4f 3a 20 73 75 70 70 6f 72 74 20 3a 6e  | .be.used.....;;.TODO:.support.:n | 
| 3e40 |  6f 74 0a 28 64 65 66 76 61 72 20 65 73 78 6d 6c    2d 2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 2d 74  | ot.(defvar.esxml--css-selector-t | 
| 3e60 |  6f 6b 65 6e 2d 6d 61 74 63 68 65 72 73 0a 20 20    28 6c 65 74 2a 20 28 28 68 20 22 5b 30 2d 39 61  | oken-matchers...(let*.((h."[0-9a | 
| 3e80 |  2d 66 5d 22 29 0a 20 20 20 20 20 20 20 20 20 28    6e 6c 20 22 5c 6e 5c 5c 7c 5c 72 5c 6e 5c 5c 7c  | -f]")..........(nl."\n\\|\r\n\\| | 
| 3ea0 |  5c 72 5c 5c 7c 5c 66 22 29 0a 20 20 20 20 20 20    20 20 20 28 6e 6f 6e 61 73 63 69 69 20 22 5b 5c  | \r\\|\f")..........(nonascii."[\ | 
| 3ec0 |  32 30 30 2d 5c 55 30 30 31 30 66 66 66 66 5d 22    29 0a 20 20 20 20 20 20 20 20 20 28 75 6e 69 63  | 200-\U0010ffff]")..........(unic | 
| 3ee0 |  6f 64 65 20 28 66 6f 72 6d 61 74 20 22 5c 5c 5c    5c 25 73 5c 5c 7b 31 2c 36 5c 5c 7d 5b 20 5c 74  | ode.(format."\\\\%s\\{1,6\\}[.\t | 
| 3f00 |  5c 72 5c 6e 5c 66 5d 3f 22 20 68 29 29 0a 20 20    20 20 20 20 20 20 20 28 65 73 63 61 70 65 20 28  | \r\n\f]?".h))..........(escape.( | 
| 3f20 |  66 6f 72 6d 61 74 20 22 5c 5c 28 3f 3a 25 73 5c    5c 29 5c 5c 7c 5c 5c 5c 5c 5b 20 2d 7e 5c 32 30  | format."\\(?:%s\\)\\|\\\\[.-~\20 | 
| 3f40 |  30 2d 5c 55 30 30 31 30 66 66 66 66 5d 22 20 75    6e 69 63 6f 64 65 29 29 0a 20 20 20 20 20 20 20  | 0-\U0010ffff]".unicode))........ | 
| 3f60 |  20 20 28 6e 6d 73 74 61 72 74 20 28 66 6f 72 6d    61 74 20 22 5b 61 2d 7a 5f 5d 5c 5c 7c 25 73 5c  | ..(nmstart.(format."[a-z_]\\|%s\ | 
| 3f80 |  5c 7c 5c 5c 28 3f 3a 25 73 5c 5c 29 22 20 6e 6f    6e 61 73 63 69 69 20 65 73 63 61 70 65 29 29 0a  | \|\\(?:%s\\)".nonascii.escape)). | 
| 3fa0 |  20 20 20 20 20 20 20 20 20 28 6e 6d 63 68 61 72    20 28 66 6f 72 6d 61 74 20 22 5b 61 2d 7a 30 2d  | .........(nmchar.(format."[a-z0- | 
| 3fc0 |  39 5f 2d 5d 5c 5c 7c 25 73 5c 5c 7c 5c 5c 28 3f    3a 25 73 5c 5c 29 22 20 6e 6f 6e 61 73 63 69 69  | 9_-]\\|%s\\|\\(?:%s\\)".nonascii | 
| 3fe0 |  20 65 73 63 61 70 65 29 29 0a 20 20 20 20 20 20    20 20 20 28 6e 75 6d 20 22 5b 30 2d 39 5d 2b 5c  | .escape))..........(num."[0-9]+\ | 
| 4000 |  5c 7c 5b 30 2d 39 5d 2a 5c 5c 2e 5b 30 2d 39 5d    2b 22 29 0a 20 20 20 20 20 20 20 20 20 28 73 74  | \|[0-9]*\\.[0-9]+")..........(st | 
| 4020 |  72 69 6e 67 31 20 28 66 6f 72 6d 61 74 20 22 5c    22 5c 5c 28 3f 3a 5b 5c 74 20 21 23 24 25 25 26  | ring1.(format."\"\\(?:[\t.!#$%%& | 
| 4040 |  28 2d 7e 5d 5c 5c 7c 5c 5c 5c 5c 5c 5c 28 3f 3a    25 73 5c 5c 29 5c 5c 7c 27 5c 5c 7c 25 73 5c 5c  | (-~]\\|\\\\\\(?:%s\\)\\|'\\|%s\\ | 
| 4060 |  7c 5c 5c 28 3f 3a 25 73 5c 5c 29 5c 5c 29 2a 5c    22 22 20 6e 6c 20 6e 6f 6e 61 73 63 69 69 20 65  | |\\(?:%s\\)\\)*\"".nl.nonascii.e | 
| 4080 |  73 63 61 70 65 29 29 0a 20 20 20 20 20 20 20 20    20 28 73 74 72 69 6e 67 32 20 28 66 6f 72 6d 61  | scape))..........(string2.(forma | 
| 40a0 |  74 20 22 27 5c 5c 28 3f 3a 5b 5c 74 20 21 23 24    25 25 26 28 2d 7e 5d 5c 5c 7c 5c 5c 5c 5c 5c 5c  | t."'\\(?:[\t.!#$%%&(-~]\\|\\\\\\ | 
| 40c0 |  28 3f 3a 25 73 5c 5c 29 5c 5c 7c 5c 22 5c 5c 7c    25 73 5c 5c 7c 5c 5c 28 3f 3a 25 73 5c 5c 29 5c  | (?:%s\\)\\|\"\\|%s\\|\\(?:%s\\)\ | 
| 40e0 |  5c 29 2a 27 22 20 6e 6c 20 6e 6f 6e 61 73 63 69    69 20 65 73 63 61 70 65 29 29 0a 20 20 20 20 20  | \)*'".nl.nonascii.escape))...... | 
| 4100 |  20 20 20 20 28 69 64 65 6e 74 20 28 66 6f 72 6d    61 74 20 22 5b 2d 5d 3f 5c 5c 28 3f 3a 25 73 5c  | ....(ident.(format."[-]?\\(?:%s\ | 
| 4120 |  5c 29 5c 5c 28 3f 3a 25 73 5c 5c 29 2a 22 20 6e    6d 73 74 61 72 74 20 6e 6d 63 68 61 72 29 29 0a  | \)\\(?:%s\\)*".nmstart.nmchar)). | 
| 4140 |  20 20 20 20 20 20 20 20 20 28 75 6e 69 74 20 28    66 6f 72 6d 61 74 20 22 5b 2d 5d 3f 5c 5c 28 3f  | .........(unit.(format."[-]?\\(? | 
| 4160 |  3a 25 73 5c 5c 29 5c 5c 28 3f 3a 25 73 5c 5c 29    2b 22 20 6e 6d 73 74 61 72 74 20 6e 6d 63 68 61  | :%s\\)\\(?:%s\\)+".nmstart.nmcha | 
| 4180 |  72 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61    6d 65 20 28 66 6f 72 6d 61 74 20 22 5c 5c 28 3f  | r))..........(name.(format."\\(? | 
| 41a0 |  3a 25 73 5c 5c 29 2b 22 20 6e 6d 63 68 61 72 29    29 29 0a 0a 20 20 20 20 60 28 28 77 68 69 74 65  | :%s\\)+".nmchar)))......`((white | 
| 41c0 |  73 70 61 63 65 20 2e 20 22 5b 20 5c 74 5c 72 5c    6e 5c 66 5d 2b 22 29 0a 20 20 20 20 20 20 28 73  | space..."[.\t\r\n\f]+").......(s | 
| 41e0 |  74 72 69 6e 67 20 2e 20 2c 28 66 6f 72 6d 61 74    20 22 5c 5c 28 3f 3a 25 73 5c 5c 7c 25 73 5c 5c  | tring...,(format."\\(?:%s\\|%s\\ | 
| 4200 |  29 22 20 73 74 72 69 6e 67 31 20 73 74 72 69 6e    67 32 29 29 0a 20 20 20 20 20 20 28 69 64 65 6e  | )".string1.string2)).......(iden | 
| 4220 |  74 20 2e 20 2c 69 64 65 6e 74 29 0a 20 20 20 20    20 20 28 68 61 73 68 20 2e 20 2c 28 66 6f 72 6d  | t...,ident).......(hash...,(form | 
| 4240 |  61 74 20 22 23 25 73 22 20 6e 61 6d 65 29 29 0a    20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20  | at."#%s".name)).......(function. | 
| 4260 |  2e 20 2c 28 66 6f 72 6d 61 74 20 22 25 73 28 22    20 69 64 65 6e 74 29 29 0a 20 20 20 20 20 20 28  | ..,(format."%s(".ident)).......( | 
| 4280 |  6e 75 6d 62 65 72 20 2e 20 2c 6e 75 6d 29 0a 20    20 20 20 20 20 28 64 69 6d 65 6e 73 69 6f 6e 20  | number...,num).......(dimension. | 
| 42a0 |  2e 20 2c 28 66 6f 72 6d 61 74 20 22 5c 5c 28 3f    3a 25 73 5c 5c 29 25 73 22 20 6e 75 6d 20 75 6e  | ..,(format."\\(?:%s\\)%s".num.un | 
| 42c0 |  69 74 29 29 0a 20 20 20 20 20 20 28 70 72 65 66    69 78 2d 6d 61 74 63 68 20 2e 20 22 5c 5c 5e 3d  | it)).......(prefix-match..."\\^= | 
| 42e0 |  22 29 0a 20 20 20 20 20 20 28 73 75 66 66 69 78    2d 6d 61 74 63 68 20 2e 20 22 5c 5c 24 3d 22 29  | ").......(suffix-match..."\\$=") | 
| 4300 |  0a 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e    67 2d 6d 61 74 63 68 20 2e 20 22 5c 5c 2a 3d 22  | .......(substring-match..."\\*=" | 
| 4320 |  29 0a 20 20 20 20 20 20 28 69 6e 63 6c 75 64 65    2d 6d 61 74 63 68 20 2e 20 22 7e 3d 22 29 0a 20  | ).......(include-match..."~=").. | 
| 4340 |  20 20 20 20 20 28 64 61 73 68 2d 6d 61 74 63 68    20 2e 20 22 7c 3d 22 29 0a 20 20 20 20 20 20 28  | .....(dash-match..."|=").......( | 
| 4360 |  63 6f 6d 6d 61 20 2e 20 22 2c 22 29 0a 20 20 20    20 20 20 28 67 74 20 2e 20 22 3e 22 29 0a 20 20  | comma...",").......(gt...">")... | 
| 4380 |  20 20 20 20 28 70 6c 75 73 20 2e 20 22 5c 5c 2b    22 29 0a 20 20 20 20 20 20 28 6d 69 6e 75 73 20  | ....(plus..."\\+").......(minus. | 
| 43a0 |  2e 20 22 2d 22 29 0a 20 20 20 20 20 20 28 74 69    6c 64 65 20 2e 20 22 7e 22 29 0a 20 20 20 20 20  | .."-").......(tilde..."~")...... | 
| 43c0 |  20 28 61 73 74 65 72 69 73 6b 20 2e 20 22 5c 5c    2a 22 29 0a 20 20 20 20 20 20 28 70 65 72 69 6f  | .(asterisk..."\\*").......(perio | 
| 43e0 |  64 20 2e 20 22 5c 5c 2e 22 29 0a 20 20 20 20 20    20 28 65 71 75 61 6c 73 20 2e 20 22 3d 22 29 0a  | d..."\\.").......(equals..."="). | 
| 4400 |  20 20 20 20 20 20 28 63 6f 6c 6f 6e 20 2e 20 22    3a 22 29 0a 20 20 20 20 20 20 28 6c 62 72 61 63  | ......(colon...":").......(lbrac | 
| 4420 |  6b 65 74 20 2e 20 22 5c 5c 5b 22 29 0a 20 20 20    20 20 20 28 72 62 72 61 63 6b 65 74 20 2e 20 22  | ket..."\\[").......(rbracket..." | 
| 4440 |  5c 5c 5d 22 29 0a 20 20 20 20 20 20 28 72 70 61    72 65 6e 20 2e 20 22 29 22 29 29 29 29 0a 0a 28  | \\]").......(rparen...")"))))..( | 
| 4460 |  64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 74 6f 6b    65 6e 69 7a 65 2d 63 73 73 2d 73 65 6c 65 63 74  | defun.esxml--tokenize-css-select | 
| 4480 |  6f 72 20 28 73 74 72 69 6e 67 29 0a 20 20 28 6c    65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20  | or.(string)...(let.(result)..... | 
| 44a0 |  28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65    72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20  | (with-temp-buffer.......(insert. | 
| 44c0 |  73 74 72 69 6e 67 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  | string).......(goto-char.(point- | 
| 44e0 |  6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69    6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a  | min)).......(while.(not.(eobp)). | 
| 4500 |  20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d    61 78 2d 6c 65 6e 67 74 68 20 30 29 0a 20 20 20  | ........(let.((max-length.0).... | 
| 4520 |  20 20 20 20 20 20 20 20 20 20 20 6c 6f 6e 67 65    73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 64  | ...........longest)...........(d | 
| 4540 |  6f 6c 69 73 74 20 28 6d 61 74 63 68 65 72 20 65    73 78 6d 6c 2d 2d 63 73 73 2d 73 65 6c 65 63 74  | olist.(matcher.esxml--css-select | 
| 4560 |  6f 72 2d 74 6f 6b 65 6e 2d 6d 61 74 63 68 65 72    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | or-token-matchers).............( | 
| 4580 |  6c 65 74 20 28 28 69 64 20 28 63 61 72 20 6d 61    74 63 68 65 72 29 29 0a 20 20 20 20 20 20 20 20  | let.((id.(car.matcher))......... | 
| 45a0 |  20 20 20 20 20 20 20 20 20 20 28 72 65 20 28 63    64 72 20 6d 61 74 63 68 65 72 29 29 29 0a 20 20  | ..........(re.(cdr.matcher)))... | 
| 45c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65    6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 72 65  | ............(when.(looking-at.re | 
| 45e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6c 65 74 2a 20 28 28 74 6f 6b 65 6e 20  | ).................(let*.((token. | 
| 4600 |  28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (match-string.0))............... | 
| 4620 |  20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68    20 28 6c 65 6e 67 74 68 20 74 6f 6b 65 6e 29 29  | .........(length.(length.token)) | 
| 4640 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 3e 20 6c 65 6e  | )...................(when.(>.len | 
| 4660 |  67 74 68 20 6d 61 78 2d 6c 65 6e 67 74 68 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | gth.max-length)................. | 
| 4680 |  20 20 20 20 28 73 65 74 71 20 6d 61 78 2d 6c 65    6e 67 74 68 20 6c 65 6e 67 74 68 29 0a 20 20 20  | ....(setq.max-length.length).... | 
| 46a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 6c 6f 6e 67 65 73 74 20 28  | .................(setq.longest.( | 
| 46c0 |  63 6f 6e 73 20 69 64 20 74 6f 6b 65 6e 29 29 29    29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28  | cons.id.token)))))))...........( | 
| 46e0 |  77 68 65 6e 20 28 6e 6f 74 20 6c 6f 6e 67 65 73    74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | when.(not.longest).............( | 
| 4700 |  65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 74    6f 6b 65 6e 20 64 65 74 65 63 74 65 64 3a 20 25  | error."Invalid.token.detected:.% | 
| 4720 |  73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75  | s"....................(buffer-su | 
| 4740 |  62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20    28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20  | bstring.(point).(point-max)))).. | 
| 4760 |  20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6c    6f 6e 67 65 73 74 20 72 65 73 75 6c 74 29 0a 20  | .........(push.longest.result).. | 
| 4780 |  20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63    68 61 72 20 28 2b 20 28 70 6f 69 6e 74 29 20 6d  | .........(goto-char.(+.(point).m | 
| 47a0 |  61 78 2d 6c 65 6e 67 74 68 29 29 29 29 29 0a 20    20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73  | ax-length))))).....(nreverse.res | 
| 47c0 |  75 6c 74 29 29 29 0a 0a 3b 3b 20 74 68 65 20 61    6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 63 72  | ult)))..;;.the.alternative.is.cr | 
| 47e0 |  65 61 74 69 6e 67 20 61 20 6d 75 74 61 62 6c 65    20 6f 62 6a 65 63 74 20 77 69 74 68 20 70 65 65  | eating.a.mutable.object.with.pee | 
| 4800 |  6b 2f 6e 65 78 74 20 6d 65 74 68 6f 64 73 0a 3b    3b 20 61 6e 64 20 70 61 73 73 69 6e 67 20 69 74  | k/next.methods.;;.and.passing.it | 
| 4820 |  20 61 72 6f 75 6e 64 2c 20 73 6f 20 49 20 63 68    6f 73 65 20 74 68 65 20 6f 6e 65 20 72 65 71 75  | .around,.so.I.chose.the.one.requ | 
| 4840 |  69 72 69 6e 67 20 6c 65 73 73 20 74 79 70 69 6e    67 2c 20 61 0a 3b 3b 20 64 79 6e 61 6d 69 63 61  | iring.less.typing,.a.;;.dynamica | 
| 4860 |  6c 6c 79 20 62 6f 75 6e 64 20 76 61 72 69 61 62    6c 65 20 3a 3c 0a 0a 28 64 65 66 76 61 72 20 65  | lly.bound.variable.:<..(defvar.e | 
| 4880 |  73 78 6d 6c 2d 2d 74 6f 6b 65 6e 2d 73 74 72 65    61 6d 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 73 75  | sxml--token-stream)..;;.TODO:.su | 
| 48a0 |  70 70 6f 72 74 20 3a 6e 6f 74 0a 3b 3b 20 63 73    73 2d 73 65 6c 65 63 74 6f 72 3a 0a 3b 3b 20 20  | pport.:not.;;.css-selector:.;;.. | 
| 48c0 |  20 63 73 73 2d 73 65 6c 65 63 74 6f 72 2d 6c 69    73 74 3b 0a 3b 3b 20 63 73 73 2d 73 65 6c 65 63  | .css-selector-list;.;;.css-selec | 
| 48e0 |  74 6f 72 2d 6c 69 73 74 3a 0a 3b 3b 20 20 20 63    6f 6d 70 6c 65 78 2d 63 73 73 2d 73 65 6c 65 63  | tor-list:.;;...complex-css-selec | 
| 4900 |  74 6f 72 20 5b 20 63 6f 6d 6d 61 20 77 68 69 74    65 73 70 61 63 65 2a 20 63 6f 6d 70 6c 65 78 2d  | tor.[.comma.whitespace*.complex- | 
| 4920 |  63 73 73 2d 73 65 6c 65 63 74 6f 72 20 5d 2a 3b    0a 3b 3b 20 63 6f 6d 70 6c 65 78 2d 63 73 73 2d  | css-selector.]*;.;;.complex-css- | 
| 4940 |  73 65 6c 65 63 74 6f 72 3a 0a 3b 3b 20 20 20 63    6f 6d 70 6f 75 6e 64 2d 63 73 73 2d 73 65 6c 65  | selector:.;;...compound-css-sele | 
| 4960 |  63 74 6f 72 20 5b 20 63 73 73 2d 63 6f 6d 62 69    6e 61 74 6f 72 20 63 6f 6d 70 6f 75 6e 64 2d 63  | ctor.[.css-combinator.compound-c | 
| 4980 |  73 73 2d 73 65 6c 65 63 74 6f 72 20 5d 2a 20 77    68 69 74 65 73 70 61 63 65 2a 3b 0a 3b 3b 20 63  | ss-selector.]*.whitespace*;.;;.c | 
| 49a0 |  73 73 2d 63 6f 6d 62 69 6e 61 74 6f 72 3a 0a 3b    3b 20 20 20 77 68 69 74 65 73 70 61 63 65 2b 20  | ss-combinator:.;;...whitespace+. | 
| 49c0 |  7c 20 77 68 69 74 65 73 70 61 63 65 2a 20 5b 20    27 3e 27 20 7c 20 27 2b 27 20 7c 20 27 7e 27 20  | |.whitespace*.[.'>'.|.'+'.|.'~'. | 
| 49e0 |  5d 20 77 68 69 74 65 73 70 61 63 65 2a 3b 0a 3b    3b 20 63 6f 6d 70 6f 75 6e 64 2d 63 73 73 2d 73  | ].whitespace*;.;;.compound-css-s | 
| 4a00 |  65 6c 65 63 74 6f 72 3a 0a 3b 3b 20 20 20 63 73    73 2d 74 79 70 65 2d 73 65 6c 65 63 74 6f 72 20  | elector:.;;...css-type-selector. | 
| 4a20 |  63 73 73 2d 6d 6f 64 69 66 69 65 72 2a 20 7c 20    63 73 73 2d 6d 6f 64 69 66 69 65 72 2b 3b 0a 3b  | css-modifier*.|.css-modifier+;.; | 
| 4a40 |  3b 20 63 73 73 2d 74 79 70 65 2d 73 65 6c 65 63    74 6f 72 3a 0a 3b 3b 20 20 20 49 44 45 4e 54 20  | ;.css-type-selector:.;;...IDENT. | 
| 4a60 |  7c 20 2a 3b 0a 3b 3b 20 63 73 73 2d 6d 6f 64 69    66 69 65 72 3a 0a 3b 3b 20 20 20 20 63 73 73 2d  | |.*;.;;.css-modifier:.;;....css- | 
| 4a80 |  69 64 20 7c 20 63 73 73 2d 63 6c 61 73 73 20 7c    20 63 73 73 2d 61 74 74 72 69 62 20 7c 20 63 73  | id.|.css-class.|.css-attrib.|.cs | 
| 4aa0 |  73 2d 70 73 65 75 64 6f 3b 0a 3b 3b 20 63 73 73    2d 69 64 3a 0a 3b 3b 20 20 20 48 41 53 48 3b 0a  | s-pseudo;.;;.css-id:.;;...HASH;. | 
| 4ac0 |  3b 3b 20 63 73 73 2d 63 6c 61 73 73 3a 0a 3b 3b    20 20 20 27 2e 27 20 49 44 45 4e 54 3b 0a 3b 3b  | ;;.css-class:.;;...'.'.IDENT;.;; | 
| 4ae0 |  20 63 73 73 2d 61 74 74 72 69 62 3a 0a 3b 3b 20    20 20 27 5b 27 20 77 68 69 74 65 73 70 61 63 65  | .css-attrib:.;;...'['.whitespace | 
| 4b00 |  2a 20 63 73 73 2d 61 74 74 72 69 62 2d 6e 61 6d    65 20 27 5d 27 0a 3b 3b 20 20 20 7c 20 27 5b 27  | *.css-attrib-name.']'.;;...|.'[' | 
| 4b20 |  20 77 68 69 74 65 73 70 61 63 65 2a 20 63 73 73    2d 61 74 74 72 69 62 2d 6e 61 6d 65 20 63 73 73  | .whitespace*.css-attrib-name.css | 
| 4b40 |  2d 61 74 74 72 69 62 2d 6d 61 74 63 68 20 63 73    73 2d 61 74 74 72 69 62 2d 76 61 6c 75 65 20 77  | -attrib-match.css-attrib-value.w | 
| 4b60 |  68 69 74 65 73 70 61 63 65 2a 20 27 5d 27 3b 0a    3b 3b 20 63 73 73 2d 61 74 74 72 69 62 2d 6e 61  | hitespace*.']';.;;.css-attrib-na | 
| 4b80 |  6d 65 3a 0a 3b 3b 20 20 20 49 44 45 4e 54 20 77    68 69 74 65 73 70 61 63 65 2a 3b 0a 3b 3b 20 63  | me:.;;...IDENT.whitespace*;.;;.c | 
| 4ba0 |  73 73 2d 61 74 74 72 69 62 2d 6d 61 74 63 68 3a    0a 3b 3b 20 20 20 5b 20 27 3d 27 20 7c 20 50 52  | ss-attrib-match:.;;...[.'='.|.PR | 
| 4bc0 |  45 46 49 58 2d 4d 41 54 43 48 20 7c 20 53 55 46    46 49 58 2d 4d 41 54 43 48 20 7c 20 53 55 42 53  | EFIX-MATCH.|.SUFFIX-MATCH.|.SUBS | 
| 4be0 |  54 52 49 4e 47 2d 4d 41 54 43 48 20 7c 20 49 4e    43 4c 55 44 45 2d 4d 41 54 43 48 20 7c 20 44 41  | TRING-MATCH.|.INCLUDE-MATCH.|.DA | 
| 4c00 |  53 48 2d 4d 41 54 43 48 20 5d 20 77 68 69 74 65    73 70 61 63 65 2a 3b 0a 3b 3b 20 63 73 73 2d 61  | SH-MATCH.].whitespace*;.;;.css-a | 
| 4c20 |  74 74 72 69 62 2d 76 61 6c 75 65 3a 0a 3b 3b 20    20 20 49 44 45 4e 54 20 7c 20 53 54 52 49 4e 47  | ttrib-value:.;;...IDENT.|.STRING | 
| 4c40 |  3b 0a 3b 3b 20 63 73 73 2d 70 73 65 75 64 6f 3a    0a 3b 3b 20 20 20 27 3a 27 20 27 3a 27 3f 20 5b  | ;.;;.css-pseudo:.;;...':'.':'?.[ | 
| 4c60 |  20 49 44 45 4e 54 20 7c 20 63 73 73 2d 66 75 6e    63 74 69 6f 6e 61 6c 2d 70 73 65 75 64 6f 20 5d  | .IDENT.|.css-functional-pseudo.] | 
| 4c80 |  3b 0a 3b 3b 20 63 73 73 2d 66 75 6e 63 74 69 6f    6e 61 6c 2d 70 73 65 75 64 6f 3a 0a 3b 3b 20 20  | ;.;;.css-functional-pseudo:.;;.. | 
| 4ca0 |  20 46 55 4e 43 54 49 4f 4e 20 77 68 69 74 65 73    70 61 63 65 2a 20 5b 20 63 73 73 2d 65 78 70 72  | .FUNCTION.whitespace*.[.css-expr | 
| 4cc0 |  65 73 73 69 6f 6e 20 77 68 69 74 65 73 70 61 63    65 2a 20 5d 2b 20 27 29 27 3b 0a 3b 3b 20 63 73  | ession.whitespace*.]+.')';.;;.cs | 
| 4ce0 |  73 2d 65 78 70 72 65 73 73 69 6f 6e 3a 0a 3b 3b    20 20 20 27 2b 27 20 7c 20 27 2d 27 20 7c 20 44  | s-expression:.;;...'+'.|.'-'.|.D | 
| 4d00 |  49 4d 45 4e 53 49 4f 4e 20 7c 20 4e 55 4d 42 45    52 20 7c 20 53 54 52 49 4e 47 20 7c 20 49 44 45  | IMENSION.|.NUMBER.|.STRING.|.IDE | 
| 4d20 |  4e 54 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c    2d 71 75 65 72 79 2d 63 73 73 2d 65 73 63 61 70  | NT..(defun.esxml-query-css-escap | 
| 4d40 |  65 20 28 73 74 72 69 6e 67 29 0a 20 20 22 52 65    74 75 72 6e 73 20 65 73 63 61 70 65 64 20 76 65  | e.(string)..."Returns.escaped.ve | 
| 4d60 |  72 73 69 6f 6e 20 6f 66 20 53 54 52 49 4e 47 20    66 6f 72 20 75 73 65 20 69 6e 20 73 65 6c 65 63  | rsion.of.STRING.for.use.in.selec | 
| 4d80 |  74 6f 72 73 2e 0a 54 68 65 20 6c 6f 67 69 63 20    75 73 65 64 20 68 65 72 65 20 63 6f 72 72 65 73  | tors..The.logic.used.here.corres | 
| 4da0 |  70 6f 6e 64 73 20 74 6f 20 74 68 65 20 43 53 53    2e 65 73 63 61 70 65 20 41 50 49 20 61 73 0a 73  | ponds.to.the.CSS.escape.API.as.s | 
| 4dc0 |  70 65 63 69 66 69 65 64 20 69 6e 20 68 74 74 70    73 3a 2f 2f 64 72 61 66 74 73 2e 63 73 73 77 67  | pecified.in.https://drafts.csswg | 
| 4de0 |  2e 6f 72 67 2f 63 73 73 6f 6d 2f 23 74 68 65 2d    63 73 73 2e 65 73 63 61 70 65 28 29 2d 6d 65 74  | .org/cssom/#the-css.escape()-met | 
| 4e00 |  68 6f 64 2e 22 0a 20 20 28 6c 65 74 20 28 63 68    61 72 73 29 0a 20 20 20 20 28 64 6f 74 69 6d 65  | hod."...(let.(chars).....(dotime | 
| 4e20 |  73 20 28 69 20 28 6c 65 6e 67 74 68 20 73 74 72    69 6e 67 29 29 0a 20 20 20 20 20 20 28 6c 65 74  | s.(i.(length.string)).......(let | 
| 4e40 |  2a 20 28 28 63 68 61 72 20 28 61 72 65 66 20 73    74 72 69 6e 67 20 69 29 29 0a 20 20 20 20 20 20  | *.((char.(aref.string.i))....... | 
| 4e60 |  20 20 20 20 20 20 20 28 75 6e 70 72 69 6e 74 61    62 6c 65 70 20 28 6f 72 20 28 61 6e 64 20 28 3e  | .......(unprintablep.(or.(and.(> | 
| 4e80 |  3d 20 63 68 61 72 20 3f 5c 75 30 30 30 31 29 20    28 3c 3d 20 63 68 61 72 20 3f 5c 75 30 30 31 66  | =.char.?\u0001).(<=.char.?\u001f | 
| 4ea0 |  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 20  | )).............................. | 
| 4ec0 |  20 20 28 3d 20 63 68 61 72 20 3f 5c 75 30 30 37    66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ..(=.char.?\u007f)))............ | 
| 4ee0 |  20 20 28 6e 6f 6e 61 73 63 69 69 70 20 28 3e 3d    20 63 68 61 72 20 3f 5c 75 30 30 38 30 29 29 0a  | ..(nonasciip.(>=.char.?\u0080)). | 
| 4f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69    67 69 74 70 20 28 61 6e 64 20 28 3e 3d 20 63 68  | .............(digitp.(and.(>=.ch | 
| 4f20 |  61 72 20 3f 5c 75 30 30 33 30 29 20 28 3c 3d 20    63 68 61 72 20 3f 5c 75 30 30 33 39 29 29 29 0a  | ar.?\u0030).(<=.char.?\u0039))). | 
| 4f40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 70    70 65 72 70 20 28 61 6e 64 20 28 3e 3d 20 63 68  | .............(upperp.(and.(>=.ch | 
| 4f60 |  61 72 20 3f 5c 75 30 30 34 31 29 20 28 3c 3d 20    63 68 61 72 20 3f 5c 75 30 30 35 61 29 29 29 0a  | ar.?\u0041).(<=.char.?\u005a))). | 
| 4f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f    77 65 72 70 20 28 61 6e 64 20 28 3e 3d 20 63 68  | .............(lowerp.(and.(>=.ch | 
| 4fa0 |  61 72 20 3f 5c 75 30 30 36 31 29 20 28 3c 3d 20    63 68 61 72 20 3f 5c 75 30 30 37 61 29 29 29 29  | ar.?\u0061).(<=.char.?\u007a)))) | 
| 4fc0 |  0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20    20 20 20 20 20 20 20 20 28 28 3d 20 63 68 61 72  | .........(cond..........((=.char | 
| 4fe0 |  20 3f 5c 75 30 30 30 30 29 0a 20 20 20 20 20 20    20 20 20 20 28 70 75 73 68 20 3f 5c 75 66 66 66  | .?\u0000)...........(push.?\ufff | 
| 5000 |  64 20 63 68 61 72 73 29 29 0a 20 20 20 20 20 20    20 20 20 28 75 6e 70 72 69 6e 74 61 62 6c 65 70  | d.chars))..........(unprintablep | 
| 5020 |  0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69    73 74 20 28 63 68 61 72 20 28 73 74 72 69 6e 67  | ...........(dolist.(char.(string | 
| 5040 |  2d 74 6f 2d 6c 69 73 74 20 28 66 6f 72 6d 61 74    20 22 5c 5c 25 78 20 22 20 63 68 61 72 29 29 29  | -to-list.(format."\\%x.".char))) | 
| 5060 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75    73 68 20 63 68 61 72 20 63 68 61 72 73 29 29 29  | .............(push.char.chars))) | 
| 5080 |  0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20    28 3d 20 69 20 30 29 20 64 69 67 69 74 70 29 0a  | ..........((and.(=.i.0).digitp). | 
| 50a0 |  20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73    74 20 28 63 68 61 72 20 28 73 74 72 69 6e 67 2d  | ..........(dolist.(char.(string- | 
| 50c0 |  74 6f 2d 6c 69 73 74 20 28 66 6f 72 6d 61 74 20    22 5c 5c 25 78 20 22 20 63 68 61 72 29 29 29 0a  | to-list.(format."\\%x.".char))). | 
| 50e0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73    68 20 63 68 61 72 20 63 68 61 72 73 29 29 29 0a  | ............(push.char.chars))). | 
| 5100 |  20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28    3d 20 69 20 31 29 20 64 69 67 69 74 70 20 28 3d  | .........((and.(=.i.1).digitp.(= | 
| 5120 |  20 28 61 72 65 66 20 73 74 72 69 6e 67 20 30 29    20 3f 2d 29 29 0a 20 20 20 20 20 20 20 20 20 20  | .(aref.string.0).?-))........... | 
| 5140 |  28 64 6f 6c 69 73 74 20 28 63 68 61 72 20 28 73    74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 28 66  | (dolist.(char.(string-to-list.(f | 
| 5160 |  6f 72 6d 61 74 20 22 5c 5c 25 78 20 22 20 63 68    61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ormat."\\%x.".char)))........... | 
| 5180 |  20 20 28 70 75 73 68 20 63 68 61 72 20 63 68 61    72 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28  | ..(push.char.chars)))..........( | 
| 51a0 |  28 61 6e 64 20 28 3d 20 69 20 30 29 20 28 3d 20    63 68 61 72 20 3f 2d 29 20 28 3d 20 28 6c 65 6e  | (and.(=.i.0).(=.char.?-).(=.(len | 
| 51c0 |  67 74 68 20 73 74 72 69 6e 67 29 20 31 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20  | gth.string).1))...........(push. | 
| 51e0 |  3f 5c 5c 20 63 68 61 72 73 29 0a 20 20 20 20 20    20 20 20 20 20 28 70 75 73 68 20 63 68 61 72 20  | ?\\.chars)...........(push.char. | 
| 5200 |  63 68 61 72 73 29 29 0a 20 20 20 20 20 20 20 20    20 28 28 6f 72 20 6e 6f 6e 61 73 63 69 69 70 20  | chars))..........((or.nonasciip. | 
| 5220 |  28 3d 20 63 68 61 72 20 3f 2d 29 20 28 3d 20 63    68 61 72 20 3f 5f 29 20 64 69 67 69 74 70 20 75  | (=.char.?-).(=.char.?_).digitp.u | 
| 5240 |  70 70 65 72 70 20 6c 6f 77 65 72 70 29 0a 20 20    20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 68  | pperp.lowerp)...........(push.ch | 
| 5260 |  61 72 20 63 68 61 72 73 29 29 0a 20 20 20 20 20    20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20  | ar.chars))..........(t.......... | 
| 5280 |  20 28 70 75 73 68 20 3f 5c 5c 20 63 68 61 72 73    29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73  | .(push.?\\.chars)...........(pus | 
| 52a0 |  68 20 63 68 61 72 20 63 68 61 72 73 29 29 29 29    29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6e  | h.char.chars))))).....(concat.(n | 
| 52c0 |  72 65 76 65 72 73 65 20 63 68 61 72 73 29 29 29    29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d  | reverse.chars))))..(defun.esxml- | 
| 52e0 |  2d 70 61 72 73 65 2d 63 73 73 2d 69 64 65 6e 74    69 66 69 65 72 20 28 73 74 72 69 6e 67 29 0a 20  | -parse-css-identifier.(string).. | 
| 5300 |  20 3b 3b 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e    77 33 2e 6f 72 67 2f 54 52 2f 63 73 73 2d 73 79  | .;;.https://www.w3.org/TR/css-sy | 
| 5320 |  6e 74 61 78 2d 33 2f 23 63 6f 6e 73 75 6d 65 2d    73 74 72 69 6e 67 2d 74 6f 6b 65 6e 0a 20 20 28  | ntax-3/#consume-string-token...( | 
| 5340 |  6c 65 74 2a 20 28 28 63 6f 64 65 2d 70 6f 69 6e    74 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6c 69  | let*.((code-points.(string-to-li | 
| 5360 |  73 74 20 73 74 72 69 6e 67 29 29 0a 20 20 20 20    20 20 20 20 20 63 68 61 72 73 0a 20 20 20 20 20  | st.string))..........chars...... | 
| 5380 |  20 20 20 20 74 6f 6b 65 6e 29 0a 20 20 20 20 28    77 68 69 6c 65 20 63 6f 64 65 2d 70 6f 69 6e 74  | ....token).....(while.code-point | 
| 53a0 |  73 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63    68 61 72 20 28 70 6f 70 20 63 6f 64 65 2d 70 6f  | s.......(let.((char.(pop.code-po | 
| 53c0 |  69 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20    28 69 66 20 28 3d 20 63 68 61 72 20 3f 5c 5c 29  | ints))).........(if.(=.char.?\\) | 
| 53e0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65    74 20 28 28 63 68 61 72 20 28 70 6f 70 20 63 6f  | .............(let.((char.(pop.co | 
| 5400 |  64 65 2d 70 6f 69 6e 74 73 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64  | de-points)))...............(cond | 
| 5420 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 28 6e 6f 74 20 63 68 61 72 29 29 0a 20 20 20  | ................((not.char)).... | 
| 5440 |  20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20    63 68 61 72 20 3f 5c 6e 29 29 0a 20 20 20 20 20  | ............((=.char.?\n))...... | 
| 5460 |  20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28    61 6e 64 20 28 3e 3d 20 63 68 61 72 20 3f 30 29  | ..........((or.(and.(>=.char.?0) | 
| 5480 |  20 28 3c 3d 20 63 68 61 72 20 3f 39 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(<=.char.?9)).................. | 
| 54a0 |  20 20 20 28 61 6e 64 20 28 3e 3d 20 63 68 61 72    20 3f 61 29 20 28 3c 3d 20 63 68 61 72 20 3f 66  | ...(and.(>=.char.?a).(<=.char.?f | 
| 54c0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20  | )).....................(and.(>=. | 
| 54e0 |  63 68 61 72 20 3f 41 29 20 28 3c 3d 20 63 68 61    72 20 3f 46 29 29 29 0a 20 20 20 20 20 20 20 20  | char.?A).(<=.char.?F)))......... | 
| 5500 |  20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69    20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ........(let.((i.0)............. | 
| 5520 |  20 20 20 20 20 20 20 20 20 20 28 68 65 78 2d 63    68 61 72 73 20 28 6c 69 73 74 20 63 68 61 72 29  | ..........(hex-chars.(list.char) | 
| 5540 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64  | ))...................(while.(and | 
| 5560 |  20 28 3c 20 69 20 35 29 20 63 6f 64 65 2d 70 6f    69 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20  | .(<.i.5).code-points)........... | 
| 5580 |  20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28    28 63 68 61 72 20 28 63 61 72 20 63 6f 64 65 2d  | ..........(let.((char.(car.code- | 
| 55a0 |  70 6f 69 6e 74 73 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  | points)))....................... | 
| 55c0 |  28 69 66 20 28 6f 72 20 28 61 6e 64 20 28 3e 3d    20 63 68 61 72 20 3f 30 29 20 28 3c 3d 20 63 68  | (if.(or.(and.(>=.char.?0).(<=.ch | 
| 55e0 |  61 72 20 3f 39 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  | ar.?9))......................... | 
| 5600 |  20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20 63    68 61 72 20 3f 61 29 20 28 3c 3d 20 63 68 61 72  | ......(and.(>=.char.?a).(<=.char | 
| 5620 |  20 3f 66 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  | .?f))........................... | 
| 5640 |  20 20 20 20 28 61 6e 64 20 28 3e 3d 20 63 68 61    72 20 3f 41 29 20 28 3c 3d 20 63 68 61 72 20 3f  | ....(and.(>=.char.?A).(<=.char.? | 
| 5660 |  46 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 28  | F)))...........................( | 
| 5680 |  70 75 73 68 20 28 70 6f 70 20 63 6f 64 65 2d 70    6f 69 6e 74 73 29 20 68 65 78 2d 63 68 61 72 73  | push.(pop.code-points).hex-chars | 
| 56a0 |  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 28 73 65 74 71 20  | ).........................(setq. | 
| 56c0 |  69 20 35 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | i.5))).....................(setq | 
| 56e0 |  20 69 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c  | .i.(1+.i)))...................(l | 
| 5700 |  65 74 20 28 28 63 68 61 72 20 28 63 61 72 20 63    6f 64 65 2d 70 6f 69 6e 74 73 29 29 29 0a 20 20  | et.((char.(car.code-points)))... | 
| 5720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 68 61  | ..................(when.(and.cha | 
| 5740 |  72 20 28 3d 20 63 68 61 72 20 3f 5c 73 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.(=.char.?\s))................. | 
| 5760 |  20 20 20 20 20 20 28 70 6f 70 20 63 6f 64 65 2d    70 6f 69 6e 74 73 29 29 29 0a 20 20 20 20 20 20  | ......(pop.code-points)))....... | 
| 5780 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74    2a 20 28 28 68 65 78 2d 74 6f 6b 65 6e 20 28 63  | ............(let*.((hex-token.(c | 
| 57a0 |  6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20    68 65 78 2d 63 68 61 72 73 29 29 29 0a 20 20 20  | oncat.(nreverse.hex-chars))).... | 
| 57c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6f 64 65 2d 70 6f 69 6e  | ......................(code-poin | 
| 57e0 |  74 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d    62 65 72 20 68 65 78 2d 74 6f 6b 65 6e 20 31 36  | t.(string-to-number.hex-token.16 | 
| 5800 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20  | ))).....................(if.(or. | 
| 5820 |  28 7a 65 72 6f 70 20 63 6f 64 65 2d 70 6f 69 6e    74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | (zerop.code-point).............. | 
| 5840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    61 6e 64 20 28 3e 3d 20 63 6f 64 65 2d 70 6f 69  | ...............(and.(>=.code-poi | 
| 5860 |  6e 74 20 3f 5c 75 64 38 30 30 29 20 28 3c 3d 20    63 6f 64 65 2d 70 6f 69 6e 74 20 3f 5c 75 64 66  | nt.?\ud800).(<=.code-point.?\udf | 
| 5880 |  66 66 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  | ff))............................ | 
| 58a0 |  20 28 3e 20 63 6f 64 65 2d 70 6f 69 6e 74 20 3f    5c 55 30 30 31 30 66 66 66 66 29 29 0a 20 20 20  | .(>.code-point.?\U0010ffff)).... | 
| 58c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 75 73 68 20 3f 5c 75 66 66  | .....................(push.?\uff | 
| 58e0 |  66 64 20 63 68 61 72 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | fd.chars)....................... | 
| 5900 |  28 70 75 73 68 20 63 6f 64 65 2d 70 6f 69 6e 74    20 63 68 61 72 73 29 29 29 29 29 0a 20 20 20 20  | (push.code-point.chars)))))..... | 
| 5920 |  20 20 20 20 20 20 20 20 20 20 20 28 74 20 3b 20    75 6e 73 70 65 63 69 66 69 65 64 3a 20 6e 6f 6e  | ...........(t.;.unspecified:.non | 
| 5940 |  2d 68 65 78 20 64 69 67 69 74 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68  | -hex.digit.................(push | 
| 5960 |  20 63 68 61 72 20 63 68 61 72 73 29 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20  | .char.chars))))...........(push. | 
| 5980 |  63 68 61 72 20 63 68 61 72 73 29 29 29 29 0a 20    20 20 20 28 63 6f 6e 63 61 74 20 28 6e 72 65 76  | char.chars)))).....(concat.(nrev | 
| 59a0 |  65 72 73 65 20 63 68 61 72 73 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70 61  | erse.chars))))..(defun.esxml--pa | 
| 59c0 |  72 73 65 2d 63 73 73 2d 73 74 72 69 6e 67 2d 6c    69 74 65 72 61 6c 20 28 73 74 72 69 6e 67 29 0a  | rse-css-string-literal.(string). | 
| 59e0 |  20 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d    63 73 73 2d 69 64 65 6e 74 69 66 69 65 72 20 28  | ..(esxml--parse-css-identifier.( | 
| 5a00 |  73 75 62 73 74 72 69 6e 67 20 73 74 72 69 6e 67    20 31 20 2d 31 29 29 29 0a 0a 28 64 65 66 6d 61  | substring.string.1.-1)))..(defma | 
| 5a20 |  63 72 6f 20 65 73 78 6d 6c 2d 2d 77 69 74 68 2d    70 61 72 73 65 2d 73 68 6f 72 74 68 61 6e 64 73  | cro.esxml--with-parse-shorthands | 
| 5a40 |  20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20    60 28 63 6c 2d 6d 61 63 72 6f 6c 65 74 20 28 28  | .(&rest.body)...`(cl-macrolet.(( | 
| 5a60 |  70 65 65 6b 20 28 29 20 27 28 63 61 72 20 65 73    78 6d 6c 2d 2d 74 6f 6b 65 6e 2d 73 74 72 65 61  | peek.().'(car.esxml--token-strea | 
| 5a80 |  6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6e 65 78 74 20 28 29 20 27 28  | m))..................(next.().'( | 
| 5aa0 |  70 6f 70 20 65 73 78 6d 6c 2d 2d 74 6f 6b 65 6e    2d 73 74 72 65 61 6d 29 29 0a 20 20 20 20 20 20  | pop.esxml--token-stream))....... | 
| 5ac0 |  20 20 20 20 20 20 20 20 20 20 20 28 61 63 63 65    70 74 20 28 74 79 70 65 29 20 60 28 61 6e 64 20  | ...........(accept.(type).`(and. | 
| 5ae0 |  28 70 65 65 6b 29 20 28 65 71 20 28 63 61 72 20    28 70 65 65 6b 29 29 20 2c 74 79 70 65 29 0a 20  | (peek).(eq.(car.(peek)).,type).. | 
| 5b00 |  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  | ................................ | 
| 5b20 |  20 20 20 20 20 28 63 64 72 20 28 6e 65 78 74 29    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .....(cdr.(next))))............. | 
| 5b40 |  20 20 20 20 20 28 65 61 74 2d 77 68 69 74 65 73    70 61 63 65 20 28 29 20 27 28 77 68 69 6c 65 20  | .....(eat-whitespace.().'(while. | 
| 5b60 |  28 61 63 63 65 70 74 20 27 77 68 69 74 65 73 70    61 63 65 29 29 29 29 0a 20 20 20 20 20 2c 40 62  | (accept.'whitespace))))......,@b | 
| 5b80 |  6f 64 79 29 29 0a 28 64 65 66 2d 65 64 65 62 75    67 2d 73 70 65 63 20 65 73 78 6d 6c 2d 2d 77 69  | ody)).(def-edebug-spec.esxml--wi | 
| 5ba0 |  74 68 2d 70 61 72 73 65 2d 73 68 6f 72 74 68 61    6e 64 73 20 28 62 6f 64 79 29 29 0a 0a 28 64 65  | th-parse-shorthands.(body))..(de | 
| 5bc0 |  66 75 6e 20 65 73 78 6d 6c 2d 70 61 72 73 65 2d    63 73 73 2d 73 65 6c 65 63 74 6f 72 20 28 73 74  | fun.esxml-parse-css-selector.(st | 
| 5be0 |  72 69 6e 67 29 0a 20 20 22 50 61 72 73 65 20 43    53 53 20 73 65 6c 65 63 74 6f 72 20 53 54 52 49  | ring)..."Parse.CSS.selector.STRI | 
| 5c00 |  4e 47 20 69 6e 74 6f 20 61 20 6c 69 73 74 20 6f    66 20 61 6c 69 73 74 73 2e 0a 45 61 63 68 20 61  | NG.into.a.list.of.alists..Each.a | 
| 5c20 |  6c 69 73 74 20 72 65 70 72 65 73 65 6e 74 73 20    61 20 63 6f 6d 70 6c 65 78 20 43 53 53 20 73 65  | list.represents.a.complex.CSS.se | 
| 5c40 |  6c 65 63 74 6f 72 2e 20 20 54 68 65 20 72 65 73    75 6c 74 20 63 61 6e 20 62 65 0a 70 61 73 73 65  | lector...The.result.can.be.passe | 
| 5c60 |  64 20 74 6f 20 60 65 73 78 6d 6c 2d 71 75 65 72    79 27 20 61 6e 64 20 60 65 73 78 6d 6c 2d 71 75  | d.to.`esxml-query'.and.`esxml-qu | 
| 5c80 |  65 72 79 2d 61 6c 6c 27 20 61 73 20 74 68 65 20    73 65 6c 65 63 74 6f 72 0a 61 72 67 75 6d 65 6e  | ery-all'.as.the.selector.argumen | 
| 5ca0 |  74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 65 73    78 6d 6c 2d 2d 74 6f 6b 65 6e 2d 73 74 72 65 61  | t."...(let*.((esxml--token-strea | 
| 5cc0 |  6d 20 28 65 73 78 6d 6c 2d 2d 74 6f 6b 65 6e 69    7a 65 2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 20  | m.(esxml--tokenize-css-selector. | 
| 5ce0 |  73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20    20 20 28 72 65 73 75 6c 74 20 28 65 73 78 6d 6c  | string))..........(result.(esxml | 
| 5d00 |  2d 2d 70 61 72 73 65 2d 63 73 73 2d 73 65 6c 65    63 74 6f 72 2d 6c 69 73 74 29 29 29 0a 20 20 20  | --parse-css-selector-list))).... | 
| 5d20 |  20 28 77 68 65 6e 20 65 73 78 6d 6c 2d 2d 74 6f    6b 65 6e 2d 73 74 72 65 61 6d 0a 20 20 20 20 20  | .(when.esxml--token-stream...... | 
| 5d40 |  20 28 65 72 72 6f 72 20 22 54 72 61 69 6c 69 6e    67 20 67 61 72 62 61 67 65 3a 20 25 73 22 0a 20  | .(error."Trailing.garbage:.%s".. | 
| 5d60 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70    63 6f 6e 63 61 74 20 27 63 64 72 20 65 73 78 6d  | ............(mapconcat.'cdr.esxm | 
| 5d80 |  6c 2d 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 20    22 22 29 29 29 0a 20 20 20 20 72 65 73 75 6c 74  | l--token-stream.""))).....result | 
| 5da0 |  29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c    2d 2d 70 61 72 73 65 2d 63 73 73 2d 73 65 6c 65  | ))..(defun.esxml--parse-css-sele | 
| 5dc0 |  63 74 6f 72 2d 6c 69 73 74 20 28 29 0a 20 20 28    65 73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61 72 73  | ctor-list.()...(esxml--with-pars | 
| 5de0 |  65 2d 73 68 6f 72 74 68 61 6e 64 73 0a 20 20 20    28 6c 65 74 20 28 28 66 69 72 73 74 20 28 65 73  | e-shorthands....(let.((first.(es | 
| 5e00 |  78 6d 6c 2d 2d 70 61 72 73 65 2d 63 6f 6d 70 6c    65 78 2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 29  | xml--parse-complex-css-selector) | 
| 5e20 |  29 0a 20 20 20 20 20 20 20 20 20 72 65 73 75 6c    74 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 6e  | )..........result)......(when.(n | 
| 5e40 |  6f 74 20 66 69 72 73 74 29 0a 20 20 20 20 20 20    20 28 65 72 72 6f 72 20 22 45 78 70 65 63 74 65  | ot.first)........(error."Expecte | 
| 5e60 |  64 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 73    65 6c 65 63 74 6f 72 22 29 29 0a 20 20 20 20 20  | d.at.least.one.selector"))...... | 
| 5e80 |  28 70 75 73 68 20 66 69 72 73 74 20 72 65 73 75    6c 74 29 0a 0a 20 20 20 20 20 28 77 68 69 6c 65  | (push.first.result).......(while | 
| 5ea0 |  20 28 61 63 63 65 70 74 20 27 63 6f 6d 6d 61 29    0a 20 20 20 20 20 20 20 28 65 61 74 2d 77 68 69  | .(accept.'comma)........(eat-whi | 
| 5ec0 |  74 65 73 70 61 63 65 29 0a 20 20 20 20 20 20 20    28 6c 65 74 20 28 28 73 65 6c 65 63 74 6f 72 20  | tespace)........(let.((selector. | 
| 5ee0 |  28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 6f    6d 70 6c 65 78 2d 63 73 73 2d 73 65 6c 65 63 74  | (esxml--parse-complex-css-select | 
| 5f00 |  6f 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 6e 6f 74 20 73 65 6c 65 63 74  | or)))..........(when.(not.select | 
| 5f20 |  6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28    65 72 72 6f 72 20 22 45 78 70 65 63 74 65 64 20  | or)............(error."Expected. | 
| 5f40 |  73 65 6c 65 63 74 6f 72 20 61 66 74 65 72 20 63    6f 6d 6d 61 22 29 29 0a 20 20 20 20 20 20 20 20  | selector.after.comma"))......... | 
| 5f60 |  20 28 70 75 73 68 20 73 65 6c 65 63 74 6f 72 20    72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 20 28  | .(push.selector.result)))......( | 
| 5f80 |  6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d  | nreverse.result))))..(defun.esxm | 
| 5fa0 |  6c 2d 2d 70 61 72 73 65 2d 63 6f 6d 70 6c 65 78    2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 20 28 29  | l--parse-complex-css-selector.() | 
| 5fc0 |  0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69 74 68 2d    70 61 72 73 65 2d 73 68 6f 72 74 68 61 6e 64 73  | ...(esxml--with-parse-shorthands | 
| 5fe0 |  0a 20 20 20 28 6c 65 74 20 28 28 66 69 72 73 74    20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63  | ....(let.((first.(esxml--parse-c | 
| 6000 |  6f 6d 70 6f 75 6e 64 2d 63 73 73 2d 73 65 6c 65    63 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20  | ompound-css-selector)).......... | 
| 6020 |  72 65 73 75 6c 74 20 64 6f 6e 65 29 0a 20 20 20    20 20 28 77 68 65 6e 20 66 69 72 73 74 0a 20 20  | result.done)......(when.first... | 
| 6040 |  20 20 20 20 20 28 70 75 73 68 20 66 69 72 73 74    20 72 65 73 75 6c 74 29 0a 0a 20 20 20 20 20 20  | .....(push.first.result)........ | 
| 6060 |  20 28 77 68 69 6c 65 20 28 6e 6f 74 20 64 6f 6e    65 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74  | .(while.(not.done)..........(let | 
| 6080 |  20 28 28 63 6f 6d 62 69 6e 61 74 6f 72 20 28 65    73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d  | .((combinator.(esxml--parse-css- | 
| 60a0 |  63 6f 6d 62 69 6e 61 74 6f 72 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 6d  | combinator)))............(if.com | 
| 60c0 |  62 69 6e 61 74 6f 72 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f  | binator................(let.((co | 
| 60e0 |  6d 70 6f 75 6e 64 20 28 65 73 78 6d 6c 2d 2d 70    61 72 73 65 2d 63 6f 6d 70 6f 75 6e 64 2d 63 73  | mpound.(esxml--parse-compound-cs | 
| 6100 |  73 2d 73 65 6c 65 63 74 6f 72 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | s-selector)))..................( | 
| 6120 |  63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 63 6f 6d 70 6f 75 6e 64  | cond...................(compound | 
| 6140 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74  | ....................(setq.result | 
| 6160 |  20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 63    6f 6d 70 6f 75 6e 64 20 63 6f 6d 62 69 6e 61 74  | .(append.(list.compound.combinat | 
| 6180 |  6f 72 29 20 72 65 73 75 6c 74 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | or).result)))................... | 
| 61a0 |  3b 3b 20 61 6c 6c 6f 77 20 77 68 69 74 65 73 70    61 63 65 20 62 65 66 6f 72 65 20 63 6f 6d 6d 61  | ;;.allow.whitespace.before.comma | 
| 61c0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 28 6e 6f 74 20 28 65 71 20 28 63 61  | ...................((not.(eq.(ca | 
| 61e0 |  72 20 28 70 65 65 6b 29 29 20 27 63 6f 6d 6d 61    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.(peek)).'comma)).............. | 
| 6200 |  20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 72    61 69 6c 69 6e 67 20 63 6f 6d 62 69 6e 61 74 6f  | ......(error."Trailing.combinato | 
| 6220 |  72 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 64 6f 6e 65 20 74  | r"))))..............(setq.done.t | 
| 6240 |  29 29 29 29 0a 20 20 20 20 20 20 20 28 6e 72 65    76 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 29  | ))))........(nreverse.result)))) | 
| 6260 |  29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d    2d 70 61 72 73 65 2d 63 73 73 2d 63 6f 6d 62 69  | )..(defun.esxml--parse-css-combi | 
| 6280 |  6e 61 74 6f 72 20 28 29 0a 20 20 28 65 73 78 6d    6c 2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68  | nator.()...(esxml--with-parse-sh | 
| 62a0 |  6f 72 74 68 61 6e 64 73 0a 20 20 20 3b 3b 20 4e    4f 54 45 3a 20 77 68 69 74 65 73 70 61 63 65 2d  | orthands....;;.NOTE:.whitespace- | 
| 62c0 |  73 75 72 72 6f 75 6e 64 65 64 20 63 6f 6d 62 69    6e 61 74 6f 72 73 20 61 72 65 20 64 69 73 74 69  | surrounded.combinators.are.disti | 
| 62e0 |  6e 67 75 69 73 68 65 64 20 66 72 6f 6d 0a 20 20    20 3b 3b 20 77 68 69 74 65 73 70 61 63 65 2d 6f  | nguished.from....;;.whitespace-o | 
| 6300 |  6e 6c 79 20 6f 6e 65 73 20 62 79 20 63 68 65 63    6b 69 6e 67 20 77 68 65 74 68 65 72 20 74 68 65  | nly.ones.by.checking.whether.the | 
| 6320 |  72 65 20 68 61 73 20 62 65 65 6e 0a 20 20 20 3b    3b 20 77 68 69 74 65 73 70 61 63 65 20 66 6f 6c  | re.has.been....;;.whitespace.fol | 
| 6340 |  6c 6f 77 65 64 20 62 79 20 61 20 6e 6f 6e 2d 62    6c 61 6e 6b 20 63 6f 6d 62 69 6e 61 74 6f 72 0a  | lowed.by.a.non-blank.combinator. | 
| 6360 |  20 20 20 28 6c 65 74 20 28 28 6c 65 61 64 69 6e    67 2d 77 68 69 74 65 73 70 61 63 65 2d 70 20 28  | ...(let.((leading-whitespace-p.( | 
| 6380 |  65 71 20 28 63 61 72 20 28 70 65 65 6b 29 29 20    27 77 68 69 74 65 73 70 61 63 65 29 29 0a 20 20  | eq.(car.(peek)).'whitespace))... | 
| 63a0 |  20 20 20 20 20 20 20 72 65 73 75 6c 74 29 0a 20    20 20 20 20 28 65 61 74 2d 77 68 69 74 65 73 70  | .......result)......(eat-whitesp | 
| 63c0 |  61 63 65 29 0a 20 20 20 20 20 28 6c 65 74 20 28    28 74 79 70 65 20 28 63 61 72 20 28 70 65 65 6b  | ace)......(let.((type.(car.(peek | 
| 63e0 |  29 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62  | ))))........(cond.........((memb | 
| 6400 |  65 72 20 74 79 70 65 20 27 28 67 74 20 70 6c 75    73 20 74 69 6c 64 65 29 29 0a 20 20 20 20 20 20  | er.type.'(gt.plus.tilde))....... | 
| 6420 |  20 20 20 28 6e 65 78 74 29 0a 20 20 20 20 20 20    20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20  | ...(next)..........(cond........ | 
| 6440 |  20 20 20 28 28 65 71 20 74 79 70 65 20 27 67 74    29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65  | ...((eq.type.'gt)............(se | 
| 6460 |  74 71 20 72 65 73 75 6c 74 20 27 28 28 63 6f 6d    62 69 6e 61 74 6f 72 20 2e 20 63 68 69 6c 64 29  | tq.result.'((combinator...child) | 
| 6480 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28    65 71 20 74 79 70 65 20 27 70 6c 75 73 29 0a 20  | )))...........((eq.type.'plus).. | 
| 64a0 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    72 65 73 75 6c 74 20 27 28 28 63 6f 6d 62 69 6e  | ..........(setq.result.'((combin | 
| 64c0 |  61 74 6f 72 20 2e 20 64 69 72 65 63 74 2d 73 69    62 6c 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20  | ator...direct-sibling))))....... | 
| 64e0 |  20 20 20 20 28 28 65 71 20 74 79 70 65 20 27 74    69 6c 64 65 29 0a 20 20 20 20 20 20 20 20 20 20  | ....((eq.type.'tilde)........... | 
| 6500 |  20 28 73 65 74 71 20 72 65 73 75 6c 74 20 27 28    28 63 6f 6d 62 69 6e 61 74 6f 72 20 2e 20 69 6e  | .(setq.result.'((combinator...in | 
| 6520 |  64 69 72 65 63 74 2d 73 69 62 6c 69 6e 67 29 29    29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 61  | direct-sibling)))))..........(ea | 
| 6540 |  74 2d 77 68 69 74 65 73 70 61 63 65 29 29 0a 20    20 20 20 20 20 20 20 28 6c 65 61 64 69 6e 67 2d  | t-whitespace)).........(leading- | 
| 6560 |  77 68 69 74 65 73 70 61 63 65 2d 70 0a 20 20 20    20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75  | whitespace-p..........(setq.resu | 
| 6580 |  6c 74 20 27 28 28 63 6f 6d 62 69 6e 61 74 6f 72    20 2e 20 64 65 73 63 65 6e 64 61 6e 74 29 29 29  | lt.'((combinator...descendant))) | 
| 65a0 |  29 0a 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c    29 29 29 0a 20 20 20 20 20 72 65 73 75 6c 74 29  | ).........(t.nil)))......result) | 
| 65c0 |  29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c    2d 2d 70 61 72 73 65 2d 63 6f 6d 70 6f 75 6e 64  | ))..(defun.esxml--parse-compound | 
| 65e0 |  2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 20 28 29    0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69 74 68 2d  | -css-selector.()...(esxml--with- | 
| 6600 |  70 61 72 73 65 2d 73 68 6f 72 74 68 61 6e 64 73    0a 20 20 20 28 6c 65 74 20 28 28 74 79 70 65 2d  | parse-shorthands....(let.((type- | 
| 6620 |  73 65 6c 65 63 74 6f 72 20 28 65 73 78 6d 6c 2d    2d 70 61 72 73 65 2d 63 73 73 2d 74 79 70 65 2d  | selector.(esxml--parse-css-type- | 
| 6640 |  73 65 6c 65 63 74 6f 72 29 29 0a 20 20 20 20 20    20 20 20 20 64 6f 6e 65 0a 20 20 20 20 20 20 20  | selector))..........done........ | 
| 6660 |  20 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 3b    3b 20 4e 4f 54 45 3a 20 63 73 73 2d 74 79 70 65  | ..result)......;;.NOTE:.css-type | 
| 6680 |  2d 73 65 6c 65 63 74 6f 72 20 63 73 73 2d 6d 6f    64 69 66 69 65 72 2a 20 7c 20 63 73 73 2d 6d 6f  | -selector.css-modifier*.|.css-mo | 
| 66a0 |  64 69 66 69 65 72 2b 3b 20 69 73 0a 20 20 20 20    20 3b 3b 20 65 71 75 69 76 61 6c 65 6e 74 20 74  | difier+;.is......;;.equivalent.t | 
| 66c0 |  6f 3a 20 5b 20 63 73 73 2d 74 79 70 65 2d 73 65    6c 65 63 74 6f 72 20 7c 20 63 73 73 2d 6d 6f 64  | o:.[.css-type-selector.|.css-mod | 
| 66e0 |  69 66 69 65 72 20 5d 20 63 73 73 2d 6d 6f 64 69    66 69 65 72 2a 3b 0a 20 20 20 20 20 28 69 66 20  | ifier.].css-modifier*;......(if. | 
| 6700 |  74 79 70 65 2d 73 65 6c 65 63 74 6f 72 0a 20 20    20 20 20 20 20 20 20 28 70 75 73 68 20 74 79 70  | type-selector..........(push.typ | 
| 6720 |  65 2d 73 65 6c 65 63 74 6f 72 20 72 65 73 75 6c    74 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28  | e-selector.result)........(let.( | 
| 6740 |  28 6d 6f 64 69 66 69 65 72 20 28 65 73 78 6d 6c    2d 2d 70 61 72 73 65 2d 63 73 73 2d 6d 6f 64 69  | (modifier.(esxml--parse-css-modi | 
| 6760 |  66 69 65 72 29 29 29 0a 20 20 20 20 20 20 20 20    20 28 69 66 20 6d 6f 64 69 66 69 65 72 0a 20 20  | fier)))..........(if.modifier... | 
| 6780 |  20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68    20 6d 6f 64 69 66 69 65 72 20 72 65 73 75 6c 74  | ...........(push.modifier.result | 
| 67a0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    4e 4f 54 45 3a 20 74 68 69 73 20 61 6c 6c 6f 77  | )............;;.NOTE:.this.allow | 
| 67c0 |  73 20 74 68 65 20 74 72 61 69 6c 69 6e 67 20 63    6f 6d 62 69 6e 61 74 6f 72 20 65 72 72 6f 72 20  | s.the.trailing.combinator.error. | 
| 67e0 |  74 6f 20 62 65 20 74 68 72 6f 77 6e 0a 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 6f  | to.be.thrown............(setq.do | 
| 6800 |  6e 65 20 74 29 29 29 29 0a 0a 20 20 20 20 20 28    77 68 69 6c 65 20 28 6e 6f 74 20 64 6f 6e 65 29  | ne.t)))).......(while.(not.done) | 
| 6820 |  0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d    6f 64 69 66 69 65 72 20 28 65 73 78 6d 6c 2d 2d  | ........(let.((modifier.(esxml-- | 
| 6840 |  70 61 72 73 65 2d 63 73 73 2d 6d 6f 64 69 66 69    65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28  | parse-css-modifier)))..........( | 
| 6860 |  69 66 20 6d 6f 64 69 66 69 65 72 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6d  | if.modifier..............(push.m | 
| 6880 |  6f 64 69 66 69 65 72 20 72 65 73 75 6c 74 29 0a    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | odifier.result)............(setq | 
| 68a0 |  20 64 6f 6e 65 20 74 29 29 29 29 0a 20 20 20 20    20 28 77 68 65 6e 20 28 3e 20 28 63 6c 2d 63 6f  | .done.t))))......(when.(>.(cl-co | 
| 68c0 |  75 6e 74 20 27 69 64 20 72 65 73 75 6c 74 20 3a    6b 65 79 20 27 63 61 72 29 20 31 29 0a 20 20 20  | unt.'id.result.:key.'car).1).... | 
| 68e0 |  20 20 20 20 28 65 72 72 6f 72 20 22 4f 6e 6c 79    20 6f 6e 65 20 69 64 20 73 65 6c 65 63 74 6f 72  | ....(error."Only.one.id.selector | 
| 6900 |  20 61 6c 6c 6f 77 65 64 20 70 65 72 20 63 6f 6d    70 6f 75 6e 64 22 29 29 0a 20 20 20 20 20 28 6e  | .allowed.per.compound"))......(n | 
| 6920 |  72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c  | reverse.result))))..(defun.esxml | 
| 6940 |  2d 2d 70 61 72 73 65 2d 63 73 73 2d 74 79 70 65    2d 73 65 6c 65 63 74 6f 72 20 28 29 0a 20 20 28  | --parse-css-type-selector.()...( | 
| 6960 |  65 73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61 72 73    65 2d 73 68 6f 72 74 68 61 6e 64 73 0a 20 20 20  | esxml--with-parse-shorthands.... | 
| 6980 |  28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 70 65    65 6b 29 29 29 0a 20 20 20 20 20 28 63 6f 6e 64  | (let.((token.(peek)))......(cond | 
| 69a0 |  0a 20 20 20 20 20 20 28 28 65 71 20 28 63 61 72    20 74 6f 6b 65 6e 29 20 27 69 64 65 6e 74 29 0a  | .......((eq.(car.token).'ident). | 
| 69c0 |  20 20 20 20 20 20 20 28 6e 65 78 74 29 0a 20 20    20 20 20 20 20 28 63 6f 6e 73 20 27 74 61 67 20  | .......(next)........(cons.'tag. | 
| 69e0 |  28 69 6e 74 65 72 6e 20 28 65 73 78 6d 6c 2d 2d    70 61 72 73 65 2d 63 73 73 2d 69 64 65 6e 74 69  | (intern.(esxml--parse-css-identi | 
| 6a00 |  66 69 65 72 20 28 63 64 72 20 74 6f 6b 65 6e 29    29 29 29 29 0a 20 20 20 20 20 20 28 28 65 71 20  | fier.(cdr.token))))).......((eq. | 
| 6a20 |  28 63 61 72 20 74 6f 6b 65 6e 29 20 27 61 73 74    65 72 69 73 6b 29 0a 20 20 20 20 20 20 20 28 6e  | (car.token).'asterisk)........(n | 
| 6a40 |  65 78 74 29 0a 20 20 20 20 20 20 20 27 28 77 69    6c 64 63 61 72 64 29 29 0a 20 20 20 20 20 20 28  | ext)........'(wildcard)).......( | 
| 6a60 |  74 20 6e 69 6c 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d  | t.nil)))))..(defun.esxml--parse- | 
| 6a80 |  63 73 73 2d 6d 6f 64 69 66 69 65 72 20 28 29 0a    20 20 28 6f 72 20 28 65 73 78 6d 6c 2d 2d 70 61  | css-modifier.()...(or.(esxml--pa | 
| 6aa0 |  72 73 65 2d 63 73 73 2d 69 64 29 0a 20 20 20 20    20 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d  | rse-css-id).......(esxml--parse- | 
| 6ac0 |  63 73 73 2d 63 6c 61 73 73 29 0a 20 20 20 20 20    20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63  | css-class).......(esxml--parse-c | 
| 6ae0 |  73 73 2d 61 74 74 72 69 62 29 0a 20 20 20 20 20    20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63  | ss-attrib).......(esxml--parse-c | 
| 6b00 |  73 73 2d 70 73 65 75 64 6f 29 29 29 0a 0a 28 64    65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70 61 72 73  | ss-pseudo)))..(defun.esxml--pars | 
| 6b20 |  65 2d 63 73 73 2d 69 64 20 28 29 0a 20 20 28 65    73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61 72 73 65  | e-css-id.()...(esxml--with-parse | 
| 6b40 |  2d 73 68 6f 72 74 68 61 6e 64 73 0a 20 20 20 28    6c 65 74 20 28 28 76 61 6c 75 65 20 28 61 63 63  | -shorthands....(let.((value.(acc | 
| 6b60 |  65 70 74 20 27 68 61 73 68 29 29 29 0a 20 20 20    20 20 28 77 68 65 6e 20 76 61 6c 75 65 0a 20 20  | ept.'hash)))......(when.value... | 
| 6b80 |  20 20 20 20 20 28 63 6f 6e 73 20 27 69 64 20 28    73 75 62 73 74 72 69 6e 67 20 76 61 6c 75 65 20  | .....(cons.'id.(substring.value. | 
| 6ba0 |  31 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73  | 1))))))..(defun.esxml--parse-css | 
| 6bc0 |  2d 63 6c 61 73 73 20 28 29 0a 20 20 28 65 73 78    6d 6c 2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73  | -class.()...(esxml--with-parse-s | 
| 6be0 |  68 6f 72 74 68 61 6e 64 73 0a 20 20 20 28 77 68    65 6e 20 28 61 63 63 65 70 74 20 27 70 65 72 69  | horthands....(when.(accept.'peri | 
| 6c00 |  6f 64 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28    76 61 6c 75 65 20 28 61 63 63 65 70 74 20 27 69  | od)......(let.((value.(accept.'i | 
| 6c20 |  64 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28    69 66 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20  | dent)))........(if.value........ | 
| 6c40 |  20 20 20 20 28 63 6f 6e 73 20 27 63 6c 61 73 73    20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20  | ....(cons.'class.value)......... | 
| 6c60 |  20 28 65 72 72 6f 72 20 22 45 78 70 65 63 74 65    64 20 69 64 65 6e 74 69 66 69 65 72 20 61 66 74  | .(error."Expected.identifier.aft | 
| 6c80 |  65 72 20 70 65 72 69 6f 64 22 29 29 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d  | er.period"))))))..(defun.esxml-- | 
| 6ca0 |  70 61 72 73 65 2d 63 73 73 2d 61 74 74 72 69 62    20 28 29 0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69  | parse-css-attrib.()...(esxml--wi | 
| 6cc0 |  74 68 2d 70 61 72 73 65 2d 73 68 6f 72 74 68 61    6e 64 73 0a 20 20 20 28 6c 65 74 20 28 72 65 73  | th-parse-shorthands....(let.(res | 
| 6ce0 |  75 6c 74 29 0a 20 20 20 20 20 28 77 68 65 6e 20    28 61 63 63 65 70 74 20 27 6c 62 72 61 63 6b 65  | ult)......(when.(accept.'lbracke | 
| 6d00 |  74 29 0a 20 20 20 20 20 20 20 28 65 61 74 2d 77    68 69 74 65 73 70 61 63 65 29 0a 20 20 20 20 20  | t)........(eat-whitespace)...... | 
| 6d20 |  20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 65    73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d  | ..(let.((name.(esxml--parse-css- | 
| 6d40 |  61 74 74 72 69 62 2d 6e 61 6d 65 29 29 29 0a 20    20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e  | attrib-name)))..........(when.(n | 
| 6d60 |  6f 74 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 28 65 72 72 6f 72 20 22 45 78 70 65  | ot.name)............(error."Expe | 
| 6d80 |  63 74 65 64 20 61 74 74 72 69 62 75 74 65 20 6e    61 6d 65 22 29 29 0a 20 20 20 20 20 20 20 20 20  | cted.attribute.name")).......... | 
| 6da0 |  28 70 75 73 68 20 28 63 6f 6e 73 20 27 6e 61 6d    65 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d  | (push.(cons.'name.(esxml--parse- | 
| 6dc0 |  63 73 73 2d 69 64 65 6e 74 69 66 69 65 72 20 6e    61 6d 65 29 29 20 72 65 73 75 6c 74 29 0a 20 20  | css-identifier.name)).result)... | 
| 6de0 |  20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f    74 20 28 61 63 63 65 70 74 20 27 72 62 72 61 63  | .......(when.(not.(accept.'rbrac | 
| 6e00 |  6b 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 6d 61 74 63 68 20 28 65  | ket))............(let.((match.(e | 
| 6e20 |  73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d    61 74 74 72 69 62 2d 6d 61 74 63 68 29 29 29 0a  | sxml--parse-css-attrib-match))). | 
| 6e40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68    65 6e 20 28 6e 6f 74 20 6d 61 74 63 68 29 0a 20  | .............(when.(not.match).. | 
| 6e60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    72 72 6f 72 20 22 45 78 70 65 63 74 65 64 20 61  | ..............(error."Expected.a | 
| 6e80 |  74 74 72 69 62 75 74 65 20 6d 61 74 63 68 65 72    22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ttribute.matcher"))............. | 
| 6ea0 |  20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 65    73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d  | .(let.((value.(esxml--parse-css- | 
| 6ec0 |  61 74 74 72 69 62 2d 76 61 6c 75 65 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | attrib-value)))................( | 
| 6ee0 |  77 68 65 6e 20 28 6e 6f 74 20 76 61 6c 75 65 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | when.(not.value)................ | 
| 6f00 |  20 20 28 65 72 72 6f 72 20 22 45 78 70 65 63 74    65 64 20 61 74 74 72 69 62 75 74 65 20 76 61 6c  | ..(error."Expected.attribute.val | 
| 6f20 |  75 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 65 61 74 2d 77 68 69 74 65 73  | ue"))................(eat-whites | 
| 6f40 |  70 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20  | pace)................(when.(not. | 
| 6f60 |  28 61 63 63 65 70 74 20 27 72 62 72 61 63 6b 65    74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (accept.'rbracket))............. | 
| 6f80 |  20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e 74    65 72 6d 69 6e 61 74 65 64 20 61 74 74 72 69 62  | .....(error."Unterminated.attrib | 
| 6fa0 |  75 74 65 22 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e  | ute"))................(push.(con | 
| 6fc0 |  73 20 6d 61 74 63 68 20 76 61 6c 75 65 29 20 72    65 73 75 6c 74 29 29 29 29 29 0a 20 20 20 20 20  | s.match.value).result)))))...... | 
| 6fe0 |  20 20 28 63 6f 6e 73 20 27 61 74 74 72 69 62 75    74 65 20 28 6e 72 65 76 65 72 73 65 20 72 65 73  | ..(cons.'attribute.(nreverse.res | 
| 7000 |  75 6c 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63  | ult))))))..(defun.esxml--parse-c | 
| 7020 |  73 73 2d 61 74 74 72 69 62 2d 6e 61 6d 65 20 28    29 0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69 74 68  | ss-attrib-name.()...(esxml--with | 
| 7040 |  2d 70 61 72 73 65 2d 73 68 6f 72 74 68 61 6e 64    73 0a 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65  | -parse-shorthands....(let.((name | 
| 7060 |  20 28 61 63 63 65 70 74 20 27 69 64 65 6e 74 29    29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 6e 61  | .(accept.'ident)))......(when.na | 
| 7080 |  6d 65 0a 20 20 20 20 20 20 20 28 65 61 74 2d 77    68 69 74 65 73 70 61 63 65 29 0a 20 20 20 20 20  | me........(eat-whitespace)...... | 
| 70a0 |  20 20 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d  | ..name))))..(defun.esxml--parse- | 
| 70c0 |  63 73 73 2d 61 74 74 72 69 62 2d 6d 61 74 63 68    20 28 29 0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69  | css-attrib-match.()...(esxml--wi | 
| 70e0 |  74 68 2d 70 61 72 73 65 2d 73 68 6f 72 74 68 61    6e 64 73 0a 20 20 20 28 6c 65 74 20 28 72 65 73  | th-parse-shorthands....(let.(res | 
| 7100 |  75 6c 74 29 0a 20 20 20 20 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 28 28 61 63 63 65 70 74 20 27  | ult)......(cond.......((accept.' | 
| 7120 |  65 71 75 61 6c 73 29 0a 20 20 20 20 20 20 20 28    73 65 74 71 20 72 65 73 75 6c 74 20 27 65 78 61  | equals)........(setq.result.'exa | 
| 7140 |  63 74 2d 6d 61 74 63 68 29 29 0a 20 20 20 20 20    20 28 28 61 63 63 65 70 74 20 27 70 72 65 66 69  | ct-match)).......((accept.'prefi | 
| 7160 |  78 2d 6d 61 74 63 68 29 0a 20 20 20 20 20 20 20    28 73 65 74 71 20 72 65 73 75 6c 74 20 27 70 72  | x-match)........(setq.result.'pr | 
| 7180 |  65 66 69 78 2d 6d 61 74 63 68 29 29 0a 20 20 20    20 20 20 28 28 61 63 63 65 70 74 20 27 73 75 66  | efix-match)).......((accept.'suf | 
| 71a0 |  66 69 78 2d 6d 61 74 63 68 29 0a 20 20 20 20 20    20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 27  | fix-match)........(setq.result.' | 
| 71c0 |  73 75 66 66 69 78 2d 6d 61 74 63 68 29 29 0a 20    20 20 20 20 20 28 28 61 63 63 65 70 74 20 27 73  | suffix-match)).......((accept.'s | 
| 71e0 |  75 62 73 74 72 69 6e 67 2d 6d 61 74 63 68 29 0a    20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73  | ubstring-match)........(setq.res | 
| 7200 |  75 6c 74 20 27 73 75 62 73 74 72 69 6e 67 2d 6d    61 74 63 68 29 29 0a 20 20 20 20 20 20 28 28 61  | ult.'substring-match)).......((a | 
| 7220 |  63 63 65 70 74 20 27 69 6e 63 6c 75 64 65 2d 6d    61 74 63 68 29 0a 20 20 20 20 20 20 20 28 73 65  | ccept.'include-match)........(se | 
| 7240 |  74 71 20 72 65 73 75 6c 74 20 27 69 6e 63 6c 75    64 65 2d 6d 61 74 63 68 29 29 0a 20 20 20 20 20  | tq.result.'include-match))...... | 
| 7260 |  20 28 28 61 63 63 65 70 74 20 27 64 61 73 68 2d    6d 61 74 63 68 29 0a 20 20 20 20 20 20 20 28 73  | .((accept.'dash-match)........(s | 
| 7280 |  65 74 71 20 72 65 73 75 6c 74 20 27 64 61 73 68    2d 6d 61 74 63 68 29 29 29 0a 20 20 20 20 20 28  | etq.result.'dash-match)))......( | 
| 72a0 |  65 61 74 2d 77 68 69 74 65 73 70 61 63 65 29 0a    20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 0a  | eat-whitespace)......result))).. | 
| 72c0 |  28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70 61    72 73 65 2d 63 73 73 2d 61 74 74 72 69 62 2d 76  | (defun.esxml--parse-css-attrib-v | 
| 72e0 |  61 6c 75 65 20 28 29 0a 20 20 28 65 73 78 6d 6c    2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68 6f  | alue.()...(esxml--with-parse-sho | 
| 7300 |  72 74 68 61 6e 64 73 0a 20 20 20 28 6c 65 74 20    28 28 74 6f 6b 65 6e 20 28 70 65 65 6b 29 29 29  | rthands....(let.((token.(peek))) | 
| 7320 |  0a 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 20 28 28 65 71 20 28 63 61 72 20 74 6f 6b 65  | ......(cond.......((eq.(car.toke | 
| 7340 |  6e 29 20 27 69 64 65 6e 74 29 0a 20 20 20 20 20    20 20 28 6e 65 78 74 29 0a 20 20 20 20 20 20 20  | n).'ident)........(next)........ | 
| 7360 |  28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73    73 2d 69 64 65 6e 74 69 66 69 65 72 20 28 63 64  | (esxml--parse-css-identifier.(cd | 
| 7380 |  72 20 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20    20 28 28 65 71 20 28 63 61 72 20 74 6f 6b 65 6e  | r.token))).......((eq.(car.token | 
| 73a0 |  29 20 27 73 74 72 69 6e 67 29 0a 20 20 20 20 20    20 20 28 6e 65 78 74 29 0a 20 20 20 20 20 20 20  | ).'string)........(next)........ | 
| 73c0 |  28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73    73 2d 73 74 72 69 6e 67 2d 6c 69 74 65 72 61 6c  | (esxml--parse-css-string-literal | 
| 73e0 |  20 28 63 64 72 20 74 6f 6b 65 6e 29 29 29 0a 20    20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 29  | .(cdr.token))).......(t.nil))))) | 
| 7400 |  0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d    70 61 72 73 65 2d 63 73 73 2d 70 73 65 75 64 6f  | ..(defun.esxml--parse-css-pseudo | 
| 7420 |  20 28 29 0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69    74 68 2d 70 61 72 73 65 2d 73 68 6f 72 74 68 61  | .()...(esxml--with-parse-shortha | 
| 7440 |  6e 64 73 0a 20 20 20 28 6c 65 74 20 28 72 65 73    75 6c 74 20 74 79 70 65 29 0a 20 20 20 20 20 28  | nds....(let.(result.type)......( | 
| 7460 |  77 68 65 6e 20 28 61 63 63 65 70 74 20 27 63 6f    6c 6f 6e 29 0a 20 20 20 20 20 20 20 28 69 66 20  | when.(accept.'colon)........(if. | 
| 7480 |  28 61 63 63 65 70 74 20 27 63 6f 6c 6f 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | (accept.'colon)............(setq | 
| 74a0 |  20 74 79 70 65 20 27 70 73 65 75 64 6f 2d 65 6c    65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20  | .type.'pseudo-element).......... | 
| 74c0 |  28 73 65 74 71 20 74 79 70 65 20 27 70 73 65 75    64 6f 2d 63 6c 61 73 73 29 29 0a 20 20 20 20 20  | (setq.type.'pseudo-class))...... | 
| 74e0 |  20 20 28 6c 65 74 20 28 28 66 75 6e 63 74 69 6f    6e 61 6c 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73  | ..(let.((functional.(esxml--pars | 
| 7500 |  65 2d 63 73 73 2d 66 75 6e 63 74 69 6f 6e 61 6c    2d 70 73 65 75 64 6f 29 29 29 0a 20 20 20 20 20  | e-css-functional-pseudo)))...... | 
| 7520 |  20 20 20 20 28 69 66 20 66 75 6e 63 74 69 6f 6e    61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(if.functional.............. | 
| 7540 |  28 69 66 20 28 65 71 20 74 79 70 65 20 27 70 73    65 75 64 6f 2d 63 6c 61 73 73 29 0a 20 20 20 20  | (if.(eq.type.'pseudo-class)..... | 
| 7560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65    74 20 28 28 76 61 6c 75 65 20 28 63 61 72 20 66  | .............(let.((value.(car.f | 
| 7580 |  75 6e 63 74 69 6f 6e 61 6c 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | unctional))..................... | 
| 75a0 |  20 20 20 28 61 72 67 73 20 28 63 64 72 20 66 75    6e 63 74 69 6f 6e 61 6c 29 29 29 0a 20 20 20 20  | ...(args.(cdr.functional)))..... | 
| 75c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    70 75 73 68 20 28 63 6f 6e 73 20 27 6e 61 6d 65  | ...............(push.(cons.'name | 
| 75e0 |  20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63    73 73 2d 69 64 65 6e 74 69 66 69 65 72 20 76 61  | .(esxml--parse-css-identifier.va | 
| 7600 |  6c 75 65 29 29 20 72 65 73 75 6c 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | lue)).result)................... | 
| 7620 |  20 28 70 75 73 68 20 28 63 6f 6e 73 20 27 61 72    67 73 20 61 72 67 73 29 20 72 65 73 75 6c 74 29  | .(push.(cons.'args.args).result) | 
| 7640 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 65 72 72 6f 72 20 22 50 73 65 75 64 6f 2d  | )................(error."Pseudo- | 
| 7660 |  65 6c 65 6d 65 6e 74 73 20 6d 61 79 20 6e 6f 74    20 68 61 76 65 20 61 72 67 75 6d 65 6e 74 73 22  | elements.may.not.have.arguments" | 
| 7680 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c    65 74 20 28 28 76 61 6c 75 65 20 28 61 63 63 65  | ))............(let.((value.(acce | 
| 76a0 |  70 74 20 27 69 64 65 6e 74 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 76 61  | pt.'ident)))..............(if.va | 
| 76c0 |  6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73  | lue..................(push.(cons | 
| 76e0 |  20 27 6e 61 6d 65 20 28 65 73 78 6d 6c 2d 2d 70    61 72 73 65 2d 63 73 73 2d 69 64 65 6e 74 69 66  | .'name.(esxml--parse-css-identif | 
| 7700 |  69 65 72 20 76 61 6c 75 65 29 29 20 72 65 73 75    6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ier.value)).result)............. | 
| 7720 |  20 20 20 28 65 72 72 6f 72 20 22 45 78 70 65 63    74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20  | ...(error."Expected.function.or. | 
| 7740 |  69 64 65 6e 74 69 66 69 65 72 22 29 29 29 29 29    0a 20 20 20 20 20 20 20 28 63 6f 6e 73 20 74 79  | identifier")))))........(cons.ty | 
| 7760 |  70 65 20 28 6e 72 65 76 65 72 73 65 20 72 65 73    75 6c 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75  | pe.(nreverse.result))))))..(defu | 
| 7780 |  6e 20 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63    73 73 2d 66 75 6e 63 74 69 6f 6e 61 6c 2d 70 73  | n.esxml--parse-css-functional-ps | 
| 77a0 |  65 75 64 6f 20 28 29 0a 20 20 28 65 73 78 6d 6c    2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68 6f  | eudo.()...(esxml--with-parse-sho | 
| 77c0 |  72 74 68 61 6e 64 73 0a 20 20 20 28 6c 65 74 20    28 28 66 75 6e 63 74 69 6f 6e 20 28 61 63 63 65  | rthands....(let.((function.(acce | 
| 77e0 |  70 74 20 27 66 75 6e 63 74 69 6f 6e 29 29 0a 20    20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 0a  | pt.'function))..........result). | 
| 7800 |  20 20 20 20 20 28 77 68 65 6e 20 66 75 6e 63 74    69 6f 6e 0a 20 20 20 20 20 20 20 28 70 75 73 68  | .....(when.function........(push | 
| 7820 |  20 28 73 75 62 73 74 72 69 6e 67 20 66 75 6e 63    74 69 6f 6e 20 30 20 2d 31 29 20 72 65 73 75 6c  | .(substring.function.0.-1).resul | 
| 7840 |  74 29 0a 20 20 20 20 20 20 20 28 65 61 74 2d 77    68 69 74 65 73 70 61 63 65 29 0a 20 20 20 20 20  | t)........(eat-whitespace)...... | 
| 7860 |  20 20 28 6c 65 74 20 28 28 65 78 70 72 65 73 73    69 6f 6e 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73  | ..(let.((expression.(esxml--pars | 
| 7880 |  65 2d 63 73 73 2d 65 78 70 72 65 73 73 69 6f 6e    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-css-expression)).............. | 
| 78a0 |  64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 28    65 61 74 2d 77 68 69 74 65 73 70 61 63 65 29 0a  | done)..........(eat-whitespace). | 
| 78c0 |  20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28    6e 6f 74 20 65 78 70 72 65 73 73 69 6f 6e 29 0a  | .........(when.(not.expression). | 
| 78e0 |  20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f    72 20 22 45 78 70 65 63 74 65 64 20 61 74 20 6c  | ...........(error."Expected.at.l | 
| 7900 |  65 61 73 74 20 6f 6e 65 20 65 78 70 72 65 73 73    69 6f 6e 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e  | east.one.expression.for.function | 
| 7920 |  22 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 75    73 68 20 65 78 70 72 65 73 73 69 6f 6e 20 72 65  | "))..........(push.expression.re | 
| 7940 |  73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 28    77 68 69 6c 65 20 28 6e 6f 74 20 64 6f 6e 65 29  | sult)..........(while.(not.done) | 
| 7960 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74    71 20 65 78 70 72 65 73 73 69 6f 6e 20 28 65 73  | ............(setq.expression.(es | 
| 7980 |  78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 65    78 70 72 65 73 73 69 6f 6e 29 29 0a 20 20 20 20  | xml--parse-css-expression))..... | 
| 79a0 |  20 20 20 20 20 20 20 28 69 66 20 65 78 70 72 65    73 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20  | .......(if.expression........... | 
| 79c0 |  20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75  | .....(progn..................(pu | 
| 79e0 |  73 68 20 65 78 70 72 65 73 73 69 6f 6e 20 72 65    73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20  | sh.expression.result)........... | 
| 7a00 |  20 20 20 20 20 20 20 28 65 61 74 2d 77 68 69 74    65 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20  | .......(eat-whitespace))........ | 
| 7a20 |  20 20 20 20 20 20 28 73 65 74 71 20 64 6f 6e 65    20 74 29 29 29 29 0a 20 20 20 20 20 20 20 28 77  | ......(setq.done.t))))........(w | 
| 7a40 |  68 65 6e 20 28 6e 6f 74 20 28 61 63 63 65 70 74    20 27 72 70 61 72 65 6e 29 29 0a 20 20 20 20 20  | hen.(not.(accept.'rparen))...... | 
| 7a60 |  20 20 20 20 28 65 72 72 6f 72 20 22 55 6e 74 65    72 6d 69 6e 61 74 65 64 20 66 75 6e 63 74 69 6f  | ....(error."Unterminated.functio | 
| 7a80 |  6e 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 22    29 29 0a 20 20 20 20 20 20 20 28 6e 72 65 76 65  | n.argument.list"))........(nreve | 
| 7aa0 |  72 73 65 20 72 65 73 75 6c 74 29 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70  | rse.result)))))..(defun.esxml--p | 
| 7ac0 |  61 72 73 65 2d 63 73 73 2d 65 78 70 72 65 73 73    69 6f 6e 20 28 29 0a 20 20 28 65 73 78 6d 6c 2d  | arse-css-expression.()...(esxml- | 
| 7ae0 |  2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68 6f 72    74 68 61 6e 64 73 0a 20 20 20 28 6c 65 74 20 28  | -with-parse-shorthands....(let.( | 
| 7b00 |  28 74 6f 6b 65 6e 20 28 70 65 65 6b 29 29 29 0a    20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20  | (token.(peek)))......(cond...... | 
| 7b20 |  20 28 28 61 63 63 65 70 74 20 27 70 6c 75 73 29    0a 20 20 20 20 20 20 20 27 28 6f 70 65 72 61 74  | .((accept.'plus)........'(operat | 
| 7b40 |  6f 72 20 2e 20 2b 29 29 0a 20 20 20 20 20 20 28    28 61 63 63 65 70 74 20 27 6d 69 6e 75 73 29 0a  | or...+)).......((accept.'minus). | 
| 7b60 |  20 20 20 20 20 20 20 27 28 6f 70 65 72 61 74 6f    72 20 2e 20 2d 29 29 0a 20 20 20 20 20 20 28 28  | .......'(operator...-)).......(( | 
| 7b80 |  65 71 20 28 63 61 72 20 74 6f 6b 65 6e 29 20 27    64 69 6d 65 6e 73 69 6f 6e 29 0a 20 20 20 20 20  | eq.(car.token).'dimension)...... | 
| 7ba0 |  20 20 28 6e 65 78 74 29 0a 20 20 20 20 20 20 20    28 63 6f 6e 73 20 27 64 69 6d 65 6e 73 69 6f 6e  | ..(next)........(cons.'dimension | 
| 7bc0 |  20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63    73 73 2d 69 64 65 6e 74 69 66 69 65 72 20 28 63  | .(esxml--parse-css-identifier.(c | 
| 7be0 |  64 72 20 74 6f 6b 65 6e 29 29 29 29 0a 20 20 20    20 20 20 28 28 65 71 20 28 63 61 72 20 74 6f 6b  | dr.token)))).......((eq.(car.tok | 
| 7c00 |  65 6e 29 20 27 6e 75 6d 62 65 72 29 0a 20 20 20    20 20 20 20 28 6e 65 78 74 29 0a 20 20 20 20 20  | en).'number)........(next)...... | 
| 7c20 |  20 20 28 63 6f 6e 73 20 27 6e 75 6d 62 65 72 20    28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65  | ..(cons.'number.(string-to-numbe | 
| 7c40 |  72 20 28 63 64 72 20 74 6f 6b 65 6e 29 29 29 29    0a 20 20 20 20 20 20 28 28 65 71 20 28 63 61 72  | r.(cdr.token)))).......((eq.(car | 
| 7c60 |  20 74 6f 6b 65 6e 29 20 27 73 74 72 69 6e 67 29    0a 20 20 20 20 20 20 20 28 6e 65 78 74 29 0a 20  | .token).'string)........(next).. | 
| 7c80 |  20 20 20 20 20 20 28 63 6f 6e 73 20 27 73 74 72    69 6e 67 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73  | ......(cons.'string.(esxml--pars | 
| 7ca0 |  65 2d 63 73 73 2d 73 74 72 69 6e 67 2d 6c 69 74    65 72 61 6c 20 28 63 64 72 20 74 6f 6b 65 6e 29  | e-css-string-literal.(cdr.token) | 
| 7cc0 |  29 29 29 0a 20 20 20 20 20 20 28 28 65 71 20 28    63 61 72 20 74 6f 6b 65 6e 29 20 27 69 64 65 6e  | ))).......((eq.(car.token).'iden | 
| 7ce0 |  74 29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 29    0a 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 69  | t)........(next)........(cons.'i | 
| 7d00 |  64 65 6e 74 20 28 65 73 78 6d 6c 2d 2d 70 61 72    73 65 2d 63 73 73 2d 69 64 65 6e 74 69 66 69 65  | dent.(esxml--parse-css-identifie | 
| 7d20 |  72 20 28 63 64 72 20 74 6f 6b 65 6e 29 29 29 29    0a 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29  | r.(cdr.token)))).......(t.nil))) | 
| 7d40 |  29 29 0a 0a 0c 0a 3b 3b 3b 20 74 72 65 65 20 74    72 61 76 65 72 73 61 6c 0a 0a 3b 3b 20 54 4f 44  | ))....;;;.tree.traversal..;;.TOD | 
| 7d60 |  4f 3a 20 74 68 65 73 65 20 68 65 6c 70 65 72 73    20 73 68 6f 75 6c 64 20 62 65 20 70 61 72 74 20  | O:.these.helpers.should.be.part. | 
| 7d80 |  6f 66 20 65 73 78 6d 6c 2e 65 6c 0a 28 64 65 66    75 6e 20 65 73 78 6d 6c 2d 62 72 61 6e 63 68 2d  | of.esxml.el.(defun.esxml-branch- | 
| 7da0 |  70 20 28 6e 6f 64 65 29 0a 20 20 22 4e 6f 6e 2d    6e 69 6c 20 69 66 20 4e 4f 44 45 20 72 65 66 65  | p.(node)..."Non-nil.if.NODE.refe | 
| 7dc0 |  72 73 20 74 6f 20 61 6e 20 65 73 78 6d 6c 20 62    72 61 6e 63 68 2e 22 0a 20 20 28 61 6e 64 20 28  | rs.to.an.esxml.branch."...(and.( | 
| 7de0 |  6c 69 73 74 70 20 6e 6f 64 65 29 0a 20 20 20 20    20 20 20 28 3e 3d 20 28 6c 65 6e 67 74 68 20 6e  | listp.node)........(>=.(length.n | 
| 7e00 |  6f 64 65 29 20 32 29 0a 20 20 20 20 20 20 20 28    73 79 6d 62 6f 6c 70 20 28 63 61 72 20 6e 6f 64  | ode).2)........(symbolp.(car.nod | 
| 7e20 |  65 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74    70 20 28 63 61 64 72 20 6e 6f 64 65 29 29 29 29  | e))........(listp.(cadr.node)))) | 
| 7e40 |  0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 6e    6f 64 65 2d 74 61 67 20 28 6e 6f 64 65 29 0a 20  | ..(defun.esxml-node-tag.(node).. | 
| 7e60 |  20 22 52 65 74 75 72 6e 73 20 74 68 65 20 74 61    67 20 6f 66 20 4e 4f 44 45 20 69 66 20 61 76 61  | ."Returns.the.tag.of.NODE.if.ava | 
| 7e80 |  69 6c 61 62 6c 65 2e 22 0a 20 20 28 61 6e 64 20    28 65 73 78 6d 6c 2d 62 72 61 6e 63 68 2d 70 20  | ilable."...(and.(esxml-branch-p. | 
| 7ea0 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 28 63 61    72 20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75  | node)........(car.node)))..(defu | 
| 7ec0 |  6e 20 65 73 78 6d 6c 2d 6e 6f 64 65 2d 61 74 74    72 69 62 75 74 65 73 20 28 6e 6f 64 65 29 0a 20  | n.esxml-node-attributes.(node).. | 
| 7ee0 |  20 22 52 65 74 75 72 6e 73 20 74 68 65 20 61 74    74 72 69 62 75 74 65 73 20 6f 66 20 4e 4f 44 45  | ."Returns.the.attributes.of.NODE | 
| 7f00 |  20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 22 0a    20 20 28 61 6e 64 20 28 65 73 78 6d 6c 2d 62 72  | .if.available."...(and.(esxml-br | 
| 7f20 |  61 6e 63 68 2d 70 20 6e 6f 64 65 29 0a 20 20 20    20 20 20 20 28 63 61 64 72 20 6e 6f 64 65 29 29  | anch-p.node)........(cadr.node)) | 
| 7f40 |  29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d    6e 6f 64 65 2d 61 74 74 72 69 62 75 74 65 20 28  | )..(defun.esxml-node-attribute.( | 
| 7f60 |  61 74 74 72 69 62 75 74 65 20 6e 6f 64 65 29 0a    20 20 22 52 65 74 75 72 6e 73 20 74 68 65 20 61  | attribute.node)..."Returns.the.a | 
| 7f80 |  74 74 72 69 62 75 74 65 20 41 54 54 52 49 42 55    54 45 20 6f 66 20 4e 4f 44 45 20 69 66 20 61 76  | ttribute.ATTRIBUTE.of.NODE.if.av | 
| 7fa0 |  61 69 6c 61 62 6c 65 2e 22 0a 20 20 28 61 6e 64    20 28 65 73 78 6d 6c 2d 62 72 61 6e 63 68 2d 70  | ailable."...(and.(esxml-branch-p | 
| 7fc0 |  20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 28 63    64 72 20 28 61 73 73 71 20 61 74 74 72 69 62 75  | .node)........(cdr.(assq.attribu | 
| 7fe0 |  74 65 20 28 63 61 64 72 20 6e 6f 64 65 29 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c  | te.(cadr.node)))))..(defun.esxml | 
| 8000 |  2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 28    6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 73  | -node-children.(node)..."Returns | 
| 8020 |  20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6f 66    20 4e 4f 44 45 20 69 66 20 61 76 61 69 6c 61 62  | .the.children.of.NODE.if.availab | 
| 8040 |  6c 65 2e 22 0a 20 20 28 61 6e 64 20 28 65 73 78    6d 6c 2d 62 72 61 6e 63 68 2d 70 20 6e 6f 64 65  | le."...(and.(esxml-branch-p.node | 
| 8060 |  29 0a 20 20 20 20 20 20 20 28 6e 74 68 63 64 72    20 32 20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66  | )........(nthcdr.2.node)))..(def | 
| 8080 |  75 6e 20 65 73 78 6d 6c 2d 66 69 6e 64 2d 6e 6f    64 65 20 28 70 72 65 64 20 72 6f 6f 74 29 0a 20  | un.esxml-find-node.(pred.root).. | 
| 80a0 |  20 22 4c 6f 63 61 74 65 73 20 61 20 6e 6f 64 65    20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44  | ."Locates.a.node.satisfying.PRED | 
| 80c0 |  20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 52    4f 4f 54 2e 0a 52 65 74 75 72 6e 73 20 74 68 65  | .starting.from.ROOT..Returns.the | 
| 80e0 |  20 6e 6f 64 65 20 6f 72 20 6e 69 6c 20 69 66 20    6e 6f 6e 65 20 66 6f 75 6e 64 2e 22 0a 20 20 28  | .node.or.nil.if.none.found."...( | 
| 8100 |  69 66 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64    20 72 6f 6f 74 29 0a 20 20 20 20 20 20 72 6f 6f  | if.(funcall.pred.root).......roo | 
| 8120 |  74 0a 20 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28    6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 20 28 65  | t.....(cl-some.(lambda.(node).(e | 
| 8140 |  73 78 6d 6c 2d 66 69 6e 64 2d 6e 6f 64 65 20 70    72 65 64 20 6e 6f 64 65 29 29 0a 20 20 20 20 20  | sxml-find-node.pred.node))...... | 
| 8160 |  20 20 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 6e    6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 72 6f 6f  | ........(esxml-node-children.roo | 
| 8180 |  74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73    78 6d 6c 2d 76 69 73 69 74 2d 6e 6f 64 65 73 20  | t))))..(defun.esxml-visit-nodes. | 
| 81a0 |  28 66 75 6e 63 74 69 6f 6e 20 72 6f 6f 74 29 0a    20 20 22 56 69 73 69 74 20 6e 6f 64 65 73 20 62  | (function.root)..."Visit.nodes.b | 
| 81c0 |  79 20 63 61 6c 6c 69 6e 67 20 46 55 4e 43 54 49    4f 4e 20 6f 6e 20 65 61 63 68 20 73 74 61 72 74  | y.calling.FUNCTION.on.each.start | 
| 81e0 |  69 6e 67 20 66 72 6f 6d 20 52 4f 4f 54 2e 22 0a    20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 74  | ing.from.ROOT."...(funcall.funct | 
| 8200 |  69 6f 6e 20 72 6f 6f 74 29 0a 20 20 28 6d 61 70    63 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29  | ion.root)...(mapc.(lambda.(node) | 
| 8220 |  20 28 65 73 78 6d 6c 2d 76 69 73 69 74 2d 6e 6f    64 65 73 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64  | .(esxml-visit-nodes.function.nod | 
| 8240 |  65 29 29 0a 20 20 20 20 20 20 20 20 28 65 73 78    6d 6c 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e  | e)).........(esxml-node-children | 
| 8260 |  20 72 6f 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e    20 65 73 78 6d 6c 2d 66 69 6e 64 2d 6e 6f 64 65  | .root)))..(defun.esxml-find-node | 
| 8280 |  73 20 28 70 72 65 64 20 72 6f 6f 74 29 0a 20 20    22 4c 6f 63 61 74 65 73 20 61 6c 6c 20 6e 6f 64  | s.(pred.root)..."Locates.all.nod | 
| 82a0 |  65 73 20 73 61 74 69 73 66 79 69 6e 67 20 50 52    45 44 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d  | es.satisfying.PRED.starting.from | 
| 82c0 |  20 52 4f 4f 54 2e 0a 52 65 74 75 72 6e 73 20 61    20 6c 69 73 74 20 6f 66 20 74 68 65 20 6e 6f 64  | .ROOT..Returns.a.list.of.the.nod | 
| 82e0 |  65 73 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 6e    65 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6c 65 74  | es.or.nil.if.none.found."...(let | 
| 8300 |  20 28 28 61 63 63 20 27 28 29 29 29 0a 20 20 20    20 28 65 73 78 6d 6c 2d 76 69 73 69 74 2d 6e 6f  | .((acc.'())).....(esxml-visit-no | 
| 8320 |  64 65 73 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 20 28  | des......(lambda.(node)........( | 
| 8340 |  77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72    65 64 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | when.(funcall.pred.node)........ | 
| 8360 |  20 20 28 70 75 73 68 20 6e 6f 64 65 20 61 63 63    29 29 29 0a 20 20 20 20 20 72 6f 6f 74 29 0a 20  | ..(push.node.acc)))......root).. | 
| 8380 |  20 20 20 28 6e 72 65 76 65 72 73 65 20 61 63 63    29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d  | ...(nreverse.acc)))..(defun.esxm | 
| 83a0 |  6c 2d 66 69 6e 64 2d 64 65 73 63 65 6e 64 61 6e    74 20 28 70 72 65 64 20 72 6f 6f 74 29 0a 20 20  | l-find-descendant.(pred.root)... | 
| 83c0 |  22 4c 6f 63 61 74 65 73 20 61 20 6e 6f 64 65 20    73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 20  | "Locates.a.node.satisfying.PRED. | 
| 83e0 |  73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 52 4f    4f 54 27 73 20 63 68 69 6c 64 72 65 6e 2e 0a 52  | starting.from.ROOT's.children..R | 
| 8400 |  65 74 75 72 6e 73 20 74 68 65 20 6e 6f 64 65 20    6f 72 20 6e 69 6c 20 69 66 20 6e 6f 6e 65 20 66  | eturns.the.node.or.nil.if.none.f | 
| 8420 |  6f 75 6e 64 2e 22 0a 20 20 28 63 6c 2d 73 6f 6d    65 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29  | ound."...(cl-some.(lambda.(node) | 
| 8440 |  20 28 65 73 78 6d 6c 2d 66 69 6e 64 2d 6e 6f 64    65 20 70 72 65 64 20 6e 6f 64 65 29 29 0a 20 20  | .(esxml-find-node.pred.node))... | 
| 8460 |  20 20 20 20 20 20 20 20 20 28 65 73 78 6d 6c 2d    6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 72 6f  | .........(esxml-node-children.ro | 
| 8480 |  6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73    78 6d 6c 2d 66 69 6e 64 2d 64 65 73 63 65 6e 64  | ot)))..(defun.esxml-find-descend | 
| 84a0 |  61 6e 74 73 20 28 70 72 65 64 20 72 6f 6f 74 29    0a 20 20 22 4c 6f 63 61 74 65 73 20 61 6c 6c 20  | ants.(pred.root)..."Locates.all. | 
| 84c0 |  6e 6f 64 65 73 20 73 61 74 69 73 66 79 69 6e 67    20 50 52 45 44 20 73 74 61 72 74 69 6e 67 20 66  | nodes.satisfying.PRED.starting.f | 
| 84e0 |  72 6f 6d 20 52 4f 4f 54 27 73 20 63 68 69 6c 64    72 65 6e 2e 0a 52 65 74 75 72 6e 73 20 61 20 6c  | rom.ROOT's.children..Returns.a.l | 
| 8500 |  69 73 74 20 6f 66 20 74 68 65 20 6e 6f 64 65 73    20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 6e 65 20  | ist.of.the.nodes.or.nil.if.none. | 
| 8520 |  66 6f 75 6e 64 2e 22 0a 20 20 28 63 6c 2d 6d 61    70 63 61 6e 20 28 6c 61 6d 62 64 61 20 28 6e 6f  | found."...(cl-mapcan.(lambda.(no | 
| 8540 |  64 65 29 20 28 65 73 78 6d 6c 2d 66 69 6e 64 2d    6e 6f 64 65 73 20 70 72 65 64 20 6e 6f 64 65 29  | de).(esxml-find-nodes.pred.node) | 
| 8560 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28    65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69 6c 64  | )..............(esxml-node-child | 
| 8580 |  72 65 6e 20 72 6f 6f 74 29 29 29 0a 0a 28 64 65    66 75 6e 20 65 73 78 6d 6c 2d 66 69 6e 64 2d 63  | ren.root)))..(defun.esxml-find-c | 
| 85a0 |  68 69 6c 64 20 28 70 72 65 64 20 72 6f 6f 74 29    0a 20 20 22 4c 6f 63 61 74 65 73 20 61 20 6e 6f  | hild.(pred.root)..."Locates.a.no | 
| 85c0 |  64 65 20 73 61 74 69 73 66 79 69 6e 67 20 50 52    45 44 20 61 6d 6f 6e 67 20 52 4f 4f 54 27 73 20  | de.satisfying.PRED.among.ROOT's. | 
| 85e0 |  63 68 69 6c 64 72 65 6e 2e 0a 52 65 74 75 72 6e    73 20 74 68 65 20 6e 6f 64 65 20 6f 72 20 6e 69  | children..Returns.the.node.or.ni | 
| 8600 |  6c 20 69 66 20 6e 6f 6e 65 20 66 6f 75 6e 64 2e    22 0a 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61  | l.if.none.found."...(cl-some.(la | 
| 8620 |  6d 62 64 61 20 28 6e 6f 64 65 29 20 28 77 68 65    6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20  | mbda.(node).(when.(funcall.pred. | 
| 8640 |  6e 6f 64 65 29 20 6e 6f 64 65 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 6e  | node).node))............(esxml-n | 
| 8660 |  6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 72 6f 6f    74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78  | ode-children.root)))..(defun.esx | 
| 8680 |  6d 6c 2d 66 69 6e 64 2d 63 68 69 6c 64 72 65 6e    20 28 70 72 65 64 20 72 6f 6f 74 29 0a 20 20 22  | ml-find-children.(pred.root)..." | 
| 86a0 |  4c 6f 63 61 74 65 73 20 61 6c 6c 20 6e 6f 64 65    73 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45  | Locates.all.nodes.satisfying.PRE | 
| 86c0 |  44 20 61 6d 6f 6e 67 20 52 4f 4f 54 27 73 20 63    68 69 6c 64 72 65 6e 2e 0a 52 65 74 75 72 6e 73  | D.among.ROOT's.children..Returns | 
| 86e0 |  20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 6e    6f 64 65 73 20 6f 72 20 6e 69 6c 20 69 66 20 6e  | .a.list.of.the.nodes.or.nil.if.n | 
| 8700 |  6f 6e 65 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6d    61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6e  | one.found."...(mapcar.(lambda.(n | 
| 8720 |  6f 64 65 29 20 28 77 68 65 6e 20 28 66 75 6e 63    61 6c 6c 20 70 72 65 64 20 6e 6f 64 65 29 20 6e  | ode).(when.(funcall.pred.node).n | 
| 8740 |  6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69 6c  | ode))...........(esxml-node-chil | 
| 8760 |  64 72 65 6e 20 72 6f 6f 74 29 29 29 0a 0a 28 64    65 66 75 6e 20 65 73 78 6d 6c 2d 2d 6e 6f 64 65  | dren.root)))..(defun.esxml--node | 
| 8780 |  2d 77 69 74 68 2d 63 68 69 6c 64 72 65 6e 20 28    6e 6f 64 65 20 63 68 69 6c 64 72 65 6e 29 0a 20  | -with-children.(node.children).. | 
| 87a0 |  20 28 6c 65 74 20 28 28 74 61 67 20 28 65 73 78    6d 6c 2d 6e 6f 64 65 2d 74 61 67 20 6e 6f 64 65  | .(let.((tag.(esxml-node-tag.node | 
| 87c0 |  29 29 0a 20 20 20 20 20 20 20 20 28 61 74 74 72    69 62 75 74 65 73 20 28 65 73 78 6d 6c 2d 6e 6f  | )).........(attributes.(esxml-no | 
| 87e0 |  64 65 2d 61 74 74 72 69 62 75 74 65 73 20 6e 6f    64 65 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e  | de-attributes.node))).....(appen | 
| 8800 |  64 20 28 6c 69 73 74 20 74 61 67 20 61 74 74 72    69 62 75 74 65 73 29 20 63 68 69 6c 64 72 65 6e  | d.(list.tag.attributes).children | 
| 8820 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d    6c 2d 2d 6e 6f 64 65 2d 77 69 74 68 2d 61 74 74  | )))..(defun.esxml--node-with-att | 
| 8840 |  72 69 62 75 74 65 73 20 28 6e 6f 64 65 20 61 74    74 72 69 62 75 74 65 73 29 0a 20 20 28 6c 65 74  | ributes.(node.attributes)...(let | 
| 8860 |  20 28 28 74 61 67 20 28 65 73 78 6d 6c 2d 6e 6f    64 65 2d 74 61 67 20 6e 6f 64 65 29 29 0a 20 20  | .((tag.(esxml-node-tag.node))... | 
| 8880 |  20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20    28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69 6c  | ......(children.(esxml-node-chil | 
| 88a0 |  64 72 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20    20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 74  | dren.node))).....(append.(list.t | 
| 88c0 |  61 67 20 61 74 74 72 69 62 75 74 65 73 29 20 63    68 69 6c 64 72 65 6e 29 29 29 0a 0a 28 64 65 66  | ag.attributes).children)))..(def | 
| 88e0 |  75 6e 20 65 73 78 6d 6c 2d 74 72 65 65 2d 6d 61    70 20 28 66 75 6e 63 74 69 6f 6e 20 72 6f 6f 74  | un.esxml-tree-map.(function.root | 
| 8900 |  29 0a 20 20 22 52 65 74 75 72 6e 73 20 61 20 63    6f 70 79 20 6f 66 20 52 4f 4f 54 20 77 69 74 68  | )..."Returns.a.copy.of.ROOT.with | 
| 8920 |  20 46 55 4e 43 54 49 4f 4e 20 61 70 70 6c 69 65    64 20 74 6f 20 65 61 63 68 20 6e 6f 64 65 2e 22  | .FUNCTION.applied.to.each.node." | 
| 8940 |  0a 20 20 28 69 66 20 28 65 73 78 6d 6c 2d 62 72    61 6e 63 68 2d 70 20 72 6f 6f 74 29 0a 20 20 20  | ...(if.(esxml-branch-p.root).... | 
| 8960 |  20 20 20 28 65 73 78 6d 6c 2d 2d 6e 6f 64 65 2d    77 69 74 68 2d 63 68 69 6c 64 72 65 6e 0a 20 20  | ...(esxml--node-with-children... | 
| 8980 |  20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 75    6e 63 74 69 6f 6e 20 72 6f 6f 74 29 0a 20 20 20  | .....(funcall.function.root).... | 
| 89a0 |  20 20 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 65 73 78 6d  | ....(mapcar.(lambda.(node).(esxm | 
| 89c0 |  6c 2d 74 72 65 65 2d 6d 61 70 20 66 75 6e 63 74    69 6f 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20  | l-tree-map.function.node))...... | 
| 89e0 |  20 20 20 20 20 20 20 20 20 20 28 65 73 78 6d 6c    2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 72  | ..........(esxml-node-children.r | 
| 8a00 |  6f 6f 74 29 29 29 0a 20 20 20 20 28 66 75 6e 63    61 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 72 6f 6f  | oot))).....(funcall.function.roo | 
| 8a20 |  74 29 29 29 0a 0a 28 64 65 66 76 61 72 20 65 73    78 6d 6c 2d 2d 73 79 6d 62 6f 6c 20 28 6d 61 6b  | t)))..(defvar.esxml--symbol.(mak | 
| 8a40 |  65 2d 73 79 6d 62 6f 6c 20 22 69 64 22 29 29 0a    0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 64  | e-symbol."id"))..(defun.esxml--d | 
| 8a60 |  65 63 6f 72 61 74 65 2d 74 72 65 65 20 28 72 6f    6f 74 29 0a 20 20 28 6c 65 74 20 28 28 69 20 30  | ecorate-tree.(root)...(let.((i.0 | 
| 8a80 |  29 29 0a 20 20 20 20 28 65 73 78 6d 6c 2d 74 72    65 65 2d 6d 61 70 0a 20 20 20 20 20 28 6c 61 6d  | )).....(esxml-tree-map......(lam | 
| 8aa0 |  62 64 61 20 28 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 28 6c 65 74 20 28 28 61 74 74 72 69 62 75  | bda.(node)........(let.((attribu | 
| 8ac0 |  74 65 20 28 63 6f 6e 73 20 65 73 78 6d 6c 2d 2d    73 79 6d 62 6f 6c 20 69 29 29 0a 20 20 20 20 20  | te.(cons.esxml--symbol.i))...... | 
| 8ae0 |  20 20 20 20 20 20 20 20 28 61 74 74 72 69 62 75    74 65 73 20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d  | ........(attributes.(esxml-node- | 
| 8b00 |  61 74 74 72 69 62 75 74 65 73 20 6e 6f 64 65 29    29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74  | attributes.node)))..........(set | 
| 8b20 |  71 20 61 74 74 72 69 62 75 74 65 73 20 28 61 70    70 65 6e 64 20 28 6c 69 73 74 20 61 74 74 72 69  | q.attributes.(append.(list.attri | 
| 8b40 |  62 75 74 65 29 20 61 74 74 72 69 62 75 74 65 73    29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74  | bute).attributes))..........(set | 
| 8b60 |  71 20 69 20 28 31 2b 20 69 29 29 0a 20 20 20 20    20 20 20 20 20 28 69 66 20 28 65 73 78 6d 6c 2d  | q.i.(1+.i))..........(if.(esxml- | 
| 8b80 |  62 72 61 6e 63 68 2d 70 20 6e 6f 64 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 28 65 73 78  | branch-p.node)..............(esx | 
| 8ba0 |  6d 6c 2d 2d 6e 6f 64 65 2d 77 69 74 68 2d 61 74    74 72 69 62 75 74 65 73 20 6e 6f 64 65 20 61 74  | ml--node-with-attributes.node.at | 
| 8bc0 |  74 72 69 62 75 74 65 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 6e 6f 64 65 29 29 29 0a 20 20 20  | tributes)............node))).... | 
| 8be0 |  20 20 72 6f 6f 74 29 29 29 0a 0a 28 64 65 66 75    6e 20 65 73 78 6d 6c 2d 2d 75 6e 64 65 63 6f 72  | ..root)))..(defun.esxml--undecor | 
| 8c00 |  61 74 65 2d 6e 6f 64 65 20 28 6e 6f 64 65 29 0a    20 20 28 69 66 20 28 65 73 78 6d 6c 2d 62 72 61  | ate-node.(node)...(if.(esxml-bra | 
| 8c20 |  6e 63 68 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20    20 20 28 6c 65 74 20 28 28 61 74 74 72 69 62 75  | nch-p.node).......(let.((attribu | 
| 8c40 |  74 65 73 20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d    61 74 74 72 69 62 75 74 65 73 20 6e 6f 64 65 29  | tes.(esxml-node-attributes.node) | 
| 8c60 |  29 29 0a 20 20 20 20 20 20 20 20 28 65 73 78 6d    6c 2d 2d 6e 6f 64 65 2d 77 69 74 68 2d 61 74 74  | )).........(esxml--node-with-att | 
| 8c80 |  72 69 62 75 74 65 73 20 6e 6f 64 65 20 28 61 73    73 71 2d 64 65 6c 65 74 65 2d 61 6c 6c 20 65 73  | ributes.node.(assq-delete-all.es | 
| 8ca0 |  78 6d 6c 2d 2d 73 79 6d 62 6f 6c 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | xml--symbol..................... | 
| 8cc0 |  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  | ................................ | 
| 8ce0 |  20 20 20 20 20 20 20 61 74 74 72 69 62 75 74 65    73 29 29 29 0a 20 20 20 20 6e 6f 64 65 29 29 0a  | .......attributes))).....node)). | 
| 8d00 |  0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 72    65 74 72 69 65 76 65 2d 64 65 63 6f 72 61 74 69  | .(defun.esxml--retrieve-decorati | 
| 8d20 |  6f 6e 20 28 6e 6f 64 65 29 0a 20 20 28 65 73 78    6d 6c 2d 6e 6f 64 65 2d 61 74 74 72 69 62 75 74  | on.(node)...(esxml-node-attribut | 
| 8d40 |  65 20 65 73 78 6d 6c 2d 2d 73 79 6d 62 6f 6c 20    6e 6f 64 65 29 29 0a 0a 0c 0a 3b 3b 3b 20 71 75  | e.esxml--symbol.node))....;;;.qu | 
| 8d60 |  65 72 79 69 6e 67 0a 0a 3b 3b 20 4e 4f 54 45 3a    20 73 75 70 70 6f 72 74 69 6e 67 20 73 74 72 75  | erying..;;.NOTE:.supporting.stru | 
| 8d80 |  63 74 75 72 61 6c 20 70 73 65 75 64 6f 20 66 75    6e 63 74 69 6f 6e 73 2c 20 64 69 72 65 63 74 20  | ctural.pseudo.functions,.direct. | 
| 8da0 |  73 69 62 6c 69 6e 67 73 20 61 6e 64 0a 3b 3b 20    69 6e 64 69 72 65 63 74 20 73 69 62 6c 69 6e 67  | siblings.and.;;.indirect.sibling | 
| 8dc0 |  73 20 72 65 71 75 69 72 65 73 20 62 72 65 61 64    74 68 20 69 6e 73 74 65 61 64 20 6f 66 20 64 65  | s.requires.breadth.instead.of.de | 
| 8de0 |  70 74 68 20 74 72 61 76 65 72 73 61 6c 2c 0a 3b    3b 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74  | pth.traversal,.;;.something.that | 
| 8e00 |  20 63 6f 75 6c 64 20 62 65 20 65 6d 75 6c 61 74    65 64 20 77 69 74 68 6f 75 74 20 7a 69 70 70 65  | .could.be.emulated.without.zippe | 
| 8e20 |  72 73 20 69 66 20 79 6f 75 20 68 61 64 20 74 68    65 0a 3b 3b 20 70 61 72 65 6e 74 20 6f 66 20 74  | rs.if.you.had.the.;;.parent.of.t | 
| 8e40 |  68 65 20 6e 6f 64 65 20 28 61 6e 64 20 74 68 65    20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65  | he.node.(and.the.position.of.the | 
| 8e60 |  20 63 68 69 6c 64 29 2e 2e 2e 0a 0a 28 64 65 66    75 6e 20 65 73 78 6d 6c 2d 2d 6e 6f 64 65 2d 6d  | .child).....(defun.esxml--node-m | 
| 8e80 |  61 74 63 68 65 73 2d 61 74 74 72 69 62 75 74 65    2d 70 20 28 6e 6f 64 65 20 6d 6f 64 69 66 69 65  | atches-attribute-p.(node.modifie | 
| 8ea0 |  72 29 0a 20 20 28 6c 65 74 20 28 28 61 74 74 72    69 62 75 74 65 73 20 28 65 73 78 6d 6c 2d 6e 6f  | r)...(let.((attributes.(esxml-no | 
| 8ec0 |  64 65 2d 61 74 74 72 69 62 75 74 65 73 20 6e 6f    64 65 29 29 0a 20 20 20 20 20 20 20 20 68 61 79  | de-attributes.node)).........hay | 
| 8ee0 |  73 74 61 63 6b 29 0a 20 20 20 20 28 63 6c 2d 65    76 65 72 79 0a 20 20 20 20 20 28 6c 61 6d 62 64  | stack).....(cl-every......(lambd | 
| 8f00 |  61 20 28 69 74 65 6d 29 0a 20 20 20 20 20 20 20    28 6c 65 74 20 28 28 74 79 70 65 20 28 63 61 72  | a.(item)........(let.((type.(car | 
| 8f20 |  20 69 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 28 76 61 6c 75 65 20 28 63 64 72  | .item))..............(value.(cdr | 
| 8f40 |  20 69 74 65 6d 29 29 29 0a 20 20 20 20 20 20 20    20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20  | .item)))..........(cond......... | 
| 8f60 |  20 20 28 28 65 71 20 74 79 70 65 20 27 6e 61 6d    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c  | ..((eq.type.'name)............(l | 
| 8f80 |  65 74 20 28 28 6d 61 74 63 68 20 28 61 73 73 71    20 28 69 6e 74 65 72 6e 20 76 61 6c 75 65 29 20  | et.((match.(assq.(intern.value). | 
| 8fa0 |  61 74 74 72 69 62 75 74 65 73 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | attributes)))..............(setq | 
| 8fc0 |  20 68 61 79 73 74 61 63 6b 20 28 63 64 72 20 6d    61 74 63 68 29 29 0a 20 20 20 20 20 20 20 20 20  | .haystack.(cdr.match)).......... | 
| 8fe0 |  20 20 20 20 6d 61 74 63 68 29 29 0a 20 20 20 20    20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20  | ....match))...........((eq.type. | 
| 9000 |  27 65 78 61 63 74 2d 6d 61 74 63 68 29 0a 20 20    20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20  | 'exact-match)............(equal. | 
| 9020 |  68 61 79 73 74 61 63 6b 20 76 61 6c 75 65 29 29    0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20  | haystack.value))...........((eq. | 
| 9040 |  74 79 70 65 20 27 70 72 65 66 69 78 2d 6d 61 74    63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 28  | type.'prefix-match)............( | 
| 9060 |  73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20    76 61 6c 75 65 20 68 61 79 73 74 61 63 6b 29 29  | string-prefix-p.value.haystack)) | 
| 9080 |  0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20    74 79 70 65 20 27 73 75 66 66 69 78 2d 6d 61 74  | ...........((eq.type.'suffix-mat | 
| 90a0 |  63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 28    73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20  | ch)............(string-suffix-p. | 
| 90c0 |  76 61 6c 75 65 20 68 61 79 73 74 61 63 6b 29 29    0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20  | value.haystack))...........((eq. | 
| 90e0 |  74 79 70 65 20 27 73 75 62 73 74 72 69 6e 67 2d    6d 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20  | type.'substring-match).......... | 
| 9100 |  20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d    70 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20  | ..(string-match-p.(regexp-quote. | 
| 9120 |  76 61 6c 75 65 29 20 68 61 79 73 74 61 63 6b 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71  | value).haystack))...........((eq | 
| 9140 |  20 74 79 70 65 20 27 69 6e 63 6c 75 64 65 2d 6d    61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20  | .type.'include-match)........... | 
| 9160 |  20 28 6d 65 6d 62 65 72 20 76 61 6c 75 65 20 28    73 70 6c 69 74 2d 73 74 72 69 6e 67 20 68 61 79  | .(member.value.(split-string.hay | 
| 9180 |  73 74 61 63 6b 20 22 20 22 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 28 28 65 71 20 74 79 70 65  | stack.".")))...........((eq.type | 
| 91a0 |  20 27 64 61 73 68 2d 6d 61 74 63 68 29 0a 20 20    20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71  | .'dash-match)............(or.(eq | 
| 91c0 |  75 61 6c 20 76 61 6c 75 65 20 68 61 79 73 74 61    63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ual.value.haystack)............. | 
| 91e0 |  20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68    2d 70 20 28 66 6f 72 6d 61 74 20 22 5e 25 73 2d  | ...(string-match-p.(format."^%s- | 
| 9200 |  22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20    76 61 6c 75 65 29 29 20 68 61 79 73 74 61 63 6b  | ".(regexp-quote.value)).haystack | 
| 9220 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74    20 28 65 72 72 6f 72 20 22 55 6e 6b 6e 6f 77 6e  | )))...........(t.(error."Unknown | 
| 9240 |  20 61 74 74 72 69 62 75 74 65 20 6d 6f 64 69 66    69 65 72 22 29 29 29 29 29 0a 20 20 20 20 20 6d  | .attribute.modifier")))))......m | 
| 9260 |  6f 64 69 66 69 65 72 29 29 29 0a 0a 28 64 65 66    75 6e 20 65 73 78 6d 6c 2d 2d 6e 6f 64 65 2d 6d  | odifier)))..(defun.esxml--node-m | 
| 9280 |  61 74 63 68 65 73 2d 6d 6f 64 69 66 69 65 72 2d    70 20 28 6e 6f 64 65 20 74 79 70 65 20 76 61 6c  | atches-modifier-p.(node.type.val | 
| 92a0 |  75 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28    28 65 71 20 74 79 70 65 20 27 77 69 6c 64 63 61  | ue)...(cond....((eq.type.'wildca | 
| 92c0 |  72 64 29 0a 20 20 20 20 74 29 0a 20 20 20 28 28    65 71 20 74 79 70 65 20 27 74 61 67 29 0a 20 20  | rd).....t)....((eq.type.'tag)... | 
| 92e0 |  20 20 28 65 71 75 61 6c 20 28 65 73 78 6d 6c 2d    6e 6f 64 65 2d 74 61 67 20 6e 6f 64 65 29 20 76  | ..(equal.(esxml-node-tag.node).v | 
| 9300 |  61 6c 75 65 29 29 0a 20 20 20 28 28 65 71 20 74    79 70 65 20 27 69 64 29 0a 20 20 20 20 28 65 71  | alue))....((eq.type.'id).....(eq | 
| 9320 |  75 61 6c 20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d    61 74 74 72 69 62 75 74 65 20 27 69 64 20 6e 6f  | ual.(esxml-node-attribute.'id.no | 
| 9340 |  64 65 29 20 76 61 6c 75 65 29 29 0a 20 20 20 28    28 65 71 20 74 79 70 65 20 27 63 6c 61 73 73 29  | de).value))....((eq.type.'class) | 
| 9360 |  0a 20 20 20 20 28 6c 65 74 20 28 28 63 6c 61 73    73 20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 61 74  | .....(let.((class.(esxml-node-at | 
| 9380 |  74 72 69 62 75 74 65 20 27 63 6c 61 73 73 20 6e    6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 61 6e  | tribute.'class.node))).......(an | 
| 93a0 |  64 20 63 6c 61 73 73 20 28 6d 65 6d 62 65 72 20    76 61 6c 75 65 20 28 73 70 6c 69 74 2d 73 74 72  | d.class.(member.value.(split-str | 
| 93c0 |  69 6e 67 20 63 6c 61 73 73 20 22 20 22 29 29 29    29 29 0a 20 20 20 28 28 65 71 20 74 79 70 65 20  | ing.class.".")))))....((eq.type. | 
| 93e0 |  27 61 74 74 72 69 62 75 74 65 29 0a 20 20 20 20    28 65 73 78 6d 6c 2d 2d 6e 6f 64 65 2d 6d 61 74  | 'attribute).....(esxml--node-mat | 
| 9400 |  63 68 65 73 2d 61 74 74 72 69 62 75 74 65 2d 70    20 6e 6f 64 65 20 76 61 6c 75 65 29 29 0a 20 20  | ches-attribute-p.node.value))... | 
| 9420 |  20 3b 3b 20 54 4f 44 4f 3a 20 73 75 70 70 6f 72    74 20 73 74 72 75 63 74 75 72 61 6c 20 70 73 65  | .;;.TODO:.support.structural.pse | 
| 9440 |  75 64 6f 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20    20 3b 3b 20 54 4f 44 4f 3a 20 65 72 72 6f 72 20  | udo.functions....;;.TODO:.error. | 
| 9460 |  6f 75 74 20 6f 6e 20 69 6e 76 61 6c 69 64 20 70    73 65 75 64 6f 2d 63 6c 61 73 73 20 61 72 67 75  | out.on.invalid.pseudo-class.argu | 
| 9480 |  6d 65 6e 74 73 0a 20 20 20 28 74 20 28 65 72 72    6f 72 20 22 55 6e 69 6d 70 6c 65 6d 65 6e 74 65  | ments....(t.(error."Unimplemente | 
| 94a0 |  64 20 61 74 74 72 69 62 75 74 65 20 74 79 70 65    3a 20 25 73 22 20 74 79 70 65 29 29 29 29 0a 0a  | d.attribute.type:.%s".type)))).. | 
| 94c0 |  28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 66 69    6e 64 2d 6e 6f 64 65 2d 66 6f 72 20 28 61 74 74  | (defun.esxml--find-node-for.(att | 
| 94e0 |  72 69 62 75 74 65 73 29 0a 20 20 28 6c 61 6d 62    64 61 20 28 6e 6f 64 65 29 0a 20 20 20 20 28 63  | ributes)...(lambda.(node).....(c | 
| 9500 |  6c 2d 65 76 65 72 79 0a 20 20 20 20 20 28 6c 61    6d 62 64 61 20 28 61 74 74 72 69 62 75 74 65 29  | l-every......(lambda.(attribute) | 
| 9520 |  0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74    79 70 65 20 28 63 61 72 20 61 74 74 72 69 62 75  | ........(let.((type.(car.attribu | 
| 9540 |  74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 76 61 6c 75 65 20 28 63 64 72 20 61 74  | te))..............(value.(cdr.at | 
| 9560 |  74 72 69 62 75 74 65 29 29 29 0a 20 20 20 20 20    20 20 20 20 28 65 73 78 6d 6c 2d 2d 6e 6f 64 65  | tribute)))..........(esxml--node | 
| 9580 |  2d 6d 61 74 63 68 65 73 2d 6d 6f 64 69 66 69 65    72 2d 70 20 6e 6f 64 65 20 74 79 70 65 20 76 61  | -matches-modifier-p.node.type.va | 
| 95a0 |  6c 75 65 29 29 29 0a 20 20 20 20 20 61 74 74 72    69 62 75 74 65 73 29 29 29 0a 0a 28 64 65 66 75  | lue)))......attributes)))..(defu | 
| 95c0 |  6e 20 65 73 78 6d 6c 2d 2d 66 69 6e 64 2d 6e 6f    64 65 73 20 28 72 6f 6f 74 20 63 6f 6d 62 69 6e  | n.esxml--find-nodes.(root.combin | 
| 95e0 |  61 74 6f 72 20 61 74 74 72 69 62 75 74 65 73 29    0a 20 20 28 6c 65 74 2a 20 28 28 74 79 70 65 20  | ator.attributes)...(let*.((type. | 
| 9600 |  28 63 64 72 20 28 61 73 73 71 20 27 63 6f 6d 62    69 6e 61 74 6f 72 20 63 6f 6d 62 69 6e 61 74 6f  | (cdr.(assq.'combinator.combinato | 
| 9620 |  72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 77    61 6c 6b 65 72 20 28 63 6f 6e 64 0a 20 20 20 20  | r)))..........(walker.(cond..... | 
| 9640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e    6f 74 20 74 79 70 65 29 0a 20 20 20 20 20 20 20  | .............((not.type)........ | 
| 9660 |  20 20 20 20 20 20 20 20 20 20 20 27 65 73 78 6d    6c 2d 66 69 6e 64 2d 6e 6f 64 65 73 29 0a 20 20  | ...........'esxml-find-nodes)... | 
| 9680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    28 65 71 20 74 79 70 65 20 27 64 65 73 63 65 6e  | ...............((eq.type.'descen | 
| 96a0 |  64 61 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 27 65 73 78 6d 6c 2d 66  | dant)...................'esxml-f | 
| 96c0 |  69 6e 64 2d 64 65 73 63 65 6e 64 61 6e 74 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ind-descendants)................ | 
| 96e0 |  20 20 28 28 65 71 20 74 79 70 65 20 27 63 68 69    6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..((eq.type.'child)............. | 
| 9700 |  20 20 20 20 20 20 27 65 73 78 6d 6c 2d 66 69 6e    64 2d 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20  | ......'esxml-find-children)..... | 
| 9720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    54 4f 44 4f 3a 20 73 75 70 70 6f 72 74 20 64 69  | .............;;.TODO:.support.di | 
| 9740 |  72 65 63 74 20 73 69 62 6c 69 6e 67 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | rect.sibling..................;; | 
| 9760 |  20 54 4f 44 4f 3a 20 73 75 70 70 6f 72 74 20 69    6e 64 69 72 65 63 74 20 73 69 62 6c 69 6e 67 0a  | .TODO:.support.indirect.sibling. | 
| 9780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 74 20 28 65 72 72 6f 72 20 22 55 6e 69 6d  | .................(t.(error."Unim | 
| 97a0 |  70 6c 65 6d 65 6e 74 65 64 20 63 6f 6d 62 69 6e    61 74 6f 72 20 25 73 22 20 63 6f 6d 62 69 6e 61  | plemented.combinator.%s".combina | 
| 97c0 |  74 6f 72 29 29 29 29 29 0a 20 20 20 20 28 66 75    6e 63 61 6c 6c 20 77 61 6c 6b 65 72 20 28 65 73  | tor))))).....(funcall.walker.(es | 
| 97e0 |  78 6d 6c 2d 2d 66 69 6e 64 2d 6e 6f 64 65 2d 66    6f 72 20 61 74 74 72 69 62 75 74 65 73 29 20 72  | xml--find-node-for.attributes).r | 
| 9800 |  6f 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65    73 78 6d 6c 2d 2d 71 75 65 72 79 20 28 73 65 6c  | oot)))..(defun.esxml--query.(sel | 
| 9820 |  65 63 74 6f 72 20 72 6f 6f 74 29 0a 20 20 28 6c    65 74 2a 20 28 28 61 74 74 72 69 62 75 74 65 73  | ector.root)...(let*.((attributes | 
| 9840 |  20 28 70 6f 70 20 73 65 6c 65 63 74 6f 72 29 29    0a 20 20 20 20 20 20 20 20 20 63 6f 6d 62 69 6e  | .(pop.selector))..........combin | 
| 9860 |  61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 28 72    65 73 75 6c 74 20 28 65 73 78 6d 6c 2d 2d 66 69  | ator..........(result.(esxml--fi | 
| 9880 |  6e 64 2d 6e 6f 64 65 73 20 72 6f 6f 74 20 6e 69    6c 20 61 74 74 72 69 62 75 74 65 73 29 29 29 0a  | nd-nodes.root.nil.attributes))). | 
| 98a0 |  20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20    72 65 73 75 6c 74 20 73 65 6c 65 63 74 6f 72 29  | ....(while.(and.result.selector) | 
| 98c0 |  0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d    62 69 6e 61 74 6f 72 20 28 70 6f 70 20 73 65 6c  | .......(setq.combinator.(pop.sel | 
| 98e0 |  65 63 74 6f 72 29 29 0a 20 20 20 20 20 20 28 73    65 74 71 20 61 74 74 72 69 62 75 74 65 73 20 28  | ector)).......(setq.attributes.( | 
| 9900 |  70 6f 70 20 73 65 6c 65 63 74 6f 72 29 29 0a 20    20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c  | pop.selector)).......(setq.resul | 
| 9920 |  74 20 28 63 6c 2d 6d 61 70 63 61 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t.(cl-mapcan.................... | 
| 9940 |  20 28 6c 61 6d 62 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  | .(lambda.(node)................. | 
| 9960 |  20 20 20 20 20 20 28 65 73 78 6d 6c 2d 2d 66 69    6e 64 2d 6e 6f 64 65 73 20 6e 6f 64 65 20 63 6f  | ......(esxml--find-nodes.node.co | 
| 9980 |  6d 62 69 6e 61 74 6f 72 20 61 74 74 72 69 62 75    74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20  | mbinator.attributes))........... | 
| 99a0 |  20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74    29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 72  | ..........result)).......(setq.r | 
| 99c0 |  65 73 75 6c 74 20 28 64 65 6c 71 20 6e 69 6c 20    72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 72 65  | esult.(delq.nil.result))).....re | 
| 99e0 |  73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 65    73 78 6d 6c 2d 2d 64 65 6c 65 74 65 2d 64 75 70  | sult))..(defun.esxml--delete-dup | 
| 9a00 |  73 20 28 69 74 65 6d 73 20 74 65 73 74 29 0a 20    20 28 6c 65 74 20 28 28 73 65 65 6e 20 28 6d 61  | s.(items.test)...(let.((seen.(ma | 
| 9a20 |  6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74    65 73 74 20 74 65 73 74 29 29 0a 20 20 20 20 20  | ke-hash-table.:test.test))...... | 
| 9a40 |  20 20 20 72 65 73 75 6c 74 29 0a 20 20 20 20 28    77 68 69 6c 65 20 69 74 65 6d 73 0a 20 20 20 20  | ...result).....(while.items..... | 
| 9a60 |  20 20 28 6c 65 74 20 28 28 69 74 65 6d 20 28 70    6f 70 20 69 74 65 6d 73 29 29 29 0a 20 20 20 20  | ..(let.((item.(pop.items)))..... | 
| 9a80 |  20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28    67 65 74 68 61 73 68 20 69 74 65 6d 20 73 65 65  | ....(when.(not.(gethash.item.see | 
| 9aa0 |  6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70    75 73 68 20 69 74 65 6d 20 72 65 73 75 6c 74 29  | n))...........(push.item.result) | 
| 9ac0 |  0a 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68    61 73 68 20 69 74 65 6d 20 74 20 73 65 65 6e 29  | ...........(puthash.item.t.seen) | 
| 9ae0 |  29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73    65 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65  | ))).....(nreverse.result)))..(de | 
| 9b00 |  66 75 6e 20 65 73 78 6d 6c 2d 71 75 65 72 79 2d    61 6c 6c 20 28 73 65 6c 65 63 74 6f 72 20 72 6f  | fun.esxml-query-all.(selector.ro | 
| 9b20 |  6f 74 29 0a 20 20 22 4c 6f 63 61 74 65 73 20 61    6c 6c 20 6e 6f 64 65 73 20 73 61 74 69 73 66 79  | ot)..."Locates.all.nodes.satisfy | 
| 9b40 |  69 6e 67 20 53 45 4c 45 43 54 4f 52 20 73 74 61    72 74 69 6e 67 20 66 72 6f 6d 20 52 4f 4f 54 2e  | ing.SELECTOR.starting.from.ROOT. | 
| 9b60 |  0a 53 45 4c 45 43 54 4f 52 20 6d 75 73 74 20 62    65 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61  | .SELECTOR.must.be.a.string.conta | 
| 9b80 |  69 6e 69 6e 67 20 61 20 43 53 53 20 73 65 6c 65    63 74 6f 72 20 6f 72 20 61 20 70 61 72 73 65 64  | ining.a.CSS.selector.or.a.parsed | 
| 9ba0 |  0a 43 53 53 20 73 65 6c 65 63 74 6f 72 20 72 65    74 75 72 6e 65 64 20 62 79 20 60 65 73 78 6d 6c  | .CSS.selector.returned.by.`esxml | 
| 9bc0 |  2d 70 61 72 73 65 2d 63 73 73 2d 73 65 6c 65 63    74 6f 72 27 2e 20 20 52 65 74 75 72 6e 73 20 61  | -parse-css-selector'...Returns.a | 
| 9be0 |  0a 6c 69 73 74 20 6f 66 20 74 68 65 20 6e 6f 64    65 73 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 6e  | .list.of.the.nodes.or.nil.if.non | 
| 9c00 |  65 20 66 6f 75 6e 64 2e 22 0a 20 20 28 77 68 65    6e 20 28 73 74 72 69 6e 67 70 20 73 65 6c 65 63  | e.found."...(when.(stringp.selec | 
| 9c20 |  74 6f 72 29 0a 20 20 20 20 28 73 65 74 71 20 73    65 6c 65 63 74 6f 72 20 28 65 73 78 6d 6c 2d 70  | tor).....(setq.selector.(esxml-p | 
| 9c40 |  61 72 73 65 2d 63 73 73 2d 73 65 6c 65 63 74 6f    72 20 73 65 6c 65 63 74 6f 72 29 29 29 0a 20 20  | arse-css-selector.selector)))... | 
| 9c60 |  28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 73    65 6c 65 63 74 6f 72 29 20 31 29 0a 20 20 20 20  | (if.(=.(length.selector).1)..... | 
| 9c80 |  20 20 3b 3b 20 6e 6f 20 63 6f 6d 6d 61 73 2c 20    77 65 20 63 61 6e 20 6f 6e 6c 79 20 67 65 74 20  | ..;;.no.commas,.we.can.only.get. | 
| 9ca0 |  74 68 65 20 73 61 6d 65 20 6e 6f 64 65 73 20 72    65 70 65 61 74 65 64 6c 79 0a 20 20 20 20 20 20  | the.same.nodes.repeatedly....... | 
| 9cc0 |  28 65 73 78 6d 6c 2d 2d 64 65 6c 65 74 65 2d 64    75 70 73 20 28 65 73 78 6d 6c 2d 2d 71 75 65 72  | (esxml--delete-dups.(esxml--quer | 
| 9ce0 |  79 20 28 63 61 72 20 73 65 6c 65 63 74 6f 72 29    20 72 6f 6f 74 29 20 27 65 71 29 0a 20 20 20 20  | y.(car.selector).root).'eq)..... | 
| 9d00 |  3b 3b 20 63 6f 6d 6d 61 73 2c 20 6e 6f 64 65 73    20 6d 69 67 68 74 20 62 65 20 74 68 65 20 73 61  | ;;.commas,.nodes.might.be.the.sa | 
| 9d20 |  6d 65 20 2a 61 6e 64 2a 20 69 6e 20 74 68 65 20    77 72 6f 6e 67 20 6f 72 64 65 72 0a 20 20 20 20  | me.*and*.in.the.wrong.order..... | 
| 9d40 |  28 73 65 74 71 20 72 6f 6f 74 20 28 65 73 78 6d    6c 2d 2d 64 65 63 6f 72 61 74 65 2d 74 72 65 65  | (setq.root.(esxml--decorate-tree | 
| 9d60 |  20 72 6f 6f 74 29 29 0a 20 20 20 20 28 6c 65 74    20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20  | .root)).....(let.(result)....... | 
| 9d80 |  28 77 68 69 6c 65 20 73 65 6c 65 63 74 6f 72 0a    20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65  | (while.selector.........(setq.re | 
| 9da0 |  73 75 6c 74 20 28 6e 63 6f 6e 63 20 72 65 73 75    6c 74 20 28 65 73 78 6d 6c 2d 2d 71 75 65 72 79  | sult.(nconc.result.(esxml--query | 
| 9dc0 |  20 28 70 6f 70 20 73 65 6c 65 63 74 6f 72 29 20    72 6f 6f 74 29 29 29 29 0a 20 20 20 20 20 20 28  | .(pop.selector).root)))).......( | 
| 9de0 |  73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6c 2d    73 6f 72 74 20 72 65 73 75 6c 74 20 27 3c 20 3a  | setq.result.(cl-sort.result.'<.: | 
| 9e00 |  6b 65 79 20 27 65 73 78 6d 6c 2d 2d 72 65 74 72    69 65 76 65 2d 64 65 63 6f 72 61 74 69 6f 6e 29  | key.'esxml--retrieve-decoration) | 
| 9e20 |  29 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65    73 75 6c 74 20 28 63 6c 2d 64 65 6c 65 74 65 2d  | ).......(setq.result.(cl-delete- | 
| 9e40 |  64 75 70 6c 69 63 61 74 65 73 20 72 65 73 75 6c    74 20 3a 74 65 73 74 20 27 3d 0a 20 20 20 20 20  | duplicates.result.:test.'=...... | 
| 9e60 |  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  | ................................ | 
| 9e80 |  20 20 20 20 3a 6b 65 79 20 27 65 73 78 6d 6c 2d    2d 72 65 74 72 69 65 76 65 2d 64 65 63 6f 72 61  | ....:key.'esxml--retrieve-decora | 
| 9ea0 |  74 69 6f 6e 29 29 0a 20 20 20 20 20 20 28 6d 61    70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6e 6f  | tion)).......(mapcar.(lambda.(no | 
| 9ec0 |  64 65 29 20 28 65 73 78 6d 6c 2d 2d 75 6e 64 65    63 6f 72 61 74 65 2d 6e 6f 64 65 20 6e 6f 64 65  | de).(esxml--undecorate-node.node | 
| 9ee0 |  29 29 20 72 65 73 75 6c 74 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 65 73 78 6d 6c 2d 71 75 65 72  | )).result))))..(defun.esxml-quer | 
| 9f00 |  79 20 28 73 65 6c 65 63 74 6f 72 20 72 6f 6f 74    29 0a 20 20 22 4c 6f 63 61 74 65 73 20 61 20 6e  | y.(selector.root)..."Locates.a.n | 
| 9f20 |  6f 64 65 20 73 61 74 69 73 66 79 69 6e 67 20 53    45 4c 45 43 54 4f 52 20 73 74 61 72 74 69 6e 67  | ode.satisfying.SELECTOR.starting | 
| 9f40 |  20 66 72 6f 6d 20 52 4f 4f 54 2e 0a 53 45 4c 45    43 54 4f 52 20 6d 75 73 74 20 62 65 20 61 20 73  | .from.ROOT..SELECTOR.must.be.a.s | 
| 9f60 |  74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67    20 61 20 43 53 53 20 73 65 6c 65 63 74 6f 72 20  | tring.containing.a.CSS.selector. | 
| 9f80 |  6f 72 20 61 20 70 61 72 73 65 64 0a 43 53 53 20    73 65 6c 65 63 74 6f 72 20 72 65 74 75 72 6e 65  | or.a.parsed.CSS.selector.returne | 
| 9fa0 |  64 20 62 79 20 60 65 73 78 6d 6c 2d 70 61 72 73    65 2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 27 2e  | d.by.`esxml-parse-css-selector'. | 
| 9fc0 |  20 20 52 65 74 75 72 6e 73 20 74 68 65 0a 6e 6f    64 65 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 6e  | ..Returns.the.node.or.nil.if.non | 
| 9fe0 |  65 20 66 6f 75 6e 64 2e 22 0a 20 20 3b 3b 20 4e    4f 54 45 3a 20 79 6f 75 20 63 61 6e 20 64 6f 20  | e.found."...;;.NOTE:.you.can.do. | 
| a000 |  61 20 62 69 74 20 6c 65 73 73 20 77 6f 72 6b 20    28 74 68 65 20 73 61 76 69 6e 67 73 20 64 65 63  | a.bit.less.work.(the.savings.dec | 
| a020 |  72 65 61 73 65 20 74 68 65 20 6d 6f 72 65 0a 20    20 3b 3b 20 62 72 61 6e 63 68 65 73 20 74 68 65  | rease.the.more...;;.branches.the | 
| a040 |  20 71 75 65 72 79 20 64 69 73 63 61 72 64 73 29    2c 20 62 75 74 20 69 74 27 73 20 73 69 6d 70 6c  | .query.discards),.but.it's.simpl | 
| a060 |  65 72 20 61 6e 64 20 73 61 66 65 72 20 74 6f 20    6a 75 73 74 0a 20 20 3b 3b 20 68 61 76 65 20 74  | er.and.safer.to.just...;;.have.t | 
| a080 |  68 65 20 73 61 6d 65 20 61 6c 67 6f 72 69 74 68    6d 20 66 6f 72 20 62 6f 74 68 20 65 6e 74 72 79  | he.same.algorithm.for.both.entry | 
| a0a0 |  20 70 6f 69 6e 74 73 0a 20 20 28 63 61 72 20 28    65 73 78 6d 6c 2d 71 75 65 72 79 2d 61 6c 6c 20  | .points...(car.(esxml-query-all. | 
| a0c0 |  73 65 6c 65 63 74 6f 72 20 72 6f 6f 74 29 29 29    0a 0a 28 70 72 6f 76 69 64 65 20 27 65 73 78 6d  | selector.root)))..(provide.'esxm | 
| a0e0 |  6c 2d 71 75 65 72 79 29 0a 3b 3b 3b 20 65 73 78    6d 6c 2d 71 75 65 72 79 2e 65 6c 20 65 6e 64 73  | l-query).;;;.esxml-query.el.ends | 
| a100 |  20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .here........................... | 
| 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 |  65 73 78 6d 6c 2d 32 30 32 33 30 33 30 38 2e 32    32 35 34 2f 65 73 78 6d 6c 2d 70 6b 67 2e 65 6c  | esxml-20230308.2254/esxml-pkg.el | 
| 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 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 | 
| a280 |  30 30 30 30 36 37 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 33 37 33 00 20 30 00 00 00  | 0000670.00000000000.014373..0... | 
| 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 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................... | 
| a320 |  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................... | 
| 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 |  28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20    22 65 73 78 6d 6c 22 20 22 32 30 32 33 30 33 30  | (define-package."esxml"."2023030 | 
| a420 |  38 2e 32 32 35 34 22 20 22 4c 69 62 72 61 72 79    20 66 6f 72 20 77 6f 72 6b 69 6e 67 20 77 69 74  | 8.2254"."Library.for.working.wit | 
| a440 |  68 20 78 6d 6c 20 76 69 61 20 65 73 78 6d 6c 20    61 6e 64 20 73 78 6d 6c 22 0a 20 20 27 28 28 65  | h.xml.via.esxml.and.sxml"...'((e | 
| a460 |  6d 61 63 73 20 22 32 34 2e 31 22 29 0a 20 20 20    20 28 6b 76 20 22 30 2e 30 2e 35 22 29 0a 20 20  | macs."24.1").....(kv."0.0.5")... | 
| a480 |  20 20 28 63 6c 2d 6c 69 62 20 22 30 2e 35 22 29    29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 32 32 35  | ..(cl-lib."0.5"))...:commit."225 | 
| a4a0 |  36 39 33 30 39 36 61 35 38 37 34 39 32 64 37 36    62 66 36 39 36 64 31 66 30 63 32 35 63 36 31 66  | 693096a587492d76bf696d1f0c25c61f | 
| a4c0 |  37 64 35 33 31 22 20 3a 61 75 74 68 6f 72 73 0a    20 20 27 28 28 22 56 61 6e 79 61 20 49 7a 61 6b  | 7d531".:authors...'(("Vanya.Izak | 
| a4e0 |  73 6f 6e 61 73 2d 53 6d 69 74 68 20 3c 69 7a 61    6b 30 30 30 32 20 61 74 20 75 6d 6e 20 64 6f 74  | sonas-Smith.<izak0002.at.umn.dot | 
| a500 |  20 65 64 75 3e 22 29 29 0a 20 20 3a 6d 61 69 6e    74 61 69 6e 65 72 0a 20 20 27 28 22 56 61 6e 79  | .edu>"))...:maintainer...'("Vany | 
| a520 |  61 20 49 7a 61 6b 73 6f 6e 61 73 2d 53 6d 69 74    68 22 29 0a 20 20 3a 6b 65 79 77 6f 72 64 73 0a  | a.Izaksonas-Smith")...:keywords. | 
| a540 |  20 20 27 28 22 74 6f 6f 6c 73 22 20 22 6c 69 73    70 22 20 22 63 6f 6d 6d 22 29 0a 20 20 3a 75 72  | ..'("tools"."lisp"."comm")...:ur | 
| a560 |  6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75    62 2e 63 6f 6d 2f 74 61 6c 69 37 31 33 2f 65 73  | l."https://github.com/tali713/es | 
| a580 |  78 6d 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56    61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 6e 6f 2d  | xml").;;.Local.Variables:.;;.no- | 
| a5a0 |  62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a    3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00  | byte-compile:.t.;;.End:......... | 
| 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  | ................................ |