<snapdata remixID="10235285"><project name="random word locations" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAEUklEQVR4Xu3XP0iUcRzH8e+lINhQtEgElSJNDpESQUZaWNq/wf4MFdgfQzAaclEMiyxNHNQUHOyCXHIQjcKoEPPMIoeEBiEiUzFCCozCbOns4h6401CwwePzHM/b7eC4z/O8f6+eu3yhUChk/FFAVMAHQFF5Zp0CAASCtAAApfkZByAGpAUAKM3POAAxIC0AQGl+xgGIAWkBAErzMw5ADEgLAFCan3EAYkBaAIDS/IwDEAPSAgCU5mccgBiQFgCgND/jAMSAtAAApfkZByAGpAUAKM3POAAxIC0AQGl+xgGIAWkBAErzMw5ADEgLAFCan3EAYkBaAIDS/IwDEAPSAgCU5mccgBiQFgCgND/jAMSAtAAApfkZByAGpAUAKM3POAAxIC0AQGl+xgGIAWkBAErzMw5ADEgLAFCan3EAYkBaAIDS/IwDEAPSAgCU5mccgBiQFgCgND/jAMSAtAAApfkZByAGpAUAKM3POAAxIC0AQGl+xgGIAWkBAErzMw5ADEgLAFCan3EAYkBaAIDS/IwDEAPSAgCU5mccgBiQFgCgND/jAMSAtAAApfkZByAGpAUAKM3POAAxIC0AQGl+xgGIAWkBAErzMw5ADEgLAFCan3EAYkBaAIDS/IwDEAPSAgCU5mccgBiQFgCgND/jAMSAtAAApfkZByAGpAUAKM3POAAxIC0AQGl+xgGIAWkBAErzMw5ADEgLAFCan3EAYkBaAIDS/IwDEAPSAgCU5mccgBiQFgCgND/jAMSAtAAApfkZByAGpAUAKM3PuOsBjgzPH1JCotlccP61z2cWCi19iCv53oxMoMSqQNwBPHei2+7cL3R6hAEGgyF7PThp2TmbbHLih5091ml9b4ptIcALJ7vN31FoezL9VnEjx/IK0v/puRxWAMaKn1lcAGxtGLLx0W/W0HbALhY9sl+zv622Kd9S1q9ehCqMcOPmNQ7AnzNBO7TrnqVtWecADD8te5+MRgEWHe2086VZlrs/NfrensEzlpycaA8731lXx4i1dx03AHoYYHvrZ9u2fYPztAujKtjZbj0DRbY3y2/Ph4sXoVoIsLZqwMqv7bbIE3AhwMbal3a5MtsmJ75bavpaB3bz3SPRJ+vNyn67UpPrvAaghwG23Bqz3H1pToEwwMhX8P8AbKkfstKyHUsCrLsasIrqnOjnRn5blpU8tsa2gw7sr19mbdUqn+XkJ8fuBDz+yXHxFXy9os/mgn+spilvEcDw77rw323/YZuamrG6qoDzOvC22F4FPlmgd8w+fpiO/gaMvDdja4qVnHpgo++nnff2Pxu3+uoX1t172pKSEqz80lPnc+qa83kCxvAfSVwAjNz/cv9ZWNhpJd/LV3DsBLoeYOxunU92QwEAuuEUPHwNAPTw4bvh1gHohlPw8DUA0MOH74ZbB6AbTsHD1wBADx++G24dgG44BQ9fAwA9fPhuuHUAuuEUPHwNAPTw4bvh1v8CjyLIt8FBZ1gAAAAASUVORK5CYII=</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="-21.299156250000124" y="-142.77599999999995" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="21.699999999999946,0,155,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="42.28571428571428" y="30.571428571428555"><block s="receiveGo"></block><block s="clear"></block><custom-block s="let %upvar be one of these languages: %txt"><l>language</l><l>English</l></custom-block><block s="doRepeat"><l>1</l><script><custom-block s="let %upvar be %s"><l>word</l><block s="reportListItem"><l><option>any</option></l><custom-block s="all words in language %txt with features"><block var="language"/></custom-block></block></custom-block><block s="setPenHSVA"><l><option>hue</option></l><block s="reportRandom"><l>1</l><l>100</l></block></block><custom-block s="display word %txt in language %txt with size %n and zoom by %n"><block var="word"/><block var="language"/><l>20</l><l>2</l></custom-block></script></block></script><script x="43" y="274"><custom-block s="Open this in a new tab"></custom-block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Load eCraft2Learn library" type="command" category="other"><comment x="0" y="0" w="248.57142857142858" collapsed="true">Returns only after eCraft2Learn library is loaded</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWaitUntil"><custom-block s="Try to load ecraft2learn library"></custom-block></block></script></block-definition><block-definition s="Try to load ecraft2learn library" type="reporter" category="other"><comment x="0" y="0" w="323.5714285714286" collapsed="true">Should only be called by Load eCraft2Learn library</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;   return true;&#xD;}&#xD;if (window.waiting_for_ecraft2learn_library) {&#xD;   return false;&#xD;}&#xD;window.waiting_for_ecraft2learn_library = true;&#xD;let script = document.createElement("script");&#xD;script.type = "text/javascript";&#xD;if (window.location.hostname === &apos;localhost&apos;) {&#xD;    script.src = window.location.protocol + "//" + window.location.host + "/ai/ecraft2learn-beta.js"; // notice this the beta version&#xD;} else {&#xD;    script.src = "https://ecraft2learn.github.io/ai/ecraft2learn.js";&#xD;}&#xD;document.head.appendChild(script);&#xD;return false;</l></block><list></list></block></block></script></block-definition><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;User&#xD;Presentation mode&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support&#xD;Visible palette</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    ide = stage.parentThatIsA(IDE_Morph),&#xD;    world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        return ide.projectNotes;&#xD;    case &apos;Project name&apos;:&#xD;        return ide.projectName;&#xD;    case &apos;User&apos;:&#xD;        return ide.cloud.username;&#xD;    case &apos;Presentation mode&apos;:&#xD;        return ide.isAppMode;&#xD;    case &apos;Language&apos;:&#xD;        return SnapTranslator.language;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        return SyntaxElementMorph.prototype.scale;&#xD;    case &apos;Stage size&apos;:&#xD;        return new List([StageMorph.prototype.dimensions.x,&#xD;                                   StageMorph.prototype.dimensions.y]);&#xD;    case &apos;Stage scale&apos;:&#xD;       return stage.scale;&#xD;    case &apos;Retina display support&apos;:&#xD;        return isRetinaEnabled();&#xD;    case &apos;Long form input dialog&apos;:&#xD;        return InputSlotDialogMorph.prototype.isLaunchingExpanded;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        return BlockLabelPlaceHolderMorph.prototype.plainLabel;&#xD;    case &apos;Input sliders&apos;:&#xD;        return MorphicPreferences.useSliderForInput;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        return ArgMorph.prototype.executeOnSliderEdit;&#xD;    case &apos;Clicking sound&apos;:&#xD;        return !!BlockMorph.prototype.snapSound;&#xD;    case &apos;Turbo mode&apos;:&#xD;        return stage.isFastTracked;&#xD;    case &apos;Flat design&apos;:&#xD;        return MorphicPreferences.isFlat;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        return world.keyboardReceiver instanceof ScriptFocusMorph;&#xD;    case &apos;Visible stepping&apos;:&#xD;        return Process.prototype.enableSingleStepping;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        return stage.isThreadSafe;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        return StageMorph.prototype.frameRate &gt; 0;&#xD;    case &apos;Flat line ends&apos;:&#xD;        return SpriteMorph.prototype.useFlatLineEnds;&#xD;    case &apos;Codification support&apos;:&#xD;        return StageMorph.prototype.enableCodeMapping;&#xD;    case &apos;Inheritance support&apos;:&#xD;        return StageMorph.prototype.enableInheritance;&#xD;    default: return which;&#xD;    case &apos;Visible palette&apos;:&#xD;        return ide.currentCategory;&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="call eCraft2Learn reporter %&apos;reporter name&apos; with %&apos;inputs&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>function_name</l><l>parameters</l><l>no_warning</l></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;    return ecraft2learn.run(function_name, parameters);&#xD;}&#xD;if (!no_warning) {&#xD;    alert("Any eCraft2Learn command must be run before the " + function_name + " reporter.");&#xD;}&#xD;return 0;</l></block><list><block var="reporter name"/><block var="inputs"/></list></block></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="all words in language %&apos;language&apos; with features" type="reporter" category="variables"><comment x="0" y="0" w="224.7398158482143" collapsed="false">Reports all the words that have a list of features accessible via the &quot;features of&quot; reporter block. Data obtained from https://github.com/facebookresearch/fastText</comment><header></header><code></code><translations></translations><inputs><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>all_words_with_features</l><list><block var="language"/></list></custom-block></block></script></block-definition><block-definition s="location of %&apos;word&apos; in language %&apos;language&apos;" type="reporter" category="variables"><comment x="0" y="0" w="384.28571428571433" collapsed="false">Reports a location of a word embedding use t-SNE. See https://en.wikipedia.org/wiki/T-distributed_stochastic_neighbor_embedding</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><custom-block s="let %upvar be %s"><l>location</l><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>word_to_location</l><list><block var="word"/><block var="language"/></list></custom-block></custom-block><block s="doIf"><custom-block s="empty? %l"><block var="location"/></custom-block><script><block s="doReport"><block var="location"/></block></script></block><custom-block s="let %upvar be %s"><l>stage size</l><custom-block s="setting %s"><l>Stage size</l></custom-block></custom-block><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportProduct"><block s="reportListItem"><l>1</l><block var="location"/></block><block s="reportListItem"><l>1</l><block var="stage size"/></block></block><block s="reportQuotient"><block s="reportListItem"><l>1</l><block var="stage size"/></block><l>2</l></block></block><block s="reportDifference"><block s="reportProduct"><block s="reportListItem"><l>2</l><block var="location"/></block><block s="reportListItem"><l>2</l><block var="stage size"/></block></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="stage size"/></block><l>2</l></block></block></list></block><comment w="295" collapsed="true">Convert from 0 to 1 coordinates to Snap! coordinations.</comment></block></script></block-definition><block-definition s="wait for word embeddings in language %&apos;language&apos; $nl or use this word embeddings url %&apos;url&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Portuguese&#xD;Sinhalese&#xD;Swedish</options></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>loaded</l></list></block><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="Load words to features in language %txt then %cmdRing %br use this URL instead of default %txt"><block var="language"/><block s="reifyScript"><script><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block var="url"/></custom-block><block s="doWaitUntil"><block var="loaded"/></block></script></block-definition><block-definition s="Load words to features in language %&apos;language&apos; then %&apos;do when loaded&apos; $nl use this URL instead of default %&apos;url&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Portuguese&#xD;Sinhalese&#xD;Swedish</options></input><input type="%cmdRing"></input><input type="%txt"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>word_embeddings_ready</l><list><block var="language"/><block var="do when loaded"/><block var="url"/></list></custom-block></script></block-definition><block-definition s="set pen color to h: %&apos;h&apos; s: %&apos;s&apos; v: %&apos;v&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">0.3</input><input type="%n">0.7</input><input type="%n">0.6</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>h</l><l>s</l><l>v</l></list><l>var col = new Color();&#xD;col.set_hsv(h, s, v);&#xD;this.setColor(col);</l></block><list><block var="h"/><block var="s"/><block var="v"/></list></block></script></block-definition><block-definition s="HSV color" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return new List(this.color.hsv());</l></block><list></list></block></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">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></header><code></code><translations>de:drucke _ in Größe _&#xD;</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></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="repeat text %&apos;text&apos; %&apos;n&apos; times" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportLessThan"><block var="n"/><l>1</l></block><script><block s="doReport"><block s="reportJoinWords"><list></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="text"/><custom-block s="repeat text %txt %n times"><block var="text"/><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;value&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="value"/></block></script></block-definition><block-definition s="display word %&apos;word&apos; in language %&apos;language&apos; with size %&apos;size&apos; and zoom by %&apos;zoom&apos;" type="command" category="pen"><comment x="0" y="0" w="220" collapsed="true">Displays the word near similar words.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Portuguese&#xD;Sinhalese&#xD;Swedish</options></input><input type="%n">12</input><input type="%n">1</input></inputs><script><custom-block s="let %upvar be %s"><l>location</l><custom-block s="location of %txt in language %txt"><block var="word"/><block var="language"/></custom-block></custom-block><custom-block s="let %upvar be %s"><l>x</l><block s="reportDifference"><block s="reportProduct"><block s="reportListItem"><l>1</l><block var="location"/></block><block var="zoom"/></block><block s="reportProduct"><block s="reportStringSize"><block var="word"/></block><l>5</l></block><comment w="278" collapsed="false">Attempt to center the word. 12/2 would be correct if every character was full width.</comment></block></custom-block><custom-block s="let %upvar be %s"><l>y</l><block s="reportProduct"><block s="reportListItem"><l>2</l><block var="location"/></block><block var="zoom"/></block></custom-block><custom-block s="let %upvar be %s"><l>pen color</l><custom-block s="HSV color"></custom-block></custom-block><block s="gotoXY"><block var="x"/><block var="y"/></block><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="pen color"/></block><l>.2</l><l>1</l></custom-block><custom-block s="label %txt of size %n"><custom-block s="repeat text %txt %n times"><l>█</l><block s="reportStringSize"><block var="word"/></block></custom-block><block var="size"/></custom-block><block s="gotoXY"><block var="x"/><block var="y"/><comment w="224.99999999999994" collapsed="true">Display the word centered at the location.</comment></block><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="pen color"/></block><block s="reportListItem"><l>2</l><block var="pen color"/></block><block s="reportListItem"><l>3</l><block var="pen color"/></block></custom-block><custom-block s="label %txt of size %n"><block var="word"/><block var="size"/></custom-block></script></block-definition><block-definition s="Open this in a new tab" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>re_open_full_window</l><list></list></custom-block></script></block-definition><block-definition s="run eCraft2Learn command %&apos;command name&apos; with %&apos;inputs&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>function_name</l><l>parameters</l></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;    ecraft2learn.run(function_name, parameters);&#xD;} else {&#xD;   var script = document.createElement("script");&#xD;   script.type = "text/javascript";&#xD;   script.addEventListener(&apos;error&apos;, function () {&#xD;          alert("Unable to load https://ecraft2learn.github.io/ai/ecraft2learn.js. Check your network connection.");&#xD;   });&#xD;   script.src = "https://ecraft2learn.github.io/ai/ecraft2learn.js";&#xD;   script.addEventListener(&apos;load&apos;, function () {&#xD;          ecraft2learn.run(function_name, parameters);&#xD;   });&#xD;   document.head.appendChild(script);&#xD;}&#xD;</l></block><list><block var="command name"/><block var="inputs"/></list></block></script></block-definition><block-definition s="let %&apos;variable name&apos; be one of these languages: %&apos;language&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><block s="doSetVar"><l>variable name</l><block var="language"/></block></script></block-definition></blocks><variables></variables></project><media name="random word locations" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>