<snapdata remixID="13522868"><project name="to snapblocks" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="to snapblocks"><notes></notes><palette><category name="snapblocks" color="3,192,60,1"/></palette><hidden></hidden><headers></headers><code><list>&lt;#1&gt;</list><item> </item><delim>,</delim><tempvars_list>&lt;#1&gt;</tempvars_list><tempvars_item> </tempvars_item><tempvars_delim>,</tempvars_delim><parms_list>&lt;#1&gt;</parms_list><parms_item> </parms_item><parms_delim>,</parms_delim><doDeclareVariables>&lt;#1&gt;</doDeclareVariables><reify>&lt;#2&gt;</reify><doBroadcast>&lt;#2&gt;</doBroadcast><doIf>&lt;#3&gt;</doIf><reportVariadicEquals>&lt;#1&gt;</reportVariadicEquals><doSwitchToScene>&lt;#2&gt;</doSwitchToScene><reportNewList>&lt;#1&gt;</reportNewList><reportVariadicMin>&lt;#1&gt;</reportVariadicMin><reportVariadicMax>&lt;#1&gt;</reportVariadicMax><evaluate>&lt;#2&gt;</evaluate><reportVariadicSum>&lt;#1&gt;</reportVariadicSum><reportAskFor>&lt;#3&gt;</reportAskFor><reportVariadicLessThan>&lt;#1&gt;</reportVariadicLessThan><reportVariadicGreaterThan>&lt;#1&gt;</reportVariadicGreaterThan><doApplyExtension>&lt;#2&gt;</doApplyExtension><doRun>&lt;#2&gt;</doRun><reportJoinWords>&lt;#1&gt;</reportJoinWords><reportVariadicOr>&lt;#1&gt;</reportVariadicOr><reportVariadicAnd>&lt;#1&gt;</reportVariadicAnd><reportVariadicNotEquals>&lt;#1&gt;</reportVariadicNotEquals><reportJSFunction>&lt;#1&gt;</reportJSFunction><reportVariadicProduct>&lt;#1&gt;</reportVariadicProduct><reportVariadicGreaterThanOrEquals>&lt;#1&gt;</reportVariadicGreaterThanOrEquals><reportVariadicLessThanOrEquals>&lt;#1&gt;</reportVariadicLessThanOrEquals><reportApplyExtension>&lt;#2&gt;</reportApplyExtension><reportPipe>&lt;#2&gt;</reportPipe></code><blocks><block-definition s="split blocks %&apos;block&apos;" type="reporter" category="operators"><comment x="0" y="0" w="174" collapsed="false">This will split the input script by blocks. This is different from the regular (split [] by [blocks]) block, because this one actually tells you how many inputs are in a variadic input.&#xD;&#xD;IMPORTANT NOTE: This uses codification to determine how many slots are in a variadic input, so if your project relies upon codification, don&apos;t use this block.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="block"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="item"/></block><l><option>script</option></l></block><custom-block s="split blocks %repRing"><block s="reportJoinWords"><block var="item"/></block></custom-block><block var="item"/></block><block s="reportIfElse"><block s="reportIsA"><block var="item"/><l><option>script</option></l></block><custom-block s="split blocks %repRing"><block var="item"/></custom-block><block var="item"/></block></block></autolambda><list><l>item</l></list></block><block var="block"/></block></block></script><list><block s="reportNot"><block s="reportIsA"><block var="block"/><l><option>script</option></l></block></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>expecting a command / reporter / predicate / list but getting a </l><block s="reportTypeOf"><block var="block"/></block></list></block></custom-block></script></list></block><block s="doWarp"><script><block s="doIf"><custom-block s="is %repRing empty ring?"><block var="block"/></custom-block><script><block s="doSetVar"><l>block</l><block s="reportJoinWords"><block s="reportNewList"><list><block s="reportListItem"><block s="reportBlockAttribute"><l><option>type</option></l><block var="block"/></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reifyScript"><script></script><list></list></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reifyReporter"><script></script><list></list></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reifyPredicate"><script></script><list></list></block></autolambda><list></list></block></list></block></block><l></l><block s="reportCONS"><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l><option>input names</option></l><block var="block"/></block></block><block s="reportAttributeOf"><l><option>input names</option></l><block var="block"/></block></block></list></block></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>split block</l><l>empty block</l><l>inputs</l><l>with variadic inputs</l><l>slots</l><l>input number</l></list></block><block s="doSetVar"><l>with variadic inputs</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>split block</l><block s="reportTextSplit"><block var="block"/><l><option>blocks</option></l></block></block><block s="doSetVar"><l>empty block</l><block s="reportListItem"><l>1</l><block var="split block"/></block></block><block s="doSetVar"><l>inputs</l><block s="reportCDR"><block var="split block"/></block></block><block s="doIf"><block s="reportIsA"><block var="empty block"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="split blocks %repRing"><block s="reportJoinWords"><list></list></block></custom-block></autolambda><list></list></block><block var="split block"/></block></block></script><list></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>slots</l><block s="reportBlockAttribute"><l><option>slots</option></l><block var="empty block"/></block></block></script><l>error</l><script><block s="doReport"><block var="split block"/></block></script><comment w="147" collapsed="false">I cannot tell if it&apos;s an empty ring, because for some reason a ring from (split by [blocks]) is not equal to a regular ring. Thankfully ([] of block []) throws an error if an empty ring came from (split [] by [blocks]).</comment></custom-block><block s="doForEach"><l>item</l><block s="reportNewList"><list><l>collection</l><l>variables</l><l>parameters</l></list></block><script><block s="doMapListCode"><l><option>list</option></l><block var="item"/><l>&lt;#1&gt;</l></block><block s="doMapListCode"><l><option>item</option></l><block var="item"/><l> </l></block><block s="doMapListCode"><l><option>delimiter</option></l><block var="item"/><l>,</l></block></script></block><block s="doIf"><block s="reportListIsEmpty"><block var="slots"/></block><script><block s="doReport"><block var="split block"/></block></script><list></list></block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>slot</l><block var="slots"/><script><block s="doChangeVar"><l>input number</l><l>1</l></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="slot"/><l><option>list</option></l></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="slot"/><l>100</l></list></block><block s="reportListContainsItem"><block s="reportNewList"><list><l>14</l><l>16</l><l>17</l><l>18</l></list></block><block var="slot"/><comment w="90" collapsed="false">variables&#xD;recievers&#xD;send data&#xD;conditionals</comment></block></list></block><script><block s="doDeclareVariables"><list><l>code</l></list></block><block s="doMapCodeOrHeader"><block var="empty block"/><l><option>code</option></l><block s="reportJoinWords"><list><l>&lt;#</l><block var="#"/><l>&gt;</l></list></block></block><block s="doSetVar"><l>code</l><block s="reportTextSplit"><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block s="reportMappedCode"><block var="empty block"/></block><l><option>line</option></l></block></block><l>,</l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="code"/></block><l></l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="input number"/><block var="inputs"/></block><l></l></list></block><script><block s="doAddToList"><block s="reportNewList"><list><l>0</l></list></block><block var="with variadic inputs"/></block></script><list><l><bool>true</bool></l><script><block s="doAddToList"><custom-block s="split blocks %repRing"><block s="reportJoinWords"><block s="reportListItem"><block var="input number"/><block var="inputs"/></block></block></custom-block><block var="with variadic inputs"/></block></script></list></block></script><list><l><bool>true</bool></l><script><block s="doAddToList"><block s="reportCONS"><block s="reportListAttribute"><l><option>length</option></l><block var="code"/></block><custom-block s="split blocks %repRing"><block s="reportListItem"><block s="reportNumbers"><block var="input number"/><block s="reportDifference"><block s="reportVariadicSum"><list><block var="input number"/><block s="reportListAttribute"><l><option>length</option></l><block var="code"/></block></list></block><l>1</l></block></block><block var="inputs"/></block></custom-block></block><block var="with variadic inputs"/></block><block s="doChangeVar"><l>input number</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="code"/></block><l>1</l></block></block></script></list></block></script><list><l><bool>true</bool></l><script><block s="doAddToList"><block s="reportListItem"><block var="input number"/><block var="inputs"/></block><block var="with variadic inputs"/></block></script></list></block></script></custom-block><block s="doSetVar"><l>with variadic inputs</l><custom-block s="split blocks %repRing"><block var="with variadic inputs"/></custom-block><comment w="90" collapsed="false">Fix blocks inside inputs.</comment></block><block s="doReport"><block s="reportCONS"><block s="reportJoinWords"><block s="reportCONS"><block var="empty block"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="slot"/><l><option>list</option></l></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="slot"/><l>100</l></list></block><block s="reportListContainsItem"><block s="reportNewList"><list><l>14</l><l>16</l><l>17</l><l>18</l></list></block><block var="slot"/></block></list></block><block s="reportNewList"><list><l>0</l></list></block><l></l></block></autolambda><list><l>slot</l></list></block><block var="slots"/></block></block></block><block var="with variadic inputs"/></block></block></script></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><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;</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="wrap item %&apos;item&apos; of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1<options>1&#xD;last&#xD;random</options></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block var="item"/><l>1</l></block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><l>1</l></list></block><block var="list"/></block></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><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;</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="to snapblocks %&apos;script&apos; definition? %&apos;definition?&apos;" type="reporter" category="snapblocks"><comment w="193.9999999999999" collapsed="false">Convert any script to snapblocks.&#xD;&#xD;If the definition? tooggle is on, it will convert the definition of the block to snapblocks (including the block definition hat).</comment><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input><input type="%b" initial="1">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>split block</l><l>ambiguous blocks</l></list></block><block s="doSetVar"><l>ambiguous blocks</l><block s="reportNewList"><list><l>_ of _</l></list></block></block><block s="doSetVar"><l>split block</l><custom-block s="split blocks %repRing"><block var="script"/></custom-block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="split block"/></block><l><option>list</option></l></block><script><block s="doDeclareVariables"><list><l>codes</l></list></block><block s="doSetVar"><l>codes</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="to snapblocks %repRing definition? %b"><block s="reportJoinWords"><block var="block"/></block><block var="definition?"/></custom-block></autolambda><list><l>block</l></list></block><block var="split block"/></block></block><block s="doIf"><block var="definition?"/><script><block s="doReport"><block s="reportCombine"><block var="codes"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><custom-block s="multiline %mlt"><l>&#xD;&#xD;</l></custom-block><l></l></list></block></autolambda><list></list></block></block></block></script><list></list></block><block s="doReport"><block s="reportListAttribute"><l><option>lines</option></l><block var="codes"/></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>snapblocks parts</l><l>snapblocks code</l><l>block</l><l>input values</l><l>slots info</l><l>inputs</l><l>labels</l><l>shape</l><l>overrides</l></list></block><block s="doSetVar"><l>snapblocks parts</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>snapblocks code</l><l></l></block><block s="doSetVar"><l>overrides</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>labels</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>inputs</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>block</l><block s="reportListItem"><l>1</l><block var="split block"/></block></block><block s="doSetVar"><l>input values</l><block s="reportCDR"><block var="split block"/></block></block><block s="doSetVar"><l>slots info</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>shape</l><block s="reportBlockAttribute"><l><option>type</option></l><block var="block"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>selector</option></l><block var="block"/></block><l>reportGetVar</l></list></block><script><block s="doDeclareVariables"><list><l>name</l></list></block><block s="doSetVar"><l>name</l><custom-block s="snapblocks escape %s"><block s="reportListItem"><l>1</l><block var="input values"/></block></custom-block></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="name"/><block s="reportIfElse"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicNotEquals"><list><block s="reportBlockAttribute"><l><option>selector</option></l><block s="reifyReporter"><script></script><list></list></block></block><l>reportGetVar</l></list></block><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>type</option></l><block s="reifyReporter"><script></script><list></list></block></block><l>2</l></list></block><block s="reportNot"><block s="reportBlockAttribute"><l><option>custom?</option></l><block s="reifyReporter"><script></script><list></list></block></block></block><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><block var="name"/></list></block></list></block></autolambda><list></list></block><block s="reportApplyExtension"><l>ide_blocks</l><list></list></block></block><l> :: variables</l><l></l></block><l>)</l></list></block></block></script><list></list></block><block s="doForEach"><l>item</l><block s="reportNewList"><list><l>slots</l><l>menus</l><l>editables</l><l>replaceables</l><l>separators</l><l>collapses</l><l>expands</l><l>min slots</l><l>max slots</l><l>defaults</l></list></block><script><block s="doReplaceInList"><block var="item"/><block var="slots info"/><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l></l><block var="block"/></block></autolambda><list></list></block><list><block var="item"/></list></block></block></script></block><block s="doReplaceInList"><l>name</l><block var="slots info"/><block s="reportAttributeOf"><l><option>input names</option></l><block s="reportBlockAttribute"><l><option>definition</option></l><block var="block"/></block></block></block><block s="doIf"><custom-block s="JavaScript extensions?"></custom-block><script><block s="doReplaceInList"><l>spec</l><block var="slots info"/><custom-block s="get input specs %repRing"><block var="block"/></custom-block></block></script><list></list></block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>value</l><block var="input values"/><script><block s="doDeclareVariables"><list><l>info</l></list></block><block s="doSetVar"><l>info</l><block s="reportNewList"><list></list></block></block><block s="doReplaceInList"><l>value</l><block var="info"/><block var="value"/></block><block s="doReplaceInList"><l>block</l><block var="info"/><block var="block"/></block><block s="doForEach"><l>item</l><block var="slots info"/><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="info"/><block s="reportListItem"><block var="#"/><block s="reportListItem"><l>2</l><block var="item"/></block></block></block></script></block><block s="doAddToList"><block var="info"/><block var="inputs"/></block></script></custom-block><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>%rr</l><l>%rc</l></list></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>slots</l><block var="slots info"/></block></block></block><script><block s="doSetVar"><l>shape</l><l>2</l></block></script><list></list></block><block s="doSetVar"><l>labels</l><custom-block s="split block label %repRing"><block var="block"/></custom-block></block><block s="doDeclareVariables"><list><l>has loop</l></list></block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>label</l><block var="labels"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block var="definition?"/></block><custom-block s="text %txt contains %txt"><block var="label"/><l>$nl</l></custom-block></list></block><script><block s="doDeclareVariables"><list><l>lines</l><l>line</l></list></block><block s="doSetVar"><l>line</l><l></l></block><block s="doSetVar"><l>lines</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>part</l><block s="reportTextSplit"><block var="label"/><l> </l></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="part"/><l>$nl</l></list></block><script><block s="doAddToList"><block var="line"/><block var="lines"/></block><block s="doSetVar"><l>line</l><l></l></block></script><list><l><bool>true</bool></l><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="line"/><l></l></list></block><script><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><l> </l></list></block></block></script><list></list></block><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block var="part"/></list></block></block></script></list></block></script></block><block s="doAddToList"><block var="line"/><block var="lines"/></block><block s="doIf"><block var="has loop"/><script><block s="doReplaceInList"><l>1</l><block var="lines"/><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="lines"/></block><l> @loopArrow</l></list></block></block><block s="doSetVar"><l>has loop</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>label</l><block s="reportCombine"><block var="lines"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><block var="#1"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="shape"/><l>1</l></list></block><l>\</l><l></l></block><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block><block var="#2"/></list></block></autolambda><list><l>#1</l><l>#2</l></list></block></block></block></script><list></list></block><block s="doIf"><block var="label"/><script><block s="doAddToList"><block var="label"/><block var="snapblocks parts"/></block></script><list></list></block><block s="doIf"><block s="reportListItem"><block var="#"/><block var="inputs"/></block><script><block s="doIf"><block var="definition?"/><script><block s="doAddToList"><custom-block s="snapblocks paramater %l"><block s="reportListItem"><block var="#"/><block var="inputs"/></block></custom-block><block var="snapblocks parts"/></block></script><list><l><bool>true</bool></l><script><block s="doIf"><block s="reportVariadicAnd"><list><block var="has loop"/><block s="reportListContainsItem"><block s="reportNewList"><list><l>5</l><l>15</l></list></block><block s="reportListItem"><l>slots</l><block s="reportListItem"><block var="#"/><block var="inputs"/></block></block></block></list></block><script><block s="doAddToList"><l>@loop</l><block var="snapblocks parts"/></block><block s="doSetVar"><l>has loop</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doAddToList"><custom-block s="snapblocks input %l"><block s="reportListItem"><block var="#"/><block var="inputs"/></block></custom-block><block var="snapblocks parts"/></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>slots</l><block s="reportListItem"><block var="#"/><block var="inputs"/></block></block><l>15</l></list></block><block s="reportBlockAttribute"><l><option>custom?</option></l><block var="block"/></block></list></block><script><block s="doSetVar"><l>has loop</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></list></block></script><list></list></block></script></custom-block><block s="doIf"><block var="has loop"/><script><block s="doAddToList"><l>@loop</l><block var="snapblocks parts"/></block><block s="doSetVar"><l>has loop</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportBlockAttribute"><l><option>custom?</option></l><block var="block"/></block><block var="definition?"/><block s="reportListContainsItem"><block var="ambiguous blocks"/><block s="reportBlockAttribute"><l><option>label</option></l><block var="block"/></block></block></list></block><script><block s="doAddToList"><custom-block s="snapblocks category %repRing"><block var="block"/></custom-block><block var="overrides"/></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportBlockAttribute"><l><option>global?</option></l><block var="block"/></block></block><script><block s="doAddToList"><l>local</l><block var="overrides"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportBlockAttribute"><l><option>custom?</option></l><block var="block"/></block><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>type</option></l><block var="block"/></block><l>4</l></list></block></list></block><script><block s="doAddToList"><l>hat</l><block var="overrides"/></block></script><list></list></block><block s="doSetVar"><l>snapblocks code</l><block s="reportJoinWords"><list><block s="reportCombine"><block var="snapblocks parts"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><block s="reportIfElse"><block s="reportListAttribute"><l><option>length</option></l><block var="overrides"/></block><block s="reportJoinWords"><list><l> :: </l><block s="reportCombine"><block var="overrides"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block></list></block><l></l></block></list></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportListIsEmpty"><block var="overrides"/></block><block s="reportVariadicGreaterThan"><list><block var="shape"/><l>1</l></list></block><block s="reportPipe"><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block s="reportListItem"><l><option>last</option></l><block var="snapblocks parts"/></block><l> </l></block></block><list><block s="reifyReporter"><autolambda><block s="reportVariadicAnd"><list><block s="reportListContainsItem"><block s="reportNewList"><list><l>@</l><l>$</l></list></block><block s="reportLetter"><l>1</l><l></l></block></block><block s="reportListContainsItem"><block s="reportNewList"><list><l>&lt;</l><l>:</l><l>&gt;</l></list></block><block s="reportLetter"><l><option>last</option></l><l></l></block></block></list></block></autolambda><list></list></block></list></block></list></block><script><block s="doSetVar"><l>snapblocks code</l><block s="reportJoinWords"><list><block var="snapblocks code"/><l> </l></list></block></block></script><list></list></block><block s="doSetVar"><l>snapblocks code</l><block s="reportJoinWords"><list><block s="reportIfElse"><block var="definition?"/><l>{</l><l></l></block><block s="reportListItem"><block s="reportDifference"><block var="shape"/><l>1</l></block><block s="reportNewList"><list><l>(</l><l>&lt;</l></list></block></block><block var="snapblocks code"/><block s="reportListItem"><block s="reportDifference"><block var="shape"/><l>1</l></block><block s="reportNewList"><list><l>)</l><l>&gt;</l></list></block></block><block s="reportIfElse"><block var="definition?"/><l>}</l><l></l></block></list></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="definition?"/><custom-block s="JavaScript extensions?"></custom-block></list></block><script><block s="doDeclareVariables"><list><l>variable names</l></list></block><block s="doSetVar"><l>variable names</l><custom-block s="block vars %repRing"><block var="block"/></custom-block></block><block s="doIf"><block s="reportListAttribute"><l><option>length</option></l><block var="variable names"/></block><script><block s="doSetVar"><l>snapblocks code</l><block s="reportJoinWords"><list><block var="snapblocks code"/><custom-block s="multiline %mlt"><l> \&#xD;block variables </l></custom-block><block s="reportListAttribute"><l><option>text</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l>((</l><l></l><l>))</l></list></block></autolambda><list></list></block><block var="variable names"/></block></block><l> @delInput @addInput</l></list></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block var="definition?"/><script><block s="doSetVar"><l>snapblocks code</l><block s="reportJoinWords"><list><block var="snapblocks code"/><l> :: define+</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportBlockAttribute"><l><option>comment</option></l><block var="block"/></block><script><block s="doSetVar"><l>snapblocks code</l><block s="reportJoinWords"><list><block var="snapblocks code"/><l> /* </l><custom-block s="snapblocks escape %s"><block s="reportBlockAttribute"><l><option>comment</option></l><block var="block"/></block></custom-block><l> */</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="definition?"/><block s="reportNot"><custom-block s="is %repRing empty ring?"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="block"/></block></custom-block></block></list></block><script><block s="doDeclareVariables"><list><l>definition</l></list></block><block s="doSetVar"><l>definition</l><block s="reportBlockAttribute"><l><option>definition</option></l><block var="block"/></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="definition"/><l><option>command</option></l></block></block><script><block s="doSetVar"><l>definition</l><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><block var="definition"/></list></block></block></script><list></list></block><block s="doSetVar"><l>snapblocks code</l><block s="reportJoinWords"><list><block var="snapblocks code"/><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block><custom-block s="to snapblocks %repRing definition? %b"><block var="definition"/><l><bool>false</bool></l></custom-block></list></block></block></script><list></list></block><block s="doReport"><block var="snapblocks code"/></block></script></block></script></block-definition><block-definition s="is %&apos;ring&apos; empty ring?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="reportBlockAttribute"><l><option>label</option></l><block var="ring"/></block><l>error</l><l></l></custom-block><l></l></list></block></block></script><scripts><script x="368.056640625" y="124.66666666666666"><block var="error"/></script></scripts></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists" space="true"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca" irreplaceable="true"></input></inputs><script><block s="doForEach"><l>inner item</l><block var="data"/><script><block s="doSetVar"><l>item</l><block var="inner item"/></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="snapblocks category %&apos;block&apos;" type="reporter" category="snapblocks" space="true"><comment x="0" y="0" w="169" collapsed="false">Get the category name of a block. If the block is in a custom category, it will be &quot;other&quot;. However, if javascript is enabled, it will get the custom category color (as &quot;rgb(r,g,b)&quot;).</comment><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportBlockAttribute"><l><option>category</option></l><block var="block"/></block><l>10</l></list></block><block s="reportIfElse"><custom-block s="JavaScript extensions?"></custom-block><block s="evaluate"><block s="reportJSFunction"><list><l>block</l></list><l>return SpriteMorph.prototype.customCategories.get(block.expression.category).toRGBstring();</l></block><list><block var="block"/></list></block><l>other</l></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>category</option></l><block var="block"/></block><block s="reportGet"><l><option>categories</option></l></block></block></block></block></script></block-definition><block-definition s="split block label %&apos;block&apos;" type="reporter" category="snapblocks" helper="true" space="true"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>section</l><l>labels</l></list></block><block s="doSetVar"><l>labels</l><block s="reportNewList"><list></list></block></block><block s="doIf"><custom-block s="JavaScript extensions?"></custom-block><script><block s="doForEach"><l>part</l><custom-block s="parse block spec %s"><block var="block"/></custom-block><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportLetter"><l>1</l><block var="part"/></block><l>%</l></list></block><script><block s="doAddToList"><custom-block s="snapblocks escape %s"><block var="part"/></custom-block><block var="labels"/></block></script><list></list></block></script></block></script><list><l><bool>true</bool></l><script><block s="doSetVar"><l>section</l><l></l></block><block s="doForEach"><l>part</l><custom-block s="snapblocks escape %s"><block s="reportTextSplit"><block s="reportIfElse"><custom-block s="JavaScript extensions?"></custom-block><custom-block s="block spec %repRing"><block var="block"/></custom-block><block s="reportBlockAttribute"><l><option>label</option></l><block var="block"/></block></block><l> </l></block></custom-block><script><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="JavaScript extensions?"></custom-block><block s="reportVariadicEquals"><list><block var="part"/><l>%br</l></list></block></list></block><script><block s="doSetVar"><l>part</l><l>$nl</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><custom-block s="JavaScript extensions?"></custom-block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="part"/></block><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="part"/></block><l>%</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportNot"><custom-block s="JavaScript extensions?"></custom-block></block><block s="reportVariadicEquals"><list><block var="part"/><l>_</l></list></block></list></block></list></block><script><block s="doAddToList"><block var="section"/><block var="labels"/></block><block s="doSetVar"><l>section</l><l></l></block></script><list><block s="reportVariadicEquals"><list><block var="section"/><l></l></list></block><script><block s="doSetVar"><l>section</l><block var="part"/></block></script><l><bool>true</bool></l><script><block s="doSetVar"><l>section</l><block s="reportJoinWords"><list><block var="section"/><l> </l><block var="part"/></list></block></block></script></list></block></script></block><block s="doIf"><block var="section"/><script><block s="doAddToList"><block var="section"/><block var="labels"/></block></script><list></list></block></script></list></block><block s="doReport"><block var="labels"/></block></script><scripts><script x="405" y="85.99999999999994"><block s="evaluate"><block s="reportJSFunction"><list><l>block</l></list><l>return block.expression.blockSpec;</l></block><list><l></l></list></block></script></scripts></block-definition><block-definition s="indent snapblocks %&apos;text&apos; spaces %&apos;size&apos;" type="reporter" category="snapblocks"><comment x="0" y="0" w="120" collapsed="false">Like a regular indent function, but it doesn&apos;t indent lines inside square brakets (which are text inputs in snapblocks).</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%n" initial="1">2</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>indent</l><l>lines</l><l>line</l><l>inside brackets?</l><l>inside comment</l></list></block><block s="doSetVar"><l>indent</l><block s="reportJoinWords"><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportCDR"><block s="reportNumbers"><l>0</l><block var="size"/></block></block><l>0</l></list></block><block s="reportUnicode"><l> </l></block></list></block></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="text"/><l></l></list></block><script><block s="doReport"><block var="indent"/></block></script><list></list></block><block s="doSetVar"><l>lines</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>line</l><l></l></block><block s="doFor"><l>letter</l><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="letter"/><block var="text"/></block><l>\</l></list></block><block s="reportVariadicNotEquals"><list><block s="reportLetter"><block s="reportVariadicSum"><list><block var="letter"/><l>1</l></list></block><block var="text"/></block><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block></list></block></list></block><script><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block s="reportLetter"><block var="letter"/><block var="text"/></block></list></block></block><block s="doChangeVar"><l>letter</l><l>1</l></block><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block s="reportLetter"><block var="letter"/><block var="text"/></block></list></block></block></script><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="letter"/><block var="text"/></block><l>[</l></list></block><block s="reportNot"><block var="inside comment"/></block></list></block><script><block s="doSetVar"><l>inside brackets?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block s="reportLetter"><block var="letter"/><block var="text"/></block></list></block></block></script><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="letter"/><block var="text"/></block><l>]</l></list></block><block s="reportNot"><block var="inside comment"/></block></list></block><script><block s="doSetVar"><l>inside brackets?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block s="reportLetter"><block var="letter"/><block var="text"/></block></list></block></block></script><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><block s="reportNewList"><list><block var="letter"/><block s="reportVariadicSum"><list><block var="letter"/><l>1</l></list></block></list></block><block var="text"/></block><block s="reportNewList"><list><l>/</l><l>*</l></list></block></list></block><block s="reportNot"><block var="inside brackets?"/></block></list></block><script><block s="doSetVar"><l>inside comment</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block s="reportLetter"><block var="letter"/><block var="text"/></block></list></block></block></script><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><block s="reportNewList"><list><block var="letter"/><block s="reportVariadicSum"><list><block var="letter"/><l>1</l></list></block></list></block><block var="text"/></block><block s="reportNewList"><list><l>*</l><l>/</l></list></block></list></block><block s="reportNot"><block var="inside brackets?"/></block></list></block><script><block s="doSetVar"><l>inside comment</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block s="reportLetter"><block var="letter"/><block var="text"/></block></list></block></block></script><block s="reportVariadicAnd"><list><block s="reportNot"><block var="inside brackets?"/></block><block s="reportNot"><block var="inside comment"/></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="letter"/><block var="text"/></block><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block></list></block></list></block><script><block s="doAddToList"><block var="line"/><block var="lines"/></block><block s="doSetVar"><l>line</l><l></l></block></script><l><bool>true</bool></l><script><block s="doSetVar"><l>line</l><block s="reportJoinWords"><list><block var="line"/><block s="reportLetter"><block var="letter"/><block var="text"/></block></list></block></block></script></list></block></script></block><block s="doAddToList"><block var="line"/><block var="lines"/></block><block s="doReport"><block s="reportListAttribute"><l><option>lines</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><block var="indent"/><l></l></list></block></autolambda><list></list></block><block var="lines"/></block></block></block></script></block></script></block-definition><block-definition s="$flash assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block><block var="a-list"/></block></block></script></block-definition><block-definition s="snapblocks escape %&apos;string&apos;" type="reporter" category="snapblocks"><comment x="0" y="0" w="90" collapsed="false">Escape snapblocks special characters</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="snapblocks escape %s"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doWarp"><script><block s="doDeclareVariables"><list><l>escape chars</l><l>result</l></list></block><block s="doSetVar"><l>escape chars</l><block s="reportCONS"><l>\</l><block s="reportConcatenatedLists"><list><block s="reportTextSplit"><l>([{&lt;&gt;}])@</l><l><option>letter</option></l></block><block s="reportNewList"><list><l>*/</l></list></block></list></block></block></block><block s="doSetVar"><l>result</l><block var="string"/></block><block s="doForEach"><l>char</l><block var="escape chars"/><script><block s="doSetVar"><l>result</l><block s="reportCombine"><block s="reportTextSplit"><block var="result"/><block var="char"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>\</l><block var="char"/><l></l></list></block></autolambda><list></list></block></block></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="hex of %&apos;color&apos;" type="reporter" category="pen"><comment x="0" y="0" w="121" collapsed="false">Minimalist color to hex function from the Colors and Crayons library.</comment><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="✐ byte to hex %n"><l></l></custom-block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block var="color"/><l></l></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>r</l><l>g</l><l>b</l></list></block></block></block></block></block></script></block-definition><block-definition s="✐ byte to hex %&apos;byte&apos;" type="reporter" category="pen" space="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="✐ nybble to hex %n"><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="byte"/><l>16</l></block></block></custom-block><custom-block s="✐ nybble to hex %n"><block s="reportModulus"><block var="byte"/><l>16</l></block></custom-block></list></block></block></script></block-definition><block-definition s="block spec %&apos;block&apos;" type="reporter" category="operators" space="true"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>block</l></list><l>return block.expression.blockSpec;</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="block vars %&apos;block&apos;" type="reporter" category="operators"><comment x="0" y="0" w="128" collapsed="false">Get block variables in a block. Requires javascript.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>let varNames = [],&#xD;    block = proc.expression;&#xD;&#xD;if (block.definition) {&#xD;  varNames = block.definition.variableNames;&#xD;} else if (block.isGlobal &amp;&amp; !block.isGlobal) {&#xD;  let receiver = proc.outerContext.receiver;&#xD;  let def = receiver.customBlocks.find(d =&gt; d.blockSpec() == block.blockSpec);&#xD;  if (def) {&#xD;    varNames = def.variableNames;&#xD;  }&#xD;} else {&#xD;  let def = SpriteMorph.prototype.customBlockDefinitionFor(block.selector);&#xD;  if (def) {&#xD;    varNames = def.variableNames;&#xD;  }&#xD;}&#xD;&#xD;return new List(varNames);</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="parse block spec %&apos;spec&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>section</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportIsA"><block var="spec"/><l><option>script</option></l></block><script><block s="doSetVar"><l>spec</l><custom-block s="block spec %repRing"><block var="spec"/></custom-block></block></script><list></list></block><block s="doSetVar"><l>section</l><l></l></block><block s="doForEach"><l>part</l><block s="reportTextSplit"><block var="spec"/><l> </l></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="part"/><l>%br</l></list></block><script><block s="doSetVar"><l>part</l><l>$nl</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="part"/></block><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="part"/></block><l>%</l></list></block></list></block><script><block s="doAddToList"><block var="section"/><block var="result"/></block><block s="doAddToList"><block var="part"/><block var="result"/></block><block s="doSetVar"><l>section</l><l></l></block></script><list><block s="reportVariadicEquals"><list><block var="section"/><l></l></list></block><script><block s="doSetVar"><l>section</l><block var="part"/></block></script><l><bool>true</bool></l><script><block s="doSetVar"><l>section</l><block s="reportJoinWords"><list><block var="section"/><l> </l><block var="part"/></list></block></block></script></list></block></script></block><block s="doIf"><block var="section"/><script><block s="doAddToList"><block var="section"/><block var="result"/></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="get input specs %&apos;block&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>slots</l><l>slot type</l></list></block><block s="doSetVar"><l>slots</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>part</l><custom-block s="parse block spec %s"><block var="block"/></custom-block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="part"/></block><l>%</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="part"/></block><l>1</l></list></block></list></block><script><block s="doSetVar"><l>slot type</l><block s="reportCDR"><block s="reportTextSplit"><block var="part"/><l>%</l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="slot type"/></block><l>group</l></list></block><script><block s="doSetVar"><l>slot type</l><block s="reportCDR"><block var="slot type"/></block></block></script><list></list></block><block s="doAddToList"><block var="slot type"/><block var="slots"/></block></script><list></list></block></script></block><block s="doReport"><block var="slots"/></block></script></block-definition><block-definition s="JavaScript extensions?" type="predicate" category="operators" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return true;</l></block><list></list></block><l>error</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block></block></script></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators" space="true"><header></header><code></code><translations>pt:o texto multilinha _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="use case-independent comparison" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>_case indepent</l></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="snapblocks input %&apos;input info&apos;" type="reporter" category="snapblocks" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>special variadics</l></list></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>special variadics</l><block s="reportNewList"><list><block s="reportNewList"><list><l>14</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l>12</l></list></block><block s="reportNewList"><list><l>menus</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>editables</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>replaceables</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>spec</l><block s="reportNewList"><list><l>upvar</l></list></block></list></block></list></block></list></block></list></block><block s="reportNewList"><list><l>16</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l>0</l></list></block><block s="reportNewList"><list><l>menus</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>editables</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>replaceables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>spec</l><block s="reportNewList"><list><l>s</l></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l>0</l></list></block><block s="reportNewList"><list><l>menus</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>editables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>replaceables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>spec</l><block s="reportNewList"><list><l>s</l></list></block></list></block></list></block></list></block></list></block><block s="reportNewList"><list><l>17</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l>0</l></list></block><block s="reportNewList"><list><l>menus</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>editables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>replaceables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>spec</l><block s="reportNewList"><list><l>s</l></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l>0</l></list></block><block s="reportNewList"><list><l>menus</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>editables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>replaceables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>spec</l><block s="reportNewList"><list><l>s</l></list></block></list></block></list></block></list></block></list></block><block s="reportNewList"><list><l>18</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l>2</l></list></block><block s="reportNewList"><list><l>menus</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>editables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>replaceables</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><l>spec</l><block s="reportNewList"><list><l>b</l></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l>5</l></list></block><block s="reportNewList"><list><l>menus</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>editables</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>replaceables</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l>spec</l><block s="reportNewList"><list><l>cs</l></list></block></list></block></list></block></list></block></list></block></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>100</l></list></block><block s="reportListContainsItem"><block s="reportNewList"><list><l>14</l><l>16</l><l>17</l><l>18</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><block s="reportIsA"><block s="reportListItem"><l>slots</l><block var="input info"/></block><l><option>list</option></l></block></list></block><script><block s="doDeclareVariables"><list><l>type</l><l>info</l><l>special info</l></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>slots</l><block var="input info"/></block><l><option>list</option></l></block></block><script><block s="doSetVar"><l>type</l><block s="reportModulus"><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>100</l></block></block></script><list></list></block><block s="doSetVar"><l>info</l><block s="reportMonadic"><l><option>id</option></l><block var="input info"/></block></block><block s="doReplaceInList"><l>slots</l><block var="info"/><block var="type"/></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>slots</l><block var="input info"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>special info</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportNewList"><list><l>slots</l><l></l></list></block></list></block></autolambda><list></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block></block></script><list><l><bool>true</bool></l><script><block s="doSetVar"><l>special info</l><block s="reportMonadic"><l><option>id</option></l><custom-block s="$flash assoc %s %l"><block var="type"/><block var="special variadics"/></custom-block></block></block><block s="doIf"><block s="reportIsA"><block var="special info"/><l><option>list</option></l></block><script><block s="doSetVar"><l>special info</l><block s="reportListItem"><l>2</l><block var="special info"/></block></block></script><list></list></block></script></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>spec</l><block var="input info"/></block><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>spec</l><block var="input info"/></block></block><l>mult</l></list></block><script><block s="doReplaceInList"><l>spec</l><block var="info"/><block s="reportCDR"><block s="reportListItem"><l>spec</l><block var="input info"/></block></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><option>script</option></l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block s="reportIfElse"><block s="reportListItem"><l>collapses</l><block var="input info"/></block><block s="reportListItem"><l>collapses</l><block var="input info"/></block><l>Input list:</l></block><l> </l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><option>command</option></l></block><l>{</l><l></l></block><custom-block s="to snapblocks %repRing definition? %b"><block s="reportJoinWords"><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><bool>false</bool></l></custom-block><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><option>command</option></l></block><l>}</l><l></l></block></list></block></block></script><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l>0</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block s="reportListItem"><l>collapses</l><block var="input info"/></block><block s="reportIfElse"><block s="reportListItem"><l>collapses</l><block var="input info"/></block><l> </l><l></l></block><l>@</l><block s="reportIfElse"><block s="reportListItem"><l>replaceables</l><block var="input info"/></block><l>:</l><l></l></block><l>&gt;</l></list></block></block></script><l><bool>true</bool></l><script><block s="doDeclareVariables"><list><l>slots</l><l>slot info</l><l>variadic arrows</l></list></block><block s="doSetVar"><l>slots</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>slot info</l><block s="reportMonadic"><l><option>id</option></l><block var="info"/></block></block><block s="doIf"><block var="special info"/><script><block s="doForEach"><l>item</l><block s="reportListItem"><l>1</l><block var="special info"/></block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="slot info"/><block s="reportListItem"><l>2</l><block var="item"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>expands</l><block var="slot info"/></block><l><option>text</option></l></block><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>expands</l><block var="slot info"/></block><l></l></list></block></list></block><script><block s="doAddToList"><block s="reportListItem"><l>expands</l><block var="slot info"/></block><block var="slots"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="slots"/></block><l>$nl</l></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="slots"/><block s="reportIfElse"><block s="reportDifference"><block s="reportBlockAttribute"><l><option>type</option></l><block s="reportListItem"><l>block</l><block var="slot info"/></block></block><l>1</l></block><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block><custom-block s="multiline %mlt"><l>\&#xD;</l></custom-block></block></block></script><list></list></block></script><list></list></block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>value</l><block s="reportCDR"><block s="reportListItem"><l>value</l><block var="info"/></block></block><script><block s="doSetVar"><l>slot info</l><block s="reportMonadic"><l><option>id</option></l><block var="info"/></block></block><block s="doIf"><block var="special info"/><script><block s="doForEach"><l>item</l><custom-block s="wrap item %n of %l"><block var="#"/><block var="special info"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="slot info"/><block s="reportListItem"><l>2</l><block var="item"/></block></block></script></block></script><list></list></block><block s="doReplaceInList"><l>value</l><block var="slot info"/><block var="value"/></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>expands</l><block var="slot info"/></block><l><option>list</option></l></block><script><block s="doIf"><custom-block s="wrap item %n of %l"><block var="#"/><block s="reportListItem"><l>expands</l><block var="slot info"/></block></custom-block><script><block s="doAddToList"><custom-block s="wrap item %n of %l"><block var="#"/><block s="reportListItem"><l>expands</l><block var="slot info"/></block></custom-block><block var="slots"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="slots"/></block><l>$nl</l></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="slots"/><block s="reportIfElse"><block s="reportDifference"><block s="reportBlockAttribute"><l><option>type</option></l><block s="reportListItem"><l>block</l><block var="slot info"/></block></block><l>1</l></block><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block><custom-block s="multiline %mlt"><l>\&#xD;</l></custom-block></block></block></script><list></list></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="#"/><l>1</l></list></block><block s="reportListItem"><l>separators</l><block var="slot info"/></block></list></block><script><block s="doAddToList"><block s="reportListItem"><l>separators</l><block var="slot info"/></block><block var="slots"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="slots"/></block><l>$nl</l></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="slots"/><block s="reportIfElse"><block s="reportDifference"><block s="reportBlockAttribute"><l><option>type</option></l><block s="reportListItem"><l>block</l><block var="slot info"/></block></block><l>1</l></block><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block><custom-block s="multiline %mlt"><l>\&#xD;</l></custom-block></block></block></script><list></list></block></script><list></list></block><block s="doAddToList"><custom-block s="snapblocks input %l"><block var="slot info"/></custom-block><block var="slots"/></block></script></custom-block><block s="doSetVar"><l>variadic arrows</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="info"/></block></block><block s="reportListItem"><l>min slots</l><block var="info"/></block></list></block><script><block s="doAddToList"><l>&lt;</l><block var="variadic arrows"/></block></script><list></list></block><block s="doIf"><block s="reportListItem"><l>replaceables</l><block var="info"/></block><script><block s="doAddToList"><l>:</l><block var="variadic arrows"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>max slots</l><block var="info"/></block><l>0</l></list></block><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="info"/></block></block><block s="reportListItem"><l>max slots</l><block var="info"/></block></list></block></list></block><script><block s="doAddToList"><l>&gt;</l><block var="variadic arrows"/></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="variadic arrows"/></block></block><script><block s="doAddToList"><block s="reportJoinWords"><list><l>@</l><block var="variadic arrows"/></list></block><block var="slots"/></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportCombine"><block var="slots"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block></block></script></list></block></script><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>value</l><block var="input info"/></block><l><option>list</option></l></block><block s="reportVariadicOr"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><option>script</option></l></block><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><option>list</option></l></block></list></block></list></block><script><block s="doDeclareVariables"><list><l>block code</l><l>block</l></list></block><block s="doSetVar"><l>block</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><option>list</option></l></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block></block></block><block s="doSetVar"><l>block code</l><custom-block s="to snapblocks %repRing definition? %b"><block s="reportJoinWords"><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><bool>false</bool></l></custom-block></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>%rr</l><l>%rc</l></list></block><block s="reportListItem"><l>1</l><block s="reportBlockAttribute"><l><option>slots</option></l><block var="block"/></block></block></block></block><block s="reportIsA"><block var="block"/><l><option>command</option></l></block></list></block><script><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>5</l><l>15</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>block code</l><block s="reportJoinWords"><list><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block><custom-block s="indent snapblocks %mlt spaces %n"><block var="block code"/><l>2</l></custom-block><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block></list></block></block></script><list></list></block><block s="doSetVar"><l>block code</l><block s="reportJoinWords"><list><l>{</l><block var="block code"/><l>}</l></list></block></block></script><list></list></block><block s="doSetVar"><l>result</l><block var="block code"/></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>6</l><l>7</l><l>8</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><l>(</l><block s="reportListItem"><block s="reportDifference"><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>5</l></block><block s="reportNewList"><list><l>{}</l><l>()</l><l>&lt;&gt;</l></list></block></block><l> @&gt;)</l></list></block></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>2</l><l>10</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><l>&lt;</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>value</l><block var="input info"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListItem"><l>value</l><block var="input info"/></block><l>1</l></list></block><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportListItem"><l>replaceables</l><block var="input info"/></block></block><block s="reportIsA"><block s="reportListItem"><l>block</l><block var="input info"/></block><l><option>predicate</option></l></block></list></block></block><l>1</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>false</l><l>true</l></list></block><block s="reportNewList"><list><l>f</l><l>t</l></list></block></list></block></block></block><l></l></block><l>&gt;</l></list></block></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>3</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><l>@list</l></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>11</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><l>@turtle</l></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>%rr</l><l>%rc</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block s="reportListItem"><block s="reportBlockAttribute"><l><option>type</option></l><block s="reportListItem"><l>block</l><block var="input info"/></block></block><block s="reportNewList"><list><l>{</l><l>(</l><l>&lt;</l></list></block></block><block s="reportIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>value</l><block var="input info"/></block><l><option>list</option></l></block><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><option>script</option></l></block></list></block><custom-block s="to snapblocks %repRing definition? %b"><block s="reportJoinWords"><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l><bool>false</bool></l></custom-block><l></l></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>type</option></l><block s="reportListItem"><l>block</l><block var="input info"/></block></block><block s="reportNewList"><list><l>}</l><l>)</l><l>&gt;</l></list></block></block></list></block></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>13</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><l>[#</l><custom-block s="hex of %clr"><block s="reportListItem"><l>value</l><block var="input info"/></block></custom-block><l>]</l></list></block></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>12</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><l>((</l><block s="reportListItem"><l>value</l><block var="input info"/></block><l>))</l></list></block></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>5</l><l>15</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><custom-block s="multiline %mlt"><l>{&#xD;&#xD;}</l></custom-block></block></script><l><bool>true</bool></l><script><block s="doDeclareVariables"><list><l>value</l><l>special</l></list></block><block s="doSetVar"><l>special</l><block s="reportVariadicEquals"><list><block s="reportLetter"><block s="reportNewList"><list><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l>value</l><block var="input info"/></block></block></list></block><block s="reportListItem"><l>value</l><block var="input info"/></block></block><block s="reportNewList"><list><l>[</l><l>]</l></list></block></list></block></block><block s="doSetVar"><l>value</l><custom-block s="snapblocks escape %s"><block s="reportIfElse"><block var="special"/><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l>value</l><block var="input info"/></block></block><l>1</l></block></block><block s="reportListItem"><l>value</l><block var="input info"/></block></block></block><block s="reportListItem"><l>value</l><block var="input info"/></block></block></custom-block></block><block s="doIf"><block var="special"/><script><block s="doSetVar"><l>value</l><block s="reportJoinWords"><list><l>[</l><block var="value"/><l>]</l></list></block></block></script><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>spec</l><block var="input info"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>spec</l><block var="input info"/></block></block><l>code</l></list></block></list></block><script><block s="doSetVar"><l>value</l><block s="reportJoinWords"><list><l>`</l><block var="value"/><l>`</l></list></block></block></script></list></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>1</l></list></block><l>(</l><block s="reportIfElse"><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>spec</l><block var="input info"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>spec</l><block var="input info"/></block></block><l>txt</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>4</l></list></block></block><l>[{</l><l>[</l></block></block><block var="value"/></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>menus</l><block var="input info"/></block><l><option>list</option></l></block><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>menus</l><block var="input info"/></block></block><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>menus</l><block var="input info"/></block></block><l></l></list></block></list></block></block></list></block><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>menus</l><block var="input info"/></block><l><option>text</option></l></block><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>menus</l><block var="input info"/></block><l></l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>menus</l><block var="input info"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>menus</l><block var="input info"/></block></list></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> </l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListItem"><l>editables</l><block var="input info"/></block><l>1</l></list></block><block s="reportNewList"><list><l>V</l><l>v</l></list></block></block></list></block></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>1</l></list></block><l>)</l><block s="reportIfElse"><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>spec</l><block var="input info"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>spec</l><block var="input info"/></block></block><l>txt</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>4</l></list></block></block><l>}]</l><l>]</l></block></block></list></block></block></script></list></block><block s="doReport"><block var="result"/></block></script></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="control"><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;</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="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="snapblocks paramater %&apos;input info&apos;" type="reporter" category="snapblocks" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1">5</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportListItem"><l>name</l><block var="input info"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><l>12</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ↑</l><block s="reportIfElse"><block s="reportListItem"><l>defaults</l><block var="input info"/></block><block s="reportJoinWords"><list><l> = </l><block s="reportListItem"><l>defaults</l><block var="input info"/></block></list></block><l></l></block></list></block></block></script><list><block s="reportVariadicEquals"><list><l>14</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ↑...</l></list></block></block></script><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>slots</l><block var="input info"/></block><l>100</l></list></block><block s="reportListContainsItem"><block s="reportNewList"><list><l>14</l><l>16</l><l>17</l><l>18</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>...</l></list></block></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>5</l><l>15</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> λ</l></list></block></block></script><block s="reportVariadicEquals"><list><l>2</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ?</l></list></block></block></script><block s="reportVariadicEquals"><list><l>3</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> \︙</l></list></block></block></script><block s="reportVariadicEquals"><list><l>11</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> @turtleOutline</l></list></block></block></script><block s="reportVariadicEquals"><list><l>13</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> @pipette</l></list></block></block></script><block s="reportListContainsItem"><block s="reportNewList"><list><l>6</l><l>7</l><l>8</l><l>9</l><l>10</l></list></block><block s="reportListItem"><l>slots</l><block var="input info"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> λ</l></list></block></block></script><block s="reportListItem"><l>defaults</l><block var="input info"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><l>1</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> # = </l><block s="reportListItem"><l>defaults</l><block var="input info"/></block></list></block></block></script><list><block s="reportVariadicEquals"><list><l>4</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ¶ = </l><block s="reportListItem"><l>defaults</l><block var="input info"/></block></list></block></block></script><l><bool>true</bool></l><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> = </l><block s="reportListItem"><l>defaults</l><block var="input info"/></block></list></block></block></script></list></block></script><block s="reportVariadicEquals"><list><l>1</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> #</l></list></block></block></script><block s="reportVariadicEquals"><list><l>4</l><block s="reportListItem"><l>slots</l><block var="input info"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ¶</l></list></block></block></script></list></block><block s="doReport"><block s="reportJoinWords"><list><l>((</l><block var="result"/><l>))</l></list></block></block></script></block-definition><block-definition s="✐ nybble to hex %&apos;nybble&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="nybble"/><l>10</l></list></block><script><block s="doReport"><block var="nybble"/></block></script><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="nybble"/><l>10</l></block><block s="reportUnicode"><l>a</l></block></list></block></block></block></script></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="use case-independent comparison"></custom-block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block s="reportTextAttribute"><l><option>lower case</option></l><block var="small"/></block><block s="reportTextAttribute"><l><option>lower case</option></l><block var="large"/></block></list></block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="small"/><block var="large"/></list></block></block></block></script></block-definition><block-definition s="text %&apos;string&apos; contains %&apos;marker&apos;" type="predicate" category="operators"><comment x="0" y="0" w="218" collapsed="false">Reports True if the first input string contains the second input string, otherwise false.&#xD;&#xD;Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block><l>0</l></list></block></block></script></block-definition></blocks><primitives><block-definition s="unicode of %#1" type="reporter" category="operators" selector="reportUnicode" primitive="reportUnicode"><header></header><code></code><translations></translations><inputs><input type="%s">a</input></inputs></block-definition></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="4949"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="4950"></list></costumes><sounds><list struct="atomic" id="4951"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="4956"><costumes><list struct="atomic" id="4957"></list></costumes><sounds><list struct="atomic" id="4958"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="10"><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><script></script><list></list></block><l><bool>false</bool></l></custom-block></script><script x="20" y="45.00000000000003"><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><script><block s="forward"><l>10</l></block><block s="bubble"><l>Hello!</l></block><block s="doBroadcast"><l>test</l><list></list></block></script><list></list></block><l><bool>false</bool></l></custom-block></script><script x="20" y="134.00000000000006"><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><script><block s="doDeclareVariables"><list><l>step</l></list></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>200</l></block></block><block s="doForever"><script><block s="doWarp"><script><block s="gotoXY"><l>-300</l><l>-170</l></block><block s="clear"></block><block s="down"></block><block s="doFor"><l>i</l><l>1</l><l>200</l><script><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><block var="step"/></list></block><block s="reportDifference"><block s="reportListItem"><block var="i"/><block s="reportAudio"><l><option>samples</option></l></block></block><l>20</l></block></block></script></block><block s="up"></block></script></block></script></block></script><list></list></block><l><bool>false</bool></l></custom-block></script><script x="20" y="442.66666666666697"><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><autolambda><custom-block s="multiline %mlt"><l></l></custom-block></autolambda><list></list></block><l><bool>true</bool></l></custom-block></script><script x="20" y="485.66666666666697"><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><script><block s="gotoXY"><l>0</l><l>0</l></block></script><list></list></block><l><bool>true</bool></l></custom-block></script><script x="20" y="531.6666666666667"><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><script><block s="bounceOffEdge"></block></script><list></list></block><l><bool>true</bool></l></custom-block></script><script x="21" y="574.5"><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><autolambda><custom-block s="to snapblocks %repRing definition? %b"><block s="reifyReporter"><script></script><list></list></block><l><bool>false</bool></l></custom-block></autolambda><list></list></block><l><bool>true</bool></l></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="to snapblocks" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>