| ofs | hex dump | ascii |
|---|
| 0000 | 61 2d 32 30 32 31 30 39 32 39 2e 31 35 31 30 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | a-20210929.1510/................ |
| 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 32 33 30 00 20 35 00 00 00 | 0000000.00000000000.011230..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 | 61 2d 32 30 32 31 30 39 32 39 2e 31 35 31 30 2f 61 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 | a-20210929.1510/a-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 33 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 35 35 32 00 20 30 00 00 00 | 0000632.00000000000.012552..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 61 22 20 22 32 30 32 31 30 39 32 39 2e 31 35 31 30 22 0a 20 20 22 41 73 73 6f 63 | age."a"."20210929.1510"..."Assoc |
| 0460 | 69 61 74 69 76 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 | iative.data.structure.functions. |
| 0480 | 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 22 29 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 | "...'((emacs."25"))...:url."http |
| 04a0 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 6c 65 78 75 73 2f 61 2e 65 6c 22 0a 20 20 3a 63 | s://github.com/plexus/a.el"...:c |
| 04c0 | 6f 6d 6d 69 74 20 22 39 61 64 32 64 31 38 32 35 32 62 37 32 39 31 37 34 66 65 32 32 65 64 30 62 | ommit."9ad2d18252b729174fe22ed0b |
| 04e0 | 32 62 37 36 37 30 63 38 38 66 36 30 63 33 31 22 0a 20 20 3a 72 65 76 64 65 73 63 20 22 39 61 64 | 2b7670c88f60c31"...:revdesc."9ad |
| 0500 | 32 64 31 38 32 35 32 62 37 22 0a 20 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 6c 69 73 70 22 29 | 2d18252b7"...:keywords.'("lisp") |
| 0520 | 0a 20 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 41 72 6e 65 20 42 72 61 73 73 65 75 72 22 20 2e | ...:authors.'(("Arne.Brasseur".. |
| 0540 | 20 22 61 72 6e 65 40 61 72 6e 65 62 72 61 73 73 65 75 72 2e 6e 65 74 22 29 29 0a 20 20 3a 6d 61 | ."arne@arnebrasseur.net"))...:ma |
| 0560 | 69 6e 74 61 69 6e 65 72 73 20 27 28 28 22 41 72 6e 65 20 42 72 61 73 73 65 75 72 22 20 2e 20 22 | intainers.'(("Arne.Brasseur"..." |
| 0580 | 61 72 6e 65 40 61 72 6e 65 62 72 61 73 73 65 75 72 2e 6e 65 74 22 29 29 29 0a 00 00 00 00 00 00 | arne@arnebrasseur.net")))....... |
| 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 | 61 2d 32 30 32 31 30 39 32 39 2e 31 35 31 30 2f 61 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 | a-20210929.1510/a.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 30 31 32 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 37 37 35 00 20 30 00 00 00 | 0030127.00000000000.011775..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 61 2e 65 6c 20 2d 2d 2d 20 41 73 73 6f 63 69 61 74 69 76 65 20 64 61 74 61 20 73 74 | ;;;.a.el.---.Associative.data.st |
| 0820 | 72 75 63 74 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d | ructure.functions...-*-.lexical- |
| 0840 | 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 | binding:.t;.-*-..;;.Copyright.(C |
| 0860 | 29 20 32 30 31 37 2d 32 30 32 31 20 20 41 72 6e 65 20 42 72 61 73 73 65 75 72 0a 0a 3b 3b 20 41 | ).2017-2021..Arne.Brasseur..;;.A |
| 0880 | 75 74 68 6f 72 3a 20 41 72 6e 65 20 42 72 61 73 73 65 75 72 20 3c 61 72 6e 65 40 61 72 6e 65 62 | uthor:.Arne.Brasseur.<arne@arneb |
| 08a0 | 72 61 73 73 65 75 72 2e 6e 65 74 3e 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 | rasseur.net>.;;.URL:.https://git |
| 08c0 | 68 75 62 2e 63 6f 6d 2f 70 6c 65 78 75 73 2f 61 2e 65 6c 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a | hub.com/plexus/a.el.;;.Keywords: |
| 08e0 | 20 6c 69 73 70 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 56 65 72 73 69 6f 6e 3a 20 32 30 32 31 30 39 | .lisp.;;.Package-Version:.202109 |
| 0900 | 32 39 2e 31 35 31 30 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 76 69 73 69 6f 6e 3a 20 39 61 64 | 29.1510.;;.Package-Revision:.9ad |
| 0920 | 32 64 31 38 32 35 32 62 37 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 | 2d18252b7.;;.Package-Requires:.( |
| 0940 | 28 65 6d 61 63 73 20 22 32 35 22 29 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e | (emacs."25"))..;;.This.file.is.n |
| 0960 | 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 | ot.part.of.GNU.Emacs...;;.This.f |
| 0980 | 69 6c 65 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 65 | ile.is.free.software;.you.can.re |
| 09a0 | 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 69 | distribute.it.and/or.modify.;;.i |
| 09c0 | 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 6e | t.under.the.terms.of.the.GNU.Gen |
| 09e0 | 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 64 | eral.Public.License.as.published |
| 0a00 | 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 74 | .by.;;.the.Free.Software.Foundat |
| 0a20 | 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f | ion;.either.version.3,.or.(at.yo |
| 0a40 | 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e | ur.option).;;.any.later.version. |
| 0a60 | 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e | ..;;.This.file.is.distributed.in |
| 0a80 | 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 |
| 0aa0 | 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 |
| 0ac0 | 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 |
| 0ae0 | 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 |
| 0b00 | 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 |
| 0b20 | 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 |
| 0b40 | 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 |
| 0b60 | 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. |
| 0b80 | 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 |
| 0ba0 | 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 | ong.with.GNU.Emacs;.see.the.file |
| 0bc0 | 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 0a 3b 3b 20 74 | .COPYING...If.not,.write.to.;;.t |
| 0be0 | 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 20 49 6e 63 | he.Free.Software.Foundation,.Inc |
| 0c00 | 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f | .,.51.Franklin.Street,.Fifth.Flo |
| 0c20 | 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 | or,.;;.Boston,.MA.02110-1301,.US |
| 0c40 | 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 4c 69 62 72 61 72 79 20 | A...;;;.Commentary:..;;.Library. |
| 0c60 | 66 6f 72 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 61 73 73 6f 63 69 61 74 69 76 65 20 64 61 74 | for.dealing.with.associative.dat |
| 0c80 | 61 20 73 74 72 75 63 74 75 72 65 73 3a 20 61 6c 69 73 74 73 2c 20 68 61 73 68 2d 6d 61 70 73 2c | a.structures:.alists,.hash-maps, |
| 0ca0 | 20 61 6e 64 0a 3b 3b 20 76 65 63 74 6f 72 73 20 28 66 6f 72 20 76 65 63 74 6f 72 73 2c 20 74 68 | .and.;;.vectors.(for.vectors,.th |
| 0cc0 | 65 20 69 6e 64 69 63 65 73 20 61 72 65 20 74 72 65 61 74 65 64 20 61 73 20 6b 65 79 73 29 2e 0a | e.indices.are.treated.as.keys).. |
| 0ce0 | 3b 3b 0a 3b 3b 20 54 68 69 73 20 6c 69 62 72 61 72 79 20 69 73 20 6c 61 72 67 65 6c 79 20 69 6e | ;;.;;.This.library.is.largely.in |
| 0d00 | 73 70 69 72 65 64 20 62 79 20 43 6c 6f 6a 75 72 65 2c 20 69 74 20 68 61 73 20 6d 61 6e 79 20 6f | spired.by.Clojure,.it.has.many.o |
| 0d20 | 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b 20 66 6f 75 6e 64 20 69 6e 20 63 6c 6f 6a | f.the.functions.;;.found.in.cloj |
| 0d40 | 75 72 65 2e 63 6f 72 65 2c 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 60 61 2d 27 2e 20 41 6c | ure.core,.prefixed.with.`a-'..Al |
| 0d60 | 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74 72 65 61 74 20 74 68 65 69 72 0a 3b 3b 20 61 72 67 75 6d | l.functions.treat.their.;;.argum |
| 0d80 | 65 6e 74 73 20 61 73 20 69 6d 6d 75 74 61 62 6c 65 2c 20 73 6f 20 65 2e 67 2e 20 60 61 2d 61 73 | ents.as.immutable,.so.e.g..`a-as |
| 0da0 | 73 6f 63 27 20 77 69 6c 6c 20 63 6c 6f 6e 65 20 74 68 65 20 68 61 73 68 2d 74 61 62 6c 65 20 6f | soc'.will.clone.the.hash-table.o |
| 0dc0 | 72 20 61 6c 69 73 74 0a 3b 3b 20 69 74 20 69 73 20 67 69 76 65 6e 2e 20 4b 65 65 70 20 74 68 69 | r.alist.;;.it.is.given..Keep.thi |
| 0de0 | 73 20 69 6e 20 6d 69 6e 64 20 77 68 65 6e 20 77 72 69 74 69 6e 67 20 70 65 72 66 6f 72 6d 61 6e | s.in.mind.when.writing.performan |
| 0e00 | 63 65 20 73 65 6e 73 69 74 69 76 65 20 63 6f 64 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 | ce.sensitive.code...;;;.Code:..( |
| 0e20 | 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 73 75 62 72 | eval-when-compile.(require.'subr |
| 0e40 | 2d 78 29 29 20 3b 3b 20 66 6f 72 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 68 61 73 68 2d 74 61 62 | -x)).;;.for.things.like.hash-tab |
| 0e60 | 6c 65 2d 6b 65 79 73 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 | le-keys..(require.'cl-lib).(requ |
| 0e80 | 69 72 65 20 27 73 65 71 29 0a 0a 28 64 65 66 75 6e 20 61 2d 61 73 73 6f 63 69 61 74 69 76 65 2d | ire.'seq)..(defun.a-associative- |
| 0ea0 | 70 20 28 6f 62 6a 29 0a 20 20 28 6f 72 20 28 6e 6f 74 20 6f 62 6a 29 0a 20 20 20 20 20 20 28 68 | p.(obj)...(or.(not.obj).......(h |
| 0ec0 | 61 73 68 2d 74 61 62 6c 65 2d 70 20 6f 62 6a 29 0a 20 20 20 20 20 20 28 61 6e 64 20 28 63 6f 6e | ash-table-p.obj).......(and.(con |
| 0ee0 | 73 70 20 6f 62 6a 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 70 20 28 63 61 72 20 6f | sp.obj)............(consp.(car.o |
| 0f00 | 62 6a 29 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 61 2d 61 73 73 6f 63 69 61 74 69 76 | bj)))))..(defalias.'a-associativ |
| 0f20 | 65 3f 20 27 61 2d 61 73 73 6f 63 69 61 74 69 76 65 2d 70 29 0a 0a 28 64 65 66 75 6e 20 61 2d 67 | e?.'a-associative-p)..(defun.a-g |
| 0f40 | 65 74 20 28 6d 61 70 20 6b 65 79 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 74 2d 66 6f 75 6e 64 29 | et.(map.key.&optional.not-found) |
| 0f60 | 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 4d 41 50 20 6d 61 70 70 65 64 20 | ..."Return.the.value.MAP.mapped. |
| 0f80 | 74 6f 20 4b 45 59 2c 20 4e 4f 54 2d 46 4f 55 4e 44 20 6f 72 20 6e 69 6c 20 69 66 20 6b 65 79 20 | to.KEY,.NOT-FOUND.or.nil.if.key. |
| 0fa0 | 6e 6f 74 20 70 72 65 73 65 6e 74 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b 3b 20 6f 77 6e 20 | not.present."...(cond....;;.own. |
| 0fc0 | 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 6e 73 74 65 61 64 20 6f 66 20 61 6c 69 73 74 2d | implementation.instead.of.alist- |
| 0fe0 | 67 65 74 20 73 6f 20 6b 65 79 73 20 61 72 65 20 63 68 65 63 6b 65 64 20 77 69 74 68 20 65 71 75 | get.so.keys.are.checked.with.equ |
| 1000 | 61 6c 0a 20 20 20 3b 3b 20 69 6e 73 74 65 61 64 20 6f 66 20 65 71 0a 20 20 20 28 28 6c 69 73 74 | al....;;.instead.of.eq....((list |
| 1020 | 70 20 6d 61 70 29 0a 20 20 20 20 28 61 2d 2d 61 6c 69 73 74 2d 67 65 74 20 6d 61 70 20 6b 65 79 | p.map).....(a--alist-get.map.key |
| 1040 | 20 6e 6f 74 2d 66 6f 75 6e 64 29 29 0a 0a 20 20 20 28 28 76 65 63 74 6f 72 70 20 6d 61 70 29 0a | .not-found)).....((vectorp.map). |
| 1060 | 20 20 20 20 28 69 66 20 28 61 2d 68 61 73 2d 6b 65 79 3f 20 6d 61 70 20 6b 65 79 29 0a 20 20 20 | ....(if.(a-has-key?.map.key).... |
| 1080 | 20 20 20 20 20 28 61 72 65 66 20 6d 61 70 20 6b 65 79 29 0a 20 20 20 20 20 20 6e 6f 74 2d 66 6f | .....(aref.map.key).......not-fo |
| 10a0 | 75 6e 64 29 29 0a 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 6d 61 70 29 0a 20 20 | und)).....((hash-table-p.map)... |
| 10c0 | 20 20 28 67 65 74 68 61 73 68 20 6b 65 79 20 6d 61 70 20 6e 6f 74 2d 66 6f 75 6e 64 29 29 0a 20 | ..(gethash.key.map.not-found)).. |
| 10e0 | 20 20 28 74 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 61 73 73 6f 63 69 61 74 69 76 | ..(t.(user-error."Not.associativ |
| 1100 | 65 3a 20 25 53 22 20 6d 61 70 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 2d 61 6c 69 73 74 2d | e:.%S".map))))..(defun.a--alist- |
| 1120 | 67 65 74 20 28 6d 61 70 20 6b 65 79 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 74 2d 66 6f 75 6e 64 | get.(map.key.&optional.not-found |
| 1140 | 29 0a 20 20 22 4c 69 6b 65 20 61 6c 69 73 74 2d 67 65 74 2c 20 62 75 74 20 75 73 65 73 20 65 71 | )..."Like.alist-get,.but.uses.eq |
| 1160 | 75 61 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 65 71 20 74 6f 20 6c 6f 6f 6b 20 75 70 20 69 6e 20 | ual.instead.of.eq.to.look.up.in. |
| 1180 | 6d 61 70 20 4d 41 50 20 6b 65 79 20 4b 45 59 2e 0a 52 65 74 75 72 6e 73 20 4e 4f 54 2d 46 4f 55 | map.MAP.key.KEY..Returns.NOT-FOU |
| 11a0 | 4e 44 20 69 66 20 74 68 65 20 6b 65 79 20 69 73 20 6e 6f 74 20 70 72 65 73 65 6e 74 2c 20 6f 72 | ND.if.the.key.is.not.present,.or |
| 11c0 | 20 60 6e 69 6c 27 20 69 66 0a 4e 4f 54 2d 46 4f 55 4e 44 20 69 73 20 6e 6f 74 20 73 70 65 63 69 | .`nil'.if.NOT-FOUND.is.not.speci |
| 11e0 | 66 69 65 64 2e 22 0a 20 20 28 63 6c 2d 62 6c 6f 63 6b 20 6e 69 6c 0a 20 20 20 20 28 73 65 71 2d | fied."...(cl-block.nil.....(seq- |
| 1200 | 64 6f 73 65 71 20 28 70 61 69 72 20 6d 61 70 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 | doseq.(pair.map).......(when.(eq |
| 1220 | 75 61 6c 20 28 63 61 72 20 70 61 69 72 29 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d | ual.(car.pair).key).........(cl- |
| 1240 | 72 65 74 75 72 6e 20 28 63 64 72 20 70 61 69 72 29 29 29 29 0a 20 20 20 20 6e 6f 74 2d 66 6f 75 | return.(cdr.pair)))).....not-fou |
| 1260 | 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 67 65 74 2d 69 6e 20 28 6d 20 6b 73 20 26 6f 70 74 | nd))..(defun.a-get-in.(m.ks.&opt |
| 1280 | 69 6f 6e 61 6c 20 6e 6f 74 2d 66 6f 75 6e 64 29 0a 20 20 22 4c 6f 6f 6b 20 75 70 20 61 20 76 61 | ional.not-found)..."Look.up.a.va |
| 12a0 | 6c 75 65 20 69 6e 20 61 20 6e 65 73 74 65 64 20 61 73 73 6f 63 69 61 74 69 76 65 20 73 74 72 75 | lue.in.a.nested.associative.stru |
| 12c0 | 63 74 75 72 65 2e 0a 0a 47 69 76 65 6e 20 61 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 4d | cture...Given.a.data.structure.M |
| 12e0 | 2c 20 61 6e 64 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 6b 65 79 73 20 4b 53 2c 20 66 69 6e | ,.and.a.sequence.of.keys.KS,.fin |
| 1300 | 64 20 74 68 65 0a 76 61 6c 75 65 20 66 6f 75 6e 64 20 62 79 20 75 73 69 6e 67 20 65 61 63 68 20 | d.the.value.found.by.using.each. |
| 1320 | 6b 65 79 20 69 6e 20 74 75 72 6e 20 74 6f 20 64 6f 20 61 20 6c 6f 6f 6b 75 70 20 69 6e 20 74 68 | key.in.turn.to.do.a.lookup.in.th |
| 1340 | 65 20 6e 65 78 74 0a 5c 22 6c 61 79 65 72 5c 22 2e 20 52 65 74 75 72 6e 20 60 6e 69 6c 27 20 69 | e.next.\"layer\"..Return.`nil'.i |
| 1360 | 66 20 74 68 65 20 6b 65 79 20 69 73 20 6e 6f 74 20 70 72 65 73 65 6e 74 2c 20 6f 72 20 74 68 65 | f.the.key.is.not.present,.or.the |
| 1380 | 20 4e 4f 54 2d 46 4f 55 4e 44 0a 76 61 6c 75 65 20 69 66 20 73 75 70 70 6c 69 65 64 2e 22 0a 20 | .NOT-FOUND.value.if.supplied.".. |
| 13a0 | 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 6d 29 29 0a 20 20 20 20 28 63 6c 2d 62 6c 6f 63 6b | .(let.((result.m)).....(cl-block |
| 13c0 | 20 6e 69 6c 0a 20 20 20 20 20 20 28 73 65 71 2d 64 6f 73 65 71 20 28 6b 20 6b 73 29 0a 20 20 20 | .nil.......(seq-doseq.(k.ks).... |
| 13e0 | 20 20 20 20 20 28 69 66 20 28 61 2d 68 61 73 2d 6b 65 79 3f 20 72 65 73 75 6c 74 20 6b 29 0a 20 | .....(if.(a-has-key?.result.k).. |
| 1400 | 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 61 2d 67 65 74 20 72 | ...........(setq.result.(a-get.r |
| 1420 | 65 73 75 6c 74 20 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 74 75 72 6e 20 6e | esult.k))...........(cl-return.n |
| 1440 | 6f 74 2d 66 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 | ot-found))).......result)))..(de |
| 1460 | 66 6d 61 63 72 6f 20 61 2d 67 65 74 2a 20 28 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 4c 6f | fmacro.a-get*.(&rest.keys)..."Lo |
| 1480 | 6f 6b 20 75 70 20 61 20 76 61 6c 75 65 20 69 6e 20 61 20 6e 65 73 74 65 64 20 61 73 73 6f 63 69 | ok.up.a.value.in.a.nested.associ |
| 14a0 | 61 74 69 76 65 20 73 74 72 75 63 74 75 72 65 2e 0a 0a 4c 69 6b 65 20 61 2d 67 65 74 2d 69 6e 2c | ative.structure...Like.a-get-in, |
| 14c0 | 20 62 75 74 20 74 61 6b 65 73 20 74 68 65 20 6b 65 79 20 73 65 71 75 65 6e 63 65 20 4b 45 59 53 | .but.takes.the.key.sequence.KEYS |
| 14e0 | 20 64 69 72 65 63 74 6c 79 20 61 73 20 76 61 72 61 72 67 0a 61 72 67 75 6d 65 6e 74 73 2c 20 72 | .directly.as.vararg.arguments,.r |
| 1500 | 61 74 68 65 72 20 74 68 61 6e 20 61 73 20 61 20 73 69 6e 67 6c 65 20 73 65 71 75 65 6e 63 65 2e | ather.than.as.a.single.sequence. |
| 1520 | 22 0a 20 20 28 63 6c 2d 6c 61 62 65 6c 73 20 28 28 72 65 63 20 28 6b 65 79 73 29 0a 20 20 20 20 | "...(cl-labels.((rec.(keys)..... |
| 1540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 61 2d 67 65 74 20 2c 28 69 66 20 28 61 6e 64 | ...............`(a-get.,(if.(and |
| 1560 | 20 28 63 6f 6e 73 70 20 28 63 64 72 20 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .(consp.(cdr.keys))............. |
| 1580 | 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 63 64 64 72 20 6b | .........................(cddr.k |
| 15a0 | 65 79 73 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 | eys))........................... |
| 15c0 | 20 20 20 20 20 20 28 72 65 63 20 28 63 64 72 20 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 | ......(rec.(cdr.keys)).......... |
| 15e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 64 72 20 6b 65 79 73 29 | .....................(cadr.keys) |
| 1600 | 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 2c 28 63 | )............................,(c |
| 1620 | 61 72 20 6b 65 79 73 29 29 29 29 0a 20 20 20 20 28 72 65 63 20 28 6e 72 65 76 65 72 73 65 20 6b | ar.keys)))).....(rec.(nreverse.k |
| 1640 | 65 79 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 68 61 73 2d 6b 65 79 20 28 63 6f 6c 6c 20 | eys))))..(defun.a-has-key.(coll. |
| 1660 | 6b 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 61 73 73 6f 63 69 61 | k)..."Check.if.the.given.associa |
| 1680 | 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 20 68 61 73 20 61 20 63 65 72 74 61 | tive.collection.COLL.has.a.certa |
| 16a0 | 69 6e 20 6b 65 79 20 4b 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6c 69 73 74 70 20 63 6f | in.key.K."...(cond....((listp.co |
| 16c0 | 6c 6c 29 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 61 2d 2d 61 6c 69 73 74 2d 67 | ll).........(not.(eq.(a--alist-g |
| 16e0 | 65 74 20 63 6f 6c 6c 20 6b 20 3a 6e 6f 74 2d 66 6f 75 6e 64 29 20 3a 6e 6f 74 2d 66 6f 75 6e 64 | et.coll.k.:not-found).:not-found |
| 1700 | 29 29 29 0a 20 20 20 28 28 76 65 63 74 6f 72 70 20 63 6f 6c 6c 29 20 20 20 20 20 20 20 28 61 6e | )))....((vectorp.coll).......(an |
| 1720 | 64 20 28 69 6e 74 65 67 65 72 70 20 6b 29 20 28 3c 20 2d 31 20 6b 20 28 6c 65 6e 67 74 68 20 63 | d.(integerp.k).(<.-1.k.(length.c |
| 1740 | 6f 6c 6c 29 29 29 29 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 20 | oll))))....((hash-table-p.coll). |
| 1760 | 20 28 6e 6f 74 20 28 65 71 20 28 67 65 74 68 61 73 68 20 6b 20 63 6f 6c 6c 20 3a 6e 6f 74 2d 66 | .(not.(eq.(gethash.k.coll.:not-f |
| 1780 | 6f 75 6e 64 29 20 3a 6e 6f 74 2d 66 6f 75 6e 64 29 29 29 0a 20 20 20 28 74 20 28 75 73 65 72 2d | ound).:not-found)))....(t.(user- |
| 17a0 | 65 72 72 6f 72 20 22 4e 6f 74 20 61 73 73 6f 63 69 61 74 69 76 65 3a 20 25 53 22 20 63 6f 6c 6c | error."Not.associative:.%S".coll |
| 17c0 | 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 61 2d 68 61 73 2d 6b 65 79 3f 20 27 61 2d 68 | ))))..(defalias.'a-has-key?.'a-h |
| 17e0 | 61 73 2d 6b 65 79 29 0a 0a 28 64 65 66 75 6e 20 61 2d 61 73 73 6f 63 2d 31 20 28 63 6f 6c 6c 20 | as-key)..(defun.a-assoc-1.(coll. |
| 1800 | 6b 20 76 29 0a 20 20 22 4c 69 6b 65 20 60 61 2d 61 73 73 6f 63 27 2c 20 28 69 6e 20 43 4f 4c 4c | k.v)..."Like.`a-assoc',.(in.COLL |
| 1820 | 20 61 73 73 6f 63 20 4b 20 77 69 74 68 20 56 29 20 62 75 74 20 6f 6e 6c 79 20 74 61 6b 65 73 20 | .assoc.K.with.V).but.only.takes. |
| 1840 | 61 20 73 69 6e 67 6c 65 20 6b 2d 76 20 70 61 69 72 2e 0a 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 | a.single.k-v.pair..Internal.help |
| 1860 | 65 72 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6c 69 73 74 70 | er.function."...(cond....((listp |
| 1880 | 20 63 6f 6c 6c 29 0a 20 20 20 20 28 69 66 20 28 61 2d 68 61 73 2d 6b 65 79 3f 20 63 6f 6c 6c 20 | .coll).....(if.(a-has-key?.coll. |
| 18a0 | 6b 29 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 65 6e 74 72 | k).........(mapcar.(lambda.(entr |
| 18c0 | 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 | y)...................(if.(equal. |
| 18e0 | 28 63 61 72 20 65 6e 74 72 79 29 20 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (car.entry).k).................. |
| 1900 | 20 20 20 20 20 28 63 6f 6e 73 20 6b 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(cons.k.v)................. |
| 1920 | 20 20 20 20 65 6e 74 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c | ....entry)).................coll |
| 1940 | 29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 6f 6e 73 20 6b 20 76 29 20 63 6f 6c 6c 29 29 29 | ).......(cons.(cons.k.v).coll))) |
| 1960 | 0a 0a 20 20 20 28 28 76 65 63 74 6f 72 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 69 66 20 28 61 6e | .....((vectorp.coll).....(if.(an |
| 1980 | 64 20 28 69 6e 74 65 67 65 72 70 20 6b 29 20 28 3e 3d 20 6b 20 30 29 29 0a 20 20 20 20 20 20 20 | d.(integerp.k).(>=.k.0))........ |
| 19a0 | 20 28 69 66 20 28 3c 20 6b 20 28 6c 65 6e 67 74 68 20 63 6f 6c 6c 29 29 0a 20 20 20 20 20 20 20 | .(if.(<.k.(length.coll))........ |
| 19c0 | 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 70 79 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 | .....(let.((copy.(copy-sequence. |
| 19e0 | 63 6f 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 63 6f 70 79 | coll)))...............(aset.copy |
| 1a00 | 20 6b 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 70 79 29 0a 20 20 20 20 20 20 | .k.v)...............copy)....... |
| 1a20 | 20 20 20 20 28 76 63 6f 6e 63 61 74 20 63 6f 6c 6c 20 28 6d 61 6b 65 2d 6c 69 73 74 20 28 2d 20 | ....(vconcat.coll.(make-list.(-. |
| 1a40 | 6b 20 28 6c 65 6e 67 74 68 20 63 6f 6c 6c 29 29 20 6e 69 6c 29 20 28 6c 69 73 74 20 76 29 29 29 | k.(length.coll)).nil).(list.v))) |
| 1a60 | 29 29 0a 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 0a 20 20 20 20 | )).....((hash-table-p.coll)..... |
| 1a80 | 28 6c 65 74 20 28 28 63 6f 70 79 20 28 63 6f 70 79 2d 68 61 73 68 2d 74 61 62 6c 65 20 63 6f 6c | (let.((copy.(copy-hash-table.col |
| 1aa0 | 6c 29 29 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 6b 20 76 20 63 6f 70 79 29 0a 20 20 | l))).......(puthash.k.v.copy)... |
| 1ac0 | 20 20 20 20 63 6f 70 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 61 73 73 6f 63 20 28 63 6f | ....copy))))..(defun.a-assoc.(co |
| 1ae0 | 6c 6c 20 26 72 65 73 74 20 6b 76 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 75 70 64 61 74 | ll.&rest.kvs)..."Return.an.updat |
| 1b00 | 65 64 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 61 73 73 6f 63 69 61 74 69 6e 67 20 | ed.collection.COLL,.associating. |
| 1b20 | 76 61 6c 75 65 73 20 77 69 74 68 20 6b 65 79 73 20 4b 56 53 2e 22 0a 20 20 28 77 68 65 6e 20 28 | values.with.keys.KVS."...(when.( |
| 1b40 | 6e 6f 74 20 28 63 6c 2d 65 76 65 6e 70 20 28 61 2d 63 6f 75 6e 74 20 6b 76 73 29 29 29 0a 20 20 | not.(cl-evenp.(a-count.kvs)))... |
| 1b60 | 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 61 2d 61 73 73 6f 63 20 72 65 71 75 69 72 65 73 20 | ..(user-error."a-assoc.requires. |
| 1b80 | 61 6e 20 65 76 65 6e 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 21 22 29 29 0a | an.even.number.of.arguments!")). |
| 1ba0 | 20 20 28 73 65 71 2d 72 65 64 75 63 65 20 28 6c 61 6d 62 64 61 20 28 63 6f 6c 6c 20 6b 76 29 0a | ..(seq-reduce.(lambda.(coll.kv). |
| 1bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 6c 65 74 20 5b 6b 20 76 5d | ..................(seq-let.[k.v] |
| 1be0 | 20 6b 76 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 61 73 73 6f 63 | .kv.....................(a-assoc |
| 1c00 | 2d 31 20 63 6f 6c 6c 20 6b 20 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | -1.coll.k.v)))...............(se |
| 1c20 | 71 2d 70 61 72 74 69 74 69 6f 6e 20 6b 76 73 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | q-partition.kvs.2).............. |
| 1c40 | 20 63 6f 6c 6c 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 6b 65 79 73 20 28 63 6f 6c 6c 29 0a 20 20 | .coll))..(defun.a-keys.(coll)... |
| 1c60 | 22 52 65 74 75 72 6e 20 74 68 65 20 6b 65 79 73 20 69 6e 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 | "Return.the.keys.in.the.collecti |
| 1c80 | 6f 6e 20 43 4f 4c 4c 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6c 69 73 74 70 20 63 6f 6c | on.COLL."...(cond....((listp.col |
| 1ca0 | 6c 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 63 6f 6c 6c 29 29 0a 0a 20 20 20 | l).....(mapcar.#'car.coll))..... |
| 1cc0 | 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 68 61 73 68 2d 74 | ((hash-table-p.coll).....(hash-t |
| 1ce0 | 61 62 6c 65 2d 6b 65 79 73 20 63 6f 6c 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 76 61 6c | able-keys.coll))))..(defun.a-val |
| 1d00 | 73 20 28 63 6f 6c 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 73 20 69 6e | s.(coll)..."Return.the.values.in |
| 1d20 | 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 | .the.collection.COLL."...(cond.. |
| 1d40 | 20 20 28 28 6c 69 73 74 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 63 64 | ..((listp.coll).....(mapcar.#'cd |
| 1d60 | 72 20 63 6f 6c 6c 29 29 0a 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c | r.coll)).....((hash-table-p.coll |
| 1d80 | 29 0a 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 76 61 6c 75 65 73 20 63 6f 6c 6c 29 29 29 | ).....(hash-table-values.coll))) |
| 1da0 | 29 0a 0a 28 64 65 66 75 6e 20 61 2d 72 65 64 75 63 65 2d 6b 76 20 28 66 6e 20 66 72 6f 6d 20 63 | )..(defun.a-reduce-kv.(fn.from.c |
| 1dc0 | 6f 6c 6c 29 0a 20 20 22 52 65 64 75 63 65 20 77 69 74 68 20 46 4e 20 73 74 61 72 74 69 6e 67 20 | oll)..."Reduce.with.FN.starting. |
| 1de0 | 66 72 6f 6d 20 46 52 4f 4d 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2e 0a 52 | from.FROM.the.collection.COLL..R |
| 1e00 | 65 64 75 63 65 20 61 6e 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 | educe.an.associative.collection. |
| 1e20 | 43 4f 4c 4c 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 61 6e 20 69 6e 69 74 69 61 6c 0a 76 | COLL,.starting.with.an.initial.v |
| 1e40 | 61 6c 75 65 20 6f 66 20 46 52 4f 4d 2e 20 54 68 65 20 72 65 64 75 63 69 6e 67 20 66 75 6e 63 74 | alue.of.FROM..The.reducing.funct |
| 1e60 | 69 6f 6e 20 46 4e 20 72 65 63 65 69 76 65 73 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 | ion.FN.receives.the.intermediate |
| 1e80 | 0a 76 61 6c 75 65 2c 20 6b 65 79 2c 20 61 6e 64 20 76 61 6c 75 65 2e 22 0a 20 20 28 73 65 71 2d | .value,.key,.and.value."...(seq- |
| 1ea0 | 72 65 64 75 63 65 20 28 6c 61 6d 62 64 61 20 28 61 63 63 20 6b 65 79 29 0a 20 20 20 20 20 20 20 | reduce.(lambda.(acc.key)........ |
| 1ec0 | 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 61 63 63 20 6b 65 79 20 28 | ...........(funcall.fn.acc.key.( |
| 1ee0 | 61 2d 67 65 74 20 63 6f 6c 6c 20 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a-get.coll.key)))............... |
| 1f00 | 28 61 2d 6b 65 79 73 20 63 6f 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 72 6f 6d | (a-keys.coll)...............from |
| 1f20 | 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 63 6f 75 6e 74 20 28 63 6f 6c 6c 29 0a 20 20 22 43 6f 75 | ))..(defun.a-count.(coll)..."Cou |
| 1f40 | 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 | nt.the.number.of.key-value.pairs |
| 1f60 | 20 69 6e 20 43 4f 4c 4c 2e 0a 4c 69 6b 65 20 6c 65 6e 67 74 68 2c 20 62 75 74 20 63 61 6e 20 61 | .in.COLL..Like.length,.but.can.a |
| 1f80 | 6c 73 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 68 61 73 68 20 74 61 | lso.return.the.length.of.hash.ta |
| 1fa0 | 62 6c 65 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 73 65 71 70 20 63 6f 6c 6c 29 0a 20 | bles."...(cond....((seqp.coll).. |
| 1fc0 | 20 20 20 28 6c 65 6e 67 74 68 20 63 6f 6c 6c 29 29 0a 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 | ...(length.coll)).....((hash-tab |
| 1fe0 | 6c 65 2d 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 63 6f 75 6e 74 | le-p.coll).....(hash-table-count |
| 2000 | 20 63 6f 6c 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 65 71 75 61 6c 20 28 61 20 62 29 0a | .coll))))..(defun.a-equal.(a.b). |
| 2020 | 20 20 22 43 6f 6d 70 61 72 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 41 2c 20 42 20 66 6f 72 20 | .."Compare.collections.A,.B.for. |
| 2040 | 76 61 6c 75 65 20 65 71 75 61 6c 69 74 79 2e 0a 0a 41 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c | value.equality...Associative.col |
| 2060 | 6c 65 63 74 69 6f 6e 73 20 28 68 61 73 68 20 74 61 62 6c 65 73 20 61 6e 64 20 61 2d 6c 69 73 74 | lections.(hash.tables.and.a-list |
| 2080 | 73 29 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 0a 65 71 75 61 6c 20 69 66 20 74 68 65 79 20 | s).are.considered.equal.if.they. |
| 20a0 | 63 6f 6e 74 61 69 6e 20 65 71 75 61 6c 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 2c 20 72 | contain.equal.key-value.pairs,.r |
| 20c0 | 65 67 61 72 64 6c 65 73 73 20 6f 66 20 6f 72 64 65 72 2e 0a 0a 53 65 71 75 65 6e 63 65 73 20 28 | egardless.of.order...Sequences.( |
| 20e0 | 6c 69 73 74 73 20 6f 72 20 76 65 63 74 6f 72 73 29 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 | lists.or.vectors).are.considered |
| 2100 | 20 65 71 75 61 6c 20 69 66 20 74 68 65 79 20 63 6f 6e 74 61 69 6e 0a 74 68 65 20 73 61 6d 65 20 | .equal.if.they.contain.the.same. |
| 2120 | 65 6c 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6f 72 64 65 72 2e 0a 0a 43 6f 6c | elements.in.the.same.order...Col |
| 2140 | 6c 65 63 74 69 6f 6e 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 75 73 | lection.elements.are.compared.us |
| 2160 | 69 6e 67 20 60 61 2d 65 71 75 61 6c 27 2e 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 0a 74 | ing.`a-equal'..In.other.words,.t |
| 2180 | 68 65 20 65 71 75 61 6c 69 74 79 20 63 68 65 63 6b 20 69 73 20 72 65 63 75 72 73 69 76 65 2c 20 | he.equality.check.is.recursive,. |
| 21a0 | 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 61 20 5c 22 64 65 65 70 5c 22 20 65 71 75 61 6c 69 74 79 | resulting.in.a.\"deep\".equality |
| 21c0 | 0a 63 68 65 63 6b 2e 0a 0a 41 6e 79 74 68 69 6e 67 20 74 68 61 74 20 69 73 6e 27 74 20 61 73 73 | .check...Anything.that.isn't.ass |
| 21e0 | 6f 63 69 61 74 69 76 65 20 6f 72 20 61 20 73 65 71 75 65 6e 63 65 20 69 73 20 63 6f 6d 70 61 72 | ociative.or.a.sequence.is.compar |
| 2200 | 65 64 20 77 69 74 68 0a 60 65 71 75 61 6c 27 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 61 | ed.with.`equal'."...(cond....((a |
| 2220 | 6e 64 20 28 61 2d 61 73 73 6f 63 69 61 74 69 76 65 3f 20 61 29 20 28 61 2d 61 73 73 6f 63 69 61 | nd.(a-associative?.a).(a-associa |
| 2240 | 74 69 76 65 3f 20 62 29 29 0a 20 20 20 20 28 6f 72 20 28 65 71 75 61 6c 20 61 20 62 29 0a 20 20 | tive?.b)).....(or.(equal.a.b)... |
| 2260 | 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 61 2d 63 6f 75 6e 74 20 61 29 20 28 61 2d 63 | ......(when.(eq.(a-count.a).(a-c |
| 2280 | 6f 75 6e 74 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 62 6c 6f 63 6b 20 6e 69 6c | ount.b))...........(cl-block.nil |
| 22a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 64 6f 73 65 71 20 28 6b 20 28 61 2d 6b 65 | .............(seq-doseq.(k.(a-ke |
| 22c0 | 79 73 20 61 29 29 0a 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 | ys.a))...............(when.(not. |
| 22e0 | 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | (and...........................( |
| 2300 | 61 2d 68 61 73 2d 6b 65 79 20 62 20 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a-has-key.b.k).................. |
| 2320 | 20 20 20 20 20 20 20 20 20 28 61 2d 65 71 75 61 6c 20 28 61 2d 67 65 74 20 61 20 6b 29 20 28 61 | .........(a-equal.(a-get.a.k).(a |
| 2340 | 2d 67 65 74 20 62 20 6b 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c | -get.b.k)))).................(cl |
| 2360 | 2d 72 65 74 75 72 6e 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d | -return.nil))).............(seq- |
| 2380 | 64 6f 73 65 71 20 28 6b 20 28 61 2d 6b 65 79 73 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | doseq.(k.(a-keys.b))............ |
| 23a0 | 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(when.(not.(and.............. |
| 23c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 68 61 73 2d 6b 65 79 20 61 20 6b 29 0a 20 20 20 | .............(a-has-key.a.k).... |
| 23e0 | 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 2d 65 71 75 61 6c 20 | .......................(a-equal. |
| 2400 | 28 61 2d 67 65 74 20 61 20 6b 29 20 28 61 2d 67 65 74 20 62 20 6b 29 29 29 29 0a 20 20 20 20 20 | (a-get.a.k).(a-get.b.k))))...... |
| 2420 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 74 75 72 6e 20 6e 69 6c 29 29 29 0a 20 20 20 | ...........(cl-return.nil))).... |
| 2440 | 20 20 20 20 20 20 20 20 20 74 29 29 29 29 0a 20 20 20 28 28 61 6e 64 20 28 73 65 71 75 65 6e 63 | .........t))))....((and.(sequenc |
| 2460 | 65 70 20 61 29 20 28 73 65 71 75 65 6e 63 65 70 20 62 29 29 0a 20 20 20 20 28 61 6e 64 20 28 65 | ep.a).(sequencep.b)).....(and.(e |
| 2480 | 71 20 28 6c 65 6e 67 74 68 20 61 29 20 28 6c 65 6e 67 74 68 20 62 29 29 0a 20 20 20 20 20 20 20 | q.(length.a).(length.b))........ |
| 24a0 | 20 20 28 6f 72 20 28 61 6e 64 20 28 73 65 71 2d 65 6d 70 74 79 2d 70 20 61 29 20 28 73 65 71 2d | ..(or.(and.(seq-empty-p.a).(seq- |
| 24c0 | 65 6d 70 74 79 2d 70 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 61 | empty-p.b))..............(and.(a |
| 24e0 | 2d 65 71 75 61 6c 20 28 65 6c 74 20 61 20 30 29 20 28 65 6c 74 20 62 20 30 29 29 0a 20 20 20 20 | -equal.(elt.a.0).(elt.b.0))..... |
| 2500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 65 71 75 61 6c 20 28 73 65 71 2d 64 72 6f 70 | ..............(a-equal.(seq-drop |
| 2520 | 20 61 20 31 29 20 28 73 65 71 2d 64 72 6f 70 20 62 20 31 29 29 29 29 29 29 0a 20 20 20 28 74 0a | .a.1).(seq-drop.b.1))))))....(t. |
| 2540 | 20 20 20 20 28 65 71 75 61 6c 20 61 20 62 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 61 | ....(equal.a.b))))..(defalias.'a |
| 2560 | 2d 65 71 75 61 6c 3f 20 27 61 2d 65 71 75 61 6c 29 0a 0a 28 64 65 66 75 6e 20 61 2d 6d 65 72 67 | -equal?.'a-equal)..(defun.a-merg |
| 2580 | 65 20 28 26 72 65 73 74 20 63 6f 6c 6c 73 29 0a 20 20 22 4d 65 72 67 65 20 6d 75 6c 74 69 70 6c | e.(&rest.colls)..."Merge.multipl |
| 25a0 | 65 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 2e 0a 52 65 74 75 72 | e.associative.collections..Retur |
| 25c0 | 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 63 6f 6c 6c 65 63 74 69 | n.the.type.of.the.first.collecti |
| 25e0 | 6f 6e 20 43 4f 4c 4c 53 2e 22 0a 20 20 28 73 65 71 2d 72 65 64 75 63 65 20 28 6c 61 6d 62 64 61 | on.COLLS."...(seq-reduce.(lambda |
| 2600 | 20 28 74 68 69 73 20 74 68 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d | .(this.that).................(a- |
| 2620 | 72 65 64 75 63 65 2d 6b 76 20 28 6c 61 6d 62 64 61 20 28 63 6f 6c 6c 20 6b 20 76 29 0a 20 20 20 | reduce-kv.(lambda.(coll.k.v).... |
| 2640 | 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 61 2d 61 | ............................(a-a |
| 2660 | 73 73 6f 63 20 63 6f 6c 6c 20 6b 20 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ssoc.coll.k.v))................. |
| 2680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............this............... |
| 26a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 61 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ...............that))........... |
| 26c0 | 20 20 20 20 28 63 64 72 20 63 6f 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ....(cdr.colls)...............(c |
| 26e0 | 61 72 20 63 6f 6c 6c 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 6d 65 72 67 65 2d 77 69 74 68 | ar.colls)))..(defun.a-merge-with |
| 2700 | 20 28 66 20 26 72 65 73 74 20 63 6f 6c 6c 73 29 0a 20 20 22 4d 65 72 67 65 20 6d 75 6c 74 69 70 | .(f.&rest.colls)..."Merge.multip |
| 2720 | 6c 65 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 2e 0a 52 65 74 75 | le.associative.collections..Retu |
| 2740 | 72 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 63 6f 6c 6c 65 63 74 | rn.the.type.of.the.first.collect |
| 2760 | 69 6f 6e 20 43 4f 4c 4c 53 2e 20 49 66 20 61 20 6b 65 79 20 65 78 69 73 74 73 20 69 6e 0a 62 6f | ion.COLLS..If.a.key.exists.in.bo |
| 2780 | 74 68 2c 20 74 68 65 6e 20 63 6f 6d 62 69 6e 65 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 | th,.then.combine.the.associated. |
| 27a0 | 76 61 6c 75 65 73 20 62 79 20 63 61 6c 6c 69 6e 67 20 66 20 6f 6e 20 74 68 65 6d 2e 22 0a 20 20 | values.by.calling.f.on.them."... |
| 27c0 | 28 73 65 71 2d 72 65 64 75 63 65 20 28 6c 61 6d 62 64 61 20 28 74 68 69 73 20 74 68 61 74 29 0a | (seq-reduce.(lambda.(this.that). |
| 27e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 72 65 64 75 63 65 2d 6b 76 20 28 6c 61 | ................(a-reduce-kv.(la |
| 2800 | 6d 62 64 61 20 28 63 6f 6c 6c 20 6b 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mbda.(coll.k.v)................. |
| 2820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 61 73 73 6f 63 20 63 6f 6c 6c 20 6b 20 28 | ...............(a-assoc.coll.k.( |
| 2840 | 69 66 20 28 61 2d 68 61 73 2d 6b 65 79 20 63 6f 6c 6c 20 6b 29 0a 20 20 20 20 20 20 20 20 20 20 | if.(a-has-key.coll.k)........... |
| 2860 | 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 | ................................ |
| 2880 | 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 20 76 20 28 61 2d 67 65 74 20 63 6f 6c | .........(funcall.f.v.(a-get.col |
| 28a0 | 6c 20 6b 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 | l.k))........................... |
| 28c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 29 29 29 0a 20 20 20 20 | .......................v)))..... |
| 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 74 68 69 73 0a 20 20 | .........................this... |
| 2900 | 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 74 68 61 74 29 | ...........................that) |
| 2920 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 63 6f 6c 6c 73 29 0a 20 20 20 20 | )...............(cdr.colls)..... |
| 2940 | 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 63 6f 6c 6c 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 | ..........(car.colls)))..(defun. |
| 2960 | 61 2d 61 6c 69 73 74 20 28 26 72 65 73 74 20 6b 76 73 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e | a-alist.(&rest.kvs)..."Create.an |
| 2980 | 20 61 73 73 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e | .association.list.from.the.given |
| 29a0 | 20 6b 65 79 73 20 61 6e 64 20 76 61 6c 75 65 73 20 4b 56 53 2e 0a 41 72 67 75 6d 65 6e 74 73 20 | .keys.and.values.KVS..Arguments. |
| 29c0 | 61 72 65 20 73 69 6d 70 6c 79 20 70 72 6f 76 69 64 65 64 20 69 6e 20 73 65 71 75 65 6e 63 65 2c | are.simply.provided.in.sequence, |
| 29e0 | 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 73 20 6c 69 73 74 73 20 6f 72 20 63 6f 6e 73 20 63 65 | .rather.than.as.lists.or.cons.ce |
| 2a00 | 6c 6c 73 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 3a 20 28 61 2d 61 6c 69 73 74 20 3a 66 6f 6f 20 | lls..For.example:.(a-alist.:foo. |
| 2a20 | 31 32 33 20 3a 62 61 72 20 34 35 36 29 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 | 123.:bar.456)"...(mapcar.(lambda |
| 2a40 | 20 28 6b 76 29 20 28 63 6f 6e 73 20 28 63 61 72 20 6b 76 29 20 28 63 61 64 72 20 6b 76 29 29 29 | .(kv).(cons.(car.kv).(cadr.kv))) |
| 2a60 | 20 28 73 65 71 2d 70 61 72 74 69 74 69 6f 6e 20 6b 76 73 20 32 29 29 29 0a 0a 28 64 65 66 61 6c | .(seq-partition.kvs.2)))..(defal |
| 2a80 | 69 61 73 20 27 61 2d 6c 69 73 74 20 27 61 2d 61 6c 69 73 74 29 0a 0a 28 64 65 66 75 6e 20 61 2d | ias.'a-list.'a-alist)..(defun.a- |
| 2aa0 | 68 61 73 68 2d 74 61 62 6c 65 20 28 26 72 65 73 74 20 6b 76 73 29 0a 20 20 22 43 72 65 61 74 65 | hash-table.(&rest.kvs)..."Create |
| 2ac0 | 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 6b 65 79 | .a.hash.table.from.the.given.key |
| 2ae0 | 73 20 61 6e 64 20 76 61 6c 75 65 73 20 4b 56 53 2e 0a 41 72 67 75 6d 65 6e 74 73 20 61 72 65 20 | s.and.values.KVS..Arguments.are. |
| 2b00 | 73 69 6d 70 6c 79 20 70 72 6f 76 69 64 65 64 20 69 6e 20 73 65 71 75 65 6e 63 65 2c 20 72 61 74 | simply.provided.in.sequence,.rat |
| 2b20 | 68 65 72 20 74 68 61 6e 20 61 73 20 6c 69 73 74 73 0a 6f 72 20 63 6f 6e 73 20 63 65 6c 6c 73 2e | her.than.as.lists.or.cons.cells. |
| 2b40 | 20 41 73 20 5c 22 74 65 73 74 5c 22 20 66 6f 72 20 74 68 65 20 68 61 73 68 20 74 61 62 6c 65 2c | .As.\"test\".for.the.hash.table, |
| 2b60 | 20 65 71 75 61 6c 20 69 73 20 75 73 65 64 2e 20 54 68 65 0a 68 61 73 68 20 74 61 62 6c 65 20 69 | .equal.is.used..The.hash.table.i |
| 2b80 | 73 20 63 72 65 61 74 65 64 20 77 69 74 68 6f 75 74 20 65 78 74 72 61 20 73 74 6f 72 61 67 65 20 | s.created.without.extra.storage. |
| 2ba0 | 73 70 61 63 65 2c 20 73 6f 20 77 69 74 68 20 61 20 73 69 7a 65 0a 65 71 75 61 6c 20 74 6f 20 61 | space,.so.with.a.size.equal.to.a |
| 2bc0 | 6d 6f 75 6e 74 20 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 2c 20 73 69 6e 63 65 20 | mount.of.key-value.pairs,.since. |
| 2be0 | 69 74 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 0a 74 72 65 61 74 65 64 20 61 73 20 69 | it.is.assumed.to.be.treated.as.i |
| 2c00 | 6d 6d 75 74 61 62 6c 65 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 3a 20 28 61 2d 68 61 73 68 2d 74 | mmutable..For.example:.(a-hash-t |
| 2c20 | 61 62 6c 65 20 3a 66 6f 6f 20 31 32 33 20 3a 62 61 72 20 34 35 36 29 22 0a 20 20 28 6c 65 74 2a | able.:foo.123.:bar.456)"...(let* |
| 2c40 | 20 28 28 6b 76 2d 70 61 69 72 73 20 28 73 65 71 2d 70 61 72 74 69 74 69 6f 6e 20 6b 76 73 20 32 | .((kv-pairs.(seq-partition.kvs.2 |
| 2c60 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 61 73 68 2d 6d 61 70 20 28 6d 61 6b 65 2d 68 61 73 68 | ))..........(hash-map.(make-hash |
| 2c80 | 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 20 3a 73 69 7a 65 20 28 6c 65 6e 67 74 | -table.:test.'equal.:size.(lengt |
| 2ca0 | 68 20 6b 76 2d 70 61 69 72 73 29 29 29 29 0a 20 20 20 20 28 73 65 71 2d 64 6f 20 28 6c 61 6d 62 | h.kv-pairs)))).....(seq-do.(lamb |
| 2cc0 | 64 61 20 28 70 61 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 | da.(pair)...............(puthash |
| 2ce0 | 20 28 63 61 72 20 70 61 69 72 29 20 28 63 61 64 72 20 70 61 69 72 29 20 68 61 73 68 2d 6d 61 70 | .(car.pair).(cadr.pair).hash-map |
| 2d00 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6b 76 2d 70 61 69 72 73 29 0a 20 20 20 20 68 61 73 | )).............kv-pairs).....has |
| 2d20 | 68 2d 6d 61 70 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 61 73 73 6f 63 2d 69 6e 20 28 63 6f 6c 6c | h-map))..(defun.a-assoc-in.(coll |
| 2d40 | 20 6b 65 79 73 20 76 61 6c 75 65 29 0a 20 20 22 49 6e 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f | .keys.value)..."In.collection.CO |
| 2d60 | 4c 4c 2c 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 4b 45 59 53 2c 20 61 73 73 6f 63 69 61 74 65 20 | LL,.at.location.KEYS,.associate. |
| 2d80 | 76 61 6c 75 65 20 56 41 4c 55 45 2e 0a 41 73 73 6f 63 69 61 74 65 73 20 61 20 76 61 6c 75 65 20 | value.VALUE..Associates.a.value. |
| 2da0 | 69 6e 20 61 20 6e 65 73 74 65 64 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 | in.a.nested.associative.collecti |
| 2dc0 | 6f 6e 20 43 4f 4c 4c 2c 20 77 68 65 72 65 0a 4b 45 59 53 20 69 73 20 61 20 73 65 71 75 65 6e 63 | on.COLL,.where.KEYS.is.a.sequenc |
| 2de0 | 65 20 6f 66 20 6b 65 79 73 20 61 6e 64 20 56 41 4c 55 45 20 69 73 20 74 68 65 20 6e 65 77 20 76 | e.of.keys.and.VALUE.is.the.new.v |
| 2e00 | 61 6c 75 65 20 61 6e 64 20 72 65 74 75 72 6e 73 0a 61 20 6e 65 77 20 6e 65 73 74 65 64 20 73 74 | alue.and.returns.a.new.nested.st |
| 2e20 | 72 75 63 74 75 72 65 2e 20 49 66 20 61 6e 79 20 6c 65 76 65 6c 73 20 64 6f 20 6e 6f 74 20 65 78 | ructure..If.any.levels.do.not.ex |
| 2e40 | 69 73 74 2c 20 61 73 73 6f 63 69 61 74 69 6f 6e 0a 6c 69 73 74 73 20 77 69 6c 6c 20 62 65 20 63 | ist,.association.lists.will.be.c |
| 2e60 | 72 65 61 74 65 64 2e 22 0a 20 20 28 63 6c 2d 63 61 73 65 20 28 6c 65 6e 67 74 68 20 6b 65 79 73 | reated."...(cl-case.(length.keys |
| 2e80 | 29 0a 20 20 20 20 28 30 20 63 6f 6c 6c 29 0a 20 20 20 20 28 31 20 28 61 2d 61 73 73 6f 63 2d 31 | ).....(0.coll).....(1.(a-assoc-1 |
| 2ea0 | 20 63 6f 6c 6c 20 28 65 6c 74 20 6b 65 79 73 20 30 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 | .coll.(elt.keys.0).value)).....( |
| 2ec0 | 74 20 28 61 2d 61 73 73 6f 63 2d 31 20 63 6f 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.(a-assoc-1.coll............... |
| 2ee0 | 20 20 20 20 28 65 6c 74 20 6b 65 79 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(elt.keys.0)................ |
| 2f00 | 20 20 20 28 61 2d 61 73 73 6f 63 2d 69 6e 20 28 61 2d 67 65 74 20 63 6f 6c 6c 20 28 65 6c 74 20 | ...(a-assoc-in.(a-get.coll.(elt. |
| 2f20 | 6b 65 79 73 20 30 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 | keys.0))........................ |
| 2f40 | 20 20 20 20 20 20 20 28 73 65 71 2d 64 72 6f 70 20 6b 65 79 73 20 31 29 0a 20 20 20 20 20 20 20 | .......(seq-drop.keys.1)........ |
| 2f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 29 29 | .......................value)))) |
| 2f80 | 29 0a 0a 28 64 65 66 75 6e 20 61 2d 64 69 73 73 6f 63 2d 2d 6c 69 73 74 20 28 6c 69 73 74 20 6b | )..(defun.a-dissoc--list.(list.k |
| 2fa0 | 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 75 70 64 61 74 65 64 20 4c 49 53 54 20 77 69 74 68 | eys)..."Return.updated.LIST.with |
| 2fc0 | 20 4b 45 59 53 20 72 65 6d 6f 76 65 64 2e 0a 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 65 72 2e 20 | .KEYS.removed..Internal.helper.. |
| 2fe0 | 55 73 65 20 60 61 2d 64 69 73 73 6f 63 27 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 61 2d 72 65 | Use.`a-dissoc'.instead."...(a-re |
| 3000 | 64 75 63 65 2d 6b 76 20 28 6c 61 6d 62 64 61 20 28 72 65 73 20 6b 20 76 29 0a 20 20 20 20 20 20 | duce-kv.(lambda.(res.k.v)....... |
| 3020 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 6b 20 6b 65 79 73 29 0a 20 | ...........(if.(member.k.keys).. |
| 3040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 0a 20 20 20 20 20 20 20 20 | ....................res......... |
| 3060 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 6f 6e 73 20 6b 20 76 29 20 72 65 73 29 | ...........(cons.(cons.k.v).res) |
| 3080 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 | ))................nil........... |
| 30a0 | 20 20 20 20 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 64 69 73 73 6f 63 2d 2d 68 61 | .....list))..(defun.a-dissoc--ha |
| 30c0 | 73 68 2d 74 61 62 6c 65 20 28 74 61 62 6c 65 20 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 | sh-table.(table.keys)..."Return. |
| 30e0 | 75 70 64 61 74 65 64 20 54 41 42 4c 45 20 77 69 74 68 20 4b 45 59 53 20 72 65 6d 6f 76 65 64 2e | updated.TABLE.with.KEYS.removed. |
| 3100 | 0a 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 65 72 2e 20 55 73 65 20 60 61 2d 64 69 73 73 6f 63 27 | .Internal.helper..Use.`a-dissoc' |
| 3120 | 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 65 77 2d 74 61 62 6c 65 20 28 6d | .instead."...(let.((new-table.(m |
| 3140 | 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 73 69 7a 65 20 28 68 61 73 68 2d 74 61 62 6c 65 | ake-hash-table.:size.(hash-table |
| 3160 | 2d 63 6f 75 6e 74 20 74 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -count.table)................... |
| 3180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 28 68 61 73 68 2d 74 61 | ..................:test.(hash-ta |
| 31a0 | 62 6c 65 2d 74 65 73 74 20 74 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 73 74 2d | ble-test.table))).........(rest- |
| 31c0 | 6b 65 79 73 20 28 73 65 71 2d 72 65 6d 6f 76 65 20 28 6c 61 6d 62 64 61 20 28 6b 29 0a 20 20 20 | keys.(seq-remove.(lambda.(k).... |
| 31e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d | ..............................(m |
| 3200 | 65 6d 62 65 72 20 6b 20 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ember.k.keys)).................. |
| 3220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 6b 65 79 73 20 74 61 62 6c 65 29 29 29 29 0a | ..............(a-keys.table)))). |
| 3240 | 20 20 20 20 28 73 65 71 2d 64 6f 73 65 71 20 28 6b 20 72 65 73 74 2d 6b 65 79 73 29 0a 20 20 20 | ....(seq-doseq.(k.rest-keys).... |
| 3260 | 20 20 20 28 70 75 74 68 61 73 68 20 6b 20 28 67 65 74 68 61 73 68 20 6b 20 74 61 62 6c 65 29 20 | ...(puthash.k.(gethash.k.table). |
| 3280 | 6e 65 77 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 6e 65 77 2d 74 61 62 6c 65 29 29 0a 0a 28 64 65 | new-table)).....new-table))..(de |
| 32a0 | 66 75 6e 20 61 2d 64 69 73 73 6f 63 20 28 63 6f 6c 6c 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 | fun.a-dissoc.(coll.&rest.keys).. |
| 32c0 | 20 22 52 65 74 75 72 6e 20 61 6e 20 75 70 64 61 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 63 | ."Return.an.updated.version.of.c |
| 32e0 | 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 20 77 69 74 68 20 74 68 65 20 4b 45 59 20 72 65 6d 6f | ollection.COLL.with.the.KEY.remo |
| 3300 | 76 65 64 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6c 69 73 74 70 20 63 6f 6c 6c 29 20 28 | ved."...(cond....((listp.coll).( |
| 3320 | 61 2d 64 69 73 73 6f 63 2d 2d 6c 69 73 74 20 63 6f 6c 6c 20 6b 65 79 73 29 29 0a 20 20 20 28 28 | a-dissoc--list.coll.keys))....(( |
| 3340 | 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 20 28 61 2d 64 69 73 73 6f 63 2d 2d 68 61 | hash-table-p.coll).(a-dissoc--ha |
| 3360 | 73 68 2d 74 61 62 6c 65 20 63 6f 6c 6c 20 6b 65 79 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 | sh-table.coll.keys))))..(defun.a |
| 3380 | 2d 75 70 64 61 74 65 20 28 63 6f 6c 6c 20 6b 65 79 20 66 6e 20 26 72 65 73 74 20 61 72 67 73 29 | -update.(coll.key.fn.&rest.args) |
| 33a0 | 0a 20 20 22 49 6e 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 61 74 20 6c 6f 63 61 74 | ..."In.collection.COLL,.at.locat |
| 33c0 | 69 6f 6e 20 4b 45 59 2c 20 61 70 70 6c 79 20 46 4e 20 77 69 74 68 20 65 78 74 72 61 20 61 72 67 | ion.KEY,.apply.FN.with.extra.arg |
| 33e0 | 73 20 41 52 47 53 2e 0a 27 55 70 64 61 74 65 73 27 20 61 20 76 61 6c 75 65 20 69 6e 20 61 6e 20 | s.ARGS..'Updates'.a.value.in.an. |
| 3400 | 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 77 68 65 | associative.collection.COLL,.whe |
| 3420 | 72 65 20 4b 45 59 20 69 73 0a 61 20 6b 65 79 20 61 6e 64 20 46 4e 20 69 73 20 61 20 66 75 6e 63 | re.KEY.is.a.key.and.FN.is.a.func |
| 3440 | 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 74 61 6b 65 20 74 68 65 20 6f 6c 64 20 76 61 6c 75 | tion.that.will.take.the.old.valu |
| 3460 | 65 20 61 6e 64 20 61 6e 79 0a 73 75 70 70 6c 69 65 64 20 61 72 67 73 20 61 6e 64 20 72 65 74 75 | e.and.any.supplied.args.and.retu |
| 3480 | 72 6e 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 | rn.the.new.value,.and.returns.a. |
| 34a0 | 6e 65 77 0a 73 74 72 75 63 74 75 72 65 2e 20 49 66 20 74 68 65 20 6b 65 79 20 64 6f 65 73 20 6e | new.structure..If.the.key.does.n |
| 34c0 | 6f 74 20 65 78 69 73 74 2c 20 6e 69 6c 20 69 73 20 70 61 73 73 65 64 20 61 73 20 74 68 65 20 6f | ot.exist,.nil.is.passed.as.the.o |
| 34e0 | 6c 64 0a 76 61 6c 75 65 2e 22 0a 20 20 28 61 2d 61 73 73 6f 63 2d 31 20 63 6f 6c 6c 0a 20 20 20 | ld.value."...(a-assoc-1.coll.... |
| 3500 | 20 20 20 20 20 20 20 20 20 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c | ..........key..............(appl |
| 3520 | 79 20 23 27 66 75 6e 63 61 6c 6c 20 66 6e 20 28 61 2d 67 65 74 20 63 6f 6c 6c 20 6b 65 79 29 20 | y.#'funcall.fn.(a-get.coll.key). |
| 3540 | 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 75 70 64 61 74 65 2d 69 6e 20 28 63 6f 6c | args)))..(defun.a-update-in.(col |
| 3560 | 6c 20 6b 65 79 73 20 66 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 49 6e 20 63 6f 6c 6c | l.keys.fn.&rest.args)..."In.coll |
| 3580 | 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 4b 45 59 53 2c 20 61 | ection.COLL,.at.location.KEYS,.a |
| 35a0 | 70 70 6c 79 20 46 4e 20 77 69 74 68 20 65 78 74 72 61 20 61 72 67 73 20 41 52 47 53 2e 0a 27 55 | pply.FN.with.extra.args.ARGS..'U |
| 35c0 | 70 64 61 74 65 73 27 20 61 20 76 61 6c 75 65 20 69 6e 20 61 20 6e 65 73 74 65 64 20 61 73 73 6f | pdates'.a.value.in.a.nested.asso |
| 35e0 | 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 77 68 65 72 65 0a 4b | ciative.collection.COLL,.where.K |
| 3600 | 45 59 53 20 69 73 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 6b 65 79 73 20 61 6e 64 20 46 4e | EYS.is.a.sequence.of.keys.and.FN |
| 3620 | 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 74 61 6b 65 0a 74 68 | .is.a.function.that.will.take.th |
| 3640 | 65 20 6f 6c 64 20 76 61 6c 75 65 20 61 6e 64 20 61 6e 79 20 73 75 70 70 6c 69 65 64 20 41 52 47 | e.old.value.and.any.supplied.ARG |
| 3660 | 53 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 2c 20 61 6e 64 0a | S.and.return.the.new.value,.and. |
| 3680 | 72 65 74 75 72 6e 73 20 61 20 6e 65 77 20 6e 65 73 74 65 64 20 73 74 72 75 63 74 75 72 65 2e 20 | returns.a.new.nested.structure.. |
| 36a0 | 49 66 20 61 6e 79 20 6c 65 76 65 6c 73 20 64 6f 20 6e 6f 74 20 65 78 69 73 74 2c 0a 61 73 73 6f | If.any.levels.do.not.exist,.asso |
| 36c0 | 63 69 61 74 69 6f 6e 20 6c 69 73 74 73 20 77 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 2e 22 0a | ciation.lists.will.be.created.". |
| 36e0 | 20 20 28 63 6c 2d 63 61 73 65 20 28 6c 65 6e 67 74 68 20 6b 65 79 73 29 0a 20 20 20 20 28 30 20 | ..(cl-case.(length.keys).....(0. |
| 3700 | 63 6f 6c 6c 29 0a 20 20 20 20 28 31 20 28 61 70 70 6c 79 20 23 27 61 2d 75 70 64 61 74 65 20 63 | coll).....(1.(apply.#'a-update.c |
| 3720 | 6f 6c 6c 20 28 65 6c 74 20 6b 65 79 73 20 30 29 20 66 6e 20 61 72 67 73 29 29 0a 20 20 20 20 28 | oll.(elt.keys.0).fn.args)).....( |
| 3740 | 74 20 28 61 2d 61 73 73 6f 63 2d 31 20 63 6f 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.(a-assoc-1.coll............... |
| 3760 | 20 20 20 20 28 65 6c 74 20 6b 65 79 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(elt.keys.0)................ |
| 3780 | 20 20 20 28 61 70 70 6c 79 20 23 27 61 2d 75 70 64 61 74 65 2d 69 6e 0a 20 20 20 20 20 20 20 20 | ...(apply.#'a-update-in......... |
| 37a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 67 65 74 20 63 6f 6c 6c 20 28 65 6c | .................(a-get.coll.(el |
| 37c0 | 74 20 6b 65 79 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.keys.0))...................... |
| 37e0 | 20 20 20 20 28 73 65 71 2d 64 72 6f 70 20 6b 65 79 73 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 | ....(seq-drop.keys.1)........... |
| 3800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...............fn............... |
| 3820 | 20 20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 | ...........args)))))..(provide.' |
| 3840 | 61 29 0a 0a 3b 3b 3b 20 61 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 | a)..;;;.a.el.ends.here.......... |
| 3860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 38a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 38c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 38e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 39a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 39c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 39e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 | ................................ |