<snapdata remixID="14107363"><project name="Photon" app="Snap! 10.1-dev, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAACcZJREFUeF7tnQlsFUUYx/8FWg6LFvFCKHIreCF4V4sKWkFBBBUqCIpXvEVICMZ4JF41aiIxJoiJQUpFigeKN6IQEBBRiYhIRDyCRwWp4VBAQb8uD57Pt29ndmd2ZvZ9m5jXsjPf8f9+fvt2d3ZbsHv37t3gjRUwpEABA2hIeXbboAADyCAYVYABNCo/O2cAmQGjCjCARuVn5wwgM2BUAQbQqPzsnAFkBowqwAAalZ+dM4DMgFEFGECj8rNzBpAZMKoAA2hUfnbOADIDRhVgAI3Kz84ZQGbAqAIMoFH52TkDyAwYVYABNCo/O2cAmQGjCjCAWeRfMqYNOpU0kS5Mcc8BaDFqsvS8fJ7AAGapft0dpWhRWBCKi+Kq70PNy9dJDKAggEXnjcOuDd+i2SWPYMudnX15YQDl/ldiAAUBbH5tDf6YMgLFVd9hy4T2DKAcZ76jGUBBALkDKiIuwwwDKAigqPx8CBZVyhvHAGbRa8O4UjRrIn8S0qRHBZqNniJXgTwfzQDmOQCm02cATVcgz/0zgHkOgOn0GUDTFchz/wxgngNgOn0G0HQF8tw/A5jnAJhOnwE0XYE8988A5jkAptNnAE1XIM/9M4B5DoDp9J0H8NdtwBcbgPWbga1/AUWNgINbAN0OBLq2Mi2vvP/b5gKL1vvPK2sLPNFP3q6tM5wDkP6qyfRVwNSVwKY/g2VtVABc0Bm4qRdwUPPg8SZG9KkBtu6U97xfITD/cvl5Ns1wBsAtO4AJ84GlP4aXr1Uz4NGzgeMPCW9D5cwTp6qz9vFodbbitOQEgI9+BMz4Up0sbYuB6oFAyyJ1NmUsTf4MmLJCZobY2GuPB67vKTbWllFWA1j/J3Dxy8DmHXrkeqAcqOiox7afVZVdz8+HS93QWgDX1QOXztYPx4gewNiT9PshD3HAl8rEFQitBHBtPTAsBvhSxRrSDbjzNL0QxgmfSxBaB2DdNmBArV4Yslmn7070HUrHdtJUwMSfJKWHCpZZfnJiHYCnTQN27lKDwWVHATNXi9uqvhA4qrX4eJGRz60EJi0XGalnzK29gVHH6LGtwqpVAN7wDrDsJxVpeTZqLwJmrQFekDiDVv3dycShN1NB1Tmpq5BFT8Wt3QQMe1VlakCLQmDB5YBMVz23A/BQHzVxmDr0ZkZv86HYmg7Y7wWALruo3sYcB5S3A658Q9zyB5VAsYJrhFG6H0EzvAfw/CrxuHONtLULWgHg6o3AyDlqhM5mZd5wYOw8YEWdmI/yUuDxc8TG+o06+TlgV4QzD7qXfd8ZQKWiowLdkvxoVLScdMy2AsARrwFf/aYjPc/m4cXAyxcDp0wT9xG1Y0TpfhQl3b8+pQ1w90LxmINGRs0pyH6Y/VYAGLVYIok/3AfYtB2oWiIyGohyl0RFR6eL47TSp/oLsXhFRuk4yxfxm2uMcQDn/wCMmxc1DbH51AH613qFDdqO/Hc51/SBQaOy71dx8vHUed6KnyiLLzKjs/FkxDiA494H5sf0TsfT2wL3lAEVM8XACnvIUtHR5w7zbkWKLDkTy8YbFTYnGR8yY40DeHo1sONvmZCjja0dDMz6Suza4JIrgCaN5P2pAJBAUWEnM3oGMEMRHSLnQkbm2uCzA4BjD2YA5RUQn2G8A8YNIElz9XHAmQLXBu8uAwZ1ERczNVJFTtwB5XUPNUNFscI4nlcJjH0v97VBWsZ/1bHy1lXkxADK6x5qhl+xPhwJ0DL8zTu9z4af6XPP7+k/N+xP//c9v+e6ECxybfC6nsB1IVbIhAEwE7hsAFIsT0dcSc3fAQW/AxY19pbMFxd6t8Xov9TvDZ8Z+2jc3n/fs4+u/gdtuWC5/URg5NFBFv6/PwyAdM/6yU/2rd4RAVI+Mj4L/p9mYYoVRvjMOZP6Act/AaZ+7m+NFiXQ4gTZLWxO6dD5/SwbC58FBygWtlhRCpF6nDHI96zBQIcD5D0F2fWzSE/s0Tb+fa9TkR3V3wX5EJyhvuidCXkM/GeIdD+aHbZYYQFM+UyBR79HsZVNgbA5qdQ/3ZbxyzCPLJVbtRxVCNHuFwXA698Glv8cLlJaxX1zL28towh8Mh2y92HA5IpwcemaZRzAuB9Aauh+P3v3WXNtfY8Aqs4KL3sueIKgSXUp1QDa1v1IXeMA6jjM+GEj0/1qBnrvlwm7RQFQxmcQzOm2GEAfZe9dCMxZKyN7uLGi3S/K4TcV2YOLgZfWZI9TBpqgTEVtxfHoaVCs2fZb0QG37QTKa8KELz5Hpvvd0hsYreBJMr8uKAqNSHaitmzsftYcgimQW94FFkd48VBQseLsfqlYHloMvJilCxIMtGawUwnQuZX32fBzCdB+/32ZCFxHFzpRGdoNmKj5wfsg/f32W9EBKTh6FpieXjO93XsGcKH/nwOWDs+vC9IrQQZ1Bb6pB+hEjF5FQp/f/b7PRYRHSv4Tp63dz6oOSMHUrgaqlkrXWNmEti2B2UOUmdtrSORsVr1Xz6LN8FkHIAU0ag6waqOucuS2u/gKoDDEAtSgaOnVcvSKubi38ScDw7vH7VXOnzWH4PSwacn8xj/kEok6+pUhQLuWUa34z6fbax/E9OgBRXFWe+9lnLZvVgJIovWdAfy+PR75ZgwCusTwPum7FgBvrdOf0/kdgfvL9ftR4cFaACm5i17yXj6uc6PnhUvTzjx1+iLb1AWpG+raqOtR93NlsxpAEvGxZepeT5FelDbFAK12adrYTKl0nJjYfsKRTWnrAaSgf9oKXPm6uu+FE08Fhh5pBrx0r5/VAde8GT2OZ/oDPS158bpsNk4AmEqK3u1C36MISNmtcQFwYy81dzhkfQeN/2sXcGqIa6BhHxsNiifO/U4BmBKGLlq/sgaY/TVAr8Hw21o3915CXtkdoEOuCxtdfP5wvZffp78A9duBkqbACYcCg7sB9HC9yB0SF3KlGJ0E0BVxOc5gBRjAYI14hEYFGECN4rLpYAUYwGCNeIRGBRhAjeKy6WAFGMBgjXiERgUYQI3isulgBRjAYI14hEYFGECN4rLpYAUYwGCNeIRGBRhAjeKy6WAFGMBgjfJmRFlZWSy5Llq0aK8fBjAWyd1wwgC6UafERskAJra0biTGALpRp8RGyQAmtrRuJMYAulGnxEbJACa2tG4kxgC6UafERskAJra0biTGALpRp8RGyQAmtrRuJMYAulEnjlKhAnwvWKGYbEpeAQZQXrPEzuBDcGJL60ZiDKAbdUpslAxgYkvrRmIMoBt1SmyUDGBiS+tGYgygG3VKbJQMYGJL60ZiDKAbdUpslAxgYkvrRmIMoBt1SmyUDGBiS+tGYgygG3XiKBUqwIsRFIrJpuQV+AfVgjzVGXC1mQAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Photon"><notes></notes><palette><category name="MQTT" color="143,0,100,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="$cloudOutline MQTT publish to %&apos;broker&apos; topic %&apos;topic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="310" collapsed="false">Publish a message to an MQTT broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. qos (quality of service 0,1 or 2)&#xD;&#xD;2. retain flag (boolean)&#xD;&#xD;3. Buffer mode (boolean).    Default (false) - the payload is published as text&#xD;&#xD;If set to true then payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text.&#xD;&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>qos</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>retain</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>mode</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doIf"><block s="reportNot"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block var="options"/><l><option>json</option></l></block></block></block></block><script><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>list</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportListAttribute"><l><option>json</option></l><block var="payload"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>number</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportJoinWords"><list><block var="payload"/></list></block></block></script><list></list></block></script><list></list></block><block s="doApplyExtension"><l>mqt_pub(broker,topic,payload,options)</l><list><block var="broker"/><block var="topic"/><block var="payload"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT subscribe to %&apos;broker&apos; topic %&apos;topic&apos; $nl on each message run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="239.99999999999977" collapsed="false">Subscribe to a topic on a broker&#xD;&#xD;Make sure you have already run an MQTT connect block before using this one&#xD;&#xD;You should add a script to be run inside he grey ring.&#xD;&#xD;It will be run each time a message is received&#xD;&#xD;If you click on the arrow on the grey ring twice, you can use #1 and #2 inside your script.&#xD;&#xD;#1 will contain the received payload&#xD;&#xD;#2 will contain the received topic name&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;There is only 1 option at present&#xD;1. Buffer mode (boolean) Default (false) - payload is returned as text&#xD;&#xD;If true, payload returned as single column list of values in the range of 0 to 255..  </comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>mode</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_sub(broker,topic,callback,options)</l><list><block var="broker"/><block var="topic"/><block var="callback"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT connect to %&apos;broker&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="416.6666666666666" collapsed="false">Connect to a broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. username (some brokers need this)&#xD;2. password (some brokers need this)&#xD;3. keepalive (default time is 60 seconds but some brokers need a shorter time)&#xD;4. connection callback (ringed set of scripts to be run when connection is made or remade)&#xD;&#xD;Note: The connection callback doesn&apos;&apos;t have to be the 4th option - it just has to be the last (or only) option.&#xD;&#xD;ADVANCED: The brokers offered in the menu are accessed using default ports and  basepaths (if needed).  If accessing other brokers, the complete urls should be formed like this:&#xD;&#xD;siteURL:port/basepath &#xD;e.g mqtt.eclipseprojects.io:443/mqtt&#xD;&#xD;It is possible to have more than one connection to the same broker, for instance, using two different user/pass accounts simultaneously. To do this, add a connection id at the end of the broker:&#xD;&#xD;e.g mqtt.eclipseprojects.io:443/mqtt|1&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>connection status</l><l>callback</l></list></block><block s="doSetVar"><l>connection status</l><l>connecting</l></block><block s="doSetVar"><l>callback</l><l></l></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="options"/></block><l><option>command</option></l></block><script><block s="doSetVar"><l>callback</l><block s="reportListItem"><l><option>last</option></l><block var="options"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="options"/></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>username</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>password</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>keepalive</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_connect(broker,callback,options)</l><list><block var="broker"/><block var="callback"/><block var="options"/></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connecting</l></list></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connected</l></list></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="connection status"/></list></block></script><list></list></block></script></block-definition><block-definition s="%&apos;#1&apos;" type="predicate" category="operators" primitive="reportVariadicNotEquals"><header></header><code></code><translations></translations><inputs><input type="%mult%s" separator="≠" collapse="all ≠" initial="1"></input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>reportVariadicNotEquals</l></block></script></block-definition><block-definition s="JavaScript enabled?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>var</l></list></block><block s="doSetVar"><l>var</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doRun"><block s="reportJSFunction"><list><l></l></list><l></l></block><list></list></block></script><list></list></block><l></l><block s="reifyScript"><script><block s="doSetVar"><l>var</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><custom-block s="safely try %cs then if %upvar %cs"><script></script><l>error</l><script></script></custom-block><block s="doReport"><block var="var"/></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;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><custom-block s="let %upvar be %s"><l>reset</l><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>var oldHandleError = proc.handleError,&#xD;    oldCatchingErrors = proc.isCatchingErrors;&#xD;&#xD;return function(){&#xD; proc.handleError = oldHandleError;&#xD; proc.isCatchingErrors = oldCatchingErrors;&#xD;}</l></block><list></list></block></custom-block><block s="doCallCC"><block s="reifyScript"><script><block s="doRun"><block s="reportJSFunction"><list><l>reset</l><l>action</l><l>handler</l><l>proc</l></list><l>proc.isCatchingErrors = true;&#xD;proc.handleError = function(error, element){&#xD; reset();&#xD; proc.context = handler;&#xD; proc.context.variables.setVar("error", error);&#xD;}&#xD;&#xD;try{&#xD; proc.evaluate(action, new List(), true);&#xD;}&#xD;catch(e){&#xD; proc.handleError(e, null);&#xD;} </l></block><list><block var="reset"/><block var="action"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doRun"><block var="handler"/><list></list></block><block s="doRun"><block var="return"/><list></list></block></script><list></list></block><list></list></block></script><list></list></block></list></block></script><list><l>return</l></list></block></block><block s="doRun"><block var="reset"/><list></list></block></script></block-definition><block-definition s="cloud var %&apos;s&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="s"/><l>_id_</l><custom-block s="cloud ID"></custom-block></list></block><l>.txt</l></list></block></block><l></l></block></block></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="cloud ID" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block var="cloudid"/></block></script></block-definition><block-definition s="set cloud var %&apos;cloud&apos; to %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=write&amp;content=</l><block var="value"/><l>&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="cloud"/><l>_id_</l><custom-block s="cloud ID"></custom-block></list></block><l>.txt</l></list></block></block></custom-block></script></block-definition><block-definition s="ignore %&apos;s&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cloud ID %&apos;s&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="evaluate"><block s="reifyReporter"><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><l>cloudid</l></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script><list></list></block><list></list></block></block><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block s="reportNewList"><list><l>cloudid</l></list></block><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><block var="_item"/></list></block></script></block></script></block></script><list></list></block><block s="doSetVar"><l>cloudid</l><block var="s"/></block></script></block-definition><block-definition s="$nl multiline %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="173.1826171875" collapsed="false">Reports a string. Multiline-text-compatible.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="ask %&apos;question&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doAsk"><block var="question"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="notify %&apos;message&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">Alert!</input></inputs><script><block s="doTellTo"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyScript"><script><block s="doAsk"><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="message"/></list></block><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><l>Ok</l></list></block></list></block></list></block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="prompt %&apos;title&apos; options %&apos;options&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">choose!</input><input type="%mult%s"></input></inputs><script><block s="doReport"><custom-block s="ask %s"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="title"/><l></l></list></block><block var="options"/><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block><block var="options"/></list></block></block></custom-block></block></script></block-definition><block-definition s="submenu %&apos;title&apos; items %&apos;items&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">title</input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="title"/><l></l></list></block><l>menu</l><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block></block><block var="items"/></list></block></block></script></block-definition><block-definition s="divider" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="menu item icon %&apos;icon&apos; label %&apos;text&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s">option</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="icon"/><l></l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="text"/><l></l></list></block><block var="value"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block><block var="text"/><block s="reportNewList"><list><block var="text"/><block var="value"/></list></block></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="text"/><l></l></list></block><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block var="text"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu item speech ballon %&apos;orientation&apos; message %&apos;message&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">left<options>left&#xD;right</options></input><input type="%s">hey!</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="orientation"/><l>right</l></list></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="orientation"/><l>right</l></list></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu examples" type="command" category="sensing"><comment x="0" y="0" w="212" collapsed="false">open my definition to look at examples how to use the menu blocks</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="10" y="79.00000000000001"><block s="doAsk"><l>what&apos;s your name?</l></block></script><script x="10" y="118.00000000000001"><custom-block s="ask %s"><l>what&apos;s your name?</l></custom-block></script><script x="10" y="151"><custom-block s="notify %s"><l>Alert!</l></custom-block></script><script x="10" y="190"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><l>baz</l></list></custom-block></script><script x="10" y="223"><custom-block s="prompt %s options %mult%s"><l>choose!</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></script><script x="10" y="261"><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><l>quux</l><l>garply</l></list></custom-block></script><script x="10" y="294"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><custom-block s="submenu %s items %mult%s"><l></l><list><l>fred</l><l>test</l></list></custom-block><custom-block s="divider"></custom-block><l>quux</l><l>garply</l></list></custom-block><l>baz</l></list></custom-block></script><script x="10" y="377.8333333333334"><custom-block s="menu item icon %s label %s value %s"><l></l><l>option</l><l></l></custom-block></script><script x="10" y="411.8333333333334"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item icon %s label %s value %s"><l>monkey</l><l>monkey</l><block s="reportObject"><l>monkey</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l>Octo</l><l></l><l>42</l></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>choice</l><l>yay!</l></custom-block><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><custom-block s="menu item icon %s label %s value %s"><l>Alonzo</l><l>Alonzo</l><block s="reportObject"><l>Alonzo</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>foo</l><l>bar</l></custom-block></list></custom-block></list></custom-block></script><script x="10" y="565.8333333333335"><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block></script><script x="10" y="599.8333333333335"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>wassup?</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><block s="reportObject"><l>Alonzo</l></block><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>so?</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></list></custom-block></script></scripts></block-definition><block-definition s="get from clipboard" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Gets the latest item from your clipboard.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var done = false, item = null&#xD;if("clipboard" in navigator) {&#xD;  navigator.clipboard.readText(item).then(x =&gt; {item = x; done = true})&#xD;} else {alert("I can&apos;t retrieve item from clipboard."); done = true}&#xD;&#xD;return new List([function() {return done}, function() {return item}])</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="Add %&apos;item&apos; to clipboard" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Add a text to your clipboard</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>item</l></list><l>if("clipboard" in navigator) {&#xD;  navigator.clipboard.writeText(item)&#xD;} else {alert("I can&apos;t send " + item + " to clipboard.")}</l></block><list><block var="item"/></list></block></script></block-definition><block-definition s="" type="reporter" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doStopThis"><l><option>this script</option></l></block></script></block-definition><block-definition s="%&apos;1&apos;  %&apos;2&apos;" type="predicate" category="variables"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="2"/><l> </l></block></block><script><block s="doIf"><block s="reportListContainsItem"><block var="1"/><block s="reportListItem"><block var="i"/><block s="reportTextSplit"><block var="2"/><l> </l></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;1&apos;  %&apos;2&apos; (2)" type="predicate" category="variables"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="2"/></block><script><block s="doIf"><block s="reportListContainsItem"><block var="1"/><block s="reportListItem"><block var="i"/><block var="2"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;1&apos;  %&apos;2&apos; (3)" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l></l></list></block><block s="doSetVar"><l></l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="1"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><block var="1"/></block><block var="2"/></list></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="1"/></block><block var=""/></block></script><list></list></block></script></block></script></block><block s="doReport"><block var=""/></block></script></block-definition><block-definition s="value of %&apos;name&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return localStorage.getItem("</l><block var="name"/><l>");</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="clear storage" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>localStorage.clear();</l></block><list></list></block></script></block-definition><block-definition s="delete value %&apos;name&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>localStorage.removeItem("</l><block var="name"/><l>");</l></list></block></block><list></list></block></script></block-definition><block-definition s="save %&apos;name&apos; with value %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>localStorage.setItem("</l><block var="name"/><l>", "</l><block var="value"/><l>")</l></list></block></block><list></list></block></script></block-definition><block-definition s="is socket.io installed" type="predicate" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return typeof io === "function"</l></block><list></list></block></block></script></block-definition><block-definition s="init" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><script><custom-block s="install socket.io"><comment w="90" collapsed="true">Install it first!</comment></custom-block><custom-block s="connect to socket"><comment w="167" collapsed="true">Connect to the socket(required too)</comment></custom-block></script><l>error</l><script><block s="doSayFor"><block var="error"/><l>2</l></block><block s="bubble"><l>Please double click the green flag.Will reboot in 1 second.</l></block><block s="fork"><block s="reifyScript"><script><block s="doWait"><l>1</l></block><block s="doBroadcast"><l><option>__shout__go__</option></l><list></list></block></script><list></list></block><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><comment w="90" collapsed="true">Delete this and it will throw an error!</comment></custom-block></script><scripts><script x="66" y="264.1666666666668"><block s="fork"><block s="reifyScript"><script><block s="doForever"><script><block s="doRun"><block s="reportJSFunction"><list><l>event</l></list><l>socket.emit("*", "tick");</l></block><list><l>tick</l></list></block></script></block></script><list></list></block><list></list></block></script></scripts></block-definition><block-definition s="connect to socket" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><custom-block s="is socket.io installed"></custom-block><script><block s="doRun"><block s="reportJSFunction"><list><l>socketURL</l></list><l>window.socket = io(socketURL);</l></block><list><l>https://SnapMeshes.18001767679.repl.co</l></list></block></script><list></list></block></script></block-definition><block-definition s="install socket.io" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>if(typeof io !== "function") {&#xD;const ioScript = document.createElement(&apos;script&apos;);&#xD;ioScript.src = &apos;https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.1/socket.io.js&apos;;&#xD;document.head.appendChild(ioScript);&#xD;console.log(&apos;Socket.io was installed.&apos;);&#xD;}</l></block><list></list></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><comment x="0" y="0" w="183.33333333333334" collapsed="false">LET (FOO) BE (5)&#xD;is equivalent to&#xD;SCRIPT VARIABLES (FOO)&#xD;SET (FOO) TO (5)</comment><header></header><code></code><translations>pt:cria a variável de guião _ com valor _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="socket id %&apos;id&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>k</l></list><l>window.sockid=k</l></block><list><block var="id"/></list></block></script></block-definition><block-definition s="when event occurs do %&apos;data&apos; %&apos;callback&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Executes a callback whenever a event is smitted by the server. Turns JSON/object data to a 2d list. Do not rename the upvar or you will not be able to use the event data.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>event</l><l>callback</l><l>proc</l></list><l>socket.on(event, function(eventData) {&#xD;if(eventData.type!==sockid){return}&#xD;eventData=eventData.content&#xD;if(typeof eventData === "object") {&#xD;eventData = [];&#xD;Object.keys(eventData).forEach(item =&gt; {&#xD;eventData.push([item, eventData[item]])&#xD;});&#xD;}&#xD;proc.homeContext.variables.setVar(&apos;data&apos;,eventData);&#xD;proc.evaluate(callback, new List(), true);&#xD;});</l></block><list><l>*</l><block var="callback"/></list></block></script></block-definition><block-definition s="emit event with data %&apos;data&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><custom-block s="is socket.io installed"></custom-block><script><block s="doRun"><block s="reportJSFunction"><list><l>event</l></list><l>socket.emit("*", {type:sockid,content:event});</l></block><list><block var="data"/></list></block></script><list></list></block></script></block-definition><block-definition s=" %&apos;1&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>url</l></list><l>var img = new Image(45, 45);&#xD;img.src = url;&#xD;return new Costume(img);</l></block><list><block var="1"/></list></block></block></script></block-definition></blocks><primitives></primitives><stage name="" 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="1331"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="1332"></list></costumes><sounds><list struct="atomic" id="1333"></list></sounds><variables></variables><blocks></blocks><scripts><script x="10" y="23"><block s="receiveGo"></block><block s="doSetVar"><l>connected</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><list><l></l></list></custom-block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>photon_snapvm</l><block s="reifyScript"><script><block s="doSetVar"><l>tracking</l><block var="#1"/></block><block s="doBroadcast"><l>change</l><list></list></block></script><list><l>#1</l></list></block><list><l></l></list></custom-block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>gate.photon_snapvm</l><block s="reifyScript"><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>photon_snapvm</l><block var="tracking"/><list><l></l></list></custom-block></script><list><l>#1</l></list></block><list><l></l></list></custom-block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>gate.photon_snapvm</l><l>Request</l><list><l></l></list></custom-block><block s="doSetVar"><l>connected</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="tracking"/><l></l></list></block></block><script><block s="doSetVar"><l>tracking</l><block s="reportTextSplit"><block var="tracking"/><l><option>json</option></l></block></block></script><list></list></block><block s="doSetVar"><l>iteration</l><block s="reportListIndex"><block var="status"/><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block var="tracking"/></block></block></block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block var="tracking"/></block></block><block var="status"/></block></block><script><block s="doSetVar"><l>tracking</l><block s="reportConcatenatedLists"><list><block var="tracking"/><block s="reportNewList"><list><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block var="status"/></list></block><block s="reportNewList"><list><block s="reportDate"><l><option>hour</option></l></block><block s="reportDate"><l><option>minute</option></l></block><block s="reportDate"><l><option>date</option></l></block><block s="reportDate"><l><option>month</option></l></block><block s="reportDate"><l><option>year</option></l></block></list></block></list></block></list></block></list></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>photon_snapvm</l><block var="tracking"/><list></list></custom-block></script><list></list></block><block s="doForever"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="Ξ"/><l></l></list></block></block><script><block s="doSetVar"><l>Ξ</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block></block></block><custom-block s="save %s with value %s"><l>glyphic</l><block var="Ξ"/></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block></block><block var="glyphs"/></list></block></block><script><block s="doReplaceInList"><l>3</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block><block var="glyphs"/></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>photon_snapvm</l><block var="tracking"/><list><l></l></list></custom-block><custom-block s="save %s with value %s"><l>glyphs</l><block var="glyphs"/></custom-block></script><list></list></block></script></block></script><script x="248.0000000000001" y="38.16666666666674"><block s="reportIsA"><block s="reportURL"><l>snap.berkeley.edu</l></block><l><option>text</option></l></block></script><script x="451.0000000000001" y="367.41666666666674"><block s="receiveMessage"><l>send</l><list></list></block><block s="doReplaceInList"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="null"/><l><option>csv</option></l></block></block></block></block><block s="doDeclareVariables"><list><l>#</l></list></block><block s="doSetVar"><l>#</l><block s="reportListIndex"><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block var="null"/><l><option>csv</option></l></block></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block var="tracking"/></block></block><l><option>csv</option></l></block></block></block></block><block s="doReplaceInList"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="#"/><block var="tracking"/></block><l><option>csv</option></l></block></block><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="#"/><block var="tracking"/></block><l><option>csv</option></l></block></block></list></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>photon_snapvm</l><block var="tracking"/><list><l></l></list></custom-block></script><script x="513.0000000000001" y="10"><block s="receiveGo"></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="address"/><l></l></list></block><script><block s="doSetVar"><l>address</l><block s="reportJoinWords"><list><l>X</l><block s="reportJoinWords"><list><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block><block s="reportRandom"><l>1</l><l>9</l></block></list></block></list></block></block><block s="doSetVar"><l>status</l><block s="reportJoinWords"><list><block var="address"/><l>,</l><block var="Ξ"/><l>,</l><block var="glyphs"/></list></block></block><custom-block s="save %s with value %s"><l>status</l><block var="status"/></custom-block><custom-block s="save %s with value %s"><l>sddress</l><block var="address"/></custom-block><custom-block s="save %s with value %s"><l>glyphic</l><block var="Ξ"/></custom-block><custom-block s="save %s with value %s"><l>glyphs</l><block var="glyphs"/></custom-block></script><list></list></block></script><script x="899.860546875" y="314.16666666666674"><block s="receiveGo"></block><block s="doSetVar"><l>status</l><custom-block s="value of %s"><l>status</l></custom-block></block><block s="doSetVar"><l>address</l><custom-block s="value of %s"><l>address</l></custom-block></block><block s="doSetVar"><l>Ξ</l><custom-block s="value of %s"><l>glyphic</l></custom-block></block><block s="doSetVar"><l>glyphs</l><custom-block s="value of %s"><l>glyphs</l></custom-block></block></script><script x="966.012890625" y="531.1666666666667"><block s="receiveGo"></block><custom-block s="init"></custom-block><custom-block s="socket id %s"><l>snapvm/photon</l></custom-block><custom-block s="when event occurs do %upvar %cs"><l>data</l><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><l>connect</l></list></block><script><block s="doAsk"><block s="reportNewList"><list><l>A Snap! project requests your access</l><block s="reportNewList"><list><block s="reportNewList"><list><l>Sign</l><l>Sign</l></list></block><block s="reportNewList"><list><l>Cancel</l><l>Cancel</l></list></block></list></block></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><l>Sign</l></list></block><script><custom-block s="emit event with data %s"><l>signed</l></custom-block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l>withdraw</l></list></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l><option>number</option></l></block></list></block><script><block s="doReplaceInList"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block></block><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block></list></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>photon_snapvm</l><block var="tracking"/><list><l></l></list></custom-block><custom-block s="emit event with data %s"><block s="reportJoinWords"><list><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l> grid</l></list></block></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l>buy</l></list></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l><option>number</option></l></block></list></block><script><block s="doReplaceInList"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="iteration"/><block var="tracking"/></block><l><option>csv</option></l></block></block><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>photon_snapvm</l><block var="tracking"/><list><l></l></list></custom-block><custom-block s="emit event with data %s"><block s="reportJoinWords"><list><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l> grid</l></list></block></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l>obtain glyph</l></list></block></list></block><script><block s="doDeclareVariables"><list><l>asset</l><l>name</l><l>minter</l></list></block><block s="doSetVar"><l>asset</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l> </l></block></block></block><block s="doSetVar"><l>minter</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l> </l></block></block></block><block s="doSetVar"><l>minter</l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="data"/><l><option>csv</option></l></block></block><l> </l></block></block></block><block s="doSetVar"><l>glyphs</l><block s="reportJoinWords"><list><block var="glyphs"/><l>	</l><block var="asset"/><l> </l><block var="name"/><l> </l><block var="minter"/></list></block></block></script><list></list></block></script></custom-block></script><script x="666.82109375" y="816.1666666666669"><block s="doSetVar"><l></l><l>0</l></block></script><script x="713.012890625" y="1310.0833333333337"><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><l></l></list></block><script></script><list></list></block></script></scripts><sprites select="0"><sprite name="Send" idx="1" x="-264" y="-3" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="2153"><costumes><list id="2154"><item><ref mediaID="Send_cst_Send"></ref></item></list></costumes><sounds><list struct="atomic" id="2155"></list></sounds><blocks></blocks><variables></variables><scripts><script x="13.3271484375" y="10"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doDeclareVariables"><list><l>amount</l><l>sender</l><l>recipient</l></list></block><block s="doSetVar"><l>sender</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="address"/><l></l></list></block><custom-block s=""></custom-block><block var="address"/></block></block><block s="doAsk"><l>Paste the reciptient address.</l></block><block s="doIf"><block s="reportListContainsItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block var="tracking"/></block></block><l><option>csv</option></l></block></block><block s="getLastAnswer"></block></block><script><block s="doSetVar"><l>recipient</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>How many Glyphic do you want to send?</l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="Ξ"/><l>0</l></list></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><block var="Ξ"/></list></block><block s="reportVariadicLessThan"><list><block s="getLastAnswer"></block><block var="Ξ"/></list></block></list></block><script><block s="doSetVar"><l>amount</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>null</l><block s="reportJoinWords"><list><block var="amount"/><l>,</l><block var="sender"/><l>,</l><block var="recipient"/></list></block></block><block s="doBroadcastAndWait"><l>send</l><list></list></block><block s="doSetVar"><l>null</l><l></l></block></script><list></list></block></script><list></list></block></script><list></list></block></script></scripts></sprite><sprite name="Recieve" idx="2" x="-77.5" y="37.49999999999997" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="2266"><costumes><list id="2267"><item><ref mediaID="Recieve_cst_Recieve"></ref></item></list></costumes><sounds><list struct="atomic" id="2268"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10" y="46.166666666666686"><block s="receiveInteraction"><l><option>clicked</option></l></block><custom-block s="Add %txt to clipboard"><block var="address"/></custom-block></script></scripts></sprite><sprite name="Glyphs" idx="3" x="-260" y="3" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="2276"><costumes><list id="2277"><item><ref mediaID="Glyphs_cst__"></ref></item></list></costumes><sounds><list struct="atomic" id="2278"></list></sounds><blocks></blocks><variables></variables><scripts><script x="78.2646484375" y="48.166666666666686"><block s="receiveConditionEvent"><block s="reportTouchingObject"><l><option>mouse-pointer</option></l></block></block><block s="doSayFor"><l>Glyphs</l><l>2</l></block></script><script x="324.2646484375" y="39.166666666666686"><block s="receiveGo"></block></script><script x="430.2646484375" y="89.16666666666669"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doDeclareVariables"><list><l>glyphs data</l></list></block><block s="doSetVar"><l>glyphs data</l><block s="reportNewList"><list><l>glyphs</l></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="glyphs"/><l><option>tab</option></l></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportNewList"><list><custom-block s=" %s"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block s="reportTextSplit"><block var="glyphs"/><l><option>tab</option></l></block></block><l> </l></block></block></custom-block><block s="reportJoinWords"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block s="reportTextSplit"><block var="glyphs"/><l><option>tab</option></l></block></block><l> </l></block></block><l> by </l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block s="reportTextSplit"><block var="glyphs"/><l><option>tab</option></l></block></block><l> </l></block></block></list></block></list></block><block s="reportListItem"><block var="i"/><block s="reportTextSplit"><block var="glyphs"/><l><option>tab</option></l></block></block></list></block><block var="glyphs data"/></block></script></block><block s="doAsk"><block var="glyphs data"/></block></script></scripts></sprite><sprite name="Txs" idx="4" x="-260" y="45" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="2380"><costumes><list id="2381"><item><ref mediaID="Txs_cst__"></ref></item></list></costumes><sounds><list struct="atomic" id="2382"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveConditionEvent"><block s="reportTouchingObject"><l><option>mouse-pointer</option></l></block></block><block s="doSayFor"><l>Txs</l><l>2</l></block></script></scripts></sprite><watcher var="tracking" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="address" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="status" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="iteration" style="normal" x="10" y="73.00000599999998" color="243,118,29" hidden="true"/><watcher var="Ξ" style="large" x="206" y="62.00000799999998" color="243,118,29"/><watcher var="glyphs" style="normal" x="10" y="94.00000799999998" color="243,118,29" hidden="true"/><watcher var="null" style="normal" x="10" y="115.00000999999997" color="243,118,29" hidden="true"/><watcher var="connected" style="normal" x="10" y="136.00001199999997" color="243,118,29" hidden="true"/><watcher var="activated" style="normal" x="0" y="5.000013999999965" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="tracking"><l></l></variable><variable name="address"><l></l></variable><variable name="status"><l>X19891258785689134523,0,</l></variable><variable name="iteration"><l>0</l></variable><variable name="Ξ"><l>0</l></variable><variable name="glyphs"><l></l></variable><variable name="null"><l></l></variable><variable name="connected"><bool>true</bool></variable><variable name="activated"><bool>false</bool></variable></variables></scene></scenes></project><media name="Photon" app="Snap! 10.1-dev, https://snap.berkeley.edu" version="2"><costume name="Send" center-x="54.5" center-y="112.5" image="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSBtZWV0IiB2aWV3Qm94PSI0MjYuNSAyMzQuNSAyOTYgMTc2IiB3aWR0aD0iMjk2IiBoZWlnaHQ9IjE3NiI+PGVsbGlwc2Ugc3Ryb2tlPSJyZ2IoMjU1LDI1NSwyNTUpIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9InJnYig1MSwxNjAsMjU1KSIgcHJvdG90eXBlPSJWZWN0b3JFbGxpcHNlIiBjeD0iNjYwIiBjeT0iMzQ1IiByeD0iNjEiIHJ5PSI2NCIvPjxsaW5lIHN0cm9rZT0icmdiKDI1NSwyNTUsMjU1KSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJub25lIiBwcm90b3R5cGU9IlZlY3RvckxpbmUiIHgxPSI0NTIiIHkxPSIyOTUiIHgyPSI1MTYiIHkyPSIzOTIiLz48bGluZSBzdHJva2U9InJnYigyNTUsMjU1LDI1NSkiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0ibm9uZSIgcHJvdG90eXBlPSJWZWN0b3JMaW5lIiB4MT0iNDU3IiB5MT0iMjgzIiB4Mj0iNDI4IiB5Mj0iMjM2Ii8+PGxpbmUgc3Ryb2tlPSJyZ2IoMjU1LDI1NSwyNTUpIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9Im5vbmUiIHByb3RvdHlwZT0iVmVjdG9yTGluZSIgeDE9IjQ2MCIgeTE9IjI5OSIgeDI9IjQ0NCIgeTI9IjMzOCIvPjxsaW5lIHN0cm9rZT0icmdiKDI1NSwyNTUsMjU1KSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJub25lIiBwcm90b3R5cGU9IlZlY3RvckxpbmUiIHgxPSI2MTkiIHkxPSIzNDYiIHgyPSI2OTQiIHkyPSIzNDkiLz48bGluZSBzdHJva2U9InJnYigyNTUsMjU1LDI1NSkiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0ibm9uZSIgcHJvdG90eXBlPSJWZWN0b3JMaW5lIiB4MT0iNjcxIiB5MT0iMzA3IiB4Mj0iNjk2IiB5Mj0iMzQ3Ii8+PGxpbmUgc3Ryb2tlPSJyZ2IoMjU1LDI1NSwyNTUpIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9Im5vbmUiIHByb3RvdHlwZT0iVmVjdG9yTGluZSIgeDE9IjY4MSIgeTE9IjM3NyIgeDI9IjY5NiIgeTI9IjM0NyIvPjwvc3ZnPg==" mediaID="Send_cst_Send"/><costume name="Recieve" center-x="-88.5" center-y="28.5" image="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSBtZWV0IiB2aWV3Qm94PSI1OTcuNSAyNzkuNSAxMjUgMTMxIiB3aWR0aD0iMTI1IiBoZWlnaHQ9IjEzMSI+PGVsbGlwc2Ugc3Ryb2tlPSJyZ2IoMjU1LDI1NSwyNTUpIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9InJnYig1MSwxNjAsMjU1KSIgcHJvdG90eXBlPSJWZWN0b3JFbGxpcHNlIiBjeD0iNjYwIiBjeT0iMzQ1IiByeD0iNjEiIHJ5PSI2NCIvPjxsaW5lIHN0cm9rZT0icmdiKDI1NSwyNTUsMjU1KSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJub25lIiBwcm90b3R5cGU9IlZlY3RvckxpbmUiIHgxPSI2NTYiIHkxPSIzMTciIHgyPSI2NTMiIHkyPSIzNjYiLz48bGluZSBzdHJva2U9InJnYigyNTUsMjU1LDI1NSkiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0ibm9uZSIgcHJvdG90eXBlPSJWZWN0b3JMaW5lIiB4MT0iNjUyIiB5MT0iMzY2IiB4Mj0iNjQxIiB5Mj0iMzQ2Ii8+PGxpbmUgc3Ryb2tlPSJyZ2IoMjU1LDI1NSwyNTUpIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9Im5vbmUiIHByb3RvdHlwZT0iVmVjdG9yTGluZSIgeDE9IjY1NiIgeTE9IjM2MCIgeDI9IjY2OSIgeTI9IjM0NyIvPjxsaW5lIHN0cm9rZT0icmdiKDI1NSwyNTUsMjU1KSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJub25lIiBwcm90b3R5cGU9IlZlY3RvckxpbmUiIHgxPSI2MjYiIHkxPSIzNjQiIHgyPSI2MjYiIHkyPSIzNzkiLz48bGluZSBzdHJva2U9InJnYigyNTUsMjU1LDI1NSkiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0ibm9uZSIgcHJvdG90eXBlPSJWZWN0b3JMaW5lIiB4MT0iNjMwIiB5MT0iMzc5IiB4Mj0iNjgzIiB5Mj0iMzc2Ii8+PGxpbmUgc3Ryb2tlPSJyZ2IoMjU1LDI1NSwyNTUpIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9Im5vbmUiIHByb3RvdHlwZT0iVmVjdG9yTGluZSIgeDE9IjY4MyIgeTE9IjM3NSIgeDI9IjY4NSIgeTI9IjM2MCIvPjwvc3ZnPg==" mediaID="Recieve_cst_Recieve"/><costume name="_" center-x="-410" center-y="-138" image="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSBtZWV0IiB2aWV3Qm94PSI2NjcuNSAyNTkuNSA4NSA0MSIgd2lkdGg9Ijg1IiBoZWlnaHQ9IjQxIj48cmVjdCBzdHJva2U9InJnYigyNTUsMjU1LDI1NSkiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0icmdiKDU4LDU4LDU4KSIgcHJvdG90eXBlPSJWZWN0b3JSZWN0YW5nbGUiIHdpZHRoPSI4MiIgaGVpZ2h0PSIzOCIgeD0iNjY5IiB5PSIyNjEiLz48L3N2Zz4=" mediaID="Glyphs_cst__"/><costume name="_" center-x="-410" center-y="-138" image="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSBtZWV0IiB2aWV3Qm94PSI2NjcuNSAyNTkuNSA4NSA0MSIgd2lkdGg9Ijg1IiBoZWlnaHQ9IjQxIj48cmVjdCBzdHJva2U9InJnYigyNTUsMjU1LDI1NSkiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0icmdiKDU4LDU4LDU4KSIgcHJvdG90eXBlPSJWZWN0b3JSZWN0YW5nbGUiIHdpZHRoPSI4MiIgaGVpZ2h0PSIzOCIgeD0iNjY5IiB5PSIyNjEiLz48L3N2Zz4=" mediaID="Txs_cst__"/></media></snapdata>