| ofs | hex dump | ascii | 
|---|
| 0000 | 61 69 6f 2d 32 30 32 30 30 36 31 30 2e 31 39 30    34 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | aio-20200610.1904/.............. | 
| 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 35 35 31 00 20 35 00 00 00 | 0000000.00000000000.011551..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 69 6f 2d 32 30 32 30 30 36 31 30 2e 31 39 30    34 2f 61 69 6f 2e 65 6c 00 00 00 00 00 00 00 00 | aio-20200610.1904/aio.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 34 31 33 31 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 32 36 34 36 00 20 30 00 00 00 | 0041314.00000000000.012646..0... | 
| 02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 0320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0400 | 3b 3b 3b 20 61 69 6f 2e 65 6c 20 2d 2d 2d 20 61    73 79 6e 63 2f 61 77 61 69 74 20 66 6f 72 20 45 | ;;;.aio.el.---.async/await.for.E | 
| 0420 | 6d 61 63 73 20 4c 69 73 70 20 2d 2a 2d 20 6c 65    78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 | macs.Lisp.-*-.lexical-binding:.t | 
| 0440 | 3b 20 2d 2a 2d 0a 0a 3b 3b 20 54 68 69 73 20 69    73 20 66 72 65 65 20 61 6e 64 20 75 6e 65 6e 63 | ;.-*-..;;.This.is.free.and.unenc | 
| 0460 | 75 6d 62 65 72 65 64 20 73 6f 66 74 77 61 72 65    20 72 65 6c 65 61 73 65 64 20 69 6e 74 6f 20 74 | umbered.software.released.into.t | 
| 0480 | 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e    2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 43 68 | he.public.domain...;;.Author:.Ch | 
| 04a0 | 72 69 73 74 6f 70 68 65 72 20 57 65 6c 6c 6f 6e    73 20 3c 77 65 6c 6c 6f 6e 73 40 6e 75 6c 6c 70 | ristopher.Wellons.<wellons@nullp | 
| 04c0 | 72 6f 67 72 61 6d 2e 63 6f 6d 3e 0a 3b 3b 20 55    52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 | rogram.com>.;;.URL:.https://gith | 
| 04e0 | 75 62 2e 63 6f 6d 2f 73 6b 65 65 74 6f 2f 65 6d    61 63 73 2d 61 69 6f 0a 3b 3b 20 56 65 72 73 69 | ub.com/skeeto/emacs-aio.;;.Versi | 
| 0500 | 6f 6e 3a 20 31 2e 30 0a 3b 3b 20 50 61 63 6b 61    67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 | on:.1.0.;;.Package-Requires:.((e | 
| 0520 | 6d 61 63 73 20 22 32 36 2e 31 22 29 29 0a 0a 3b    3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a | macs."26.1"))..;;;.Commentary:.. | 
| 0540 | 3b 3b 20 60 61 69 6f 60 20 69 73 20 74 6f 20 45    6d 61 63 73 20 4c 69 73 70 20 61 73 20 5b 60 61 | ;;.`aio`.is.to.Emacs.Lisp.as.[`a | 
| 0560 | 73 79 6e 63 69 6f 60 5d 5b 61 73 79 6e 63 69 6f    5d 20 69 73 20 74 6f 20 50 79 74 68 6f 6e 2e 20 | syncio`][asyncio].is.to.Python.. | 
| 0580 | 54 68 69 73 0a 3b 3b 20 70 61 63 6b 61 67 65 20    62 75 69 6c 64 73 20 75 70 6f 6e 20 45 6d 61 63 | This.;;.package.builds.upon.Emac | 
| 05a0 | 73 20 32 35 20 67 65 6e 65 72 61 74 6f 72 73 20    74 6f 20 70 72 6f 76 69 64 65 20 66 75 6e 63 74 | s.25.generators.to.provide.funct | 
| 05c0 | 69 6f 6e 73 20 74 68 61 74 0a 3b 3b 20 70 61 75    73 65 20 77 68 69 6c 65 20 74 68 65 79 20 77 61 | ions.that.;;.pause.while.they.wa | 
| 05e0 | 69 74 20 6f 6e 20 61 73 79 6e 63 68 72 6f 6e 6f    75 73 20 65 76 65 6e 74 73 2e 20 54 68 65 79 20 | it.on.asynchronous.events..They. | 
| 0600 | 64 6f 20 6e 6f 74 20 62 6c 6f 63 6b 20 61 6e 79    0a 3b 3b 20 74 68 72 65 61 64 20 77 68 69 6c 65 | do.not.block.any.;;.thread.while | 
| 0620 | 20 70 61 75 73 65 64 2e 0a 0a 3b 3b 20 54 68 65    20 6d 61 69 6e 20 63 6f 6d 70 6f 6e 65 6e 74 73 | .paused...;;.The.main.components | 
| 0640 | 20 6f 66 20 74 68 69 73 20 70 61 63 6b 61 67 65    20 61 72 65 20 60 61 69 6f 2d 64 65 66 75 6e 27 | .of.this.package.are.`aio-defun' | 
| 0660 | 20 2f 20 60 61 69 6f 2d 6c 61 6d 62 64 61 27 0a    3b 3b 20 74 6f 20 64 65 66 69 6e 65 20 61 73 79 | ./.`aio-lambda'.;;.to.define.asy | 
| 0680 | 6e 63 20 66 75 6e 63 74 69 6f 6e 2c 20 61 6e 64    20 60 61 69 6f 2d 61 77 61 69 74 27 20 74 6f 20 | nc.function,.and.`aio-await'.to. | 
| 06a0 | 70 61 75 73 65 20 74 68 65 73 65 20 66 75 6e 63    74 69 6f 6e 73 0a 3b 3b 20 77 68 69 6c 65 20 74 | pause.these.functions.;;.while.t | 
| 06c0 | 68 65 79 20 77 61 69 74 20 6f 6e 20 61 73 79 6e    63 68 72 6f 6e 6f 75 73 20 65 76 65 6e 74 73 2e | hey.wait.on.asynchronous.events. | 
| 06e0 | 20 57 68 65 6e 20 61 6e 20 61 73 79 6e 63 68 72    6f 6e 6f 75 73 0a 3b 3b 20 66 75 6e 63 74 69 6f | .When.an.asynchronous.;;.functio | 
| 0700 | 6e 20 69 73 20 70 61 75 73 65 64 2c 20 74 68 65    20 6d 61 69 6e 20 74 68 72 65 61 64 20 69 73 20 | n.is.paused,.the.main.thread.is. | 
| 0720 | 6e 6f 74 20 62 6c 6f 63 6b 65 64 2e 20 49 74 20    69 73 20 6e 6f 20 6d 6f 72 65 0a 3b 3b 20 6f 72 | not.blocked..It.is.no.more.;;.or | 
| 0740 | 20 6c 65 73 73 20 70 6f 77 65 72 66 75 6c 20 74    68 61 6e 20 63 61 6c 6c 62 61 63 6b 73 2c 20 62 | .less.powerful.than.callbacks,.b | 
| 0760 | 75 74 20 69 73 20 6e 69 63 65 72 20 74 6f 20 75    73 65 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 | ut.is.nicer.to.use...;;.This.is. | 
| 0780 | 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69    73 20 62 61 73 65 64 20 6f 6e 20 45 6d 61 63 73 | implementation.is.based.on.Emacs | 
| 07a0 | 20 32 35 20 67 65 6e 65 72 61 74 6f 72 73 2c 20    61 6e 64 0a 3b 3b 20 61 73 79 6e 63 68 72 6f 6e | .25.generators,.and.;;.asynchron | 
| 07c0 | 6f 75 73 20 66 75 6e 63 74 69 6f 6e 73 20 61 72    65 20 61 63 74 75 61 6c 6c 79 20 69 74 65 72 61 | ous.functions.are.actually.itera | 
| 07e0 | 74 6f 72 73 20 69 6e 20 64 69 73 67 75 69 73 65    2c 20 6f 70 65 72 61 74 65 64 0a 3b 3b 20 61 73 | tors.in.disguise,.operated.;;.as | 
| 0800 | 20 73 74 61 63 6b 6c 65 73 73 2c 20 61 73 79 6d    6d 65 74 72 69 63 20 63 6f 72 6f 75 74 69 6e 65 | .stackless,.asymmetric.coroutine | 
| 0820 | 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28    72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 | s...;;;.Code:..(require.'cl-lib) | 
| 0840 | 0a 28 72 65 71 75 69 72 65 20 27 66 6f 6e 74 2d    6c 6f 63 6b 29 0a 28 72 65 71 75 69 72 65 20 27 | .(require.'font-lock).(require.' | 
| 0860 | 67 65 6e 65 72 61 74 6f 72 29 0a 28 72 65 71 75    69 72 65 20 27 72 78 29 0a 0a 3b 3b 20 52 65 67 | generator).(require.'rx)..;;.Reg | 
| 0880 | 69 73 74 65 72 20 6e 65 77 20 65 72 72 6f 72 20    74 79 70 65 73 0a 28 64 65 66 69 6e 65 2d 65 72 | ister.new.error.types.(define-er | 
| 08a0 | 72 6f 72 20 27 61 69 6f 2d 63 61 6e 63 65 6c 20    22 50 72 6f 6d 69 73 65 20 77 61 73 20 63 61 6e | ror.'aio-cancel."Promise.was.can | 
| 08c0 | 63 65 6c 65 64 22 29 0a 28 64 65 66 69 6e 65 2d    65 72 72 6f 72 20 27 61 69 6f 2d 74 69 6d 65 6f | celed").(define-error.'aio-timeo | 
| 08e0 | 75 74 20 22 54 69 6d 65 6f 75 74 20 77 61 73 20    72 65 61 63 68 65 64 22 29 0a 0a 28 64 65 66 75 | ut."Timeout.was.reached")..(defu | 
| 0900 | 6e 20 61 69 6f 2d 70 72 6f 6d 69 73 65 20 28 29    0a 20 20 22 43 72 65 61 74 65 20 61 20 6e 65 77 | n.aio-promise.()..."Create.a.new | 
| 0920 | 20 70 72 6f 6d 69 73 65 20 6f 62 6a 65 63 74 2e    22 0a 20 20 28 72 65 63 6f 72 64 20 27 61 69 6f | .promise.object."...(record.'aio | 
| 0940 | 2d 70 72 6f 6d 69 73 65 20 6e 69 6c 20 28 29 29    29 0a 0a 28 64 65 66 73 75 62 73 74 20 61 69 6f | -promise.nil.()))..(defsubst.aio | 
| 0960 | 2d 70 72 6f 6d 69 73 65 2d 70 20 28 6f 62 6a 65    63 74 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f | -promise-p.(object)..."Return.no | 
| 0980 | 6e 2d 6e 69 6c 20 69 66 20 4f 42 4a 45 43 54 20    69 73 20 61 20 70 72 6f 6d 69 73 65 2e 22 0a 20 | n-nil.if.OBJECT.is.a.promise.".. | 
| 09a0 | 20 28 61 6e 64 20 28 65 71 20 27 61 69 6f 2d 70    72 6f 6d 69 73 65 20 28 74 79 70 65 2d 6f 66 20 | .(and.(eq.'aio-promise.(type-of. | 
| 09c0 | 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20    28 3d 20 33 20 28 6c 65 6e 67 74 68 20 6f 62 6a | object))........(=.3.(length.obj | 
| 09e0 | 65 63 74 29 29 29 29 0a 0a 28 64 65 66 73 75 62    73 74 20 61 69 6f 2d 72 65 73 75 6c 74 20 28 70 | ect))))..(defsubst.aio-result.(p | 
| 0a00 | 72 6f 6d 69 73 65 29 0a 20 20 22 52 65 74 75 72    6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 | romise)..."Return.the.result.of. | 
| 0a20 | 50 52 4f 4d 49 53 45 2c 20 6f 72 20 6e 69 6c 20    69 66 20 69 74 20 69 73 20 75 6e 72 65 73 6f 6c | PROMISE,.or.nil.if.it.is.unresol | 
| 0a40 | 76 65 64 2e 0a 0a 50 72 6f 6d 69 73 65 20 72 65    73 75 6c 74 73 20 61 72 65 20 77 72 61 70 70 65 | ved...Promise.results.are.wrappe | 
| 0a60 | 64 20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 2e    20 54 68 65 20 72 65 73 75 6c 74 20 6d 75 73 74 | d.in.a.function..The.result.must | 
| 0a80 | 20 62 65 0a 63 61 6c 6c 65 64 20 28 65 2e 67 2e    20 60 66 75 6e 63 61 6c 6c 27 29 20 69 6e 20 6f | .be.called.(e.g..`funcall').in.o | 
| 0aa0 | 72 64 65 72 20 74 6f 20 72 65 74 72 69 65 76 65    20 74 68 65 20 76 61 6c 75 65 2e 22 0a 20 20 28 | rder.to.retrieve.the.value."...( | 
| 0ac0 | 75 6e 6c 65 73 73 20 28 61 69 6f 2d 70 72 6f 6d    69 73 65 2d 70 20 70 72 6f 6d 69 73 65 29 0a 20 | unless.(aio-promise-p.promise).. | 
| 0ae0 | 20 20 20 28 73 69 67 6e 61 6c 20 27 77 72 6f 6e    67 2d 74 79 70 65 2d 61 72 67 75 6d 65 6e 74 20 | ...(signal.'wrong-type-argument. | 
| 0b00 | 28 6c 69 73 74 20 27 61 69 6f 2d 70 72 6f 6d 69    73 65 2d 70 20 70 72 6f 6d 69 73 65 29 29 29 0a | (list.'aio-promise-p.promise))). | 
| 0b20 | 20 20 28 61 72 65 66 20 70 72 6f 6d 69 73 65 20    31 29 29 0a 0a 28 64 65 66 75 6e 20 61 69 6f 2d | ..(aref.promise.1))..(defun.aio- | 
| 0b40 | 6c 69 73 74 65 6e 20 28 70 72 6f 6d 69 73 65 20    63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 41 64 64 | listen.(promise.callback)..."Add | 
| 0b60 | 20 43 41 4c 4c 42 41 43 4b 20 74 6f 20 50 52 4f    4d 49 53 45 2e 0a 0a 49 66 20 74 68 65 20 70 72 | .CALLBACK.to.PROMISE...If.the.pr | 
| 0b80 | 6f 6d 69 73 65 20 68 61 73 20 61 6c 72 65 61 64    79 20 62 65 65 6e 20 72 65 73 6f 6c 76 65 64 2c | omise.has.already.been.resolved, | 
| 0ba0 | 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 77 69    6c 6c 20 62 65 0a 73 63 68 65 64 75 6c 65 64 20 | .the.callback.will.be.scheduled. | 
| 0bc0 | 66 6f 72 20 74 68 65 20 6e 65 78 74 20 65 76 65    6e 74 20 6c 6f 6f 70 20 74 75 72 6e 2e 22 0a 20 | for.the.next.event.loop.turn.".. | 
| 0be0 | 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28    61 69 6f 2d 72 65 73 75 6c 74 20 70 72 6f 6d 69 | .(let.((result.(aio-result.promi | 
| 0c00 | 73 65 29 29 29 0a 20 20 20 20 28 69 66 20 72 65    73 75 6c 74 0a 20 20 20 20 20 20 20 20 28 72 75 | se))).....(if.result.........(ru | 
| 0c20 | 6e 2d 61 74 2d 74 69 6d 65 20 30 20 6e 69 6c 20    63 61 6c 6c 62 61 63 6b 20 72 65 73 75 6c 74 29 | n-at-time.0.nil.callback.result) | 
| 0c40 | 0a 20 20 20 20 20 20 28 70 75 73 68 20 63 61 6c    6c 62 61 63 6b 20 28 61 72 65 66 20 70 72 6f 6d | .......(push.callback.(aref.prom | 
| 0c60 | 69 73 65 20 32 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 61 69 6f 2d 72 65 73 6f 6c 76 65 20 28 | ise.2)))))..(defun.aio-resolve.( | 
| 0c80 | 70 72 6f 6d 69 73 65 20 76 61 6c 75 65 2d 66 75    6e 63 74 69 6f 6e 29 0a 20 20 22 52 65 73 6f 6c | promise.value-function)..."Resol | 
| 0ca0 | 76 65 20 74 68 69 73 20 50 52 4f 4d 49 53 45 20    77 69 74 68 20 56 41 4c 55 45 2d 46 55 4e 43 54 | ve.this.PROMISE.with.VALUE-FUNCT | 
| 0cc0 | 49 4f 4e 2e 0a 0a 41 20 70 72 6f 6d 69 73 65 20    63 61 6e 20 6f 6e 6c 79 20 62 65 20 72 65 73 6f | ION...A.promise.can.only.be.reso | 
| 0ce0 | 6c 76 65 64 20 6f 6e 63 65 2c 20 61 6e 64 20 61    6e 79 20 66 75 72 74 68 65 72 20 63 61 6c 6c 73 | lved.once,.and.any.further.calls | 
| 0d00 | 20 74 6f 0a 60 61 69 6f 2d 72 65 73 6f 6c 76 65    27 20 61 72 65 20 73 69 6c 65 6e 74 6c 79 20 69 | .to.`aio-resolve'.are.silently.i | 
| 0d20 | 67 6e 6f 72 65 64 2e 20 54 68 65 20 56 41 4c 55    45 2d 46 55 4e 43 54 49 4f 4e 20 6d 75 73 74 20 | gnored..The.VALUE-FUNCTION.must. | 
| 0d40 | 62 65 20 61 0a 66 75 6e 63 74 69 6f 6e 20 74 68    61 74 20 74 61 6b 65 73 20 6e 6f 20 61 72 67 75 | be.a.function.that.takes.no.argu | 
| 0d60 | 6d 65 6e 74 73 20 61 6e 64 20 65 69 74 68 65 72    20 72 65 74 75 72 6e 73 20 74 68 65 20 72 65 73 | ments.and.either.returns.the.res | 
| 0d80 | 75 6c 74 0a 76 61 6c 75 65 20 6f 72 20 72 65 74    68 72 6f 77 73 20 61 20 73 69 67 6e 61 6c 2e 22 | ult.value.or.rethrows.a.signal." | 
| 0da0 | 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 75 6e 63    74 69 6f 6e 70 20 76 61 6c 75 65 2d 66 75 6e 63 | ...(unless.(functionp.value-func | 
| 0dc0 | 74 69 6f 6e 29 0a 20 20 20 20 28 73 69 67 6e 61    6c 20 27 77 72 6f 6e 67 2d 74 79 70 65 2d 61 72 | tion).....(signal.'wrong-type-ar | 
| 0de0 | 67 75 6d 65 6e 74 20 28 6c 69 73 74 20 27 66 75    6e 63 74 69 6f 6e 70 20 76 61 6c 75 65 2d 66 75 | gument.(list.'functionp.value-fu | 
| 0e00 | 6e 63 74 69 6f 6e 29 29 29 0a 20 20 28 75 6e 6c    65 73 73 20 28 61 69 6f 2d 72 65 73 75 6c 74 20 | nction)))...(unless.(aio-result. | 
| 0e20 | 70 72 6f 6d 69 73 65 29 0a 20 20 20 20 28 6c 65    74 20 28 28 63 61 6c 6c 62 61 63 6b 73 20 28 6e | promise).....(let.((callbacks.(n | 
| 0e40 | 72 65 76 65 72 73 65 20 28 61 72 65 66 20 70 72    6f 6d 69 73 65 20 32 29 29 29 29 0a 20 20 20 20 | reverse.(aref.promise.2))))..... | 
| 0e60 | 20 20 28 73 65 74 66 20 28 61 72 65 66 20 70 72    6f 6d 69 73 65 20 31 29 20 76 61 6c 75 65 2d 66 | ..(setf.(aref.promise.1).value-f | 
| 0e80 | 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 61 72 65 66 20 70 72 6f 6d 69 73 | unction.............(aref.promis | 
| 0ea0 | 65 20 32 29 20 28 29 29 0a 20 20 20 20 20 20 28    64 6f 6c 69 73 74 20 28 63 61 6c 6c 62 61 63 6b | e.2).()).......(dolist.(callback | 
| 0ec0 | 20 63 61 6c 6c 62 61 63 6b 73 29 0a 20 20 20 20    20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 | .callbacks).........(run-at-time | 
| 0ee0 | 20 30 20 6e 69 6c 20 63 61 6c 6c 62 61 63 6b 20    76 61 6c 75 65 2d 66 75 6e 63 74 69 6f 6e 29 29 | .0.nil.callback.value-function)) | 
| 0f00 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 69 6f 2d    2d 73 74 65 70 20 28 69 74 65 72 20 70 72 6f 6d | )))..(defun.aio--step.(iter.prom | 
| 0f20 | 69 73 65 20 79 69 65 6c 64 2d 72 65 73 75 6c 74    29 0a 20 20 22 41 64 76 61 6e 63 65 20 49 54 45 | ise.yield-result)..."Advance.ITE | 
| 0f40 | 52 20 74 6f 20 74 68 65 20 6e 65 78 74 20 70 72    6f 6d 69 73 65 2e 0a 0a 50 52 4f 4d 49 53 45 20 | R.to.the.next.promise...PROMISE. | 
| 0f60 | 69 73 20 74 68 65 20 72 65 74 75 72 6e 20 70 72    6f 6d 69 73 65 20 6f 66 20 74 68 65 20 69 74 65 | is.the.return.promise.of.the.ite | 
| 0f80 | 72 61 74 6f 72 2c 20 77 68 69 63 68 20 77 61 73    20 72 65 74 75 72 6e 65 64 0a 62 79 20 74 68 65 | rator,.which.was.returned.by.the | 
| 0fa0 | 20 6f 72 69 67 69 6e 61 74 69 6e 67 20 61 73 79    6e 63 20 66 75 6e 63 74 69 6f 6e 2e 20 59 49 45 | .originating.async.function..YIE | 
| 0fc0 | 4c 44 2d 52 45 53 55 4c 54 20 69 73 20 74 68 65    20 76 61 6c 75 65 0a 66 75 6e 63 74 69 6f 6e 20 | LD-RESULT.is.the.value.function. | 
| 0fe0 | 72 65 73 75 6c 74 20 64 69 72 65 63 74 6c 79 20    66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 | result.directly.from.the.previou | 
| 1000 | 73 6c 79 20 79 69 65 6c 64 65 64 20 70 72 6f 6d    69 73 65 2e 22 0a 20 20 28 63 6f 6e 64 69 74 69 | sly.yielded.promise."...(conditi | 
| 1020 | 6f 6e 2d 63 61 73 65 20 5f 0a 20 20 20 20 20 20    28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 72 65 73 | on-case._.......(cl-loop.for.res | 
| 1040 | 75 6c 74 20 3d 20 28 69 74 65 72 2d 6e 65 78 74    20 69 74 65 72 20 79 69 65 6c 64 2d 72 65 73 75 | ult.=.(iter-next.iter.yield-resu | 
| 1060 | 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 74 68 65 6e 20 28 69 74 65 72 2d 6e 65 | lt)................then.(iter-ne | 
| 1080 | 78 74 20 69 74 65 72 20 28 6c 61 6d 62 64 61 20    28 29 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 | xt.iter.(lambda.().result))..... | 
| 10a0 | 20 20 20 20 20 20 20 20 20 20 20 75 6e 74 69 6c    20 28 61 69 6f 2d 70 72 6f 6d 69 73 65 2d 70 20 | ...........until.(aio-promise-p. | 
| 10c0 | 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 28 | result)................finally.( | 
| 10e0 | 61 69 6f 2d 6c 69 73 74 65 6e 20 72 65 73 75 6c    74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | aio-listen.result............... | 
| 1100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 76 61 | .....................(lambda.(va | 
| 1120 | 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lue)............................ | 
| 1140 | 20 20 20 20 20 20 20 20 20 20 28 61 69 6f 2d 2d    73 74 65 70 20 69 74 65 72 20 70 72 6f 6d 69 73 | ..........(aio--step.iter.promis | 
| 1160 | 65 20 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20    28 69 74 65 72 2d 65 6e 64 2d 6f 66 2d 73 65 71 | e.value)))).....(iter-end-of-seq | 
| 1180 | 75 65 6e 63 65 29 29 29 0a 0a 28 64 65 66 6d 61    63 72 6f 20 61 69 6f 2d 77 69 74 68 2d 70 72 6f | uence)))..(defmacro.aio-with-pro | 
| 11a0 | 6d 69 73 65 20 28 70 72 6f 6d 69 73 65 20 26 72    65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 61 | mise.(promise.&rest.body)..."Eva | 
| 11c0 | 6c 75 61 74 65 20 42 4f 44 59 20 61 6e 64 20 72    65 73 6f 6c 76 65 20 50 52 4f 4d 49 53 45 20 77 | luate.BODY.and.resolve.PROMISE.w | 
| 11e0 | 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 2e 0a    0a 49 66 20 74 68 65 20 62 6f 64 79 20 73 69 67 | ith.the.result...If.the.body.sig | 
| 1200 | 6e 61 6c 73 20 61 6e 20 65 72 72 6f 72 2c 20 74    68 69 73 20 65 72 72 6f 72 20 77 69 6c 6c 20 62 | nals.an.error,.this.error.will.b | 
| 1220 | 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 0a    70 72 6f 6d 69 73 65 20 61 6e 64 20 72 65 74 68 | e.stored.in.the.promise.and.reth | 
| 1240 | 72 6f 77 6e 20 69 6e 20 74 68 65 20 70 72 6f 6d    69 73 65 27 73 20 6c 69 73 74 65 6e 65 72 73 2e | rown.in.the.promise's.listeners. | 
| 1260 | 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e    64 65 6e 74 20 64 65 66 75 6e 29 0a 20 20 20 20 | "...(declare.(indent.defun)..... | 
| 1280 | 20 20 20 20 20 20 20 28 64 65 62 75 67 20 28 66    6f 72 6d 20 62 6f 64 79 29 29 29 0a 20 20 28 63 | .......(debug.(form.body)))...(c | 
| 12a0 | 6c 2d 61 73 73 65 72 74 20 28 65 71 20 6c 65 78    69 63 61 6c 2d 62 69 6e 64 69 6e 67 20 74 29 29 | l-assert.(eq.lexical-binding.t)) | 
| 12c0 | 0a 20 20 60 28 61 69 6f 2d 72 65 73 6f 6c 76 65    20 2c 70 72 6f 6d 69 73 65 0a 20 20 20 20 20 20 | ...`(aio-resolve.,promise....... | 
| 12e0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69    74 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 0a | ..........(condition-case.error. | 
| 1300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c | ....................(let.((resul | 
| 1320 | 74 20 28 70 72 6f 67 6e 20 2c 40 62 6f 64 79 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.(progn.,@body))).............. | 
| 1340 | 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61    20 28 29 20 72 65 73 75 6c 74 29 29 0a 20 20 20 | .........(lambda.().result)).... | 
| 1360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    65 72 72 6f 72 20 28 6c 61 6d 62 64 61 20 28 29 | ...............(error.(lambda.() | 
| 1380 | 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 73 69 67 | ............................(sig | 
| 13a0 | 6e 61 6c 20 28 63 61 72 20 65 72 72 6f 72 29 20    28 63 64 72 20 65 72 72 6f 72 29 29 29 29 29 29 | nal.(car.error).(cdr.error)))))) | 
| 13c0 | 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 61 69 6f    2d 61 77 61 69 74 20 28 65 78 70 72 29 0a 20 20 | )..(defmacro.aio-await.(expr)... | 
| 13e0 | 22 49 66 20 45 58 50 52 20 65 76 61 6c 75 61 74    65 73 20 74 6f 20 61 20 70 72 6f 6d 69 73 65 2c | "If.EXPR.evaluates.to.a.promise, | 
| 1400 | 20 70 61 75 73 65 20 75 6e 74 69 6c 20 74 68 65    20 70 72 6f 6d 69 73 65 20 69 73 20 72 65 73 6f | .pause.until.the.promise.is.reso | 
| 1420 | 6c 76 65 64 2e 0a 0a 50 61 75 73 69 6e 67 20 61    6e 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e | lved...Pausing.an.async.function | 
| 1440 | 20 64 6f 65 73 20 6e 6f 74 20 62 6c 6f 63 6b 20    45 6d 61 63 73 27 20 6d 61 69 6e 20 74 68 72 65 | .does.not.block.Emacs'.main.thre | 
| 1460 | 61 64 2e 20 49 66 0a 45 58 50 52 20 64 6f 65 73    6e 27 74 20 65 76 61 6c 75 61 74 65 20 74 6f 20 | ad..If.EXPR.doesn't.evaluate.to. | 
| 1480 | 61 20 70 72 6f 6d 69 73 65 2c 20 74 68 65 20 76    61 6c 75 65 20 69 73 20 72 65 74 75 72 6e 65 64 | a.promise,.the.value.is.returned | 
| 14a0 | 0a 69 6d 6d 65 64 69 61 74 65 6c 79 20 61 6e 64    20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 | .immediately.and.the.function.is | 
| 14c0 | 20 6e 6f 74 20 70 61 75 73 65 64 2e 20 53 69 6e    63 65 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f | .not.paused..Since.async.functio | 
| 14e0 | 6e 73 0a 72 65 74 75 72 6e 20 70 72 6f 6d 69 73    65 73 2c 20 61 73 79 6e 63 20 66 75 6e 63 74 69 | ns.return.promises,.async.functi | 
| 1500 | 6f 6e 73 20 63 61 6e 20 61 77 61 69 74 20 64 69    72 65 63 74 6c 79 20 6f 6e 20 6f 74 68 65 72 0a | ons.can.await.directly.on.other. | 
| 1520 | 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 73 20    75 73 69 6e 67 20 74 68 69 73 20 6d 61 63 72 6f | async.functions.using.this.macro | 
| 1540 | 2e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 63 61    6e 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 69 | ...This.macro.can.only.be.used.i | 
| 1560 | 6e 73 69 64 65 20 61 6e 20 61 73 79 6e 63 20 66    75 6e 63 74 69 6f 6e 2c 20 65 69 74 68 65 72 0a | nside.an.async.function,.either. | 
| 1580 | 60 61 69 6f 2d 6c 61 6d 62 64 61 27 20 6f 72 20    60 61 69 6f 2d 64 65 66 75 6e 27 2e 22 0a 20 20 | `aio-lambda'.or.`aio-defun'."... | 
| 15a0 | 60 28 66 75 6e 63 61 6c 6c 20 28 69 74 65 72 2d    79 69 65 6c 64 20 2c 65 78 70 72 29 29 29 0a 0a | `(funcall.(iter-yield.,expr))).. | 
| 15c0 | 28 64 65 66 6d 61 63 72 6f 20 61 69 6f 2d 6c 61    6d 62 64 61 20 28 61 72 67 6c 69 73 74 20 26 72 | (defmacro.aio-lambda.(arglist.&r | 
| 15e0 | 65 73 74 20 62 6f 64 79 29 0a 20 20 22 4c 69 6b    65 20 60 6c 61 6d 62 64 61 27 2c 20 62 75 74 20 | est.body)..."Like.`lambda',.but. | 
| 1600 | 64 65 66 69 6e 65 73 20 61 6e 20 61 73 79 6e 63    20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 54 68 65 20 | defines.an.async.function...The. | 
| 1620 | 62 6f 64 79 20 6f 66 20 74 68 69 73 20 66 75 6e    63 74 69 6f 6e 20 6d 61 79 20 75 73 65 20 60 61 | body.of.this.function.may.use.`a | 
| 1640 | 69 6f 2d 61 77 61 69 74 27 20 74 6f 20 77 61 69    74 20 6f 6e 0a 70 72 6f 6d 69 73 65 73 2e 20 57 | io-await'.to.wait.on.promises..W | 
| 1660 | 68 65 6e 20 61 6e 20 61 73 79 6e 63 20 66 75 6e    63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 2c | hen.an.async.function.is.called, | 
| 1680 | 20 69 74 20 69 6d 6d 65 64 69 61 74 65 6c 79 0a    72 65 74 75 72 6e 73 20 61 20 70 72 6f 6d 69 73 | .it.immediately.returns.a.promis | 
| 16a0 | 65 20 74 68 61 74 20 77 69 6c 6c 20 72 65 73 6f    6c 76 65 20 74 6f 20 74 68 65 20 66 75 6e 63 74 | e.that.will.resolve.to.the.funct | 
| 16c0 | 69 6f 6e 27 73 20 72 65 74 75 72 6e 0a 76 61 6c    75 65 2c 20 6f 72 20 61 6e 79 20 75 6e 63 61 75 | ion's.return.value,.or.any.uncau | 
| 16e0 | 67 68 74 20 65 72 72 6f 72 20 73 69 67 6e 61 6c    2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 | ght.error.signal."...(declare.(i | 
| 1700 | 6e 64 65 6e 74 20 64 65 66 75 6e 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 64 6f 63 2d 73 74 72 | ndent.defun)............(doc-str | 
| 1720 | 69 6e 67 20 33 29 0a 20 20 20 20 20 20 20 20 20    20 20 28 64 65 62 75 67 20 28 26 64 65 66 69 6e | ing.3)............(debug.(&defin | 
| 1740 | 65 20 6c 61 6d 62 64 61 2d 6c 69 73 74 20 6c 61    6d 62 64 61 2d 64 6f 63 0a 20 20 20 20 20 20 20 | e.lambda-list.lambda-doc........ | 
| 1760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 5b 26 6f 70 74 69 6f 6e 61 6c 20 28 | ....................[&optional.( | 
| 1780 | 22 69 6e 74 65 72 61 63 74 69 76 65 22 20 69 6e    74 65 72 61 63 74 69 76 65 29 5d 0a 20 20 20 20 | "interactive".interactive)]..... | 
| 17a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 26 72 65 73 74 20 73 65 78 | .......................&rest.sex | 
| 17c0 | 70 29 29 29 0a 20 20 28 6c 65 74 20 28 28 61 72    67 73 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 | p)))...(let.((args.(make-symbol. | 
| 17e0 | 22 61 72 67 73 22 29 29 0a 20 20 20 20 20 20 20    20 28 70 72 6f 6d 69 73 65 20 28 6d 61 6b 65 2d | "args")).........(promise.(make- | 
| 1800 | 73 79 6d 62 6f 6c 20 22 70 72 6f 6d 69 73 65 22    29 29 0a 20 20 20 20 20 20 20 20 28 73 70 6c 69 | symbol."promise")).........(spli | 
| 1820 | 74 2d 62 6f 64 79 20 28 6d 61 63 72 6f 65 78 70    2d 70 61 72 73 65 2d 62 6f 64 79 20 62 6f 64 79 | t-body.(macroexp-parse-body.body | 
| 1840 | 29 29 29 0a 20 20 20 20 60 28 6c 61 6d 62 64 61    20 28 26 72 65 73 74 20 2c 61 72 67 73 29 0a 20 | ))).....`(lambda.(&rest.,args).. | 
| 1860 | 20 20 20 20 20 20 2c 40 28 63 61 72 20 73 70 6c    69 74 2d 62 6f 64 79 29 0a 20 20 20 20 20 20 20 | ......,@(car.split-body)........ | 
| 1880 | 28 6c 65 74 2a 20 28 28 2c 70 72 6f 6d 69 73 65    20 28 61 69 6f 2d 70 72 6f 6d 69 73 65 29 29 0a | (let*.((,promise.(aio-promise)). | 
| 18a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69    74 65 72 20 28 61 70 70 6c 79 20 28 69 74 65 72 | ..............(iter.(apply.(iter | 
| 18c0 | 2d 6c 61 6d 62 64 61 20 2c 61 72 67 6c 69 73 74    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -lambda.,arglist................ | 
| 18e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61    69 6f 2d 77 69 74 68 2d 70 72 6f 6d 69 73 65 20 | ..............(aio-with-promise. | 
| 1900 | 2c 70 72 6f 6d 69 73 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,promise........................ | 
| 1920 | 20 20 20 20 20 20 20 20 2c 40 28 63 64 72 20 73    70 6c 69 74 2d 62 6f 64 79 29 29 29 0a 20 20 20 | ........,@(cdr.split-body))).... | 
| 1940 | 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 61 72 67 73 29 29 29 | ........................,args))) | 
| 1960 | 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31    20 2c 70 72 6f 6d 69 73 65 0a 20 20 20 20 20 20 | ..........(prog1.,promise....... | 
| 1980 | 20 20 20 20 20 28 61 69 6f 2d 2d 73 74 65 70 20    69 74 65 72 20 2c 70 72 6f 6d 69 73 65 20 6e 69 | .....(aio--step.iter.,promise.ni | 
| 19a0 | 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63    72 6f 20 61 69 6f 2d 64 65 66 75 6e 20 28 6e 61 | l))))))..(defmacro.aio-defun.(na | 
| 19c0 | 6d 65 20 61 72 67 6c 69 73 74 20 26 72 65 73 74    20 62 6f 64 79 29 0a 20 20 22 4c 69 6b 65 20 60 | me.arglist.&rest.body)..."Like.` | 
| 19e0 | 61 69 6f 2d 6c 61 6d 62 64 61 27 20 62 75 74 20    67 69 76 65 73 20 74 68 65 20 66 75 6e 63 74 69 | aio-lambda'.but.gives.the.functi | 
| 1a00 | 6f 6e 20 61 20 6e 61 6d 65 20 6c 69 6b 65 20 60    64 65 66 75 6e 27 2e 22 0a 20 20 28 64 65 63 6c | on.a.name.like.`defun'."...(decl | 
| 1a20 | 61 72 65 20 28 69 6e 64 65 6e 74 20 64 65 66 75    6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 | are.(indent.defun)............(d | 
| 1a40 | 6f 63 2d 73 74 72 69 6e 67 20 33 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 64 65 62 75 67 20 28 | oc-string.3)............(debug.( | 
| 1a60 | 26 64 65 66 69 6e 65 20 6e 61 6d 65 20 6c 61 6d    62 64 61 2d 6c 69 73 74 20 26 72 65 73 74 20 73 | &define.name.lambda-list.&rest.s | 
| 1a80 | 65 78 70 29 29 29 0a 20 20 60 28 70 72 6f 67 6e    0a 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 | exp)))...`(progn......(defalias. | 
| 1aa0 | 27 2c 6e 61 6d 65 20 28 61 69 6f 2d 6c 61 6d 62    64 61 20 2c 61 72 67 6c 69 73 74 20 2c 40 62 6f | ',name.(aio-lambda.,arglist.,@bo | 
| 1ac0 | 64 79 29 29 0a 20 20 20 20 20 28 66 75 6e 63 74    69 6f 6e 2d 70 75 74 20 27 2c 6e 61 6d 65 20 27 | dy))......(function-put.',name.' | 
| 1ae0 | 61 69 6f 2d 64 65 66 75 6e 2d 70 20 74 29 29 29    0a 0a 28 64 65 66 75 6e 20 61 69 6f 2d 77 61 69 | aio-defun-p.t)))..(defun.aio-wai | 
| 1b00 | 74 2d 66 6f 72 20 28 70 72 6f 6d 69 73 65 29 0a    20 20 22 53 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 | t-for.(promise)..."Synchronously | 
| 1b20 | 20 77 61 69 74 20 66 6f 72 20 50 52 4f 4d 49 53    45 2c 20 62 6c 6f 63 6b 69 6e 67 20 74 68 65 20 | .wait.for.PROMISE,.blocking.the. | 
| 1b40 | 63 75 72 72 65 6e 74 20 74 68 72 65 61 64 2e 22    0a 20 20 28 77 68 69 6c 65 20 28 6e 75 6c 6c 20 | current.thread."...(while.(null. | 
| 1b60 | 28 61 69 6f 2d 72 65 73 75 6c 74 20 70 72 6f 6d    69 73 65 29 29 0a 20 20 20 20 28 61 63 63 65 70 | (aio-result.promise)).....(accep | 
| 1b80 | 74 2d 70 72 6f 63 65 73 73 2d 6f 75 74 70 75 74    29 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 61 | t-process-output))...(funcall.(a | 
| 1ba0 | 69 6f 2d 72 65 73 75 6c 74 20 70 72 6f 6d 69 73    65 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 69 6f | io-result.promise)))..(defun.aio | 
| 1bc0 | 2d 63 61 6e 63 65 6c 20 28 70 72 6f 6d 69 73 65    20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 61 73 6f | -cancel.(promise.&optional.reaso | 
| 1be0 | 6e 29 0a 20 20 22 41 74 74 65 6d 70 74 20 74 6f    20 63 61 6e 63 65 6c 20 50 52 4f 4d 49 53 45 2c | n)..."Attempt.to.cancel.PROMISE, | 
| 1c00 | 20 72 65 74 75 72 6e 69 6e 67 20 6e 6f 6e 2d 6e    69 6c 20 69 66 20 73 75 63 63 65 73 73 66 75 6c | .returning.non-nil.if.successful | 
| 1c20 | 2e 0a 0a 41 6c 6c 20 61 77 61 69 74 65 72 73 20    77 69 6c 6c 20 72 65 63 65 69 76 65 20 61 6e 20 | ...All.awaiters.will.receive.an. | 
| 1c40 | 61 69 6f 2d 63 61 6e 63 65 6c 20 73 69 67 6e 61    6c 2e 20 54 68 65 20 61 63 74 75 61 6c 0a 75 6e | aio-cancel.signal..The.actual.un | 
| 1c60 | 64 65 72 6c 79 69 6e 67 20 61 73 79 6e 63 68 72    6f 6e 6f 75 73 20 6f 70 65 72 61 74 69 6f 6e 20 | derlying.asynchronous.operation. | 
| 1c80 | 77 69 6c 6c 20 6e 6f 74 20 61 63 74 75 61 6c 6c    79 20 62 65 20 63 61 6e 63 65 6c 65 64 2e 22 0a | will.not.actually.be.canceled.". | 
| 1ca0 | 20 20 28 75 6e 6c 65 73 73 20 28 61 69 6f 2d 72    65 73 75 6c 74 20 70 72 6f 6d 69 73 65 29 0a 20 | ..(unless.(aio-result.promise).. | 
| 1cc0 | 20 20 20 28 61 69 6f 2d 72 65 73 6f 6c 76 65 20    70 72 6f 6d 69 73 65 20 28 6c 61 6d 62 64 61 20 | ...(aio-resolve.promise.(lambda. | 
| 1ce0 | 28 29 20 28 73 69 67 6e 61 6c 20 27 61 69 6f 2d    63 61 6e 63 65 6c 20 72 65 61 73 6f 6e 29 29 29 | ().(signal.'aio-cancel.reason))) | 
| 1d00 | 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 61 69    6f 2d 77 69 74 68 2d 61 73 79 6e 63 20 28 26 72 | ))..(defmacro.aio-with-async.(&r | 
| 1d20 | 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 61    6c 75 61 74 65 20 42 4f 44 59 20 61 73 79 6e 63 | est.body)..."Evaluate.BODY.async | 
| 1d40 | 68 72 6f 6e 6f 75 73 6c 79 20 61 73 20 69 66 20    69 74 20 77 61 73 20 69 6e 73 69 64 65 20 60 61 | hronously.as.if.it.was.inside.`a | 
| 1d60 | 69 6f 2d 6c 61 6d 62 64 61 27 2e 0a 0a 53 69 6e    63 65 20 42 4f 44 59 20 69 73 20 65 76 61 6c 75 | io-lambda'...Since.BODY.is.evalu | 
| 1d80 | 65 64 20 69 6e 73 69 64 65 20 61 6e 20 61 73 79    6e 63 68 72 6f 6e 6f 75 73 20 6c 61 6d 62 64 61 | ed.inside.an.asynchronous.lambda | 
| 1da0 | 2c 20 60 61 69 6f 2d 61 77 61 69 74 27 0a 69 73    20 61 76 61 69 6c 61 62 6c 65 20 68 65 72 65 2e | ,.`aio-await'.is.available.here. | 
| 1dc0 | 20 54 68 69 73 20 6d 61 63 72 6f 20 65 76 61 6c    75 61 74 65 73 20 74 6f 20 61 20 70 72 6f 6d 69 | .This.macro.evaluates.to.a.promi | 
| 1de0 | 73 65 20 66 6f 72 20 42 4f 44 59 27 73 0a 65 76    65 6e 74 75 61 6c 20 72 65 73 75 6c 74 2e 0a 0a | se.for.BODY's.eventual.result... | 
| 1e00 | 42 65 77 61 72 65 3a 20 44 79 6e 61 6d 69 63 20    62 69 6e 64 69 6e 67 73 20 74 68 61 74 20 61 72 | Beware:.Dynamic.bindings.that.ar | 
| 1e20 | 65 20 6c 65 78 69 63 61 6c 6c 79 20 6f 75 74 73    69 64 65 0a e2 80 98 61 69 6f 2d 77 69 74 68 2d | e.lexically.outside....aio-with- | 
| 1e40 | 61 73 79 6e 63 e2 80 99 20 62 6c 6f 63 6b 73 20    68 61 76 65 20 6e 6f 20 65 66 66 65 63 74 2e 20 | async....blocks.have.no.effect.. | 
| 1e60 | 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 0a 20    20 28 64 65 66 76 61 72 20 64 79 6e 61 6d 69 63 | .For.example,....(defvar.dynamic | 
| 1e80 | 2d 76 61 72 20 6e 69 6c 29 0a 20 20 28 64 65 66    75 6e 20 6d 79 2d 66 75 6e 63 20 28 29 0a 20 20 | -var.nil)...(defun.my-func.()... | 
| 1ea0 | 20 20 28 6c 65 74 20 28 28 64 79 6e 61 6d 69 63    2d 76 61 72 20 31 32 33 29 29 0a 20 20 20 20 20 | ..(let.((dynamic-var.123))...... | 
| 1ec0 | 20 28 61 69 6f 2d 77 69 74 68 2d 61 73 79 6e 63    20 64 79 6e 61 6d 69 63 2d 76 61 72 29 29 29 0a | .(aio-with-async.dynamic-var))). | 
| 1ee0 | 20 20 28 6c 65 74 20 28 28 64 79 6e 61 6d 69 63    2d 76 61 72 20 34 35 36 29 29 0a 20 20 20 20 28 | ..(let.((dynamic-var.456)).....( | 
| 1f00 | 61 69 6f 2d 77 61 69 74 2d 66 6f 72 20 28 6d 79    2d 66 75 6e 63 29 29 29 0a 20 20 e2 87 92 20 34 | aio-wait-for.(my-func))).......4 | 
| 1f20 | 35 36 0a 0a 4f 74 68 65 72 20 67 6c 6f 62 61 6c    20 73 74 61 74 65 20 73 75 63 68 20 61 73 20 74 | 56..Other.global.state.such.as.t | 
| 1f40 | 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65    72 20 62 65 68 61 76 65 73 20 6c 69 6b 65 77 69 | he.current.buffer.behaves.likewi | 
| 1f60 | 73 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20    28 69 6e 64 65 6e 74 20 30 29 0a 20 20 20 20 20 | se."...(declare.(indent.0)...... | 
| 1f80 | 20 20 20 20 20 20 28 64 65 62 75 67 20 28 26 72    65 73 74 20 73 65 78 70 29 29 29 0a 20 20 60 28 | ......(debug.(&rest.sexp)))...`( | 
| 1fa0 | 6c 65 74 20 28 28 70 72 6f 6d 69 73 65 20 28 66    75 6e 63 61 6c 6c 20 28 61 69 6f 2d 6c 61 6d 62 | let.((promise.(funcall.(aio-lamb | 
| 1fc0 | 64 61 20 28 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 | da.()........................... | 
| 1fe0 | 20 20 20 28 61 69 6f 2d 61 77 61 69 74 20 28 61    69 6f 2d 73 6c 65 65 70 20 30 29 29 0a 20 20 20 | ...(aio-await.(aio-sleep.0)).... | 
| 2000 | 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 40 62 6f 64 79 | ..........................,@body | 
| 2020 | 29 29 29 29 0a 20 20 20 20 20 28 70 72 6f 67 31    20 70 72 6f 6d 69 73 65 0a 20 20 20 20 20 20 20 | ))))......(prog1.promise........ | 
| 2040 | 3b 3b 20 54 68 65 20 69 73 20 74 68 65 20 6d 61    69 6e 20 66 65 61 74 75 72 65 3a 20 46 6f 72 63 | ;;.The.is.the.main.feature:.Forc | 
| 2060 | 65 20 74 68 65 20 66 69 6e 61 6c 20 72 65 73 75    6c 74 20 74 6f 20 62 65 0a 20 20 20 20 20 20 20 | e.the.final.result.to.be........ | 
| 2080 | 3b 3b 20 72 65 61 6c 69 7a 65 64 20 73 6f 20 74    68 61 74 20 65 72 72 6f 72 73 20 61 72 65 20 72 | ;;.realized.so.that.errors.are.r | 
| 20a0 | 65 70 6f 72 74 65 64 2e 0a 20 20 20 20 20 20 20    28 61 69 6f 2d 6c 69 73 74 65 6e 20 70 72 6f 6d | eported.........(aio-listen.prom | 
| 20c0 | 69 73 65 20 23 27 66 75 6e 63 61 6c 6c 29 29 29    29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 61 69 6f | ise.#'funcall))))..(defmacro.aio | 
| 20e0 | 2d 63 68 61 69 6e 20 28 65 78 70 72 29 0a 20 20    22 60 61 69 6f 2d 61 77 61 69 74 27 20 6f 6e 20 | -chain.(expr)..."`aio-await'.on. | 
| 2100 | 45 58 50 52 20 61 6e 64 20 72 65 70 6c 61 63 65    20 70 6c 61 63 65 20 45 58 50 52 20 77 69 74 68 | EXPR.and.replace.place.EXPR.with | 
| 2120 | 20 74 68 65 20 6e 65 78 74 20 70 72 6f 6d 69 73    65 2e 0a 0a 45 58 50 52 20 6d 75 73 74 20 62 65 | .the.next.promise...EXPR.must.be | 
| 2140 | 20 73 65 74 66 2d 61 62 6c 65 2e 20 52 65 74 75    72 6e 73 20 28 63 64 72 20 72 65 73 75 6c 74 29 | .setf-able..Returns.(cdr.result) | 
| 2160 | 2e 20 54 68 69 73 20 6d 61 63 72 6f 20 69 73 0a    69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 | ..This.macro.is.intended.to.be.u | 
| 2180 | 73 65 64 20 77 69 74 68 20 60 61 69 6f 2d 6d 61    6b 65 2d 63 61 6c 6c 62 61 63 6b 27 20 69 6e 20 | sed.with.`aio-make-callback'.in. | 
| 21a0 | 6f 72 64 65 72 20 74 6f 20 66 6f 6c 6c 6f 77 0a    61 20 63 68 61 69 6e 20 6f 66 20 70 72 6f 6d 69 | order.to.follow.a.chain.of.promi | 
| 21c0 | 73 65 2d 79 69 65 6c 64 69 6e 67 20 70 72 6f 6d    69 73 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 | se-yielding.promises."...(let.(( | 
| 21e0 | 72 65 73 75 6c 74 20 28 6d 61 6b 65 2d 73 79 6d    62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a | result.(make-symbol."result"))). | 
| 2200 | 20 20 20 20 60 28 6c 65 74 20 28 28 2c 72 65 73    75 6c 74 20 28 61 69 6f 2d 61 77 61 69 74 20 2c | ....`(let.((,result.(aio-await., | 
| 2220 | 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 20 28    73 65 74 66 20 2c 65 78 70 72 20 28 63 61 72 20 | expr)))........(setf.,expr.(car. | 
| 2240 | 2c 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20    20 28 63 64 72 20 2c 72 65 73 75 6c 74 29 29 29 | ,result))........(cdr.,result))) | 
| 2260 | 29 0a 0a 3b 3b 20 55 73 65 66 75 6c 20 70 72 6f    6d 69 73 65 2d 72 65 74 75 72 6e 69 6e 67 20 66 | )..;;.Useful.promise-returning.f | 
| 2280 | 75 6e 63 74 69 6f 6e 73 3a 0a 0a 28 72 65 71 75    69 72 65 20 27 75 72 6c 29 0a 0a 28 61 69 6f 2d | unctions:..(require.'url)..(aio- | 
| 22a0 | 64 65 66 75 6e 20 61 69 6f 2d 61 6c 6c 20 28 70    72 6f 6d 69 73 65 73 29 0a 20 20 22 52 65 74 75 | defun.aio-all.(promises)..."Retu | 
| 22c0 | 72 6e 20 61 20 70 72 6f 6d 69 73 65 20 74 68 61    74 20 72 65 73 6f 6c 76 65 73 20 77 68 65 6e 20 | rn.a.promise.that.resolves.when. | 
| 22e0 | 61 6c 6c 20 50 52 4f 4d 49 53 45 53 20 61 72 65    20 72 65 73 6f 6c 76 65 64 2e 22 0a 20 20 28 64 | all.PROMISES.are.resolved."...(d | 
| 2300 | 6f 6c 69 73 74 20 28 70 72 6f 6d 69 73 65 20 70    72 6f 6d 69 73 65 73 29 0a 20 20 20 20 28 61 69 | olist.(promise.promises).....(ai | 
| 2320 | 6f 2d 61 77 61 69 74 20 70 72 6f 6d 69 73 65 29    29 29 0a 0a 28 64 65 66 75 6e 20 61 69 6f 2d 63 | o-await.promise)))..(defun.aio-c | 
| 2340 | 61 74 63 68 20 28 70 72 6f 6d 69 73 65 29 0a 20    20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 70 | atch.(promise)..."Return.a.new.p | 
| 2360 | 72 6f 6d 69 73 65 20 74 68 61 74 20 77 72 61 70    73 20 50 52 4f 4d 49 53 45 20 62 75 74 20 77 69 | romise.that.wraps.PROMISE.but.wi | 
| 2380 | 6c 6c 20 6e 65 76 65 72 20 73 69 67 6e 61 6c 2e    0a 0a 54 68 65 20 70 72 6f 6d 69 73 65 20 76 61 | ll.never.signal...The.promise.va | 
| 23a0 | 6c 75 65 20 69 73 20 61 20 63 6f 6e 73 20 77 68    65 72 65 20 74 68 65 20 63 61 72 20 69 73 20 65 | lue.is.a.cons.where.the.car.is.e | 
| 23c0 | 69 74 68 65 72 20 3a 73 75 63 63 65 73 73 20 6f    72 0a 3a 65 72 72 6f 72 2e 20 46 6f 72 20 3a 73 | ither.:success.or.:error..For.:s | 
| 23e0 | 75 63 63 65 73 73 2c 20 74 68 65 20 63 64 72 20    77 69 6c 6c 20 62 65 20 74 68 65 20 72 65 73 75 | uccess,.the.cdr.will.be.the.resu | 
| 2400 | 6c 74 20 76 61 6c 75 65 2e 20 46 6f 72 0a 3a 65    72 72 6f 72 2c 20 74 68 65 20 63 64 72 20 77 69 | lt.value..For.:error,.the.cdr.wi | 
| 2420 | 6c 6c 20 62 65 20 74 68 65 20 65 72 72 6f 72 20    64 61 74 61 2e 22 0a 20 20 28 6c 65 74 20 28 28 | ll.be.the.error.data."...(let.(( | 
| 2440 | 72 65 73 75 6c 74 20 28 61 69 6f 2d 70 72 6f 6d    69 73 65 29 29 29 0a 20 20 20 20 28 63 6c 2d 66 | result.(aio-promise))).....(cl-f | 
| 2460 | 6c 65 74 20 28 28 63 61 6c 6c 62 61 63 6b 20 28    76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 | let.((callback.(value).......... | 
| 2480 | 20 20 20 20 20 20 20 28 61 69 6f 2d 72 65 73 6f    6c 76 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 | .......(aio-resolve.result...... | 
| 24a0 | 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 6c 61 6d 62 64 61 20 | ........................(lambda. | 
| 24c0 | 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ().............................. | 
| 24e0 | 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73    65 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 | ..(condition-case.error......... | 
| 2500 | 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 63 6f 6e 73 | ...........................(cons | 
| 2520 | 20 3a 73 75 63 63 65 73 73 20 28 66 75 6e 63 61    6c 6c 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 | .:success.(funcall.value))...... | 
| 2540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 | ............................(err | 
| 2560 | 6f 72 20 28 63 6f 6e 73 20 3a 65 72 72 6f 72 20    65 72 72 6f 72 29 29 29 29 29 29 29 0a 20 20 20 | or.(cons.:error.error))))))).... | 
| 2580 | 20 20 20 28 70 72 6f 67 31 20 72 65 73 75 6c 74    0a 20 20 20 20 20 20 20 20 28 61 69 6f 2d 6c 69 | ...(prog1.result.........(aio-li | 
| 25a0 | 73 74 65 6e 20 70 72 6f 6d 69 73 65 20 23 27 63    61 6c 6c 62 61 63 6b 29 29 29 29 29 0a 0a 28 64 | sten.promise.#'callback)))))..(d | 
| 25c0 | 65 66 75 6e 20 61 69 6f 2d 73 6c 65 65 70 20 28    73 65 63 6f 6e 64 73 20 26 6f 70 74 69 6f 6e 61 | efun.aio-sleep.(seconds.&optiona | 
| 25e0 | 6c 20 72 65 73 75 6c 74 29 0a 20 20 22 43 72 65    61 74 65 20 61 20 70 72 6f 6d 69 73 65 20 74 68 | l.result)..."Create.a.promise.th | 
| 2600 | 61 74 20 69 73 20 72 65 73 6f 6c 76 65 64 20 61    66 74 65 72 20 53 45 43 4f 4e 44 53 20 77 69 74 | at.is.resolved.after.SECONDS.wit | 
| 2620 | 68 20 52 45 53 55 4c 54 2e 0a 0a 54 68 65 20 72    65 73 75 6c 74 20 69 73 20 61 20 76 61 6c 75 65 | h.RESULT...The.result.is.a.value | 
| 2640 | 2c 20 6e 6f 74 20 61 20 76 61 6c 75 65 20 66 75    6e 63 74 69 6f 6e 2c 20 61 6e 64 20 69 74 20 77 | ,.not.a.value.function,.and.it.w | 
| 2660 | 69 6c 6c 20 62 65 0a 61 75 74 6f 6d 61 74 69 63    61 6c 6c 79 20 77 72 61 70 70 65 64 20 77 69 74 | ill.be.automatically.wrapped.wit | 
| 2680 | 68 20 61 20 76 61 6c 75 65 20 66 75 6e 63 74 69    6f 6e 20 28 73 65 65 20 60 61 69 6f 2d 72 65 73 | h.a.value.function.(see.`aio-res | 
| 26a0 | 6f 6c 76 65 27 29 2e 22 0a 20 20 28 6c 65 74 20    28 28 70 72 6f 6d 69 73 65 20 28 61 69 6f 2d 70 | olve')."...(let.((promise.(aio-p | 
| 26c0 | 72 6f 6d 69 73 65 29 29 29 0a 20 20 20 20 28 70    72 6f 67 31 20 70 72 6f 6d 69 73 65 0a 20 20 20 | romise))).....(prog1.promise.... | 
| 26e0 | 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20    73 65 63 6f 6e 64 73 20 6e 69 6c 0a 20 20 20 20 | ...(run-at-time.seconds.nil..... | 
| 2700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23    27 61 69 6f 2d 72 65 73 6f 6c 76 65 20 70 72 6f | ...............#'aio-resolve.pro | 
| 2720 | 6d 69 73 65 20 28 6c 61 6d 62 64 61 20 28 29 20    72 65 73 75 6c 74 29 29 29 29 29 0a 0a 28 64 65 | mise.(lambda.().result)))))..(de | 
| 2740 | 66 75 6e 20 61 69 6f 2d 69 64 6c 65 20 28 73 65    63 6f 6e 64 73 20 26 6f 70 74 69 6f 6e 61 6c 20 | fun.aio-idle.(seconds.&optional. | 
| 2760 | 72 65 73 75 6c 74 29 0a 20 20 22 43 72 65 61 74    65 20 61 20 70 72 6f 6d 69 73 65 20 74 68 61 74 | result)..."Create.a.promise.that | 
| 2780 | 20 69 73 20 72 65 73 6f 6c 76 65 64 20 61 66 74    65 72 20 69 64 6c 65 20 53 45 43 4f 4e 44 53 20 | .is.resolved.after.idle.SECONDS. | 
| 27a0 | 77 69 74 68 20 52 45 53 55 4c 54 2e 0a 0a 54 68    65 20 72 65 73 75 6c 74 20 69 73 20 61 20 76 61 | with.RESULT...The.result.is.a.va | 
| 27c0 | 6c 75 65 2c 20 6e 6f 74 20 61 20 76 61 6c 75 65    20 66 75 6e 63 74 69 6f 6e 2c 20 61 6e 64 20 69 | lue,.not.a.value.function,.and.i | 
| 27e0 | 74 20 77 69 6c 6c 20 62 65 0a 61 75 74 6f 6d 61    74 69 63 61 6c 6c 79 20 77 72 61 70 70 65 64 20 | t.will.be.automatically.wrapped. | 
| 2800 | 77 69 74 68 20 61 20 76 61 6c 75 65 20 66 75 6e    63 74 69 6f 6e 20 28 73 65 65 20 60 61 69 6f 2d | with.a.value.function.(see.`aio- | 
| 2820 | 72 65 73 6f 6c 76 65 27 29 2e 22 0a 20 20 28 6c    65 74 20 28 28 70 72 6f 6d 69 73 65 20 28 61 69 | resolve')."...(let.((promise.(ai | 
| 2840 | 6f 2d 70 72 6f 6d 69 73 65 29 29 29 0a 20 20 20    20 28 70 72 6f 67 31 20 70 72 6f 6d 69 73 65 0a | o-promise))).....(prog1.promise. | 
| 2860 | 20 20 20 20 20 20 28 72 75 6e 2d 77 69 74 68 2d    69 64 6c 65 2d 74 69 6d 65 72 20 73 65 63 6f 6e | ......(run-with-idle-timer.secon | 
| 2880 | 64 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ds.nil.......................... | 
| 28a0 | 20 20 23 27 61 69 6f 2d 72 65 73 6f 6c 76 65 20    70 72 6f 6d 69 73 65 20 28 6c 61 6d 62 64 61 20 | ..#'aio-resolve.promise.(lambda. | 
| 28c0 | 28 29 20 72 65 73 75 6c 74 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 61 69 6f 2d 74 69 6d 65 6f | ().result)))))..(defun.aio-timeo | 
| 28e0 | 75 74 20 28 73 65 63 6f 6e 64 73 29 0a 20 20 22    43 72 65 61 74 65 20 61 20 70 72 6f 6d 69 73 65 | ut.(seconds)..."Create.a.promise | 
| 2900 | 20 77 69 74 68 20 61 20 74 69 6d 65 6f 75 74 20    65 72 72 6f 72 20 61 66 74 65 72 20 53 45 43 4f | .with.a.timeout.error.after.SECO | 
| 2920 | 4e 44 53 2e 22 0a 20 20 28 6c 65 74 20 28 28 74    69 6d 65 6f 75 74 20 28 61 69 6f 2d 70 72 6f 6d | NDS."...(let.((timeout.(aio-prom | 
| 2940 | 69 73 65 29 29 29 0a 20 20 20 20 28 70 72 6f 67    31 20 74 69 6d 65 6f 75 74 0a 20 20 20 20 20 20 | ise))).....(prog1.timeout....... | 
| 2960 | 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 73 65 63    6f 6e 64 73 20 6e 69 6c 23 27 61 69 6f 2d 72 65 | (run-at-time.seconds.nil#'aio-re | 
| 2980 | 73 6f 6c 76 65 20 74 69 6d 65 6f 75 74 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | solve.timeout................... | 
| 29a0 | 20 28 6c 61 6d 62 64 61 20 28 29 20 28 73 69 67    6e 61 6c 20 27 61 69 6f 2d 74 69 6d 65 6f 75 74 | .(lambda.().(signal.'aio-timeout | 
| 29c0 | 20 73 65 63 6f 6e 64 73 29 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 61 69 6f 2d 75 72 6c 2d 72 | .seconds))))))..(defun.aio-url-r | 
| 29e0 | 65 74 72 69 65 76 65 20 28 75 72 6c 20 26 6f 70    74 69 6f 6e 61 6c 20 73 69 6c 65 6e 74 20 69 6e | etrieve.(url.&optional.silent.in | 
| 2a00 | 68 69 62 69 74 2d 63 6f 6f 6b 69 65 73 29 0a 20    20 22 57 72 61 70 73 20 60 75 72 6c 2d 72 65 74 | hibit-cookies)..."Wraps.`url-ret | 
| 2a20 | 72 69 65 76 65 27 20 69 6e 20 61 20 70 72 6f 6d    69 73 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 | rieve'.in.a.promise...This.funct | 
| 2a40 | 69 6f 6e 20 77 69 6c 6c 20 6e 65 76 65 72 20 64    69 72 65 63 74 6c 79 20 73 69 67 6e 61 6c 20 61 | ion.will.never.directly.signal.a | 
| 2a60 | 6e 20 65 72 72 6f 72 2e 20 49 6e 73 74 65 61 64    20 61 6e 79 0a 65 72 72 6f 72 73 20 77 69 6c 6c | n.error..Instead.any.errors.will | 
| 2a80 | 20 62 65 20 64 65 6c 69 76 65 72 65 64 20 76 69    61 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 70 | .be.delivered.via.the.returned.p | 
| 2aa0 | 72 6f 6d 69 73 65 2e 20 54 68 65 20 70 72 6f 6d    69 73 65 0a 72 65 73 75 6c 74 20 69 73 20 61 20 | romise..The.promise.result.is.a. | 
| 2ac0 | 63 6f 6e 73 20 6f 66 20 28 73 74 61 74 75 73 20    2e 20 62 75 66 66 65 72 29 2e 20 54 68 69 73 20 | cons.of.(status...buffer)..This. | 
| 2ae0 | 62 75 66 66 65 72 20 69 73 20 61 20 63 6c 6f 6e    65 20 6f 66 0a 74 68 65 20 62 75 66 66 65 72 20 | buffer.is.a.clone.of.the.buffer. | 
| 2b00 | 63 72 65 61 74 65 64 20 62 79 20 60 75 72 6c 2d    72 65 74 72 69 65 76 65 27 20 61 6e 64 20 73 68 | created.by.`url-retrieve'.and.sh | 
| 2b20 | 6f 75 6c 64 20 62 65 20 6b 69 6c 6c 65 64 20 62    79 20 74 68 65 0a 63 61 6c 6c 65 72 2e 22 0a 20 | ould.be.killed.by.the.caller.".. | 
| 2b40 | 20 28 6c 65 74 20 28 28 70 72 6f 6d 69 73 65 20    28 61 69 6f 2d 70 72 6f 6d 69 73 65 29 29 29 0a | .(let.((promise.(aio-promise))). | 
| 2b60 | 20 20 20 20 28 70 72 6f 67 31 20 70 72 6f 6d 69    73 65 0a 20 20 20 20 20 20 28 63 6f 6e 64 69 74 | ....(prog1.promise.......(condit | 
| 2b80 | 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 0a 20    20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 | ion-case.error...........(url-re | 
| 2ba0 | 74 72 69 65 76 65 20 75 72 6c 20 28 6c 61 6d 62    64 61 20 28 73 74 61 74 75 73 29 0a 20 20 20 20 | trieve.url.(lambda.(status)..... | 
| 2bc0 | 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 6c 65 74 20 28 | ..........................(let.( | 
| 2be0 | 28 76 61 6c 75 65 20 28 63 6f 6e 73 20 73 74 61    74 75 73 20 28 63 6c 6f 6e 65 2d 62 75 66 66 65 | (value.(cons.status.(clone-buffe | 
| 2c00 | 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r))))........................... | 
| 2c20 | 20 20 20 20 20 20 28 61 69 6f 2d 72 65 73 6f 6c    76 65 20 70 72 6f 6d 69 73 65 20 28 6c 61 6d 62 | ......(aio-resolve.promise.(lamb | 
| 2c40 | 64 61 20 28 29 20 76 61 6c 75 65 29 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | da.().value))))................. | 
| 2c60 | 20 20 20 20 20 20 20 20 73 69 6c 65 6e 74 20 69    6e 68 69 62 69 74 2d 63 6f 6f 6b 69 65 73 29 0a | ........silent.inhibit-cookies). | 
| 2c80 | 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 28    61 69 6f 2d 72 65 73 6f 6c 76 65 20 70 72 6f 6d | ........(error.(aio-resolve.prom | 
| 2ca0 | 69 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ise............................. | 
| 2cc0 | 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (lambda.()...................... | 
| 2ce0 | 20 20 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c    20 28 63 61 72 20 65 72 72 6f 72 29 20 28 63 64 | .........(signal.(car.error).(cd | 
| 2d00 | 72 20 65 72 72 6f 72 29 29 29 29 29 29 29 29 29    0a 0a 28 63 6c 2d 64 65 66 75 6e 20 61 69 6f 2d | r.error)))))))))..(cl-defun.aio- | 
| 2d20 | 6d 61 6b 65 2d 63 61 6c 6c 62 61 63 6b 20 28 26    6b 65 79 20 74 61 67 20 6f 6e 63 65 29 0a 20 20 | make-callback.(&key.tag.once)... | 
| 2d40 | 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 63 61    6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 | "Return.a.new.callback.function. | 
| 2d60 | 61 6e 64 20 69 74 73 20 66 69 72 73 74 20 70 72    6f 6d 69 73 65 2e 0a 0a 52 65 74 75 72 6e 73 20 | and.its.first.promise...Returns. | 
| 2d80 | 61 20 63 6f 6e 73 20 28 63 61 6c 6c 62 61 63 6b    20 2e 20 70 72 6f 6d 69 73 65 29 20 77 68 65 72 | a.cons.(callback...promise).wher | 
| 2da0 | 65 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 66 75    6e 63 74 69 6f 6e 0a 73 75 69 74 61 62 6c 65 20 | e.callback.is.function.suitable. | 
| 2dc0 | 66 6f 72 20 72 65 70 65 61 74 65 64 20 69 6e 76    6f 63 61 74 69 6f 6e 2e 20 54 68 69 73 20 6d 61 | for.repeated.invocation..This.ma | 
| 2de0 | 6b 65 73 20 69 74 20 75 73 65 66 75 6c 20 66 6f    72 0a 70 72 6f 63 65 73 73 20 66 69 6c 74 65 72 | kes.it.useful.for.process.filter | 
| 2e00 | 73 20 61 6e 64 20 73 65 6e 74 69 6e 65 6c 73 2e    20 54 68 65 20 70 72 6f 6d 69 73 65 20 69 73 20 | s.and.sentinels..The.promise.is. | 
| 2e20 | 74 68 65 20 66 69 72 73 74 20 70 72 6f 6d 69 73    65 0a 74 6f 20 62 65 20 72 65 73 6f 6c 76 65 64 | the.first.promise.to.be.resolved | 
| 2e40 | 20 62 79 20 74 68 65 20 63 61 6c 6c 62 61 63 6b    2e 0a 0a 54 68 65 20 70 72 6f 6d 69 73 65 20 72 | .by.the.callback...The.promise.r | 
| 2e60 | 65 73 6f 6c 76 65 73 20 74 6f 3a 0a 20 20 28 6e    65 78 74 2d 70 72 6f 6d 69 73 65 20 2e 20 63 61 | esolves.to:...(next-promise...ca | 
| 2e80 | 6c 6c 62 61 63 6b 2d 61 72 67 73 29 0a 4f 72 20    77 68 65 6e 20 54 41 47 20 69 73 20 73 75 70 70 | llback-args).Or.when.TAG.is.supp | 
| 2ea0 | 6c 69 65 64 3a 0a 20 20 28 6e 65 78 74 2d 70 72    6f 6d 69 73 65 20 54 41 47 20 2e 20 63 61 6c 6c | lied:...(next-promise.TAG...call | 
| 2ec0 | 62 61 63 6b 2d 61 72 67 73 29 0a 4f 72 20 69 66    20 4f 4e 43 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c | back-args).Or.if.ONCE.is.non-nil | 
| 2ee0 | 3a 0a 20 20 63 61 6c 6c 62 61 63 6b 2d 61 72 67    73 0a 0a 54 68 65 20 63 61 6c 6c 62 61 63 6b 20 | :...callback-args..The.callback. | 
| 2f00 | 72 65 73 6f 6c 76 65 73 20 6e 65 78 74 2d 70 72    6f 6d 69 73 65 20 6f 6e 20 74 68 65 20 6e 65 78 | resolves.next-promise.on.the.nex | 
| 2f20 | 74 20 69 6e 76 6f 63 61 74 69 6f 6e 2e 20 54 68    69 73 0a 63 72 65 61 74 65 73 20 61 20 63 68 61 | t.invocation..This.creates.a.cha | 
| 2f40 | 69 6e 20 6f 66 20 70 72 6f 6d 69 73 65 73 20 72    65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 | in.of.promises.representing.the. | 
| 2f60 | 73 65 71 75 65 6e 63 65 20 6f 66 20 63 61 6c 6c    73 2e 0a 4e 6f 74 65 3a 20 54 6f 20 61 76 6f 69 | sequence.of.calls..Note:.To.avoi | 
| 2f80 | 64 20 6b 65 65 70 69 6e 67 20 6c 6f 74 73 20 6f    66 20 67 61 72 62 61 67 65 20 69 6e 20 6d 65 6d | d.keeping.lots.of.garbage.in.mem | 
| 2fa0 | 6f 72 79 2c 20 61 76 6f 69 64 20 68 6f 6c 64 69    6e 67 0a 6f 6e 74 6f 20 74 68 65 20 66 69 72 73 | ory,.avoid.holding.onto.the.firs | 
| 2fc0 | 74 20 70 72 6f 6d 69 73 65 20 28 69 2e 65 2e 20    63 61 70 74 75 72 69 6e 67 20 69 74 20 69 6e 20 | t.promise.(i.e..capturing.it.in. | 
| 2fe0 | 61 20 63 6c 6f 73 75 72 65 29 2e 0a 0a 54 68 65    20 60 61 69 6f 2d 63 68 61 69 6e 27 20 6d 61 63 | a.closure)...The.`aio-chain'.mac | 
| 3000 | 72 6f 20 6d 61 6b 65 73 20 69 74 20 65 61 73 69    65 72 20 74 6f 20 75 73 65 20 74 68 65 73 65 20 | ro.makes.it.easier.to.use.these. | 
| 3020 | 70 72 6f 6d 69 73 65 73 2e 22 0a 20 20 28 6c 65    74 2a 20 28 28 70 72 6f 6d 69 73 65 20 28 61 69 | promises."...(let*.((promise.(ai | 
| 3040 | 6f 2d 70 72 6f 6d 69 73 65 29 29 0a 20 20 20 20    20 20 20 20 20 28 63 61 6c 6c 62 61 63 6b 0a 20 | o-promise))..........(callback.. | 
| 3060 | 20 20 20 20 20 20 20 20 20 28 69 66 20 6f 6e 63    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(if.once............... | 
| 3080 | 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61    72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (lambda.(&rest.args)............ | 
| 30a0 | 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75    6c 74 20 28 69 66 20 74 61 67 0a 20 20 20 20 20 | .....(let.((result.(if.tag...... | 
| 30c0 | 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 63 6f | .............................(co | 
| 30e0 | 6e 73 20 74 61 67 20 61 72 67 73 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ns.tag.args).................... | 
| 3100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67    73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .............args)))............ | 
| 3120 | 20 20 20 20 20 20 20 28 61 69 6f 2d 72 65 73 6f    6c 76 65 20 70 72 6f 6d 69 73 65 20 28 6c 61 6d | .......(aio-resolve.promise.(lam | 
| 3140 | 62 64 61 20 28 29 20 72 65 73 75 6c 74 29 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | bda.().result)))).............(l | 
| 3160 | 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ambda.(&rest.args).............. | 
| 3180 | 20 28 6c 65 74 2a 20 28 28 6e 65 78 74 2d 70 72    6f 6d 69 73 65 20 28 61 69 6f 2d 70 72 6f 6d 69 | .(let*.((next-promise.(aio-promi | 
| 31a0 | 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c | se))......................(resul | 
| 31c0 | 74 20 28 69 66 20 74 61 67 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.(if.tag....................... | 
| 31e0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73    20 6e 65 78 74 2d 70 72 6f 6d 69 73 65 20 28 63 | ...........(cons.next-promise.(c | 
| 3200 | 6f 6e 73 20 74 61 67 20 61 72 67 73 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ons.tag.args)).................. | 
| 3220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 73 20 6e 65 78 74 2d 70 72 6f 6d 69 73 65 | ..............(cons.next-promise | 
| 3240 | 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 61 69 6f 2d 72 | .args)))).................(aio-r | 
| 3260 | 65 73 6f 6c 76 65 20 70 72 6f 6d 69 73 65 20 28    6c 61 6d 62 64 61 20 28 29 20 72 65 73 75 6c 74 | esolve.promise.(lambda.().result | 
| 3280 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 66 20 70 72 6f 6d 69 73 65 | )).................(setf.promise | 
| 32a0 | 20 6e 65 78 74 2d 70 72 6f 6d 69 73 65 29 29 29    29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 63 61 | .next-promise)))))).....(cons.ca | 
| 32c0 | 6c 6c 62 61 63 6b 20 70 72 6f 6d 69 73 65 29 29    29 0a 0a 3b 3b 20 41 20 73 69 6d 70 6c 65 20 6c | llback.promise)))..;;.A.simple.l | 
| 32e0 | 69 74 74 6c 65 20 71 75 65 75 65 0a 0a 28 64 65    66 73 75 62 73 74 20 61 69 6f 2d 2d 71 75 65 75 | ittle.queue..(defsubst.aio--queu | 
| 3300 | 65 2d 65 6d 70 74 79 2d 70 20 28 71 75 65 75 65    29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d | e-empty-p.(queue)..."Return.non- | 
| 3320 | 6e 69 6c 20 69 66 20 51 55 45 55 45 20 69 73 20    65 6d 70 74 79 2e 0a 41 6e 20 65 6d 70 74 79 20 | nil.if.QUEUE.is.empty..An.empty. | 
| 3340 | 71 75 65 75 65 20 69 73 20 28 6e 69 6c 20 2e 20    6e 69 6c 29 2e 22 0a 20 20 28 6e 75 6c 6c 20 28 | queue.is.(nil...nil)."...(null.( | 
| 3360 | 63 61 61 72 20 71 75 65 75 65 29 29 29 0a 0a 28    64 65 66 73 75 62 73 74 20 61 69 6f 2d 2d 71 75 | caar.queue)))..(defsubst.aio--qu | 
| 3380 | 65 75 65 2d 67 65 74 20 28 71 75 65 75 65 29 0a    20 20 22 47 65 74 20 74 68 65 20 6e 65 78 74 20 | eue-get.(queue)..."Get.the.next. | 
| 33a0 | 69 74 65 6d 20 66 72 6f 6d 20 51 55 45 55 45 2c    20 6f 72 20 6e 69 6c 20 66 6f 72 20 65 6d 70 74 | item.from.QUEUE,.or.nil.for.empt | 
| 33c0 | 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 65 61    64 20 28 63 61 72 20 71 75 65 75 65 29 29 29 0a | y."...(let.((head.(car.queue))). | 
| 33e0 | 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c    20 68 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 | ....(cond.((null.head).......... | 
| 3400 | 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20    20 28 28 65 71 20 68 65 61 64 20 28 63 64 72 20 | ..nil)...........((eq.head.(cdr. | 
| 3420 | 71 75 65 75 65 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 28 70 72 6f 67 31 20 28 63 61 72 20 68 | queue))............(prog1.(car.h | 
| 3440 | 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 66 20 28 63 61 72 20 71 75 65 | ead)..............(setf.(car.que | 
| 3460 | 75 65 29 20 6e 69 6c 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 | ue).nil....................(cdr. | 
| 3480 | 71 75 65 75 65 29 20 6e 69 6c 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 28 28 70 72 6f 67 31 20 | queue).nil)))...........((prog1. | 
| 34a0 | 28 63 61 72 20 68 65 61 64 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 63 | (car.head)..............(setf.(c | 
| 34c0 | 61 72 20 71 75 65 75 65 29 20 28 63 64 72 20 68    65 61 64 29 29 29 29 29 29 29 0a 0a 28 64 65 66 | ar.queue).(cdr.head)))))))..(def | 
| 34e0 | 73 75 62 73 74 20 61 69 6f 2d 2d 71 75 65 75 65    2d 70 75 74 20 28 71 75 65 75 65 20 65 6c 65 6d | subst.aio--queue-put.(queue.elem | 
| 3500 | 65 6e 74 29 0a 20 20 22 41 70 70 65 6e 64 20 45    4c 45 4d 45 4e 54 20 74 6f 20 51 55 45 55 45 2c | ent)..."Append.ELEMENT.to.QUEUE, | 
| 3520 | 20 72 65 74 75 72 6e 69 6e 67 20 45 4c 45 4d 45    4e 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 65 | .returning.ELEMENT."...(let.((ne | 
| 3540 | 77 20 28 6c 69 73 74 20 65 6c 65 6d 65 6e 74 29    29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 65 6c | w.(list.element))).....(prog1.el | 
| 3560 | 65 6d 65 6e 74 0a 20 20 20 20 20 20 28 69 66 20    28 6e 75 6c 6c 20 28 63 61 72 20 71 75 65 75 65 | ement.......(if.(null.(car.queue | 
| 3580 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65    74 66 20 28 63 61 72 20 71 75 65 75 65 29 20 6e | ))...........(setf.(car.queue).n | 
| 35a0 | 65 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 63 64 72 20 71 75 65 75 65 29 20 6e | ew.................(cdr.queue).n | 
| 35c0 | 65 77 29 0a 20 20 20 20 20 20 20 20 28 73 65 74    66 20 28 63 64 72 20 28 63 64 72 20 71 75 65 75 | ew).........(setf.(cdr.(cdr.queu | 
| 35e0 | 65 29 29 20 6e 65 77 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 64 72 20 71 75 65 75 65 | e)).new...............(cdr.queue | 
| 3600 | 29 20 6e 65 77 29 29 29 29 29 0a 0a 3b 3b 20 41    6e 20 65 66 66 69 63 69 65 6e 74 20 73 65 6c 65 | ).new)))))..;;.An.efficient.sele | 
| 3620 | 63 74 28 29 2d 6c 69 6b 65 20 69 6e 74 65 72 66    61 63 65 20 66 6f 72 20 70 72 6f 6d 69 73 65 73 | ct()-like.interface.for.promises | 
| 3640 | 0a 0a 28 64 65 66 75 6e 20 61 69 6f 2d 6d 61 6b    65 2d 73 65 6c 65 63 74 20 28 26 6f 70 74 69 6f | ..(defun.aio-make-select.(&optio | 
| 3660 | 6e 61 6c 20 70 72 6f 6d 69 73 65 73 29 0a 20 20    22 43 72 65 61 74 65 20 61 20 6e 65 77 20 60 61 | nal.promises)..."Create.a.new.`a | 
| 3680 | 69 6f 2d 73 65 6c 65 63 74 27 20 6f 62 6a 65 63    74 20 66 6f 72 20 77 61 69 74 69 6e 67 20 6f 6e | io-select'.object.for.waiting.on | 
| 36a0 | 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 6d 69 73    65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 65 | .multiple.promises."...(let.((se | 
| 36c0 | 6c 65 63 74 20 28 72 65 63 6f 72 64 20 27 61 69    6f 2d 73 65 6c 65 63 74 0a 20 20 20 20 20 20 20 | lect.(record.'aio-select........ | 
| 36e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3b 3b 20 4d 65 6d 62 65 72 73 68 69 70 20 74 | .................;;.Membership.t | 
| 3700 | 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 | able.........................(ma | 
| 3720 | 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74    65 73 74 20 27 65 71 29 0a 20 20 20 20 20 20 20 | ke-hash-table.:test.'eq)........ | 
| 3740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3b 3b 20 22 53 65 65 6e 22 20 74 61 62 6c 65 | .................;;."Seen".table | 
| 3760 | 20 28 61 76 6f 69 64 20 61 64 64 69 6e 67 20 6d    75 6c 74 69 70 6c 65 20 63 61 6c 6c 62 61 63 6b | .(avoid.adding.multiple.callback | 
| 3780 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d | ).........................(make- | 
| 37a0 | 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74    20 27 65 71 20 3a 77 65 61 6b 6e 65 73 73 20 27 | hash-table.:test.'eq.:weakness.' | 
| 37c0 | 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | key).........................;;. | 
| 37e0 | 51 75 65 75 65 20 6f 66 20 70 65 6e 64 69 6e 67    20 72 65 73 6f 6c 76 65 64 20 70 72 6f 6d 69 73 | Queue.of.pending.resolved.promis | 
| 3800 | 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 | es.........................(cons | 
| 3820 | 20 6e 69 6c 20 6e 69 6c 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .nil.nil)....................... | 
| 3840 | 20 20 3b 3b 20 43 61 6c 6c 62 61 63 6b 20 74 6f    20 72 65 73 6f 6c 76 65 20 73 65 6c 65 63 74 27 | ..;;.Callback.to.resolve.select' | 
| 3860 | 73 20 6f 77 6e 20 70 72 6f 6d 69 73 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.own.promise................... | 
| 3880 | 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20    20 28 70 72 6f 67 31 20 73 65 6c 65 63 74 0a 20 | ......nil))).....(prog1.select.. | 
| 38a0 | 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 72    6f 6d 69 73 65 20 70 72 6f 6d 69 73 65 73 29 0a | .....(dolist.(promise.promises). | 
| 38c0 | 20 20 20 20 20 20 20 20 28 61 69 6f 2d 73 65 6c    65 63 74 2d 61 64 64 20 73 65 6c 65 63 74 20 70 | ........(aio-select-add.select.p | 
| 38e0 | 72 6f 6d 69 73 65 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 61 69 6f 2d 73 65 6c 65 63 74 2d 61 | romise)))))..(defun.aio-select-a | 
| 3900 | 64 64 20 28 73 65 6c 65 63 74 20 70 72 6f 6d 69    73 65 29 0a 20 20 22 41 64 64 20 50 52 4f 4d 49 | dd.(select.promise)..."Add.PROMI | 
| 3920 | 53 45 20 74 6f 20 74 68 65 20 73 65 74 20 6f 66    20 70 72 6f 6d 69 73 65 73 20 69 6e 20 53 45 4c | SE.to.the.set.of.promises.in.SEL | 
| 3940 | 45 43 54 2e 0a 0a 53 45 4c 45 43 54 20 69 73 20    63 72 65 61 74 65 64 20 77 69 74 68 20 60 61 69 | ECT...SELECT.is.created.with.`ai | 
| 3960 | 6f 2d 6d 61 6b 65 2d 73 65 6c 65 63 74 27 2e 20    49 74 20 69 73 20 76 61 6c 69 64 20 74 6f 20 61 | o-make-select'..It.is.valid.to.a | 
| 3980 | 64 64 20 61 0a 70 72 6f 6d 69 73 65 20 74 68 61    74 20 77 61 73 20 70 72 65 76 69 6f 75 73 6c 79 | dd.a.promise.that.was.previously | 
| 39a0 | 20 72 65 6d 6f 76 65 64 2e 22 0a 20 20 28 6c 65    74 20 28 28 6d 65 6d 62 65 72 73 20 28 61 72 65 | .removed."...(let.((members.(are | 
| 39c0 | 66 20 73 65 6c 65 63 74 20 31 29 29 0a 20 20 20    20 20 20 20 20 28 73 65 65 6e 20 28 61 72 65 66 | f.select.1)).........(seen.(aref | 
| 39e0 | 20 73 65 6c 65 63 74 20 32 29 29 29 0a 20 20 20    20 28 70 72 6f 67 31 20 70 72 6f 6d 69 73 65 0a | .select.2))).....(prog1.promise. | 
| 3a00 | 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67    65 74 68 61 73 68 20 70 72 6f 6d 69 73 65 20 73 | ......(unless.(gethash.promise.s | 
| 3a20 | 65 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65    74 66 20 28 67 65 74 68 61 73 68 20 70 72 6f 6d | een).........(setf.(gethash.prom | 
| 3a40 | 69 73 65 20 73 65 65 6e 29 20 74 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 | ise.seen).t...............(getha | 
| 3a60 | 73 68 20 70 72 6f 6d 69 73 65 20 6d 65 6d 62 65    72 73 29 20 74 29 0a 20 20 20 20 20 20 20 20 28 | sh.promise.members).t).........( | 
| 3a80 | 61 69 6f 2d 6c 69 73 74 65 6e 20 70 72 6f 6d 69    73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | aio-listen.promise.............. | 
| 3aa0 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28    5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(lambda.(_).............. | 
| 3ac0 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28    67 65 74 68 61 73 68 20 70 72 6f 6d 69 73 65 20 | .........(when.(gethash.promise. | 
| 3ae0 | 6d 65 6d 62 65 72 73 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | members)........................ | 
| 3b00 | 20 28 61 69 6f 2d 2d 71 75 65 75 65 2d 70 75 74    20 28 61 72 65 66 20 73 65 6c 65 63 74 20 33 29 | .(aio--queue-put.(aref.select.3) | 
| 3b20 | 20 70 72 6f 6d 69 73 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .promise)....................... | 
| 3b40 | 20 20 28 72 65 6d 68 61 73 68 20 70 72 6f 6d 69    73 65 20 6d 65 6d 62 65 72 73 29 0a 20 20 20 20 | ..(remhash.promise.members)..... | 
| 3b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6c 65 74 20 28 28 63 61 6c 6c 62 | ....................(let.((callb | 
| 3b80 | 61 63 6b 20 28 61 72 65 66 20 73 65 6c 65 63 74    20 34 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ack.(aref.select.4)))........... | 
| 3ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 63 61 6c 6c 62 61 63 6b 0a 20 | ................(when.callback.. | 
| 3bc0 | 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 73 65 74 66 | ...........................(setf | 
| 3be0 | 20 28 61 72 65 66 20 73 65 6c 65 63 74 20 34 29    20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | .(aref.select.4).nil)........... | 
| 3c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 | ..................(funcall.callb | 
| 3c20 | 61 63 6b 29 29 29 29 29 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 61 69 6f 2d 73 65 6c 65 63 74 | ack))))))))))..(defun.aio-select | 
| 3c40 | 2d 72 65 6d 6f 76 65 20 28 73 65 6c 65 63 74 20    70 72 6f 6d 69 73 65 29 0a 20 20 22 52 65 6d 6f | -remove.(select.promise)..."Remo | 
| 3c60 | 76 65 20 50 52 4f 4d 49 53 45 20 66 6f 72 6d 20    74 68 65 20 73 65 74 20 6f 66 20 70 72 6f 6d 69 | ve.PROMISE.form.the.set.of.promi | 
| 3c80 | 73 65 73 20 69 6e 20 53 45 4c 45 43 54 2e 0a 0a    53 45 4c 45 43 54 20 69 73 20 63 72 65 61 74 65 | ses.in.SELECT...SELECT.is.create | 
| 3ca0 | 64 20 77 69 74 68 20 60 61 69 6f 2d 6d 61 6b 65    2d 73 65 6c 65 63 74 27 2e 22 0a 20 20 28 72 65 | d.with.`aio-make-select'."...(re | 
| 3cc0 | 6d 68 61 73 68 20 70 72 6f 6d 69 73 65 20 28 61    72 65 66 20 73 65 6c 65 63 74 20 31 29 29 29 0a | mhash.promise.(aref.select.1))). | 
| 3ce0 | 0a 28 64 65 66 75 6e 20 61 69 6f 2d 73 65 6c 65    63 74 2d 70 72 6f 6d 69 73 65 73 20 28 73 65 6c | .(defun.aio-select-promises.(sel | 
| 3d00 | 65 63 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61    20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 69 73 65 | ect)..."Return.a.list.of.promise | 
| 3d20 | 73 20 69 6e 20 53 45 4c 45 43 54 2e 0a 0a 53 45    4c 45 43 54 20 69 73 20 63 72 65 61 74 65 64 20 | s.in.SELECT...SELECT.is.created. | 
| 3d40 | 77 69 74 68 20 60 61 69 6f 2d 6d 61 6b 65 2d 73    65 6c 65 63 74 27 2e 22 0a 20 20 28 63 6c 2d 6c | with.`aio-make-select'."...(cl-l | 
| 3d60 | 6f 6f 70 20 66 6f 72 20 6b 65 79 20 62 65 69 6e    67 20 74 68 65 20 68 61 73 68 2d 6b 65 79 73 20 | oop.for.key.being.the.hash-keys. | 
| 3d80 | 6f 66 20 28 61 72 65 66 20 73 65 6c 65 63 74 20    31 29 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f | of.(aref.select.1)............co | 
| 3da0 | 6c 6c 65 63 74 20 6b 65 79 29 29 0a 0a 28 64 65    66 75 6e 20 61 69 6f 2d 73 65 6c 65 63 74 20 28 | llect.key))..(defun.aio-select.( | 
| 3dc0 | 73 65 6c 65 63 74 29 0a 20 20 22 52 65 74 75 72    6e 20 61 20 70 72 6f 6d 69 73 65 20 74 68 61 74 | select)..."Return.a.promise.that | 
| 3de0 | 20 72 65 73 6f 6c 76 65 73 20 77 68 65 6e 20 61    6e 79 20 70 72 6f 6d 69 73 65 20 69 6e 20 53 45 | .resolves.when.any.promise.in.SE | 
| 3e00 | 4c 45 43 54 20 72 65 73 6f 6c 76 65 73 2e 0a 0a    53 45 4c 45 43 54 20 69 73 20 63 72 65 61 74 65 | LECT.resolves...SELECT.is.create | 
| 3e20 | 64 20 77 69 74 68 20 60 61 69 6f 2d 6d 61 6b 65    2d 73 65 6c 65 63 74 27 2e 20 54 68 69 73 20 66 | d.with.`aio-make-select'..This.f | 
| 3e40 | 75 6e 63 74 69 6f 6e 20 69 73 0a 6c 65 76 65 6c    2d 74 72 69 67 67 65 72 65 64 3a 20 69 66 20 61 | unction.is.level-triggered:.if.a | 
| 3e60 | 20 70 72 6f 6d 69 73 65 20 69 6e 20 53 45 4c 45    43 54 20 69 73 20 61 6c 72 65 61 64 79 20 72 65 | .promise.in.SELECT.is.already.re | 
| 3e80 | 73 6f 6c 76 65 64 2c 20 69 74 0a 72 65 74 75 72    6e 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 77 | solved,.it.returns.immediately.w | 
| 3ea0 | 69 74 68 20 74 68 61 74 20 70 72 6f 6d 69 73 65    2e 20 50 72 6f 6d 69 73 65 73 20 72 65 74 75 72 | ith.that.promise..Promises.retur | 
| 3ec0 | 6e 65 64 20 62 79 0a 60 61 69 6f 2d 73 65 6c 65    63 74 27 20 61 72 65 20 61 75 74 6f 6d 61 74 69 | ned.by.`aio-select'.are.automati | 
| 3ee0 | 63 61 6c 6c 79 20 72 65 6d 6f 76 65 64 20 66 72    6f 6d 20 53 45 4c 45 43 54 2e 20 55 73 65 20 74 | cally.removed.from.SELECT..Use.t | 
| 3f00 | 68 69 73 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 20    72 65 70 65 61 74 65 64 6c 79 20 77 61 69 74 20 | his.function.to.repeatedly.wait. | 
| 3f20 | 6f 6e 20 61 20 73 65 74 20 6f 66 20 70 72 6f 6d    69 73 65 73 2e 0a 0a 4e 6f 74 65 3a 20 54 68 65 | on.a.set.of.promises...Note:.The | 
| 3f40 | 20 70 72 6f 6d 69 73 65 20 72 65 74 75 72 6e 65    64 20 62 79 20 74 68 69 73 20 66 75 6e 63 74 69 | .promise.returned.by.this.functi | 
| 3f60 | 6f 6e 20 72 65 73 6f 6c 76 65 73 20 74 6f 20 61    6e 6f 74 68 65 72 0a 70 72 6f 6d 69 73 65 2c 20 | on.resolves.to.another.promise,. | 
| 3f80 | 6e 6f 74 20 74 68 61 74 20 70 72 6f 6d 69 73 65    27 73 20 72 65 73 75 6c 74 2e 20 59 6f 75 20 77 | not.that.promise's.result..You.w | 
| 3fa0 | 69 6c 6c 20 6e 65 65 64 20 74 6f 20 60 61 69 6f    2d 61 77 61 69 74 27 0a 6f 6e 20 69 74 2c 20 6f | ill.need.to.`aio-await'.on.it,.o | 
| 3fc0 | 72 20 75 73 65 20 60 61 69 6f 2d 72 65 73 75 6c    74 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 72 | r.use.`aio-result'."...(let*.((r | 
| 3fe0 | 65 73 75 6c 74 20 28 61 69 6f 2d 70 72 6f 6d 69    73 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 | esult.(aio-promise))..........(c | 
| 4000 | 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20    28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | allback.(lambda.().............. | 
| 4020 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70    72 6f 6d 69 73 65 20 28 61 69 6f 2d 2d 71 75 65 | ........(let.((promise.(aio--que | 
| 4040 | 75 65 2d 67 65 74 20 28 61 72 65 66 20 73 65 6c    65 63 74 20 33 29 29 29 29 0a 20 20 20 20 20 20 | ue-get.(aref.select.3))))....... | 
| 4060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 61 69 6f 2d 72 65 73 6f 6c 76 65 20 72 65 | .................(aio-resolve.re | 
| 4080 | 73 75 6c 74 20 28 6c 61 6d 62 64 61 20 28 29 20    70 72 6f 6d 69 73 65 29 29 29 29 29 29 0a 20 20 | sult.(lambda.().promise))))))... | 
| 40a0 | 20 20 28 70 72 6f 67 31 20 72 65 73 75 6c 74 0a    20 20 20 20 20 20 28 69 66 20 28 61 69 6f 2d 2d | ..(prog1.result.......(if.(aio-- | 
| 40c0 | 71 75 65 75 65 2d 65 6d 70 74 79 2d 70 20 28 61    72 65 66 20 73 65 6c 65 63 74 20 33 29 29 0a 20 | queue-empty-p.(aref.select.3)).. | 
| 40e0 | 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28    61 72 65 66 20 73 65 6c 65 63 74 20 34 29 20 63 | .........(setf.(aref.select.4).c | 
| 4100 | 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 20    20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 | allback).........(funcall.callba | 
| 4120 | 63 6b 29 29 29 29 29 0a 0a 3b 3b 20 53 65 6d 61    70 68 6f 72 65 73 0a 0a 28 64 65 66 75 6e 20 61 | ck)))))..;;.Semaphores..(defun.a | 
| 4140 | 69 6f 2d 73 65 6d 20 28 69 6e 69 74 29 0a 20 20    22 43 72 65 61 74 65 20 61 20 6e 65 77 20 73 65 | io-sem.(init)..."Create.a.new.se | 
| 4160 | 6d 61 70 68 6f 72 65 20 77 69 74 68 20 69 6e 69    74 69 61 6c 20 76 61 6c 75 65 20 49 4e 49 54 2e | maphore.with.initial.value.INIT. | 
| 4180 | 22 0a 20 20 28 72 65 63 6f 72 64 20 27 61 69 6f    2d 73 65 6d 0a 20 20 20 20 20 20 20 20 20 20 3b | "...(record.'aio-sem...........; | 
| 41a0 | 3b 20 53 65 6d 61 70 68 6f 72 65 20 76 61 6c 75    65 0a 20 20 20 20 20 20 20 20 20 20 69 6e 69 74 | ;.Semaphore.value...........init | 
| 41c0 | 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 51 75    65 75 65 20 6f 66 20 77 61 69 74 69 6e 67 20 61 | ...........;;.Queue.of.waiting.a | 
| 41e0 | 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 73 0a 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6e | sync.functions...........(cons.n | 
| 4200 | 69 6c 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75    6e 20 61 69 6f 2d 73 65 6d 2d 70 6f 73 74 20 28 | il.nil)))..(defun.aio-sem-post.( | 
| 4220 | 73 65 6d 29 0a 20 20 22 49 6e 63 72 65 6d 65 6e    74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 53 | sem)..."Increment.the.value.of.S | 
| 4240 | 45 4d 2e 0a 0a 49 66 20 61 73 79 6e 63 68 72 6f    6e 6f 75 73 20 66 75 6e 63 74 69 6f 6e 73 20 61 | EM...If.asynchronous.functions.a | 
| 4260 | 72 65 20 61 77 61 69 74 69 6e 67 20 6f 6e 20 53    45 4d 2c 20 74 68 65 6e 20 6f 6e 65 20 77 69 6c | re.awaiting.on.SEM,.then.one.wil | 
| 4280 | 6c 20 62 65 0a 77 6f 6b 65 6e 20 75 70 2e 20 54    68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 | l.be.woken.up..This.function.is. | 
| 42a0 | 6e 6f 74 20 61 77 61 69 74 61 62 6c 65 2e 22 0a    20 20 28 77 68 65 6e 20 28 3c 3d 20 28 63 6c 2d | not.awaitable."...(when.(<=.(cl- | 
| 42c0 | 69 6e 63 66 20 28 61 72 65 66 20 73 65 6d 20 31    29 29 20 30 29 0a 20 20 20 20 28 6c 65 74 20 28 | incf.(aref.sem.1)).0).....(let.( | 
| 42e0 | 28 77 61 69 74 69 6e 67 20 28 61 69 6f 2d 2d 71    75 65 75 65 2d 67 65 74 20 28 61 72 65 66 20 73 | (waiting.(aio--queue-get.(aref.s | 
| 4300 | 65 6d 20 32 29 29 29 29 0a 20 20 20 20 20 20 28    77 68 65 6e 20 77 61 69 74 69 6e 67 0a 20 20 20 | em.2)))).......(when.waiting.... | 
| 4320 | 20 20 20 20 20 28 61 69 6f 2d 72 65 73 6f 6c 76    65 20 77 61 69 74 69 6e 67 20 28 6c 61 6d 62 64 | .....(aio-resolve.waiting.(lambd | 
| 4340 | 61 20 28 29 20 6e 69 6c 29 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 61 69 6f 2d 73 65 6d 2d 77 | a.().nil))))))..(defun.aio-sem-w | 
| 4360 | 61 69 74 20 28 73 65 6d 29 0a 20 20 22 44 65 63    72 65 6d 65 6e 74 20 74 68 65 20 76 61 6c 75 65 | ait.(sem)..."Decrement.the.value | 
| 4380 | 20 6f 66 20 53 45 4d 2e 0a 0a 49 66 20 53 45 4d    20 69 73 20 61 74 20 7a 65 72 6f 2c 20 72 65 74 | .of.SEM...If.SEM.is.at.zero,.ret | 
| 43a0 | 75 72 6e 73 20 61 20 70 72 6f 6d 69 73 65 20 74    68 61 74 20 77 69 6c 6c 20 72 65 73 6f 6c 76 65 | urns.a.promise.that.will.resolve | 
| 43c0 | 20 77 68 65 6e 0a 61 6e 6f 74 68 65 72 20 61 73    79 6e 63 68 72 6f 6e 6f 75 73 20 66 75 6e 63 74 | .when.another.asynchronous.funct | 
| 43e0 | 69 6f 6e 20 75 73 65 73 20 60 61 69 6f 2d 73 65    6d 2d 70 6f 73 74 27 2e 22 0a 20 20 28 77 68 65 | ion.uses.`aio-sem-post'."...(whe | 
| 4400 | 6e 20 28 3c 20 28 63 6c 2d 64 65 63 66 20 28 61    72 65 66 20 73 65 6d 20 31 29 29 20 30 29 0a 20 | n.(<.(cl-decf.(aref.sem.1)).0).. | 
| 4420 | 20 20 20 28 61 69 6f 2d 2d 71 75 65 75 65 2d 70    75 74 20 28 61 72 65 66 20 73 65 6d 20 32 29 20 | ...(aio--queue-put.(aref.sem.2). | 
| 4440 | 28 61 69 6f 2d 70 72 6f 6d 69 73 65 29 29 29 29    0a 0a 3b 3b 20 60 65 6d 61 63 73 2d 6c 69 73 70 | (aio-promise))))..;;.`emacs-lisp | 
| 4460 | 2d 6d 6f 64 65 27 20 66 6f 6e 74 20 6c 6f 63 6b    0a 0a 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 64 64 | -mode'.font.lock..(font-lock-add | 
| 4480 | 2d 6b 65 79 77 6f 72 64 73 0a 20 27 65 6d 61 63    73 2d 6c 69 73 70 2d 6d 6f 64 65 0a 20 60 28 28 | -keywords..'emacs-lisp-mode..`(( | 
| 44a0 | 2c 28 72 78 20 22 28 61 69 6f 2d 64 65 66 75 6e    22 20 28 2b 20 62 6c 61 6e 6b 29 0a 20 20 20 20 | ,(rx."(aio-defun".(+.blank)..... | 
| 44c0 | 20 20 20 20 20 28 67 72 6f 75 70 20 28 2b 20 28    6f 72 20 28 73 79 6e 74 61 78 20 77 6f 72 64 29 | .....(group.(+.(or.(syntax.word) | 
| 44e0 | 20 28 73 79 6e 74 61 78 20 73 79 6d 62 6f 6c 29    29 29 29 29 0a 20 20 20 20 31 20 27 66 6f 6e 74 | .(syntax.symbol))))).....1.'font | 
| 4500 | 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e    61 6d 65 2d 66 61 63 65 29 29 29 0a 0a 28 61 64 | -lock-function-name-face)))..(ad | 
| 4520 | 64 2d 68 6f 6f 6b 20 27 68 65 6c 70 2d 66 6e 73    2d 64 65 73 63 72 69 62 65 2d 66 75 6e 63 74 69 | d-hook.'help-fns-describe-functi | 
| 4540 | 6f 6e 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 61    69 6f 2d 64 65 73 63 72 69 62 65 2d 66 75 6e 63 | on-functions.#'aio-describe-func | 
| 4560 | 74 69 6f 6e 29 0a 0a 28 64 65 66 75 6e 20 61 69    6f 2d 64 65 73 63 72 69 62 65 2d 66 75 6e 63 74 | tion)..(defun.aio-describe-funct | 
| 4580 | 69 6f 6e 20 28 66 75 6e 63 74 69 6f 6e 29 0a 20    20 22 49 6e 73 65 72 74 20 77 68 65 74 68 65 72 | ion.(function)..."Insert.whether | 
| 45a0 | 20 46 55 4e 43 54 49 4f 4e 20 69 73 20 61 6e 20    61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 66 75 6e | .FUNCTION.is.an.asynchronous.fun | 
| 45c0 | 63 74 69 6f 6e 2e 0a 54 68 69 73 20 66 75 6e 63    74 69 6f 6e 20 69 73 20 61 64 64 65 64 20 74 6f | ction..This.function.is.added.to | 
| 45e0 | 20 e2 80 98 68 65 6c 70 2d 66 6e 73 2d 64 65 73    63 72 69 62 65 2d 66 75 6e 63 74 69 6f 6e 2d 66 | ....help-fns-describe-function-f | 
| 4600 | 75 6e 63 74 69 6f 6e 73 e2 80 99 2e 22 0a 20 20    28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 2d | unctions...."...(when.(function- | 
| 4620 | 67 65 74 20 66 75 6e 63 74 69 6f 6e 20 27 61 69    6f 2d 64 65 66 75 6e 2d 70 29 0a 20 20 20 20 28 | get.function.'aio-defun-p).....( | 
| 4640 | 69 6e 73 65 72 74 20 22 20 20 54 68 69 73 20 66    75 6e 63 74 69 6f 6e 20 69 73 20 61 73 79 6e 63 | insert."..This.function.is.async | 
| 4660 | 68 72 6f 6e 6f 75 73 3b 20 69 74 20 72 65 74 75    72 6e 73 20 22 0a 20 20 20 20 20 20 20 20 20 20 | hronous;.it.returns."........... | 
| 4680 | 20 20 22 61 6e 20 e2 80 98 61 69 6f 2d 70 72 6f    6d 69 73 65 e2 80 99 20 6f 62 6a 65 63 74 2e 5c | .."an....aio-promise....object.\ | 
| 46a0 | 6e 22 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20    27 61 69 6f 29 0a 0a 3b 3b 3b 20 61 69 6f 2e 65 | n")))..(provide.'aio)..;;;.aio.e | 
| 46c0 | 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | l.ends.here..................... | 
| 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 | 61 69 6f 2d 32 30 32 30 30 36 31 30 2e 31 39 30    34 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00 | aio-20200610.1904/README.md..... | 
| 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 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 | 
| 4880 | 30 30 31 32 36 36 37 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 30 34 34 00 20 30 00 00 00 | 0012667.00000000000.013044..0... | 
| 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 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................... | 
| 4920 | 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................... | 
| 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 | 23 20 61 69 6f 3a 20 61 73 79 6e 63 2f 61 77 61    69 74 20 66 6f 72 20 45 6d 61 63 73 20 4c 69 73 | #.aio:.async/await.for.Emacs.Lis | 
| 4a20 | 70 0a 0a 60 61 69 6f 60 20 69 73 20 74 6f 20 45    6d 61 63 73 20 4c 69 73 70 20 61 73 20 5b 60 61 | p..`aio`.is.to.Emacs.Lisp.as.[`a | 
| 4a40 | 73 79 6e 63 69 6f 60 5d 5b 61 73 79 6e 63 69 6f    5d 20 69 73 20 74 6f 20 50 79 74 68 6f 6e 2e 20 | syncio`][asyncio].is.to.Python.. | 
| 4a60 | 54 68 69 73 0a 70 61 63 6b 61 67 65 20 62 75 69    6c 64 73 20 75 70 6f 6e 20 45 6d 61 63 73 20 32 | This.package.builds.upon.Emacs.2 | 
| 4a80 | 35 20 67 65 6e 65 72 61 74 6f 72 73 20 74 6f 20    70 72 6f 76 69 64 65 20 66 75 6e 63 74 69 6f 6e | 5.generators.to.provide.function | 
| 4aa0 | 73 20 74 68 61 74 0a 70 61 75 73 65 20 77 68 69    6c 65 20 74 68 65 79 20 77 61 69 74 20 6f 6e 20 | s.that.pause.while.they.wait.on. | 
| 4ac0 | 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 65 76 65    6e 74 73 2e 20 54 68 65 79 20 64 6f 20 6e 6f 74 | asynchronous.events..They.do.not | 
| 4ae0 | 20 62 6c 6f 63 6b 20 61 6e 79 0a 74 68 72 65 61    64 20 77 68 69 6c 65 20 70 61 75 73 65 64 2e 0a | .block.any.thread.while.paused.. | 
| 4b00 | 0a 49 6e 74 72 6f 64 75 63 74 69 6f 6e 3a 20 5b    41 6e 20 41 73 79 6e 63 20 2f 20 41 77 61 69 74 | .Introduction:.[An.Async./.Await | 
| 4b20 | 20 4c 69 62 72 61 72 79 20 66 6f 72 20 45 6d 61    63 73 20 4c 69 73 70 5d 5b 70 6f 73 74 5d 0a 0a | .Library.for.Emacs.Lisp][post].. | 
| 4b40 | 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 69 73 20    5b 61 76 61 69 6c 61 62 6c 65 20 74 68 72 6f 75 | Installation.is.[available.throu | 
| 4b60 | 67 68 20 4d 45 4c 50 41 5d 5b 6d 65 6c 70 61 5d    2e 20 53 69 6e 63 65 20 69 74 20 75 73 65 73 20 | gh.MELPA][melpa]..Since.it.uses. | 
| 4b80 | 74 68 65 0a 60 72 65 63 6f 72 64 60 20 62 75 69    6c 74 2d 69 6e 2c 20 69 74 20 72 65 71 75 69 72 | the.`record`.built-in,.it.requir | 
| 4ba0 | 65 73 20 45 6d 61 63 73 20 32 36 20 6f 72 20 6c    61 74 65 72 2e 0a 0a 23 23 20 55 73 61 67 65 0a | es.Emacs.26.or.later...##.Usage. | 
| 4bc0 | 0a 41 6e 20 61 73 79 6e 63 20 66 75 6e 63 74 69    6f 6e 20 69 73 20 64 65 66 69 6e 65 64 20 75 73 | .An.async.function.is.defined.us | 
| 4be0 | 69 6e 67 20 60 61 69 6f 2d 64 65 66 75 6e 60 20    6f 72 20 60 61 69 6f 2d 6c 61 6d 62 64 61 60 2e | ing.`aio-defun`.or.`aio-lambda`. | 
| 4c00 | 20 54 68 65 0a 62 6f 64 79 20 6f 66 20 73 75 63    68 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6e 20 | .The.body.of.such.functions.can. | 
| 4c20 | 75 73 65 20 60 61 69 6f 2d 61 77 61 69 74 60 20    74 6f 20 70 61 75 73 65 20 74 68 65 20 66 75 6e | use.`aio-await`.to.pause.the.fun | 
| 4c40 | 63 74 69 6f 6e 20 61 6e 64 0a 77 61 69 74 20 6f    6e 20 61 20 67 69 76 65 6e 20 70 72 6f 6d 69 73 | ction.and.wait.on.a.given.promis | 
| 4c60 | 65 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20    63 6f 6e 74 69 6e 75 65 73 20 77 69 74 68 20 74 | e..The.function.continues.with.t | 
| 4c80 | 68 65 20 70 72 6f 6d 69 73 65 27 73 0a 72 65 73    6f 6c 76 65 64 20 76 61 6c 75 65 20 77 68 65 6e | he.promise's.resolved.value.when | 
| 4ca0 | 20 69 74 27 73 20 72 65 61 64 79 2e 20 54 68 65    20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 | .it's.ready..The.package.provide | 
| 4cc0 | 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 0a 66 75    6e 63 74 69 6f 6e 73 20 74 68 61 74 20 72 65 74 | s.a.number.of.functions.that.ret | 
| 4ce0 | 75 72 6e 20 70 72 6f 6d 69 73 65 73 2c 20 61 6e    64 20 65 76 65 72 79 20 61 73 79 6e 63 20 66 75 | urn.promises,.and.every.async.fu | 
| 4d00 | 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61    0a 70 72 6f 6d 69 73 65 20 72 65 70 72 65 73 65 | nction.returns.a.promise.represe | 
| 4d20 | 6e 74 69 6e 67 20 69 74 73 20 66 75 74 75 72 65    20 72 65 74 75 72 6e 20 76 61 6c 75 65 2e 0a 0a | nting.its.future.return.value... | 
| 4d40 | 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 60 60    60 65 6c 0a 28 61 69 6f 2d 64 65 66 75 6e 20 66 | For.example:..```el.(aio-defun.f | 
| 4d60 | 6f 6f 20 28 75 72 6c 29 0a 20 20 28 61 69 6f 2d    61 77 61 69 74 20 28 61 69 6f 2d 73 6c 65 65 70 | oo.(url)...(aio-await.(aio-sleep | 
| 4d80 | 20 33 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20    22 44 6f 6e 65 20 73 6c 65 65 70 69 6e 67 2e 20 | .3))...(message."Done.sleeping.. | 
| 4da0 | 4e 6f 77 20 66 65 74 63 68 69 6e 67 20 25 73 22    20 75 72 6c 29 0a 20 20 28 6c 65 74 2a 20 28 28 | Now.fetching.%s".url)...(let*.(( | 
| 4dc0 | 72 65 73 75 6c 74 20 28 61 69 6f 2d 61 77 61 69    74 20 28 61 69 6f 2d 75 72 6c 2d 72 65 74 72 69 | result.(aio-await.(aio-url-retri | 
| 4de0 | 65 76 65 20 75 72 6c 29 29 29 0a 20 20 20 20 20    20 20 20 20 28 63 6f 6e 74 65 6e 74 73 20 28 77 | eve.url)))..........(contents.(w | 
| 4e00 | 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66    65 72 20 28 63 64 72 20 72 65 73 75 6c 74 29 0a | ith-current-buffer.(cdr.result). | 
| 4e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 72 6f 67 31 20 28 62 75 66 | .....................(prog1.(buf | 
| 4e40 | 66 65 72 2d 73 74 72 69 6e 67 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fer-string)..................... | 
| 4e60 | 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29    29 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 | ...(kill-buffer))))).....(messag | 
| 4e80 | 65 20 22 52 65 73 75 6c 74 3a 20 25 73 22 20 63    6f 6e 74 65 6e 74 73 29 29 29 0a 60 60 60 0a 0a | e."Result:.%s".contents))).```.. | 
| 4ea0 | 49 66 20 61 6e 20 75 6e 63 61 75 67 68 74 20 73    69 67 6e 61 6c 20 74 65 72 6d 69 6e 61 74 65 73 | If.an.uncaught.signal.terminates | 
| 4ec0 | 20 61 6e 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73    20 66 75 6e 63 74 69 6f 6e 2c 20 74 68 61 74 20 | .an.asynchronous.function,.that. | 
| 4ee0 | 73 69 67 6e 61 6c 0a 69 73 20 63 61 70 74 75 72    65 64 20 62 79 20 69 74 73 20 72 65 74 75 72 6e | signal.is.captured.by.its.return | 
| 4f00 | 20 76 61 6c 75 65 20 70 72 6f 6d 69 73 65 20 61    6e 64 20 70 72 6f 70 61 67 61 74 65 64 20 69 6e | .value.promise.and.propagated.in | 
| 4f20 | 74 6f 20 61 6e 79 0a 66 75 6e 63 74 69 6f 6e 20    74 68 61 74 20 61 77 61 69 74 73 20 6f 6e 20 74 | to.any.function.that.awaits.on.t | 
| 4f40 | 68 61 74 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 60    60 60 65 6c 0a 28 61 69 6f 2d 64 65 66 75 6e 20 | hat.function...```el.(aio-defun. | 
| 4f60 | 64 69 76 69 64 65 20 28 61 20 62 29 0a 20 20 28    61 69 6f 2d 61 77 61 69 74 20 28 61 69 6f 2d 73 | divide.(a.b)...(aio-await.(aio-s | 
| 4f80 | 6c 65 65 70 20 31 29 29 0a 20 20 28 2f 20 61 20    62 29 29 0a 0a 28 61 69 6f 2d 64 65 66 75 6e 20 | leep.1))...(/.a.b))..(aio-defun. | 
| 4fa0 | 64 69 76 69 64 65 2d 73 61 66 65 20 28 61 20 62    29 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 | divide-safe.(a.b)...(condition-c | 
| 4fc0 | 61 73 65 20 65 72 72 6f 72 0a 20 20 20 20 20 20    28 61 69 6f 2d 61 77 61 69 74 20 28 64 69 76 69 | ase.error.......(aio-await.(divi | 
| 4fe0 | 64 65 20 61 20 62 29 29 0a 20 20 20 20 28 61 72    69 74 68 2d 65 72 72 6f 72 20 3a 61 72 69 74 68 | de.a.b)).....(arith-error.:arith | 
| 5000 | 2d 65 72 72 6f 72 29 29 29 0a 0a 28 61 69 6f 2d    77 61 69 74 2d 66 6f 72 20 28 64 69 76 69 64 65 | -error)))..(aio-wait-for.(divide | 
| 5020 | 2d 73 61 66 65 20 31 2e 30 20 32 2e 30 29 29 0a    3b 3b 20 3d 3e 20 30 2e 35 0a 0a 28 61 69 6f 2d | -safe.1.0.2.0)).;;.=>.0.5..(aio- | 
| 5040 | 77 61 69 74 2d 66 6f 72 20 28 64 69 76 69 64 65    2d 73 61 66 65 20 30 20 30 29 29 0a 3b 3b 20 3d | wait-for.(divide-safe.0.0)).;;.= | 
| 5060 | 3e 20 3a 61 72 69 74 68 2d 65 72 72 6f 72 0a 60    60 60 0a 0a 54 6f 20 63 6f 6e 76 65 72 74 20 61 | >.:arith-error.```..To.convert.a | 
| 5080 | 20 63 61 6c 6c 62 61 63 6b 2d 62 61 73 65 64 20    66 75 6e 63 74 69 6f 6e 20 69 6e 74 6f 20 61 6e | .callback-based.function.into.an | 
| 50a0 | 20 61 77 61 69 74 61 62 6c 65 2c 20 61 73 79 6e    63 2d 66 72 69 65 6e 64 6c 79 0a 66 75 6e 63 74 | .awaitable,.async-friendly.funct | 
| 50c0 | 69 6f 6e 2c 20 63 72 65 61 74 65 20 61 20 6e 65    77 20 70 72 6f 6d 69 73 65 20 6f 62 6a 65 63 74 | ion,.create.a.new.promise.object | 
| 50e0 | 20 77 69 74 68 20 60 61 69 6f 2d 70 72 6f 6d 69    73 65 60 2c 20 74 68 65 6e 0a 60 61 69 6f 2d 72 | .with.`aio-promise`,.then.`aio-r | 
| 5100 | 65 73 6f 6c 76 65 60 20 74 68 61 74 20 70 72 6f    6d 69 73 65 20 69 6e 20 74 68 65 20 63 61 6c 6c | esolve`.that.promise.in.the.call | 
| 5120 | 62 61 63 6b 2e 20 54 68 65 20 68 65 6c 70 65 72    20 66 75 6e 63 74 69 6f 6e 2c 0a 60 61 69 6f 2d | back..The.helper.function,.`aio- | 
| 5140 | 6d 61 6b 65 2d 63 61 6c 6c 62 61 63 6b 60 2c 20    6d 61 6b 65 73 20 74 68 69 73 20 65 61 73 79 2e | make-callback`,.makes.this.easy. | 
| 5160 | 0a 0a 23 23 20 55 74 69 6c 69 74 79 20 6d 61 63    72 6f 73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e | ..##.Utility.macros.and.function | 
| 5180 | 73 0a 0a 60 60 60 65 6c 0a 28 61 69 6f 2d 77 61    69 74 2d 66 6f 72 20 70 72 6f 6d 69 73 65 29 0a | s..```el.(aio-wait-for.promise). | 
| 51a0 | 3b 3b 20 53 79 6e 63 68 72 6f 6e 6f 75 73 6c 79    20 77 61 69 74 20 66 6f 72 20 50 52 4f 4d 49 53 | ;;.Synchronously.wait.for.PROMIS | 
| 51c0 | 45 2c 20 62 6c 6f 63 6b 69 6e 67 20 74 68 65 20    63 75 72 72 65 6e 74 20 74 68 72 65 61 64 2e 0a | E,.blocking.the.current.thread.. | 
| 51e0 | 0a 28 61 69 6f 2d 63 61 6e 63 65 6c 20 70 72 6f    6d 69 73 65 29 0a 3b 3b 20 41 74 74 65 6d 70 74 | .(aio-cancel.promise).;;.Attempt | 
| 5200 | 20 74 6f 20 63 61 6e 63 65 6c 20 50 52 4f 4d 49    53 45 2c 20 72 65 74 75 72 6e 69 6e 67 20 6e 6f | .to.cancel.PROMISE,.returning.no | 
| 5220 | 6e 2d 6e 69 6c 20 69 66 20 73 75 63 63 65 73 73    66 75 6c 2e 0a 0a 28 61 69 6f 2d 77 69 74 68 2d | n-nil.if.successful...(aio-with- | 
| 5240 | 70 72 6f 6d 69 73 65 20 70 72 6f 6d 69 73 65 20    26 72 65 73 74 20 62 6f 64 79 29 20 5b 6d 61 63 | promise.promise.&rest.body).[mac | 
| 5260 | 72 6f 5d 0a 3b 3b 20 45 76 61 6c 75 61 74 65 20    42 4f 44 59 20 61 6e 64 20 72 65 73 6f 6c 76 65 | ro].;;.Evaluate.BODY.and.resolve | 
| 5280 | 20 50 52 4f 4d 49 53 45 20 77 69 74 68 20 74 68    65 20 72 65 73 75 6c 74 2e 0a 0a 28 61 69 6f 2d | .PROMISE.with.the.result...(aio- | 
| 52a0 | 77 69 74 68 2d 61 73 79 6e 63 20 26 72 65 73 74    20 62 6f 64 79 29 20 5b 6d 61 63 72 6f 5d 0a 3b | with-async.&rest.body).[macro].; | 
| 52c0 | 3b 20 45 76 61 6c 75 61 74 65 20 42 4f 44 59 20    61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 61 | ;.Evaluate.BODY.asynchronously.a | 
| 52e0 | 73 20 69 66 20 69 74 20 77 61 73 20 69 6e 73 69    64 65 20 60 61 69 6f 2d 6c 61 6d 62 64 61 27 2e | s.if.it.was.inside.`aio-lambda'. | 
| 5300 | 0a 0a 28 61 69 6f 2d 6d 61 6b 65 2d 63 61 6c 6c    62 61 63 6b 20 26 6b 65 79 20 74 61 67 20 6f 6e | ..(aio-make-callback.&key.tag.on | 
| 5320 | 63 65 29 0a 3b 3b 20 52 65 74 75 72 6e 20 61 20    6e 65 77 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e | ce).;;.Return.a.new.callback.fun | 
| 5340 | 63 74 69 6f 6e 20 61 6e 64 20 69 74 73 20 66 69    72 73 74 20 70 72 6f 6d 69 73 65 2e 0a 0a 28 61 | ction.and.its.first.promise...(a | 
| 5360 | 69 6f 2d 63 68 61 69 6e 20 65 78 70 72 29 20 5b    6d 61 63 72 6f 5d 0a 3b 3b 20 60 61 69 6f 2d 61 | io-chain.expr).[macro].;;.`aio-a | 
| 5380 | 77 61 69 74 27 20 6f 6e 20 45 58 50 52 20 61 6e    64 20 72 65 70 6c 61 63 65 20 70 6c 61 63 65 20 | wait'.on.EXPR.and.replace.place. | 
| 53a0 | 45 58 50 52 20 77 69 74 68 20 74 68 65 20 6e 65    78 74 20 70 72 6f 6d 69 73 65 2e 0a 60 60 60 0a | EXPR.with.the.next.promise..```. | 
| 53c0 | 0a 54 68 65 20 60 61 69 6f 2d 6d 61 6b 65 2d 63    61 6c 6c 62 61 63 6b 60 20 66 75 6e 63 74 69 6f | .The.`aio-make-callback`.functio | 
| 53e0 | 6e 20 69 73 20 65 73 70 65 63 69 61 6c 6c 79 20    75 73 65 66 75 6c 20 66 6f 72 20 63 61 6c 6c 62 | n.is.especially.useful.for.callb | 
| 5400 | 61 63 6b 73 0a 74 68 61 74 20 61 72 65 20 69 6e    76 6f 6b 65 64 20 72 65 70 65 61 74 65 64 6c 79 | acks.that.are.invoked.repeatedly | 
| 5420 | 2c 20 73 75 63 68 20 61 73 20 70 72 6f 63 65 73    73 20 66 69 6c 74 65 72 73 20 61 6e 64 20 73 65 | ,.such.as.process.filters.and.se | 
| 5440 | 6e 74 69 6e 65 6c 73 2e 0a 54 68 65 20 60 61 69    6f 2d 63 68 61 69 6e 60 20 6d 61 63 72 6f 20 77 | ntinels..The.`aio-chain`.macro.w | 
| 5460 | 6f 72 6b 73 20 69 6e 20 63 6f 6e 6a 75 6e 63 74    69 6f 6e 2e 0a 0a 23 23 20 41 77 61 69 74 61 62 | orks.in.conjunction...##.Awaitab | 
| 5480 | 6c 65 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 48 65    72 65 20 61 72 65 20 73 6f 6d 65 20 75 73 65 66 | le.functions..Here.are.some.usef | 
| 54a0 | 75 6c 20 70 72 6f 6d 69 73 65 2d 72 65 74 75 72    6e 69 6e 67 20 e2 80 94 20 69 2e 65 2e 20 61 77 | ul.promise-returning.....i.e..aw | 
| 54c0 | 61 69 74 61 62 6c 65 20 e2 80 94 20 66 75 6e 63    74 69 6f 6e 73 0a 64 65 66 69 6e 65 64 20 62 79 | aitable.....functions.defined.by | 
| 54e0 | 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 0a 0a    60 60 60 65 6c 0a 28 61 69 6f 2d 73 6c 65 65 70 | .this.package...```el.(aio-sleep | 
| 5500 | 20 73 65 63 6f 6e 64 73 20 26 6f 70 74 69 6f 6e    61 6c 20 72 65 73 75 6c 74 29 0a 3b 3b 20 52 65 | .seconds.&optional.result).;;.Re | 
| 5520 | 74 75 72 6e 20 61 20 70 72 6f 6d 69 73 65 20 74    68 61 74 20 69 73 20 72 65 73 6f 6c 76 65 64 20 | turn.a.promise.that.is.resolved. | 
| 5540 | 61 66 74 65 72 20 53 45 43 4f 4e 44 53 20 77 69    74 68 20 52 45 53 55 4c 54 2e 0a 0a 28 61 69 6f | after.SECONDS.with.RESULT...(aio | 
| 5560 | 2d 69 64 6c 65 20 73 65 63 6f 6e 64 73 20 26 6f    70 74 69 6f 6e 61 6c 20 72 65 73 75 6c 74 29 0a | -idle.seconds.&optional.result). | 
| 5580 | 3b 3b 20 52 65 74 75 72 6e 20 61 20 70 72 6f 6d    69 73 65 20 74 68 61 74 20 69 73 20 72 65 73 6f | ;;.Return.a.promise.that.is.reso | 
| 55a0 | 6c 76 65 64 20 61 66 74 65 72 20 69 64 6c 65 20    53 45 43 4f 4e 44 53 20 77 69 74 68 20 52 45 53 | lved.after.idle.SECONDS.with.RES | 
| 55c0 | 55 4c 54 2e 0a 0a 28 61 69 6f 2d 75 72 6c 2d 72    65 74 72 69 65 76 65 20 75 72 6c 20 26 6f 70 74 | ULT...(aio-url-retrieve.url.&opt | 
| 55e0 | 69 6f 6e 61 6c 20 73 69 6c 65 6e 74 20 69 6e 68    69 62 69 74 2d 63 6f 6f 6b 69 65 73 29 0a 3b 3b | ional.silent.inhibit-cookies).;; | 
| 5600 | 20 57 72 61 70 73 20 60 75 72 6c 2d 72 65 74 72    69 65 76 65 27 20 69 6e 20 61 20 70 72 6f 6d 69 | .Wraps.`url-retrieve'.in.a.promi | 
| 5620 | 73 65 2e 0a 0a 28 61 69 6f 2d 61 6c 6c 20 70 72    6f 6d 69 73 65 73 29 0a 3b 3b 20 52 65 74 75 72 | se...(aio-all.promises).;;.Retur | 
| 5640 | 6e 20 61 20 70 72 6f 6d 69 73 65 20 74 68 61 74    20 72 65 73 6f 6c 76 65 73 20 77 68 65 6e 20 61 | n.a.promise.that.resolves.when.a | 
| 5660 | 6c 6c 20 50 52 4f 4d 49 53 45 53 20 61 72 65 20    72 65 73 6f 6c 76 65 64 2e 22 0a 60 60 60 0a 0a | ll.PROMISES.are.resolved.".```.. | 
| 5680 | 23 23 20 53 65 6c 65 63 74 20 41 50 49 0a 0a 54    68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 63 6c | ##.Select.API..This.package.incl | 
| 56a0 | 75 64 65 73 20 61 20 73 65 6c 65 63 74 28 29 2d    6c 69 6b 65 2c 20 6c 65 76 65 6c 2d 74 72 69 67 | udes.a.select()-like,.level-trig | 
| 56c0 | 67 65 72 65 64 20 41 50 49 20 66 6f 72 20 77 61    69 74 69 6e 67 0a 6f 6e 20 6d 75 6c 74 69 70 6c | gered.API.for.waiting.on.multipl | 
| 56e0 | 65 20 70 72 6f 6d 69 73 65 73 20 61 74 20 6f 6e    63 65 2e 20 43 72 65 61 74 65 20 61 20 22 73 65 | e.promises.at.once..Create.a."se | 
| 5700 | 6c 65 63 74 22 20 6f 62 6a 65 63 74 2c 20 61 64    64 20 70 72 6f 6d 69 73 65 73 0a 74 6f 20 69 74 | lect".object,.add.promises.to.it | 
| 5720 | 2c 20 61 6e 64 20 61 77 61 69 74 20 6f 6e 20 69    74 2e 20 52 65 73 6f 6c 76 65 64 20 61 6e 64 20 | ,.and.await.on.it..Resolved.and. | 
| 5740 | 72 65 74 75 72 6e 65 64 20 70 72 6f 6d 69 73 65    73 20 61 72 65 0a 61 75 74 6f 6d 61 74 69 63 61 | returned.promises.are.automatica | 
| 5760 | 6c 6c 79 20 72 65 6d 6f 76 65 64 2c 20 61 6e 64    20 74 68 65 20 22 73 65 6c 65 63 74 22 20 6f 62 | lly.removed,.and.the."select".ob | 
| 5780 | 6a 65 63 74 20 63 61 6e 20 62 65 20 72 65 75 73    65 64 2e 0a 0a 60 60 60 65 6c 0a 28 61 69 6f 2d | ject.can.be.reused...```el.(aio- | 
| 57a0 | 6d 61 6b 65 2d 73 65 6c 65 63 74 20 26 6f 70 74    69 6f 6e 61 6c 20 70 72 6f 6d 69 73 65 73 29 0a | make-select.&optional.promises). | 
| 57c0 | 3b 3b 20 43 72 65 61 74 65 20 61 20 6e 65 77 20    60 61 69 6f 2d 73 65 6c 65 63 74 27 20 6f 62 6a | ;;.Create.a.new.`aio-select'.obj | 
| 57e0 | 65 63 74 20 66 6f 72 20 77 61 69 74 69 6e 67 20    6f 6e 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 6d | ect.for.waiting.on.multiple.prom | 
| 5800 | 69 73 65 73 2e 0a 0a 28 61 69 6f 2d 73 65 6c 65    63 74 2d 61 64 64 20 73 65 6c 65 63 74 20 70 72 | ises...(aio-select-add.select.pr | 
| 5820 | 6f 6d 69 73 65 29 0a 3b 3b 20 41 64 64 20 50 52    4f 4d 49 53 45 20 74 6f 20 74 68 65 20 73 65 74 | omise).;;.Add.PROMISE.to.the.set | 
| 5840 | 20 6f 66 20 70 72 6f 6d 69 73 65 73 20 69 6e 20    53 45 4c 45 43 54 2e 0a 0a 28 61 69 6f 2d 73 65 | .of.promises.in.SELECT...(aio-se | 
| 5860 | 6c 65 63 74 2d 72 65 6d 6f 76 65 20 73 65 6c 65    63 74 20 70 72 6f 6d 69 73 65 29 0a 3b 3b 20 52 | lect-remove.select.promise).;;.R | 
| 5880 | 65 6d 6f 76 65 20 50 52 4f 4d 49 53 45 20 66 6f    72 6d 20 74 68 65 20 73 65 74 20 6f 66 20 70 72 | emove.PROMISE.form.the.set.of.pr | 
| 58a0 | 6f 6d 69 73 65 73 20 69 6e 20 53 45 4c 45 43 54    2e 0a 0a 28 61 69 6f 2d 73 65 6c 65 63 74 2d 70 | omises.in.SELECT...(aio-select-p | 
| 58c0 | 72 6f 6d 69 73 65 73 20 73 65 6c 65 63 74 29 0a    3b 3b 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 | romises.select).;;.Return.a.list | 
| 58e0 | 20 6f 66 20 70 72 6f 6d 69 73 65 73 20 69 6e 20    53 45 4c 45 43 54 2e 0a 0a 28 61 69 6f 2d 73 65 | .of.promises.in.SELECT...(aio-se | 
| 5900 | 6c 65 63 74 20 73 65 6c 65 63 74 29 0a 3b 3b 20    52 65 74 75 72 6e 20 61 20 70 72 6f 6d 69 73 65 | lect.select).;;.Return.a.promise | 
| 5920 | 20 74 68 61 74 20 72 65 73 6f 6c 76 65 73 20 77    68 65 6e 20 61 6e 79 20 70 72 6f 6d 69 73 65 20 | .that.resolves.when.any.promise. | 
| 5940 | 69 6e 20 53 45 4c 45 43 54 20 72 65 73 6f 6c 76    65 73 2e 0a 60 60 60 0a 0a 46 6f 72 20 65 78 61 | in.SELECT.resolves..```..For.exa | 
| 5960 | 6d 70 6c 65 2c 20 68 65 72 65 27 73 20 61 6e 20    69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f | mple,.here's.an.implementation.o | 
| 5980 | 66 20 73 6c 65 65 70 20 73 6f 72 74 3a 0a 0a 60    60 60 65 6c 0a 28 61 69 6f 2d 64 65 66 75 6e 20 | f.sleep.sort:..```el.(aio-defun. | 
| 59a0 | 73 6c 65 65 70 2d 73 6f 72 74 20 28 76 61 6c 75    65 73 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 | sleep-sort.(values)...(let*.((pr | 
| 59c0 | 6f 6d 69 73 65 73 20 28 6d 61 70 63 61 72 20 28    6c 61 6d 62 64 61 20 28 76 29 20 28 61 69 6f 2d | omises.(mapcar.(lambda.(v).(aio- | 
| 59e0 | 73 6c 65 65 70 20 76 20 76 29 29 20 76 61 6c 75    65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 | sleep.v.v)).values))..........(s | 
| 5a00 | 65 6c 65 63 74 20 28 61 69 6f 2d 6d 61 6b 65 2d    73 65 6c 65 63 74 20 70 72 6f 6d 69 73 65 73 29 | elect.(aio-make-select.promises) | 
| 5a20 | 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20    72 65 70 65 61 74 20 28 6c 65 6e 67 74 68 20 70 | )).....(cl-loop.repeat.(length.p | 
| 5a40 | 72 6f 6d 69 73 65 73 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 66 6f 72 20 6e 65 78 74 20 3d | romises)..............for.next.= | 
| 5a60 | 20 28 61 69 6f 2d 61 77 61 69 74 20 28 61 69 6f    2d 73 65 6c 65 63 74 20 73 65 6c 65 63 74 29 29 | .(aio-await.(aio-select.select)) | 
| 5a80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f    6c 6c 65 63 74 20 28 61 69 6f 2d 61 77 61 69 74 | ..............collect.(aio-await | 
| 5aa0 | 20 6e 65 78 74 29 29 29 29 0a 60 60 60 0a 0a 23    23 20 53 65 6d 61 70 68 6f 72 65 20 41 50 49 0a | .next)))).```..##.Semaphore.API. | 
| 5ac0 | 0a 53 65 6d 61 70 68 6f 72 65 73 20 77 6f 72 6b    20 6a 75 73 74 20 61 73 20 74 68 65 79 20 77 6f | .Semaphores.work.just.as.they.wo | 
| 5ae0 | 75 6c 64 20 61 73 20 61 20 74 68 72 65 61 64 20    73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 0a | uld.as.a.thread.synchronization. | 
| 5b00 | 70 72 69 6d 69 74 69 76 65 2e 20 54 68 65 72 65    27 73 20 61 6e 20 69 6e 74 65 72 6e 61 6c 20 63 | primitive..There's.an.internal.c | 
| 5b20 | 6f 75 6e 74 65 72 20 74 68 61 74 20 63 61 6e 6e    6f 74 20 64 72 6f 70 20 62 65 6c 6f 77 20 7a 65 | ounter.that.cannot.drop.below.ze | 
| 5b40 | 72 6f 2c 0a 61 6e 64 20 60 61 69 6f 2d 73 65 6d    2d 77 61 69 74 60 20 69 73 20 61 6e 20 61 77 61 | ro,.and.`aio-sem-wait`.is.an.awa | 
| 5b60 | 69 74 61 62 6c 65 20 66 75 6e 63 74 69 6f 6e 20    74 68 61 74 20 6d 61 79 20 62 6c 6f 63 6b 20 74 | itable.function.that.may.block.t | 
| 5b80 | 68 65 0a 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20    66 75 6e 63 74 69 6f 6e 20 75 6e 74 69 6c 20 61 | he.asynchronous.function.until.a | 
| 5ba0 | 6e 6f 74 68 65 72 20 61 73 79 6e 63 68 72 6f 6e    6f 75 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c | nother.asynchronous.function.cal | 
| 5bc0 | 6c 73 0a 60 61 69 6f 2d 73 65 6d 2d 70 6f 73 74    60 2e 20 42 6c 6f 63 6b 65 64 20 66 75 6e 63 74 | ls.`aio-sem-post`..Blocked.funct | 
| 5be0 | 69 6f 6e 73 20 77 61 69 74 20 69 6e 20 61 20 46    49 46 4f 20 71 75 65 75 65 20 61 6e 64 20 61 72 | ions.wait.in.a.FIFO.queue.and.ar | 
| 5c00 | 65 20 61 77 6f 6b 65 6e 0a 69 6e 20 74 68 65 20    73 61 6d 65 20 6f 72 64 65 72 20 74 68 61 74 20 | e.awoken.in.the.same.order.that. | 
| 5c20 | 74 68 65 79 20 61 77 61 69 74 65 64 2e 0a 0a 60    60 60 65 6c 0a 28 61 69 6f 2d 73 65 6d 20 69 6e | they.awaited...```el.(aio-sem.in | 
| 5c40 | 69 74 29 0a 3b 3b 20 43 72 65 61 74 65 20 61 20    6e 65 77 20 73 65 6d 61 70 68 6f 72 65 20 77 69 | it).;;.Create.a.new.semaphore.wi | 
| 5c60 | 74 68 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65    20 49 4e 49 54 2e 0a 0a 28 61 69 6f 2d 73 65 6d | th.initial.value.INIT...(aio-sem | 
| 5c80 | 2d 70 6f 73 74 20 73 65 6d 29 0a 3b 3b 20 49 6e    63 72 65 6d 65 6e 74 20 74 68 65 20 76 61 6c 75 | -post.sem).;;.Increment.the.valu | 
| 5ca0 | 65 20 6f 66 20 53 45 4d 2e 0a 0a 28 61 69 6f 2d    73 65 6d 2d 77 61 69 74 20 73 65 6d 29 0a 3b 3b | e.of.SEM...(aio-sem-wait.sem).;; | 
| 5cc0 | 20 44 65 63 72 65 6d 65 6e 74 20 74 68 65 20 76    61 6c 75 65 20 6f 66 20 53 45 4d 2e 0a 60 60 60 | .Decrement.the.value.of.SEM..``` | 
| 5ce0 | 0a 0a 54 68 69 73 20 63 61 6e 20 62 65 20 75 73    65 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 77 | ..This.can.be.used.to.create.a.w | 
| 5d00 | 6f 72 6b 20 71 75 65 75 65 2e 20 46 6f 72 20 65    78 61 6d 70 6c 65 2c 20 68 65 72 65 27 73 20 61 | ork.queue..For.example,.here's.a | 
| 5d20 | 0a 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 64 6f    77 6e 6c 6f 61 64 20 71 75 65 75 65 20 66 6f 72 | .configurable.download.queue.for | 
| 5d40 | 20 60 75 72 6c 2d 72 65 74 72 69 65 76 65 60 3a    0a 0a 60 60 60 65 6c 0a 28 64 65 66 75 6e 20 66 | .`url-retrieve`:..```el.(defun.f | 
| 5d60 | 65 74 63 68 20 28 75 72 6c 2d 6c 69 73 74 20 6d    61 78 2d 70 61 72 61 6c 6c 65 6c 20 63 61 6c 6c | etch.(url-list.max-parallel.call | 
| 5d80 | 62 61 63 6b 29 0a 20 20 28 6c 65 74 20 28 28 73    65 6d 20 28 61 69 6f 2d 73 65 6d 20 6d 61 78 2d | back)...(let.((sem.(aio-sem.max- | 
| 5da0 | 70 61 72 61 6c 6c 65 6c 29 29 29 0a 20 20 20 20    28 64 6f 6c 69 73 74 20 28 75 72 6c 20 75 72 6c | parallel))).....(dolist.(url.url | 
| 5dc0 | 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 61 69    6f 2d 77 69 74 68 2d 61 73 79 6e 63 0a 20 20 20 | -list).......(aio-with-async.... | 
| 5de0 | 20 20 20 20 20 28 61 69 6f 2d 61 77 61 69 74 20    28 61 69 6f 2d 73 65 6d 2d 77 61 69 74 20 73 65 | .....(aio-await.(aio-sem-wait.se | 
| 5e00 | 6d 29 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d    64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 | m)).........(cl-destructuring-bi | 
| 5e20 | 6e 64 20 28 73 74 61 74 75 73 20 2e 20 62 75 66    66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 | nd.(status...buffer)............ | 
| 5e40 | 20 28 61 69 6f 2d 61 77 61 69 74 20 28 61 69 6f    2d 75 72 6c 2d 72 65 74 72 69 65 76 65 20 75 72 | .(aio-await.(aio-url-retrieve.ur | 
| 5e60 | 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61    69 6f 2d 73 65 6d 2d 70 6f 73 74 20 73 65 6d 29 | l))...........(aio-sem-post.sem) | 
| 5e80 | 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63    61 6c 6c 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 | ...........(funcall.callback.... | 
| 5ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 | ................(with-current-bu | 
| 5ec0 | 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ffer.buffer..................... | 
| 5ee0 | 20 28 70 72 6f 67 31 20 28 62 75 66 66 65 72 2d    73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 | .(prog1.(buffer-string)......... | 
| 5f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6b 69 6c 6c 2d 62 75 66 66 65 72 29 29 29 29 29 | ...............(kill-buffer))))) | 
| 5f20 | 29 29 29 29 0a 60 60 60 0a 0a 0a 5b 61 73 79 6e    63 69 6f 5d 3a 20 68 74 74 70 73 3a 2f 2f 64 6f | )))).```...[asyncio]:.https://do | 
| 5f40 | 63 73 2e 70 79 74 68 6f 6e 2e 6f 72 67 2f 33 2f    6c 69 62 72 61 72 79 2f 61 73 79 6e 63 69 6f 2e | cs.python.org/3/library/asyncio. | 
| 5f60 | 68 74 6d 6c 0a 5b 6d 65 6c 70 61 5d 3a 20 68 74    74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f | html.[melpa]:.https://melpa.org/ | 
| 5f80 | 23 2f 61 69 6f 0a 5b 70 6f 73 74 5d 3a 20 68 74    74 70 73 3a 2f 2f 6e 75 6c 6c 70 72 6f 67 72 61 | #/aio.[post]:.https://nullprogra | 
| 5fa0 | 6d 2e 63 6f 6d 2f 62 6c 6f 67 2f 32 30 31 39 2f    30 33 2f 31 30 2f 0a 00 00 00 00 00 00 00 00 00 | m.com/blog/2019/03/10/.......... | 
| 5fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6000 | 61 69 6f 2d 32 30 32 30 30 36 31 30 2e 31 39 30    34 2f 61 69 6f 2d 70 6b 67 2e 65 6c 00 00 00 00 | aio-20200610.1904/aio-pkg.el.... | 
| 6020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6060 | 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 | 
| 6080 | 30 30 30 30 36 37 33 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 34 33 30 00 20 30 00 00 00 | 0000673.00000000000.013430..0... | 
| 60a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 60c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 60e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6100 | 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................... | 
| 6120 | 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................... | 
| 6140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 61a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 61c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 61e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6200 | 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20    22 61 69 6f 22 20 22 32 30 32 30 30 36 31 30 2e | (define-package."aio"."20200610. | 
| 6220 | 31 39 30 34 22 20 22 61 73 79 6e 63 2f 61 77 61    69 74 20 66 6f 72 20 45 6d 61 63 73 20 4c 69 73 | 1904"."async/await.for.Emacs.Lis | 
| 6240 | 70 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32    36 2e 31 22 29 29 0a 20 20 3a 63 6f 6d 6d 69 74 | p"...'((emacs."26.1"))...:commit | 
| 6260 | 20 22 64 61 39 33 35 32 33 65 32 33 35 35 32 39    66 61 39 37 64 36 66 32 35 31 33 31 39 64 39 65 | ."da93523e235529fa97d6f251319d9e | 
| 6280 | 31 64 36 66 63 32 34 61 34 31 22 20 3a 61 75 74    68 6f 72 73 0a 20 20 27 28 28 22 43 68 72 69 73 | 1d6fc24a41".:authors...'(("Chris | 
| 62a0 | 74 6f 70 68 65 72 20 57 65 6c 6c 6f 6e 73 22 20    2e 20 22 77 65 6c 6c 6f 6e 73 40 6e 75 6c 6c 70 | topher.Wellons"..."wellons@nullp | 
| 62c0 | 72 6f 67 72 61 6d 2e 63 6f 6d 22 29 29 0a 20 20    3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 | rogram.com"))...:maintainers...' | 
| 62e0 | 28 28 22 43 68 72 69 73 74 6f 70 68 65 72 20 57    65 6c 6c 6f 6e 73 22 20 2e 20 22 77 65 6c 6c 6f | (("Christopher.Wellons"..."wello | 
| 6300 | 6e 73 40 6e 75 6c 6c 70 72 6f 67 72 61 6d 2e 63    6f 6d 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 | ns@nullprogram.com"))...:maintai | 
| 6320 | 6e 65 72 0a 20 20 27 28 22 43 68 72 69 73 74 6f    70 68 65 72 20 57 65 6c 6c 6f 6e 73 22 20 2e 20 | ner...'("Christopher.Wellons"... | 
| 6340 | 22 77 65 6c 6c 6f 6e 73 40 6e 75 6c 6c 70 72 6f    67 72 61 6d 2e 63 6f 6d 22 29 0a 20 20 3a 75 72 | "wellons@nullprogram.com")...:ur | 
| 6360 | 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75    62 2e 63 6f 6d 2f 73 6b 65 65 74 6f 2f 65 6d 61 | l."https://github.com/skeeto/ema | 
| 6380 | 63 73 2d 61 69 6f 22 29 0a 3b 3b 20 4c 6f 63 61    6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 | cs-aio").;;.Local.Variables:.;;. | 
| 63a0 | 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a    20 74 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 | no-byte-compile:.t.;;.End:...... | 
| 63c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 63e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6400 | 61 69 6f 2d 32 30 32 30 30 36 31 30 2e 31 39 30    34 2f 55 4e 4c 49 43 45 4e 53 45 00 00 00 00 00 | aio-20200610.1904/UNLICENSE..... | 
| 6420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6460 | 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 | 
| 6480 | 30 30 30 32 32 37 33 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 30 32 35 00 20 30 00 00 00 | 0002273.00000000000.013025..0... | 
| 64a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 64c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 64e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6500 | 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................... | 
| 6520 | 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................... | 
| 6540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 65a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 65c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 65e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6600 | 54 68 69 73 20 69 73 20 66 72 65 65 20 61 6e 64    20 75 6e 65 6e 63 75 6d 62 65 72 65 64 20 73 6f | This.is.free.and.unencumbered.so | 
| 6620 | 66 74 77 61 72 65 20 72 65 6c 65 61 73 65 64 20    69 6e 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 | ftware.released.into.the.public. | 
| 6640 | 64 6f 6d 61 69 6e 2e 0a 0a 41 6e 79 6f 6e 65 20    69 73 20 66 72 65 65 20 74 6f 20 63 6f 70 79 2c | domain...Anyone.is.free.to.copy, | 
| 6660 | 20 6d 6f 64 69 66 79 2c 20 70 75 62 6c 69 73 68    2c 20 75 73 65 2c 20 63 6f 6d 70 69 6c 65 2c 20 | .modify,.publish,.use,.compile,. | 
| 6680 | 73 65 6c 6c 2c 20 6f 72 0a 64 69 73 74 72 69 62    75 74 65 20 74 68 69 73 20 73 6f 66 74 77 61 72 | sell,.or.distribute.this.softwar | 
| 66a0 | 65 2c 20 65 69 74 68 65 72 20 69 6e 20 73 6f 75    72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 6f 72 | e,.either.in.source.code.form.or | 
| 66c0 | 20 61 73 20 61 20 63 6f 6d 70 69 6c 65 64 0a 62    69 6e 61 72 79 2c 20 66 6f 72 20 61 6e 79 20 70 | .as.a.compiled.binary,.for.any.p | 
| 66e0 | 75 72 70 6f 73 65 2c 20 63 6f 6d 6d 65 72 63 69    61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6d 6d 65 72 | urpose,.commercial.or.non-commer | 
| 6700 | 63 69 61 6c 2c 20 61 6e 64 20 62 79 20 61 6e 79    0a 6d 65 61 6e 73 2e 0a 0a 49 6e 20 6a 75 72 69 | cial,.and.by.any.means...In.juri | 
| 6720 | 73 64 69 63 74 69 6f 6e 73 20 74 68 61 74 20 72    65 63 6f 67 6e 69 7a 65 20 63 6f 70 79 72 69 67 | sdictions.that.recognize.copyrig | 
| 6740 | 68 74 20 6c 61 77 73 2c 20 74 68 65 20 61 75 74    68 6f 72 20 6f 72 20 61 75 74 68 6f 72 73 0a 6f | ht.laws,.the.author.or.authors.o | 
| 6760 | 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20    64 65 64 69 63 61 74 65 20 61 6e 79 20 61 6e 64 | f.this.software.dedicate.any.and | 
| 6780 | 20 61 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 69    6e 74 65 72 65 73 74 20 69 6e 20 74 68 65 0a 73 | .all.copyright.interest.in.the.s | 
| 67a0 | 6f 66 74 77 61 72 65 20 74 6f 20 74 68 65 20 70    75 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 20 57 65 | oftware.to.the.public.domain..We | 
| 67c0 | 20 6d 61 6b 65 20 74 68 69 73 20 64 65 64 69 63    61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 62 65 | .make.this.dedication.for.the.be | 
| 67e0 | 6e 65 66 69 74 0a 6f 66 20 74 68 65 20 70 75 62    6c 69 63 20 61 74 20 6c 61 72 67 65 20 61 6e 64 | nefit.of.the.public.at.large.and | 
| 6800 | 20 74 6f 20 74 68 65 20 64 65 74 72 69 6d 65 6e    74 20 6f 66 20 6f 75 72 20 68 65 69 72 73 20 61 | .to.the.detriment.of.our.heirs.a | 
| 6820 | 6e 64 0a 73 75 63 63 65 73 73 6f 72 73 2e 20 57    65 20 69 6e 74 65 6e 64 20 74 68 69 73 20 64 65 | nd.successors..We.intend.this.de | 
| 6840 | 64 69 63 61 74 69 6f 6e 20 74 6f 20 62 65 20 61    6e 20 6f 76 65 72 74 20 61 63 74 20 6f 66 0a 72 | dication.to.be.an.overt.act.of.r | 
| 6860 | 65 6c 69 6e 71 75 69 73 68 6d 65 6e 74 20 69 6e    20 70 65 72 70 65 74 75 69 74 79 20 6f 66 20 61 | elinquishment.in.perpetuity.of.a | 
| 6880 | 6c 6c 20 70 72 65 73 65 6e 74 20 61 6e 64 20 66    75 74 75 72 65 20 72 69 67 68 74 73 20 74 6f 20 | ll.present.and.future.rights.to. | 
| 68a0 | 74 68 69 73 0a 73 6f 66 74 77 61 72 65 20 75 6e    64 65 72 20 63 6f 70 79 72 69 67 68 74 20 6c 61 | this.software.under.copyright.la | 
| 68c0 | 77 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45    20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 | w...THE.SOFTWARE.IS.PROVIDED."AS | 
| 68e0 | 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41    52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 | .IS",.WITHOUT.WARRANTY.OF.ANY.KI | 
| 6900 | 4e 44 2c 0a 45 58 50 52 45 53 53 20 4f 52 20 49    4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e | ND,.EXPRESS.OR.IMPLIED,.INCLUDIN | 
| 6920 | 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45    44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 | G.BUT.NOT.LIMITED.TO.THE.WARRANT | 
| 6940 | 49 45 53 20 4f 46 0a 4d 45 52 43 48 41 4e 54 41    42 49 4c 49 54 59 2c 20 46 49 54 4e 45 53 53 20 | IES.OF.MERCHANTABILITY,.FITNESS. | 
| 6960 | 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52    20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e | FOR.A.PARTICULAR.PURPOSE.AND.NON | 
| 6980 | 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 0a 49 4e    20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 | INFRINGEMENT..IN.NO.EVENT.SHALL. | 
| 69a0 | 54 48 45 20 41 55 54 48 4f 52 53 20 42 45 20 4c    49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c | THE.AUTHORS.BE.LIABLE.FOR.ANY.CL | 
| 69c0 | 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 0a    4f 54 48 45 52 20 4c 49 41 42 49 4c 49 54 59 2c | AIM,.DAMAGES.OR.OTHER.LIABILITY, | 
| 69e0 | 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41    43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 | .WHETHER.IN.AN.ACTION.OF.CONTRAC | 
| 6a00 | 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52    57 49 53 45 2c 0a 41 52 49 53 49 4e 47 20 46 52 | T,.TORT.OR.OTHERWISE,.ARISING.FR | 
| 6a20 | 4f 4d 2c 20 4f 55 54 20 4f 46 20 4f 52 20 49 4e    20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 | OM,.OUT.OF.OR.IN.CONNECTION.WITH | 
| 6a40 | 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52    20 54 48 45 20 55 53 45 20 4f 52 0a 4f 54 48 45 | .THE.SOFTWARE.OR.THE.USE.OR.OTHE | 
| 6a60 | 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 20 54 48    45 20 53 4f 46 54 57 41 52 45 2e 0a 0a 46 6f 72 | R.DEALINGS.IN.THE.SOFTWARE...For | 
| 6a80 | 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f    6e 2c 20 70 6c 65 61 73 65 20 72 65 66 65 72 20 | .more.information,.please.refer. | 
| 6aa0 | 74 6f 20 3c 68 74 74 70 3a 2f 2f 75 6e 6c 69 63    65 6e 73 65 2e 6f 72 67 2f 3e 0a 00 00 00 00 00 | to.<http://unlicense.org/>...... | 
| 6ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 70a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 70c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 70e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 71a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 71c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 71e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 72a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 72c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 72e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 73a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 73c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 73e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 74a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 74c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 74e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 75a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 75c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 75e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 76a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 76c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 76e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 77a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 77c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 77e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |