<snapdata remixID="9002274"><project name='mooving' app='Snap! 5.1, http://snap.berkeley.edu' version='1'>
  <notes>Thanks to snapenilk for the variable blocks.
Use the arrow keys to move the variable watcher.
It&apos;s a real variable, not a sprite that looks like one. Look inside if you don&apos;t believe me.
(There&apos;s a Snap bug: if you edit the project, get out a "set variable watcher [normal/large/slider]" block and click on the dropdown menu, all of the options are on one line, which did not happen when I saved the project.)
</notes>
  <thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAE3klEQVR4Xu3YzUtUcRTG8TPTiO+iQm4U1EBB8LVy4cY2BiW4kRL3vYDQ1r/CwG2LNkULQd1ILoRELMKFCwPd1CpEgkQTEcchdSbuT5xdmcyFM+fwvRBS3rnn/J7nw4yWyOVyOeEiAaUEEgBUSp6xIQEAAkE1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAKrGz3AAYkA1AQCqxs9wAGJANQEAqsbPcABiQDUBAMYU/8rKirS0tFzraenvX+Trp/eSzZ7/83UdtwekqueBZLNZ2drakpGRkWvNKeabARhDO7Ozs9Lb23vtJ528vCe3alP/9bqDF58lk8mEe9va2v7rNRZuAmAMLa2urkpDQ0N40tjYmExNTcnu7q4kk8nwrjU9PS0TExPS3t4uGxsbMjQ0JKlUSqpf3ZfasqSk7jySkruPRRIXGHPpX+Fr5u2z/HZ7Ex/l5OQk/L2joyOGrYvjEQCMoYcIYH19fXjS5OSknJ6eyuDgoPT09Mjc3JxUVlbK9va2jI6OSlVVlXR2doZ7614/DACjq+zpO0mkyv8K8OfzFUmn0+H7XV1dMWxdHI8AYAw9LC8v5wGWlpZKRUWFRF+Pjo6kuro6Dyf697OzM9nb2wtTb74ZkdrSC4BXXT+efJDj4+NwW19f31W3m/k+AGOoamlpKQ/wOo/rzGzJjczBlS/5Xdcq35LNcn5+8ctKf3//la+xcgMAY2hqcXExD7C8vFxaW1slkUgU9OTo573oWdG1s7Mjh4eH+ecNDAwU9OxiejEAY2hjZmZGGhsbJZfLhZ/7CsUXrbS2thY+chcWFmR8fDx8rF9e0c+XXi4AxtDk/Px8/h2wu7tbSkpKCn7q+vq6bG5uSnNzc4DY1NQUgEfvjMPDwwU/v1geAMCYmoj+LzB656upqQnvhnG8C16uFn38Rn/29/fDb8ARci8XAL00afQcADRanJe1AeilSaPnAKDR4rysDUAvTRo9BwCNFudlbQB6adLoOQBotDgvawPQS5NGzwFAo8V5WRuAXpo0eg4AGi3Oy9oA9NKk0XMA0GhxXtYGoJcmjZ4DgEaL87I2AL00afQcADRanJe1AeilSaPnAKDR4rysDUAvTRo9BwCNFudlbQB6adLoOQBotDgvawPQS5NGzwFAo8V5WRuAXpo0eg4AGi3Oy9oA9NKk0XMA0GhxXtYGoJcmjZ4DgEaL87I2AL00afQcADRanJe1AeilSaPnAKDR4rysDUAvTRo9BwCNFudlbQB6adLoOQBotDgvawPQS5NGzwFAo8V5WRuAXpo0eg4AGi3Oy9oA9NKk0XMA0GhxXtYGoJcmjZ4DgEaL87I2AL00afQcfwAj7423WljicgAAAABJRU5ErkJggg==</thumbnail>
  <stage inheritance='true' id='1' volume='100' height='360' tempo='60' lines='round' width='480' name='Stage' sublistIDs='false' threadsafe='false' codify='false' color='255,255,255,1' scheduled='false' pan='0' ternary='false' costume='0'>
    <pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails>
    <costumes>
      <list id='2' struct='atomic'/>
    </costumes>
    <sounds>
      <list id='3' struct='atomic'/>
    </sounds>
    <variables/>
    <blocks/>
    <scripts>
      <script x='20' y='20'>
        <block s='receiveGo'/>
        <custom-block s='move variable %s watcher to x: %n y: %n'>
          <l>tester</l>
          <l>0</l>
          <l>0</l>
        </custom-block>
        <block s='doDeclareVariables'>
          <list>
            <l>x</l>
            <l>y</l>
          </list>
        </block>
        <block s='doForever'>
          <script>
            <block s='doIf'>
              <block s='reportKeyPressed'>
                <l>
                  <option>right arrow</option>
                </l>
              </block>
              <script>
                <block s='doChangeVar'>
                  <l>x</l>
                  <l>2</l>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportKeyPressed'>
                <l>
                  <option>left arrow</option>
                </l>
              </block>
              <script>
                <block s='doChangeVar'>
                  <l>x</l>
                  <l>-2</l>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportKeyPressed'>
                <l>
                  <option>up arrow</option>
                </l>
              </block>
              <script>
                <block s='doChangeVar'>
                  <l>y</l>
                  <l>2</l>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportKeyPressed'>
                <l>
                  <option>down arrow</option>
                </l>
              </block>
              <script>
                <block s='doChangeVar'>
                  <l>y</l>
                  <l>-2</l>
                </block>
              </script>
            </block>
            <custom-block s='move variable %s watcher to x: %n y: %n'>
              <l>tester</l>
              <block var='x'/>
              <block var='y'/>
            </custom-block>
          </script>
        </block>
      </script>
    </scripts>
    <sprites>
      <watcher max='100' x='243.21516927083348' color='243,118,29' style='slider' y='181.499999' min='1' var='tester'/>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='global variables %&apos;names&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations>pt:cria as variáveis globais _</translations>
      <inputs>
        <input type='%mult%txt'/>
      </inputs>
      <script>
        <block s='doForEach'>
          <l>each item</l>
          <block var='names'/>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list>
                  <l>name</l>
                </list>
                <l>if ((typeof name) != "string") {    throw new Error("name isn&apos;t a string: " + name);}if (name != "") this.addVariable(name, true);</l>
              </block>
              <list>
                <block var='each item'/>
              </list>
            </block>
          </script>
        </block>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list/>
            <l>var ide = this.parentThatIsA(IDE_Morph);ide.flushBlocksCache(&apos;variables&apos;); // b/c of inheritanceide.refreshPalette();</l>
          </block>
          <list/>
        </block>
      </script>
    </block-definition>
    <block-definition s='sprite-local variables %&apos;names&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations>pt:cria as variáveis de objecto _</translations>
      <inputs>
        <input type='%mult%txt'/>
      </inputs>
      <script>
        <block s='doForEach'>
          <l>each item</l>
          <block var='names'/>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list>
                  <l>name</l>
                </list>
                <l>if ((typeof name) != "string") {    throw new Error("name isn&apos;t a string: " + name);}if (name != "") this.addVariable(name, false);</l>
              </block>
              <list>
                <block var='each item'/>
              </list>
            </block>
          </script>
        </block>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list/>
            <l>var ide = this.parentThatIsA(IDE_Morph);ide.flushBlocksCache(&apos;variables&apos;); // b/c of inheritanceide.refreshPalette();</l>
          </block>
          <list/>
        </block>
      </script>
    </block-definition>
    <block-definition s='does variable %&apos;var&apos; exist?' category='variables' type='predicate'>
      <header/>
      <code/>
      <translations>pt:a variável _ existe</translations>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list>
                <l>varname</l>
              </list>
              <l>if ((typeof varname) != "string") {    throw new Error("name isn&apos;t a string: " + varname);}return this.isVariableNameInUse(varname, true);</l>
            </block>
            <list>
              <block var='var'/>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='variable %&apos;var&apos;' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block s='reportJSFunction'>
                  <list>
                    <l>v</l>
                  </list>
                  <l>return this.variables.getVar(v)</l>
                </block>
                <list>
                  <block var='var'/>
                </list>
              </block>
            </block>
          </script>
        </block>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>v</l>
            </list>
            <l>throw new ReferenceError(`Variable ${v} does not exist.`)</l>
          </block>
          <list>
            <block var='var'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='show all globals' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doForEach'>
          <l>var</l>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list/>
              <l>return new List(Object.getOwnPropertyNames(this.globalVariables().vars))</l>
            </block>
            <list/>
          </block>
          <script>
            <block s='doShowVar'>
              <l/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='hide all globals' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doForEach'>
          <l>var</l>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list/>
              <l>return new List(Object.getOwnPropertyNames(this.globalVariables().vars))</l>
            </block>
            <list/>
          </block>
          <script>
            <block s='doHideVar'>
              <l/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='delete variable %&apos;var&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list>
                  <l>v</l>
                </list>
                <l>this.deleteVariable(v)</l>
              </block>
              <list>
                <block var='var'/>
              </list>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='set variable %&apos;var&apos; watcher %&apos;type&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input readonly='true' type='%s'>normal        <options>normallargeslider</options>
        </input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list>
                  <l>v,t</l>
                </list>
                <l>var watcher = this.findVariableWatcher(v)switch(t) {case "normal": watcher.styleNormal(); break;case "large": watcher.styleLarge(); break;case "slider": watcher.styleSlider(); break;}</l>
              </block>
              <list>
                <block var='var'/>
                <block var='type'/>
              </list>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='variable %&apos;var&apos; slider min' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block s='reportJSFunction'>
                  <list>
                    <l>v</l>
                  </list>
                  <l>return this.findVariableWatcher(v).sliderMorph.start</l>
                </block>
                <list>
                  <block var='var'/>
                </list>
              </block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <l>NaN</l>
        </block>
      </script>
    </block-definition>
    <block-definition s='variable %&apos;var&apos; slider max' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block s='reportJSFunction'>
                  <list>
                    <l>v</l>
                  </list>
                  <l>return this.findVariableWatcher(v).sliderMorph.stop</l>
                </block>
                <list>
                  <block var='var'/>
                </list>
              </block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <l>NaN</l>
        </block>
      </script>
    </block-definition>
    <block-definition s='set variable %&apos;var&apos; slider min %&apos;val&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list>
                  <l>v,u</l>
                </list>
                <l>this.findVariableWatcher(v).sliderMorph.setStart(u)</l>
              </block>
              <list>
                <block var='var'/>
                <block var='val'/>
              </list>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='set variable %&apos;var&apos; slider max %&apos;val&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list>
                  <l>v,u</l>
                </list>
                <l>this.findVariableWatcher(v).sliderMorph.setStop(u)</l>
              </block>
              <list>
                <block var='var'/>
                <block var='val'/>
              </list>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='move variable %&apos;var&apos; watcher to x: %&apos;x&apos; y: %&apos;y&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%n'>0</input>
        <input type='%n'>0</input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list>
                  <l>v,x,y</l>
                </list>
                <l>var watcher = this.findVariableWatcher(v)//Copied from SpriteMorph&apos;s gotoXY methodvar stage = this.parentThatIsA(StageMorph),  newX,  newY,  dest;if(!stage) {return;}x = !isFinite(+x) ? 0 : +x;y = !isFinite(+y) ? 0 : +y;newX = stage.center().x + x * stage.scale;newY = stage.center().y - y * stage.scale;dest = new Point(newX, newY).subtract(watcher.extent().divideBy(2));watcher.setPosition(dest)</l>
              </block>
              <list>
                <block var='var'/>
                <block var='x'/>
                <block var='y'/>
              </list>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='change variable %&apos;var&apos; watcher x by %&apos;delta&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%n'>10</input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list/>
                <l>alert("Work in Progress")</l>
              </block>
              <list/>
            </block>
          </script>
        </block>
      </script>
      <scripts>
        <script x='10' y='136'>
          <custom-block s='move variable %s watcher to x: %n y: %n'>
            <block var='var'/>
            <block s='reportSum'>
              <custom-block s='variable %s watcher x'>
                <block var='var'/>
              </custom-block>
              <block var='delta'/>
            </block>
            <custom-block s='variable %s watcher y'>
              <block var='var'/>
            </custom-block>
          </custom-block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='set variable %&apos;var&apos; watcher x to %&apos;x&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%n'>0</input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list/>
                <l>alert("Work in Progress")</l>
              </block>
              <list/>
            </block>
          </script>
        </block>
      </script>
      <scripts>
        <script x='10' y='136'>
          <custom-block s='move variable %s watcher to x: %n y: %n'>
            <block var='var'/>
            <block var='x'/>
            <custom-block s='variable %s watcher y'>
              <block var='var'/>
            </custom-block>
          </custom-block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='change variable %&apos;var&apos; watcher y by %&apos;delta&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%n'>10</input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list/>
                <l>alert("Work in Progress")</l>
              </block>
              <list/>
            </block>
          </script>
        </block>
      </script>
      <scripts>
        <script x='10' y='136'>
          <custom-block s='move variable %s watcher to x: %n y: %n'>
            <block var='var'/>
            <custom-block s='variable %s watcher x'>
              <block var='var'/>
            </custom-block>
            <block s='reportSum'>
              <custom-block s='variable %s watcher y'>
                <block var='var'/>
              </custom-block>
              <block var='delta'/>
            </block>
          </custom-block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='set variable %&apos;var&apos; watcher y to %&apos;y&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%n'>0</input>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='does variable %s exist?'>
            <block var='var'/>
          </custom-block>
          <script>
            <block s='doRun'>
              <block s='reportJSFunction'>
                <list/>
                <l>alert("Work in Progress")</l>
              </block>
              <list/>
            </block>
          </script>
        </block>
      </script>
      <scripts>
        <script x='10' y='136.00000000000003'>
          <custom-block s='move variable %s watcher to x: %n y: %n'>
            <block var='var'/>
            <custom-block s='variable %s watcher x'>
              <block var='var'/>
            </custom-block>
            <block var='y'/>
          </custom-block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='variable %&apos;var&apos; watcher x' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
      </inputs>
      <script>
        <block s='doReport'>
          <l>Work in Progress</l>
        </block>
      </script>
    </block-definition>
    <block-definition s='variable %&apos;var&apos; watcher y' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
      </inputs>
      <script>
        <block s='doReport'>
          <l>Work in Progress</l>
        </block>
      </script>
    </block-definition>
    <block-definition s='swap %&apos;a&apos; ⇄ %&apos;b&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
        <input type='%s'>
          <options>§_getVarNamesDict</options>
        </input>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportAnd'>
            <custom-block s='does variable %s exist?'>
              <block var='a'/>
            </custom-block>
            <custom-block s='does variable %s exist?'>
              <block var='b'/>
            </custom-block>
          </block>
          <script>
            <block s='doRun'>
              <block s='reifyScript'>
                <script>
                  <block s='doDeclareVariables'>
                    <list>
                      <l>temp</l>
                    </list>
                  </block>
                  <block s='doSetVar'>
                    <l>temp</l>
                    <custom-block s='variable %s'>
                      <block var='a'/>
                    </custom-block>
                  </block>
                  <block s='doSetVar'>
                    <l/>
                    <custom-block s='variable %s'>
                      <block var='b'/>
                    </custom-block>
                  </block>
                  <block s='doSetVar'>
                    <l/>
                    <block var='temp'/>
                  </block>
                </script>
                <list/>
              </block>
              <list>
                <block var='a'/>
                <block var='b'/>
              </list>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
  </blocks>
  <variables>
    <variable name='tester'>
      <l>100</l>
    </variable>
  </variables>
</project><media name="mooving" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>