<snapdata remixID="177"><project name="conection graph" app="Snap! 11.0.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="conection graph"><notes></notes><palette><category name="magic" color="94,20,255,1"/><category name="velocity" color="0,116,143,1"/><category name="Avi&apos;s" color="253,252,5,1"/><category name="error" color="255,56,15,1"/><category name="Nodes" color="0,90,145,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="is magic on?" type="reporter" category="magic"><comment x="0" y="0" w="90" collapsed="false">is Magic on&#xD;will check is JavaScript is enabled, if it isn&apos;t it will explain how to turn it on</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="JavaScript enabled?"></custom-block><custom-block s="join %mult%mlt"><list><l>You have Magic!</l></list></custom-block><custom-block s="join %mult%mlt"><list><l>Your magic is off&#xD;&#xD;To turn it on ,click on the gear in the top left&#xD;then click "JavaScript extensions" &#xD;finally check again if you have magic.</l></list></custom-block></block></block></script></block-definition><block-definition s="$verticalEllipsis hide mouse" type="command" category="magic" helper="true" space="true"><comment x="0" y="0" w="90" collapsed="false">hide mouse&#xD;will well hide your mouse, to gain your mouse back use the show mouse block</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>html</l></list><l>document.head.innerHTML +=&#xD;	html;</l></block><list><l>&lt;style id="canvas-style"&gt;canvas {cursor: none;}&lt;/style&gt;</l></list></block></script></block-definition><block-definition s="$verticalEllipsis show mouse" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">show Mouse&#xD;will show the mouse if it was hidden, by using the hide mouse block</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><custom-block s="is mouse hidden"></custom-block><script><block s="doRun"><block s="reportJSFunction"><list><l>id</l></list><l>document.getElementById(id).remove()</l></block><list><l>canvas-style</l></list></block></script><list></list></block></script></block-definition><block-definition s="is mouse hidden" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">is mouse hidden&#xD;will report if the mouse is hidden or not</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>id</l></list><l>return !!(document.getElementById(id))</l></block><list><l>canvas-style</l></list></block></block></script></block-definition><block-definition s="join %&apos;t&apos;" type="reporter" category="magic" helper="true" space="true"><comment x="0" y="0" w="209.13761393229174" collapsed="false">&quot;magic&quot; join&#xD;may seem like the regular join but it actuly has multi-line(multi-line means if you hit enter it ads a new line)</comment><header></header><code></code><translations></translations><inputs><input type="%mult%mlt" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="t"/></list></block></block></script></block-definition><block-definition s="$verticalEllipsis repeat for %&apos;#&apos; secs %&apos;code&apos;" type="command" category="magic" helper="true"><comment x="0" y="0" w="125.42256673177083" collapsed="false">repeat for n seconds&#xD;will repeat the code you put into the &quot;C&quot; slot for n seconds</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doWait"><block var="#"/></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block><block s="doUntil"><block var="a"/><script><block s="doRun"><block var="code"/><list></list></block></script></block></script></block-definition><block-definition s="$verticalEllipsis pen costume" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">pen costume&#xD;will it&apos;s a pen trails and add them into the costumes</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAddToList"><block s="reportPenTrailsAsCostume"></block><block s="reportGet"><l><option>costumes</option></l></block></block><block s="doSwitchToCostume"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block></script></block-definition><block-definition s="is %&apos;i&apos; a %&apos;tipe&apos; ?" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">is _ a _ ?&#xD;Has a long list of functions inside of it that will output a Boolean whether or not the thing is or is not whatever you choose on the list</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>prime&#xD;evan number&#xD;number&#xD;text &#xD;boolean&#xD;list&#xD;sprite&#xD;stage&#xD;costume&#xD;sound&#xD;command&#xD;reporter&#xD;agent&#xD;script</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>evan number</l></list></block><script><block s="doReport"><custom-block s="is %n divisible by %n"><block var="i"/><l></l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>prime</l></list></block><script><block s="doReport"><custom-block s="is %n prime"><block var="i"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>number</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>number</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>text</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>text</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>boolean</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>Boolean</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>list</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>sprite</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>sprite</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>stage</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>stage</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>costume</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>costume</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>sound</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>sound</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>command</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>command</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>reporter</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>reporter</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>predicate</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>predicate</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>agent</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>agent</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tipe"/><l>script</l></list></block><script><block s="doReport"><block s="reportIsA"><block var="i"/><l><option>script</option></l></block></block></script><list></list></block><block s="doReport"><l>I do not know</l></block></script></block-definition><block-definition s="%&apos;# 1&apos; in base %&apos;# 2&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">In base&#xD; will the base of whatever the second number is such as 10 in base 10 is equal to 10 but 10 in base 9 is equal to 11</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="# 2"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="# 2"/><l>37</l></list></block></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>n</l><l>base</l></list><l>return(n.toString(base))</l></block><list><block var="# 1"/><block var="# 2"/></list></block></block></script><list><block s="reportBoolean"><l><bool>true</bool></l></block><script><block s="doReport"><block s="reportJoinWords"><list><l>min 2 max 36.</l><block var="# 2"/><l>is to </l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block var="# 2"/><l>36</l></list></block><l>big</l><l>small</l></block></list></block></block></script></list></block></script></block-definition><block-definition s="function ( %&apos;1&apos; %&apos;c&apos; %&apos;2&apos; )" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">function ( _ _ _ )&#xD;max similar to &quot;is _ a _ ?&quot; except for it has three input slots and it doesn&apos;t report a Boolean instead it applies one to the other input using the middle input as the function</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>+&#xD;-&#xD;̣×&#xD;/&#xD;^&#xD;mod&#xD;min&#xD;max&#xD;round by&#xD;random value to&#xD;&lt;&#xD;=&#xD;&gt;&#xD;and&#xD;or&#xD;xor&#xD;split by&#xD;is a&#xD;in base</options></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>+</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>-</l></list></block><script><block s="doReport"><block s="reportDifference"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>×</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>/</l></list></block><script><block s="doReport"><block s="reportQuotient"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>^</l></list></block><script><block s="doReport"><block s="reportPower"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>mod</l></list></block><script><block s="doReport"><block s="reportModulus"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>min</l></list></block><script><block s="doReport"><block s="reportVariadicMin"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>max</l></list></block><script><block s="doReport"><block s="reportVariadicMax"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>round by</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportRound"><block s="reportQuotient"><block var="1"/><block var="2"/></block></block><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>&lt;</l></list></block><script><block s="doReport"><block s="reportVariadicLessThan"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>=</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>&gt;</l></list></block><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>and</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>or</l></list></block><script><block s="doReport"><block s="reportVariadicOr"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>xor</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block var="1"/><block var="2"/></list></block><block s="reportNot"><block s="reportVariadicAnd"><list><block var="1"/><block var="2"/></list></block></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>split by</l></list></block><script><block s="doReport"><block s="reportTextSplit"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>is a</l></list></block><script><block s="doReport"><custom-block s="is %s a %s ?"><block var="1"/><block var="2"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="c"/><l>in base</l></list></block><script><block s="doReport"><custom-block s="%n in base %n"><block var="1"/><block var="2"/></custom-block></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="$verticalEllipsis link to %&apos;page&apos;" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">link&#xD;will send the user( with their permission) to whatever site you choose</comment><header></header><code></code><translations></translations><inputs><input type="%txt">https://en.wikipedia.org/wiki/%22Hello,_World!%22_program</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>url</l></list><l>window.open(url);</l></block><list><block var="page"/></list></block></script></block-definition><block-definition s="$verticalEllipsis hide mouse %&apos;t/f&apos;" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">hide mouse bool&#xD;will hide the mouse if giving a true and show the most if given a false</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block var="t/f"/><script><custom-block s="$verticalEllipsis hide mouse"></custom-block></script><script><custom-block s="$verticalEllipsis show mouse"></custom-block></script></block></script></block-definition><block-definition s="$verticalEllipsis export costume %&apos;costume&apos;" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">export costume&#xD; will export the costume which you provided the name of</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><block var="costume"/><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block></block><block s="doIf"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><script><block s="doApplyExtension"><l>cst_export(cst, name)</l><list><block var="costume"/><l></l></list></block></script><list></list></block></script></block-definition><block-definition s="$verticalEllipsis set name of costume %&apos;costume&apos; to %&apos;name&apos;" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">set the name of costume&#xD; will set the name of the chosen costume to what you choose&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%s">thing</input></inputs><script><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><block var="costume"/><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block></block><block s="doIf"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><script><block s="doApplyExtension"><l>obj_name(obj, name)</l><list><block var="costume"/><block var="name"/></list></block></script><list></list></block></script></block-definition><block-definition s="$verticalEllipsis delete var %&apos;_names&apos;" type="command" category="variables" helper="true"><comment x="0" y="0" w="217" collapsed="false">This block deletes all the variables with the names given (inside input list).&#xD;&#xD;Each name will make only one variable deletion, and this will be the variable found following the scope order: &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;If we have a &quot;testing&quot; sprite variable and also a &quot;testing&quot; global one, deleting &quot;testing&quot; will delete only the sprite one (Yes! we can also do &quot;delete var (testing, testing)&quot; to delete both.&#xD;&#xD;If one variable does not exists (in any scope) an error happens, stopping block action in that point. You can check it before with the &quot;does var (name) exists?&quot;block. </comment><header></header><code></code><translations>pt:remove as variáveis _&#xD;ca:esborra les variables _&#xD;es:borrar variables _&#xD;de:löschen var _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>err_ignore</l><list><custom-block s="var %s"><block var="_item"/></custom-block></list></block><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="$verticalEllipsis set var %&apos;_name&apos; to %&apos;_value&apos;" type="command" category="variables" helper="true"><comment x="0" y="0" w="240.4931640625" collapsed="false">This block sets the given value (last input) to the variable named with the name givent (var input).&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>ca:assigna a _ el valor _&#xD;es:asignar a _ el valor _&#xD;pt:altera _ para _&#xD;de:setze var _ auf _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="_name"/><block var="_value"/></list></block></script></block-definition><block-definition s="var %&apos;_name&apos;" type="reporter" category="variables" helper="true"><comment x="0" y="0" w="178.00000000000003" collapsed="false">This block reports the value of the variable with the name given.&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>pt:o valor de _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></block></script></block-definition><block-definition s="$verticalEllipsis show var %&apos;_name&apos;" type="command" category="variables" helper="true"><comment x="0" y="0" w="181" collapsed="false">This block turns on (show) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:mostra la variable _&#xD;es:mostrar variable _&#xD;pt:mostra a variável _&#xD;de:zeige var _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_show(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="$verticalEllipsis hide var %&apos;_name&apos;" type="command" category="variables" helper="true"><comment x="0" y="0" w="181" collapsed="false">This block turns off (hide) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:amaga la variable _&#xD;es:esconder variable _&#xD;pt:esconde a variável _&#xD;de:verstecke var _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_hide(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="%&apos;method&apos; url: %&apos;url&apos; send: %&apos;payload&apos; headers: %&apos;headers&apos;" type="reporter" category="magic" helper="true"><header></header><code></code><translations>pt:a resposta a _ de _ enviando _ e cabeçalhos _&#xD;</translations><inputs><input type="%s" readonly="true">GET<options>GET&#xD;POST&#xD;PUT&#xD;DELETE</options></input><input type="%s">https://snap.startr.cloud</input><input type="%s"></input><input type="%mult%l" readonly="true"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>xhr_request(mth, url, dta, hdrs)</l><list><block var="method"/><block var="url"/><block var="payload"/><block var="headers"/></list></block></block></script></block-definition><block-definition s="$verticalEllipsis create %&apos;_scope&apos; var %&apos;_names&apos;" type="command" category="variables" helper="true"><comment x="0" y="0" w="146" collapsed="false">This block creates  new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in &apos;names&apos; list).&#xD;&#xD;If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.</comment><header></header><code></code><translations>pt:cria as variáveis _ _&#xD;ca:crea les _ variables _&#xD;es:crear las _ variables _&#xD;de:erstellen _ var _&#xD;</translations><inputs><input type="%s" readonly="true">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="_scope"/><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="does var %&apos;_name&apos; exist?" type="predicate" category="variables" helper="true"><comment x="0" y="0" w="146" collapsed="false">This block reports &quot;true&quot; if there is a variable with this given name (input slot) in that context.&#xD;&#xD;It can be a global, sprite or script variable.&#xD;&#xD;Otherwise it reports &quot;false&quot;.</comment><header></header><code></code><translations>pt:a variável _ existe&#xD;ca:existeix la variable _ ?&#xD;es:existe la variable _ ?&#xD;de:existiert var _ ?&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="%&apos;num&apos; max: %&apos;max&apos; min: %&apos;min&apos;" type="reporter" category="velocity" helper="true" space="true"><comment x="0" y="0" w="90" collapsed="false">Max min takes a number and makes shere it is not to big and not to small.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">5</input><input type="%n" initial="1">10</input><input type="%n" initial="1">1</input></inputs><script><block s="doReport"><block s="reportVariadicMax"><list><block s="reportVariadicMin"><list><block var="num"/><block var="max"/></list></block><block var="min"/></list></block></block></script></block-definition><block-definition s="velocity from %&apos;here&apos; to %&apos;there&apos; , edge %&apos;edge&apos;" type="reporter" category="velocity" helper="true"><comment x="0" y="0" w="147.99999999999991" collapsed="false">The first block in velocity blocks. Velocity calculates the velocity between to positions to get from one too the other. Also it bounces of edges.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_destinationsMenu</options></input><input type="%s" readonly="true" initial="1"><options>§_destinationsMenu</options></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportListItem"><l>1</l><block var="here"/></block></block><block s="reportListItem"><l>1</l><block var="edge"/></block></list></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportListItem"><l>1</l><block s="reportDifference"><block var="here"/><block var="there"/></block></block></block><block s="reportListItem"><l>1</l><block s="reportDifference"><block var="here"/><block var="there"/></block></block></block><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportListItem"><l>2</l><block var="here"/></block></block><block s="reportListItem"><l>2</l><block var="edge"/></block></list></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportListItem"><l>2</l><block s="reportDifference"><block var="here"/><block var="there"/></block></block></block><block s="reportListItem"><l>2</l><block s="reportDifference"><block var="here"/><block var="there"/></block></block></block></list></block></block></script></block-definition><block-definition s="$velocity-2 $pack-2" type="reporter" category="velocity"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="any magic?"></custom-block><custom-block s="hold %mult%repRing"><list><block s="reifyReporter"><autolambda><custom-block s="velocity from %s to %s , edge %l"><l></l><l></l><l/></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="%n max: %n min: %n"><l>5</l><l>10</l><l>1</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="averge %mult%n"><list><l></l></list></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="matrix of %n to %n"><l>-20</l><l>20</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="position x %n y %n"><l>0</l><l>0</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="index list of %s in %l"><l>thing</l><l/></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="# %n"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="all but item %n in %l"><l>1</l><l/></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="// %txt %s"><l>comment</l><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis // %s"><l>comment</l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis // %txt %cs"><l>comment</l><script></script></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis edge x %n y %n"><l>480</l><l>360</l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis %upvar for each of %upvar in %l %ca"><l>i</l><l>item</l><l/><script></script></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis and"></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis then"></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis gravity %l"><l/></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis express %s"><l></l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis vacume force %n radius %n at %s"><l>5</l><l>100</l><l></l></custom-block></script><list></list></block></list></custom-block><custom-block s="is magic on?"></custom-block></block></block></script></block-definition><block-definition s="averge %&apos;num&apos;" type="reporter" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Average averages the numbers in a list.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><block var="num"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="num"/></block></block></block></script></block-definition><block-definition s="matrix of %&apos;num&apos; to %&apos;other num&apos;" type="reporter" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Matrix makes a squar of positions.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">-20</input><input type="%n" initial="1">20</input></inputs><script><block s="doReport"><block s="reportCrossproduct"><list><block s="reportNumbers"><block var="num"/><block var="other num"/></block><block s="reportNumbers"><block var="num"/><block var="other num"/></block></list></block></block></script></block-definition><block-definition s="position x %&apos;num&apos; y %&apos;other_num&apos;" type="reporter" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Position x y gives you the position you gave it.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="num"/><block var="other_num"/></list></block></block></script></block-definition><block-definition s="index list of %&apos;thing&apos; in %&apos;list&apos;" type="reporter" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Gives you a list of indexes for the item you are looking for.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">thing</input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><custom-block s="$verticalEllipsis %upvar for each of %upvar in %l %ca"><l>i</l><l>item</l><block var="list"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="item"/><block var="thing"/></list></block><script><block s="doAddToList"><block var="i"/><block var="a"/></block></script><list></list></block></script></custom-block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="# %&apos;num&apos;" type="reporter" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false"># gives you a number that you gave it.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block var="num"/></block></script></block-definition><block-definition s="all but item %&apos;num&apos; in %&apos;list&apos;" type="reporter" category="velocity" helper="true"><comment x="0" y="0" w="129.33333333333334" collapsed="false">All but item num in list gives you a list with every thing except for the number you gave it.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><custom-block s="$verticalEllipsis %upvar for each of %upvar in %l %ca"><l>i</l><l>item</l><block var="list"/><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="i"/><block var="num"/></list></block><script><block s="doAddToList"><block var="item"/><block var="a"/></block></script><list></list></block></script></custom-block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="// %&apos;text&apos; %&apos;thing&apos;" type="reporter" category="velocity" helper="true" space="true"><comment x="0" y="0" w="90" collapsed="false">Comment reporter holds a comment and report.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">comment</input><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block var="thing"/></block></script></block-definition><block-definition s="$verticalEllipsis // %&apos;coment&apos;" type="command" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Comment block hold a comment.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">comment</input></inputs></block-definition><block-definition s="$verticalEllipsis // %&apos;comment&apos; %&apos;code&apos;" type="command" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Comment C-block hold a comment and runs the code in it.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">comment</input><input type="%cs" initial="1"></input></inputs><script><block s="doRun"><block var="code"/><list></list></block></script></block-definition><block-definition s="$verticalEllipsis edge x %&apos;x&apos; y %&apos;y&apos;" type="command" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Edge is a if on edge,bounce that doesn&apos;t add velocity.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">480</input><input type="%n" initial="1">360</input></inputs><script><block s="doGotoObject"><block s="reportNewList"><list><custom-block s="%n max: %n min: %n"><block s="xPosition"></block><block s="reportQuotient"><block var="x"/><l>2</l></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="x"/><l>2</l></block></block></custom-block><custom-block s="%n max: %n min: %n"><block s="yPosition"></block><block s="reportQuotient"><block var="y"/><l>2</l></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="y"/><l>2</l></block></block></custom-block></list></block></block></script><scripts><script x="152.33333333333334" y="150.79999999999998"><block s="doGotoObject"><block s="reportNewList"><list><custom-block s="%n max: %n min: %n"><block s="xPosition"></block><block s="reportDifference"><l>240</l><block s="reportQuotient"><l></l><l>2</l></block></block><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><l>240</l></block><block s="reportQuotient"><l></l><l>2</l></block></list></block></custom-block><custom-block s="%n max: %n min: %n"><block s="yPosition"></block><block s="reportDifference"><l>180</l><block s="reportQuotient"><l></l><l>2</l></block></block><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><l>180</l></block><block s="reportQuotient"><l></l><l>2</l></block></list></block></custom-block></list></block></block></script></scripts></block-definition><block-definition s="$verticalEllipsis %&apos;i&apos; for each of %&apos;item&apos; in %&apos;list&apos; %&apos;code&apos;" type="command" category="velocity" helper="true" space="true"><comment x="0" y="0" w="90" collapsed="false">For i = item in list is like a for i = 1 to 10 but mixed with a  for each item in list.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1">index</input><input type="%upvar" initial="1">item</input><input type="%l" initial="1"></input><input type="%ca" initial="1"></input></inputs><script><block s="doFor"><l>j</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doSetVar"><l>i</l><block var="j"/></block><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="j"/><block var="list"/></block></block><block s="doRun"><block var="code"/><list></list></block></script></block></script></block-definition><block-definition s="$verticalEllipsis and" type="command" category="velocity" helper="true" space="true"><comment x="0" y="0" w="90" collapsed="false">And does not do anything it just makes the code more clear.</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="$verticalEllipsis then" type="command" category="other" helper="true"><comment x="0" y="0" w="90" collapsed="false">Then does not do anything it just makes the code more clear.</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="$verticalEllipsis gravity %&apos;list&apos;" type="command" category="velocity" helper="true" space="true"><comment x="0" y="0" w="90" collapsed="false">Gravity pulls you in a direction by a setron amount.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"><options>§_destinationsMenu</options></input></inputs><script><block s="changeXPosition"><block s="reportListItem"><l>1</l><block var="list"/></block></block><block s="changeYPosition"><block s="reportListItem"><l>2</l><block var="list"/></block></block></script></block-definition><block-definition s="$verticalEllipsis express %&apos;the velocity&apos;" type="command" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Express goes towards a position.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_destinationsMenu</options></input></inputs><script><block s="doFaceTowards"><block s="reportVariadicSum"><list><block s="getPosition"></block><block var="the velocity"/></list></block></block><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block var="the velocity"/></list></block></block></script></block-definition><block-definition s="$verticalEllipsis invert pen down" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">invert pen down&#xD; will pick the pen up if it is currently down and put the pen down if it is currently up</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="getPenDown"></block><script><block s="up"></block></script><script><block s="down"></block></script></block></script></block-definition><block-definition s="$verticalEllipsis invert hide" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">invert hide&#xD;will hide the Sprite if it is currently being shown and show the spray if it is currently being hidden</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportShown"></block><script><block s="hide"></block></script><script><block s="show"></block></script></block></script></block-definition><block-definition s="$verticalEllipsis delete all clones" type="command" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportGet"><l><option>children</option></l></block><script><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block></script></block></script></block-definition><block-definition s="3D to 2D %&apos;x&apos; %&apos;y&apos; %&apos;z&apos; focal length %&apos;focal length&apos;" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%n">100</input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="focal length"/><block var="x"/></list></block><block s="reportVariadicSum"><list><block var="focal length"/><block var="z"/></list></block></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="focal length"/><block var="y"/></list></block><block s="reportVariadicSum"><list><block var="focal length"/><block var="z"/></list></block></block></list></block></block></script></block-definition><block-definition s="is %&apos;NUM&apos; prime" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">is prime&#xD;will report a Boolean for whether or not the inputted number is a prime ( a prime number is a number that any other number can multiply into)</comment><header></header><code></code><translations></translations><inputs><input type="%n">0</input></inputs><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block var="NUM"/><l>3</l></list></block><block s="reportVariadicGreaterThan"><list><block var="NUM"/><l>0</l></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doFor"><l>i</l><l>2</l><block s="reportMonadic"><l><option>sqrt</option></l><block var="NUM"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="NUM"/><block var="i"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="is %&apos;NUM&apos; divisible by %&apos;N&apos;" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">is divisible by will check if the first number is divisible by the second number (what I mean by that is it checks it if there&apos;s no remainder)</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n" initial="1">2</input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="NUM"/><block var="N"/></block><l>0</l></list></block></block></script></block-definition><block-definition s="backwords %&apos;STRING&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">backwords word&#xD;will flip the word</comment><header></header><code></code><translations></translations><inputs><input type="%s">word</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block var="STRING"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="$XOR-0.0001 %&apos;INPUT&apos;" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">xor&#xD;is a xor gate( that means that it&apos;s a exclusive order it only does one or the other)</comment><header></header><code></code><translations></translations><inputs><input type="%mult%b" separator="xor" initial="2" min="2"></input></inputs><script><block s="doReport"><block s="reportVariadicNotEquals"><block var="INPUT"/></block></block></script></block-definition><block-definition s="direction from x %&apos;x1&apos; y %&apos;y1&apos; to x %&apos;x2&apos; y %&apos;y2&apos;" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="y2"/><block var="y1"/></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportDifference"><block var="x2"/><block var="x1"/></block><block s="reportDifference"><block var="y2"/><block var="y1"/></block></block></block><l>180</l></list></block></block></script><list><l><bool>true</bool></l><script><block s="doReport"><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportDifference"><block var="x2"/><block var="x1"/></block><block s="reportDifference"><block var="y2"/><block var="y1"/></block></block></block></block></script></list></block></script></block-definition><block-definition s="PI" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318590202445945534690830264252230825334468503526193118817101000313783875288658753320838814206171776691473035982534904287554687311595628638823537875937519577818577805371712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912517720190430128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318590202445945534690830264252230825334468503526193118817101000313783875288658753320838814206171776691473035982534904287554687311595628638823537875937519577818577805371712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912517720190430128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318590202445945534690830264252230825334&#xD;</l></block></script><scripts><script x="25.35402488708496" y="93.65737101236978"><custom-block s="join %mult%mlt"><list><l>16tan^−1 (1/5)−4tan^−1 (1/239)</l></list></custom-block></script><script x="257.3493957519531" y="87.35821736653645"><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportPower"><block s="reportMonadic"><l><option>tan</option></l><l>16</l></block><l>-1</l></block><block s="reportQuotient"><l>1</l><l>5</l></block></list></block><block s="reportVariadicProduct"><list><block s="reportPower"><block s="reportMonadic"><l><option>tan</option></l><l>4</l></block><l>-1</l></block><block s="reportQuotient"><l>1</l><l>239</l></block></list></block></block></script></scripts></block-definition><block-definition s="QR code from %&apos;Input&apos;" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><custom-block s="JavaScript enabled?"></custom-block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>url</l><l>proc</l></list><l>if (!proc.img) {&#xD;  proc.img = new Image();&#xD;  proc.img.src = url;&#xD;  proc.img.onload = function() {&#xD;    proc.img.loaded=true;&#xD;  }&#xD;} else if (proc.img.loaded) {&#xD;  const costume = new Costume(proc.img);&#xD;  proc.img = null;&#xD;  return costume;&#xD;}&#xD;proc.pushContext(&apos;doYield&apos;);&#xD;proc.pushContext();</l></block><list><block s="reportJoinWords"><list><l>http://api.qrserver.com/v1/create-qr-code/?data=</l><block var="Input"/></list></block></list></block></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>cst_load(url)</l><list><block s="reportJoinWords"><list><l>http://api.qrserver.com/v1/create-qr-code/?data=</l><block var="Input"/></list></block></list></block></block></script></block></script></block-definition><block-definition s="rotate %&apos;list&apos; by %&apos;num&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">rotate list&#xD;will rotate the list by the given value</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">0</input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %n negative"><block var="num"/></custom-block><script><block s="doRepeat"><block s="reportMonadic"><l><option>abs</option></l><block var="num"/></block><script><block s="doInsertInList"><custom-block s="pop item %n of %l"><l>1</l><block var="list"/></custom-block><l><option>last</option></l><block var="list"/></block></script></block></script><script><block s="doRepeat"><block var="num"/><script><block s="doInsertInList"><custom-block s="pop item %n of %l"><l><option>last</option></l><block var="list"/></custom-block><l>1</l><block var="list"/></block></script></block></script></block><block s="doReport"><block var="list"/></block></script></block></script></block-definition><block-definition s="JavaScript enabled?" type="predicate" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><custom-block s="$verticalEllipsis safely try %cs then if %upvar %cs"><script><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return true;</l></block><list></list></block></block></script></block></script><l>error</l><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></custom-block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="Infinity ∞" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportQuotient"><l>1</l><l>0</l></block></block></script></block-definition><block-definition s="$verticalEllipsis set cursor to %&apos;cursor&apos; offset x: %&apos;x&apos; y: %&apos;y&apos;" type="command" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s">auto<options>auto&#xD;default&#xD;none&#xD;context-menu&#xD;help&#xD;pointer&#xD;progress&#xD;wait&#xD;cell&#xD;crosshair&#xD;text&#xD;vertical-text&#xD;alias&#xD;copy&#xD;move&#xD;no-drop&#xD;not-allowed&#xD;grab&#xD;grabbing&#xD;e-resize&#xD;n-resize&#xD;ne-resize&#xD;nw-resize&#xD;s-resize&#xD;se-resize&#xD;sw-resize&#xD;w-resize&#xD;ew-resize&#xD;ns-resize&#xD;nesw-resize&#xD;nwse-resize&#xD;col-resize&#xD;row-resize&#xD;all-scroll&#xD;zoom-in&#xD;zoom-out</options></input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="cursor"/><l><option>text</option></l></block><block s="reportIsA"><block var="cursor"/><l><option>costume</option></l></block></list></block></block><script><custom-block s="$verticalEllipsis error %txt"><block s="reportJoinWords"><list><l>expecting a string or a costume but getting a </l><block s="reportTypeOf"><block var="cursor"/></block></list></block></custom-block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>cursor</l><l>x</l><l>y</l></list><l>let world = this.parentThatIsA(WorldMorph)&#xD;let cursorStyle = &apos;auto&apos;&#xD;&#xD;if (cursor instanceof SVG_Costume) {&#xD;  cursorStyle = `url(${cursor.contents.src}) ${x} ${y}, auto`&#xD;} else if (cursor instanceof Costume) {&#xD;  cursorStyle = `url(${cursor.contents.toDataURL()}) ${x} ${y}, auto`&#xD;} else {&#xD;  cursorStyle = `${cursor}`&#xD;}&#xD;&#xD;world.worldCanvas.style.cursor = cursorStyle</l></block><list><block var="cursor"/><block var="x"/><block var="y"/></list></block></script></block-definition><block-definition s="$verticalEllipsis error %&apos;msg&apos;" type="command" category="error" helper="true"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;pl:błąd _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="username" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var ide = world.children[0];&#xD;return ide.cloud.username;</l></block><list></list></block></block></script></block-definition><block-definition s="$verticalEllipsis screenshot" type="command" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>const captureAndSave = async () =&gt; {&#xD;  const canvas = document.createElement("canvas");&#xD;  const context = canvas.getContext("2d");&#xD;  const video = document.createElement("video");&#xD;&#xD;  try {&#xD;    const captureStream = await navigator.mediaDevices.getDisplayMedia();&#xD;    video.srcObject = captureStream;&#xD;    const link = await new Promise(resolve =&gt; {&#xD;      video.onloadedmetadata = () =&gt; {&#xD;        // Wait for 1 second before capturing the screenshot&#xD;        setTimeout(() =&gt; {&#xD;          canvas.width = video.videoWidth;&#xD;          canvas.height = video.videoHeight;&#xD;          context.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);&#xD;          const frame = canvas.toDataURL("image/png");&#xD;&#xD;          // Create a link element to download the image&#xD;          const downloadLink = document.createElement(&apos;a&apos;);&#xD;          downloadLink.href = frame;&#xD;          downloadLink.download = &apos;screenshot.png&apos;;&#xD;          document.body.appendChild(downloadLink);&#xD;          downloadLink.click();&#xD;          document.body.removeChild(downloadLink);&#xD;&#xD;          // Resolve the promise with the link&apos;s href&#xD;          resolve(frame);&#xD;&#xD;          captureStream.getTracks().forEach(track =&gt; track.stop());&#xD;        }, 1000);&#xD;      };&#xD;      video.play();&#xD;    });&#xD;&#xD;    // Return the link instead of logging it&#xD;    return link;&#xD;  } catch (err) {&#xD;    console.error("Error: " + err);&#xD;  }&#xD;};&#xD;&#xD;(async () =&gt; {&#xD;  const link = await captureAndSave();&#xD;  console.log("Screenshot saved:", link);&#xD;})();&#xD;</l></block><list></list></block></script></block-definition><block-definition s="clone ID" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportAskFor"><block s="reportGet"><l><option>parent</option></l></block><block s="reifyReporter"><autolambda><block s="reportListIndex"><block var="#1"/><block s="reportGet"><l><option>clones</option></l></block></block></autolambda><list><l>#1</l></list></block><list><block s="reportGet"><l><option>self</option></l></block></list></block></block></script></block-definition><block-definition s="battery %" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>accessor</l></list></block><block s="doSetVar"><l>accessor</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var done = false,&#xD;    value = null&#xD;navigator.getBattery().then((battery) =&gt; {&#xD;    value = battery.level&#xD;    done = true&#xD;  }&#xD;)&#xD;&#xD;return new List([function() {return done}, function() {return value}])</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="accessor"/></block><list></list></block></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportRound"><block s="reportVariadicProduct"><list><block s="evaluate"><block s="reportListItem"><l>2</l><block var="accessor"/></block><list></list></block><l>100</l></list></block></block><l>%</l></list></block></block></script></block-definition><block-definition s="Is Charging" type="predicate" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>accessor</l></list></block><block s="doSetVar"><l>accessor</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var done = false,&#xD;    value = null&#xD;navigator.getBattery().then((battery) =&gt; {&#xD;    value = battery.charging&#xD;    done = true&#xD;  }&#xD;)&#xD;&#xD;return new List([function() {return done}, function() {return value}])</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="accessor"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="accessor"/></block><list></list></block></block></script></block-definition><block-definition s="My URL" type="reporter" category="Avi&apos;s" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window. location. href</l></block><list></list></block></block></script></block-definition><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing" helper="true"><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;ca:paràmetre _&#xD;pl:ustawienie _&#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([stage.dimensions.x, stage.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="$verticalEllipsis set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing" helper="true"><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;ca:fixa el paràmetre _ a _&#xD;pl:ustaw flagę _ na _&#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="$verticalEllipsis set value %&apos;which&apos; to %&apos;value&apos;" type="command" category="sensing" helper="true"><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;ca:fixa el valor de _ a _&#xD;pl:ustaw wartość _ na _&#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="$verticalEllipsis safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="error" helper="true"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;pl:bezpiecznie spróbuj _ a jeśli _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="error" helper="true"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations>ca:prova de forma segura reportant _ i si _ reportant _&#xD;pl:bezpiecznie spróbuj zgłosić _ a jeśli _ zgłoś _&#xD;</translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="$verticalEllipsis safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="lisp to code $nl %&apos;lisp&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">list to code&#xD;will take the text based form of coding known as lisp and turn it into snap blocks</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block s="reportTextSplit"><block var="lisp"/><l><option>blocks</option></l></block></block></block></script></block></script></block-definition><block-definition s="code to Lisp $nl %&apos;code&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">code to lisp &#xD;will take snap blocks and turn it into the text program known as lisp</comment><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>lines</option></l><block s="reportTextSplit"><block var="code"/><l><option>blocks</option></l></block></block></block></script></block-definition><block-definition s="not a clone" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">not to clone&#xD;checks if the current Sprite is not a clone</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportGet"><l><option>parent</option></l></block><l></l></list></block></block></script></block-definition><block-definition s="$verticalEllipsis I have a block variable" type="command" category="magic" helper="true"><variables><list struct="atomic" id="2215">var</list></variables><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="I have a block variable" type="reporter" category="magic" helper="true"><variables><list struct="atomic" id="2217">var</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>look in me</l></block></script></block-definition><block-definition s="hide %&apos;text&apos; %&apos;bool&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false"> hide text&#xD;will hide the text in the first slot when the Boolean is false and show it when it is true</comment><variables><list struct="atomic" id="2222">the text</list></variables><header></header><code></code><translations></translations><inputs><input type="%mlt" initial="1"></input><input type="%b" initial="1"></input></inputs><script><block s="doIf"><block var="bool"/><script><block s="doSetVar"><l>the text</l><block var="text"/></block></script><list></list></block><block s="doReport"><block var="the text"/></block></script><scripts><script x="217.76424967447917" y="94.36632486979165"><block s="receiveSlotEvent"><l>bool</l><l><option>edited</option></l></block><block s="doIfElse"><block var="bool"/><script><block s="doSetSlot"><l>text</l><block var="the text"/></block></script><script><block s="doSetVar"><l>the text</l><block var="text"/></block><block s="doSetSlot"><l>text</l><l></l></block></script></block></script></scripts></block-definition><block-definition s="$verticalEllipsis repeat if %&apos;error&apos; %&apos;code&apos;" type="command" category="error" helper="true"><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1">error</input><input type="%ca" initial="1"></input></inputs><script><custom-block s="$verticalEllipsis safely try %cs then if %upvar %cs"><script><block s="doRun"><block var="code"/><list></list></block></script><l>error</l><script><custom-block s="$verticalEllipsis repeat if %upvar %ca"><l>error</l><script><block s="doRun"><block var="code"/><list></list></block></script></custom-block></script></custom-block></script></block-definition><block-definition s="any magic?" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">Any magic&#xD;will report if JavaScript is on</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="JavaScript enabled?"></custom-block></block></script></block-definition><block-definition s="add %&apos;things&apos; to %&apos;list&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">add to list &#xD;will add the item to the list but only using reporters</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="list"/><block var="things"/></list></block></block></script></block-definition><block-definition s="hold %&apos;blocks&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">hold&#xD;well &quot;holds&quot; a list of blocks</comment><header></header><code></code><translations></translations><inputs><input type="%mult%repRing" initial="1"></input></inputs><script><block s="doReport"><block var="blocks"/></block></script></block-definition><block-definition s="%&apos;$&apos; by %&apos;cy&apos; cypher , with exp: %&apos;exp cy&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">Cipher will Cipher the text using the 2 ciphers</comment><header></header><code></code><translations></translations><inputs><input type="%txt">hello world</input><input type="%txt">abcdefghijklmnopqrstuvwxyz 0123456789</input><input type="%s">abcdefghijklmnopqrstuvwxyz 0123456789</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block s="reportListIndex"><l></l><block s="reportTextSplit"><block var="cy"/><l><option>letter</option></l></block></block><block s="reportTextSplit"><block var="exp cy"/><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="$"/><l><option>letter</option></l></block></block></list></block></block></script></block-definition><block-definition s="pop item %&apos;num&apos; of %&apos;list&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">pop &#xD;will remove a item from the list and report what the item was</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"><options>1=1&#xD;last=$_last&#xD;&#126;&#xD;all=$_all&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportListItem"><block var="num"/><block var="list"/></block></block><block s="doDeleteFromList"><block var="num"/><block var="a"/></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="is %&apos;NUM&apos; negative" type="predicate" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">is negative&#xD;will report a Boolean for whether or not the number is negative</comment><header></header><code></code><translations></translations><inputs><input type="%n">-1</input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportMonadic"><l><option>abs</option></l><block var="NUM"/></block></block><block var="NUM"/></list></block></block></script></block-definition><block-definition s="$magic-2 $pack-2" type="reporter" category="magic"><comment x="0" y="0" w="90" collapsed="false">magic pack&#xD;is a pack of all the magic blocks (which is a list of blocks that I find helpful)</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="any magic?"></custom-block><custom-block s="hold %mult%repRing"><list><block s="reifyReporter"><autolambda><custom-block s="is magic on?"></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="any magic?"></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis hide mouse"></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis show mouse"></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="is mouse hidden"></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis hide mouse %b"><l/></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="join %mult%mlt"><list><l></l></list></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis repeat for %n secs %cs"><l>1</l><script></script></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis pen costume"></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l></l><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="%n in base %n"><l>1</l><l>10</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="function ( %s %s %s )"><l></l><l></l><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis link to %txt"><l>https://en.wikipedia.org/wiki/%22Hello,_World!%22_program</l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis export costume %s"><l></l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis set name of costume %s to %s"><l></l><l>thing</l></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="%s url: %s send: %s headers: %mult%l"><l>GET</l><l>https://snap.startr.cloud</l><l></l><list></list></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis invert pen down"></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis invert hide"></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="is %n negative"><l>-1</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="is %n prime"><l>0</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="is %n divisible by %n"><l>1</l><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="backwords %s"><l>word</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$XOR-0.0001 %mult%b"><list><l/><l/></list></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="rotate %l by %n"><l/><l>0</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="lisp to code %br %mlt"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="code to Lisp %br %repRing"><block s="reifyScript"><script></script><list></list></block></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="not a clone"></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="hide %mlt %b"><l></l><l/><variables><variable name="the text"><l>0</l></variable></variables></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="add %mult%s to %l"><list><l></l></list><l/></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="hold %mult%repRing"><list><block s="reifyReporter"><script></script><list></list></block></list></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="%txt by %txt cypher , with exp: %s"><l>hello world</l><l>abcdefghijklmnopqrstuvwxyz 0123456789</l><l>abcdefghijklmnopqrstuvwxyz 0123456789</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="pop item %n of %l"><l></l><l/></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="distance to direction %n"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis notification %br title: %txt body: %txt"><l>Magic!</l><l>This is a notification</l></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="search for %txt in %l"><l>block</l><l/></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis copy %txt to clipboard"><l>text</l></custom-block></script><list></list></block></list></custom-block><custom-block s="is magic on?"></custom-block></block></block></script></block-definition><block-definition s="$verticalEllipsis vacume force %&apos;force&apos; radius %&apos;radius&apos; at %&apos;position&apos;" type="command" category="velocity" helper="true"><comment x="0" y="0" w="90" collapsed="false">Vacume pulls the velocity objects towards the chosen position. </comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">5</input><input type="%n" initial="1">100</input><input type="%s" readonly="true" initial="1"><options>§_destinationsMenu</options></input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportRelationTo"><l><option>distance</option></l><block var="position"/></block><block var="radius"/></list></block><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="doFaceTowards"><block var="position"/></block><block s="forward"><block s="reportQuotient"><block s="reportRelationTo"><l><option>distance</option></l><block var="position"/></block><block var="force"/></block></block></script><list></list></block></script><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="reporter" category="error" helper="true"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;pl:błąd _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="$error-2 $pack-2" type="reporter" category="error"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="any magic?"></custom-block><custom-block s="hold %mult%repRing"><list><block s="reifyReporter"><autolambda><custom-block s="error %txt"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis error %txt"><l></l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis safely try %cs then if %upvar %cs"><script></script><l>error</l><script></script></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><l></l><l>error</l><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis repeat if %upvar %ca"><l>error</l><script></script></custom-block></script><list></list></block></list></custom-block><custom-block s="is magic on?"></custom-block></block></block></script></block-definition><block-definition s="$Avi´s-2 $pack-2" type="reporter" category="Avi&apos;s"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="any magic?"></custom-block><custom-block s="hold %mult%repRing"><list><block s="reifyReporter"><script><custom-block s="$verticalEllipsis delete all clones"></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="3D to 2D %n %n %n focal length %n"><l>0</l><l>0</l><l>0</l><l>100</l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="direction from x %n y %n to x %n y %n"><l></l><l></l><l></l><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="PI"></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="QR code from %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="Infinity ∞"></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis set cursor to %s offset x: %n y: %n"><l>auto</l><l>0</l><l>0</l></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="username"></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis screenshot"></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="clone ID"></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="battery %"></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="Is Charging"></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="My URL"></custom-block></autolambda><list></list></block></list></custom-block><custom-block s="is magic on?"></custom-block></block></block></script></block-definition><block-definition s="$variable-2 $pack-2" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="any magic?"></custom-block><custom-block s="hold %mult%repRing"><list><block s="reifyReporter"><script><custom-block s="$verticalEllipsis delete var %mult%txt"><list></list></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis set var %s to %s"><l></l><l></l></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="var %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis show var %s"><l></l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis hide var %s"><l></l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis create %s var %mult%txt"><l>global</l><list></list></custom-block></script><list></list></block><block s="reifyReporter"><autolambda><custom-block s="does var %s exist?"><l></l></custom-block></autolambda><list></list></block></list></custom-block><custom-block s="is magic on?"></custom-block></block></block></script></block-definition><block-definition s="$settings-2 $pack-2" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="any magic?"></custom-block><custom-block s="hold %mult%repRing"><list><block s="reifyReporter"><autolambda><custom-block s="setting %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis set flag %s to %b"><l></l><l/></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="$verticalEllipsis set value %s to %s"><l></l><l></l></custom-block></script><list></list></block></list></custom-block><custom-block s="is magic on?"></custom-block></block></block></script></block-definition><block-definition s="distance to direction %&apos;direction&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">distance to direction reports the distance from the current direction to the future direction</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"><options>§_directionDialMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>d</l></list></block><block s="doSetVar"><l>a</l><block s="direction"></block></block><block s="doSetVar"><l>b</l><block var="direction"/></block><block s="doSetVar"><l>c</l><block s="reportDifference"><l>180</l><block var="a"/></block></block><block s="doSetVar"><l>d</l><block s="reportVariadicSum"><list><block var="b"/><block var="c"/></list></block></block><block s="doReport"><block s="reportDifference"><block s="reportModulus"><block var="d"/><l>360</l></block><l>180</l></block></block></script></block-definition><block-definition s="search for %&apos;thing&apos; in %&apos;pack&apos;" type="reporter" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">search&#xD;will search for blocks in a pack with similar names</comment><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">block</input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l> </l></block><block var="thing"/></block></autolambda><list></list></block><block var="pack"/></block><block s="reportNewList"><list></list></block></list></block><l>Try changing the spelling</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l> </l></block><block var="thing"/></block></autolambda><list></list></block><block var="pack"/></block></block></block></script></block-definition><block-definition s="$verticalEllipsis notification $nl title: %&apos;title&apos; body: %&apos;body&apos;" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">notification&#xD;will send a notification to the user</comment><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">Magic!</input><input type="%txt" initial="1">This is a notification</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>message</l><l>title</l></list><l>function showSimpleNotification(message = &apos;This is my first notification&apos;, title = "magic:", icon = &apos;https://snap.startr.cloud/static/img/topbar-logo.png&apos;) {&#xD;  // Check if we have permission first&#xD;  if (Notification.permission === &apos;granted&apos;) {&#xD;    const notification = new Notification(title, {&#xD;      body: message,&#xD;      icon: icon&#xD;    });&#xD;  } else if (Notification.permission !== &apos;denied&apos;) {&#xD;    // We need to ask for permission first&#xD;    Notification.requestPermission().then(permission =&gt; {&#xD;      if (permission === &apos;granted&apos;) {&#xD;        const notification = new Notification(title, {&#xD;          body: message,&#xD;          icon: icon&#xD;        });&#xD;      }&#xD;    });&#xD;  }&#xD;}&#xD;&#xD;// Example call with default values&#xD;showSimpleNotification(message, title);</l></block><list><block var="body"/><block var="title"/></list></block></script></block-definition><block-definition s="$verticalEllipsis copy %&apos;thing&apos; to clipboard" type="command" category="magic" helper="true"><comment x="0" y="0" w="90" collapsed="false">copy to clipboard &#xD;will copy whatever text you give it to the users clipboard</comment><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">text</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>clip</l></list><l>navigator.clipboard.writeText(clip)</l></block><list><block var="thing"/></list></block></script></block-definition><block-definition s="the %&apos;info&apos; of %&apos;node&apos;" type="reporter" category="Nodes"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">position<options>position&#xD;name&#xD;conections</options></input><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="info"/><l>conections</l></list></block><block s="reportListItem"><block s="reportNumbers"><l>3</l><block s="reportVariadicMax"><list><l>3</l><block s="reportListAttribute"><l><option>length</option></l><block var="node"/></block></list></block></block><block var="node"/></block><block s="reportListItem"><block s="reportListIndex"><block var="info"/><block s="reportTextSplit"><custom-block s="join %mult%mlt"><list><l>position&#xD;name</l></list></custom-block><l><option>line</option></l></block></block><block var="node"/></block></block></block></script></block-definition><block-definition s="$verticalEllipsis create the variable: %&apos;Nodes&apos; $nl %&apos;nodes in&apos;" type="command" category="Nodes"><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1"></input><input type="%mult%l" separator="$nl" initial="1"></input></inputs><script><block s="doSetVar"><l>Nodes</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportListItem"><l><option>random</option></l><custom-block s="matrix of %n to %n"><l>-100</l><l>100</l></custom-block></block></list></block><l/></list></block></autolambda><list></list></block><block var="nodes in"/></block></block></script></block-definition><block-definition s="$verticalEllipsis grab" type="command" category="Nodes"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportMouseDown"></block><block s="reportVariadicLessThan"><list><block s="reportRelationTo"><l><option>distance</option></l><l><option>mouse-pointer</option></l></block><l>30</l></list></block></list></block><script><block s="doFaceTowards"><l><option>mouse-pointer</option></l></block><block s="forward"><block s="reportQuotient"><block s="reportRelationTo"><l><option>distance</option></l><l><option>mouse-pointer</option></l></block><l>2</l></block></block></script><list></list></block></script></block-definition><block-definition s="node: %&apos;name&apos; $verticalEllipsis-1 %&apos;conections&apos;" type="reporter" category="Nodes"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">a</input><input type="%mult%s" initial="1">b&#xD;c&#xD;d&#xD;e&#xD;f&#xD;g&#xD;h&#xD;i&#xD;j&#xD;k&#xD;l&#xD;m&#xD;n&#xD;o&#xD;p&#xD;q&#xD;r&#xD;s&#xD;t&#xD;u&#xD;v&#xD;w&#xD;x&#xD;y&#xD;z</input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block var="name"/></list></block><block var="conections"/></list></block></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="30,30,30,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="3244"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="3245"></list></costumes><sounds><list struct="atomic" id="3246"></list></sounds><variables></variables><blocks></blocks><scripts><script x="82.82761827647256" y="154.0039888011466"><block s="setBackgroundColor"><color>255,255,255,1</color></block></script><script x="105.3884892086331" y="218.3381294964029"><block s="setBackgroundColor"><color>30,30,30,1</color></block></script><script x="232.726618705036" y="260.0647482014389"><block s="setBackgroundColor"><color>0,0,0,1</color></block></script></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-66.99999999999977" y="-77" heading="41" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="255,22.000000000000007,110.99999999991847,0.5" pen="tip" id="3257"><costumes><list struct="atomic" id="3258"></list></costumes><sounds><list struct="atomic" id="3259"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10.071942446043167" y="10.071942446043167"><block s="receiveGo"></block><custom-block s="$verticalEllipsis create the variable: %upvar %br %mult%l"><l>nodes</l><list><custom-block s="node: %s $verticalEllipsis-1 %mult%s"><l>they can have any name</l><list><l>here is a example</l></list><comment w="136.87451698797216" collapsed="false">The first input in the &quot;node&quot; block is the node&apos;s name then there&apos;s a vertical ellipsis and then the names of the things the node is connected to!</comment></custom-block><custom-block s="node: %s $verticalEllipsis-1 %mult%s"><l>here is a example</l><list><l>they can have any name</l></list></custom-block><custom-block s="node: %s $verticalEllipsis-1 %mult%s"><l>c</l><list><l>d</l></list></custom-block><custom-block s="node: %s $verticalEllipsis-1 %mult%s"><l>d</l><list><l>c</l><l>e</l><l>f</l></list></custom-block><custom-block s="node: %s $verticalEllipsis-1 %mult%s"><l>e</l><list><l>d</l><l>f</l></list></custom-block><custom-block s="node: %s $verticalEllipsis-1 %mult%s"><l>f</l><list><l>e</l><l>d</l></list></custom-block><custom-block s="node: %s $verticalEllipsis-1 %mult%s"><l>g</l><list></list></custom-block></list></custom-block><block s="setColor"><color>255,22,111,1</color></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>50</l></block><block s="doForever"><script><block s="doWarp"><script><block s="clear"></block><custom-block s="$verticalEllipsis %upvar for each of %upvar in %l %ca"><l>i</l><l>the node</l><block var="nodes"/><script><block s="doGotoObject"><custom-block s="the %s of %s"><l>position</l><block var="the node"/></custom-block></block><custom-block s="$verticalEllipsis then"></custom-block><custom-block s="$verticalEllipsis %upvar for each of %upvar in %l %ca"><l>j</l><l>an other node</l><custom-block s="all but item %n in %l"><block var="i"/><block var="nodes"/></custom-block><script><block s="doFaceTowards"><custom-block s="the %s of %s"><l>position</l><block var="an other node"/></custom-block></block><block s="doIfElse"><block s="reportListContainsItem"><custom-block s="the %s of %s"><l>conections</l><block var="the node"/></custom-block><custom-block s="the %s of %s"><l>name</l><block var="an other node"/></custom-block></block><script><block s="forward"><block s="reportQuotient"><block s="reportDifference"><block s="reportRelationTo"><l><option>distance</option></l><custom-block s="the %s of %s"><l>position</l><block var="an other node"/></custom-block></block><l>75</l></block><l>10</l></block></block></script><script><block s="forward"><l>-0.5</l></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportRelationTo"><l><option>distance</option></l><custom-block s="the %s of %s"><l>position</l><block var="an other node"/></custom-block></block><l>40</l></list></block><script><block s="forward"><block s="reportQuotient"><block s="reportDifference"><block s="reportRelationTo"><l><option>distance</option></l><custom-block s="the %s of %s"><l>position</l><block var="an other node"/></custom-block></block><l>40</l></block><l>2</l></block></block></script><list></list></block></script></block></script></custom-block><block s="doFaceTowards"><l><option>center</option></l></block><block s="forward"><block s="reportQuotient"><block s="reportRelationTo"><l><option>distance</option></l><l><option>center</option></l></block><l>30</l></block></block><custom-block s="$verticalEllipsis grab"></custom-block><block s="doReplaceInList"><block var="i"/><block var="nodes"/><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportRound"><block s="getPosition"></block></block></list></block><block s="reportCDR"><block var="the node"/></block></list></block></block></script></custom-block></script></block><block s="doWarp"><script><custom-block s="$verticalEllipsis %upvar for each of %upvar in %l %ca"><l>i</l><l>the node</l><block var="nodes"/><script><block s="doGotoObject"><custom-block s="the %s of %s"><l>position</l><block var="the node"/></custom-block></block><block s="setSize"><l>3</l></block><custom-block s="$verticalEllipsis %upvar for each of %upvar in %l %ca"><l>j</l><l>conecting node</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><custom-block s="the %s of %s"><l>conections</l><block var="the node"/></custom-block><custom-block s="the %s of %s"><l>name</l><l></l></custom-block></block></autolambda><list></list></block><custom-block s="all but item %n in %l"><block var="i"/><block var="nodes"/></custom-block></block></block><script><block s="doGotoObject"><custom-block s="the %s of %s"><l>position</l><block var="the node"/></custom-block></block><block s="down"></block><block s="doGotoObject"><block var="conecting node"/></block></script></custom-block><block s="doGotoObject"><custom-block s="the %s of %s"><l>position</l><block var="the node"/></custom-block></block><block s="setSize"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportQuotient"><l>20</l><l>3</l></block><l></l></list></block><l>3</l></list></block></block><block s="forward"><l>0</l></block><block s="up"></block><block s="changePenColorDimension"><l><option>hue</option></l><block s="reportQuotient"><l>100</l><block s="reportListAttribute"><l><option>length</option></l><block var="nodes"/></block></block></block></script></custom-block></script></block></script></block></script><script x="676.1611923839829" y="1063.3290453574648"><block var="an other node"/></script><script x="98.44427797605671" y="1301.122642023102"><block s="reportListAttribute"><l><option>length</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><custom-block s="the %s of %s"><l>conections</l><block var="the node"/></custom-block><custom-block s="the %s of %s"><l>name</l><l></l></custom-block></block></autolambda><list></list></block><custom-block s="all but item %n in %l"><block var="i"/><block var="nodes"/></custom-block></block></block></block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="conection graph" app="Snap! 11.0.0, https://snap.berkeley.edu" version="2"></media></snapdata>