<snapdata remixID="9302205"><project name='M7L1A3' app='Snap! 5.4, http://snap.berkeley.edu' version='1'>
  <notes></notes>
  <thumbnail>data:image/png;base64,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</thumbnail>
  <stage inheritance='true' penlog='false' volume='100' height='360' tempo='60' lines='round' width='480' sublistIDs='false' name='Stage' threadsafe='false' codify='false' id='1' 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/>
    <sprites>
      <sprite x='0' pen='tip' id='8' y='0' name='Sprite' idx='1' volume='100' rotation='1' scale='1' heading='90' costume='0' color='80,80,80,1' pan='0' draggable='true'>
        <costumes>
          <list id='9' struct='atomic'/>
        </costumes>
        <sounds>
          <list id='10' struct='atomic'/>
        </sounds>
        <blocks/>
        <variables/>
        <scripts>
          <script x='393.6416025625' y='168.000001'>
            <custom-block s='are numbers of %l distinct?'>
              <l/>
            </custom-block>
          </script>
          <script x='315' y='278'>
            <custom-block s='duplicates in %l'>
              <block s='reportNewList'>
                <list>
                  <l>3</l>
                  <l>10</l>
                  <l>7</l>
                  <l>3</l>
                  <l>20</l>
                  <l>12</l>
                  <l>7</l>
                </list>
              </block>
            </custom-block>
          </script>
          <script x='421' y='60'>
            <custom-block s='are the numbers of %n distinct?'>
              <block s='reportNewList'>
                <list>
                  <l>20</l>
                  <l>12</l>
                  <l>3</l>
                  <l>100</l>
                  <l>50</l>
                  <l>12</l>
                </list>
              </block>
            </custom-block>
          </script>
        </scripts>
      </sprite>
      <watcher var='new list' x='40' color='243,118,29' style='normal' y='24' extX='80' extY='70'/>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='are numbers of %&apos;list&apos; distinct?' category='operators' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>a</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>new list</l>
          <block s='reportNewList'>
            <list>
              <l>3</l>
              <l>7</l>
            </list>
          </block>
        </block>
        <block s='doSetVar'>
          <l>a</l>
          <l>0</l>
        </block>
        <custom-block s='for each %upvar of %l %cs'>
          <l>item</l>
          <block var='list'/>
          <script>
            <block s='doAddToList'>
              <block var='item'/>
              <block var='new list'/>
            </block>
          </script>
        </custom-block>
        <custom-block s='for each %upvar of %l %cs'>
          <l>item</l>
          <block var='new list'/>
          <script>
            <block s='doInsertInList'>
              <block var='item'/>
              <l>1</l>
              <block var='new list'/>
            </block>
            <block s='doDeleteFromList'>
              <block s='reportSum'>
                <block var='item'/>
                <l>1</l>
              </block>
              <block var='new list'/>
            </block>
            <custom-block s='for each %upvar of %l %cs'>
              <l>item</l>
              <block s='reportCDR'>
                <block var='new list'/>
              </block>
              <script>
                <block s='doIf'>
                  <block s='reportEquals'>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='new list'/>
                    </block>
                    <block var='item'/>
                  </block>
                  <script>
                    <block s='doChangeVar'>
                      <l>a</l>
                      <l>1</l>
                    </block>
                  </script>
                </block>
              </script>
            </custom-block>
          </script>
        </custom-block>
        <block s='doReport'>
          <block s='reportEquals'>
            <block var='a'/>
            <block s='reportListItem'>
              <l>1</l>
              <block var='new list'/>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='label %&apos;text&apos; of size %&apos;size&apos;' category='pen' type='command'>
      <comment x='0' w='90' collapsed='false' y='0'>LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment>
      <header/>
      <code/>
      <translations>de:drucke _ in Größe _ca:etiqueta _ de mida _es:etiqueta _ de tamaño _fr:étiquette _ d&apos;une taille de _</translations>
      <inputs>
        <input type='%txt'>Hello!</input>
        <input type='%n'>12</input>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>text</l>
              <l>size</l>
              <l>process</l>
            </list>
            <l>var stage = this.parentThatIsA(StageMorph);if (this == stage) {    throw new Error(     &apos;LABEL cannot be used from the stage because the stage does not have a postion.\n&apos;     + &apos;Use LABEL from a sprite to draw text.&apos;);}if (typeof text !== &apos;string&apos; &amp;&amp; typeof text !== &apos;number&apos;) {    throw new Error(&apos;LABEL can only draw text or numbers, not a &apos; + process.reportTypeOf(text)); }var context = stage.penTrails().getContext(&apos;2d&apos;),    rotation = radians(this.direction() - 90),    trans = new Point(      this.center().x - stage.left(),      this.center().y - stage.top()    ),    isWarped = this.Warped,    len,    pos;if (isWarped) {endWarp(); }context.save();context.font = size + &apos;px monospace&apos;;context.textAlign = &apos;left&apos;;context.textBaseline = &apos;alphabetic&apos;;context.fillStyle = this.color.toString();len = context.measureText(text).width;trans = trans.multiplyBy(1 / stage.scale);context.translate(trans.x, trans.y);context.rotate(rotation);context.fillText(text, 0, 0);context.translate(-trans.x, -trans.y);context.restore();pos = new Point(  len * Math.sin(radians(this.direction())),  len * Math.cos(radians(this.direction())));pos = pos.add(new Point(this.xPosition(), this.yPosition()));this.gotoXY(pos.x, pos.y, false);this.changed();if (isWarped) {this.startWarp(); }stage.changed();</l>
          </block>
          <list>
            <block var='text'/>
            <block var='size'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='empty? %&apos;data&apos;' category='lists' type='predicate'>
      <header/>
      <code/>
      <translations>de:ist _ leer?ca:_ buida?es:_ vacía?fr:_ vide?</translations>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportEquals'>
            <block var='data'/>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='keep items such that %&apos;pred&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:behalte Elemente, die _ aus _ca:manté els elements on _ de _es:mantener los elementos donde _ de _fr:garder les items tels que _ de _</translations>
      <inputs>
        <input type='%predRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIfElse'>
          <block s='evaluate'>
            <block var='pred'/>
            <list>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </list>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportCONS'>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
                <custom-block s='keep items such that %predRing from %l'>
                  <block var='pred'/>
                  <block s='reportCDR'>
                    <block var='data'/>
                  </block>
                </custom-block>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <custom-block s='keep items such that %predRing from %l'>
                <block var='pred'/>
                <block s='reportCDR'>
                  <block var='data'/>
                </block>
              </custom-block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='combine with %&apos;function&apos; items of %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:kombiniere mit _ die Elemente von _ca:combina amb _ els elements de _es:combinar con _ los elementos de _fr:combine avec _ les items de _</translations>
      <inputs>
        <input type='%repRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block s='reportCDR'>
              <block var='data'/>
            </block>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='evaluate'>
            <block var='function'/>
            <list>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
              <custom-block s='combine with %repRing items of %l'>
                <block var='function'/>
                <block s='reportCDR'>
                  <block var='data'/>
                </block>
              </custom-block>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations>de:wenn _ dann _ sonst _ca:si _ llavors _ si no _es:si _ entonces _ sino _fr:si _ alors _ sinon _</translations>
      <inputs>
        <input type='%b'/>
        <input type='%anyUE'/>
        <input type='%anyUE'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block var='test'/>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='true'/>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='false'/>
                <list/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:für _ = _ bis _ _ca:per _ = _ fins _ _es:para _ = _ hasta _ _fr:pour _ allant de _ à _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>step</l>
            <l>tester</l>
          </list>
        </block>
        <block s='doIfElse'>
          <block s='reportGreaterThan'>
            <block var='start'/>
            <block var='end'/>
          </block>
          <script>
            <block s='doSetVar'>
              <l>step</l>
              <l>-1</l>
            </block>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportLessThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doSetVar'>
              <l>step</l>
              <l>1</l>
            </block>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportGreaterThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doSetVar'>
          <l>i</l>
          <block var='start'/>
        </block>
        <block s='doUntil'>
          <block s='evaluate'>
            <block var='tester'/>
            <list/>
          </block>
          <script>
            <block s='doRun'>
              <block var='action'/>
              <list/>
            </block>
            <block s='doChangeVar'>
              <l>i</l>
              <block var='step'/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='join words %&apos;words&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:füge Wörter zusammen _ca:uneix les paraules _es:unir las palabras _fr:fusionne les mots _</translations>
      <inputs>
        <input type='%mult%txt'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block s='reportCDR'>
              <block var='words'/>
            </block>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportListItem'>
                <l>1</l>
                <block var='words'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportEquals'>
            <l/>
            <block s='reportListItem'>
              <l>1</l>
              <block var='words'/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='join words %mult%txt'>
                <block s='reportCDR'>
                  <block var='words'/>
                </block>
              </custom-block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportEquals'>
            <l/>
            <block s='reportListItem'>
              <l>2</l>
              <block var='words'/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='join words %mult%txt'>
                <block s='reportCONS'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='words'/>
                  </block>
                  <block s='reportCDR'>
                    <block s='reportCDR'>
                      <block var='words'/>
                    </block>
                  </block>
                </block>
              </custom-block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportJoinWords'>
            <list>
              <block s='reportListItem'>
                <l>1</l>
                <block var='words'/>
              </block>
              <l/>
              <custom-block s='join words %mult%txt'>
                <block s='reportCDR'>
                  <block var='words'/>
                </block>
              </custom-block>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='list $arrowRight sentence %&apos;data&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Liste $arrowRight Satz _ca:llista $arrowRight frase _es:lista $arrowRight frase _fr:liste $arrowRight phrase _</translations>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='join words %mult%txt'>
            <block var='data'/>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='sentence $arrowRight list %&apos;text&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Satz $arrowRight Liste _ca:frase $arrowRight llista _es:frase $arrowRight lista _fr:phrase $arrowRight liste _</translations>
      <inputs>
        <input type='%txt'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportTextSplit'>
            <block var='text'/>
            <l>
              <option>whitespace</option>
            </l>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='catch %&apos;tag&apos; %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:fange _ _ca:agafa _ _es:atrapar _ _fr:attrape _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doCallCC'>
          <block s='reifyScript'>
            <script>
              <block s='doSetVar'>
                <l>tag</l>
                <block var='cont'/>
              </block>
              <block s='doRun'>
                <block var='action'/>
                <list/>
              </block>
            </script>
            <list>
              <l>cont</l>
            </list>
          </block>
        </block>
        <custom-block s='ignore %s'>
          <l>3</l>
        </custom-block>
      </script>
    </block-definition>
    <block-definition s='throw %&apos;cont&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:wirf _ca:llança _es:lanzar _fr:lance _</translations>
      <inputs>
        <input type='%s'>catchtag</input>
      </inputs>
      <script>
        <block s='doRun'>
          <block var='cont'/>
          <list/>
        </block>
      </script>
    </block-definition>
    <block-definition s='catch %&apos;tag&apos; %&apos;value&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations>de:fange _ _ca:agafa _ _es:atrapar _ _fr:attrape _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%anyUE'/>
      </inputs>
      <script>
        <block s='doCallCC'>
          <block s='reifyScript'>
            <script>
              <block s='doSetVar'>
                <l>tag</l>
                <block var='cont'/>
              </block>
              <block s='doReport'>
                <block s='evaluate'>
                  <block var='value'/>
                  <list/>
                </block>
              </block>
            </script>
            <list>
              <l>cont</l>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='throw %&apos;tag&apos; %&apos;value&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:wirf _ _ca:llança _ _es:lanzar _ _fr:lance _ _</translations>
      <inputs>
        <input type='%s'>catchtag</input>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doRun'>
          <block var='tag'/>
          <list>
            <block var='value'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;' category='lists' type='command'>
      <header/>
      <code/>
      <translations>de:für jedes _ von _ _ca:per cada _ de _ _es:para cada _ de _ _fr:pour chaque _ de _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%l'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doUntil'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doSetVar'>
              <l>item</l>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </block>
            <block s='doRun'>
              <block var='action'/>
              <list>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </list>
            </block>
            <block s='doSetVar'>
              <l>data</l>
              <block s='reportCDR'>
                <block var='data'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:falls _ dann _ und pause $pause-1-255-220-0ca:si _ fes _ i atura-ho tot $pause-1-255-220-0es:si _ haz _ y páralo todo $pause-1-255-220-0fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0</translations>
      <inputs>
        <input type='%boolUE'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>breakpoint</l>
          </list>
        </block>
        <block s='doIf'>
          <block s='evaluate'>
            <block var='test'/>
            <list/>
          </block>
          <script>
            <block s='doSetVar'>
              <l>breakpoint</l>
              <block var='test'/>
            </block>
            <block s='doShowVar'>
              <l>breakpoint</l>
            </block>
            <block s='doRun'>
              <block var='action'/>
              <list/>
            </block>
            <block s='doPauseAll'/>
            <block s='doHideVar'>
              <l/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='word $arrowRight list %&apos;word&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Wort $arrowRight Liste _ca:paraula $arrowRight llista _es:palabra $arrowRight lista _fr:mot $arrowRight liste _</translations>
      <inputs>
        <input type='%txt'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportTextSplit'>
            <block var='word'/>
            <l>
              <option>letter</option>
            </l>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition category='control' s='ignore %&apos;x&apos;' type='command'>
      <header/>
      <code/>
      <translations>de:ignoriere _ca:ignora _es:ignorar _fr:ignore _</translations>
      <inputs>
        <input type='%s'/>
      </inputs>
    </block-definition>
    <block-definition s='list $arrowRight word %&apos;list&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Liste $arrowRight Wort _ca:llista $arrowRight paraula _es:lista $arrowRight palabra _fr:liste $arrowRight mot _</translations>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportJoinWords'>
            <block var='list'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;x&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block var='x'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='numbers from %&apos;from&apos; to %&apos;to&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:Zahlen von _ bis _ca:nombres des de _ a _es:números de _ a _fr:nombres de _ à _</translations>
      <inputs>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block var='from'/>
            <block var='to'/>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportCONS'>
            <block var='from'/>
            <custom-block s='numbers from %n to %n'>
              <block s='reportSum'>
                <block var='from'/>
                <l>1</l>
              </block>
              <block var='to'/>
            </custom-block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='map %&apos;func&apos; over %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:wende _ an auf _ca:mapeja _ sobre _es:mapear _ sobre _fr:appliquer _ à _</translations>
      <inputs>
        <input type='%repRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block var='data'/>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportCONS'>
            <block s='evaluate'>
              <block var='func'/>
              <list>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </list>
            </block>
            <custom-block s='map %repRing over %l'>
              <block var='func'/>
              <block s='reportCDR'>
                <block var='data'/>
              </block>
            </custom-block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='duplicates in %&apos;acdsafv&apos;' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>a</l>
            <l>b</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>new list</l>
          <block s='reportNewList'>
            <list/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>a</l>
          <l>0</l>
        </block>
        <block s='doSetVar'>
          <l>b</l>
          <block s='reportNewList'>
            <list/>
          </block>
        </block>
        <custom-block s='for each %upvar of %l %cs'>
          <l>item</l>
          <block var='acdsafv'/>
          <script>
            <block s='doAddToList'>
              <block var='item'/>
              <block var='new list'/>
            </block>
          </script>
        </custom-block>
        <custom-block s='for each %upvar of %l %cs'>
          <l>item</l>
          <block var='new list'/>
          <script>
            <block s='doInsertInList'>
              <block var='item'/>
              <l>1</l>
              <block var='new list'/>
            </block>
            <block s='doDeleteFromList'>
              <block s='reportSum'>
                <block var='item'/>
                <l>1</l>
              </block>
              <block var='new list'/>
            </block>
            <custom-block s='for each %upvar of %l %cs'>
              <l>item</l>
              <block s='reportCDR'>
                <block var='new list'/>
              </block>
              <script>
                <block s='doIf'>
                  <block s='reportEquals'>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='new list'/>
                    </block>
                    <block var='item'/>
                  </block>
                  <script>
                    <block s='doAddToList'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='new list'/>
                      </block>
                      <block var='b'/>
                    </block>
                  </script>
                </block>
              </script>
            </custom-block>
          </script>
        </custom-block>
        <block s='doReport'>
          <block var='b'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='are the numbers of %&apos;e&apos; distinct?' category='operators' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportBoolean'>
            <l>
              <bool>false</bool>
            </l>
          </block>
        </block>
      </script>
    </block-definition>
  </blocks>
  <variables>
    <variable name='new list'>
      <list id='634' struct='atomic'>7,12,20,3,10,3,3,20,12,7</list>
    </variable>
  </variables>
</project><media name="M7L1A3" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>