chiark / gitweb /
clock: Delete mockup files
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 21:57:35 +0000 (21:57 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 21:57:35 +0000 (21:57 +0000)
We don't need these now.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
server dummy - alice - Otter.html [deleted file]
server dummy - alice - Otter_files/script.js [deleted file]
server dummy - alice - Otter_files/wasm.js [deleted file]

diff --git a/server dummy - alice - Otter.html b/server dummy - alice - Otter.html
deleted file mode 100644 (file)
index 3923359..0000000
+++ /dev/null
@@ -1,948 +0,0 @@
-<!-- Copyright 2020-2021 Ian Jackson and contributors to Otter
-     SPDX-License-Identifier: AGPL-3.0-or-later
-     There is NO WARRANTY. -->
-<html><head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
-    <title>server::dummy - alice - Otter
-    </title>
-<link rel="license" href="http://localhost:8000/_/libre"><script>
-    orig_console = window.console;
-    window.console = (function(){
-      var new_console = { saved: [] };
-      for (k of ['log','error','warn','info']) {
-        (function(k){
-          var orig = orig_console[k];
-          new_console[k] = function() {
-            let args = [].slice.call(arguments);
-            new_console.saved.push([k, [args.map(s => (
-             s === undefined ? "<undefined>" :
-               s === null ? "<null>" :
-               s.toString()
-           ))]]);
-            orig.apply(orig_console, arguments);
-          }
-        })(k);
-      }
-      return new_console;
-    })();
-    console.log('wdriver.rs console log starts');
-</script>
-
-<script defer="defer">let wasm_input = fetch('/_/wasm.wasm');</script>
-<script src="server%20dummy%20-%20alice%20-%20Otter_files/wasm.js" defer="defer"></script>
-<script id="global-info" data-layout="Portrait"></script>
-<script src="server%20dummy%20-%20alice%20-%20Otter_files/script.js" defer="defer"></script>
-</head>
-<!-- Copyright 2020u Ian Jackson
-     SPDX-License-Identifier: AGPL-3.0-or-later
-     There is NO WARRANTY. --><head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body id="main-body" data-ctoken="TdWGr534zPXTH8v9wp0FF15bHs7R9bxyhFY2soYoN2Fg7U1R8RU09JQgasqN4jTC" data-us="1#1" data-gen="538" data-sse-url-prefix="" style="transform-origin: top left;">
-<style>
-  html {
-    background-color: #eef;
-  }
-  .footer {
-    background-color: #ddf;
-  }
-  div[id=infopane] {
-    display: flex;
-    flex-direction: column;
-    background-color: white;
-    overflow-y: scroll;
-  }
-  div[class=uos] {
-    flex: initial;
-  }
-  div[id=uos] {
-    flex: auto;
-  }
-  div[class=somepane] {
-    flex: auto;
-    display: flex;
-    flex-direction: column;
-  }
-  div[id=player_list_columns] {
-  }
-</style>
-
-<style>
-  body {
-    min-height: 100vw;
-  }
-  div[class=uos] { display: flex; flex-wrap: wrap; }
-  div[class|=uokey] {
-    outline: 1px solid #000;
-    margin: 1px;
-    padding-left: 5px;
-    padding-right: 6.5px;
-    align-self: start;
-  }
-  table[id=log] {
-    width: 100%;
-  }
-  td[class=logts] {
-    padding-left: 5px;
-    text-align: right;
-  }
-  div[class=uokey-r] {
-    align-self: end;
-  }
-  div[id=infopane] {
-    height: 100px;
-  }
-  .uos-mid {
-    flex-grow: 1;
-  }
-  div[id=player_list_columns] {
-    columns: 3;
-  }
-</style>
-<div class="upper">
-
-Hi alice
-
-|
-g
-<span id="wresting-warning"></span>
-
-|
-<strong>FAKING RANDOMNESS!</strong>
-<span id="status">server online 1#1 1C1 G538 U1 K1</span>
-
-|
-<a href="http://localhost:8000/l?kmqAKPwK4TfReFjMor8MJhdRPBcwIBpe">switch to landscape view</a> |
-<span id="links">links: <a href="https://jitsi.example.com/initial">Voice</a> <a href="http://localhost:8000/_/shapelib.html">Shapelib</a> |</span>
-
-<span style="white-space: nowrap;"><button id="zoom-btn" disabled="disabled" onclick="zoom_activate()">Zoom</button><input id="zoom-val" type="number" max="1000" min="10" step="5" size="4" value="100" oninput="zoom_enable()">%</span>
-
-
-<pre id="error"></pre>
-
-
-
-    <svg id="space" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 200" width="1800" height="1200">
-      <rect fill="#bbd" x="0" y="0" width="300" height="200"></rect>
-      <g id="pieces_marker"></g>
-      <use id="use170.5" href="#piece170.5" x="150" y="100" data-piece="170.5"></use>
-      <use id="use166.7" href="#piece166.7" x="115" y="135" data-piece="166.7"></use>
-      <use id="use111.7" href="#piece111.7" x="125" y="135" data-piece="111.7"></use>
-      <use id="use155.7" href="#piece155.7" x="135" y="135" data-piece="155.7"></use>
-      <use id="use72.7" href="#piece72.7" x="145" y="135" data-piece="72.7"></use>
-      <use id="use82.7" href="#piece82.7" x="155" y="135" data-piece="82.7"></use>
-      <use id="use54.7" href="#piece54.7" x="165" y="135" data-piece="54.7"></use>
-      <use id="use126.7" href="#piece126.7" x="175" y="135" data-piece="126.7"></use>
-      <use id="use81.7" href="#piece81.7" x="185" y="135" data-piece="81.7"></use>
-      <use id="use125.7" href="#piece125.7" x="115" y="65" data-piece="125.7"></use>
-      <use id="use94.7" href="#piece94.7" x="125" y="65" data-piece="94.7"></use>
-      <use id="use141.7" href="#piece141.7" x="135" y="65" data-piece="141.7"></use>
-      <use id="use47.7" href="#piece47.7" x="145" y="65" data-piece="47.7"></use>
-      <use id="use134.7" href="#piece134.7" x="155" y="65" data-piece="134.7"></use>
-      <use id="use163.7" href="#piece163.7" x="165" y="65" data-piece="163.7"></use>
-      <use id="use66.7" href="#piece66.7" x="175" y="65" data-piece="66.7"></use>
-      <use id="use161.7" href="#piece161.7" x="185" y="65" data-piece="161.7"></use>
-      <use id="use36.7" href="#piece36.7" x="115" y="125" data-piece="36.7"></use>
-      <use id="use20.7" href="#piece20.7" x="125" y="125" data-piece="20.7"></use>
-      <use id="use27.7" href="#piece27.7" x="135" y="125" data-piece="27.7"></use>
-      <use id="use29.7" href="#piece29.7" x="145" y="125" data-piece="29.7"></use>
-      <use id="use130.7" href="#piece130.7" x="155" y="125" data-piece="130.7"></use>
-      <use id="use146.7" href="#piece146.7" x="165" y="125" data-piece="146.7"></use>
-      <use id="use19.7" href="#piece19.7" x="175" y="125" data-piece="19.7"></use>
-      <use id="use149.7" href="#piece149.7" x="185" y="125" data-piece="149.7"></use>
-      <use id="use34.7" href="#piece34.7" x="115" y="75" data-piece="34.7"></use>
-      <use id="use70.7" href="#piece70.7" x="125" y="75" data-piece="70.7"></use>
-      <use id="use159.7" href="#piece159.7" x="135" y="75" data-piece="159.7"></use>
-      <use id="use89.7" href="#piece89.7" x="145" y="75" data-piece="89.7"></use>
-      <use id="use132.7" href="#piece132.7" x="155" y="75" data-piece="132.7"></use>
-      <use id="use160.7" href="#piece160.7" x="165" y="75" data-piece="160.7"></use>
-      <use id="use124.7" href="#piece124.7" x="175" y="75" data-piece="124.7"></use>
-      <use id="use30.7" href="#piece30.7" x="185" y="75" data-piece="30.7"></use>
-      <use id="use123.7" href="#piece123.7" x="20" y="75" data-piece="123.7"></use>
-      <use id="use140.7" href="#piece140.7" x="30" y="75" data-piece="140.7"></use>
-      <use id="use49.7" href="#piece49.7" x="40" y="75" data-piece="49.7"></use>
-      <use id="use63.7" href="#piece63.7" x="50" y="75" data-piece="63.7"></use>
-      <use id="use46.7" href="#piece46.7" x="60" y="75" data-piece="46.7"></use>
-      <use id="use18.7" href="#piece18.7" x="70" y="75" data-piece="18.7"></use>
-      <use id="use88.7" href="#piece88.7" x="80" y="75" data-piece="88.7"></use>
-      <use id="use165.7" href="#piece165.7" x="90" y="75" data-piece="165.7"></use>
-      <use id="use39.7" href="#piece39.7" x="20" y="85" data-piece="39.7"></use>
-      <use id="use9.7" href="#piece9.7" x="30" y="85" data-piece="9.7"></use>
-      <use id="use145.7" href="#piece145.7" x="40" y="85" data-piece="145.7"></use>
-      <use id="use139.7" href="#piece139.7" x="50" y="85" data-piece="139.7"></use>
-      <use id="use43.7" href="#piece43.7" x="60" y="85" data-piece="43.7"></use>
-      <use id="use122.7" href="#piece122.7" x="70" y="85" data-piece="122.7"></use>
-      <use id="use32.7" href="#piece32.7" x="80" y="85" data-piece="32.7"></use>
-      <use id="use26.7" href="#piece26.7" x="90" y="85" data-piece="26.7"></use>
-      <use id="use93.7" href="#piece93.7" x="20" y="95" data-piece="93.7"></use>
-      <use id="use154.7" href="#piece154.7" x="30" y="95" data-piece="154.7"></use>
-      <use id="use38.7" href="#piece38.7" x="40" y="95" data-piece="38.7"></use>
-      <use id="use25.7" href="#piece25.7" x="50" y="95" data-piece="25.7"></use>
-      <use id="use129.7" href="#piece129.7" x="60" y="95" data-piece="129.7"></use>
-      <use id="use48.7" href="#piece48.7" x="70" y="95" data-piece="48.7"></use>
-      <use id="use158.7" href="#piece158.7" x="80" y="95" data-piece="158.7"></use>
-      <use id="use164.7" href="#piece164.7" x="90" y="95" data-piece="164.7"></use>
-      <use id="use51.7" href="#piece51.7" x="20" y="100" data-piece="51.7"></use>
-      <use id="use69.7" href="#piece69.7" x="30" y="100" data-piece="69.7"></use>
-      <use id="use113.7" href="#piece113.7" x="40" y="100" data-piece="113.7"></use>
-      <use id="use14.7" href="#piece14.7" x="50" y="100" data-piece="14.7"></use>
-      <use id="use10.7" href="#piece10.7" x="60" y="100" data-piece="10.7"></use>
-      <use id="use110.7" href="#piece110.7" x="70" y="100" data-piece="110.7"></use>
-      <use id="use28.7" href="#piece28.7" x="80" y="100" data-piece="28.7"></use>
-      <use id="use102.7" href="#piece102.7" x="90" y="100" data-piece="102.7"></use>
-      <use id="use153.7" href="#piece153.7" x="17" y="110" data-piece="153.7"></use>
-      <use id="use33.7" href="#piece33.7" x="22" y="110" data-piece="33.7"></use>
-      <use id="use119.7" href="#piece119.7" x="27" y="110" data-piece="119.7"></use>
-      <use id="use169.7" href="#piece169.7" x="32" y="110" data-piece="169.7"></use>
-      <use id="use57.7" href="#piece57.7" x="37" y="110" data-piece="57.7"></use>
-      <use id="use91.7" href="#piece91.7" x="42" y="110" data-piece="91.7"></use>
-      <use id="use118.7" href="#piece118.7" x="47" y="110" data-piece="118.7"></use>
-      <use id="use78.7" href="#piece78.7" x="52" y="110" data-piece="78.7"></use>
-      <use id="use120.7" href="#piece120.7" x="57" y="110" data-piece="120.7"></use>
-      <use id="use148.7" href="#piece148.7" x="62" y="110" data-piece="148.7"></use>
-      <use id="use90.7" href="#piece90.7" x="67" y="110" data-piece="90.7"></use>
-      <use id="use138.7" href="#piece138.7" x="72" y="110" data-piece="138.7"></use>
-      <use id="use35.7" href="#piece35.7" x="77" y="110" data-piece="35.7"></use>
-      <use id="use40.7" href="#piece40.7" x="82" y="110" data-piece="40.7"></use>
-      <use id="use99.7" href="#piece99.7" x="87" y="110" data-piece="99.7"></use>
-      <use id="use168.7" href="#piece168.7" x="92" y="110" data-piece="168.7"></use>
-      <use id="use11.7" href="#piece11.7" x="20" y="125" data-piece="11.7"></use>
-      <use id="use31.7" href="#piece31.7" x="30" y="125" data-piece="31.7"></use>
-      <use id="use45.7" href="#piece45.7" x="40" y="125" data-piece="45.7"></use>
-      <use id="use77.7" href="#piece77.7" x="50" y="125" data-piece="77.7"></use>
-      <use id="use84.7" href="#piece84.7" x="60" y="125" data-piece="84.7"></use>
-      <use id="use65.7" href="#piece65.7" x="70" y="125" data-piece="65.7"></use>
-      <use id="use68.7" href="#piece68.7" x="80" y="125" data-piece="68.7"></use>
-      <use id="use42.7" href="#piece42.7" x="90" y="125" data-piece="42.7"></use>
-      <use id="use167.7" href="#piece167.7" x="20" y="135" data-piece="167.7"></use>
-      <use id="use127.7" href="#piece127.7" x="30" y="135" data-piece="127.7"></use>
-      <use id="use62.7" href="#piece62.7" x="40" y="135" data-piece="62.7"></use>
-      <use id="use101.7" href="#piece101.7" x="50" y="135" data-piece="101.7"></use>
-      <use id="use17.7" href="#piece17.7" x="60" y="135" data-piece="17.7"></use>
-      <use id="use44.7" href="#piece44.7" x="70" y="135" data-piece="44.7"></use>
-      <use id="use100.7" href="#piece100.7" x="80" y="135" data-piece="100.7"></use>
-      <use id="use144.7" href="#piece144.7" x="90" y="135" data-piece="144.7"></use>
-      <use id="use117.7" href="#piece117.7" x="20" y="145" data-piece="117.7"></use>
-      <use id="use71.7" href="#piece71.7" x="30" y="145" data-piece="71.7"></use>
-      <use id="use60.7" href="#piece60.7" x="40" y="145" data-piece="60.7"></use>
-      <use id="use15.7" href="#piece15.7" x="50" y="145" data-piece="15.7"></use>
-      <use id="use157.7" href="#piece157.7" x="60" y="145" data-piece="157.7"></use>
-      <use id="use41.7" href="#piece41.7" x="70" y="145" data-piece="41.7"></use>
-      <use id="use83.7" href="#piece83.7" x="80" y="145" data-piece="83.7"></use>
-      <use id="use115.7" href="#piece115.7" x="90" y="145" data-piece="115.7"></use>
-      <use id="use86.7" href="#piece86.7" x="210" y="55" data-piece="86.7"></use>
-      <use id="use59.7" href="#piece59.7" x="220" y="55" data-piece="59.7"></use>
-      <use id="use73.7" href="#piece73.7" x="230" y="55" data-piece="73.7"></use>
-      <use id="use136.7" href="#piece136.7" x="240" y="55" data-piece="136.7"></use>
-      <use id="use121.7" href="#piece121.7" x="250" y="55" data-piece="121.7"></use>
-      <use id="use80.7" href="#piece80.7" x="260" y="55" data-piece="80.7"></use>
-      <use id="use23.7" href="#piece23.7" x="270" y="55" data-piece="23.7"></use>
-      <use id="use151.7" href="#piece151.7" x="280" y="55" data-piece="151.7"></use>
-      <use id="use162.7" href="#piece162.7" x="210" y="65" data-piece="162.7"></use>
-      <use id="use108.7" href="#piece108.7" x="220" y="65" data-piece="108.7"></use>
-      <use id="use135.7" href="#piece135.7" x="230" y="65" data-piece="135.7"></use>
-      <use id="use142.7" href="#piece142.7" x="240" y="65" data-piece="142.7"></use>
-      <use id="use107.7" href="#piece107.7" x="250" y="65" data-piece="107.7"></use>
-      <use id="use55.7" href="#piece55.7" x="260" y="65" data-piece="55.7"></use>
-      <use id="use53.7" href="#piece53.7" x="270" y="65" data-piece="53.7"></use>
-      <use id="use143.7" href="#piece143.7" x="280" y="65" data-piece="143.7"></use>
-      <use id="use67.7" href="#piece67.7" x="210" y="75" data-piece="67.7"></use>
-      <use id="use52.7" href="#piece52.7" x="220" y="75" data-piece="52.7"></use>
-      <use id="use76.7" href="#piece76.7" x="230" y="75" data-piece="76.7"></use>
-      <use id="use112.7" href="#piece112.7" x="240" y="75" data-piece="112.7"></use>
-      <use id="use22.7" href="#piece22.7" x="250" y="75" data-piece="22.7"></use>
-      <use id="use85.7" href="#piece85.7" x="260" y="75" data-piece="85.7"></use>
-      <use id="use13.7" href="#piece13.7" x="270" y="75" data-piece="13.7"></use>
-      <use id="use56.7" href="#piece56.7" x="280" y="75" data-piece="56.7"></use>
-      <use id="use92.7" href="#piece92.7" x="210" y="45" data-piece="92.7"></use>
-      <use id="use106.7" href="#piece106.7" x="220" y="45" data-piece="106.7"></use>
-      <use id="use21.7" href="#piece21.7" x="230" y="45" data-piece="21.7"></use>
-      <use id="use114.7" href="#piece114.7" x="240" y="45" data-piece="114.7"></use>
-      <use id="use97.7" href="#piece97.7" x="250" y="45" data-piece="97.7"></use>
-      <use id="use147.7" href="#piece147.7" x="260" y="45" data-piece="147.7"></use>
-      <use id="use137.7" href="#piece137.7" x="270" y="45" data-piece="137.7"></use>
-      <use id="use133.7" href="#piece133.7" x="280" y="45" data-piece="133.7"></use>
-      <use id="use96.7" href="#piece96.7" x="205" y="125" data-piece="96.7"></use>
-      <use id="use87.7" href="#piece87.7" x="215" y="125" data-piece="87.7"></use>
-      <use id="use156.7" href="#piece156.7" x="225" y="125" data-piece="156.7"></use>
-      <use id="use75.7" href="#piece75.7" x="235" y="125" data-piece="75.7"></use>
-      <use id="use95.7" href="#piece95.7" x="245" y="125" data-piece="95.7"></use>
-      <use id="use150.7" href="#piece150.7" x="255" y="125" data-piece="150.7"></use>
-      <use id="use24.7" href="#piece24.7" x="265" y="125" data-piece="24.7"></use>
-      <use id="use104.7" href="#piece104.7" x="275" y="125" data-piece="104.7"></use>
-      <use id="use116.7" href="#piece116.7" x="205" y="135" data-piece="116.7"></use>
-      <use id="use105.7" href="#piece105.7" x="215" y="135" data-piece="105.7"></use>
-      <use id="use98.7" href="#piece98.7" x="225" y="135" data-piece="98.7"></use>
-      <use id="use103.7" href="#piece103.7" x="235" y="135" data-piece="103.7"></use>
-      <use id="use37.7" href="#piece37.7" x="245" y="135" data-piece="37.7"></use>
-      <use id="use64.7" href="#piece64.7" x="255" y="135" data-piece="64.7"></use>
-      <use id="use74.7" href="#piece74.7" x="265" y="135" data-piece="74.7"></use>
-      <use id="use109.7" href="#piece109.7" x="275" y="135" data-piece="109.7"></use>
-      <use id="use128.7" href="#piece128.7" x="205" y="145" data-piece="128.7"></use>
-      <use id="use131.7" href="#piece131.7" x="215" y="145" data-piece="131.7"></use>
-      <use id="use50.7" href="#piece50.7" x="225" y="145" data-piece="50.7"></use>
-      <use id="use58.7" href="#piece58.7" x="235" y="145" data-piece="58.7"></use>
-      <use id="use12.7" href="#piece12.7" x="245" y="145" data-piece="12.7"></use>
-      <use id="use16.7" href="#piece16.7" x="255" y="145" data-piece="16.7"></use>
-      <use id="use79.7" href="#piece79.7" x="265" y="145" data-piece="79.7"></use>
-      <use id="use152.7" href="#piece152.7" x="275" y="145" data-piece="152.7"></use>
-      <use id="use61.7" href="#piece61.7" x="205" y="155" data-piece="61.7"></use>
-      <use id="use8.9" href="#piece8.9" x="215" y="155" data-piece="8.9"></use>
-      <use id="use7.9" href="#piece7.9" x="225" y="155" data-piece="7.9"></use>
-      <use id="use6.9" href="#piece6.9" x="235" y="155" data-piece="6.9"></use>
-      <use id="use5.9" href="#piece5.9" x="245" y="155" data-piece="5.9"></use>
-      <use id="use4.9" href="#piece4.9" x="255" y="155" data-piece="4.9"></use>
-      <use id="use3.9" href="#piece3.9" x="265" y="155" data-piece="3.9"></use>
-      <use id="use2.9" href="#piece2.9" x="275" y="155" data-piece="2.9"></use>
-      <use id="use1.9" href="#piece1.9" x="240" y="100" data-piece="1.9"></use>
-      <g id="defs_marker"></g>
-      <defs id="defs170.5"><g id="piece170.5" transform="" data-dragraise="45"><g transform="scale(0.38 0.38) translate(-121 -123)"><!-- otter.git#67b62ea1ec2e0c2855d08397cd599bf2a951da0b+ library/edited/chess-board.usvg CC-BY-SA-4.0, see library/edited/LICENCE -->
-<svg width="242" height="246" viewBox="0 0 242 246" xmlns="http://www.w3.org/2000/svg" xmlns:usvg="https://github.com/RazrFalcon/resvg" usvg:version="0.11.0">
-    <defs></defs>
-    <path id="rect2850" fill="#d18b47" stroke="#b0b0b0" stroke-width="0.99999994" d="M 16.5 18.5 L 225.5 18.5 L 225.5 227.5 L 16.5 227.5 Z"></path>
-    <path fill="none" stroke="#cccccc" d="M 21 13.5 C 27 15.5 20 17.5 22 20.5"></path>
-</svg>
-</g></g><path id="surround2.9" d="M 0 4.94923 a 4.94923 4.94923 0 1 0 0 -9.89846 a 4.94923 4.94923 0 1 0 0 9.89846 z"></path></defs>
-      <defs id="defs1.9"><g id="piece1.9" transform="" data-dragraise="10">
-
-<g transform="translate(-20,-7)">
-
-
-<rect y="0" fill="yellow" width="40" height="7"/>
-<rect y="7" fill="lightgreen" width="40" height="7"/>
-<!-- 
-    clock running                    yellow         >   &#x25b6;
-    clock would run but held         yellow         =   &#x2016;
-    other player                     white          :
-    clock stopped                    light blue     []  &#x25a1;
-    clock reset (both players only)  light green    O   &#x25cb;
-    flag                             white / red    F   &#x2691;
-    player missing                   pink               space
--->
-<rect fill="none" stroke="black" width="40" height="14"></rect>
-<clipPath id="clockclip42">
-        <rect width="40" height="14"></rect>
-</clipPath>
-<text x="1" y="6" font-family="Latin Modern Mono, monospace"
-      font-weight="700" font-size="6">123&#x25cb;</text>
-<text x="14" y="6" font-family="Latin Modern Mono, monospace"
-      font-weight="700" font-size="6">04</text>
-<text x="21" y="6" clip-path="url(#clockclip42)" font-size="4">Slartibartfast</text>
-<text x="1" y="13" fill="black"
-      style="font-variant-numeric:normal; font-family:monospace;" font-size="6">909&#x2691;99</text>
-<text x="27" y="13" background="blue" fill="pink" stroke="red"
-      stroke-width="0.1" clip-path="url(#clockclip42)" font-size="8">-</text>
-
-</g>
-
-    <use href="#surround1.9" stroke="black" fill="none" stroke-dasharray="3 1"></use></g><path id="surround1.9" d="M -27.500000000000004 -11 h 55.00000000000001 v 22 h -55.00000000000001 z"></path></defs>
-    </svg>
-
-<p>
-</p><div id="infopane">
-
- <div id="pane_help" class="somepane">
-  <div id="uos" class="uos">
-    <div class="uokey-l"><b>b</b> send to bottom (below other pieces)</div><div class="uokey-l"><b>l</b> rotate left</div><div class="uokey-l"><b>r</b> rotate right</div><div class="uos-mid" id="uos-mid"></div>
-  <div class="uokey-r"><b>P</b> Pin to table</div><div class="uokey-r"><b>W</b> Enter wresting mode</div></div>
-  <div class="uos">
-    <div class="uokey"><strong>Mouse</strong> select/deselect/drag</div>
-    <div class="uokey"><strong>shift</strong> multiple selection</div>
-    <div class="uokey">Show
-      <strong>H</strong> this help
-      <strong>U</strong> players
-    </div>
-  </div>
- </div>
-
- <div id="pane_players" class="somepane" style="display:none">
-  <div id="player_list_columns">
-<div><strong>Players</strong> (<strong>H</strong>/<strong>U</strong>: return to help)</div>
-  <div id="player_list">
-
-<!-- Copyright 2020-2021 Ian Jackson and contributors to Otter
-     SPDX-License-Identifier: AGPL-3.0-or-later
-     There is NO WARRANTY. -->
-
-<div class="player">
-<span class="player_num">#1</span>
-<span class="nick">alice</span>
-<span class="account">[server:alice]</span>
-</div>
-
-<div class="player">
-<span class="player_num">#2</span>
-<span class="nick">bob</span>
-<span class="account">[server:bob]</span>
-</div>
-
-
-  </div>
-  </div>
- </div>
-
-</div>
-
-
-<p>
-  </p><div id="logscroll" style="overflow-y: scroll; height: 200px;">
-    <table id="log">
-      
-      <tbody><tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:40 +0000</td></tr>
-      <tr><td class="logmsg">alice [server:alice] joined the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">bob [server:bob] joined the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] set the link <a href="https://www.example.org/newinfo">Info</a></td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] removed the link Info</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:42 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:05:55 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:06:56 +0000</td></tr>
-      <tr><td class="logmsg">alice grasped the chess clock</td><td class="logts">2021-03-16 18:15:23 +0000</td></tr>
-      <tr><td class="logmsg">alice released the chess clock</td><td class="logts">2021-03-16 18:15:25 +0000</td></tr>
-      <tr><td class="logmsg">alice grasped the chess clock</td><td class="logts">2021-03-16 18:15:26 +0000</td></tr>
-      <tr><td class="logmsg">alice released the chess clock</td><td class="logts">2021-03-16 18:15:26 +0000</td></tr>
-      <tr><td class="logmsg">alice grasped the chess clock</td><td class="logts">2021-03-16 18:15:26 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">[server:] (re)configured the game</td><td class="logts">2021-03-16 18:16:01 +0000</td></tr>
-      <tr><td class="logmsg">alice grasped the chess clock</td><td class="logts">2021-03-16 18:16:07 +0000</td></tr>
-    </tbody></table>
-  </div>
-</div>
-
-  <div class="footer">
-    <!--
-         this affects the document's overall scrollbars
-         which is not what we want.  so get rid of it for now
-    <div class="footer"; style="
-         height: 100vw;
-         width: 200vw;
-         left: -50vw;
-         overflow-y: clip;
-         position: absolute;
-         z-index: -1;
-     "><!-- this fills in the rest of the page, including the margins
-         --x
-    </div>
-    -->
-    <hr>
-    <address style="max-height: 100vh;">
-      This server is running Otter, the Online TableTop Environment
-      Renderer.  Otter and its shape (piece picture) libraries
-      are <a href="http://localhost:8000/_/libre">Free Software</a> and come with NO
-      WARRANTY.
-  </address></div>
-
-</body></html>
diff --git a/server dummy - alice - Otter_files/script.js b/server dummy - alice - Otter_files/script.js
deleted file mode 100644 (file)
index ce3a40a..0000000
+++ /dev/null
@@ -1,1163 +0,0 @@
-"use strict";
-// -*- JavaScript -*-
-// autogenerated from templates/script.ts webassembly-types/webassembly.d.ts templates/otter_wasm.ns.d.ts
-// -*- JavaScript -*-
-
-// Copyright 2020-2021 Ian Jackson and contributors to Otter
-// SPDX-License-Identifier: AGPL-3.0-or-later
-// There is NO WARRANTY. -->
-
-// elemnts for a piece
-//
-// In svg toplevel
-//
-//   uelem
-//      #use{}
-//      <use id="use{}", href="#piece{}" x= y= >
-//         .piece   piece id (static)
-//      container to allow quick movement and hang stuff off
-//
-//   delem
-//      #defs{}
-//      <def id="defs{}">
-//
-// And in each delem
-//
-//   pelem
-//   #piece{}
-//         .dragraise   dragged more than this ?  raise to top!
-//      <g id="piece{}" >
-//      currently-displayed version of the piece
-//      to allow addition/removal of selected indication
-//      contains 1 or 3 subelements:
-//      one is straight from server and not modified
-//      one is possible <use href="#select{}" >
-//      one is possible <use href="#halo{}" >
-//
-//   #select{}
-//      generated by server, referenced by JS in pelem for selection
-//
-//   #def.{}.stuff
-//      generated by server, reserved for Piece trait impl
-
-let wasm;
-var pieces = Object.create(null);
-;
-// todo turn all var into let
-// todo any exceptions should have otter in them or something
-var globalinfo_elem;
-var layout;
-var held_surround_colour;
-var general_timeout = 10000;
-var messages = Object();
-var pieceops = Object();
-var update_error_handlers = Object();
-var piece_error_handlers = Object();
-var our_dnd_type = "text/puvnex-game-server-dummy";
-var api_queue = [];
-var api_posting = false;
-var us;
-var gen = 0;
-var cseq = 0;
-var ctoken;
-var uo_map = Object.create(null);
-var keyops_local = Object();
-var last_log_ts;
-var last_zoom_factor = 1.0;
-var firefox_bug_zoom_factor_compensation = 1.0;
-var gen_update_hook = function () { };
-var svg_ns;
-var space;
-var pieces_marker;
-var defs_marker;
-var log_elem;
-var logscroll_elem;
-var status_node;
-var uos_node;
-var zoom_val;
-var zoom_btn;
-var links_elem;
-var wresting;
-const pane_keys = {
-    "H": "help",
-    "U": "players",
-};
-const uo_kind_prec = {
-    'GlobalExtra': 50,
-    'Client': 70,
-    'Global': 100,
-    'Piece': 200,
-    'ClientExtra': 500,
-};
-var players;
-var movements = [];
-function xhr_post_then(url, data, good) {
-    var xhr = new XMLHttpRequest();
-    xhr.onreadystatechange = function () {
-        if (xhr.readyState != XMLHttpRequest.DONE) {
-            return;
-        }
-        if (xhr.status != 200) {
-            xhr_report_error(xhr);
-        }
-        else {
-            good(xhr);
-        }
-    };
-    xhr.timeout = general_timeout;
-    xhr.open('POST', url);
-    xhr.setRequestHeader('Content-Type', 'application/json');
-    xhr.send(data);
-}
-function xhr_report_error(xhr) {
-    json_report_error({
-        statusText: xhr.statusText,
-        responseText: xhr.responseText,
-    });
-}
-function json_report_error(error_for_json) {
-    let error_message = JSON.stringify(error_for_json);
-    string_report_error(error_message);
-}
-function string_report_error(error_message) {
-    let errornode = document.getElementById('error');
-    errornode.textContent += '\nError (reloading may help?):' + error_message;
-    console.error("ERROR reported via log", error_message);
-    // todo want to fix this for at least basic game reconfigs, auto-reload?
-}
-function api(meth, data) {
-    api_queue.push([meth, data]);
-    api_check();
-}
-function api_delay(meth, data) {
-    if (api_queue.length == 0)
-        window.setTimeout(api_check, 10);
-    api_queue.push([meth, data]);
-}
-function api_check() {
-    if (api_posting) {
-        return;
-    }
-    if (!api_queue.length) {
-        return;
-    }
-    do {
-        var [meth, data] = api_queue.shift();
-        if (meth != 'm')
-            break;
-        let piece = data.piece;
-        let p = pieces[piece];
-        if (p == null)
-            break;
-        p.queued_moves--;
-        if (p.queued_moves == 0)
-            break;
-    } while (1);
-    api_posting = true;
-    xhr_post_then('/_/api/' + meth, JSON.stringify(data), api_posted);
-}
-function api_posted() {
-    api_posting = false;
-    api_check();
-}
-function api_piece(f, meth, piece, p, op) {
-    clear_halo(piece, p);
-    cseq += 1;
-    p.cseq = cseq;
-    f(meth, {
-        ctoken: ctoken,
-        piece: piece,
-        gen: gen,
-        cseq: cseq,
-        op: op,
-    });
-}
-function svg_element(id) {
-    let elem = document.getElementById(id);
-    return elem;
-}
-function piece_element(base, piece) {
-    return svg_element(base + piece);
-}
-// ----- key handling -----
-function recompute_keybindings() {
-    uo_map = Object.create(null);
-    let all_targets = [];
-    for (let piece of Object.keys(pieces)) {
-        let p = pieces[piece];
-        if (p.held != us)
-            continue;
-        all_targets.push(piece);
-        for (var uo of p.uos) {
-            let currently = uo_map[uo.def_key];
-            if (currently === null)
-                continue;
-            if (currently !== undefined) {
-                if (currently.opname != uo.opname) {
-                    uo_map[uo.def_key] = null;
-                    continue;
-                }
-            }
-            else {
-                currently = Object.assign({ targets: [] }, uo);
-                uo_map[uo.def_key] = currently;
-            }
-            currently.desc = currently.desc < uo.desc ? currently.desc : uo.desc;
-            currently.targets.push(piece);
-        }
-    }
-    let add_uo = function (targets, uo) {
-        uo_map[uo.def_key] = Object.assign({ targets: targets }, uo);
-    };
-    if (all_targets.length) {
-        add_uo(all_targets, {
-            def_key: 'l',
-            kind: 'Client',
-            wrc: 'Predictable',
-            opname: "left",
-            desc: "rotate left",
-        });
-        add_uo(all_targets, {
-            def_key: 'r',
-            kind: 'Client',
-            wrc: 'Predictable',
-            opname: "right",
-            desc: "rotate right",
-        });
-        add_uo(all_targets, {
-            def_key: 'b',
-            kind: 'Client',
-            wrc: 'Predictable',
-            opname: "lower",
-            desc: "send to bottom (below other pieces)",
-        });
-    }
-    if (all_targets.length) {
-        let got = 0;
-        for (let t of all_targets) {
-            got |= 1 << Number(pieces[t].pinned);
-        }
-        if (got == 1) {
-            add_uo(all_targets, {
-                def_key: 'P',
-                kind: 'ClientExtra',
-                opname: 'pin',
-                desc: 'Pin to table',
-                wrc: 'Predictable',
-            });
-        }
-        else if (got == 2) {
-            add_uo(all_targets, {
-                def_key: 'P',
-                kind: 'ClientExtra',
-                opname: 'unpin',
-                desc: 'Unpin from table',
-                wrc: 'Predictable',
-            });
-        }
-    }
-    add_uo(null, {
-        def_key: 'W',
-        kind: 'ClientExtra',
-        opname: 'wrest',
-        desc: wresting ? 'Exit wresting mode' : 'Enter wresting mode',
-        wrc: 'Predictable',
-    });
-    var uo_keys = Object.keys(uo_map);
-    uo_keys.sort(function (ak, bk) {
-        let a = uo_map[ak];
-        let b = uo_map[bk];
-        return uo_kind_prec[a.kind] - uo_kind_prec[b.kind]
-            || ak.localeCompare(bk);
-    });
-    let mid_elem = null;
-    for (let celem = uos_node.firstElementChild; celem != null; celem = nextelem) {
-        var nextelem = celem.nextElementSibling;
-        let cid = celem.getAttribute("id");
-        if (cid == "uos-mid")
-            mid_elem = celem;
-        else if (celem.getAttribute("class") == 'uos-mid') { }
-        else
-            celem.remove();
-    }
-    for (var kk of uo_keys) {
-        let uo = uo_map[kk];
-        let prec = uo_kind_prec[uo.kind];
-        let ent = document.createElement('div');
-        ent.innerHTML = '<b>' + kk + '</b> ' + uo.desc;
-        if (prec < 400) {
-            ent.setAttribute('class', 'uokey-l');
-            uos_node.insertBefore(ent, mid_elem);
-        }
-        else {
-            ent.setAttribute('class', 'uokey-r');
-            uos_node.appendChild(ent);
-        }
-    }
-}
-function some_keydown(e) {
-    // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event
-    // says to do this, something to do with CJK composition.
-    // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
-    // says that keyCode is deprecated
-    // my tsc says this isComposing thing doesn't exist.  wat.
-    if (e.isComposing /* || e.keyCode === 229 */)
-        return;
-    if (e.ctrlKey || e.altKey || e.metaKey)
-        return;
-    let pane = pane_keys[e.key];
-    if (pane) {
-        return pane_switch(pane);
-    }
-    let uo = uo_map[e.key];
-    if (uo === undefined || uo === null)
-        return;
-    console.log('KEY UO', e, uo);
-    if (uo.kind == 'Client' || uo.kind == 'ClientExtra') {
-        let f = keyops_local[uo.opname];
-        f(uo);
-        return;
-    }
-    if (!(uo.kind == 'Global' || uo.kind == 'GlobalExtra' || uo.kind == 'Piece'))
-        throw 'bad kind ' + uo.kind;
-    for (var piece of uo.targets) {
-        let p = pieces[piece];
-        api_piece(api, 'k', piece, p, { opname: uo.opname, wrc: uo.wrc });
-        if (uo.wrc == 'UpdateSvg') {
-            p.cseq_updatesvg = p.cseq;
-            redisplay_ancillaries(piece, p);
-        }
-    }
-}
-function pane_switch(newpane) {
-    let new_e;
-    for (;;) {
-        new_e = document.getElementById('pane_' + newpane);
-        let style = new_e.getAttribute('style');
-        if (style || newpane == 'help')
-            break;
-        newpane = 'help';
-    }
-    for (let old_e = new_e.parentElement.firstElementChild; old_e; old_e = old_e.nextElementSibling) {
-        old_e.setAttribute('style', 'display: none;');
-    }
-    new_e.removeAttribute('style');
-}
-keyops_local['left'] = function (uo) { rotate_targets(uo, +1); };
-keyops_local['right'] = function (uo) { rotate_targets(uo, -1); };
-function rotate_targets(uo, dangle) {
-    for (let piece of uo.targets) {
-        let p = pieces[piece];
-        p.angle += dangle + 8;
-        p.angle %= 8;
-        let transform = wasm_bindgen.angle_transform(p.angle);
-        p.pelem.setAttributeNS(null, 'transform', transform);
-        api_piece(api, 'rotate', piece, p, p.angle);
-    }
-    recompute_keybindings();
-    return true;
-}
-keyops_local['lower'] = function (uo) { lower_targets(uo); };
-function lower_targets(uo) {
-    function target_treat_pinned(p) {
-        return wresting || p.pinned;
-        ;
-    }
-    let targets_todo = Object.create(null);
-    for (let piece of uo.targets) {
-        let p = pieces[piece];
-        let pinned = target_treat_pinned(p);
-        targets_todo[piece] = { p, piece, pinned, };
-    }
-    let problem = lower_pieces(targets_todo);
-    if (problem !== null) {
-        add_log_message('Cannot lower: ' + problem);
-        return false;
-    }
-    return true;
-}
-function lower_pieces(targets_todo) {
-    // This is a bit subtle.  We don't want to lower below pinned pieces
-    // (unless we are pinned too, or the user is wresting).  But maybe
-    // the pinned pieces aren't already at the bottom.  For now we will
-    // declare that all pinned pieces "should" be below all non-pinned
-    // ones.  Not as an invariant, but as a thing we will do here to try
-    // to make a sensible result.  We implement this as follows: if we
-    // find pinned pieces above non-pinned pieces, we move those pinned
-    // pieces to the bottom too, just below us, preserving their
-    // relative order.
-    //
-    // Disregarding pinned targets:
-    //
-    // Z     <some stuff not including any unpinned targets>
-    // Z
-    //       topmost unpinned target         *
-    // B (
-    // B     unpinned non-target
-    // B |   unpinned target                 *
-    // B |   pinned non-target, mis-stacked  *
-    // B )*
-    // B
-    //       bottommost unpinned non-target
-    //        if that is below topmost unpinned target
-    //            <- tomove_unpinned: insert targets from * here        Q ->
-    //            <- tomove_misstacked: insert non-targets from * here  Q->
-    // A
-    // A     pinned things (nomove_pinned)
-    //            <- tomove_pinned: insert all pinned targets here      P ->
-    //
-    // When wresting, treat all targets as pinned.
-    // bottom of the stack order first
-    let tomove_unpinned = [];
-    let tomove_misstacked = [];
-    let nomove_pinned = [];
-    let tomove_pinned = [];
-    let bottommost_unpinned = null;
-    let n_targets_todo_unpinned = 0;
-    for (const piece of Object.keys(targets_todo)) {
-        let p = targets_todo[piece];
-        if (!p.pinned)
-            n_targets_todo_unpinned++;
-    }
-    let walk = pieces_marker;
-    for (;;) { // starting at the bottom of the stack order
-        if (n_targets_todo_unpinned == 0
-            && bottommost_unpinned !== null) {
-            // no unpinned targets left, state Z, we can stop now
-            console.log('LOWER STATE Z FINISHED');
-            break;
-        }
-        if (Object.keys(targets_todo).length == 0 &&
-            bottommost_unpinned !== null) {
-            console.log('LOWER NO TARGETS BUT UNPINNED!', n_targets_todo_unpinned);
-            break;
-        }
-        let new_walk = walk.nextElementSibling;
-        if (new_walk == null) {
-            console.log('LOWER WALK NO SIBLING!');
-            break;
-        }
-        walk = new_walk;
-        let piece = walk.dataset.piece;
-        if (piece == null) {
-            console.log('LOWER WALK REACHED TOP');
-            break;
-        }
-        let todo = targets_todo[piece];
-        if (todo) {
-            console.log('LOWER WALK', piece, 'TODO', todo.pinned);
-            delete targets_todo[piece];
-            if (!todo.pinned)
-                n_targets_todo_unpinned--;
-            (todo.pinned ? tomove_pinned : tomove_unpinned).push(todo);
-            continue;
-        }
-        let p = pieces[piece];
-        if (bottommost_unpinned === null) { // state A
-            if (!p.pinned) {
-                console.log('LOWER WALK', piece, 'STATE A -> Z');
-                bottommost_unpinned = { p, piece };
-            }
-            else {
-                console.log('LOWER WALK', piece, 'STATE A');
-                nomove_pinned.push({ p, piece });
-            }
-            continue;
-        }
-        // state B
-        if (p.pinned) {
-            console.log('LOWER WALK', piece, 'STATE B MIS-STACKED');
-            tomove_misstacked.push({ p, piece });
-        }
-        else {
-            console.log('LOWER WALK', piece, 'STATE B');
-        }
-    }
-    let z_top = bottommost_unpinned ? bottommost_unpinned.p.z :
-        walk.dataset.piece != null ? pieces[walk.dataset.piece].z :
-            // rather a lack of things we are not adjusting!
-            wasm_bindgen.def_zcoord();
-    let plan = [];
-    let partQ = tomove_unpinned.concat(tomove_misstacked);
-    let partP = tomove_pinned;
-    if (nomove_pinned.length == 0) {
-        plan.push({
-            content: partQ.concat(partP),
-            z_top,
-            z_bot: null,
-        });
-    }
-    else {
-        plan.push({
-            content: partQ,
-            z_top,
-            z_bot: nomove_pinned[nomove_pinned.length - 1].p.z,
-        }, {
-            content: partP,
-            z_top: nomove_pinned[0].p.z,
-            z_bot: null,
-        });
-    }
-    console.log('LOWER PLAN', plan);
-    for (const pe of plan) {
-        for (const e of pe.content) {
-            if (e.p.held != null && e.p.held != us) {
-                return "lowering would disturb a piece held by another player";
-            }
-        }
-    }
-    z_top = null;
-    for (const pe of plan) {
-        if (pe.z_top != null)
-            z_top = pe.z_top;
-        let z_bot = pe.z_bot;
-        let zrange = wasm_bindgen.range(z_bot, z_top, pe.content.length);
-        console.log('LOQER PLAN PE', pe, z_bot, z_top, pe.content.length, zrange.debug());
-        for (const e of pe.content) {
-            let p = e.p;
-            piece_set_zlevel(e.piece, p, (oldtop_piece) => {
-                let z = zrange.next();
-                p.z = z;
-                api_piece(api, "setz", e.piece, e.p, { z });
-            });
-        }
-    }
-    return null;
-}
-keyops_local['wrest'] = function (uo) {
-    wresting = !wresting;
-    document.getElementById('wresting-warning').innerHTML = !wresting ? "" :
-        " <strong>(wresting mode!)</strong>";
-    ungrab_all();
-    recompute_keybindings();
-};
-keyops_local['pin'] = function (uo) {
-    if (!lower_targets(uo))
-        return;
-    pin_unpin(uo, true);
-};
-keyops_local['unpin'] = function (uo) {
-    pin_unpin(uo, false);
-};
-function pin_unpin(uo, newpin) {
-    for (let piece of uo.targets) {
-        let p = pieces[piece];
-        p.pinned = newpin;
-        api_piece(api, 'pin', piece, p, newpin);
-        redisplay_ancillaries(piece, p);
-    }
-    recompute_keybindings();
-}
-var DRAGGING;
-(function (DRAGGING) {
-    DRAGGING[DRAGGING["NO"] = 0] = "NO";
-    DRAGGING[DRAGGING["MAYBE_GRAB"] = 1] = "MAYBE_GRAB";
-    DRAGGING[DRAGGING["MAYBE_UNGRAB"] = 2] = "MAYBE_UNGRAB";
-    DRAGGING[DRAGGING["YES"] = 4] = "YES";
-    DRAGGING[DRAGGING["RAISED"] = 8] = "RAISED";
-})(DRAGGING || (DRAGGING = {}));
-;
-var drag_pieces = [];
-var dragging = DRAGGING.NO;
-var dcx;
-var dcy;
-const DRAGTHRESH = 5;
-function drag_add_piece(piece, p) {
-    drag_pieces.push({
-        piece: piece,
-        dox: parseFloat(p.uelem.getAttributeNS(null, "x")),
-        doy: parseFloat(p.uelem.getAttributeNS(null, "y")),
-    });
-}
-function some_mousedown(e) {
-    console.log('mousedown', e, e.clientX, e.clientY, e.target);
-    if (e.button != 0) {
-        return;
-    }
-    if (e.altKey) {
-        return;
-    }
-    if (e.metaKey) {
-        return;
-    }
-    if (e.ctrlKey) {
-        return;
-    }
-    else {
-        drag_mousedown(e, e.shiftKey);
-    }
-}
-function drag_mousedown(e, shifted) {
-    var target = e.target; // we check this just now!
-    var piece = target.dataset.piece;
-    if (!piece) {
-        if (!shifted) {
-            ungrab_all();
-        }
-        return;
-    }
-    let p = pieces[piece];
-    let held = p.held;
-    drag_cancel();
-    drag_pieces = [];
-    if (held == us) {
-        dragging = DRAGGING.MAYBE_UNGRAB;
-        drag_add_piece(piece, p); // contrive to have this one first
-        for (let tpiece of Object.keys(pieces)) {
-            if (tpiece == piece)
-                continue;
-            let tp = pieces[tpiece];
-            if (tp.held != us)
-                continue;
-            drag_add_piece(tpiece, tp);
-        }
-    }
-    else if (held == null || wresting) {
-        // xxx prevent clicking on anything that is occulting, unless wresting
-        if (!shifted) {
-            ungrab_all();
-        }
-        if (p.pinned && !wresting) {
-            add_log_message('That piece is pinned to the table.');
-            return;
-        }
-        dragging = DRAGGING.MAYBE_GRAB;
-        drag_add_piece(piece, p);
-        set_grab(piece, p, us);
-        api_piece(api, wresting ? 'wrest' : 'grab', piece, p, {});
-    }
-    else {
-        add_log_message('That piece is held by another player.');
-        return;
-    }
-    dcx = e.clientX;
-    dcy = e.clientY;
-    window.addEventListener('mousemove', drag_mousemove, true);
-    window.addEventListener('mouseup', drag_mouseup, true);
-}
-function ungrab_all() {
-    for (let tpiece of Object.keys(pieces)) {
-        let tp = pieces[tpiece];
-        if (tp.held == us) {
-            set_ungrab(tpiece, tp);
-            api_piece(api, 'ungrab', tpiece, tp, {});
-        }
-    }
-}
-function set_grab(piece, p, owner) {
-    p.held = owner;
-    redisplay_ancillaries(piece, p);
-    recompute_keybindings();
-}
-function set_ungrab(piece, p) {
-    p.held = null;
-    redisplay_ancillaries(piece, p);
-    recompute_keybindings();
-}
-function clear_halo(piece, p) {
-    p.last_seen_moved = null;
-    redisplay_ancillaries(piece, p);
-}
-function ancillary_node(piece, stroke) {
-    var nelem = document.createElementNS(svg_ns, 'use');
-    nelem.setAttributeNS(null, 'href', '#surround' + piece);
-    nelem.setAttributeNS(null, 'stroke', stroke);
-    nelem.setAttributeNS(null, 'fill', 'none');
-    return nelem;
-}
-function redisplay_ancillaries(piece, p) {
-    let href = '#surround' + piece;
-    console.log('REDISPLAY ANCILLARIES', href);
-    for (let celem = p.pelem.firstElementChild; celem != null; celem = nextelem) {
-        var nextelem = celem.nextElementSibling;
-        let thref = celem.getAttributeNS(null, "href");
-        if (thref == href) {
-            celem.remove();
-        }
-    }
-    let halo_colour = null;
-    if (p.cseq_updatesvg != null) {
-        halo_colour = 'purple';
-    }
-    else if (p.last_seen_moved != null) {
-        halo_colour = 'yellow';
-    }
-    else if (p.held != null && p.pinned) {
-        halo_colour = '#8cf';
-    }
-    if (halo_colour != null) {
-        let nelem = ancillary_node(piece, halo_colour);
-        if (p.held != null) {
-            nelem.setAttributeNS(null, 'stroke-width', '2px');
-        }
-        p.pelem.prepend(nelem);
-    }
-    if (p.held != null) {
-        let da = players[p.held].dasharray;
-        let nelem = ancillary_node(piece, held_surround_colour);
-        nelem.setAttributeNS(null, 'stroke-dasharray', da);
-        p.pelem.appendChild(nelem);
-    }
-}
-function drag_mousemove(e) {
-    var ctm = space.getScreenCTM();
-    var ddx = (e.clientX - dcx) / (ctm.a * firefox_bug_zoom_factor_compensation);
-    var ddy = (e.clientY - dcy) / (ctm.d * firefox_bug_zoom_factor_compensation);
-    var ddr2 = ddx * ddx + ddy * ddy;
-    if (!(dragging & DRAGGING.YES)) {
-        if (ddr2 > DRAGTHRESH) {
-            dragging |= DRAGGING.YES;
-        }
-    }
-    //console.log('mousemove', ddx, ddy, dragging);
-    if (dragging & DRAGGING.YES) {
-        console.log('DRAG PIECES', drag_pieces);
-        for (let dp of drag_pieces) {
-            console.log('DRAG PIECES PIECE', dp);
-            let tpiece = dp.piece;
-            let tp = pieces[tpiece];
-            var x = Math.round(dp.dox + ddx);
-            var y = Math.round(dp.doy + ddy);
-            tp.uelem.setAttributeNS(null, "x", x + "");
-            tp.uelem.setAttributeNS(null, "y", y + "");
-            tp.queued_moves++;
-            api_piece(api_delay, 'm', tpiece, tp, [x, y]);
-        }
-        if (!(dragging & DRAGGING.RAISED) && drag_pieces.length == 1) {
-            let dp = drag_pieces[0];
-            let piece = dp.piece;
-            let p = pieces[piece];
-            let dragraise = +p.pelem.dataset.dragraise;
-            if (dragraise > 0 && ddr2 >= dragraise * dragraise) {
-                dragging |= DRAGGING.RAISED;
-                console.log('CHECK RAISE ', dragraise, dragraise * dragraise, ddr2);
-                piece_set_zlevel(piece, p, (oldtop_piece) => {
-                    let oldtop_p = pieces[oldtop_piece];
-                    let z = wasm_bindgen.increment(oldtop_p.z);
-                    p.z = z;
-                    api_piece(api, "setz", piece, p, { z: z });
-                });
-            }
-        }
-    }
-    return ddr2;
-}
-function drag_mouseup(e) {
-    console.log('mouseup', dragging);
-    let ddr2 = drag_mousemove(e);
-    drag_end();
-}
-function drag_end() {
-    if (dragging == DRAGGING.MAYBE_UNGRAB ||
-        (dragging & ~DRAGGING.RAISED) == (DRAGGING.MAYBE_GRAB | DRAGGING.YES)) {
-        let dp = drag_pieces[0];
-        let piece = dp.piece;
-        let p = pieces[piece];
-        set_ungrab(piece, p);
-        api_piece(api, 'ungrab', piece, p, {});
-    }
-    drag_cancel();
-}
-function drag_cancel() {
-    window.removeEventListener('mousemove', drag_mousemove, true);
-    window.removeEventListener('mouseup', drag_mouseup, true);
-    dragging = DRAGGING.NO;
-    drag_pieces = [];
-}
-messages.AddPlayer = function (j) {
-    players[j.player] = j.data;
-    player_info_pane_set(j);
-};
-messages.RemovePlayer = function (j) {
-    delete players[j.player];
-    player_info_pane_set(j);
-};
-function player_info_pane_set(j) {
-    document.getElementById('player_list')
-        .innerHTML = j.new_info_pane;
-}
-messages.SetLinks = function (msg) {
-    if (msg.length != 0 && layout == 'Portrait') {
-        msg += " |";
-    }
-    links_elem.innerHTML = msg;
-};
-// ----- logs -----
-messages.Log = function (j) {
-    add_timestamped_log_message(j.when, j.logent.html);
-};
-function add_log_message(msg_html) {
-    add_timestamped_log_message('', msg_html);
-}
-function add_timestamped_log_message(ts_html, msg_html) {
-    var lastent = log_elem.lastElementChild;
-    var in_scrollback = lastent == null ||
-        // inspired by
-        //   https://stackoverflow.com/questions/487073/how-to-check-if-element-is-visible-after-scrolling/21627295#21627295
-        // rejected
-        //   https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
-        (() => {
-            let le_top = lastent.getBoundingClientRect().top;
-            let le_bot = lastent.getBoundingClientRect().bottom;
-            let ld_bot = logscroll_elem.getBoundingClientRect().bottom;
-            console.log("ADD_LOG_MESSAGE bboxes: le t b, bb", le_top, le_bot, ld_bot);
-            return 0.5 * (le_bot + le_top) > ld_bot;
-        })();
-    console.log('ADD LOG MESSAGE ', in_scrollback, layout, msg_html);
-    var ne;
-    function add_thing(elemname, cl, html) {
-        var ie = document.createElement(elemname);
-        ie.innerHTML = html;
-        ie.setAttribute("class", cl);
-        ne.appendChild(ie);
-    }
-    if (layout == 'Portrait') {
-        ne = document.createElement('tr');
-        add_thing('td', 'logmsg', msg_html);
-        add_thing('td', 'logts', ts_html);
-    }
-    else if (layout == 'Landscape') {
-        ts_html = last_log_ts.update(ts_html);
-        ne = document.createElement('div');
-        add_thing('span', 'logts', ts_html);
-        ne.appendChild(document.createElement('br'));
-        add_thing('span', 'logmsg', msg_html);
-        ne.appendChild(document.createElement('br'));
-    }
-    else {
-        throw 'bad layout ' + layout;
-    }
-    log_elem.appendChild(ne);
-    if (!in_scrollback) {
-        logscroll_elem.scrollTop = logscroll_elem.scrollHeight;
-    }
-}
-// ----- zoom -----
-function zoom_pct() {
-    let str = zoom_val.value;
-    let val = parseFloat(str);
-    if (isNaN(val)) {
-        return undefined;
-    }
-    else {
-        return val;
-    }
-}
-function zoom_enable() {
-    zoom_btn.disabled = (zoom_pct() === undefined);
-}
-function zoom_activate() {
-    let pct = zoom_pct();
-    if (pct !== undefined) {
-        let fact = pct * 0.01;
-        let last_ctm_a = space.getScreenCTM().a;
-        document.getElementsByTagName('body')[0]
-            .style.transform = 'scale(' + fact + ',' + fact + ')';
-        if (fact != last_zoom_factor) {
-            if (last_ctm_a == space.getScreenCTM().a) {
-                console.log('FIREFOX GETSCREENCTM BUG');
-                firefox_bug_zoom_factor_compensation = fact;
-            }
-            else {
-                console.log('No firefox getscreenctm bug');
-                firefox_bug_zoom_factor_compensation = 1.0;
-            }
-            last_zoom_factor = fact;
-        }
-    }
-    zoom_btn.disabled = true;
-}
-function handle_piece_update(j) {
-    console.log('PIECE UPDATE ', j);
-    var piece = j.piece;
-    var m = j.op;
-    var k = Object.keys(m)[0];
-    let p = pieces[piece];
-    pieceops[k](piece, p, m[k]);
-}
-;
-messages.Piece = handle_piece_update;
-pieceops.ModifyQuiet = function (piece, p, info) {
-    console.log('PIECE UPDATE MODIFY QUIET ', piece, info);
-    piece_modify(piece, p, info, false);
-};
-pieceops.Modify = function (piece, p, info) {
-    console.log('PIECE UPDATE MODIFY LOuD ', piece, info);
-    piece_note_moved(piece, p);
-    piece_modify(piece, p, info, false);
-};
-piece_error_handlers.PosOffTable = function () { return true; };
-piece_error_handlers.Conflict = function () { return true; };
-function piece_modify(piece, p, info, conflict_expected) {
-    p.delem.innerHTML = info.svg;
-    p.pelem = piece_element('piece', piece);
-    p.uelem.setAttributeNS(null, "x", info.pos[0] + "");
-    p.uelem.setAttributeNS(null, "y", info.pos[1] + "");
-    p.held = info.held;
-    p.pinned = info.pinned;
-    p.angle = info.angle;
-    p.uos = info.uos;
-    piece_set_zlevel(piece, p, (oldtop_piece) => {
-        p.z = info.z;
-        p.zg = info.zg;
-    });
-    piece_checkconflict_nrda(piece, p, conflict_expected);
-    redisplay_ancillaries(piece, p);
-    recompute_keybindings();
-    console.log('MODIFY DONE');
-}
-/*
-pieceops.Insert = <PieceHandler>function
-(piece: PieceId, p: null,
- info: { svg: string, held: PlayerId, pos: Pos, z: number, zg: Generation}) {
-  console.log('PIECE UPDATE INSERT ',piece,info)
-  delem = document.createElementNS(svg_ns,'defs');
-  delem.setAttributeNS(null,'id','defs'+piece);
-  delem.innerHTML = info.svg;
-  space.appendChild(delem);
-  pelem =
-
-  nelem.setAttributeNS(null,'stroke',stroke);
-  nelem.setAttributeNS(null,'fill','none');
-*/
-function piece_set_zlevel(piece, p, modify) {
-    // Calls modify, which should set .z and/or .gz, and/or
-    // make any necessary API call.
-    //
-    // Then moves uelem to the right place in the DOM.  This is done
-    // by assuming that uelem ought to go at the end, so this is
-    // O(new depth), which is right (since the UI for inserting
-    // an object is itself O(new depth) UI operations to prepare.
-    let oldtop_elem = defs_marker.previousElementSibling;
-    let oldtop_piece = oldtop_elem.dataset.piece;
-    modify(oldtop_piece);
-    let ins_before = defs_marker;
-    let earlier_elem;
-    for (;; ins_before = earlier_elem) {
-        earlier_elem = ins_before.previousElementSibling;
-        if (earlier_elem == pieces_marker)
-            break;
-        if (earlier_elem == p.uelem)
-            continue;
-        let earlier_p = pieces[earlier_elem.dataset.piece];
-        if (!piece_z_before(p, earlier_p))
-            break;
-    }
-    if (ins_before != p.uelem)
-        space.insertBefore(p.uelem, ins_before);
-}
-function piece_note_moved(piece, p) {
-    let now = performance.now();
-    let need_redisplay = p.last_seen_moved == null;
-    p.last_seen_moved = now;
-    if (need_redisplay)
-        redisplay_ancillaries(piece, p);
-    let cutoff = now - 1000.;
-    while (movements.length > 0 && movements[0].this_motion < cutoff) {
-        let mr = movements.shift();
-        if (mr.p.last_seen_moved != null &&
-            mr.p.last_seen_moved < cutoff) {
-            mr.p.last_seen_moved = null;
-            redisplay_ancillaries(mr.piece, mr.p);
-        }
-    }
-    movements.push({ piece: piece, p: p, this_motion: now });
-}
-function piece_z_before(a, b) {
-    if (a.z < b.z)
-        return true;
-    if (a.z > b.z)
-        return false;
-    if (a.zg < b.zg)
-        return true;
-    if (a.zg > b.zg)
-        return false;
-    return false;
-}
-pieceops.Move = function (piece, p, info) {
-    piece_checkconflict_nrda(piece, p, false);
-    piece_note_moved(piece, p);
-    p.uelem.setAttributeNS(null, "x", info[0] + "");
-    p.uelem.setAttributeNS(null, "y", info[1] + "");
-};
-pieceops.SetZLevel = function (piece, p, info) {
-    piece_note_moved(piece, p);
-    piece_set_zlevel(piece, p, (oldtop_piece) => {
-        let oldtop_p = pieces[oldtop_piece];
-        p.z = info.z;
-        p.zg = info.zg;
-    });
-};
-messages.Recorded = function (j) {
-    let piece = j.piece;
-    let p = pieces[piece];
-    piece_recorded_cseq(p, j);
-    if (p.cseq_updatesvg != null && j.cseq >= p.cseq_updatesvg) {
-        p.cseq_updatesvg = null;
-        redisplay_ancillaries(piece, p);
-    }
-    if (j.svg != null) {
-        p.delem.innerHTML = j.svg;
-        p.pelem = piece_element('piece', piece);
-        redisplay_ancillaries(piece, p);
-    }
-    if (j.zg != null) {
-        var zg_new = j.zg; // type narrowing doesn't propagate :-/
-        piece_set_zlevel(piece, p, (oldtop_piece) => {
-            p.zg = zg_new;
-        });
-    }
-};
-function piece_recorded_cseq(p, j) {
-    if (p.cseq != null && j.cseq >= p.cseq) {
-        p.cseq = null;
-    }
-}
-messages.RecordedUnpredictable = function (j) {
-    let piece = j.piece;
-    let p = pieces[piece];
-    piece_recorded_cseq(p, j);
-    piece_modify(piece, p, j.ns, false);
-};
-messages.Error = function (m) {
-    console.log('ERROR UPDATE ', m);
-    var k = Object.keys(m)[0];
-    update_error_handlers[k](m[k]);
-};
-update_error_handlers.PieceOpError = function (m) {
-    let piece = m.state.piece;
-    let p = pieces[piece];
-    console.log('ERROR UPDATE PIECE ', m, p);
-    if (p == null)
-        return;
-    let conflict_expected = piece_error_handlers[m.error](piece, p, m);
-    handle_piece_update(m.state);
-};
-function piece_checkconflict_nrda(piece, p, conflict_expected) {
-    if (p.cseq != null) {
-        p.cseq = null;
-        if (drag_pieces.some(function (dp) { return dp.piece == piece; })) {
-            console.log('drag end due to conflict');
-            drag_end();
-        }
-        if (!conflict_expected) {
-            add_log_message('Conflict! - simultaneous update');
-        }
-    }
-    return false;
-}
-function test_swap_stack() {
-    let old_bot = pieces_marker.nextElementSibling;
-    let container = old_bot.parentElement;
-    container.insertBefore(old_bot, defs_marker);
-    window.setTimeout(test_swap_stack, 1000);
-}
-function startup() {
-    console.log('STARTUP');
-    console.log(wasm_bindgen.setup("OK"));
-    var body = document.getElementById("main-body");
-    zoom_btn = document.getElementById("zoom-btn");
-    zoom_val = document.getElementById("zoom-val");
-    links_elem = document.getElementById("links");
-    ctoken = body.dataset.ctoken;
-    us = body.dataset.us;
-    gen = +body.dataset.gen;
-    let sse_url_prefix = body.dataset.sseUrlPrefix;
-    status_node = document.getElementById('status');
-    status_node.innerHTML = 'js-done';
-    log_elem = document.getElementById("log");
-    logscroll_elem = document.getElementById("logscroll") || log_elem;
-    let dataload = JSON.parse(body.dataset.load);
-    held_surround_colour = dataload.held_surround_colour;
-    players = dataload.players;
-    delete body.dataset.load;
-    uos_node = document.getElementById("uos");
-    space = svg_element('space');
-    pieces_marker = svg_element("pieces_marker");
-    defs_marker = svg_element("defs_marker");
-    svg_ns = space.getAttribute('xmlns');
-    for (let uelem = pieces_marker.nextElementSibling; uelem != defs_marker; uelem = uelem.nextElementSibling) {
-        let piece = uelem.dataset.piece;
-        let p = JSON.parse(uelem.dataset.info);
-        p.uelem = uelem;
-        p.delem = piece_element('defs', piece);
-        p.pelem = piece_element('piece', piece);
-        p.queued_moves = 0;
-        delete uelem.dataset.info;
-        pieces[piece] = p;
-        redisplay_ancillaries(piece, p);
-    }
-    last_log_ts = wasm_bindgen.timestamp_abbreviator(dataload.last_log_ts);
-    var es = new EventSource(sse_url_prefix + "/_/updates?ctoken=" + ctoken + '&gen=' + gen);
-    es.onmessage = function (event) {
-        console.log('GOTEVE', event.data);
-        var k;
-        var m;
-        try {
-            var [tgen, ms] = JSON.parse(event.data);
-            for (m of ms) {
-                k = Object.keys(m)[0];
-                messages[k](m[k]);
-            }
-            gen = tgen;
-            gen_update_hook();
-        }
-        catch (exc) {
-            var s = exc.toString();
-            string_report_error('exception handling update '
-                + k + ': ' + JSON.stringify(m) + ': ' + s);
-        }
-    };
-    es.addEventListener('commsworking', function (event) {
-        console.log('GOTDATA', event.data);
-        status_node.innerHTML = event.data;
-    });
-    es.addEventListener('player-gone', function (event) {
-        console.log('PLAYER-GONE', event);
-        status_node.innerHTML = event.data;
-        add_log_message('<strong>You are no longer in the game</strong>');
-        space.removeEventListener('mousedown', some_mousedown);
-        document.removeEventListener('keydown', some_keydown);
-        es.close();
-    });
-    es.addEventListener('updates-expired', function (event) {
-        console.log('UPDATES-EXPIRED', event);
-        string_report_error('connection to server interrupted too long');
-    });
-    es.onerror = function (e) {
-        console.log('FOO', e, es);
-        json_report_error({
-            updates_error: e,
-            updates_event_source: es,
-            updates_event_source_ready: es.readyState,
-            update_oe: e.className,
-        });
-    };
-    recompute_keybindings();
-    space.addEventListener('mousedown', some_mousedown);
-    document.addEventListener('keydown', some_keydown);
-}
-var wasm_promise;
-;
-function doload() {
-    console.log('DOLOAD');
-    globalinfo_elem = document.getElementById('global-info');
-    layout = globalinfo_elem.dataset.layout;
-    var elem = document.getElementById('loading_token');
-    var ptoken = elem.dataset.ptoken;
-    xhr_post_then('/_/session/' + layout, JSON.stringify({ ptoken: ptoken }), loaded);
-    wasm_promise = wasm_input
-        .then(wasm_bindgen);
-}
-function loaded(xhr) {
-    console.log('LOADED');
-    var body = document.getElementById('loading_body');
-    wasm_promise.then((got_wasm) => {
-        wasm = got_wasm;
-        body.outerHTML = xhr.response;
-        startup();
-    });
-}
-// todo scroll of log messages to bottom did not always work somehow
-//    think I have fixed this with approximation
-doload();
diff --git a/server dummy - alice - Otter_files/wasm.js b/server dummy - alice - Otter_files/wasm.js
deleted file mode 100644 (file)
index 9a9f9a7..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-let wasm_bindgen;
-(function() {
-    const __exports = {};
-    let wasm;
-
-    let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
-
-    cachedTextDecoder.decode();
-
-    let cachegetUint8Memory0 = null;
-    function getUint8Memory0() {
-        if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {
-            cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);
-        }
-        return cachegetUint8Memory0;
-    }
-
-    function getStringFromWasm0(ptr, len) {
-        return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
-    }
-
-    const heap = new Array(32).fill(undefined);
-
-    heap.push(undefined, null, true, false);
-
-    let heap_next = heap.length;
-
-    function addHeapObject(obj) {
-        if (heap_next === heap.length) heap.push(heap.length + 1);
-        const idx = heap_next;
-        heap_next = heap[idx];
-
-        heap[idx] = obj;
-        return idx;
-    }
-
-function getObject(idx) { return heap[idx]; }
-
-function dropObject(idx) {
-    if (idx < 36) return;
-    heap[idx] = heap_next;
-    heap_next = idx;
-}
-
-function takeObject(idx) {
-    const ret = getObject(idx);
-    dropObject(idx);
-    return ret;
-}
-
-let WASM_VECTOR_LEN = 0;
-
-let cachedTextEncoder = new TextEncoder('utf-8');
-
-const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
-    ? function (arg, view) {
-    return cachedTextEncoder.encodeInto(arg, view);
-}
-    : function (arg, view) {
-    const buf = cachedTextEncoder.encode(arg);
-    view.set(buf);
-    return {
-        read: arg.length,
-        written: buf.length
-    };
-});
-
-function passStringToWasm0(arg, malloc, realloc) {
-
-    if (realloc === undefined) {
-        const buf = cachedTextEncoder.encode(arg);
-        const ptr = malloc(buf.length);
-        getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf);
-        WASM_VECTOR_LEN = buf.length;
-        return ptr;
-    }
-
-    let len = arg.length;
-    let ptr = malloc(len);
-
-    const mem = getUint8Memory0();
-
-    let offset = 0;
-
-    for (; offset < len; offset++) {
-        const code = arg.charCodeAt(offset);
-        if (code > 0x7F) break;
-        mem[ptr + offset] = code;
-    }
-
-    if (offset !== len) {
-        if (offset !== 0) {
-            arg = arg.slice(offset);
-        }
-        ptr = realloc(ptr, len, len = offset + arg.length * 3);
-        const view = getUint8Memory0().subarray(ptr + offset, ptr + len);
-        const ret = encodeString(arg, view);
-
-        offset += ret.written;
-    }
-
-    WASM_VECTOR_LEN = offset;
-    return ptr;
-}
-
-function isLikeNone(x) {
-    return x === undefined || x === null;
-}
-
-let cachegetInt32Memory0 = null;
-function getInt32Memory0() {
-    if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {
-        cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);
-    }
-    return cachegetInt32Memory0;
-}
-
-let stack_pointer = 32;
-
-function addBorrowedObject(obj) {
-    if (stack_pointer == 1) throw new Error('out of js stack');
-    heap[--stack_pointer] = obj;
-    return stack_pointer;
-}
-/**
-* @param {any} packed
-*/
-__exports.check = function(packed) {
-    try {
-        wasm.check(addBorrowedObject(packed));
-    } finally {
-        heap[stack_pointer++] = undefined;
-    }
-};
-
-/**
-* @param {any} packed
-* @returns {any}
-*/
-__exports.increment = function(packed) {
-    try {
-        var ret = wasm.increment(addBorrowedObject(packed));
-        return takeObject(ret);
-    } finally {
-        heap[stack_pointer++] = undefined;
-    }
-};
-
-/**
-* @returns {any}
-*/
-__exports.def_zcoord = function() {
-    var ret = wasm.def_zcoord();
-    return takeObject(ret);
-};
-
-/**
-* @param {any} a
-* @param {any} b
-* @param {number} count
-* @returns {ZCoordIterator}
-*/
-__exports.range = function(a, b, count) {
-    try {
-        var ret = wasm.range(addBorrowedObject(a), addBorrowedObject(b), count);
-        return ZCoordIterator.__wrap(ret);
-    } finally {
-        heap[stack_pointer++] = undefined;
-        heap[stack_pointer++] = undefined;
-    }
-};
-
-/**
-* @param {string} j
-* @returns {TimestampAbbreviator}
-*/
-__exports.timestamp_abbreviator = function(j) {
-    var ret = wasm.timestamp_abbreviator(addHeapObject(j));
-    return TimestampAbbreviator.__wrap(ret);
-};
-
-/**
-* @param {number} angle
-* @returns {string}
-*/
-__exports.angle_transform = function(angle) {
-    var ret = wasm.angle_transform(angle);
-    return takeObject(ret);
-};
-
-/**
-* @param {string} s
-* @returns {string}
-*/
-__exports.setup = function(s) {
-    var ptr0 = passStringToWasm0(s, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
-    var len0 = WASM_VECTOR_LEN;
-    var ret = wasm.setup(ptr0, len0);
-    return takeObject(ret);
-};
-
-/**
-*/
-class TimestampAbbreviator {
-
-    static __wrap(ptr) {
-        const obj = Object.create(TimestampAbbreviator.prototype);
-        obj.ptr = ptr;
-
-        return obj;
-    }
-
-    free() {
-        const ptr = this.ptr;
-        this.ptr = 0;
-
-        wasm.__wbg_timestampabbreviator_free(ptr);
-    }
-    /**
-    * @param {string} now
-    * @returns {string}
-    */
-    update(now) {
-        try {
-            var ret = wasm.timestampabbreviator_update(this.ptr, addBorrowedObject(now));
-            return takeObject(ret);
-        } finally {
-            heap[stack_pointer++] = undefined;
-        }
-    }
-}
-__exports.TimestampAbbreviator = TimestampAbbreviator;
-/**
-*/
-class ZCoordIterator {
-
-    static __wrap(ptr) {
-        const obj = Object.create(ZCoordIterator.prototype);
-        obj.ptr = ptr;
-
-        return obj;
-    }
-
-    free() {
-        const ptr = this.ptr;
-        this.ptr = 0;
-
-        wasm.__wbg_zcoorditerator_free(ptr);
-    }
-    /**
-    * @returns {any}
-    */
-    next() {
-        var ret = wasm.zcoorditerator_next(this.ptr);
-        return takeObject(ret);
-    }
-    /**
-    * @returns {any}
-    */
-    debug() {
-        var ret = wasm.zcoorditerator_debug(this.ptr);
-        return takeObject(ret);
-    }
-}
-__exports.ZCoordIterator = ZCoordIterator;
-
-async function load(module, imports) {
-    if (typeof Response === 'function' && module instanceof Response) {
-
-        if (typeof WebAssembly.instantiateStreaming === 'function') {
-            try {
-                return await WebAssembly.instantiateStreaming(module, imports);
-
-            } catch (e) {
-                if (module.headers.get('Content-Type') != 'application/wasm') {
-                    console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
-
-                } else {
-                    throw e;
-                }
-            }
-        }
-
-        const bytes = await module.arrayBuffer();
-        return await WebAssembly.instantiate(bytes, imports);
-
-    } else {
-
-        const instance = await WebAssembly.instantiate(module, imports);
-
-        if (instance instanceof WebAssembly.Instance) {
-            return { instance, module };
-
-        } else {
-            return instance;
-        }
-    }
-}
-
-async function init(input) {
-    if (typeof input === 'undefined') {
-        let src;
-        if (typeof document === 'undefined') {
-            src = location.href;
-        } else {
-            src = document.currentScript.src;
-        }
-        input = src.replace(/\.js$/, '_bg.wasm');
-    }
-    const imports = {};
-    imports.wbg = {};
-    imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
-        var ret = getStringFromWasm0(arg0, arg1);
-        return addHeapObject(ret);
-    };
-    imports.wbg.__wbindgen_is_null = function(arg0) {
-        var ret = getObject(arg0) === null;
-        return ret;
-    };
-    imports.wbg.__wbg_new_59cb74e423758ede = function() {
-        var ret = new Error();
-        return addHeapObject(ret);
-    };
-    imports.wbg.__wbg_stack_558ba5917b466edd = function(arg0, arg1) {
-        var ret = getObject(arg1).stack;
-        var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
-        var len0 = WASM_VECTOR_LEN;
-        getInt32Memory0()[arg0 / 4 + 1] = len0;
-        getInt32Memory0()[arg0 / 4 + 0] = ptr0;
-    };
-    imports.wbg.__wbg_error_4bb6c2a97407129a = function(arg0, arg1) {
-        try {
-            console.error(getStringFromWasm0(arg0, arg1));
-        } finally {
-            wasm.__wbindgen_free(arg0, arg1);
-        }
-    };
-    imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
-        takeObject(arg0);
-    };
-    imports.wbg.__wbindgen_string_get = function(arg0, arg1) {
-        const obj = getObject(arg1);
-        var ret = typeof(obj) === 'string' ? obj : undefined;
-        var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
-        var len0 = WASM_VECTOR_LEN;
-        getInt32Memory0()[arg0 / 4 + 1] = len0;
-        getInt32Memory0()[arg0 / 4 + 0] = ptr0;
-    };
-    imports.wbg.__wbindgen_throw = function(arg0, arg1) {
-        throw new Error(getStringFromWasm0(arg0, arg1));
-    };
-    imports.wbg.__wbindgen_rethrow = function(arg0) {
-        throw takeObject(arg0);
-    };
-
-    if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {
-        input = fetch(input);
-    }
-
-    const { instance, module } = await load(await input, imports);
-
-    wasm = instance.exports;
-    init.__wbindgen_wasm_module = module;
-
-    return wasm;
-}
-
-wasm_bindgen = Object.assign(init, __exports);
-
-})();