<snapdata remixID="11022916"><project name="messages" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes>this project needs javascript exstenstions to be on. you can message anyone with project</notes><thumbnail>data:image/png;base64,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</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,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="receiveGo"></block><custom-block s="set flag %s to %b"><l>Presentation mode</l><l><bool>true</bool></l></custom-block><block s="doSetVar"><l>messages</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><block s="doIf"><custom-block s="starts with %s %s"><block s="reportListItem"><l>1</l><block var="item"/></block><block s="reportJoinWords"><list><custom-block s="setting %s"><l>User</l></custom-block><block s="reportUnicodeAsLetter"><l>1000</l></block></list></block><variables><variable name="a"><l>0</l></variable></variables></custom-block><script><block s="doAddToList"><block s="reportListItem"><l>2</l><block var="item"/></block><block var="messages"/></block></script></block></script></block><block s="doSetVar"><l>number message sent to</l><l>0</l></block><block s="doAsk"><l>who do you want send this message to type in there user name</l></block><block s="doSetVar"><l>user to send to</l><block s="getLastAnswer"></block></block><block s="doAsk"><block s="reportJoinWords"><list><l>what do you want to send to </l><block var="user to send to"/></list></block></block><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><block s="doIf"><custom-block s="starts with %s %s"><block s="reportListItem"><l>1</l><block var="item"/></block><block s="reportJoinWords"><list><block var="user to send to"/><block s="reportUnicodeAsLetter"><l>1000</l></block></list></block><variables><variable name="a"><bool>false</bool></variable></variables></custom-block><script><block s="doChangeVar"><l>number message sent to</l><l>1</l></block></script></block></script></block><custom-block s="store key: %s value: %s in browser"><block s="reportJoinWords"><list><block var="user to send to"/><block s="reportUnicodeAsLetter"><l>1000</l></block><block var="number message sent to"/></list></block><block s="reportJoinWords"><list><l>from</l><l>:</l><custom-block s="setting %s"><l>User</l></custom-block><custom-block s="d %mlt"><l>&#xD;</l></custom-block><block s="getLastAnswer"></block></list></block></custom-block></script><script x="235" y="640.0000000000001"><custom-block s="store key: %s value: %s in browser"><l>d</l><l>e</l></custom-block></script><script x="563.21875" y="446.0000000000001"><block s="reportNumbers"><l>1</l><l>10</l></block></script><script x="543" y="646"><custom-block s="store key: %s value: %s in browser"><block s="reportJoinWords"><list><block var="user to send to"/><block var="user to send to"/></list></block><block s="reportJoinWords"><list><l>from</l><l>:</l><l></l><custom-block s="d %mlt"><l>&#xD;</l></custom-block><block s="getLastAnswer"></block></list></block></custom-block></script></scripts><sprites><watcher var="user to send to" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="number message sent to" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="messages" style="normal" x="-2" y="0.000003999999989900971" color="243,118,29" extX="179" extY="84"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; in browser" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>key</l><l>value</l><l>proc</l></list><l>proc.assertType(key, [&apos;text&apos;, &apos;number&apos;]);&#xD;proc.assertType(value, [&apos;text&apos;, &apos;number&apos;]);&#xD;window.localStorage.setItem(&apos;-snap-project-&apos; + key, &apos;&apos; + value);</l></block><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data in browser" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var str = window.localStorage,&#xD;    len = str.length,&#xD;    result = [],&#xD;    key,&#xD;    i;&#xD;for (i = 0; i &lt; len; i += 1) {&#xD;  key = str.key(i);&#xD;  if (key.startsWith(&apos;-snap-project-&apos;)) {&#xD;    result.push(new List([key.slice(14), str.getItem(key)]));&#xD;  }&#xD;}&#xD;return new List(result);</l></block><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos; in browser" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>key</l><l>proc</l></list><l>proc.assertType(key, [&apos;text&apos;, &apos;number&apos;]);&#xD;window.localStorage.removeItem(&apos;-snap-project-&apos; + key);</l></block><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data in browser" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><custom-block s="remove key: %s in browser"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="get value from key: %&apos;key&apos; in browser" type="reporter" category="other"><comment x="0" y="0" w="199.33333333333334" collapsed="false">Reports the value previously stored under&#xD;the input key in the browser&apos;s local storage.&#xD;Reports False if the key is not found.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>key</l></list><l>var str = window.localStorage,&#xD;    result = str.getItem(&apos;-snap-project-&apos;+key);&#xD;if (!result) {&#xD;   return false;&#xD;}&#xD;return result;</l></block><list><block var="key"/></list></block></block></script></block-definition><block-definition s="starts with %&apos;s&apos; %&apos;d&apos;" type="predicate" category="operators"><variables><list struct="atomic" id="215">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportStringSize"><block var="d"/></block><script><block s="doIf"><block s="reportNotEquals"><block s="reportLetter"><block var="i"/><block var="s"/></block><block s="reportLetter"><block var="i"/><block var="d"/></block></block><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows reading global settings programmatically.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:o valor da configuração _&#xD;</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;Hyper blocks 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 !!this.scripts.focus;&#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;    case &apos;Hyper blocks support&apos;:&#xD;        return Process.prototype.enableHyperOps;&#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="set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for Boolean (checkbox) settings; use&#xD;SET VALUE for numeric or text values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Presentation mode&#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;Hyper blocks support</options></input><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>tf</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph),&#xD;        thisObj = this;&#xD;&#xD;if (tf != !!tf) return;&#xD;&#xD;try{&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Presentation mode&apos;:&#xD;        if (tf != ide.isAppMode) ide.toggleAppMode();&#xD;        break;&#xD;    case &apos;Retina display support&apos;:&#xD;        if (tf != isRetinaEnabled()) ide.toggleRetina();&#xD;        break;&#xD;    case &apos;Long form input dialog&apos;:&#xD;        if (tf != InputSlotDialogMorph.prototype.isLaunchingExpanded)&#xD;            ide.toggleLongFormInputDialog();&#xD;        break;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        if (tf != BlockLabelPlaceHolderMorph.prototype.plainLabel)&#xD;            ide.togglePlainPrototypeLabels();&#xD;        break;&#xD;    case &apos;Input sliders&apos;:&#xD;        MorphicPreferences.useSliderForInput = tf;&#xD;        break;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        ArgMorph.prototype.executeOnSliderEdit = tf;&#xD;        break;&#xD;    case &apos;Clicking sound&apos;:&#xD;        if (tf != !!BlockMorph.prototype.snapSound)&#xD;            BlockMorph.prototype.toggleSnapSound();&#xD;        break;&#xD;    case &apos;Turbo mode&apos;:&#xD;        if (tf != stage.isFastTracked)&#xD;            ide.toggleFastTracking();&#xD;        break;&#xD;    case &apos;Flat design&apos;:&#xD;        if (tf == MorphicPreferences.isFlat) break;&#xD;        if (tf)&#xD;            ide.flatDesign();&#xD;        else&#xD;            ide.defaultDesign();&#xD;        break;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        if (thisObj.scripts.focus &amp;&amp; !tf) {&#xD;            thisObj.scripts.focus.stopEditing();&#xD;        } else if (tf &amp;&amp; !thisObj.scripts.focus) {&#xD;            thisObj.scripts.toggleKeyboardEntry();&#xD;        };&#xD;        break;&#xD;    case &apos;Visible stepping&apos;:&#xD;        if (tf != Process.prototype.enableSingleStepping)&#xD;            ide.toggleSingleStepping();&#xD;        break;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        stage.isThreadSafe = tf;&#xD;        break;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        if (tf != (StageMorph.prototype.frameRate &gt; 0))&#xD;            ide.toggleVariableFrameRate();&#xD;        break;&#xD;    case &apos;Flat line ends&apos;:&#xD;        SpriteMorph.prototype.useFlatLineEnds = tf;&#xD;        break;&#xD;    case &apos;Codification support&apos;:&#xD;        if (tf != StageMorph.prototype.enableCodeMapping) {&#xD;            StageMorph.prototype.enableCodeMapping = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;    case &apos;Inheritance support&apos;:&#xD;        if (tf != StageMorph.prototype.enableInheritance) {&#xD;            StageMorph.prototype.enableInheritance = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;    case &apos;Hyper blocks support&apos;:&#xD;        Process.prototype.enableHyperOps = tf;&#xD;        break;&#xD;};&#xD;}&#xD;finally {&#xD;ide.savingPreferences = false;&#xD;};&#xD;</l></block><list><block var="which"/><block var="tf"/></list></block></script></block-definition><block-definition s="set value %&apos;which&apos; to %&apos;value&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for numeric or text settings; use&#xD;SET FLAG for Boolean (checkbox) values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Visible palette</options></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>value</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;try {&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        ide.projectNotes = value;&#xD;        break;&#xD;    case &apos;Project name&apos;:&#xD;        ide.setProjectName(value);&#xD;        break;&#xD;    case &apos;Language&apos;:&#xD;        ide.setLanguage(value);&#xD;        break;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        if (!isNaN(value)) ide.setBlocksScale(Math.min(value, 12));&#xD;        break;&#xD;    case &apos;Stage size&apos;:&#xD;        if ((value instanceof List) &amp;&amp; value.length()==2&#xD;                       &amp;&amp; !isNaN(value.at(1)) &amp;&amp; !isNaN(value.at(2)))&#xD;            ide.setStageExtent(new Point(value.at(1), value.at(2)));&#xD;        break;&#xD;    case &apos;Stage scale&apos;:&#xD;        ide.toggleStageSize(value != 1, Math.max(0.1, value));&#xD;        break;&#xD;    case &apos;Visible palette&apos;:&#xD;        ide.currentCategory = value.toLowerCase();&#xD;        ide.categories.children.forEach(function (each) {&#xD;                each.refresh();&#xD;        });&#xD;        ide.refreshPalette(true);&#xD;        break;&#xD;};&#xD;}&#xD;finally {ide.savingPreferences = true;&#xD;};</l></block><list><block var="which"/><block var="value"/></list></block></script></block-definition><block-definition s="d %&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition></blocks><variables><variable name="user to send to"><l>sirbuffalo</l></variable><variable name="number message sent to"><l>0</l></variable><variable name="messages"><list struct="atomic" id="297">&quot;from:&#xD;yay&quot;</list></variable></variables></project><media name="messages" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>