summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile28
-rw-r--r--default.nix50
-rw-r--r--src/cfg/cfg.go (renamed from srv/src/cfg/cfg.go)0
-rw-r--r--src/cfg/cfg_test.go (renamed from srv/src/cfg/cfg_test.go)0
-rw-r--r--src/cfg/data_dir.go (renamed from srv/src/cfg/data_dir.go)0
-rw-r--r--src/cfg/mediocre_blog.go (renamed from srv/src/cfg/mediocre_blog.go)0
-rw-r--r--src/cmd/hash-password/main.go (renamed from srv/src/cmd/hash-password/main.go)0
-rw-r--r--src/cmd/load-test-data/galaxy.jpg (renamed from srv/src/cmd/load-test-data/galaxy.jpg)bin69901 -> 69901 bytes
-rw-r--r--src/cmd/load-test-data/main.go (renamed from srv/src/cmd/load-test-data/main.go)0
-rw-r--r--src/cmd/load-test-data/test-data.yml (renamed from srv/src/cmd/load-test-data/test-data.yml)0
-rw-r--r--src/cmd/mailinglist-cli/main.go (renamed from srv/src/cmd/mailinglist-cli/main.go)0
-rw-r--r--src/cmd/mediocre-blog/main.go (renamed from srv/src/cmd/mediocre-blog/main.go)0
-rw-r--r--src/go.mod (renamed from srv/src/go.mod)0
-rw-r--r--src/go.sum (renamed from srv/src/go.sum)0
-rw-r--r--src/http/api.go (renamed from srv/src/http/api.go)0
-rw-r--r--src/http/apiutil/apiutil.go (renamed from srv/src/http/apiutil/apiutil.go)0
-rw-r--r--src/http/assets.go (renamed from srv/src/http/assets.go)0
-rw-r--r--src/http/auth.go (renamed from srv/src/http/auth.go)0
-rw-r--r--src/http/auth_test.go (renamed from srv/src/http/auth_test.go)0
-rw-r--r--src/http/csrf.go (renamed from srv/src/http/csrf.go)0
-rw-r--r--src/http/drafts.go (renamed from srv/src/http/drafts.go)0
-rw-r--r--src/http/feed.go (renamed from srv/src/http/feed.go)0
-rw-r--r--src/http/index.go (renamed from srv/src/http/index.go)0
-rw-r--r--src/http/mailinglist.go (renamed from srv/src/http/mailinglist.go)0
-rw-r--r--src/http/middleware.go (renamed from srv/src/http/middleware.go)0
-rw-r--r--src/http/posts.go (renamed from srv/src/http/posts.go)0
-rw-r--r--src/http/pow.go (renamed from srv/src/http/pow.go)0
-rw-r--r--src/http/static/api.js (renamed from srv/src/http/static/api.js)0
-rw-r--r--src/http/static/component-oriented-design/v1/main.go (renamed from srv/src/http/static/component-oriented-design/v1/main.go)0
-rw-r--r--src/http/static/component-oriented-design/v1/main_test.go (renamed from srv/src/http/static/component-oriented-design/v1/main_test.go)0
-rw-r--r--src/http/static/component-oriented-design/v2/main.go (renamed from srv/src/http/static/component-oriented-design/v2/main.go)0
-rw-r--r--src/http/static/component-oriented-design/v3/main.go (renamed from srv/src/http/static/component-oriented-design/v3/main.go)0
-rw-r--r--src/http/static/markov/Makefile (renamed from srv/src/http/static/markov/Makefile)0
-rw-r--r--src/http/static/markov/markov.nix (renamed from srv/src/http/static/markov/markov.nix)0
-rw-r--r--src/http/static/mediocre.css (renamed from srv/src/http/static/mediocre.css)0
-rw-r--r--src/http/static/new.css (renamed from srv/src/http/static/new.css)0
-rw-r--r--src/http/static/solvePow.js (renamed from srv/src/http/static/solvePow.js)0
-rw-r--r--src/http/static/trading-in-the-rain/CW.js (renamed from srv/src/http/static/trading-in-the-rain/CW.js)0
-rw-r--r--src/http/static/trading-in-the-rain/Distributor.js (renamed from srv/src/http/static/trading-in-the-rain/Distributor.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js (renamed from srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js)0
-rw-r--r--src/http/static/trading-in-the-rain/MusicBox.js (renamed from srv/src/http/static/trading-in-the-rain/MusicBox.js)0
-rw-r--r--src/http/static/trading-in-the-rain/RainCanvas.js (renamed from srv/src/http/static/trading-in-the-rain/RainCanvas.js)0
-rw-r--r--src/http/static/trading-in-the-rain/SeriesComposer.js (renamed from srv/src/http/static/trading-in-the-rain/SeriesComposer.js)0
-rw-r--r--src/http/static/trading-in-the-rain/key.gpg (renamed from srv/src/http/static/trading-in-the-rain/key.gpg)bin669 -> 669 bytes
-rw-r--r--src/http/static/trading-in-the-rain/main.js (renamed from srv/src/http/static/trading-in-the-rain/main.js)0
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js)0
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js (renamed from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js)0
-rw-r--r--src/http/static/utils.js (renamed from srv/src/http/static/utils.js)0
-rw-r--r--src/http/static/viz/1/cljs/core.cljs (renamed from srv/src/http/static/viz/1/cljs/core.cljs)0
-rw-r--r--src/http/static/viz/1/cljs/core.js (renamed from srv/src/http/static/viz/1/cljs/core.js)0
-rw-r--r--src/http/static/viz/1/cljs/core.js.map (renamed from srv/src/http/static/viz/1/cljs/core.js.map)0
-rw-r--r--src/http/static/viz/1/cljs_deps.js (renamed from srv/src/http/static/viz/1/cljs_deps.js)0
-rw-r--r--src/http/static/viz/1/clojure/set.cljs (renamed from srv/src/http/static/viz/1/clojure/set.cljs)0
-rw-r--r--src/http/static/viz/1/clojure/set.cljs.cache.edn (renamed from srv/src/http/static/viz/1/clojure/set.cljs.cache.edn)0
-rw-r--r--src/http/static/viz/1/clojure/set.js (renamed from srv/src/http/static/viz/1/clojure/set.js)0
-rw-r--r--src/http/static/viz/1/clojure/set.js.map (renamed from srv/src/http/static/viz/1/clojure/set.js.map)0
-rw-r--r--src/http/static/viz/1/clojure/string.cljs (renamed from srv/src/http/static/viz/1/clojure/string.cljs)0
-rw-r--r--src/http/static/viz/1/clojure/string.cljs.cache.edn (renamed from srv/src/http/static/viz/1/clojure/string.cljs.cache.edn)0
-rw-r--r--src/http/static/viz/1/clojure/string.js (renamed from srv/src/http/static/viz/1/clojure/string.js)0
-rw-r--r--src/http/static/viz/1/clojure/string.js.map (renamed from srv/src/http/static/viz/1/clojure/string.js.map)0
-rw-r--r--src/http/static/viz/1/goog/array/array.js (renamed from srv/src/http/static/viz/1/goog/array/array.js)0
-rw-r--r--src/http/static/viz/1/goog/asserts/asserts.js (renamed from srv/src/http/static/viz/1/goog/asserts/asserts.js)0
-rw-r--r--src/http/static/viz/1/goog/base.js (renamed from srv/src/http/static/viz/1/goog/base.js)0
-rw-r--r--src/http/static/viz/1/goog/debug/entrypointregistry.js (renamed from srv/src/http/static/viz/1/goog/debug/entrypointregistry.js)0
-rw-r--r--src/http/static/viz/1/goog/debug/error.js (renamed from srv/src/http/static/viz/1/goog/debug/error.js)0
-rw-r--r--src/http/static/viz/1/goog/deps.js (renamed from srv/src/http/static/viz/1/goog/deps.js)0
-rw-r--r--src/http/static/viz/1/goog/disposable/disposable.js (renamed from srv/src/http/static/viz/1/goog/disposable/disposable.js)0
-rw-r--r--src/http/static/viz/1/goog/disposable/idisposable.js (renamed from srv/src/http/static/viz/1/goog/disposable/idisposable.js)0
-rw-r--r--src/http/static/viz/1/goog/dom/browserfeature.js (renamed from srv/src/http/static/viz/1/goog/dom/browserfeature.js)0
-rw-r--r--src/http/static/viz/1/goog/dom/dom.js (renamed from srv/src/http/static/viz/1/goog/dom/dom.js)0
-rw-r--r--src/http/static/viz/1/goog/dom/nodetype.js (renamed from srv/src/http/static/viz/1/goog/dom/nodetype.js)0
-rw-r--r--src/http/static/viz/1/goog/dom/safe.js (renamed from srv/src/http/static/viz/1/goog/dom/safe.js)0
-rw-r--r--src/http/static/viz/1/goog/dom/tagname.js (renamed from srv/src/http/static/viz/1/goog/dom/tagname.js)0
-rw-r--r--src/http/static/viz/1/goog/dom/tags.js (renamed from srv/src/http/static/viz/1/goog/dom/tags.js)0
-rw-r--r--src/http/static/viz/1/goog/events/browserevent.js (renamed from srv/src/http/static/viz/1/goog/events/browserevent.js)0
-rw-r--r--src/http/static/viz/1/goog/events/browserfeature.js (renamed from srv/src/http/static/viz/1/goog/events/browserfeature.js)0
-rw-r--r--src/http/static/viz/1/goog/events/event.js (renamed from srv/src/http/static/viz/1/goog/events/event.js)0
-rw-r--r--src/http/static/viz/1/goog/events/eventid.js (renamed from srv/src/http/static/viz/1/goog/events/eventid.js)0
-rw-r--r--src/http/static/viz/1/goog/events/events.js (renamed from srv/src/http/static/viz/1/goog/events/events.js)0
-rw-r--r--src/http/static/viz/1/goog/events/eventtype.js (renamed from srv/src/http/static/viz/1/goog/events/eventtype.js)0
-rw-r--r--src/http/static/viz/1/goog/events/listenable.js (renamed from srv/src/http/static/viz/1/goog/events/listenable.js)0
-rw-r--r--src/http/static/viz/1/goog/events/listener.js (renamed from srv/src/http/static/viz/1/goog/events/listener.js)0
-rw-r--r--src/http/static/viz/1/goog/events/listenermap.js (renamed from srv/src/http/static/viz/1/goog/events/listenermap.js)0
-rw-r--r--src/http/static/viz/1/goog/fs/url.js (renamed from srv/src/http/static/viz/1/goog/fs/url.js)0
-rw-r--r--src/http/static/viz/1/goog/html/safehtml.js (renamed from srv/src/http/static/viz/1/goog/html/safehtml.js)0
-rw-r--r--src/http/static/viz/1/goog/html/safescript.js (renamed from srv/src/http/static/viz/1/goog/html/safescript.js)0
-rw-r--r--src/http/static/viz/1/goog/html/safestyle.js (renamed from srv/src/http/static/viz/1/goog/html/safestyle.js)0
-rw-r--r--src/http/static/viz/1/goog/html/safestylesheet.js (renamed from srv/src/http/static/viz/1/goog/html/safestylesheet.js)0
-rw-r--r--src/http/static/viz/1/goog/html/safeurl.js (renamed from srv/src/http/static/viz/1/goog/html/safeurl.js)0
-rw-r--r--src/http/static/viz/1/goog/html/trustedresourceurl.js (renamed from srv/src/http/static/viz/1/goog/html/trustedresourceurl.js)0
-rw-r--r--src/http/static/viz/1/goog/html/uncheckedconversions.js (renamed from srv/src/http/static/viz/1/goog/html/uncheckedconversions.js)0
-rw-r--r--src/http/static/viz/1/goog/i18n/bidi.js (renamed from srv/src/http/static/viz/1/goog/i18n/bidi.js)0
-rw-r--r--src/http/static/viz/1/goog/labs/useragent/browser.js (renamed from srv/src/http/static/viz/1/goog/labs/useragent/browser.js)0
-rw-r--r--src/http/static/viz/1/goog/labs/useragent/engine.js (renamed from srv/src/http/static/viz/1/goog/labs/useragent/engine.js)0
-rw-r--r--src/http/static/viz/1/goog/labs/useragent/platform.js (renamed from srv/src/http/static/viz/1/goog/labs/useragent/platform.js)0
-rw-r--r--src/http/static/viz/1/goog/labs/useragent/util.js (renamed from srv/src/http/static/viz/1/goog/labs/useragent/util.js)0
-rw-r--r--src/http/static/viz/1/goog/math/coordinate.js (renamed from srv/src/http/static/viz/1/goog/math/coordinate.js)0
-rw-r--r--src/http/static/viz/1/goog/math/integer.js (renamed from srv/src/http/static/viz/1/goog/math/integer.js)0
-rw-r--r--src/http/static/viz/1/goog/math/long.js (renamed from srv/src/http/static/viz/1/goog/math/long.js)0
-rw-r--r--src/http/static/viz/1/goog/math/math.js (renamed from srv/src/http/static/viz/1/goog/math/math.js)0
-rw-r--r--src/http/static/viz/1/goog/math/size.js (renamed from srv/src/http/static/viz/1/goog/math/size.js)0
-rw-r--r--src/http/static/viz/1/goog/object/object.js (renamed from srv/src/http/static/viz/1/goog/object/object.js)0
-rw-r--r--src/http/static/viz/1/goog/reflect/reflect.js (renamed from srv/src/http/static/viz/1/goog/reflect/reflect.js)0
-rw-r--r--src/http/static/viz/1/goog/string/const.js (renamed from srv/src/http/static/viz/1/goog/string/const.js)0
-rw-r--r--src/http/static/viz/1/goog/string/string.js (renamed from srv/src/http/static/viz/1/goog/string/string.js)0
-rw-r--r--src/http/static/viz/1/goog/string/stringbuffer.js (renamed from srv/src/http/static/viz/1/goog/string/stringbuffer.js)0
-rw-r--r--src/http/static/viz/1/goog/string/stringformat.js (renamed from srv/src/http/static/viz/1/goog/string/stringformat.js)0
-rw-r--r--src/http/static/viz/1/goog/string/typedstring.js (renamed from srv/src/http/static/viz/1/goog/string/typedstring.js)0
-rw-r--r--src/http/static/viz/1/goog/useragent/useragent.js (renamed from srv/src/http/static/viz/1/goog/useragent/useragent.js)0
-rw-r--r--src/http/static/viz/1/processing.js (renamed from srv/src/http/static/viz/1/processing.js)0
-rw-r--r--src/http/static/viz/1/quil/core.cljc (renamed from srv/src/http/static/viz/1/quil/core.cljc)0
-rw-r--r--src/http/static/viz/1/quil/core.cljc.cache.edn (renamed from srv/src/http/static/viz/1/quil/core.cljc.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/core.js (renamed from srv/src/http/static/viz/1/quil/core.js)0
-rw-r--r--src/http/static/viz/1/quil/core.js.map (renamed from srv/src/http/static/viz/1/quil/core.js.map)0
-rw-r--r--src/http/static/viz/1/quil/middleware.cljc (renamed from srv/src/http/static/viz/1/quil/middleware.cljc)0
-rw-r--r--src/http/static/viz/1/quil/middleware.cljc.cache.edn (renamed from srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/middleware.js (renamed from srv/src/http/static/viz/1/quil/middleware.js)0
-rw-r--r--src/http/static/viz/1/quil/middleware.js.map (renamed from srv/src/http/static/viz/1/quil/middleware.js.map)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/deprecated_options.cljc (renamed from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn (renamed from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/deprecated_options.js (renamed from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/deprecated_options.js.map (renamed from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/fun_mode.cljc (renamed from srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn (renamed from srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/fun_mode.js (renamed from srv/src/http/static/viz/1/quil/middlewares/fun_mode.js)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/fun_mode.js.map (renamed from srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_2d.cljc (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_2d.js (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_2d.js.map (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_3d.cljc (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_3d.js (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js)0
-rw-r--r--src/http/static/viz/1/quil/middlewares/navigation_3d.js.map (renamed from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map)0
-rw-r--r--src/http/static/viz/1/quil/sketch.cljs (renamed from srv/src/http/static/viz/1/quil/sketch.cljs)0
-rw-r--r--src/http/static/viz/1/quil/sketch.cljs.cache.edn (renamed from srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/sketch.js (renamed from srv/src/http/static/viz/1/quil/sketch.js)0
-rw-r--r--src/http/static/viz/1/quil/sketch.js.map (renamed from srv/src/http/static/viz/1/quil/sketch.js.map)0
-rw-r--r--src/http/static/viz/1/quil/util.cljc (renamed from srv/src/http/static/viz/1/quil/util.cljc)0
-rw-r--r--src/http/static/viz/1/quil/util.cljc.cache.edn (renamed from srv/src/http/static/viz/1/quil/util.cljc.cache.edn)0
-rw-r--r--src/http/static/viz/1/quil/util.js (renamed from srv/src/http/static/viz/1/quil/util.js)0
-rw-r--r--src/http/static/viz/1/quil/util.js.map (renamed from srv/src/http/static/viz/1/quil/util.js.map)0
-rw-r--r--src/http/static/viz/1/viz/core.cljs (renamed from srv/src/http/static/viz/1/viz/core.cljs)0
-rw-r--r--src/http/static/viz/1/viz/core.cljs.cache.edn (renamed from srv/src/http/static/viz/1/viz/core.cljs.cache.edn)0
-rw-r--r--src/http/static/viz/1/viz/core.js (renamed from srv/src/http/static/viz/1/viz/core.js)0
-rw-r--r--src/http/static/viz/1/viz/core.js.map (renamed from srv/src/http/static/viz/1/viz/core.js.map)0
-rw-r--r--src/http/static/viz/1/viz/forest.cljs (renamed from srv/src/http/static/viz/1/viz/forest.cljs)0
-rw-r--r--src/http/static/viz/1/viz/forest.cljs.cache.edn (renamed from srv/src/http/static/viz/1/viz/forest.cljs.cache.edn)0
-rw-r--r--src/http/static/viz/1/viz/forest.js (renamed from srv/src/http/static/viz/1/viz/forest.js)0
-rw-r--r--src/http/static/viz/1/viz/forest.js.map (renamed from srv/src/http/static/viz/1/viz/forest.js.map)0
-rw-r--r--src/http/static/viz/1/viz/ghost.cljs (renamed from srv/src/http/static/viz/1/viz/ghost.cljs)0
-rw-r--r--src/http/static/viz/1/viz/ghost.cljs.cache.edn (renamed from srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn)0
-rw-r--r--src/http/static/viz/1/viz/ghost.js (renamed from srv/src/http/static/viz/1/viz/ghost.js)0
-rw-r--r--src/http/static/viz/1/viz/ghost.js.map (renamed from srv/src/http/static/viz/1/viz/ghost.js.map)0
-rw-r--r--src/http/static/viz/1/viz/grid.cljs (renamed from srv/src/http/static/viz/1/viz/grid.cljs)0
-rw-r--r--src/http/static/viz/1/viz/grid.cljs.cache.edn (renamed from srv/src/http/static/viz/1/viz/grid.cljs.cache.edn)0
-rw-r--r--src/http/static/viz/1/viz/grid.js (renamed from srv/src/http/static/viz/1/viz/grid.js)0
-rw-r--r--src/http/static/viz/1/viz/grid.js.map (renamed from srv/src/http/static/viz/1/viz/grid.js.map)0
-rw-r--r--src/http/static/viz/2/cljs/core.cljs (renamed from srv/src/http/static/viz/2/cljs/core.cljs)0
-rw-r--r--src/http/static/viz/2/cljs/core.js (renamed from srv/src/http/static/viz/2/cljs/core.js)0
-rw-r--r--src/http/static/viz/2/cljs/core.js.map (renamed from srv/src/http/static/viz/2/cljs/core.js.map)0
-rw-r--r--src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json (renamed from srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/cljs/user/debug9D984AE.js (renamed from srv/src/http/static/viz/2/cljs/user/debug9D984AE.js)0
-rw-r--r--src/http/static/viz/2/cljs/user/debug9D984AE.js.map (renamed from srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map)0
-rw-r--r--src/http/static/viz/2/cljs_deps.js (renamed from srv/src/http/static/viz/2/cljs_deps.js)0
-rw-r--r--src/http/static/viz/2/cljsc_opts.edn (renamed from srv/src/http/static/viz/2/cljsc_opts.edn)0
-rw-r--r--src/http/static/viz/2/clojure/set.cljs (renamed from srv/src/http/static/viz/2/clojure/set.cljs)0
-rw-r--r--src/http/static/viz/2/clojure/set.cljs.cache.json (renamed from srv/src/http/static/viz/2/clojure/set.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/clojure/set.js (renamed from srv/src/http/static/viz/2/clojure/set.js)0
-rw-r--r--src/http/static/viz/2/clojure/set.js.map (renamed from srv/src/http/static/viz/2/clojure/set.js.map)0
-rw-r--r--src/http/static/viz/2/clojure/string.cljs (renamed from srv/src/http/static/viz/2/clojure/string.cljs)0
-rw-r--r--src/http/static/viz/2/clojure/string.cljs.cache.json (renamed from srv/src/http/static/viz/2/clojure/string.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/clojure/string.js (renamed from srv/src/http/static/viz/2/clojure/string.js)0
-rw-r--r--src/http/static/viz/2/clojure/string.js.map (renamed from srv/src/http/static/viz/2/clojure/string.js.map)0
-rw-r--r--src/http/static/viz/2/goog/array/array.js (renamed from srv/src/http/static/viz/2/goog/array/array.js)0
-rw-r--r--src/http/static/viz/2/goog/asserts/asserts.js (renamed from srv/src/http/static/viz/2/goog/asserts/asserts.js)0
-rw-r--r--src/http/static/viz/2/goog/base.js (renamed from srv/src/http/static/viz/2/goog/base.js)0
-rw-r--r--src/http/static/viz/2/goog/debug/entrypointregistry.js (renamed from srv/src/http/static/viz/2/goog/debug/entrypointregistry.js)0
-rw-r--r--src/http/static/viz/2/goog/debug/error.js (renamed from srv/src/http/static/viz/2/goog/debug/error.js)0
-rw-r--r--src/http/static/viz/2/goog/deps.js (renamed from srv/src/http/static/viz/2/goog/deps.js)0
-rw-r--r--src/http/static/viz/2/goog/disposable/disposable.js (renamed from srv/src/http/static/viz/2/goog/disposable/disposable.js)0
-rw-r--r--src/http/static/viz/2/goog/disposable/idisposable.js (renamed from srv/src/http/static/viz/2/goog/disposable/idisposable.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/asserts.js (renamed from srv/src/http/static/viz/2/goog/dom/asserts.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/browserfeature.js (renamed from srv/src/http/static/viz/2/goog/dom/browserfeature.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/dom.js (renamed from srv/src/http/static/viz/2/goog/dom/dom.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/htmlelement.js (renamed from srv/src/http/static/viz/2/goog/dom/htmlelement.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/nodetype.js (renamed from srv/src/http/static/viz/2/goog/dom/nodetype.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/safe.js (renamed from srv/src/http/static/viz/2/goog/dom/safe.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/tagname.js (renamed from srv/src/http/static/viz/2/goog/dom/tagname.js)0
-rw-r--r--src/http/static/viz/2/goog/dom/tags.js (renamed from srv/src/http/static/viz/2/goog/dom/tags.js)0
-rw-r--r--src/http/static/viz/2/goog/events/browserevent.js (renamed from srv/src/http/static/viz/2/goog/events/browserevent.js)0
-rw-r--r--src/http/static/viz/2/goog/events/browserfeature.js (renamed from srv/src/http/static/viz/2/goog/events/browserfeature.js)0
-rw-r--r--src/http/static/viz/2/goog/events/event.js (renamed from srv/src/http/static/viz/2/goog/events/event.js)0
-rw-r--r--src/http/static/viz/2/goog/events/eventid.js (renamed from srv/src/http/static/viz/2/goog/events/eventid.js)0
-rw-r--r--src/http/static/viz/2/goog/events/events.js (renamed from srv/src/http/static/viz/2/goog/events/events.js)0
-rw-r--r--src/http/static/viz/2/goog/events/eventtype.js (renamed from srv/src/http/static/viz/2/goog/events/eventtype.js)0
-rw-r--r--src/http/static/viz/2/goog/events/listenable.js (renamed from srv/src/http/static/viz/2/goog/events/listenable.js)0
-rw-r--r--src/http/static/viz/2/goog/events/listener.js (renamed from srv/src/http/static/viz/2/goog/events/listener.js)0
-rw-r--r--src/http/static/viz/2/goog/events/listenermap.js (renamed from srv/src/http/static/viz/2/goog/events/listenermap.js)0
-rw-r--r--src/http/static/viz/2/goog/fs/url.js (renamed from srv/src/http/static/viz/2/goog/fs/url.js)0
-rw-r--r--src/http/static/viz/2/goog/functions/functions.js (renamed from srv/src/http/static/viz/2/goog/functions/functions.js)0
-rw-r--r--src/http/static/viz/2/goog/html/safehtml.js (renamed from srv/src/http/static/viz/2/goog/html/safehtml.js)0
-rw-r--r--src/http/static/viz/2/goog/html/safescript.js (renamed from srv/src/http/static/viz/2/goog/html/safescript.js)0
-rw-r--r--src/http/static/viz/2/goog/html/safestyle.js (renamed from srv/src/http/static/viz/2/goog/html/safestyle.js)0
-rw-r--r--src/http/static/viz/2/goog/html/safestylesheet.js (renamed from srv/src/http/static/viz/2/goog/html/safestylesheet.js)0
-rw-r--r--src/http/static/viz/2/goog/html/safeurl.js (renamed from srv/src/http/static/viz/2/goog/html/safeurl.js)0
-rw-r--r--src/http/static/viz/2/goog/html/trustedresourceurl.js (renamed from srv/src/http/static/viz/2/goog/html/trustedresourceurl.js)0
-rw-r--r--src/http/static/viz/2/goog/html/uncheckedconversions.js (renamed from srv/src/http/static/viz/2/goog/html/uncheckedconversions.js)0
-rw-r--r--src/http/static/viz/2/goog/i18n/bidi.js (renamed from srv/src/http/static/viz/2/goog/i18n/bidi.js)0
-rw-r--r--src/http/static/viz/2/goog/iter/iter.js (renamed from srv/src/http/static/viz/2/goog/iter/iter.js)0
-rw-r--r--src/http/static/viz/2/goog/labs/useragent/browser.js (renamed from srv/src/http/static/viz/2/goog/labs/useragent/browser.js)0
-rw-r--r--src/http/static/viz/2/goog/labs/useragent/engine.js (renamed from srv/src/http/static/viz/2/goog/labs/useragent/engine.js)0
-rw-r--r--src/http/static/viz/2/goog/labs/useragent/platform.js (renamed from srv/src/http/static/viz/2/goog/labs/useragent/platform.js)0
-rw-r--r--src/http/static/viz/2/goog/labs/useragent/util.js (renamed from srv/src/http/static/viz/2/goog/labs/useragent/util.js)0
-rw-r--r--src/http/static/viz/2/goog/math/coordinate.js (renamed from srv/src/http/static/viz/2/goog/math/coordinate.js)0
-rw-r--r--src/http/static/viz/2/goog/math/integer.js (renamed from srv/src/http/static/viz/2/goog/math/integer.js)0
-rw-r--r--src/http/static/viz/2/goog/math/long.js (renamed from srv/src/http/static/viz/2/goog/math/long.js)0
-rw-r--r--src/http/static/viz/2/goog/math/math.js (renamed from srv/src/http/static/viz/2/goog/math/math.js)0
-rw-r--r--src/http/static/viz/2/goog/math/size.js (renamed from srv/src/http/static/viz/2/goog/math/size.js)0
-rw-r--r--src/http/static/viz/2/goog/object/object.js (renamed from srv/src/http/static/viz/2/goog/object/object.js)0
-rw-r--r--src/http/static/viz/2/goog/reflect/reflect.js (renamed from srv/src/http/static/viz/2/goog/reflect/reflect.js)0
-rw-r--r--src/http/static/viz/2/goog/string/const.js (renamed from srv/src/http/static/viz/2/goog/string/const.js)0
-rw-r--r--src/http/static/viz/2/goog/string/string.js (renamed from srv/src/http/static/viz/2/goog/string/string.js)0
-rw-r--r--src/http/static/viz/2/goog/string/stringbuffer.js (renamed from srv/src/http/static/viz/2/goog/string/stringbuffer.js)0
-rw-r--r--src/http/static/viz/2/goog/string/stringformat.js (renamed from srv/src/http/static/viz/2/goog/string/stringformat.js)0
-rw-r--r--src/http/static/viz/2/goog/string/typedstring.js (renamed from srv/src/http/static/viz/2/goog/string/typedstring.js)0
-rw-r--r--src/http/static/viz/2/goog/structs/map.js (renamed from srv/src/http/static/viz/2/goog/structs/map.js)0
-rw-r--r--src/http/static/viz/2/goog/structs/structs.js (renamed from srv/src/http/static/viz/2/goog/structs/structs.js)0
-rw-r--r--src/http/static/viz/2/goog/uri/uri.js (renamed from srv/src/http/static/viz/2/goog/uri/uri.js)0
-rw-r--r--src/http/static/viz/2/goog/uri/utils.js (renamed from srv/src/http/static/viz/2/goog/uri/utils.js)0
-rw-r--r--src/http/static/viz/2/goog/useragent/useragent.js (renamed from srv/src/http/static/viz/2/goog/useragent/useragent.js)0
-rw-r--r--src/http/static/viz/2/process/env.cljs (renamed from srv/src/http/static/viz/2/process/env.cljs)0
-rw-r--r--src/http/static/viz/2/process/env.cljs.cache.json (renamed from srv/src/http/static/viz/2/process/env.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/process/env.js (renamed from srv/src/http/static/viz/2/process/env.js)0
-rw-r--r--src/http/static/viz/2/process/env.js.map (renamed from srv/src/http/static/viz/2/process/env.js.map)0
-rw-r--r--src/http/static/viz/2/processing.js (renamed from srv/src/http/static/viz/2/processing.js)0
-rw-r--r--src/http/static/viz/2/quil/core.cljc (renamed from srv/src/http/static/viz/2/quil/core.cljc)0
-rw-r--r--src/http/static/viz/2/quil/core.cljc.cache.json (renamed from srv/src/http/static/viz/2/quil/core.cljc.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/core.js (renamed from srv/src/http/static/viz/2/quil/core.js)0
-rw-r--r--src/http/static/viz/2/quil/core.js.map (renamed from srv/src/http/static/viz/2/quil/core.js.map)0
-rw-r--r--src/http/static/viz/2/quil/middleware.cljc (renamed from srv/src/http/static/viz/2/quil/middleware.cljc)0
-rw-r--r--src/http/static/viz/2/quil/middleware.cljc.cache.json (renamed from srv/src/http/static/viz/2/quil/middleware.cljc.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/middleware.js (renamed from srv/src/http/static/viz/2/quil/middleware.js)0
-rw-r--r--src/http/static/viz/2/quil/middleware.js.map (renamed from srv/src/http/static/viz/2/quil/middleware.js.map)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/deprecated_options.cljc (renamed from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json (renamed from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/deprecated_options.js (renamed from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/deprecated_options.js.map (renamed from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/fun_mode.cljc (renamed from srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json (renamed from srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/fun_mode.js (renamed from srv/src/http/static/viz/2/quil/middlewares/fun_mode.js)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/fun_mode.js.map (renamed from srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_2d.cljc (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_2d.js (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_2d.js.map (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_3d.cljc (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_3d.js (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js)0
-rw-r--r--src/http/static/viz/2/quil/middlewares/navigation_3d.js.map (renamed from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map)0
-rw-r--r--src/http/static/viz/2/quil/sketch.cljs (renamed from srv/src/http/static/viz/2/quil/sketch.cljs)0
-rw-r--r--src/http/static/viz/2/quil/sketch.cljs.cache.json (renamed from srv/src/http/static/viz/2/quil/sketch.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/sketch.js (renamed from srv/src/http/static/viz/2/quil/sketch.js)0
-rw-r--r--src/http/static/viz/2/quil/sketch.js.map (renamed from srv/src/http/static/viz/2/quil/sketch.js.map)0
-rw-r--r--src/http/static/viz/2/quil/util.cljc (renamed from srv/src/http/static/viz/2/quil/util.cljc)0
-rw-r--r--src/http/static/viz/2/quil/util.cljc.cache.json (renamed from srv/src/http/static/viz/2/quil/util.cljc.cache.json)0
-rw-r--r--src/http/static/viz/2/quil/util.js (renamed from srv/src/http/static/viz/2/quil/util.js)0
-rw-r--r--src/http/static/viz/2/quil/util.js.map (renamed from srv/src/http/static/viz/2/quil/util.js.map)0
-rw-r--r--src/http/static/viz/2/viz/core.cljs (renamed from srv/src/http/static/viz/2/viz/core.cljs)0
-rw-r--r--src/http/static/viz/2/viz/core.cljs.cache.json (renamed from srv/src/http/static/viz/2/viz/core.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/viz/core.js (renamed from srv/src/http/static/viz/2/viz/core.js)0
-rw-r--r--src/http/static/viz/2/viz/core.js.map (renamed from srv/src/http/static/viz/2/viz/core.js.map)0
-rw-r--r--src/http/static/viz/2/viz/debug.cljs (renamed from srv/src/http/static/viz/2/viz/debug.cljs)0
-rw-r--r--src/http/static/viz/2/viz/debug.cljs.cache.json (renamed from srv/src/http/static/viz/2/viz/debug.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/viz/debug.js (renamed from srv/src/http/static/viz/2/viz/debug.js)0
-rw-r--r--src/http/static/viz/2/viz/debug.js.map (renamed from srv/src/http/static/viz/2/viz/debug.js.map)0
-rw-r--r--src/http/static/viz/2/viz/dial.cljs (renamed from srv/src/http/static/viz/2/viz/dial.cljs)0
-rw-r--r--src/http/static/viz/2/viz/dial.cljs.cache.json (renamed from srv/src/http/static/viz/2/viz/dial.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/viz/dial.js (renamed from srv/src/http/static/viz/2/viz/dial.js)0
-rw-r--r--src/http/static/viz/2/viz/dial.js.map (renamed from srv/src/http/static/viz/2/viz/dial.js.map)0
-rw-r--r--src/http/static/viz/2/viz/forest.cljs (renamed from srv/src/http/static/viz/2/viz/forest.cljs)0
-rw-r--r--src/http/static/viz/2/viz/forest.cljs.cache.json (renamed from srv/src/http/static/viz/2/viz/forest.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/viz/forest.js (renamed from srv/src/http/static/viz/2/viz/forest.js)0
-rw-r--r--src/http/static/viz/2/viz/forest.js.map (renamed from srv/src/http/static/viz/2/viz/forest.js.map)0
-rw-r--r--src/http/static/viz/2/viz/ghost.cljs (renamed from srv/src/http/static/viz/2/viz/ghost.cljs)0
-rw-r--r--src/http/static/viz/2/viz/ghost.cljs.cache.json (renamed from srv/src/http/static/viz/2/viz/ghost.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/viz/ghost.js (renamed from srv/src/http/static/viz/2/viz/ghost.js)0
-rw-r--r--src/http/static/viz/2/viz/ghost.js.map (renamed from srv/src/http/static/viz/2/viz/ghost.js.map)0
-rw-r--r--src/http/static/viz/2/viz/grid.cljs (renamed from srv/src/http/static/viz/2/viz/grid.cljs)0
-rw-r--r--src/http/static/viz/2/viz/grid.cljs.cache.json (renamed from srv/src/http/static/viz/2/viz/grid.cljs.cache.json)0
-rw-r--r--src/http/static/viz/2/viz/grid.js (renamed from srv/src/http/static/viz/2/viz/grid.js)0
-rw-r--r--src/http/static/viz/2/viz/grid.js.map (renamed from srv/src/http/static/viz/2/viz/grid.js.map)0
-rw-r--r--src/http/static/wtfpl.txt (renamed from srv/src/http/static/wtfpl.txt)0
-rw-r--r--src/http/tpl.go (renamed from srv/src/http/tpl.go)0
-rw-r--r--src/http/tpl/admin.html (renamed from srv/src/http/tpl/admin.html)0
-rw-r--r--src/http/tpl/assets.html (renamed from srv/src/http/tpl/assets.html)0
-rw-r--r--src/http/tpl/base.html (renamed from srv/src/http/tpl/base.html)0
-rw-r--r--src/http/tpl/draft-posts.html (renamed from srv/src/http/tpl/draft-posts.html)0
-rw-r--r--src/http/tpl/edit-post.html (renamed from srv/src/http/tpl/edit-post.html)0
-rw-r--r--src/http/tpl/finalize.html (renamed from srv/src/http/tpl/finalize.html)0
-rw-r--r--src/http/tpl/follow.html (renamed from srv/src/http/tpl/follow.html)0
-rw-r--r--src/http/tpl/image.html (renamed from srv/src/http/tpl/image.html)0
-rw-r--r--src/http/tpl/index.html (renamed from srv/src/http/tpl/index.html)0
-rw-r--r--src/http/tpl/post.html (renamed from srv/src/http/tpl/post.html)0
-rw-r--r--src/http/tpl/posts.html (renamed from srv/src/http/tpl/posts.html)0
-rw-r--r--src/http/tpl/redirect.html (renamed from srv/src/http/tpl/redirect.html)0
-rw-r--r--src/http/tpl/unsubscribe.html (renamed from srv/src/http/tpl/unsubscribe.html)0
-rw-r--r--src/mailinglist/mailer.go (renamed from srv/src/mailinglist/mailer.go)0
-rw-r--r--src/mailinglist/mailinglist.go (renamed from srv/src/mailinglist/mailinglist.go)0
-rw-r--r--src/mailinglist/store.go (renamed from srv/src/mailinglist/store.go)0
-rw-r--r--src/mailinglist/store_test.go (renamed from srv/src/mailinglist/store_test.go)0
-rw-r--r--src/post/asset.go (renamed from srv/src/post/asset.go)0
-rw-r--r--src/post/asset_test.go (renamed from srv/src/post/asset_test.go)0
-rw-r--r--src/post/draft_post.go (renamed from srv/src/post/draft_post.go)0
-rw-r--r--src/post/draft_post_test.go (renamed from srv/src/post/draft_post_test.go)0
-rw-r--r--src/post/post.go (renamed from srv/src/post/post.go)0
-rw-r--r--src/post/post_test.go (renamed from srv/src/post/post_test.go)0
-rw-r--r--src/post/sql.go (renamed from srv/src/post/sql.go)0
-rw-r--r--src/pow/pow.go (renamed from srv/src/pow/pow.go)0
-rw-r--r--src/pow/pow_test.go (renamed from srv/src/pow/pow_test.go)0
-rw-r--r--src/pow/store.go (renamed from srv/src/pow/store.go)0
-rw-r--r--src/pow/store_test.go (renamed from srv/src/pow/store_test.go)0
-rw-r--r--srv/default.nix59
-rw-r--r--tmp-dev-env.sh (renamed from srv-dev-env.sh)5
427 files changed, 59 insertions, 83 deletions
diff --git a/Makefile b/Makefile
index 50795e3..2f864d8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,22 +1,22 @@
CONFIG = ./config.nix
+BASH = $$(nix-build --no-out-link -A pkgs.bash)/bin/bash
entrypoint:
- nix-build -A entrypoint \
- --arg config '(import ${CONFIG})'
+ nix-build -A entrypoint --arg config '(import ${CONFIG})'
-install:
- $$(nix-build -A install --arg config '(import ${CONFIG})')
+install-systemd:
+ $$(nix-build --no-out-link -A install --arg config '(import ${CONFIG})')
test:
- $$(nix-build --no-out-link -A pkgs.bash)/bin/bash srv-dev-env.sh \
- --run "cd srv/src && go test ./... -count=1 -tags integration"
- @echo "\nTESTS PASSED!\n"
+ ${BASH} tmp-dev-env.sh \
+ --run "cd src; go test ./... -count=1 -tags integration"
-srv.dev-shell:
- $$(nix-build --no-out-link -A pkgs.bash)/bin/bash srv-dev-env.sh \
- --command "cd srv/src; return"
-
-srv.shell:
- nix-shell -A srv.shellWithBuild --arg config '(import ${CONFIG})' \
- --command 'cd srv/src; return'
+shell:
+ ${BASH} tmp-dev-env.sh \
+ --command " \
+ cd src; \
+ echo 'Loading test data...'; \
+ (cd cmd/load-test-data && go run main.go); \
+ return; \
+ "
diff --git a/default.nix b/default.nix
index 98efd74..b342fb7 100644
--- a/default.nix
+++ b/default.nix
@@ -1,6 +1,6 @@
{
- pkgsArg ? import (fetchTarball {
+ pkgs ? import (fetchTarball {
name = "nixpkgs-21-05";
url = "https://github.com/NixOS/nixpkgs/archive/7e9b0dff974c89e070da1ad85713ff3c20b0ca97.tar.gz";
sha256 = "1ckzhh24mgz6jd1xhfgx0i9mijk6xjqxwsshnvq789xsavrmsc36";
@@ -10,24 +10,60 @@
}: rec {
- pkgs = pkgsArg;
+ inherit pkgs;
- srv = pkgs.callPackage (import ./srv) {
- inherit config;
- };
+ init = pkgs.writeText "mediocre-blog-init" ''
+
+ export MEDIOCRE_BLOG_DATA_DIR="${config.dataDir}"
+
+ # mailing list
+ export MEDIOCRE_BLOG_ML_SMTP_ADDR="${config.mlSMTPAddr}"
+ export MEDIOCRE_BLOG_ML_SMTP_AUTH="${config.mlSMTPAuth}"
+ export MEDIOCRE_BLOG_ML_PUBLIC_URL="${config.publicURL}"
+
+ # pow
+ export MEDIOCRE_BLOG_POW_SECRET="${config.powSecret}"
+
+ # http
+ export MEDIOCRE_BLOG_HTTP_PUBLIC_URL="${config.publicURL}"
+ export MEDIOCRE_BLOG_HTTP_LISTEN_PROTO="${config.httpListenProto}"
+ export MEDIOCRE_BLOG_HTTP_LISTEN_ADDR="${config.httpListenAddr}"
+ export MEDIOCRE_BLOG_HTTP_AUTH_USERS='${builtins.toJSON config.httpAuthUsers}'
+ export MEDIOCRE_BLOG_HTTP_AUTH_RATELIMIT='${config.httpAuthRatelimit}'
+ '';
+ bin = pkgs.buildGoModule {
+ pname = "mediocre-blog";
+ version = "dev";
+ src = ./src;
+ vendorSha256 = "sha256:1vazrrg8rs9n8x40c9r53h9qnyxw59xkp0aq7jl15fliigk6q0cr";
+
+ subPackages = [ "cmd/mediocre-blog" ];
+
+ # disable tests
+ checkPhase = '''';
+ };
entrypoint = pkgs.writeScript "mediocre-blog-entrypoint" ''
- #!/bin/sh
+ #!${pkgs.bash}/bin/bash
set -e
+ source ${init}
mkdir -p ${config.runDir}
mkdir -p ${config.dataDir}
- exec ${srv.bin}
+ exec ${bin}/bin/mediocre-blog "$@"
'';
+ shell = pkgs.stdenv.mkDerivation {
+ name = "mediocre-blog-shell";
+ buildInputs = [ pkgs.go pkgs.sqlite ];
+ shellHook = ''
+ source ${init}
+ '';
+ };
+
service = pkgs.writeText "mediocre-blog" ''
[Unit]
Description=mediocregopher mediocre blog
diff --git a/srv/src/cfg/cfg.go b/src/cfg/cfg.go
index d87c45b..d87c45b 100644
--- a/srv/src/cfg/cfg.go
+++ b/src/cfg/cfg.go
diff --git a/srv/src/cfg/cfg_test.go b/src/cfg/cfg_test.go
index 8266c89..8266c89 100644
--- a/srv/src/cfg/cfg_test.go
+++ b/src/cfg/cfg_test.go
diff --git a/srv/src/cfg/data_dir.go b/src/cfg/data_dir.go
index 649bc15..649bc15 100644
--- a/srv/src/cfg/data_dir.go
+++ b/src/cfg/data_dir.go
diff --git a/srv/src/cfg/mediocre_blog.go b/src/cfg/mediocre_blog.go
index 98fe08c..98fe08c 100644
--- a/srv/src/cfg/mediocre_blog.go
+++ b/src/cfg/mediocre_blog.go
diff --git a/srv/src/cmd/hash-password/main.go b/src/cmd/hash-password/main.go
index 47ae1e7..47ae1e7 100644
--- a/srv/src/cmd/hash-password/main.go
+++ b/src/cmd/hash-password/main.go
diff --git a/srv/src/cmd/load-test-data/galaxy.jpg b/src/cmd/load-test-data/galaxy.jpg
index a2ee2d1..a2ee2d1 100644
--- a/srv/src/cmd/load-test-data/galaxy.jpg
+++ b/src/cmd/load-test-data/galaxy.jpg
Binary files differ
diff --git a/srv/src/cmd/load-test-data/main.go b/src/cmd/load-test-data/main.go
index 5ebee32..5ebee32 100644
--- a/srv/src/cmd/load-test-data/main.go
+++ b/src/cmd/load-test-data/main.go
diff --git a/srv/src/cmd/load-test-data/test-data.yml b/src/cmd/load-test-data/test-data.yml
index 51a08c5..51a08c5 100644
--- a/srv/src/cmd/load-test-data/test-data.yml
+++ b/src/cmd/load-test-data/test-data.yml
diff --git a/srv/src/cmd/mailinglist-cli/main.go b/src/cmd/mailinglist-cli/main.go
index c090f41..c090f41 100644
--- a/srv/src/cmd/mailinglist-cli/main.go
+++ b/src/cmd/mailinglist-cli/main.go
diff --git a/srv/src/cmd/mediocre-blog/main.go b/src/cmd/mediocre-blog/main.go
index 6b41e04..6b41e04 100644
--- a/srv/src/cmd/mediocre-blog/main.go
+++ b/src/cmd/mediocre-blog/main.go
diff --git a/srv/src/go.mod b/src/go.mod
index 4b047b9..4b047b9 100644
--- a/srv/src/go.mod
+++ b/src/go.mod
diff --git a/srv/src/go.sum b/src/go.sum
index eb27d7f..eb27d7f 100644
--- a/srv/src/go.sum
+++ b/src/go.sum
diff --git a/srv/src/http/api.go b/src/http/api.go
index 01cad50..01cad50 100644
--- a/srv/src/http/api.go
+++ b/src/http/api.go
diff --git a/srv/src/http/apiutil/apiutil.go b/src/http/apiutil/apiutil.go
index fed6fb5..fed6fb5 100644
--- a/srv/src/http/apiutil/apiutil.go
+++ b/src/http/apiutil/apiutil.go
diff --git a/srv/src/http/assets.go b/src/http/assets.go
index 2cbe7a2..2cbe7a2 100644
--- a/srv/src/http/assets.go
+++ b/src/http/assets.go
diff --git a/srv/src/http/auth.go b/src/http/auth.go
index 3ad026a..3ad026a 100644
--- a/srv/src/http/auth.go
+++ b/src/http/auth.go
diff --git a/srv/src/http/auth_test.go b/src/http/auth_test.go
index 9e2d440..9e2d440 100644
--- a/srv/src/http/auth_test.go
+++ b/src/http/auth_test.go
diff --git a/srv/src/http/csrf.go b/src/http/csrf.go
index a64e37e..a64e37e 100644
--- a/srv/src/http/csrf.go
+++ b/src/http/csrf.go
diff --git a/srv/src/http/drafts.go b/src/http/drafts.go
index cb776b0..cb776b0 100644
--- a/srv/src/http/drafts.go
+++ b/src/http/drafts.go
diff --git a/srv/src/http/feed.go b/src/http/feed.go
index 8bb01c4..8bb01c4 100644
--- a/srv/src/http/feed.go
+++ b/src/http/feed.go
diff --git a/srv/src/http/index.go b/src/http/index.go
index a392361..a392361 100644
--- a/srv/src/http/index.go
+++ b/src/http/index.go
diff --git a/srv/src/http/mailinglist.go b/src/http/mailinglist.go
index eab2f51..eab2f51 100644
--- a/srv/src/http/mailinglist.go
+++ b/src/http/mailinglist.go
diff --git a/srv/src/http/middleware.go b/src/http/middleware.go
index b82fc29..b82fc29 100644
--- a/srv/src/http/middleware.go
+++ b/src/http/middleware.go
diff --git a/srv/src/http/posts.go b/src/http/posts.go
index c3f6363..c3f6363 100644
--- a/srv/src/http/posts.go
+++ b/src/http/posts.go
diff --git a/srv/src/http/pow.go b/src/http/pow.go
index 1bd5cb5..1bd5cb5 100644
--- a/srv/src/http/pow.go
+++ b/src/http/pow.go
diff --git a/srv/src/http/static/api.js b/src/http/static/api.js
index 55c9ecd..55c9ecd 100644
--- a/srv/src/http/static/api.js
+++ b/src/http/static/api.js
diff --git a/srv/src/http/static/component-oriented-design/v1/main.go b/src/http/static/component-oriented-design/v1/main.go
index 490a516..490a516 100644
--- a/srv/src/http/static/component-oriented-design/v1/main.go
+++ b/src/http/static/component-oriented-design/v1/main.go
diff --git a/srv/src/http/static/component-oriented-design/v1/main_test.go b/src/http/static/component-oriented-design/v1/main_test.go
index 6cfd9fb..6cfd9fb 100644
--- a/srv/src/http/static/component-oriented-design/v1/main_test.go
+++ b/src/http/static/component-oriented-design/v1/main_test.go
diff --git a/srv/src/http/static/component-oriented-design/v2/main.go b/src/http/static/component-oriented-design/v2/main.go
index fb5773c..fb5773c 100644
--- a/srv/src/http/static/component-oriented-design/v2/main.go
+++ b/src/http/static/component-oriented-design/v2/main.go
diff --git a/srv/src/http/static/component-oriented-design/v3/main.go b/src/http/static/component-oriented-design/v3/main.go
index afe8bab..afe8bab 100644
--- a/srv/src/http/static/component-oriented-design/v3/main.go
+++ b/src/http/static/component-oriented-design/v3/main.go
diff --git a/srv/src/http/static/markov/Makefile b/src/http/static/markov/Makefile
index 4195baf..4195baf 100644
--- a/srv/src/http/static/markov/Makefile
+++ b/src/http/static/markov/Makefile
diff --git a/srv/src/http/static/markov/markov.nix b/src/http/static/markov/markov.nix
index 042ab8d..042ab8d 100644
--- a/srv/src/http/static/markov/markov.nix
+++ b/src/http/static/markov/markov.nix
diff --git a/srv/src/http/static/mediocre.css b/src/http/static/mediocre.css
index 26dee81..26dee81 100644
--- a/srv/src/http/static/mediocre.css
+++ b/src/http/static/mediocre.css
diff --git a/srv/src/http/static/new.css b/src/http/static/new.css
index 586a693..586a693 100644
--- a/srv/src/http/static/new.css
+++ b/src/http/static/new.css
diff --git a/srv/src/http/static/solvePow.js b/src/http/static/solvePow.js
index 900400c..900400c 100644
--- a/srv/src/http/static/solvePow.js
+++ b/src/http/static/solvePow.js
diff --git a/srv/src/http/static/trading-in-the-rain/CW.js b/src/http/static/trading-in-the-rain/CW.js
index 043c1a8..043c1a8 100644
--- a/srv/src/http/static/trading-in-the-rain/CW.js
+++ b/src/http/static/trading-in-the-rain/CW.js
diff --git a/srv/src/http/static/trading-in-the-rain/Distributor.js b/src/http/static/trading-in-the-rain/Distributor.js
index fa6e9f2..fa6e9f2 100644
--- a/srv/src/http/static/trading-in-the-rain/Distributor.js
+++ b/src/http/static/trading-in-the-rain/Distributor.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt b/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt
index 0dca6fb..0dca6fb 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt
+++ b/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
index b5a59ce..b5a59ce 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
index 2c59f8f..2c59f8f 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
index 17e9eb9..17e9eb9 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
index 000a916..000a916 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
index 957605d..957605d 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js
index 2e1278c..2e1278c 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js
index 02136f6..02136f6 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js
index 08f298f..08f298f 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
index ec361c6..ec361c6 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
index 15a6f0a..15a6f0a 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
index 33e244b..33e244b 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
index 709cb91..709cb91 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js b/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
index 8f1ea5a..8f1ea5a 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js b/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
index 84c208e..84c208e 100644
--- a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
+++ b/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
diff --git a/srv/src/http/static/trading-in-the-rain/MusicBox.js b/src/http/static/trading-in-the-rain/MusicBox.js
index b5b060e..b5b060e 100644
--- a/srv/src/http/static/trading-in-the-rain/MusicBox.js
+++ b/src/http/static/trading-in-the-rain/MusicBox.js
diff --git a/srv/src/http/static/trading-in-the-rain/RainCanvas.js b/src/http/static/trading-in-the-rain/RainCanvas.js
index 5396eb5..5396eb5 100644
--- a/srv/src/http/static/trading-in-the-rain/RainCanvas.js
+++ b/src/http/static/trading-in-the-rain/RainCanvas.js
diff --git a/srv/src/http/static/trading-in-the-rain/SeriesComposer.js b/src/http/static/trading-in-the-rain/SeriesComposer.js
index 134c64c..134c64c 100644
--- a/srv/src/http/static/trading-in-the-rain/SeriesComposer.js
+++ b/src/http/static/trading-in-the-rain/SeriesComposer.js
diff --git a/srv/src/http/static/trading-in-the-rain/key.gpg b/src/http/static/trading-in-the-rain/key.gpg
index 9b47955..9b47955 100644
--- a/srv/src/http/static/trading-in-the-rain/key.gpg
+++ b/src/http/static/trading-in-the-rain/key.gpg
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/main.js b/src/http/static/trading-in-the-rain/main.js
index 09bd26e..09bd26e 100644
--- a/srv/src/http/static/trading-in-the-rain/main.js
+++ b/src/http/static/trading-in-the-rain/main.js
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
index 0253034..0253034 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
index 57d13b4..57d13b4 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
index 9c7b075..9c7b075 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
index cba35c5..cba35c5 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
index b81c0f6..b81c0f6 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
index 533a210..533a210 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
index d913e15..d913e15 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
index 450df60..450df60 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
index ec7c636..ec7c636 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
index 765f641..765f641 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
index f8809b3..f8809b3 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
index 6896fa7..6896fa7 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
index 076bdbf..076bdbf 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
index 3e99164..3e99164 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
index 2dbf7e6..2dbf7e6 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
index 4f7f560..4f7f560 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
index fc49c93..fc49c93 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
index 4f5d506..4f5d506 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
index 22c5eee..22c5eee 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
index 81b7a71..81b7a71 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
index 54a2797..54a2797 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
index 11d7aeb..11d7aeb 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
index b2208eb..b2208eb 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
index ee21002..ee21002 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
index 91f355e..91f355e 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
index 259fbab..259fbab 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
index 89d70cc..89d70cc 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
index a20a19c..a20a19c 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
index 943963d..943963d 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
index 1b34185..1b34185 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
index 8c28d4c..8c28d4c 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
index 3dbdac3..3dbdac3 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
index f801ec7..f801ec7 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
index 0cbedf0..0cbedf0 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
index a63cfea..a63cfea 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
index abca8ba..abca8ba 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
index 1e979ff..1e979ff 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
index 146597e..146597e 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
index 7acee1b..7acee1b 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
index 7fc79fc..7fc79fc 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
index 1096963..1096963 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
index b678877..b678877 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
index 8dce81f..8dce81f 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
index 868c551..868c551 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
index 8c66803..8c66803 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
index 12d982e..12d982e 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
index 18d34ff..18d34ff 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
index fd0b75a..fd0b75a 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
index 8bf091e..8bf091e 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
index bd4f80a..bd4f80a 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
index 005c803..005c803 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
index 7d416ec..7d416ec 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
index 626105f..626105f 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
index 70aa5a9..70aa5a9 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
index ecc363c..ecc363c 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
index bce6b63..bce6b63 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
index fc989d7..fc989d7 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
index e49bdcc..e49bdcc 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
index 46c5c40..46c5c40 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
index 89ba7b6..89ba7b6 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
index c86e64d..c86e64d 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
index a269dc1..a269dc1 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
index 133d374..133d374 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
index dbd05cf..dbd05cf 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
index aa4f170..aa4f170 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
index 59a59e2..59a59e2 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
index 927e76b..927e76b 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
index e7325fa..e7325fa 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
index fc5e5cb..fc5e5cb 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
index 0b21372..0b21372 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
index 0e698dc..0e698dc 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
index e743ac1..e743ac1 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
index 276f102..276f102 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
index 1757a9f..1757a9f 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
index 132db28..132db28 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
index 8cd5b77..8cd5b77 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
index a6f73d3..a6f73d3 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
index 9818949..9818949 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
index 8e33486..8e33486 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
index de3d723..de3d723 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
index ed12e97..ed12e97 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
index 9a3bf86..9a3bf86 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
index 2e68e66..2e68e66 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
index fde4305..fde4305 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
index a1c1a53..a1c1a53 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
index f4ddd10..f4ddd10 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
index aa38dc9..aa38dc9 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
index e8dec6e..e8dec6e 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
index 5f2c0f2..5f2c0f2 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
index bc417c3..bc417c3 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
Binary files differ
diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
index 52f1027..52f1027 100644
--- a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
+++ b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
diff --git a/srv/src/http/static/utils.js b/src/http/static/utils.js
index 96a2950..96a2950 100644
--- a/srv/src/http/static/utils.js
+++ b/src/http/static/utils.js
diff --git a/srv/src/http/static/viz/1/cljs/core.cljs b/src/http/static/viz/1/cljs/core.cljs
index a87e53b..a87e53b 100644
--- a/srv/src/http/static/viz/1/cljs/core.cljs
+++ b/src/http/static/viz/1/cljs/core.cljs
diff --git a/srv/src/http/static/viz/1/cljs/core.js b/src/http/static/viz/1/cljs/core.js
index 6ec0a68..6ec0a68 100644
--- a/srv/src/http/static/viz/1/cljs/core.js
+++ b/src/http/static/viz/1/cljs/core.js
diff --git a/srv/src/http/static/viz/1/cljs/core.js.map b/src/http/static/viz/1/cljs/core.js.map
index 89c76ee..89c76ee 100644
--- a/srv/src/http/static/viz/1/cljs/core.js.map
+++ b/src/http/static/viz/1/cljs/core.js.map
diff --git a/srv/src/http/static/viz/1/cljs_deps.js b/src/http/static/viz/1/cljs_deps.js
index a6fad71..a6fad71 100644
--- a/srv/src/http/static/viz/1/cljs_deps.js
+++ b/src/http/static/viz/1/cljs_deps.js
diff --git a/srv/src/http/static/viz/1/clojure/set.cljs b/src/http/static/viz/1/clojure/set.cljs
index b9ba41f..b9ba41f 100644
--- a/srv/src/http/static/viz/1/clojure/set.cljs
+++ b/src/http/static/viz/1/clojure/set.cljs
diff --git a/srv/src/http/static/viz/1/clojure/set.cljs.cache.edn b/src/http/static/viz/1/clojure/set.cljs.cache.edn
index 2341e7d..2341e7d 100644
--- a/srv/src/http/static/viz/1/clojure/set.cljs.cache.edn
+++ b/src/http/static/viz/1/clojure/set.cljs.cache.edn
diff --git a/srv/src/http/static/viz/1/clojure/set.js b/src/http/static/viz/1/clojure/set.js
index 920701d..920701d 100644
--- a/srv/src/http/static/viz/1/clojure/set.js
+++ b/src/http/static/viz/1/clojure/set.js
diff --git a/srv/src/http/static/viz/1/clojure/set.js.map b/src/http/static/viz/1/clojure/set.js.map
index a42360e..a42360e 100644
--- a/srv/src/http/static/viz/1/clojure/set.js.map
+++ b/src/http/static/viz/1/clojure/set.js.map
diff --git a/srv/src/http/static/viz/1/clojure/string.cljs b/src/http/static/viz/1/clojure/string.cljs
index 4cf5ede..4cf5ede 100644
--- a/srv/src/http/static/viz/1/clojure/string.cljs
+++ b/src/http/static/viz/1/clojure/string.cljs
diff --git a/srv/src/http/static/viz/1/clojure/string.cljs.cache.edn b/src/http/static/viz/1/clojure/string.cljs.cache.edn
index e4ac146..e4ac146 100644
--- a/srv/src/http/static/viz/1/clojure/string.cljs.cache.edn
+++ b/src/http/static/viz/1/clojure/string.cljs.cache.edn
diff --git a/srv/src/http/static/viz/1/clojure/string.js b/src/http/static/viz/1/clojure/string.js
index a5f3d99..a5f3d99 100644
--- a/srv/src/http/static/viz/1/clojure/string.js
+++ b/src/http/static/viz/1/clojure/string.js
diff --git a/srv/src/http/static/viz/1/clojure/string.js.map b/src/http/static/viz/1/clojure/string.js.map
index 41f4864..41f4864 100644
--- a/srv/src/http/static/viz/1/clojure/string.js.map
+++ b/src/http/static/viz/1/clojure/string.js.map
diff --git a/srv/src/http/static/viz/1/goog/array/array.js b/src/http/static/viz/1/goog/array/array.js
index 4fdfcaf..4fdfcaf 100644
--- a/srv/src/http/static/viz/1/goog/array/array.js
+++ b/src/http/static/viz/1/goog/array/array.js
diff --git a/srv/src/http/static/viz/1/goog/asserts/asserts.js b/src/http/static/viz/1/goog/asserts/asserts.js
index 1f4b653..1f4b653 100644
--- a/srv/src/http/static/viz/1/goog/asserts/asserts.js
+++ b/src/http/static/viz/1/goog/asserts/asserts.js
diff --git a/srv/src/http/static/viz/1/goog/base.js b/src/http/static/viz/1/goog/base.js
index 97a9947..97a9947 100644
--- a/srv/src/http/static/viz/1/goog/base.js
+++ b/src/http/static/viz/1/goog/base.js
diff --git a/srv/src/http/static/viz/1/goog/debug/entrypointregistry.js b/src/http/static/viz/1/goog/debug/entrypointregistry.js
index 336e146..336e146 100644
--- a/srv/src/http/static/viz/1/goog/debug/entrypointregistry.js
+++ b/src/http/static/viz/1/goog/debug/entrypointregistry.js
diff --git a/srv/src/http/static/viz/1/goog/debug/error.js b/src/http/static/viz/1/goog/debug/error.js
index 5f1bd3e..5f1bd3e 100644
--- a/srv/src/http/static/viz/1/goog/debug/error.js
+++ b/src/http/static/viz/1/goog/debug/error.js
diff --git a/srv/src/http/static/viz/1/goog/deps.js b/src/http/static/viz/1/goog/deps.js
index 80936e8..80936e8 100644
--- a/srv/src/http/static/viz/1/goog/deps.js
+++ b/src/http/static/viz/1/goog/deps.js
diff --git a/srv/src/http/static/viz/1/goog/disposable/disposable.js b/src/http/static/viz/1/goog/disposable/disposable.js
index ca8d088..ca8d088 100644
--- a/srv/src/http/static/viz/1/goog/disposable/disposable.js
+++ b/src/http/static/viz/1/goog/disposable/disposable.js
diff --git a/srv/src/http/static/viz/1/goog/disposable/idisposable.js b/src/http/static/viz/1/goog/disposable/idisposable.js
index 917d17e..917d17e 100644
--- a/srv/src/http/static/viz/1/goog/disposable/idisposable.js
+++ b/src/http/static/viz/1/goog/disposable/idisposable.js
diff --git a/srv/src/http/static/viz/1/goog/dom/browserfeature.js b/src/http/static/viz/1/goog/dom/browserfeature.js
index 1172166..1172166 100644
--- a/srv/src/http/static/viz/1/goog/dom/browserfeature.js
+++ b/src/http/static/viz/1/goog/dom/browserfeature.js
diff --git a/srv/src/http/static/viz/1/goog/dom/dom.js b/src/http/static/viz/1/goog/dom/dom.js
index 4d3cdf9..4d3cdf9 100644
--- a/srv/src/http/static/viz/1/goog/dom/dom.js
+++ b/src/http/static/viz/1/goog/dom/dom.js
diff --git a/srv/src/http/static/viz/1/goog/dom/nodetype.js b/src/http/static/viz/1/goog/dom/nodetype.js
index cccb470..cccb470 100644
--- a/srv/src/http/static/viz/1/goog/dom/nodetype.js
+++ b/src/http/static/viz/1/goog/dom/nodetype.js
diff --git a/srv/src/http/static/viz/1/goog/dom/safe.js b/src/http/static/viz/1/goog/dom/safe.js
index 012ad22..012ad22 100644
--- a/srv/src/http/static/viz/1/goog/dom/safe.js
+++ b/src/http/static/viz/1/goog/dom/safe.js
diff --git a/srv/src/http/static/viz/1/goog/dom/tagname.js b/src/http/static/viz/1/goog/dom/tagname.js
index ad44d85..ad44d85 100644
--- a/srv/src/http/static/viz/1/goog/dom/tagname.js
+++ b/src/http/static/viz/1/goog/dom/tagname.js
diff --git a/srv/src/http/static/viz/1/goog/dom/tags.js b/src/http/static/viz/1/goog/dom/tags.js
index 7c12938..7c12938 100644
--- a/srv/src/http/static/viz/1/goog/dom/tags.js
+++ b/src/http/static/viz/1/goog/dom/tags.js
diff --git a/srv/src/http/static/viz/1/goog/events/browserevent.js b/src/http/static/viz/1/goog/events/browserevent.js
index 14894e1..14894e1 100644
--- a/srv/src/http/static/viz/1/goog/events/browserevent.js
+++ b/src/http/static/viz/1/goog/events/browserevent.js
diff --git a/srv/src/http/static/viz/1/goog/events/browserfeature.js b/src/http/static/viz/1/goog/events/browserfeature.js
index 4cfa8e3..4cfa8e3 100644
--- a/srv/src/http/static/viz/1/goog/events/browserfeature.js
+++ b/src/http/static/viz/1/goog/events/browserfeature.js
diff --git a/srv/src/http/static/viz/1/goog/events/event.js b/src/http/static/viz/1/goog/events/event.js
index 89db91e..89db91e 100644
--- a/srv/src/http/static/viz/1/goog/events/event.js
+++ b/src/http/static/viz/1/goog/events/event.js
diff --git a/srv/src/http/static/viz/1/goog/events/eventid.js b/src/http/static/viz/1/goog/events/eventid.js
index 9ff9e40..9ff9e40 100644
--- a/srv/src/http/static/viz/1/goog/events/eventid.js
+++ b/src/http/static/viz/1/goog/events/eventid.js
diff --git a/srv/src/http/static/viz/1/goog/events/events.js b/src/http/static/viz/1/goog/events/events.js
index 6a0acf7..6a0acf7 100644
--- a/srv/src/http/static/viz/1/goog/events/events.js
+++ b/src/http/static/viz/1/goog/events/events.js
diff --git a/srv/src/http/static/viz/1/goog/events/eventtype.js b/src/http/static/viz/1/goog/events/eventtype.js
index 161e88a..161e88a 100644
--- a/srv/src/http/static/viz/1/goog/events/eventtype.js
+++ b/src/http/static/viz/1/goog/events/eventtype.js
diff --git a/srv/src/http/static/viz/1/goog/events/listenable.js b/src/http/static/viz/1/goog/events/listenable.js
index 648d9fc..648d9fc 100644
--- a/srv/src/http/static/viz/1/goog/events/listenable.js
+++ b/src/http/static/viz/1/goog/events/listenable.js
diff --git a/srv/src/http/static/viz/1/goog/events/listener.js b/src/http/static/viz/1/goog/events/listener.js
index 60c7370..60c7370 100644
--- a/srv/src/http/static/viz/1/goog/events/listener.js
+++ b/src/http/static/viz/1/goog/events/listener.js
diff --git a/srv/src/http/static/viz/1/goog/events/listenermap.js b/src/http/static/viz/1/goog/events/listenermap.js
index 40cb848..40cb848 100644
--- a/srv/src/http/static/viz/1/goog/events/listenermap.js
+++ b/src/http/static/viz/1/goog/events/listenermap.js
diff --git a/srv/src/http/static/viz/1/goog/fs/url.js b/src/http/static/viz/1/goog/fs/url.js
index 90d8349..90d8349 100644
--- a/srv/src/http/static/viz/1/goog/fs/url.js
+++ b/src/http/static/viz/1/goog/fs/url.js
diff --git a/srv/src/http/static/viz/1/goog/html/safehtml.js b/src/http/static/viz/1/goog/html/safehtml.js
index 704d826..704d826 100644
--- a/srv/src/http/static/viz/1/goog/html/safehtml.js
+++ b/src/http/static/viz/1/goog/html/safehtml.js
diff --git a/srv/src/http/static/viz/1/goog/html/safescript.js b/src/http/static/viz/1/goog/html/safescript.js
index 26f58f6..26f58f6 100644
--- a/srv/src/http/static/viz/1/goog/html/safescript.js
+++ b/src/http/static/viz/1/goog/html/safescript.js
diff --git a/srv/src/http/static/viz/1/goog/html/safestyle.js b/src/http/static/viz/1/goog/html/safestyle.js
index a1f87cb..a1f87cb 100644
--- a/srv/src/http/static/viz/1/goog/html/safestyle.js
+++ b/src/http/static/viz/1/goog/html/safestyle.js
diff --git a/srv/src/http/static/viz/1/goog/html/safestylesheet.js b/src/http/static/viz/1/goog/html/safestylesheet.js
index 65a81b0..65a81b0 100644
--- a/srv/src/http/static/viz/1/goog/html/safestylesheet.js
+++ b/src/http/static/viz/1/goog/html/safestylesheet.js
diff --git a/srv/src/http/static/viz/1/goog/html/safeurl.js b/src/http/static/viz/1/goog/html/safeurl.js
index 640a070..640a070 100644
--- a/srv/src/http/static/viz/1/goog/html/safeurl.js
+++ b/src/http/static/viz/1/goog/html/safeurl.js
diff --git a/srv/src/http/static/viz/1/goog/html/trustedresourceurl.js b/src/http/static/viz/1/goog/html/trustedresourceurl.js
index 6e3c0df..6e3c0df 100644
--- a/srv/src/http/static/viz/1/goog/html/trustedresourceurl.js
+++ b/src/http/static/viz/1/goog/html/trustedresourceurl.js
diff --git a/srv/src/http/static/viz/1/goog/html/uncheckedconversions.js b/src/http/static/viz/1/goog/html/uncheckedconversions.js
index 2cef322..2cef322 100644
--- a/srv/src/http/static/viz/1/goog/html/uncheckedconversions.js
+++ b/src/http/static/viz/1/goog/html/uncheckedconversions.js
diff --git a/srv/src/http/static/viz/1/goog/i18n/bidi.js b/src/http/static/viz/1/goog/i18n/bidi.js
index 695cfda..695cfda 100644
--- a/srv/src/http/static/viz/1/goog/i18n/bidi.js
+++ b/src/http/static/viz/1/goog/i18n/bidi.js
diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/browser.js b/src/http/static/viz/1/goog/labs/useragent/browser.js
index a7dd638..a7dd638 100644
--- a/srv/src/http/static/viz/1/goog/labs/useragent/browser.js
+++ b/src/http/static/viz/1/goog/labs/useragent/browser.js
diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/engine.js b/src/http/static/viz/1/goog/labs/useragent/engine.js
index 31c5667..31c5667 100644
--- a/srv/src/http/static/viz/1/goog/labs/useragent/engine.js
+++ b/src/http/static/viz/1/goog/labs/useragent/engine.js
diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/platform.js b/src/http/static/viz/1/goog/labs/useragent/platform.js
index 9c72402..9c72402 100644
--- a/srv/src/http/static/viz/1/goog/labs/useragent/platform.js
+++ b/src/http/static/viz/1/goog/labs/useragent/platform.js
diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/util.js b/src/http/static/viz/1/goog/labs/useragent/util.js
index caa3407..caa3407 100644
--- a/srv/src/http/static/viz/1/goog/labs/useragent/util.js
+++ b/src/http/static/viz/1/goog/labs/useragent/util.js
diff --git a/srv/src/http/static/viz/1/goog/math/coordinate.js b/src/http/static/viz/1/goog/math/coordinate.js
index a08b9cb..a08b9cb 100644
--- a/srv/src/http/static/viz/1/goog/math/coordinate.js
+++ b/src/http/static/viz/1/goog/math/coordinate.js
diff --git a/srv/src/http/static/viz/1/goog/math/integer.js b/src/http/static/viz/1/goog/math/integer.js
index 11b6a95..11b6a95 100644
--- a/srv/src/http/static/viz/1/goog/math/integer.js
+++ b/src/http/static/viz/1/goog/math/integer.js
diff --git a/srv/src/http/static/viz/1/goog/math/long.js b/src/http/static/viz/1/goog/math/long.js
index a43ea3f..a43ea3f 100644
--- a/srv/src/http/static/viz/1/goog/math/long.js
+++ b/src/http/static/viz/1/goog/math/long.js
diff --git a/srv/src/http/static/viz/1/goog/math/math.js b/src/http/static/viz/1/goog/math/math.js
index 95e5fb5..95e5fb5 100644
--- a/srv/src/http/static/viz/1/goog/math/math.js
+++ b/src/http/static/viz/1/goog/math/math.js
diff --git a/srv/src/http/static/viz/1/goog/math/size.js b/src/http/static/viz/1/goog/math/size.js
index f5c379b..f5c379b 100644
--- a/srv/src/http/static/viz/1/goog/math/size.js
+++ b/src/http/static/viz/1/goog/math/size.js
diff --git a/srv/src/http/static/viz/1/goog/object/object.js b/src/http/static/viz/1/goog/object/object.js
index d15c88c..d15c88c 100644
--- a/srv/src/http/static/viz/1/goog/object/object.js
+++ b/src/http/static/viz/1/goog/object/object.js
diff --git a/srv/src/http/static/viz/1/goog/reflect/reflect.js b/src/http/static/viz/1/goog/reflect/reflect.js
index 5a88b45..5a88b45 100644
--- a/srv/src/http/static/viz/1/goog/reflect/reflect.js
+++ b/src/http/static/viz/1/goog/reflect/reflect.js
diff --git a/srv/src/http/static/viz/1/goog/string/const.js b/src/http/static/viz/1/goog/string/const.js
index 7f919be..7f919be 100644
--- a/srv/src/http/static/viz/1/goog/string/const.js
+++ b/src/http/static/viz/1/goog/string/const.js
diff --git a/srv/src/http/static/viz/1/goog/string/string.js b/src/http/static/viz/1/goog/string/string.js
index a2f7003..a2f7003 100644
--- a/srv/src/http/static/viz/1/goog/string/string.js
+++ b/src/http/static/viz/1/goog/string/string.js
diff --git a/srv/src/http/static/viz/1/goog/string/stringbuffer.js b/src/http/static/viz/1/goog/string/stringbuffer.js
index 478b08b..478b08b 100644
--- a/srv/src/http/static/viz/1/goog/string/stringbuffer.js
+++ b/src/http/static/viz/1/goog/string/stringbuffer.js
diff --git a/srv/src/http/static/viz/1/goog/string/stringformat.js b/src/http/static/viz/1/goog/string/stringformat.js
index 58d7af9..58d7af9 100644
--- a/srv/src/http/static/viz/1/goog/string/stringformat.js
+++ b/src/http/static/viz/1/goog/string/stringformat.js
diff --git a/srv/src/http/static/viz/1/goog/string/typedstring.js b/src/http/static/viz/1/goog/string/typedstring.js
index 075115f..075115f 100644
--- a/srv/src/http/static/viz/1/goog/string/typedstring.js
+++ b/src/http/static/viz/1/goog/string/typedstring.js
diff --git a/srv/src/http/static/viz/1/goog/useragent/useragent.js b/src/http/static/viz/1/goog/useragent/useragent.js
index 1ab49c4..1ab49c4 100644
--- a/srv/src/http/static/viz/1/goog/useragent/useragent.js
+++ b/src/http/static/viz/1/goog/useragent/useragent.js
diff --git a/srv/src/http/static/viz/1/processing.js b/src/http/static/viz/1/processing.js
index 7cfb7a8..7cfb7a8 100644
--- a/srv/src/http/static/viz/1/processing.js
+++ b/src/http/static/viz/1/processing.js
diff --git a/srv/src/http/static/viz/1/quil/core.cljc b/src/http/static/viz/1/quil/core.cljc
index dcdaa94..dcdaa94 100644
--- a/srv/src/http/static/viz/1/quil/core.cljc
+++ b/src/http/static/viz/1/quil/core.cljc
diff --git a/srv/src/http/static/viz/1/quil/core.cljc.cache.edn b/src/http/static/viz/1/quil/core.cljc.cache.edn
index 8904416..8904416 100644
--- a/srv/src/http/static/viz/1/quil/core.cljc.cache.edn
+++ b/src/http/static/viz/1/quil/core.cljc.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/core.js b/src/http/static/viz/1/quil/core.js
index 87f3457..87f3457 100644
--- a/srv/src/http/static/viz/1/quil/core.js
+++ b/src/http/static/viz/1/quil/core.js
diff --git a/srv/src/http/static/viz/1/quil/core.js.map b/src/http/static/viz/1/quil/core.js.map
index 42db417..42db417 100644
--- a/srv/src/http/static/viz/1/quil/core.js.map
+++ b/src/http/static/viz/1/quil/core.js.map
diff --git a/srv/src/http/static/viz/1/quil/middleware.cljc b/src/http/static/viz/1/quil/middleware.cljc
index a8f5672..a8f5672 100644
--- a/srv/src/http/static/viz/1/quil/middleware.cljc
+++ b/src/http/static/viz/1/quil/middleware.cljc
diff --git a/srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn b/src/http/static/viz/1/quil/middleware.cljc.cache.edn
index 1fbb263..1fbb263 100644
--- a/srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn
+++ b/src/http/static/viz/1/quil/middleware.cljc.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/middleware.js b/src/http/static/viz/1/quil/middleware.js
index d807b5a..d807b5a 100644
--- a/srv/src/http/static/viz/1/quil/middleware.js
+++ b/src/http/static/viz/1/quil/middleware.js
diff --git a/srv/src/http/static/viz/1/quil/middleware.js.map b/src/http/static/viz/1/quil/middleware.js.map
index ea10d2f..ea10d2f 100644
--- a/srv/src/http/static/viz/1/quil/middleware.js.map
+++ b/src/http/static/viz/1/quil/middleware.js.map
diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc b/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc
index 6ed40d2..6ed40d2 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc
+++ b/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc
diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
index 0af4bd9..0af4bd9 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
+++ b/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js b/src/http/static/viz/1/quil/middlewares/deprecated_options.js
index 2c1658d..2c1658d 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js
+++ b/src/http/static/viz/1/quil/middlewares/deprecated_options.js
diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map b/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map
index e093f8c..e093f8c 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map
+++ b/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map
diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc b/src/http/static/viz/1/quil/middlewares/fun_mode.cljc
index 14330c7..14330c7 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc
+++ b/src/http/static/viz/1/quil/middlewares/fun_mode.cljc
diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
index bde2282..bde2282 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
+++ b/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js b/src/http/static/viz/1/quil/middlewares/fun_mode.js
index d6db370..d6db370 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js
+++ b/src/http/static/viz/1/quil/middlewares/fun_mode.js
diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map b/src/http/static/viz/1/quil/middlewares/fun_mode.js.map
index a4854ee..a4854ee 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map
+++ b/src/http/static/viz/1/quil/middlewares/fun_mode.js.map
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc b/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc
index cd03710..cd03710 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc
+++ b/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
index 865d7b4..865d7b4 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
+++ b/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js b/src/http/static/viz/1/quil/middlewares/navigation_2d.js
index 5659fe1..5659fe1 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js
+++ b/src/http/static/viz/1/quil/middlewares/navigation_2d.js
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map b/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map
index 12c44fc..12c44fc 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map
+++ b/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc b/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc
index 3471cfd..3471cfd 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc
+++ b/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
index d0089cf..d0089cf 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
+++ b/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js b/src/http/static/viz/1/quil/middlewares/navigation_3d.js
index 19eb935..19eb935 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js
+++ b/src/http/static/viz/1/quil/middlewares/navigation_3d.js
diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map b/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map
index 0ce580a..0ce580a 100644
--- a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map
+++ b/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map
diff --git a/srv/src/http/static/viz/1/quil/sketch.cljs b/src/http/static/viz/1/quil/sketch.cljs
index 4e48038..4e48038 100644
--- a/srv/src/http/static/viz/1/quil/sketch.cljs
+++ b/src/http/static/viz/1/quil/sketch.cljs
diff --git a/srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn b/src/http/static/viz/1/quil/sketch.cljs.cache.edn
index 4911e31..4911e31 100644
--- a/srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn
+++ b/src/http/static/viz/1/quil/sketch.cljs.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/sketch.js b/src/http/static/viz/1/quil/sketch.js
index 1ed6d8a..1ed6d8a 100644
--- a/srv/src/http/static/viz/1/quil/sketch.js
+++ b/src/http/static/viz/1/quil/sketch.js
diff --git a/srv/src/http/static/viz/1/quil/sketch.js.map b/src/http/static/viz/1/quil/sketch.js.map
index 3af57f2..3af57f2 100644
--- a/srv/src/http/static/viz/1/quil/sketch.js.map
+++ b/src/http/static/viz/1/quil/sketch.js.map
diff --git a/srv/src/http/static/viz/1/quil/util.cljc b/src/http/static/viz/1/quil/util.cljc
index 3cd0739..3cd0739 100644
--- a/srv/src/http/static/viz/1/quil/util.cljc
+++ b/src/http/static/viz/1/quil/util.cljc
diff --git a/srv/src/http/static/viz/1/quil/util.cljc.cache.edn b/src/http/static/viz/1/quil/util.cljc.cache.edn
index 0eb6abe..0eb6abe 100644
--- a/srv/src/http/static/viz/1/quil/util.cljc.cache.edn
+++ b/src/http/static/viz/1/quil/util.cljc.cache.edn
diff --git a/srv/src/http/static/viz/1/quil/util.js b/src/http/static/viz/1/quil/util.js
index 0f241ea..0f241ea 100644
--- a/srv/src/http/static/viz/1/quil/util.js
+++ b/src/http/static/viz/1/quil/util.js
diff --git a/srv/src/http/static/viz/1/quil/util.js.map b/src/http/static/viz/1/quil/util.js.map
index 1b314df..1b314df 100644
--- a/srv/src/http/static/viz/1/quil/util.js.map
+++ b/src/http/static/viz/1/quil/util.js.map
diff --git a/srv/src/http/static/viz/1/viz/core.cljs b/src/http/static/viz/1/viz/core.cljs
index 913cab4..913cab4 100644
--- a/srv/src/http/static/viz/1/viz/core.cljs
+++ b/src/http/static/viz/1/viz/core.cljs
diff --git a/srv/src/http/static/viz/1/viz/core.cljs.cache.edn b/src/http/static/viz/1/viz/core.cljs.cache.edn
index 2156790..2156790 100644
--- a/srv/src/http/static/viz/1/viz/core.cljs.cache.edn
+++ b/src/http/static/viz/1/viz/core.cljs.cache.edn
diff --git a/srv/src/http/static/viz/1/viz/core.js b/src/http/static/viz/1/viz/core.js
index ddc336c..ddc336c 100644
--- a/srv/src/http/static/viz/1/viz/core.js
+++ b/src/http/static/viz/1/viz/core.js
diff --git a/srv/src/http/static/viz/1/viz/core.js.map b/src/http/static/viz/1/viz/core.js.map
index 3f7a997..3f7a997 100644
--- a/srv/src/http/static/viz/1/viz/core.js.map
+++ b/src/http/static/viz/1/viz/core.js.map
diff --git a/srv/src/http/static/viz/1/viz/forest.cljs b/src/http/static/viz/1/viz/forest.cljs
index 9810089..9810089 100644
--- a/srv/src/http/static/viz/1/viz/forest.cljs
+++ b/src/http/static/viz/1/viz/forest.cljs
diff --git a/srv/src/http/static/viz/1/viz/forest.cljs.cache.edn b/src/http/static/viz/1/viz/forest.cljs.cache.edn
index 61b1a40..61b1a40 100644
--- a/srv/src/http/static/viz/1/viz/forest.cljs.cache.edn
+++ b/src/http/static/viz/1/viz/forest.cljs.cache.edn
diff --git a/srv/src/http/static/viz/1/viz/forest.js b/src/http/static/viz/1/viz/forest.js
index 0eb043a..0eb043a 100644
--- a/srv/src/http/static/viz/1/viz/forest.js
+++ b/src/http/static/viz/1/viz/forest.js
diff --git a/srv/src/http/static/viz/1/viz/forest.js.map b/src/http/static/viz/1/viz/forest.js.map
index e531b5e..e531b5e 100644
--- a/srv/src/http/static/viz/1/viz/forest.js.map
+++ b/src/http/static/viz/1/viz/forest.js.map
diff --git a/srv/src/http/static/viz/1/viz/ghost.cljs b/src/http/static/viz/1/viz/ghost.cljs
index ca6f86c..ca6f86c 100644
--- a/srv/src/http/static/viz/1/viz/ghost.cljs
+++ b/src/http/static/viz/1/viz/ghost.cljs
diff --git a/srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn b/src/http/static/viz/1/viz/ghost.cljs.cache.edn
index 5762f9a..5762f9a 100644
--- a/srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn
+++ b/src/http/static/viz/1/viz/ghost.cljs.cache.edn
diff --git a/srv/src/http/static/viz/1/viz/ghost.js b/src/http/static/viz/1/viz/ghost.js
index 50b8157..50b8157 100644
--- a/srv/src/http/static/viz/1/viz/ghost.js
+++ b/src/http/static/viz/1/viz/ghost.js
diff --git a/srv/src/http/static/viz/1/viz/ghost.js.map b/src/http/static/viz/1/viz/ghost.js.map
index fa62e77..fa62e77 100644
--- a/srv/src/http/static/viz/1/viz/ghost.js.map
+++ b/src/http/static/viz/1/viz/ghost.js.map
diff --git a/srv/src/http/static/viz/1/viz/grid.cljs b/src/http/static/viz/1/viz/grid.cljs
index 6e31443..6e31443 100644
--- a/srv/src/http/static/viz/1/viz/grid.cljs
+++ b/src/http/static/viz/1/viz/grid.cljs
diff --git a/srv/src/http/static/viz/1/viz/grid.cljs.cache.edn b/src/http/static/viz/1/viz/grid.cljs.cache.edn
index 60052ff..60052ff 100644
--- a/srv/src/http/static/viz/1/viz/grid.cljs.cache.edn
+++ b/src/http/static/viz/1/viz/grid.cljs.cache.edn
diff --git a/srv/src/http/static/viz/1/viz/grid.js b/src/http/static/viz/1/viz/grid.js
index 7bf4971..7bf4971 100644
--- a/srv/src/http/static/viz/1/viz/grid.js
+++ b/src/http/static/viz/1/viz/grid.js
diff --git a/srv/src/http/static/viz/1/viz/grid.js.map b/src/http/static/viz/1/viz/grid.js.map
index 46886eb..46886eb 100644
--- a/srv/src/http/static/viz/1/viz/grid.js.map
+++ b/src/http/static/viz/1/viz/grid.js.map
diff --git a/srv/src/http/static/viz/2/cljs/core.cljs b/src/http/static/viz/2/cljs/core.cljs
index c7f6d9a..c7f6d9a 100644
--- a/srv/src/http/static/viz/2/cljs/core.cljs
+++ b/src/http/static/viz/2/cljs/core.cljs
diff --git a/srv/src/http/static/viz/2/cljs/core.js b/src/http/static/viz/2/cljs/core.js
index 31ad4ae..31ad4ae 100644
--- a/srv/src/http/static/viz/2/cljs/core.js
+++ b/src/http/static/viz/2/cljs/core.js
diff --git a/srv/src/http/static/viz/2/cljs/core.js.map b/src/http/static/viz/2/cljs/core.js.map
index f7ea5cc..f7ea5cc 100644
--- a/srv/src/http/static/viz/2/cljs/core.js.map
+++ b/src/http/static/viz/2/cljs/core.js.map
diff --git a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json b/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json
index e98e6e7..e98e6e7 100644
--- a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json
+++ b/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js b/src/http/static/viz/2/cljs/user/debug9D984AE.js
index 6e5f3f2..6e5f3f2 100644
--- a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js
+++ b/src/http/static/viz/2/cljs/user/debug9D984AE.js
diff --git a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map b/src/http/static/viz/2/cljs/user/debug9D984AE.js.map
index 029817d..029817d 100644
--- a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map
+++ b/src/http/static/viz/2/cljs/user/debug9D984AE.js.map
diff --git a/srv/src/http/static/viz/2/cljs_deps.js b/src/http/static/viz/2/cljs_deps.js
index 95a5ac8..95a5ac8 100644
--- a/srv/src/http/static/viz/2/cljs_deps.js
+++ b/src/http/static/viz/2/cljs_deps.js
diff --git a/srv/src/http/static/viz/2/cljsc_opts.edn b/src/http/static/viz/2/cljsc_opts.edn
index 9ab2cfa..9ab2cfa 100644
--- a/srv/src/http/static/viz/2/cljsc_opts.edn
+++ b/src/http/static/viz/2/cljsc_opts.edn
diff --git a/srv/src/http/static/viz/2/clojure/set.cljs b/src/http/static/viz/2/clojure/set.cljs
index b9ba41f..b9ba41f 100644
--- a/srv/src/http/static/viz/2/clojure/set.cljs
+++ b/src/http/static/viz/2/clojure/set.cljs
diff --git a/srv/src/http/static/viz/2/clojure/set.cljs.cache.json b/src/http/static/viz/2/clojure/set.cljs.cache.json
index f2332c0..f2332c0 100644
--- a/srv/src/http/static/viz/2/clojure/set.cljs.cache.json
+++ b/src/http/static/viz/2/clojure/set.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/clojure/set.js b/src/http/static/viz/2/clojure/set.js
index 3be3f0b..3be3f0b 100644
--- a/srv/src/http/static/viz/2/clojure/set.js
+++ b/src/http/static/viz/2/clojure/set.js
diff --git a/srv/src/http/static/viz/2/clojure/set.js.map b/src/http/static/viz/2/clojure/set.js.map
index c385760..c385760 100644
--- a/srv/src/http/static/viz/2/clojure/set.js.map
+++ b/src/http/static/viz/2/clojure/set.js.map
diff --git a/srv/src/http/static/viz/2/clojure/string.cljs b/src/http/static/viz/2/clojure/string.cljs
index 26f63f2..26f63f2 100644
--- a/srv/src/http/static/viz/2/clojure/string.cljs
+++ b/src/http/static/viz/2/clojure/string.cljs
diff --git a/srv/src/http/static/viz/2/clojure/string.cljs.cache.json b/src/http/static/viz/2/clojure/string.cljs.cache.json
index 534c7f8..534c7f8 100644
--- a/srv/src/http/static/viz/2/clojure/string.cljs.cache.json
+++ b/src/http/static/viz/2/clojure/string.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/clojure/string.js b/src/http/static/viz/2/clojure/string.js
index acd3456..acd3456 100644
--- a/srv/src/http/static/viz/2/clojure/string.js
+++ b/src/http/static/viz/2/clojure/string.js
diff --git a/srv/src/http/static/viz/2/clojure/string.js.map b/src/http/static/viz/2/clojure/string.js.map
index 2270a89..2270a89 100644
--- a/srv/src/http/static/viz/2/clojure/string.js.map
+++ b/src/http/static/viz/2/clojure/string.js.map
diff --git a/srv/src/http/static/viz/2/goog/array/array.js b/src/http/static/viz/2/goog/array/array.js
index 47e0dbb..47e0dbb 100644
--- a/srv/src/http/static/viz/2/goog/array/array.js
+++ b/src/http/static/viz/2/goog/array/array.js
diff --git a/srv/src/http/static/viz/2/goog/asserts/asserts.js b/src/http/static/viz/2/goog/asserts/asserts.js
index 1f4b653..1f4b653 100644
--- a/srv/src/http/static/viz/2/goog/asserts/asserts.js
+++ b/src/http/static/viz/2/goog/asserts/asserts.js
diff --git a/srv/src/http/static/viz/2/goog/base.js b/src/http/static/viz/2/goog/base.js
index 46b2f09..46b2f09 100644
--- a/srv/src/http/static/viz/2/goog/base.js
+++ b/src/http/static/viz/2/goog/base.js
diff --git a/srv/src/http/static/viz/2/goog/debug/entrypointregistry.js b/src/http/static/viz/2/goog/debug/entrypointregistry.js
index 336e146..336e146 100644
--- a/srv/src/http/static/viz/2/goog/debug/entrypointregistry.js
+++ b/src/http/static/viz/2/goog/debug/entrypointregistry.js
diff --git a/srv/src/http/static/viz/2/goog/debug/error.js b/src/http/static/viz/2/goog/debug/error.js
index 5f1bd3e..5f1bd3e 100644
--- a/srv/src/http/static/viz/2/goog/debug/error.js
+++ b/src/http/static/viz/2/goog/debug/error.js
diff --git a/srv/src/http/static/viz/2/goog/deps.js b/src/http/static/viz/2/goog/deps.js
index 5cd5066..5cd5066 100644
--- a/srv/src/http/static/viz/2/goog/deps.js
+++ b/src/http/static/viz/2/goog/deps.js
diff --git a/srv/src/http/static/viz/2/goog/disposable/disposable.js b/src/http/static/viz/2/goog/disposable/disposable.js
index a86f549..a86f549 100644
--- a/srv/src/http/static/viz/2/goog/disposable/disposable.js
+++ b/src/http/static/viz/2/goog/disposable/disposable.js
diff --git a/srv/src/http/static/viz/2/goog/disposable/idisposable.js b/src/http/static/viz/2/goog/disposable/idisposable.js
index b539eb6..b539eb6 100644
--- a/srv/src/http/static/viz/2/goog/disposable/idisposable.js
+++ b/src/http/static/viz/2/goog/disposable/idisposable.js
diff --git a/srv/src/http/static/viz/2/goog/dom/asserts.js b/src/http/static/viz/2/goog/dom/asserts.js
index a8f93ba..a8f93ba 100644
--- a/srv/src/http/static/viz/2/goog/dom/asserts.js
+++ b/src/http/static/viz/2/goog/dom/asserts.js
diff --git a/srv/src/http/static/viz/2/goog/dom/browserfeature.js b/src/http/static/viz/2/goog/dom/browserfeature.js
index 1172166..1172166 100644
--- a/srv/src/http/static/viz/2/goog/dom/browserfeature.js
+++ b/src/http/static/viz/2/goog/dom/browserfeature.js
diff --git a/srv/src/http/static/viz/2/goog/dom/dom.js b/src/http/static/viz/2/goog/dom/dom.js
index 919a0b6..919a0b6 100644
--- a/srv/src/http/static/viz/2/goog/dom/dom.js
+++ b/src/http/static/viz/2/goog/dom/dom.js
diff --git a/srv/src/http/static/viz/2/goog/dom/htmlelement.js b/src/http/static/viz/2/goog/dom/htmlelement.js
index c48f753..c48f753 100644
--- a/srv/src/http/static/viz/2/goog/dom/htmlelement.js
+++ b/src/http/static/viz/2/goog/dom/htmlelement.js
diff --git a/srv/src/http/static/viz/2/goog/dom/nodetype.js b/src/http/static/viz/2/goog/dom/nodetype.js
index cccb470..cccb470 100644
--- a/srv/src/http/static/viz/2/goog/dom/nodetype.js
+++ b/src/http/static/viz/2/goog/dom/nodetype.js
diff --git a/srv/src/http/static/viz/2/goog/dom/safe.js b/src/http/static/viz/2/goog/dom/safe.js
index b9390a0..b9390a0 100644
--- a/srv/src/http/static/viz/2/goog/dom/safe.js
+++ b/src/http/static/viz/2/goog/dom/safe.js
diff --git a/srv/src/http/static/viz/2/goog/dom/tagname.js b/src/http/static/viz/2/goog/dom/tagname.js
index b3808ad..b3808ad 100644
--- a/srv/src/http/static/viz/2/goog/dom/tagname.js
+++ b/src/http/static/viz/2/goog/dom/tagname.js
diff --git a/srv/src/http/static/viz/2/goog/dom/tags.js b/src/http/static/viz/2/goog/dom/tags.js
index 7c12938..7c12938 100644
--- a/srv/src/http/static/viz/2/goog/dom/tags.js
+++ b/src/http/static/viz/2/goog/dom/tags.js
diff --git a/srv/src/http/static/viz/2/goog/events/browserevent.js b/src/http/static/viz/2/goog/events/browserevent.js
index b2261a3..b2261a3 100644
--- a/srv/src/http/static/viz/2/goog/events/browserevent.js
+++ b/src/http/static/viz/2/goog/events/browserevent.js
diff --git a/srv/src/http/static/viz/2/goog/events/browserfeature.js b/src/http/static/viz/2/goog/events/browserfeature.js
index 7cc7bd6..7cc7bd6 100644
--- a/srv/src/http/static/viz/2/goog/events/browserfeature.js
+++ b/src/http/static/viz/2/goog/events/browserfeature.js
diff --git a/srv/src/http/static/viz/2/goog/events/event.js b/src/http/static/viz/2/goog/events/event.js
index ee3b3af..ee3b3af 100644
--- a/srv/src/http/static/viz/2/goog/events/event.js
+++ b/src/http/static/viz/2/goog/events/event.js
diff --git a/srv/src/http/static/viz/2/goog/events/eventid.js b/src/http/static/viz/2/goog/events/eventid.js
index 9ff9e40..9ff9e40 100644
--- a/srv/src/http/static/viz/2/goog/events/eventid.js
+++ b/src/http/static/viz/2/goog/events/eventid.js
diff --git a/srv/src/http/static/viz/2/goog/events/events.js b/src/http/static/viz/2/goog/events/events.js
index 2787340..2787340 100644
--- a/srv/src/http/static/viz/2/goog/events/events.js
+++ b/src/http/static/viz/2/goog/events/events.js
diff --git a/srv/src/http/static/viz/2/goog/events/eventtype.js b/src/http/static/viz/2/goog/events/eventtype.js
index 7d991ea..7d991ea 100644
--- a/srv/src/http/static/viz/2/goog/events/eventtype.js
+++ b/src/http/static/viz/2/goog/events/eventtype.js
diff --git a/srv/src/http/static/viz/2/goog/events/listenable.js b/src/http/static/viz/2/goog/events/listenable.js
index 0f29d81..0f29d81 100644
--- a/srv/src/http/static/viz/2/goog/events/listenable.js
+++ b/src/http/static/viz/2/goog/events/listenable.js
diff --git a/srv/src/http/static/viz/2/goog/events/listener.js b/src/http/static/viz/2/goog/events/listener.js
index 5ac7b85..5ac7b85 100644
--- a/srv/src/http/static/viz/2/goog/events/listener.js
+++ b/src/http/static/viz/2/goog/events/listener.js
diff --git a/srv/src/http/static/viz/2/goog/events/listenermap.js b/src/http/static/viz/2/goog/events/listenermap.js
index 0375cf2..0375cf2 100644
--- a/srv/src/http/static/viz/2/goog/events/listenermap.js
+++ b/src/http/static/viz/2/goog/events/listenermap.js
diff --git a/srv/src/http/static/viz/2/goog/fs/url.js b/src/http/static/viz/2/goog/fs/url.js
index 364615e..364615e 100644
--- a/srv/src/http/static/viz/2/goog/fs/url.js
+++ b/src/http/static/viz/2/goog/fs/url.js
diff --git a/srv/src/http/static/viz/2/goog/functions/functions.js b/src/http/static/viz/2/goog/functions/functions.js
index 61849e9..61849e9 100644
--- a/srv/src/http/static/viz/2/goog/functions/functions.js
+++ b/src/http/static/viz/2/goog/functions/functions.js
diff --git a/srv/src/http/static/viz/2/goog/html/safehtml.js b/src/http/static/viz/2/goog/html/safehtml.js
index 4bffbff..4bffbff 100644
--- a/srv/src/http/static/viz/2/goog/html/safehtml.js
+++ b/src/http/static/viz/2/goog/html/safehtml.js
diff --git a/srv/src/http/static/viz/2/goog/html/safescript.js b/src/http/static/viz/2/goog/html/safescript.js
index 7a945eb..7a945eb 100644
--- a/srv/src/http/static/viz/2/goog/html/safescript.js
+++ b/src/http/static/viz/2/goog/html/safescript.js
diff --git a/srv/src/http/static/viz/2/goog/html/safestyle.js b/src/http/static/viz/2/goog/html/safestyle.js
index 506a475..506a475 100644
--- a/srv/src/http/static/viz/2/goog/html/safestyle.js
+++ b/src/http/static/viz/2/goog/html/safestyle.js
diff --git a/srv/src/http/static/viz/2/goog/html/safestylesheet.js b/src/http/static/viz/2/goog/html/safestylesheet.js
index cdd9e31..cdd9e31 100644
--- a/srv/src/http/static/viz/2/goog/html/safestylesheet.js
+++ b/src/http/static/viz/2/goog/html/safestylesheet.js
diff --git a/srv/src/http/static/viz/2/goog/html/safeurl.js b/src/http/static/viz/2/goog/html/safeurl.js
index 3d1ee11..3d1ee11 100644
--- a/srv/src/http/static/viz/2/goog/html/safeurl.js
+++ b/src/http/static/viz/2/goog/html/safeurl.js
diff --git a/srv/src/http/static/viz/2/goog/html/trustedresourceurl.js b/src/http/static/viz/2/goog/html/trustedresourceurl.js
index c043ef1..c043ef1 100644
--- a/srv/src/http/static/viz/2/goog/html/trustedresourceurl.js
+++ b/src/http/static/viz/2/goog/html/trustedresourceurl.js
diff --git a/srv/src/http/static/viz/2/goog/html/uncheckedconversions.js b/src/http/static/viz/2/goog/html/uncheckedconversions.js
index e96697c..e96697c 100644
--- a/srv/src/http/static/viz/2/goog/html/uncheckedconversions.js
+++ b/src/http/static/viz/2/goog/html/uncheckedconversions.js
diff --git a/srv/src/http/static/viz/2/goog/i18n/bidi.js b/src/http/static/viz/2/goog/i18n/bidi.js
index 695cfda..695cfda 100644
--- a/srv/src/http/static/viz/2/goog/i18n/bidi.js
+++ b/src/http/static/viz/2/goog/i18n/bidi.js
diff --git a/srv/src/http/static/viz/2/goog/iter/iter.js b/src/http/static/viz/2/goog/iter/iter.js
index 5bbb0bb..5bbb0bb 100644
--- a/srv/src/http/static/viz/2/goog/iter/iter.js
+++ b/src/http/static/viz/2/goog/iter/iter.js
diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/browser.js b/src/http/static/viz/2/goog/labs/useragent/browser.js
index a7dd638..a7dd638 100644
--- a/srv/src/http/static/viz/2/goog/labs/useragent/browser.js
+++ b/src/http/static/viz/2/goog/labs/useragent/browser.js
diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/engine.js b/src/http/static/viz/2/goog/labs/useragent/engine.js
index 31c5667..31c5667 100644
--- a/srv/src/http/static/viz/2/goog/labs/useragent/engine.js
+++ b/src/http/static/viz/2/goog/labs/useragent/engine.js
diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/platform.js b/src/http/static/viz/2/goog/labs/useragent/platform.js
index 9c72402..9c72402 100644
--- a/srv/src/http/static/viz/2/goog/labs/useragent/platform.js
+++ b/src/http/static/viz/2/goog/labs/useragent/platform.js
diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/util.js b/src/http/static/viz/2/goog/labs/useragent/util.js
index 26d4847..26d4847 100644
--- a/srv/src/http/static/viz/2/goog/labs/useragent/util.js
+++ b/src/http/static/viz/2/goog/labs/useragent/util.js
diff --git a/srv/src/http/static/viz/2/goog/math/coordinate.js b/src/http/static/viz/2/goog/math/coordinate.js
index 0dc2469..0dc2469 100644
--- a/srv/src/http/static/viz/2/goog/math/coordinate.js
+++ b/src/http/static/viz/2/goog/math/coordinate.js
diff --git a/srv/src/http/static/viz/2/goog/math/integer.js b/src/http/static/viz/2/goog/math/integer.js
index 6907546..6907546 100644
--- a/srv/src/http/static/viz/2/goog/math/integer.js
+++ b/src/http/static/viz/2/goog/math/integer.js
diff --git a/srv/src/http/static/viz/2/goog/math/long.js b/src/http/static/viz/2/goog/math/long.js
index 5212caf..5212caf 100644
--- a/srv/src/http/static/viz/2/goog/math/long.js
+++ b/src/http/static/viz/2/goog/math/long.js
diff --git a/srv/src/http/static/viz/2/goog/math/math.js b/src/http/static/viz/2/goog/math/math.js
index b8dbfb0..b8dbfb0 100644
--- a/srv/src/http/static/viz/2/goog/math/math.js
+++ b/src/http/static/viz/2/goog/math/math.js
diff --git a/srv/src/http/static/viz/2/goog/math/size.js b/src/http/static/viz/2/goog/math/size.js
index f5c379b..f5c379b 100644
--- a/srv/src/http/static/viz/2/goog/math/size.js
+++ b/src/http/static/viz/2/goog/math/size.js
diff --git a/srv/src/http/static/viz/2/goog/object/object.js b/src/http/static/viz/2/goog/object/object.js
index 2f26c2b..2f26c2b 100644
--- a/srv/src/http/static/viz/2/goog/object/object.js
+++ b/src/http/static/viz/2/goog/object/object.js
diff --git a/srv/src/http/static/viz/2/goog/reflect/reflect.js b/src/http/static/viz/2/goog/reflect/reflect.js
index a737324..a737324 100644
--- a/srv/src/http/static/viz/2/goog/reflect/reflect.js
+++ b/src/http/static/viz/2/goog/reflect/reflect.js
diff --git a/srv/src/http/static/viz/2/goog/string/const.js b/src/http/static/viz/2/goog/string/const.js
index 30bfc4e..30bfc4e 100644
--- a/srv/src/http/static/viz/2/goog/string/const.js
+++ b/src/http/static/viz/2/goog/string/const.js
diff --git a/srv/src/http/static/viz/2/goog/string/string.js b/src/http/static/viz/2/goog/string/string.js
index 7a10ae0..7a10ae0 100644
--- a/srv/src/http/static/viz/2/goog/string/string.js
+++ b/src/http/static/viz/2/goog/string/string.js
diff --git a/srv/src/http/static/viz/2/goog/string/stringbuffer.js b/src/http/static/viz/2/goog/string/stringbuffer.js
index 478b08b..478b08b 100644
--- a/srv/src/http/static/viz/2/goog/string/stringbuffer.js
+++ b/src/http/static/viz/2/goog/string/stringbuffer.js
diff --git a/srv/src/http/static/viz/2/goog/string/stringformat.js b/src/http/static/viz/2/goog/string/stringformat.js
index 58d7af9..58d7af9 100644
--- a/srv/src/http/static/viz/2/goog/string/stringformat.js
+++ b/src/http/static/viz/2/goog/string/stringformat.js
diff --git a/srv/src/http/static/viz/2/goog/string/typedstring.js b/src/http/static/viz/2/goog/string/typedstring.js
index d0d7bd9..d0d7bd9 100644
--- a/srv/src/http/static/viz/2/goog/string/typedstring.js
+++ b/src/http/static/viz/2/goog/string/typedstring.js
diff --git a/srv/src/http/static/viz/2/goog/structs/map.js b/src/http/static/viz/2/goog/structs/map.js
index 1cb4bcc..1cb4bcc 100644
--- a/srv/src/http/static/viz/2/goog/structs/map.js
+++ b/src/http/static/viz/2/goog/structs/map.js
diff --git a/srv/src/http/static/viz/2/goog/structs/structs.js b/src/http/static/viz/2/goog/structs/structs.js
index 684ddfe..684ddfe 100644
--- a/srv/src/http/static/viz/2/goog/structs/structs.js
+++ b/src/http/static/viz/2/goog/structs/structs.js
diff --git a/srv/src/http/static/viz/2/goog/uri/uri.js b/src/http/static/viz/2/goog/uri/uri.js
index 7873de9..7873de9 100644
--- a/srv/src/http/static/viz/2/goog/uri/uri.js
+++ b/src/http/static/viz/2/goog/uri/uri.js
diff --git a/srv/src/http/static/viz/2/goog/uri/utils.js b/src/http/static/viz/2/goog/uri/utils.js
index 3b8917a..3b8917a 100644
--- a/srv/src/http/static/viz/2/goog/uri/utils.js
+++ b/src/http/static/viz/2/goog/uri/utils.js
diff --git a/srv/src/http/static/viz/2/goog/useragent/useragent.js b/src/http/static/viz/2/goog/useragent/useragent.js
index 6fc5ff1..6fc5ff1 100644
--- a/srv/src/http/static/viz/2/goog/useragent/useragent.js
+++ b/src/http/static/viz/2/goog/useragent/useragent.js
diff --git a/srv/src/http/static/viz/2/process/env.cljs b/src/http/static/viz/2/process/env.cljs
index c8a6909..c8a6909 100644
--- a/srv/src/http/static/viz/2/process/env.cljs
+++ b/src/http/static/viz/2/process/env.cljs
diff --git a/srv/src/http/static/viz/2/process/env.cljs.cache.json b/src/http/static/viz/2/process/env.cljs.cache.json
index cde3e78..cde3e78 100644
--- a/srv/src/http/static/viz/2/process/env.cljs.cache.json
+++ b/src/http/static/viz/2/process/env.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/process/env.js b/src/http/static/viz/2/process/env.js
index a917edb..a917edb 100644
--- a/srv/src/http/static/viz/2/process/env.js
+++ b/src/http/static/viz/2/process/env.js
diff --git a/srv/src/http/static/viz/2/process/env.js.map b/src/http/static/viz/2/process/env.js.map
index 4b5f46b..4b5f46b 100644
--- a/srv/src/http/static/viz/2/process/env.js.map
+++ b/src/http/static/viz/2/process/env.js.map
diff --git a/srv/src/http/static/viz/2/processing.js b/src/http/static/viz/2/processing.js
index 7cfb7a8..7cfb7a8 100644
--- a/srv/src/http/static/viz/2/processing.js
+++ b/src/http/static/viz/2/processing.js
diff --git a/srv/src/http/static/viz/2/quil/core.cljc b/src/http/static/viz/2/quil/core.cljc
index dcdaa94..dcdaa94 100644
--- a/srv/src/http/static/viz/2/quil/core.cljc
+++ b/src/http/static/viz/2/quil/core.cljc
diff --git a/srv/src/http/static/viz/2/quil/core.cljc.cache.json b/src/http/static/viz/2/quil/core.cljc.cache.json
index e2cfeb3..e2cfeb3 100644
--- a/srv/src/http/static/viz/2/quil/core.cljc.cache.json
+++ b/src/http/static/viz/2/quil/core.cljc.cache.json
diff --git a/srv/src/http/static/viz/2/quil/core.js b/src/http/static/viz/2/quil/core.js
index d4a2954..d4a2954 100644
--- a/srv/src/http/static/viz/2/quil/core.js
+++ b/src/http/static/viz/2/quil/core.js
diff --git a/srv/src/http/static/viz/2/quil/core.js.map b/src/http/static/viz/2/quil/core.js.map
index 55fa54e..55fa54e 100644
--- a/srv/src/http/static/viz/2/quil/core.js.map
+++ b/src/http/static/viz/2/quil/core.js.map
diff --git a/srv/src/http/static/viz/2/quil/middleware.cljc b/src/http/static/viz/2/quil/middleware.cljc
index a8f5672..a8f5672 100644
--- a/srv/src/http/static/viz/2/quil/middleware.cljc
+++ b/src/http/static/viz/2/quil/middleware.cljc
diff --git a/srv/src/http/static/viz/2/quil/middleware.cljc.cache.json b/src/http/static/viz/2/quil/middleware.cljc.cache.json
index ac5c7df..ac5c7df 100644
--- a/srv/src/http/static/viz/2/quil/middleware.cljc.cache.json
+++ b/src/http/static/viz/2/quil/middleware.cljc.cache.json
diff --git a/srv/src/http/static/viz/2/quil/middleware.js b/src/http/static/viz/2/quil/middleware.js
index fcac0f6..fcac0f6 100644
--- a/srv/src/http/static/viz/2/quil/middleware.js
+++ b/src/http/static/viz/2/quil/middleware.js
diff --git a/srv/src/http/static/viz/2/quil/middleware.js.map b/src/http/static/viz/2/quil/middleware.js.map
index 63af250..63af250 100644
--- a/srv/src/http/static/viz/2/quil/middleware.js.map
+++ b/src/http/static/viz/2/quil/middleware.js.map
diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc b/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc
index 6ed40d2..6ed40d2 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc
+++ b/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc
diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
index b0ba153..b0ba153 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
+++ b/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js b/src/http/static/viz/2/quil/middlewares/deprecated_options.js
index e80614c..e80614c 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js
+++ b/src/http/static/viz/2/quil/middlewares/deprecated_options.js
diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map b/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map
index fdcedf9..fdcedf9 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map
+++ b/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map
diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc b/src/http/static/viz/2/quil/middlewares/fun_mode.cljc
index 14330c7..14330c7 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc
+++ b/src/http/static/viz/2/quil/middlewares/fun_mode.cljc
diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json
index 26e797e..26e797e 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json
+++ b/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json
diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js b/src/http/static/viz/2/quil/middlewares/fun_mode.js
index 5eabdf8..5eabdf8 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js
+++ b/src/http/static/viz/2/quil/middlewares/fun_mode.js
diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map b/src/http/static/viz/2/quil/middlewares/fun_mode.js.map
index 459ff6e..459ff6e 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map
+++ b/src/http/static/viz/2/quil/middlewares/fun_mode.js.map
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc b/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc
index cd03710..cd03710 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc
+++ b/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
index 664f7ef..664f7ef 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
+++ b/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js b/src/http/static/viz/2/quil/middlewares/navigation_2d.js
index 9403a91..9403a91 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js
+++ b/src/http/static/viz/2/quil/middlewares/navigation_2d.js
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map b/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map
index 34afb3c..34afb3c 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map
+++ b/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc b/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc
index 3471cfd..3471cfd 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc
+++ b/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
index 2edb582..2edb582 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
+++ b/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js b/src/http/static/viz/2/quil/middlewares/navigation_3d.js
index d80d58a..d80d58a 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js
+++ b/src/http/static/viz/2/quil/middlewares/navigation_3d.js
diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map b/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map
index 6668288..6668288 100644
--- a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map
+++ b/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map
diff --git a/srv/src/http/static/viz/2/quil/sketch.cljs b/src/http/static/viz/2/quil/sketch.cljs
index 4e48038..4e48038 100644
--- a/srv/src/http/static/viz/2/quil/sketch.cljs
+++ b/src/http/static/viz/2/quil/sketch.cljs
diff --git a/srv/src/http/static/viz/2/quil/sketch.cljs.cache.json b/src/http/static/viz/2/quil/sketch.cljs.cache.json
index 5544f56..5544f56 100644
--- a/srv/src/http/static/viz/2/quil/sketch.cljs.cache.json
+++ b/src/http/static/viz/2/quil/sketch.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/quil/sketch.js b/src/http/static/viz/2/quil/sketch.js
index b394075..b394075 100644
--- a/srv/src/http/static/viz/2/quil/sketch.js
+++ b/src/http/static/viz/2/quil/sketch.js
diff --git a/srv/src/http/static/viz/2/quil/sketch.js.map b/src/http/static/viz/2/quil/sketch.js.map
index b9bbeec..b9bbeec 100644
--- a/srv/src/http/static/viz/2/quil/sketch.js.map
+++ b/src/http/static/viz/2/quil/sketch.js.map
diff --git a/srv/src/http/static/viz/2/quil/util.cljc b/src/http/static/viz/2/quil/util.cljc
index 3cd0739..3cd0739 100644
--- a/srv/src/http/static/viz/2/quil/util.cljc
+++ b/src/http/static/viz/2/quil/util.cljc
diff --git a/srv/src/http/static/viz/2/quil/util.cljc.cache.json b/src/http/static/viz/2/quil/util.cljc.cache.json
index ffc87ae..ffc87ae 100644
--- a/srv/src/http/static/viz/2/quil/util.cljc.cache.json
+++ b/src/http/static/viz/2/quil/util.cljc.cache.json
diff --git a/srv/src/http/static/viz/2/quil/util.js b/src/http/static/viz/2/quil/util.js
index f0e8bc9..f0e8bc9 100644
--- a/srv/src/http/static/viz/2/quil/util.js
+++ b/src/http/static/viz/2/quil/util.js
diff --git a/srv/src/http/static/viz/2/quil/util.js.map b/src/http/static/viz/2/quil/util.js.map
index b78bac5..b78bac5 100644
--- a/srv/src/http/static/viz/2/quil/util.js.map
+++ b/src/http/static/viz/2/quil/util.js.map
diff --git a/srv/src/http/static/viz/2/viz/core.cljs b/src/http/static/viz/2/viz/core.cljs
index caeb386..caeb386 100644
--- a/srv/src/http/static/viz/2/viz/core.cljs
+++ b/src/http/static/viz/2/viz/core.cljs
diff --git a/srv/src/http/static/viz/2/viz/core.cljs.cache.json b/src/http/static/viz/2/viz/core.cljs.cache.json
index ade1293..ade1293 100644
--- a/srv/src/http/static/viz/2/viz/core.cljs.cache.json
+++ b/src/http/static/viz/2/viz/core.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/viz/core.js b/src/http/static/viz/2/viz/core.js
index a14b2fd..a14b2fd 100644
--- a/srv/src/http/static/viz/2/viz/core.js
+++ b/src/http/static/viz/2/viz/core.js
diff --git a/srv/src/http/static/viz/2/viz/core.js.map b/src/http/static/viz/2/viz/core.js.map
index 1bee43b..1bee43b 100644
--- a/srv/src/http/static/viz/2/viz/core.js.map
+++ b/src/http/static/viz/2/viz/core.js.map
diff --git a/srv/src/http/static/viz/2/viz/debug.cljs b/src/http/static/viz/2/viz/debug.cljs
index 9de3071..9de3071 100644
--- a/srv/src/http/static/viz/2/viz/debug.cljs
+++ b/src/http/static/viz/2/viz/debug.cljs
diff --git a/srv/src/http/static/viz/2/viz/debug.cljs.cache.json b/src/http/static/viz/2/viz/debug.cljs.cache.json
index e2f0a33..e2f0a33 100644
--- a/srv/src/http/static/viz/2/viz/debug.cljs.cache.json
+++ b/src/http/static/viz/2/viz/debug.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/viz/debug.js b/src/http/static/viz/2/viz/debug.js
index 81683f9..81683f9 100644
--- a/srv/src/http/static/viz/2/viz/debug.js
+++ b/src/http/static/viz/2/viz/debug.js
diff --git a/srv/src/http/static/viz/2/viz/debug.js.map b/src/http/static/viz/2/viz/debug.js.map
index fb46f64..fb46f64 100644
--- a/srv/src/http/static/viz/2/viz/debug.js.map
+++ b/src/http/static/viz/2/viz/debug.js.map
diff --git a/srv/src/http/static/viz/2/viz/dial.cljs b/src/http/static/viz/2/viz/dial.cljs
index 46656e5..46656e5 100644
--- a/srv/src/http/static/viz/2/viz/dial.cljs
+++ b/src/http/static/viz/2/viz/dial.cljs
diff --git a/srv/src/http/static/viz/2/viz/dial.cljs.cache.json b/src/http/static/viz/2/viz/dial.cljs.cache.json
index da9fe18..da9fe18 100644
--- a/srv/src/http/static/viz/2/viz/dial.cljs.cache.json
+++ b/src/http/static/viz/2/viz/dial.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/viz/dial.js b/src/http/static/viz/2/viz/dial.js
index 3eb17f2..3eb17f2 100644
--- a/srv/src/http/static/viz/2/viz/dial.js
+++ b/src/http/static/viz/2/viz/dial.js
diff --git a/srv/src/http/static/viz/2/viz/dial.js.map b/src/http/static/viz/2/viz/dial.js.map
index 213c641..213c641 100644
--- a/srv/src/http/static/viz/2/viz/dial.js.map
+++ b/src/http/static/viz/2/viz/dial.js.map
diff --git a/srv/src/http/static/viz/2/viz/forest.cljs b/src/http/static/viz/2/viz/forest.cljs
index ee6a2fb..ee6a2fb 100644
--- a/srv/src/http/static/viz/2/viz/forest.cljs
+++ b/src/http/static/viz/2/viz/forest.cljs
diff --git a/srv/src/http/static/viz/2/viz/forest.cljs.cache.json b/src/http/static/viz/2/viz/forest.cljs.cache.json
index e45e9f2..e45e9f2 100644
--- a/srv/src/http/static/viz/2/viz/forest.cljs.cache.json
+++ b/src/http/static/viz/2/viz/forest.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/viz/forest.js b/src/http/static/viz/2/viz/forest.js
index 4481c7d..4481c7d 100644
--- a/srv/src/http/static/viz/2/viz/forest.js
+++ b/src/http/static/viz/2/viz/forest.js
diff --git a/srv/src/http/static/viz/2/viz/forest.js.map b/src/http/static/viz/2/viz/forest.js.map
index 5d1245b..5d1245b 100644
--- a/srv/src/http/static/viz/2/viz/forest.js.map
+++ b/src/http/static/viz/2/viz/forest.js.map
diff --git a/srv/src/http/static/viz/2/viz/ghost.cljs b/src/http/static/viz/2/viz/ghost.cljs
index d468479..d468479 100644
--- a/srv/src/http/static/viz/2/viz/ghost.cljs
+++ b/src/http/static/viz/2/viz/ghost.cljs
diff --git a/srv/src/http/static/viz/2/viz/ghost.cljs.cache.json b/src/http/static/viz/2/viz/ghost.cljs.cache.json
index 15e7065..15e7065 100644
--- a/srv/src/http/static/viz/2/viz/ghost.cljs.cache.json
+++ b/src/http/static/viz/2/viz/ghost.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/viz/ghost.js b/src/http/static/viz/2/viz/ghost.js
index d2106e1..d2106e1 100644
--- a/srv/src/http/static/viz/2/viz/ghost.js
+++ b/src/http/static/viz/2/viz/ghost.js
diff --git a/srv/src/http/static/viz/2/viz/ghost.js.map b/src/http/static/viz/2/viz/ghost.js.map
index a2b7533..a2b7533 100644
--- a/srv/src/http/static/viz/2/viz/ghost.js.map
+++ b/src/http/static/viz/2/viz/ghost.js.map
diff --git a/srv/src/http/static/viz/2/viz/grid.cljs b/src/http/static/viz/2/viz/grid.cljs
index 6e31443..6e31443 100644
--- a/srv/src/http/static/viz/2/viz/grid.cljs
+++ b/src/http/static/viz/2/viz/grid.cljs
diff --git a/srv/src/http/static/viz/2/viz/grid.cljs.cache.json b/src/http/static/viz/2/viz/grid.cljs.cache.json
index fcc5225..fcc5225 100644
--- a/srv/src/http/static/viz/2/viz/grid.cljs.cache.json
+++ b/src/http/static/viz/2/viz/grid.cljs.cache.json
diff --git a/srv/src/http/static/viz/2/viz/grid.js b/src/http/static/viz/2/viz/grid.js
index 891193e..891193e 100644
--- a/srv/src/http/static/viz/2/viz/grid.js
+++ b/src/http/static/viz/2/viz/grid.js
diff --git a/srv/src/http/static/viz/2/viz/grid.js.map b/src/http/static/viz/2/viz/grid.js.map
index 1964511..1964511 100644
--- a/srv/src/http/static/viz/2/viz/grid.js.map
+++ b/src/http/static/viz/2/viz/grid.js.map
diff --git a/srv/src/http/static/wtfpl.txt b/src/http/static/wtfpl.txt
index ee7d6a5..ee7d6a5 100644
--- a/srv/src/http/static/wtfpl.txt
+++ b/src/http/static/wtfpl.txt
diff --git a/srv/src/http/tpl.go b/src/http/tpl.go
index 3e1a2ba..3e1a2ba 100644
--- a/srv/src/http/tpl.go
+++ b/src/http/tpl.go
diff --git a/srv/src/http/tpl/admin.html b/src/http/tpl/admin.html
index f2ba4d6..f2ba4d6 100644
--- a/srv/src/http/tpl/admin.html
+++ b/src/http/tpl/admin.html
diff --git a/srv/src/http/tpl/assets.html b/src/http/tpl/assets.html
index f21717a..f21717a 100644
--- a/srv/src/http/tpl/assets.html
+++ b/src/http/tpl/assets.html
diff --git a/srv/src/http/tpl/base.html b/src/http/tpl/base.html
index f286222..f286222 100644
--- a/srv/src/http/tpl/base.html
+++ b/src/http/tpl/base.html
diff --git a/srv/src/http/tpl/draft-posts.html b/src/http/tpl/draft-posts.html
index 53261b9..53261b9 100644
--- a/srv/src/http/tpl/draft-posts.html
+++ b/src/http/tpl/draft-posts.html
diff --git a/srv/src/http/tpl/edit-post.html b/src/http/tpl/edit-post.html
index f8e2730..f8e2730 100644
--- a/srv/src/http/tpl/edit-post.html
+++ b/src/http/tpl/edit-post.html
diff --git a/srv/src/http/tpl/finalize.html b/src/http/tpl/finalize.html
index 8bdfceb..8bdfceb 100644
--- a/srv/src/http/tpl/finalize.html
+++ b/src/http/tpl/finalize.html
diff --git a/srv/src/http/tpl/follow.html b/src/http/tpl/follow.html
index 23c30a6..23c30a6 100644
--- a/srv/src/http/tpl/follow.html
+++ b/src/http/tpl/follow.html
diff --git a/srv/src/http/tpl/image.html b/src/http/tpl/image.html
index ba9b75d..ba9b75d 100644
--- a/srv/src/http/tpl/image.html
+++ b/src/http/tpl/image.html
diff --git a/srv/src/http/tpl/index.html b/src/http/tpl/index.html
index ce5f264..ce5f264 100644
--- a/srv/src/http/tpl/index.html
+++ b/src/http/tpl/index.html
diff --git a/srv/src/http/tpl/post.html b/src/http/tpl/post.html
index 23500eb..23500eb 100644
--- a/srv/src/http/tpl/post.html
+++ b/src/http/tpl/post.html
diff --git a/srv/src/http/tpl/posts.html b/src/http/tpl/posts.html
index fbeaa41..fbeaa41 100644
--- a/srv/src/http/tpl/posts.html
+++ b/src/http/tpl/posts.html
diff --git a/srv/src/http/tpl/redirect.html b/src/http/tpl/redirect.html
index a50b324..a50b324 100644
--- a/srv/src/http/tpl/redirect.html
+++ b/src/http/tpl/redirect.html
diff --git a/srv/src/http/tpl/unsubscribe.html b/src/http/tpl/unsubscribe.html
index ad01735..ad01735 100644
--- a/srv/src/http/tpl/unsubscribe.html
+++ b/src/http/tpl/unsubscribe.html
diff --git a/srv/src/mailinglist/mailer.go b/src/mailinglist/mailer.go
index 07d6c3a..07d6c3a 100644
--- a/srv/src/mailinglist/mailer.go
+++ b/src/mailinglist/mailer.go
diff --git a/srv/src/mailinglist/mailinglist.go b/src/mailinglist/mailinglist.go
index d9bdcc0..d9bdcc0 100644
--- a/srv/src/mailinglist/mailinglist.go
+++ b/src/mailinglist/mailinglist.go
diff --git a/srv/src/mailinglist/store.go b/src/mailinglist/store.go
index 49e7617..49e7617 100644
--- a/srv/src/mailinglist/store.go
+++ b/src/mailinglist/store.go
diff --git a/srv/src/mailinglist/store_test.go b/src/mailinglist/store_test.go
index 9093d90..9093d90 100644
--- a/srv/src/mailinglist/store_test.go
+++ b/src/mailinglist/store_test.go
diff --git a/srv/src/post/asset.go b/src/post/asset.go
index a7b605b..a7b605b 100644
--- a/srv/src/post/asset.go
+++ b/src/post/asset.go
diff --git a/srv/src/post/asset_test.go b/src/post/asset_test.go
index 4d62d46..4d62d46 100644
--- a/srv/src/post/asset_test.go
+++ b/src/post/asset_test.go
diff --git a/srv/src/post/draft_post.go b/src/post/draft_post.go
index 61283c3..61283c3 100644
--- a/srv/src/post/draft_post.go
+++ b/src/post/draft_post.go
diff --git a/srv/src/post/draft_post_test.go b/src/post/draft_post_test.go
index f404bb0..f404bb0 100644
--- a/srv/src/post/draft_post_test.go
+++ b/src/post/draft_post_test.go
diff --git a/srv/src/post/post.go b/src/post/post.go
index 03bce6c..03bce6c 100644
--- a/srv/src/post/post.go
+++ b/src/post/post.go
diff --git a/srv/src/post/post_test.go b/src/post/post_test.go
index c7f9cdc..c7f9cdc 100644
--- a/srv/src/post/post_test.go
+++ b/src/post/post_test.go
diff --git a/srv/src/post/sql.go b/src/post/sql.go
index c768c9a..c768c9a 100644
--- a/srv/src/post/sql.go
+++ b/src/post/sql.go
diff --git a/srv/src/pow/pow.go b/src/pow/pow.go
index ada8439..ada8439 100644
--- a/srv/src/pow/pow.go
+++ b/src/pow/pow.go
diff --git a/srv/src/pow/pow_test.go b/src/pow/pow_test.go
index cc868b1..cc868b1 100644
--- a/srv/src/pow/pow_test.go
+++ b/src/pow/pow_test.go
diff --git a/srv/src/pow/store.go b/src/pow/store.go
index 0b5e7d0..0b5e7d0 100644
--- a/srv/src/pow/store.go
+++ b/src/pow/store.go
diff --git a/srv/src/pow/store_test.go b/src/pow/store_test.go
index 324a40c..324a40c 100644
--- a/srv/src/pow/store_test.go
+++ b/src/pow/store_test.go
diff --git a/srv/default.nix b/srv/default.nix
deleted file mode 100644
index e6216b3..0000000
--- a/srv/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- bash,
- go,
- buildGoModule,
- sqlite,
- writeScript,
- writeText,
- stdenv,
-
- config,
-}: rec {
-
- init = writeText "mediocre-blog-srv-init" ''
-
- export MEDIOCRE_BLOG_DATA_DIR="${config.dataDir}"
-
- # mailing list
- export MEDIOCRE_BLOG_ML_SMTP_ADDR="${config.mlSMTPAddr}"
- export MEDIOCRE_BLOG_ML_SMTP_AUTH="${config.mlSMTPAuth}"
- export MEDIOCRE_BLOG_ML_PUBLIC_URL="${config.publicURL}"
-
- # pow
- export MEDIOCRE_BLOG_POW_SECRET="${config.powSecret}"
-
- # http
- export MEDIOCRE_BLOG_HTTP_PUBLIC_URL="${config.publicURL}"
- export MEDIOCRE_BLOG_HTTP_LISTEN_PROTO="${config.httpListenProto}"
- export MEDIOCRE_BLOG_HTTP_LISTEN_ADDR="${config.httpListenAddr}"
- export MEDIOCRE_BLOG_HTTP_AUTH_USERS='${builtins.toJSON config.httpAuthUsers}'
- export MEDIOCRE_BLOG_HTTP_AUTH_RATELIMIT='${config.httpAuthRatelimit}'
- '';
-
- build = buildGoModule {
- pname = "mediocre-blog-srv";
- version = "dev";
- src = ./src;
- vendorSha256 = "sha256:1vazrrg8rs9n8x40c9r53h9qnyxw59xkp0aq7jl15fliigk6q0cr";
-
- # disable tests
- checkPhase = '''';
- };
-
- bin = writeScript "mediocre-blog-srv-bin" ''
- #!${bash}/bin/bash
- source ${init}
- exec ${build}/bin/mediocre-blog "$@"
- '';
-
- shell = stdenv.mkDerivation {
- name = "mediocre-blog-srv-shell";
- buildInputs = [ go sqlite ];
- shellHook = ''
- source ${init}
-
- echo "Loading test data..."
- (cd srv/src/cmd/load-test-data && go run main.go)
- '';
- };
-}
diff --git a/srv-dev-env.sh b/tmp-dev-env.sh
index d41a96d..d95cc7b 100644
--- a/srv-dev-env.sh
+++ b/tmp-dev-env.sh
@@ -1,3 +1,4 @@
+set -e
test_dir="$(mktemp -d)"
trap "rm -rf $test_dir" EXIT
@@ -10,6 +11,4 @@ test_cfg="(import ./config.nix) // {
dataDir=\"${test_dir}/data\";
}"
-nix-shell -A srv.shell \
- --arg config "$test_cfg" \
- "$@"
+nix-shell -A shell --arg config "$test_cfg" "$@"