| ofs | hex dump | ascii |
|---|
| 0000 | 6b 76 2d 32 30 31 34 30 31 30 38 2e 31 35 33 34 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | kv-20140108.1534/............... |
| 0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0060 | 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000755.0000000.0000000.0000 |
| 0080 | 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 34 32 35 00 20 35 00 00 00 | 0000000.00000000000.011425..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 | 6b 76 2d 32 30 31 34 30 31 30 38 2e 31 35 33 34 2f 6b 76 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 | kv-20140108.1534/kv-pkg.el...... |
| 0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 0280 | 30 30 30 30 36 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 34 36 00 20 30 00 00 00 | 0000622.00000000000.013146..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 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63 | ;;.-*-.no-byte-compile:.t;.lexic |
| 0420 | 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b | al-binding:.nil.-*-.(define-pack |
| 0440 | 61 67 65 20 22 6b 76 22 20 22 32 30 31 34 30 31 30 38 2e 31 35 33 34 22 0a 20 20 22 4b 65 79 2f | age."kv"."20140108.1534"..."Key/ |
| 0460 | 76 61 6c 75 65 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 2e 22 | value.data.structure.functions." |
| 0480 | 0a 20 20 28 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | ...()...:url."https://github.com |
| 04a0 | 2f 6e 69 63 66 65 72 72 69 65 72 2f 65 6d 61 63 73 2d 6b 76 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 | /nicferrier/emacs-kv"...:commit. |
| 04c0 | 22 37 32 31 31 34 38 34 37 35 62 63 65 33 38 61 37 30 65 30 62 36 37 38 62 61 38 61 61 39 32 33 | "721148475bce38a70e0b678ba8aa923 |
| 04e0 | 36 35 32 65 38 39 30 30 65 22 0a 20 20 3a 72 65 76 64 65 73 63 20 22 37 32 31 31 34 38 34 37 35 | 652e8900e"...:revdesc."721148475 |
| 0500 | 62 63 65 22 0a 20 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 6c 69 73 70 22 29 0a 20 20 3a 61 75 | bce"...:keywords.'("lisp")...:au |
| 0520 | 74 68 6f 72 73 20 27 28 28 22 4e 69 63 20 46 65 72 72 69 65 72 22 20 2e 20 22 6e 66 65 72 72 69 | thors.'(("Nic.Ferrier"..."nferri |
| 0540 | 65 72 40 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 | er@ferrier.me.uk"))...:maintaine |
| 0560 | 72 73 20 27 28 28 22 4e 69 63 20 46 65 72 72 69 65 72 22 20 2e 20 22 6e 66 65 72 72 69 65 72 40 | rs.'(("Nic.Ferrier"..."nferrier@ |
| 0580 | 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 22 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ferrier.me.uk")))............... |
| 05a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 05c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 05e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0600 | 6b 76 2d 32 30 31 34 30 31 30 38 2e 31 35 33 34 2f 6b 76 2e 65 6c 00 00 00 00 00 00 00 00 00 00 | kv-20140108.1534/kv.el.......... |
| 0620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 0680 | 30 30 33 32 37 37 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 34 30 35 00 20 30 00 00 00 | 0032775.00000000000.012405..0... |
| 06a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0700 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 0720 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0800 | 3b 3b 3b 20 6b 76 2e 65 6c 20 2d 2d 2d 20 6b 65 79 2f 76 61 6c 75 65 20 64 61 74 61 20 73 74 72 | ;;;.kv.el.---.key/value.data.str |
| 0820 | 75 63 74 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 | ucture.functions..;;.Copyright.( |
| 0840 | 43 29 20 32 30 31 32 20 20 4e 69 63 20 46 65 72 72 69 65 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a | C).2012..Nic.Ferrier..;;.Author: |
| 0860 | 20 4e 69 63 20 46 65 72 72 69 65 72 20 3c 6e 66 65 72 72 69 65 72 40 66 65 72 72 69 65 72 2e 6d | .Nic.Ferrier.<nferrier@ferrier.m |
| 0880 | 65 2e 75 6b 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6c 69 73 70 0a 3b 3b 20 50 61 63 6b 61 | e.uk>.;;.Keywords:.lisp.;;.Packa |
| 08a0 | 67 65 2d 56 65 72 73 69 6f 6e 3a 20 32 30 31 34 30 31 30 38 2e 31 35 33 34 0a 3b 3b 20 50 61 63 | ge-Version:.20140108.1534.;;.Pac |
| 08c0 | 6b 61 67 65 2d 52 65 76 69 73 69 6f 6e 3a 20 37 32 31 31 34 38 34 37 35 62 63 65 0a 3b 3b 20 4d | kage-Revision:.721148475bce.;;.M |
| 08e0 | 61 69 6e 74 61 69 6e 65 72 3a 20 4e 69 63 20 46 65 72 72 69 65 72 20 3c 6e 66 65 72 72 69 65 72 | aintainer:.Nic.Ferrier.<nferrier |
| 0900 | 40 66 65 72 72 69 65 72 2e 6d 65 2e 75 6b 3e 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 37 74 68 20 | @ferrier.me.uk>.;;.Created:.7th. |
| 0920 | 53 65 70 74 65 6d 62 65 72 20 32 30 31 32 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 | September.2012..;;.This.program. |
| 0940 | 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 65 64 69 73 74 | is.free.software;.you.can.redist |
| 0960 | 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 69 74 20 75 6e | ribute.it.and/or.modify.;;.it.un |
| 0980 | 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 6e 65 72 61 6c | der.the.terms.of.the.GNU.General |
| 09a0 | 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 64 20 62 79 0a | .Public.License.as.published.by. |
| 09c0 | 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 74 69 6f 6e 2c | ;;.the.Free.Software.Foundation, |
| 09e0 | 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 63 65 6e 73 65 | .either.version.3.of.the.License |
| 0a00 | 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 79 20 6c 61 74 | ,.or.;;.(at.your.option).any.lat |
| 0a20 | 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 6d 20 69 73 20 | er.version...;;.This.program.is. |
| 0a40 | 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 74 20 69 74 20 | distributed.in.the.hope.that.it. |
| 0a60 | 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 4f 55 54 20 41 | will.be.useful,.;;.but.WITHOUT.A |
| 0a80 | 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 68 65 20 69 6d | NY.WARRANTY;.without.even.the.im |
| 0aa0 | 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 4e 54 41 42 49 | plied.warranty.of.;;.MERCHANTABI |
| 0ac0 | 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 43 55 4c 41 52 | LITY.or.FITNESS.FOR.A.PARTICULAR |
| 0ae0 | 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 65 6e 65 72 61 | .PURPOSE...See.the.;;.GNU.Genera |
| 0b00 | 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 65 74 61 69 6c | l.Public.License.for.more.detail |
| 0b20 | 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 69 76 65 64 20 | s...;;.You.should.have.received. |
| 0b40 | 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 75 62 6c 69 63 | a.copy.of.the.GNU.General.Public |
| 0b60 | 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 20 70 72 6f 67 | .License.;;.along.with.this.prog |
| 0b80 | 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 77 77 2e 67 6e | ram...If.not,.see.<http://www.gn |
| 0ba0 | 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 65 6e 74 61 72 | u.org/licenses/>...;;;.Commentar |
| 0bc0 | 79 3a 0a 0a 3b 3b 20 53 6f 6d 65 20 72 6f 75 74 69 6e 65 73 20 66 6f 72 20 77 6f 72 6b 69 6e 67 | y:..;;.Some.routines.for.working |
| 0be0 | 20 77 69 74 68 20 6b 65 79 2f 76 61 6c 75 65 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 20 | .with.key/value.data.structures. |
| 0c00 | 6c 69 6b 65 0a 3b 3b 20 68 61 73 68 2d 74 61 62 6c 65 73 20 61 6e 64 20 61 6c 69 73 74 73 20 61 | like.;;.hash-tables.and.alists.a |
| 0c20 | 6e 64 20 70 6c 69 73 74 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 61 6c 73 6f 20 74 61 6b 65 73 20 6f | nd.plists...;;.This.also.takes.o |
| 0c40 | 76 65 72 20 74 68 65 20 64 6f 74 61 73 73 6f 63 20 73 74 75 66 66 20 61 6e 64 20 70 72 6f 76 69 | ver.the.dotassoc.stuff.and.provi |
| 0c60 | 64 65 73 20 69 74 20 73 65 70 61 72 61 74 65 6c 79 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 | des.it.separately...;;;.Code:..( |
| 0c80 | 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 29 29 | eval-when-compile.(require.'cl)) |
| 0ca0 | 0a 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 3e 68 61 73 68 20 28 61 6c 69 73 74 20 26 | ...(defun.kvalist->hash.(alist.& |
| 0cc0 | 72 65 73 74 20 68 61 73 68 2d 74 61 62 6c 65 2d 61 72 67 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 | rest.hash-table-args)..."Convert |
| 0ce0 | 20 41 4c 49 53 54 20 74 6f 20 61 20 48 41 53 48 2e 0a 0a 48 41 53 48 2d 54 41 42 4c 45 2d 41 52 | .ALIST.to.a.HASH...HASH-TABLE-AR |
| 0d00 | 47 53 20 61 72 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 68 61 73 68 2d 74 61 62 6c 65 20 | GS.are.passed.to.the.hash-table. |
| 0d20 | 63 72 65 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 61 70 70 6c 79 | creation."...(let.((table.(apply |
| 0d40 | 20 27 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 68 61 73 68 2d 74 61 62 6c 65 2d 61 72 67 | .'make-hash-table.hash-table-arg |
| 0d60 | 73 29 29 29 0a 20 20 20 20 28 6d 61 70 63 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 69 | s))).....(mapc......(lambda.(pai |
| 0d80 | 72 29 0a 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 28 63 61 72 20 70 61 69 72 29 20 28 63 | r)........(puthash.(car.pair).(c |
| 0da0 | 64 72 20 70 61 69 72 29 20 74 61 62 6c 65 29 29 0a 20 20 20 20 20 61 6c 69 73 74 29 0a 20 20 20 | dr.pair).table))......alist).... |
| 0dc0 | 20 74 61 62 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 68 61 73 68 2d 3e 61 6c 69 73 74 20 28 | .table))..(defun.kvhash->alist.( |
| 0de0 | 68 61 73 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 75 6e 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 | hash.&optional.func)..."Convert. |
| 0e00 | 48 41 53 48 20 74 6f 20 61 6e 20 41 4c 49 53 54 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 66 69 | HASH.to.an.ALIST...Optionally.fi |
| 0e20 | 6c 74 65 72 20 74 68 72 6f 75 67 68 20 46 55 4e 43 2c 20 6f 6e 6c 79 20 6e 6f 6e 2d 6e 69 6c 20 | lter.through.FUNC,.only.non-nil. |
| 0e40 | 76 61 6c 75 65 73 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 0a 46 55 4e 43 20 61 72 65 20 73 74 | values.returned.from.FUNC.are.st |
| 0e60 | 6f 72 65 64 20 61 73 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 76 61 6c 75 65 20 61 67 61 69 | ored.as.the.resulting.value.agai |
| 0e80 | 6e 73 74 20 74 68 65 20 63 6f 6e 76 65 72 74 65 64 0a 6b 65 79 2e 22 0a 20 20 28 77 68 65 6e 20 | nst.the.converted.key."...(when. |
| 0ea0 | 68 61 73 68 0a 20 20 20 20 28 6c 65 74 20 28 73 74 6f 72 65 29 0a 20 20 20 20 20 20 28 6d 61 70 | hash.....(let.(store).......(map |
| 0ec0 | 68 61 73 68 0a 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 76 61 6c 75 65 29 0a | hash........(lambda.(key.value). |
| 0ee0 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 | .........(when.key............(i |
| 0f00 | 66 20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70 20 66 75 6e 63 29 29 0a 20 20 20 20 20 20 20 | f.(and.(functionp.func))........ |
| 0f20 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 | ........(let.((res.(funcall.func |
| 0f40 | 20 6b 65 79 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .key.value)))..................( |
| 0f60 | 77 68 65 6e 20 72 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 | when.res....................(set |
| 0f80 | 71 20 73 74 6f 72 65 20 28 61 63 6f 6e 73 20 6b 65 79 20 72 65 73 20 73 74 6f 72 65 29 29 29 29 | q.store.(acons.key.res.store)))) |
| 0fa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 20 6e 6f 20 66 69 6c 74 65 | ................;;.else.no.filte |
| 0fc0 | 72 69 6e 67 2c 20 6a 75 73 74 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ring,.just.return............... |
| 0fe0 | 20 28 73 65 74 71 20 73 74 6f 72 65 20 28 61 63 6f 6e 73 20 6b 65 79 20 76 61 6c 75 65 20 73 74 | .(setq.store.(acons.key.value.st |
| 1000 | 6f 72 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 68 61 73 68 29 0a 20 20 20 20 20 20 73 74 6f 72 | ore)))))........hash).......stor |
| 1020 | 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 66 61 20 28 6b 65 79 20 61 6c 69 73 74 20 72 65 63 | e)))..(defun.kvfa.(key.alist.rec |
| 1040 | 65 69 76 65 29 0a 20 20 22 43 61 6c 6c 20 52 45 43 45 49 56 45 20 77 69 74 68 20 77 68 61 74 65 | eive)..."Call.RECEIVE.with.whate |
| 1060 | 76 65 72 20 63 6f 6d 65 73 20 6f 75 74 20 6f 66 20 41 4c 49 53 54 20 66 6f 72 20 4b 45 59 2e 0a | ver.comes.out.of.ALIST.for.KEY.. |
| 1080 | 0a 52 45 43 45 49 56 45 20 63 61 6e 20 64 6f 20 77 68 61 74 65 76 65 72 20 64 65 73 74 72 75 63 | .RECEIVE.can.do.whatever.destruc |
| 10a0 | 74 75 72 69 6e 67 20 79 6f 75 20 77 61 6e 74 2c 20 74 68 65 20 66 69 72 73 74 0a 61 72 67 75 6d | turing.you.want,.the.first.argum |
| 10c0 | 65 6e 74 20 69 73 20 61 6c 77 61 79 73 20 74 68 65 20 63 61 72 20 6f 66 20 74 68 65 20 61 6c 69 | ent.is.always.the.car.of.the.ali |
| 10e0 | 73 74 20 70 61 69 72 2e 22 0a 20 20 28 61 70 70 6c 79 20 72 65 63 65 69 76 65 20 28 6c 65 74 20 | st.pair."...(apply.receive.(let. |
| 1100 | 28 28 61 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ((a.(assoc.key.alist)))......... |
| 1120 | 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 63 61 72 20 61 29 | ...........(append.(list.(car.a) |
| 1140 | 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 28 69 66 | )............................(if |
| 1160 | 20 28 6c 69 73 74 70 20 28 63 64 72 20 61 29 29 28 63 64 72 20 61 29 28 6c 69 73 74 20 28 63 64 | .(listp.(cdr.a))(cdr.a)(list.(cd |
| 1180 | 72 20 61 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 20 28 6b 65 79 20 61 6c 69 73 | r.a)))))))..(defun.kva.(key.alis |
| 11a0 | 74 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74 68 65 20 76 61 6c 75 65 20 61 73 73 69 67 6e 65 | t)..."Retrieve.the.value.assigne |
| 11c0 | 64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 53 54 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 60 61 | d.to.KEY.in.ALIST...This.uses.`a |
| 11e0 | 73 73 6f 63 27 20 61 73 20 74 68 65 20 6c 6f 6f 6b 75 70 20 6d 65 63 68 61 6e 69 73 6d 2e 22 0a | ssoc'.as.the.lookup.mechanism.". |
| 1200 | 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 | ..(cdr.(assoc.key.alist)))..(def |
| 1220 | 75 6e 20 6b 76 61 71 20 28 6b 65 79 20 61 6c 69 73 74 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 | un.kvaq.(key.alist)..."Retrieve. |
| 1240 | 74 68 65 20 76 61 6c 75 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 | the.value.assigned.to.KEY.in.ALI |
| 1260 | 53 54 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 60 61 73 73 71 27 20 61 73 20 74 68 65 20 6c 6f 6f | ST...This.uses.`assq'.as.the.loo |
| 1280 | 6b 75 70 20 6d 65 63 68 61 6e 69 73 6d 2e 22 0a 20 20 28 63 64 72 20 28 61 73 73 71 20 6b 65 79 | kup.mechanism."...(cdr.(assq.key |
| 12a0 | 20 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 71 63 20 28 6b 65 79 20 61 6c 69 | .alist)))..(defun.kvaqc.(key.ali |
| 12c0 | 73 74 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74 68 65 20 76 61 6c 75 65 20 61 73 73 69 67 6e | st)..."Retrieve.the.value.assign |
| 12e0 | 65 64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 53 54 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 66 | ed.to.KEY.in.ALIST...This.uses.f |
| 1300 | 69 72 73 74 20 74 68 65 20 60 61 73 73 71 27 20 61 6e 64 20 74 68 65 6e 20 60 61 73 73 6f 63 27 | irst.the.`assq'.and.then.`assoc' |
| 1320 | 20 61 73 20 74 68 65 20 6c 6f 6f 6b 75 70 0a 6d 65 63 68 61 6e 69 73 6d 2e 22 0a 20 20 28 63 64 | .as.the.lookup.mechanism."...(cd |
| 1340 | 72 20 28 6f 72 20 28 61 73 73 71 20 6b 65 79 20 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 | r.(or.(assq.key.alist).......... |
| 1360 | 20 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b | ..(assoc.key.alist))))..(defun.k |
| 1380 | 76 61 73 73 6f 63 3d 20 28 6b 65 79 20 76 61 6c 75 65 20 61 6c 69 73 74 29 0a 20 20 22 49 73 20 | vassoc=.(key.value.alist)..."Is. |
| 13a0 | 74 68 65 20 76 61 6c 75 65 20 61 73 73 6f 63 64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 53 54 | the.value.assocd.to.KEY.in.ALIST |
| 13c0 | 20 65 71 75 61 6c 20 74 6f 20 56 41 4c 55 45 3f 0a 0a 52 65 74 75 72 6e 73 20 74 68 65 20 76 61 | .equal.to.VALUE?..Returns.the.va |
| 13e0 | 6c 75 65 20 6c 6f 6f 6b 65 64 20 75 70 20 62 79 20 4b 45 59 20 74 68 61 74 20 70 61 73 73 65 73 | lue.looked.up.by.KEY.that.passes |
| 1400 | 2c 20 73 6f 20 6e 6f 72 6d 61 6c 6c 79 3a 0a 0a 20 20 4b 45 59 20 2e 20 56 41 4c 55 45 0a 22 0a | ,.so.normally:....KEY...VALUE.". |
| 1420 | 20 20 28 6c 65 74 20 28 28 76 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c 69 73 74 29 29 29 0a 20 | ..(let.((v.(assoc.key.alist))).. |
| 1440 | 20 20 20 28 61 6e 64 20 76 20 28 65 71 75 61 6c 20 28 63 64 72 20 76 29 20 76 61 6c 75 65 29 20 | ...(and.v.(equal.(cdr.v).value). |
| 1460 | 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 73 73 6f 71 63 20 28 6b 65 79 20 61 6c 69 73 74 | v)))..(defun.kvassoqc.(key.alist |
| 1480 | 29 0a 20 20 22 53 74 72 69 6e 67 20 6f 72 20 73 79 6d 62 6f 6c 20 61 73 73 6f 63 2e 22 0a 20 20 | )..."String.or.symbol.assoc."... |
| 14a0 | 28 6c 65 74 20 28 28 76 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 71 20 28 | (let.((v.(or.............(assq.( |
| 14c0 | 69 66 20 28 73 79 6d 62 6f 6c 70 20 6b 65 79 29 20 6b 65 79 20 28 69 6e 74 65 72 6e 20 6b 65 79 | if.(symbolp.key).key.(intern.key |
| 14e0 | 29 29 20 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 73 73 6f 63 | )).alist).............(or.(assoc |
| 1500 | 20 6b 65 79 20 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e | .key.alist).................;;.n |
| 1520 | 6f 74 20 73 75 72 65 20 61 62 6f 75 74 20 74 68 69 73 20 62 65 68 61 76 69 6f 75 72 2e 2e 2e 20 | ot.sure.about.this.behaviour.... |
| 1540 | 73 65 65 20 74 65 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20 | see.test.................(assoc. |
| 1560 | 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 20 61 6c 69 73 74 29 29 29 29 29 20 20 76 29 | (symbol-name.key).alist)))))..v) |
| 1580 | 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 73 73 6f 71 3d 20 28 6b 65 79 20 76 61 6c 75 65 20 61 6c | )..(defun.kvassoq=.(key.value.al |
| 15a0 | 69 73 74 29 0a 20 20 22 54 65 73 74 20 74 68 65 20 56 41 4c 55 45 20 77 69 74 68 20 74 68 65 20 | ist)..."Test.the.VALUE.with.the. |
| 15c0 | 76 61 6c 75 65 20 62 6f 75 6e 64 20 74 6f 20 4b 45 59 20 69 6e 20 41 4c 49 53 54 2e 0a 0a 54 68 | value.bound.to.KEY.in.ALIST...Th |
| 15e0 | 65 20 6c 6f 6f 6b 75 70 20 6d 65 63 68 61 6e 69 73 6d 20 69 73 20 74 6f 20 65 6e 73 75 72 65 20 | e.lookup.mechanism.is.to.ensure. |
| 1600 | 74 68 65 20 6b 65 79 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 61 6e 64 20 74 68 65 6e 0a 75 73 65 | the.key.is.a.symbol.and.then.use |
| 1620 | 20 61 73 73 71 2e 20 20 48 65 6e 63 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75 | .assq...Hence.the.name.of.the.fu |
| 1640 | 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20 61 20 6d 69 78 20 6f 66 20 61 73 73 6f 63 0a 61 6e 64 20 | nction.being.a.mix.of.assoc.and. |
| 1660 | 61 73 73 71 2e 0a 0a 52 65 74 75 72 6e 73 20 74 68 65 20 76 61 6c 75 65 20 6c 6f 6f 6b 65 64 20 | assq...Returns.the.value.looked. |
| 1680 | 75 70 20 62 79 20 4b 45 59 20 74 68 61 74 20 70 61 73 73 65 73 2c 20 73 6f 20 6e 6f 72 6d 61 6c | up.by.KEY.that.passes,.so.normal |
| 16a0 | 6c 79 3a 0a 0a 20 20 4b 45 59 20 2e 20 56 41 4c 55 45 0a 22 0a 20 20 28 6c 65 74 20 28 28 76 20 | ly:....KEY...VALUE."...(let.((v. |
| 16c0 | 28 6b 76 61 73 73 6f 71 63 20 6b 65 79 20 61 6c 69 73 74 29 29 29 0a 20 20 20 20 28 61 6e 64 20 | (kvassoqc.key.alist))).....(and. |
| 16e0 | 76 20 28 65 71 75 61 6c 20 28 63 64 72 20 76 29 20 76 61 6c 75 65 29 20 76 29 29 29 0a 0a 28 64 | v.(equal.(cdr.v).value).v)))..(d |
| 1700 | 65 66 75 6e 20 6b 76 6d 61 74 63 68 20 28 6b 65 79 20 72 65 67 65 78 20 61 6c 69 73 74 29 0a 20 | efun.kvmatch.(key.regex.alist).. |
| 1720 | 20 22 54 65 73 74 20 74 68 65 20 76 61 6c 75 65 20 77 69 74 68 20 4b 45 59 20 69 6e 20 41 4c 49 | ."Test.the.value.with.KEY.in.ALI |
| 1740 | 53 54 20 6d 61 74 63 68 65 73 20 52 45 47 45 58 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 20 28 6b | ST.matches.REGEX."...(let.((v.(k |
| 1760 | 76 61 73 73 6f 71 63 20 6b 65 79 20 61 6c 69 73 74 29 29 29 0a 20 20 20 20 28 61 6e 64 20 76 20 | vassoqc.key.alist))).....(and.v. |
| 1780 | 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 67 65 78 20 28 63 64 72 20 76 29 29 20 76 29 29 | (string-match.regex.(cdr.v)).v)) |
| 17a0 | 29 0a 0a 28 64 65 66 75 6e 2a 20 6b 76 71 75 65 72 79 2d 3e 66 75 6e 63 20 28 71 75 65 72 79 20 | )..(defun*.kvquery->func.(query. |
| 17c0 | 26 6b 65 79 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 | &key............................ |
| 17e0 | 20 20 28 65 71 75 61 6c 2d 66 75 6e 63 20 27 6b 76 61 73 73 6f 63 3d 29 0a 20 20 20 20 20 20 20 | ..(equal-func.'kvassoc=)........ |
| 1800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 66 75 6e | ......................(match-fun |
| 1820 | 63 20 27 6b 76 6d 61 74 63 68 29 29 0a 20 20 22 54 75 72 6e 20 61 20 73 69 6d 70 6c 65 20 51 55 | c.'kvmatch))..."Turn.a.simple.QU |
| 1840 | 45 52 59 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 74 6f 20 61 20 66 69 6c 74 65 72 20 66 75 6e | ERY.expression.into.a.filter.fun |
| 1860 | 63 74 69 6f 6e 2e 0a 0a 45 51 55 41 4c 2d 46 55 4e 43 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 | ction...EQUAL-FUNC.is.the.functi |
| 1880 | 6f 6e 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 65 71 75 61 6c 69 74 79 0a | on.that.implements.the.equality. |
| 18a0 | 70 72 65 64 69 63 61 74 65 2e 0a 0a 4d 41 54 43 48 2d 46 55 4e 43 20 69 73 20 74 68 65 20 66 75 | predicate...MATCH-FUNC.is.the.fu |
| 18c0 | 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 6d 61 74 63 68 | nction.that.implements.the.match |
| 18e0 | 20 70 72 65 64 69 63 61 74 65 2e 0a 0a 54 68 65 20 71 75 65 72 79 20 6c 61 6e 67 75 61 67 65 20 | .predicate...The.query.language. |
| 1900 | 69 73 3a 0a 0a 20 7c 20 61 20 62 20 20 2d 20 74 72 75 65 20 69 66 20 61 20 6f 72 20 62 20 69 73 | is:...|.a.b..-.true.if.a.or.b.is |
| 1920 | 20 74 72 75 65 0a 20 26 20 61 20 62 20 20 2d 20 74 72 75 65 20 6f 6e 6c 79 20 69 66 20 61 20 61 | .true..&.a.b..-.true.only.if.a.a |
| 1940 | 6e 64 20 62 20 69 73 20 74 72 75 65 0a 20 3d 20 61 20 62 20 20 2d 20 74 72 75 65 20 69 66 20 61 | nd.b.is.true..=.a.b..-.true.if.a |
| 1960 | 20 65 71 75 61 6c 73 20 62 20 61 73 20 70 65 72 20 74 68 65 20 45 51 55 41 4c 2d 46 55 4e 43 0a | .equals.b.as.per.the.EQUAL-FUNC. |
| 1980 | 20 7e 20 61 20 62 20 20 2d 20 74 72 75 65 20 69 66 20 61 20 6d 61 74 63 68 65 73 20 62 20 61 73 | .~.a.b..-.true.if.a.matches.b.as |
| 19a0 | 20 70 65 72 20 74 68 65 20 4d 41 54 43 48 2d 46 55 4e 43 0a 0a 53 6f 2c 20 66 6f 72 20 65 78 61 | .per.the.MATCH-FUNC..So,.for.exa |
| 19c0 | 6d 70 6c 65 3a 0a 0a 20 28 7c 28 3d 20 61 20 62 29 28 3d 20 63 20 64 29 29 0a 0a 4d 65 61 6e 73 | mple:...(|(=.a.b)(=.c.d))..Means |
| 19e0 | 3a 20 69 66 20 60 61 27 20 65 71 75 61 6c 73 20 60 62 27 2c 20 6f 72 20 69 66 20 60 63 27 20 65 | :.if.`a'.equals.`b',.or.if.`c'.e |
| 1a00 | 71 75 61 6c 73 20 60 64 27 20 74 68 65 6e 20 74 68 65 0a 65 78 70 72 65 73 73 69 6f 6e 20 69 73 | quals.`d'.then.the.expression.is |
| 1a20 | 20 74 72 75 65 2e 22 0a 20 20 28 66 6c 65 74 20 28 28 71 75 65 72 79 2d 70 61 72 73 65 20 28 71 | .true."...(flet.((query-parse.(q |
| 1a40 | 75 65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 74 20 28 63 61 | uery)............(let.((part.(ca |
| 1a60 | 72 20 71 75 65 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 74 | r.query))..................(rest |
| 1a80 | 20 28 63 64 72 20 71 75 65 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | .(cdr.query)))..............(con |
| 1aa0 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 70 61 72 74 20 27 7c 29 0a 20 | d................((eq.part.'|).. |
| 1ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 6f 72 0a 20 20 20 20 20 20 20 | ...............(cons.'or........ |
| 1ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 69 20 69 6e 20 72 65 | ...............(loop.for.i.in.re |
| 1b00 | 73 74 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 63 6f 6c 6c | st..........................coll |
| 1b20 | 65 63 74 20 28 71 75 65 72 79 2d 70 61 72 73 65 20 69 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ect.(query-parse.i)))).......... |
| 1b40 | 20 20 20 20 20 20 28 28 65 71 20 70 61 72 74 20 27 26 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......((eq.part.'&)............. |
| 1b60 | 20 20 20 20 28 63 6f 6e 73 20 27 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(cons.'and.................. |
| 1b80 | 20 20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 69 20 69 6e 20 72 65 73 74 0a 20 20 20 20 20 20 20 | .....(loop.for.i.in.rest........ |
| 1ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 71 75 65 72 79 | ..................collect.(query |
| 1bc0 | 2d 70 61 72 73 65 20 69 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 | -parse.i))))................((eq |
| 1be0 | 20 70 61 72 74 20 27 7e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 73 74 72 | .part.'~).................(destr |
| 1c00 | 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 66 69 65 6c 64 20 76 61 6c 75 65 29 20 72 65 73 74 | ucturing-bind.(field.value).rest |
| 1c20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6d 61 74 63 68 2d 66 | ...................(list.match-f |
| 1c40 | 75 6e 63 20 66 69 65 6c 64 20 76 61 6c 75 65 20 28 71 75 6f 74 65 20 72 65 63 6f 72 64 29 29 29 | unc.field.value.(quote.record))) |
| 1c60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 70 61 72 74 20 27 3d 29 0a 20 | )................((eq.part.'=).. |
| 1c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 | ...............(destructuring-bi |
| 1ca0 | 6e 64 20 28 66 69 65 6c 64 20 76 61 6c 75 65 29 20 72 65 73 74 0a 20 20 20 20 20 20 20 20 20 20 | nd.(field.value).rest........... |
| 1cc0 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 65 71 75 61 6c 2d 66 75 6e 63 20 66 69 65 6c 64 20 76 | ........(list.equal-func.field.v |
| 1ce0 | 61 6c 75 65 20 28 71 75 6f 74 65 20 72 65 63 6f 72 64 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 | alue.(quote.record)))))))).....( |
| 1d00 | 65 76 61 6c 20 60 28 6c 61 6d 62 64 61 20 28 72 65 63 6f 72 64 29 20 2c 28 71 75 65 72 79 2d 70 | eval.`(lambda.(record).,(query-p |
| 1d20 | 61 72 73 65 20 71 75 65 72 79 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 32 | arse.query)))))..(defun.kvplist2 |
| 1d40 | 67 65 74 20 28 70 6c 69 73 74 32 20 6b 65 79 77 6f 72 64 20 76 61 6c 75 65 29 0a 20 20 22 47 65 | get.(plist2.keyword.value)..."Ge |
| 1d60 | 74 20 74 68 65 20 70 6c 69 73 74 20 77 69 74 68 20 4b 45 59 57 4f 52 44 20 2f 20 56 41 4c 55 45 | t.the.plist.with.KEYWORD./.VALUE |
| 1d80 | 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 2e 22 0a 20 20 28 6c 6f | .from.the.list.of.plists."...(lo |
| 1da0 | 6f 70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e 20 70 6c 69 73 74 32 0a 20 20 20 20 20 69 66 20 28 | op.for.plist.in.plist2......if.( |
| 1dc0 | 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 70 6c 69 73 74 20 6b 65 79 77 6f 72 64 29 20 | equal.(plist-get.plist.keyword). |
| 1de0 | 76 61 6c 75 65 29 0a 20 20 20 20 20 72 65 74 75 72 6e 20 70 6c 69 73 74 29 29 0a 0a 28 64 65 66 | value)......return.plist))..(def |
| 1e00 | 75 6e 20 6b 76 74 68 69 6e 67 2d 3e 6b 65 79 77 6f 72 64 20 28 73 74 72 2d 6f 72 2d 73 79 6d 62 | un.kvthing->keyword.(str-or-symb |
| 1e20 | 6f 6c 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 53 54 52 2d 4f 52 2d 53 59 4d 42 4f 4c 20 69 6e 74 | ol)..."Convert.STR-OR-SYMBOL.int |
| 1e40 | 6f 20 61 20 6b 65 79 77 6f 72 64 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 | o.a.keyword.symbol."...(let.((st |
| 1e60 | 72 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 79 | r..........(cond............((sy |
| 1e80 | 6d 62 6f 6c 70 20 73 74 72 2d 6f 72 2d 73 79 6d 62 6f 6c 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d | mbolp.str-or-symbol).(symbol-nam |
| 1ea0 | 65 20 73 74 72 2d 6f 72 2d 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 | e.str-or-symbol))............((s |
| 1ec0 | 74 72 69 6e 67 70 20 73 74 72 2d 6f 72 2d 73 79 6d 62 6f 6c 29 20 73 74 72 2d 6f 72 2d 73 79 6d | tringp.str-or-symbol).str-or-sym |
| 1ee0 | 62 6f 6c 29 29 29 29 0a 20 20 20 20 28 69 6e 74 65 72 6e 0a 20 20 20 20 20 28 69 66 20 28 65 71 | bol)))).....(intern......(if.(eq |
| 1f00 | 20 28 61 72 65 66 20 73 74 72 20 30 29 20 3f 3a 29 20 73 74 72 20 28 63 6f 6e 63 61 74 20 22 3a | .(aref.str.0).?:).str.(concat.": |
| 1f20 | 22 20 73 74 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 3e 70 6c 69 73 | ".str)))))..(defun.kvalist->plis |
| 1f40 | 74 20 28 61 6c 69 73 74 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 6e 20 61 6c 69 73 74 20 74 6f | t.(alist)..."Convert.an.alist.to |
| 1f60 | 20 61 20 70 6c 69 73 74 2e 22 0a 20 20 3b 3b 20 57 68 79 20 64 6f 65 73 6e 27 74 20 65 6c 69 73 | .a.plist."...;;.Why.doesn't.elis |
| 1f80 | 70 20 70 72 6f 76 69 64 65 20 74 68 69 73 3f 0a 20 20 28 6c 6f 6f 70 20 66 6f 72 20 70 61 69 72 | p.provide.this?...(loop.for.pair |
| 1fa0 | 20 69 6e 20 61 6c 69 73 74 0a 20 20 20 20 20 61 70 70 65 6e 64 20 28 6c 69 73 74 0a 20 20 20 20 | .in.alist......append.(list..... |
| 1fc0 | 20 20 20 20 20 20 20 20 20 28 6b 76 74 68 69 6e 67 2d 3e 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 | .........(kvthing->keyword...... |
| 1fe0 | 20 20 20 20 20 20 20 20 20 28 63 61 72 20 70 61 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .........(car.pair))............ |
| 2000 | 20 20 28 63 64 72 20 70 61 69 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 63 6f 6e 73 20 | ..(cdr.pair))))..(defun.kvacons. |
| 2020 | 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 4d 61 6b 65 20 61 6e 20 61 6c 69 73 74 20 66 72 | (&rest.args)..."Make.an.alist.fr |
| 2040 | 6f 6d 20 74 68 65 20 70 6c 69 73 74 20 73 74 79 6c 65 20 61 72 67 73 2e 22 0a 20 20 28 6b 76 70 | om.the.plist.style.args."...(kvp |
| 2060 | 6c 69 73 74 2d 3e 61 6c 69 73 74 20 61 72 67 73 29 29 0a 0a 28 64 65 66 75 6e 20 6b 65 79 77 6f | list->alist.args))..(defun.keywo |
| 2080 | 72 64 2d 3e 73 79 6d 62 6f 6c 20 28 6b 65 79 77 6f 72 64 29 0a 20 20 22 41 20 6b 65 79 77 6f 72 | rd->symbol.(keyword)..."A.keywor |
| 20a0 | 64 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 6c 65 61 64 69 6e 67 20 77 69 74 68 20 61 20 3a 2e 0a | d.is.a.symbol.leading.with.a.:.. |
| 20c0 | 0a 43 6f 6e 76 65 72 74 69 6e 67 20 74 6f 20 61 20 73 79 6d 62 6f 6c 20 6d 65 61 6e 73 20 64 72 | .Converting.to.a.symbol.means.dr |
| 20e0 | 6f 70 70 69 6e 67 20 74 68 65 20 3a 2e 22 0a 20 20 28 69 66 20 28 6b 65 79 77 6f 72 64 70 20 6b | opping.the.:."...(if.(keywordp.k |
| 2100 | 65 79 77 6f 72 64 29 0a 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 28 73 75 62 73 74 72 69 6e 67 | eyword).......(intern.(substring |
| 2120 | 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 77 6f 72 64 29 20 31 29 29 0a 20 20 20 20 6b | .(symbol-name.keyword).1)).....k |
| 2140 | 65 79 77 6f 72 64 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 2d 3e 61 6c 69 73 74 20 | eyword))..(defun.kvplist->alist. |
| 2160 | 28 70 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c 20 6b 65 79 73 2d 61 72 65 2d 6b 65 79 77 6f 72 | (plist.&optional.keys-are-keywor |
| 2180 | 64 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 50 4c 49 53 54 20 74 6f 20 61 6e 20 61 6c 69 73 74 | ds)..."Convert.PLIST.to.an.alist |
| 21a0 | 2e 0a 0a 54 68 65 20 6b 65 79 73 20 61 72 65 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 3a | ...The.keys.are.expected.to.be.: |
| 21c0 | 70 72 65 66 69 78 65 64 20 61 6e 64 20 74 68 65 20 63 6f 6c 6f 6e 73 20 61 72 65 20 72 65 6d 6f | prefixed.and.the.colons.are.remo |
| 21e0 | 76 65 64 0a 75 6e 6c 65 73 73 20 4b 45 59 53 2d 41 52 45 2d 4b 45 59 57 4f 52 44 53 20 69 73 20 | ved.unless.KEYS-ARE-KEYWORDS.is. |
| 2200 | 60 74 27 2e 0a 0a 54 68 65 20 6b 65 79 73 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 | `t'...The.keys.in.the.resulting. |
| 2220 | 61 6c 69 73 74 20 61 72 65 20 61 6c 77 61 79 73 20 73 79 6d 62 6f 6c 73 2e 22 0a 20 20 28 77 68 | alist.are.always.symbols."...(wh |
| 2240 | 65 6e 20 70 6c 69 73 74 0a 20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 75 | en.plist.....(loop.for.(key.valu |
| 2260 | 65 20 2e 20 72 65 73 74 29 20 6f 6e 20 70 6c 69 73 74 20 62 79 20 27 63 64 64 72 0a 20 20 20 20 | e...rest).on.plist.by.'cddr..... |
| 2280 | 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 69 66 20 6b 65 | ...collect..........(cons.(if.ke |
| 22a0 | 79 73 2d 61 72 65 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ys-are-keywords................. |
| 22c0 | 20 20 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 77 6f | ...key....................(keywo |
| 22e0 | 72 64 2d 3e 73 79 6d 62 6f 6c 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rd->symbol.key))................ |
| 2300 | 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 32 2d 3e 70 6c 69 73 | value))))..(defun.kvalist2->plis |
| 2320 | 74 20 28 61 6c 69 73 74 32 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 6c 69 73 74 20 6f 66 20 | t.(alist2)..."Convert.a.list.of. |
| 2340 | 61 6c 69 73 74 73 20 74 6f 6f 20 61 20 6c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 2e 22 0a 20 20 | alists.too.a.list.of.plists."... |
| 2360 | 28 6c 6f 6f 70 20 66 6f 72 20 61 6c 69 73 74 20 69 6e 20 61 6c 69 73 74 32 0a 20 20 20 20 20 20 | (loop.for.alist.in.alist2....... |
| 2380 | 20 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 6b 76 61 6c 69 73 74 2d 3e 70 | .append........(list.(kvalist->p |
| 23a0 | 6c 69 73 74 20 61 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 3e | list.alist))))..(defun.kvalist-> |
| 23c0 | 6b 65 79 73 20 28 61 6c 69 73 74 29 0a 20 20 22 47 65 74 20 6a 75 73 74 20 74 68 65 20 6b 65 79 | keys.(alist)..."Get.just.the.key |
| 23e0 | 73 20 66 72 6f 6d 20 74 68 65 20 61 6c 69 73 74 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 | s.from.the.alist."...(mapcar.(la |
| 2400 | 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 61 72 20 70 61 69 72 29 29 20 61 6c 69 73 74 29 29 0a | mbda.(pair).(car.pair)).alist)). |
| 2420 | 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 3e 76 61 6c 75 65 73 20 28 61 6c 69 73 74 29 0a | .(defun.kvalist->values.(alist). |
| 2440 | 20 20 22 47 65 74 20 6a 75 73 74 20 74 68 65 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 74 68 65 20 | .."Get.just.the.values.from.the. |
| 2460 | 61 6c 69 73 74 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 | alist."...(mapcar.(lambda.(pair) |
| 2480 | 20 28 63 64 72 20 70 61 69 72 29 29 20 61 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 | .(cdr.pair)).alist))..(defun.kva |
| 24a0 | 6c 69 73 74 2d 73 6f 72 74 20 28 61 6c 69 73 74 20 70 72 65 64 29 0a 20 20 22 53 6f 72 74 20 41 | list-sort.(alist.pred)..."Sort.A |
| 24c0 | 4c 49 53 54 20 28 62 79 20 6b 65 79 29 20 77 69 74 68 20 50 52 45 44 2e 22 0a 20 20 28 73 6f 72 | LIST.(by.key).with.PRED."...(sor |
| 24e0 | 74 20 61 6c 69 73 74 20 28 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28 66 75 6e 63 61 6c 6c 20 70 | t.alist.(lambda.(a.b).(funcall.p |
| 2500 | 72 65 64 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | red.(car.a).(car.b)))))..(defun. |
| 2520 | 6b 76 61 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 76 61 6c 75 65 20 28 61 6c 69 73 74 20 70 72 65 | kvalist-sort-by-value.(alist.pre |
| 2540 | 64 29 0a 20 20 22 53 6f 72 74 20 41 4c 49 53 54 20 62 79 20 76 61 6c 75 65 20 77 69 74 68 20 50 | d)..."Sort.ALIST.by.value.with.P |
| 2560 | 52 45 44 2e 22 0a 20 20 28 73 6f 72 74 20 61 6c 69 73 74 20 28 6c 61 6d 62 64 61 20 28 61 20 62 | RED."...(sort.alist.(lambda.(a.b |
| 2580 | 29 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 28 63 64 72 20 61 29 20 28 63 64 72 20 62 29 29 | ).(funcall.pred.(cdr.a).(cdr.b)) |
| 25a0 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73 | )))..(defun.kvalist->filter-keys |
| 25c0 | 20 28 61 6c 69 73 74 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 | .(alist.&rest.keys)..."Return.th |
| 25e0 | 65 20 41 4c 49 53 54 20 66 69 6c 74 65 72 65 64 20 74 6f 20 74 68 65 20 4b 45 59 53 20 6c 69 73 | e.ALIST.filtered.to.the.KEYS.lis |
| 2600 | 74 2e 0a 0a 4f 6e 6c 79 20 70 61 69 72 73 20 77 68 65 72 65 20 74 68 65 20 63 61 72 20 69 73 20 | t...Only.pairs.where.the.car.is. |
| 2620 | 61 20 60 6d 65 6d 62 65 72 27 20 6f 66 20 4b 45 59 53 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 | a.`member'.of.KEYS.will.be.retur |
| 2640 | 6e 65 64 2e 22 0a 20 20 28 6c 6f 6f 70 20 66 6f 72 20 61 20 69 6e 20 61 6c 69 73 74 0a 20 20 20 | ned."...(loop.for.a.in.alist.... |
| 2660 | 20 20 69 66 20 28 6d 65 6d 62 65 72 20 28 63 61 72 20 61 29 20 6b 65 79 73 29 0a 20 20 20 20 20 | ..if.(member.(car.a).keys)...... |
| 2680 | 63 6f 6c 6c 65 63 74 20 61 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 2d 3e 66 69 6c | collect.a))..(defun.kvplist->fil |
| 26a0 | 74 65 72 2d 6b 65 79 73 20 28 70 6c 69 73 74 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 46 | ter-keys.(plist.&rest.keys)..."F |
| 26c0 | 69 6c 74 65 72 20 74 68 65 20 70 6c 69 73 74 20 74 6f 20 6a 75 73 74 20 74 68 6f 73 65 20 6d 61 | ilter.the.plist.to.just.those.ma |
| 26e0 | 74 63 68 69 6e 67 20 4b 45 59 53 2e 0a 0a 60 6b 76 61 6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b | tching.KEYS...`kvalist->filter-k |
| 2700 | 65 79 73 27 20 69 73 20 61 63 74 75 61 6c 6c 79 20 75 73 65 64 20 74 6f 20 64 6f 20 74 68 69 73 | eys'.is.actually.used.to.do.this |
| 2720 | 20 77 6f 72 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 6b 65 79 73 0a 20 20 20 20 20 20 20 | .work."...(let.((symkeys........ |
| 2740 | 20 20 28 6c 6f 6f 70 20 66 6f 72 20 6b 20 69 6e 20 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 | ..(loop.for.k.in.keys........... |
| 2760 | 20 20 63 6f 6c 6c 65 63 74 20 28 6c 65 74 20 28 28 73 74 72 6b 65 79 20 28 73 79 6d 62 6f 6c 2d | ..collect.(let.((strkey.(symbol- |
| 2780 | 6e 61 6d 65 20 6b 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 | name.k)))....................... |
| 27a0 | 28 69 66 20 28 65 71 75 61 6c 20 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 6b 65 79 20 30 20 31 | (if.(equal.(substring.strkey.0.1 |
| 27c0 | 29 20 22 3a 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 | ).":").......................... |
| 27e0 | 20 28 69 6e 74 65 72 6e 20 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 6b 65 79 20 31 29 29 0a 20 | .(intern.(substring.strkey.1)).. |
| 2800 | 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 6b 29 29 29 29 29 0a | .........................k))))). |
| 2820 | 20 20 20 20 28 6b 76 61 6c 69 73 74 2d 3e 70 6c 69 73 74 0a 20 20 20 20 20 28 61 70 70 6c 79 0a | ....(kvalist->plist......(apply. |
| 2840 | 20 20 20 20 20 20 27 6b 76 61 6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73 0a 20 20 20 20 | ......'kvalist->filter-keys..... |
| 2860 | 20 20 28 63 6f 6e 73 20 28 6b 76 70 6c 69 73 74 2d 3e 61 6c 69 73 74 20 70 6c 69 73 74 29 20 73 | ..(cons.(kvplist->alist.plist).s |
| 2880 | 79 6d 6b 65 79 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 32 2d 3e 66 69 | ymkeys)))))..(defun.kvplist2->fi |
| 28a0 | 6c 74 65 72 2d 6b 65 79 73 20 28 70 6c 69 73 74 32 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 | lter-keys.(plist2.&rest.keys)... |
| 28c0 | 22 52 65 74 75 72 6e 20 74 68 65 20 50 4c 49 53 54 32 20 28 61 20 6c 69 73 74 20 6f 66 20 70 6c | "Return.the.PLIST2.(a.list.of.pl |
| 28e0 | 69 73 74 73 29 20 66 69 6c 74 65 72 65 64 20 74 6f 20 74 68 65 20 4b 45 59 53 2e 22 0a 20 20 28 | ists).filtered.to.the.KEYS."...( |
| 2900 | 6c 6f 6f 70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e 20 70 6c 69 73 74 32 0a 20 20 20 20 20 63 6f | loop.for.plist.in.plist2......co |
| 2920 | 6c 6c 65 63 74 20 28 61 70 70 6c 79 20 27 6b 76 70 6c 69 73 74 2d 3e 66 69 6c 74 65 72 2d 6b 65 | llect.(apply.'kvplist->filter-ke |
| 2940 | 79 73 20 28 63 6f 6e 73 20 70 6c 69 73 74 20 6b 65 79 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | ys.(cons.plist.keys))))..(defun. |
| 2960 | 6b 76 61 6c 69 73 74 32 2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73 20 28 61 6c 69 73 74 32 20 26 72 | kvalist2->filter-keys.(alist2.&r |
| 2980 | 65 73 74 20 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 41 4c 49 53 54 32 20 28 | est.keys)..."Return.the.ALIST2.( |
| 29a0 | 61 20 6c 69 73 74 20 6f 66 20 61 6c 69 73 74 73 29 20 66 69 6c 74 65 72 65 64 20 74 6f 20 74 68 | a.list.of.alists).filtered.to.th |
| 29c0 | 65 20 4b 45 59 53 2e 22 0a 20 20 28 6c 6f 6f 70 20 66 6f 72 20 61 6c 69 73 74 20 69 6e 20 61 6c | e.KEYS."...(loop.for.alist.in.al |
| 29e0 | 69 73 74 32 0a 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 61 70 70 6c 79 20 27 6b 76 61 6c 69 73 | ist2......collect.(apply.'kvalis |
| 2a00 | 74 2d 3e 66 69 6c 74 65 72 2d 6b 65 79 73 20 28 63 6f 6e 73 20 61 6c 69 73 74 20 6b 65 79 73 29 | t->filter-keys.(cons.alist.keys) |
| 2a20 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 32 2d 3e 61 6c 69 73 74 20 28 61 6c 69 | )))..(defun.kvalist2->alist.(ali |
| 2a40 | 73 74 32 20 63 61 72 2d 6b 65 79 20 63 64 72 2d 6b 65 79 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 | st2.car-key.cdr-key.&optional.pr |
| 2a60 | 6f 70 65 72 29 0a 20 20 22 52 65 64 75 63 65 20 74 68 65 20 41 4c 49 53 54 32 20 28 61 20 6c 69 | oper)..."Reduce.the.ALIST2.(a.li |
| 2a80 | 73 74 20 6f 66 20 61 6c 69 73 74 73 29 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 61 6c 69 73 74 2e | st.of.alists).to.a.single.alist. |
| 2aa0 | 0a 0a 43 41 52 2d 4b 45 59 20 69 73 20 74 68 65 20 6b 65 79 20 6f 66 20 65 61 63 68 20 61 6c 69 | ..CAR-KEY.is.the.key.of.each.ali |
| 2ac0 | 73 74 20 74 6f 20 75 73 65 20 61 73 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 6b 65 79 20 61 | st.to.use.as.the.resulting.key.a |
| 2ae0 | 6e 64 0a 43 44 52 2d 4b 45 59 20 69 73 20 74 68 65 20 6b 65 79 20 6f 66 20 65 61 63 68 20 61 6c | nd.CDR-KEY.is.the.key.of.each.al |
| 2b00 | 69 73 74 20 74 6f 20 75 73 65 72 20 61 73 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 63 64 72 | ist.to.user.as.the.resulting.cdr |
| 2b20 | 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 43 41 52 2d 4b 45 59 20 69 73 20 60 65 | ...For.example,.if.CAR-KEY.is.`e |
| 2b40 | 6d 61 69 6c 27 20 61 6e 64 20 43 44 52 2d 4b 45 59 20 69 73 20 60 6e 61 6d 65 27 20 74 68 65 0a | mail'.and.CDR-KEY.is.`name'.the. |
| 2b60 | 72 65 63 6f 72 64 73 3a 0a 0a 20 20 27 28 28 75 73 65 72 20 2e 20 5c 22 6e 69 63 5c 22 29 28 6e | records:....'((user...\"nic\")(n |
| 2b80 | 61 6d 65 20 2e 20 5c 22 4e 69 63 5c 22 29 28 65 6d 61 69 6c 20 2e 20 5c 22 6e 69 63 40 64 6f 6d | ame...\"Nic\")(email...\"nic@dom |
| 2ba0 | 61 69 6e 5c 22 29 0a 20 20 20 20 28 75 73 65 72 20 2e 20 5c 22 6a 69 6d 5c 22 29 28 6e 61 6d 65 | ain\").....(user...\"jim\")(name |
| 2bc0 | 20 2e 20 5c 22 4a 69 6d 5c 22 29 28 65 6d 61 69 6c 20 2e 20 5c 22 6a 69 6d 40 64 6f 6d 61 69 6e | ...\"Jim\")(email...\"jim@domain |
| 2be0 | 5c 22 29 29 0a 0a 63 6f 75 6c 64 20 62 65 20 72 65 64 75 63 65 64 20 74 6f 3a 0a 0a 20 20 27 28 | \"))..could.be.reduced.to:....'( |
| 2c00 | 28 5c 22 6e 69 63 40 64 6f 6d 61 69 6e 5c 22 20 2e 20 5c 22 4e 69 63 5c 22 29 0a 20 20 20 20 28 | (\"nic@domain\"...\"Nic\").....( |
| 2c20 | 5c 22 6a 69 6d 40 64 6f 6d 61 69 6e 5c 22 20 2e 20 5c 22 4a 69 63 5c 22 29 29 0a 0a 49 66 20 50 | \"jim@domain\"...\"Jic\"))..If.P |
| 2c40 | 52 4f 50 45 52 20 69 73 20 60 74 27 20 74 68 65 6e 20 74 68 65 20 61 6c 69 73 74 20 69 73 20 61 | ROPER.is.`t'.then.the.alist.is.a |
| 2c60 | 20 6c 69 73 74 20 6f 66 20 70 72 6f 70 65 72 20 6c 69 73 74 73 2c 20 6e 6f 74 0a 63 6f 6e 73 20 | .list.of.proper.lists,.not.cons. |
| 2c80 | 63 65 6c 6c 73 2e 22 0a 20 20 28 6c 6f 6f 70 20 66 6f 72 20 61 6c 69 73 74 20 69 6e 20 61 6c 69 | cells."...(loop.for.alist.in.ali |
| 2ca0 | 73 74 32 0a 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 61 70 70 6c 79 20 28 69 66 20 70 72 | st2........collect.(apply.(if.pr |
| 2cc0 | 6f 70 65 72 20 27 6c 69 73 74 20 27 63 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | oper.'list.'cons)............... |
| 2ce0 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(list................... |
| 2d00 | 20 20 20 20 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 63 61 72 2d 6b 65 79 20 61 6c 69 73 | .....(assoc-default.car-key.alis |
| 2d20 | 74 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 61 73 73 6f 63 | t)........................(assoc |
| 2d40 | 2d 64 65 66 61 75 6c 74 20 63 64 72 2d 6b 65 79 20 61 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 | -default.cdr-key.alist)))))..(de |
| 2d60 | 66 75 6e 20 6b 76 61 6c 69 73 74 2d 6b 65 79 73 2d 3e 2a 20 28 61 6c 69 73 74 20 66 6e 29 0a 20 | fun.kvalist-keys->*.(alist.fn).. |
| 2d80 | 20 22 43 6f 6e 76 65 72 74 20 74 68 65 20 6b 65 79 73 20 6f 66 20 41 4c 49 53 54 20 74 68 72 6f | ."Convert.the.keys.of.ALIST.thro |
| 2da0 | 75 67 68 20 46 4e 2e 22 0a 20 20 28 6d 61 70 63 61 72 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 70 | ugh.FN."...(mapcar....(lambda.(p |
| 2dc0 | 61 69 72 29 0a 20 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 | air)......(cons.......(funcall.f |
| 2de0 | 6e 20 28 63 61 72 20 70 61 69 72 29 29 0a 20 20 20 20 20 20 28 63 64 72 20 70 61 69 72 29 29 29 | n.(car.pair)).......(cdr.pair))) |
| 2e00 | 0a 20 20 20 61 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 2a 20 6b 76 61 6c 69 73 74 2d 6b 65 79 | ....alist))..(defun*.kvalist-key |
| 2e20 | 73 2d 3e 73 79 6d 62 6f 6c 73 20 28 61 6c 69 73 74 20 26 6b 65 79 20 28 66 69 72 73 74 2d 66 6e | s->symbols.(alist.&key.(first-fn |
| 2e40 | 20 27 69 64 65 6e 74 69 74 79 29 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 74 68 65 20 6b 65 79 73 | .'identity))..."Convert.the.keys |
| 2e60 | 20 6f 66 20 41 4c 49 53 54 20 69 6e 74 6f 20 73 79 6d 62 6f 6c 73 2e 0a 0a 49 66 20 6b 65 79 20 | .of.ALIST.into.symbols...If.key. |
| 2e80 | 70 61 72 61 6d 65 74 65 72 20 46 49 52 53 54 2d 46 4e 20 69 73 20 70 72 65 73 65 6e 74 20 69 74 | parameter.FIRST-FN.is.present.it |
| 2ea0 | 20 73 68 6f 75 6c 64 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 0a 77 68 69 63 68 20 77 69 6c 6c | .should.be.a.function.which.will |
| 2ec0 | 20 62 65 20 75 73 65 64 20 74 6f 20 66 69 72 73 74 20 74 72 61 6e 73 66 6f 72 6d 20 74 68 65 20 | .be.used.to.first.transform.the. |
| 2ee0 | 73 74 72 69 6e 67 20 6b 65 79 2e 20 20 41 20 70 6f 70 75 6c 61 72 0a 63 68 6f 69 63 65 20 6d 69 | string.key...A.popular.choice.mi |
| 2f00 | 67 68 74 20 62 65 20 60 64 6f 77 6e 63 61 73 65 27 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 | ght.be.`downcase'.for.example,.t |
| 2f20 | 6f 20 63 61 75 73 65 20 61 6c 6c 20 73 79 6d 62 6f 6c 20 6b 65 79 73 0a 74 6f 20 62 65 20 6c 6f | o.cause.all.symbol.keys.to.be.lo |
| 2f40 | 77 65 72 2d 63 61 73 65 2e 22 0a 20 20 28 6b 76 61 6c 69 73 74 2d 6b 65 79 73 2d 3e 2a 0a 20 20 | wer-case."...(kvalist-keys->*... |
| 2f60 | 20 61 6c 69 73 74 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 29 0a 20 20 20 20 20 28 69 6e | .alist....(lambda.(key)......(in |
| 2f80 | 74 65 72 6e 20 28 66 75 6e 63 61 6c 6c 20 66 69 72 73 74 2d 66 6e 20 28 66 6f 72 6d 61 74 20 22 | tern.(funcall.first-fn.(format." |
| 2fa0 | 25 73 22 20 6b 65 79 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 32 2d 66 | %s".key))))))..(defun.kvalist2-f |
| 2fc0 | 69 6c 74 65 72 20 28 61 6c 69 73 74 32 20 66 6e 29 0a 20 20 22 46 69 6c 74 65 72 20 74 68 65 20 | ilter.(alist2.fn)..."Filter.the. |
| 2fe0 | 6c 69 73 74 20 6f 66 20 61 6c 69 73 74 73 20 77 69 74 68 20 46 4e 2e 22 0a 20 20 28 6c 65 74 20 | list.of.alists.with.FN."...(let. |
| 3000 | 28 76 61 6c 75 65 29 0a 20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 72 65 63 20 69 6e 20 61 6c 69 | (value).....(loop.for.rec.in.ali |
| 3020 | 73 74 32 0a 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 76 61 6c 75 65 20 28 66 75 6e 63 61 | st2........do.(setq.value.(funca |
| 3040 | 6c 6c 20 66 6e 20 72 65 63 29 29 0a 20 20 20 20 20 20 20 69 66 20 76 61 6c 75 65 0a 20 20 20 20 | ll.fn.rec))........if.value..... |
| 3060 | 20 20 20 63 6f 6c 6c 65 63 74 20 72 65 63 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 69 64 65 6e | ...collect.rec)))..(defun.kviden |
| 3080 | 74 69 74 79 20 28 61 20 62 29 0a 20 20 22 52 65 74 75 72 6e 73 20 61 20 63 6f 6e 73 20 6f 66 20 | tity.(a.b)..."Returns.a.cons.of. |
| 30a0 | 41 20 42 2e 22 0a 20 20 28 63 6f 6e 73 20 61 20 62 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 63 61 | A.B."...(cons.a.b))..(defun.kvca |
| 30c0 | 72 20 28 61 20 62 29 0a 20 20 22 47 69 76 65 6e 20 41 20 42 20 72 65 74 75 72 6e 73 20 41 2e 22 | r.(a.b)..."Given.A.B.returns.A." |
| 30e0 | 0a 20 20 61 29 0a 0a 28 64 65 66 75 6e 20 6b 76 63 64 72 20 28 61 20 62 29 0a 20 20 22 47 69 76 | ...a)..(defun.kvcdr.(a.b)..."Giv |
| 3100 | 65 6e 20 41 20 42 20 72 65 74 75 72 6e 73 20 42 2e 22 0a 20 20 62 29 0a 0a 28 64 65 66 75 6e 20 | en.A.B.returns.B."...b)..(defun. |
| 3120 | 6b 76 63 6d 70 20 28 61 20 62 29 0a 20 20 22 44 6f 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f | kvcmp.(a.b)..."Do.a.comparison.o |
| 3140 | 66 20 74 68 65 20 74 77 6f 20 76 61 6c 75 65 73 20 75 73 69 6e 67 20 70 72 69 6e 74 61 62 6c 65 | f.the.two.values.using.printable |
| 3160 | 20 73 79 6e 74 61 78 2e 0a 0a 55 73 65 20 74 68 69 73 20 61 73 20 74 68 65 20 66 75 6e 63 74 69 | .syntax...Use.this.as.the.functi |
| 3180 | 6f 6e 20 74 6f 20 70 61 73 73 20 74 6f 20 60 73 6f 72 74 27 2e 22 0a 20 20 28 73 74 72 69 6e 67 | on.to.pass.to.`sort'."...(string |
| 31a0 | 2d 6c 65 73 73 70 20 28 69 66 20 61 20 28 66 6f 72 6d 61 74 20 22 25 53 22 20 61 29 20 22 22 29 | -lessp.(if.a.(format."%S".a)."") |
| 31c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 62 20 28 66 6f 72 6d 61 74 20 22 | .................(if.b.(format." |
| 31e0 | 25 53 22 20 62 29 20 22 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 71 73 6f 72 74 20 28 6c 73 | %S".b)."")))..(defun.kvqsort.(ls |
| 3200 | 74 29 0a 20 20 22 44 6f 20 61 20 73 6f 72 74 20 75 73 69 6e 67 20 60 6b 76 63 6d 70 27 2e 22 0a | t)..."Do.a.sort.using.`kvcmp'.". |
| 3220 | 20 20 28 73 6f 72 74 20 6c 73 74 20 27 6b 76 63 6d 70 29 29 0a 0a 28 70 72 6f 67 6e 0a 20 20 28 | ..(sort.lst.'kvcmp))..(progn...( |
| 3240 | 70 75 74 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79 0a 20 20 20 20 20 20 20 27 65 72 72 6f 72 2d 63 | put.'kvalist-key........'error-c |
| 3260 | 6f 6e 64 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 27 28 65 72 72 6f 72 29 29 0a 20 20 28 70 75 | onditions........'(error))...(pu |
| 3280 | 74 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79 0a 20 20 20 20 20 20 20 27 65 72 72 6f 72 2d 6d 65 73 | t.'kvalist-key........'error-mes |
| 32a0 | 73 61 67 65 0a 20 20 20 20 20 20 20 22 4e 6f 20 73 75 63 68 20 6b 65 79 20 66 6f 75 6e 64 20 69 | sage........"No.such.key.found.i |
| 32c0 | 6e 20 61 6c 69 73 74 2e 22 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 61 6c 69 73 74 2d 73 65 74 2d | n.alist."))..(defun.kvalist-set- |
| 32e0 | 76 61 6c 75 65 21 20 28 61 6c 69 73 74 20 6b 65 79 20 76 61 6c 75 65 29 0a 20 20 22 44 65 73 74 | value!.(alist.key.value)..."Dest |
| 3300 | 72 75 63 74 69 76 65 6c 79 20 73 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 4b 45 59 20 74 | ructively.set.the.value.of.KEY.t |
| 3320 | 6f 20 56 41 4c 55 45 20 69 6e 20 41 4c 49 53 54 2e 0a 0a 49 66 20 74 68 65 20 61 73 73 6f 63 20 | o.VALUE.in.ALIST...If.the.assoc. |
| 3340 | 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 74 68 69 73 20 61 64 64 73 20 69 74 20 74 6f 20 61 6c 69 | is.not.found.this.adds.it.to.ali |
| 3360 | 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 65 6c 6c 20 28 61 73 73 6f 63 20 6b 65 79 20 61 6c | st."...(let.((cell.(assoc.key.al |
| 3380 | 69 73 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 63 65 6c 6c 29 0a 20 20 20 20 | ist))).....(if.(consp.cell)..... |
| 33a0 | 20 20 20 20 28 73 65 74 63 64 72 20 63 65 6c 6c 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 | ....(setcdr.cell.value)......... |
| 33c0 | 3b 3b 20 45 6c 73 65 20 77 68 61 74 20 74 6f 20 64 6f 3f 0a 20 20 20 20 20 20 20 20 28 73 69 67 | ;;.Else.what.to.do?.........(sig |
| 33e0 | 6e 61 6c 20 27 6b 76 61 6c 69 73 74 2d 6b 65 79 20 28 6c 69 73 74 20 61 6c 69 73 74 20 6b 65 79 | nal.'kvalist-key.(list.alist.key |
| 3400 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73 73 6f 63 2d 66 6e 20 28 65 78 70 | )))))..(defun.kvdotassoc-fn.(exp |
| 3420 | 72 20 74 61 62 6c 65 20 66 75 6e 63 29 0a 20 20 22 55 73 65 20 74 68 65 20 64 6f 74 74 65 64 20 | r.table.func)..."Use.the.dotted. |
| 3440 | 45 58 50 52 20 74 6f 20 61 63 63 65 73 73 20 64 65 65 70 6c 79 20 6e 65 73 74 65 64 20 64 61 74 | EXPR.to.access.deeply.nested.dat |
| 3460 | 61 20 69 6e 20 54 41 42 4c 45 2e 0a 0a 45 58 50 52 20 69 73 20 61 20 64 6f 74 20 73 65 70 61 72 | a.in.TABLE...EXPR.is.a.dot.separ |
| 3480 | 61 74 65 64 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 65 69 74 68 65 72 20 61 20 73 79 6d 62 6f 6c | ated.expression,.either.a.symbol |
| 34a0 | 20 6f 72 20 61 20 73 74 72 69 6e 67 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 5c 22 61 | .or.a.string..For.example:...\"a |
| 34c0 | 2e 62 2e 63 5c 22 0a 0a 6f 72 3a 0a 0a 20 27 61 2e 62 2e 63 0a 0a 49 66 20 74 68 65 20 45 58 50 | .b.c\"..or:...'a.b.c..If.the.EXP |
| 34e0 | 52 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 74 68 65 6e 20 74 68 65 20 6b 65 79 73 20 6f 66 20 74 | R.is.a.symbol.then.the.keys.of.t |
| 3500 | 68 65 20 61 6c 69 73 74 20 61 72 65 20 61 6c 73 6f 0a 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 | he.alist.are.also.expected.to.be |
| 3520 | 20 73 79 6d 62 6f 6c 73 2e 0a 0a 54 41 42 4c 45 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 | .symbols...TABLE.is.expected.to. |
| 3540 | 62 65 20 61 6e 20 61 6c 69 73 74 20 63 75 72 72 65 6e 74 6c 79 2e 0a 0a 46 55 4e 43 20 69 73 20 | be.an.alist.currently...FUNC.is. |
| 3560 | 73 6f 6d 65 20 73 6f 72 74 20 6f 66 20 60 61 73 73 6f 63 27 20 6c 69 6b 65 20 66 75 6e 63 74 69 | some.sort.of.`assoc'.like.functi |
| 3580 | 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 74 65 20 74 61 62 6c 65 29 0a 20 20 20 20 20 | on."...(let.((state.table)...... |
| 35a0 | 20 20 20 28 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 | ...(parts..........(if.(symbolp. |
| 35c0 | 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 | expr)..............(mapcar...... |
| 35e0 | 20 20 20 20 20 20 20 20 20 27 69 6e 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .........'intern...............( |
| 3600 | 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 65 78 70 72 29 20 | split-string.(symbol-name.expr). |
| 3620 | 22 5c 5c 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 20 69 74 27 | "\\."))..............;;.Else.it' |
| 3640 | 73 20 61 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 | s.a.string..............(split-s |
| 3660 | 74 72 69 6e 67 20 65 78 70 72 20 22 5c 5c 2e 22 29 29 29 29 0a 20 20 20 20 28 63 61 74 63 68 20 | tring.expr."\\.")))).....(catch. |
| 3680 | 27 62 72 65 61 6b 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6c 69 73 74 70 20 70 61 72 74 73 | 'break.......(while.(listp.parts |
| 36a0 | 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 76 65 72 73 65 20 28 66 75 6e 63 61 | ).........(let.((traverse.(funca |
| 36c0 | 6c 6c 20 66 75 6e 63 20 28 63 61 72 20 70 61 72 74 73 29 20 73 74 61 74 65 29 29 29 0a 20 20 20 | ll.func.(car.parts).state))).... |
| 36e0 | 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 74 73 20 28 63 64 72 20 70 61 72 74 73 29 29 0a | .......(setq.parts.(cdr.parts)). |
| 3700 | 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(if.parts............. |
| 3720 | 20 20 28 73 65 74 71 20 73 74 61 74 65 20 28 63 64 72 20 74 72 61 76 65 72 73 65 29 29 0a 20 20 | ..(setq.state.(cdr.traverse))... |
| 3740 | 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 28 63 64 72 20 74 | ............(throw.'break.(cdr.t |
| 3760 | 72 61 76 65 72 73 65 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73 73 | raverse))))))))..(defun.kvdotass |
| 3780 | 6f 63 20 28 65 78 70 72 20 74 61 62 6c 65 29 0a 20 20 22 44 6f 74 74 65 64 20 65 78 70 72 65 73 | oc.(expr.table)..."Dotted.expres |
| 37a0 | 73 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 20 77 69 74 68 20 60 61 73 73 6f 63 27 2e 22 0a 20 20 28 | sion.handling.with.`assoc'."...( |
| 37c0 | 6b 76 64 6f 74 61 73 73 6f 63 2d 66 6e 20 65 78 70 72 20 74 61 62 6c 65 20 27 61 73 73 6f 63 29 | kvdotassoc-fn.expr.table.'assoc) |
| 37e0 | 29 0a 0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73 73 71 20 28 65 78 70 72 20 74 61 62 6c 65 29 | )..(defun.kvdotassq.(expr.table) |
| 3800 | 0a 20 20 22 44 6f 74 74 65 64 20 65 78 70 72 65 73 73 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 20 77 | ..."Dotted.expression.handling.w |
| 3820 | 69 74 68 20 60 61 73 73 71 27 2e 22 0a 20 20 28 6b 76 64 6f 74 61 73 73 6f 63 2d 66 6e 20 65 78 | ith.`assq'."...(kvdotassoc-fn.ex |
| 3840 | 70 72 20 74 61 62 6c 65 20 27 61 73 73 71 29 29 0a 0a 28 64 65 66 75 6e 20 6b 76 64 6f 74 61 73 | pr.table.'assq))..(defun.kvdotas |
| 3860 | 73 6f 63 3d 20 28 65 78 70 72 20 76 61 6c 75 65 20 74 61 62 6c 65 29 0a 20 20 28 6c 65 74 20 28 | soc=.(expr.value.table)...(let.( |
| 3880 | 28 76 20 28 6b 76 64 6f 74 61 73 73 6f 63 20 65 78 70 72 20 74 61 62 6c 65 29 29 29 0a 20 20 20 | (v.(kvdotassoc.expr.table))).... |
| 38a0 | 20 28 61 6e 64 20 76 20 28 65 71 75 61 6c 20 76 20 76 61 6c 75 65 29 20 76 29 29 29 0a 0a 28 64 | .(and.v.(equal.v.value).v)))..(d |
| 38c0 | 65 66 61 6c 69 61 73 20 27 64 6f 74 61 73 73 6f 63 20 27 6b 76 64 6f 74 61 73 73 6f 63 29 0a 28 | efalias.'dotassoc.'kvdotassoc).( |
| 38e0 | 64 65 66 61 6c 69 61 73 20 27 64 6f 74 61 73 73 71 20 27 6b 76 64 6f 74 61 73 73 71 29 0a 0a 3b | defalias.'dotassq.'kvdotassq)..; |
| 3900 | 3b 20 54 68 61 6e 6b 20 79 6f 75 20 74 61 79 6c 61 6e 75 62 20 66 6f 72 20 74 68 69 73 20 77 6f | ;.Thank.you.taylanub.for.this.wo |
| 3920 | 6e 64 65 72 66 75 6c 20 61 62 73 74 72 61 63 74 69 6f 6e 2e 0a 28 64 65 66 6d 61 63 72 6f 20 6b | nderful.abstraction..(defmacro.k |
| 3940 | 76 2d 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 6d 61 70 20 28 6d 61 70 2d 66 75 6e 63 74 69 | v--destructuring-map.(map-functi |
| 3960 | 6f 6e 20 61 72 67 73 20 73 65 71 75 65 6e 63 65 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 | on.args.sequence.&rest.body)..." |
| 3980 | 48 65 6c 70 65 72 20 6d 61 63 72 6f 20 66 6f 72 20 60 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d | Helper.macro.for.`destructuring- |
| 39a0 | 6d 61 70 63 61 72 27 20 61 6e 64 20 60 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 6d 61 70 27 2e | mapcar'.and.`destructuring-map'. |
| 39c0 | 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 33 29 29 0a 20 20 28 6c 65 74 20 | "...(declare.(indent.3))...(let. |
| 39e0 | 28 28 65 6e 74 72 79 20 28 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 60 28 2c 6d 61 70 2d 66 75 | ((entry.(gensym))).....`(,map-fu |
| 3a00 | 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 2c 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 | nction.(lambda.(,entry)......... |
| 3a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e | ..............(destructuring-bin |
| 3a40 | 64 20 2c 61 72 67 73 20 2c 65 6e 74 72 79 20 2c 40 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 | d.,args.,entry.,@body))......... |
| 3a60 | 20 20 20 20 20 20 20 20 20 20 20 20 2c 73 65 71 75 65 6e 63 65 29 29 29 0a 0a 28 64 65 66 6d 61 | ............,sequence)))..(defma |
| 3a80 | 63 72 6f 20 6b 76 6d 61 70 2d 62 69 6e 64 20 28 61 72 67 73 20 73 65 78 70 20 73 65 71 29 0a 20 | cro.kvmap-bind.(args.sexp.seq).. |
| 3aa0 | 20 22 41 20 68 79 62 72 69 64 20 6f 66 20 60 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e | ."A.hybrid.of.`destructuring-bin |
| 3ac0 | 64 27 20 61 6e 64 20 60 6d 61 70 63 61 72 27 0a 41 52 47 53 20 73 68 61 6c 6c 20 62 65 20 6f 66 | d'.and.`mapcar'.ARGS.shall.be.of |
| 3ae0 | 20 74 68 65 20 66 6f 72 6d 20 75 73 65 64 20 77 69 74 68 20 60 64 65 73 74 72 75 63 74 75 72 69 | .the.form.used.with.`destructuri |
| 3b00 | 6e 67 2d 62 69 6e 64 27 0a 0a 55 6e 6c 69 6b 65 20 6d 6f 73 74 20 6f 74 68 65 72 20 6d 61 70 70 | ng-bind'..Unlike.most.other.mapp |
| 3b20 | 69 6e 67 20 66 6f 72 6d 73 20 74 68 69 73 20 69 73 20 61 20 6d 61 63 72 6f 20 69 6e 74 65 6e 64 | ing.forms.this.is.a.macro.intend |
| 3b40 | 65 64 20 74 6f 20 62 65 0a 75 73 65 64 20 66 6f 72 20 73 74 72 75 63 74 75 72 61 6c 20 74 72 61 | ed.to.be.used.for.structural.tra |
| 3b60 | 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 2c 20 73 6f 20 74 68 65 20 65 78 70 65 63 74 65 64 20 75 73 | nsformations,.so.the.expected.us |
| 3b80 | 61 67 65 20 77 69 6c 6c 0a 62 65 20 74 68 61 74 20 41 52 47 53 20 64 65 73 63 72 69 62 65 73 20 | age.will.be.that.ARGS.describes. |
| 3ba0 | 74 68 65 20 73 74 72 75 63 74 75 72 65 20 6f 66 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 53 45 | the.structure.of.the.items.in.SE |
| 3bc0 | 51 2c 20 61 6e 64 0a 53 45 58 50 20 77 69 6c 6c 20 64 65 73 63 72 69 62 65 20 74 68 65 20 73 74 | Q,.and.SEXP.will.describe.the.st |
| 3be0 | 72 75 63 74 75 72 65 20 64 65 73 69 72 65 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e | ructure.desired."...(declare.(in |
| 3c00 | 64 65 6e 74 20 32 29 29 0a 20 20 60 28 6b 76 2d 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 6d | dent.2))...`(kv--destructuring-m |
| 3c20 | 61 70 20 6d 61 70 63 61 72 20 2c 61 72 67 73 20 2c 73 65 71 20 2c 73 65 78 70 29 29 0a 0a 28 64 | ap.mapcar.,args.,seq.,sexp))..(d |
| 3c40 | 65 66 61 6c 69 61 73 20 27 6d 61 70 2d 62 69 6e 64 20 27 6b 76 6d 61 70 2d 62 69 6e 64 29 0a 0a | efalias.'map-bind.'kvmap-bind).. |
| 3c60 | 28 64 65 66 75 6e 20 6b 76 70 6c 69 73 74 2d 6d 65 72 67 65 20 28 26 72 65 73 74 20 70 6c 69 73 | (defun.kvplist-merge.(&rest.plis |
| 3c80 | 74 73 29 0a 20 20 22 4d 65 72 67 65 20 74 68 65 20 32 6e 64 20 61 6e 64 20 73 75 62 73 65 71 75 | ts)..."Merge.the.2nd.and.subsequ |
| 3ca0 | 65 6e 74 20 70 6c 69 73 74 73 20 69 6e 74 6f 20 74 68 65 20 66 69 72 73 74 2e 0a 0a 56 61 6c 75 | ent.plists.into.the.first...Valu |
| 3cc0 | 65 73 20 73 65 74 20 62 79 20 6c 69 73 74 73 20 74 6f 20 74 68 65 20 6c 65 66 74 20 61 72 65 20 | es.set.by.lists.to.the.left.are. |
| 3ce0 | 63 6c 6f 62 62 65 72 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 63 61 72 | clobbered."...(let.((result.(car |
| 3d00 | 20 70 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 73 20 28 63 64 72 20 70 | .plists)).........(plists.(cdr.p |
| 3d20 | 6c 69 73 74 73 29 29 29 0a 20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 70 6c 69 73 74 20 69 6e 20 | lists))).....(loop.for.plist.in. |
| 3d40 | 70 6c 69 73 74 73 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 70 20 66 6f 72 20 28 6b | plists.do...........(loop.for.(k |
| 3d60 | 65 79 20 76 61 6c 29 20 6f 6e 20 70 6c 69 73 74 20 62 79 20 27 63 64 64 72 20 64 6f 0a 20 20 20 | ey.val).on.plist.by.'cddr.do.... |
| 3d80 | 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 20 28 70 6c 69 73 74 | .............(setq.result.(plist |
| 3da0 | 2d 70 75 74 20 72 65 73 75 6c 74 20 6b 65 79 20 76 61 6c 29 29 29 29 0a 20 20 20 20 72 65 73 75 | -put.result.key.val)))).....resu |
| 3dc0 | 6c 74 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6b 76 29 0a 28 70 72 6f 76 69 64 65 20 27 64 6f | lt))..(provide.'kv).(provide.'do |
| 3de0 | 74 61 73 73 6f 63 29 0a 0a 3b 3b 3b 20 6b 76 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 | tassoc)..;;;.kv.el.ends.here.... |
| 3e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 47a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 47c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 47e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |