<snapdata remixID="12749225"><project name="cloud-clicker" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="cloud-clicker"><notes></notes><palette><category name="MQTT" color="143,0,100,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><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="$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="200" 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;2. retain flag (boolean)&#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></list></block></block></block><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><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. Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string</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 unsubscribe from %&apos;broker&apos; topic %&apos;topic&apos;" type="command" category="MQTT"><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></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="doApplyExtension"><l>mqt_unsub(broker,topic)</l><list><block var="broker"/><block var="topic"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT disconnect from %&apos;broker&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">all<options>all&#xD;broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></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="doApplyExtension"><l>mqt_disconnect(broker)</l><list><block var="broker"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT response %&apos;broker&apos; topic %&apos;topic&apos; $nl reply %&apos;reply&apos; $nl $options-1-192-192-192 %&apos;$options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="178" collapsed="false">There is only 1 option at present&#xD;1. Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string</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="%repRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>callbackTopic</l><l>error</l></list></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"><block var="broker"/><block var="topic"/><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><l>/@</l><block var="received topic"/></list></block><l>0</l></list></block><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list><block var="received payload"/><block var="received topic"/></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list></list></block></block></script><list></list></block><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doSetVar"><l>callbackTopic</l><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block var="received topic"/><l>@</l></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="callbackTopic"/><block var="resp"/><list><l></l></list></custom-block></script><list></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="$options"/></block></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl on response run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="193" collapsed="false">The options are not required but can be filled if needed.&#xD;&#xD;1. Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string&#xD;&#xD;2. Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.</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="%s">name2</input><input type="%mlt">hello</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>error</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>2</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></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"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list><block var="received payload"/><block var="received topic"/></list></block></script><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list></list></block></script><list></list></block><block var="error"/></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT example response reporter payload %&apos;payload&apos; topic %&apos;topic&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="90" collapsed="false">This is a simple echo example.&#xD;Topic can be used to filter the response.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">hello</input><input type="%txt">name</input></inputs><script><block s="doReport"><block var="payload"/></block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="343" collapsed="false">The response topic should be a unique value for each call e.g. use timer&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1.  Timeout value - default is 3 seconds&#xD;&#xD;2.  Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string&#xD;&#xD;3.  Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.</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="%s">name2</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>semaphore</l><l>timer0</l><l>timeout</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>semaphore</l><l>0</l></block><block s="doSetVar"><l>timeout</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="options"/></block><l><option>number</option></l></block><block s="reportListItem"><l>1</l><block var="options"/></block><l>3</l></block></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>3</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSetVar"><l>resp</l><l>timeout</l></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"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block var="received payload"/></block><block s="doSetVar"><l>semaphore</l><l>1</l></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>2</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l></list></custom-block><block s="doSetVar"><l>timer0</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doWaitUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="semaphore"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="timer0"/></block><block s="reportVariadicProduct"><list><block var="timeout"/><l>1000</l></list></block></list></block></list></block></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block></custom-block><block s="doReport"><block var="resp"/></block></script></block-definition><block-definition s="MQTT Extension Examples" type="command" category="MQTT"><comment x="0" y="0" w="277" collapsed="false">Open (edit) this block to look at examples how to use the MQTT Extension blocks&#xD;&#xD;Background documentation:&#xD;https://github.com/pixavier/mqtt4snap&#xD;&#xD;Last source code version (mqtt.xml and mqttExtension.js):&#xD;https://gitlab.com/cymplecy/Snap/-/tree/master/libraries</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="24.333333333333485" y="371.8666666666658"><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><l>hello</l><list><l></l></list></custom-block></script><script x="22.333333333333485" y="271.1999999999998"><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>broker.emqx.io</l><l>name</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><comment x="525.9999999999995" y="140.20000000000002" w="191" collapsed="false">To execute the examples, single click on blocks, following the corresponding steps.</comment><script x="28" y="1315.0333333333292"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="24.333333333333485" y="1013.2000000000015"><custom-block s="$cloudOutline MQTT response %s topic %s %br reply %repRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name/#</l><block s="reifyReporter"><autolambda><custom-block s="$cloudOutline MQTT example response reporter payload %mlt topic %txt"><block var="payload"/><block var="topic"/></custom-block></autolambda><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="28" y="498.69999999999936"><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>broker.emqx.io</l><l>name1</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>broker.emqx.io</l><l>name2</l><block var="payload"/><list><l></l></list></custom-block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="29.999999999999996" y="633.0333333333344"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><list><l></l><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block><l>2</l></block></script><comment x="487.9999999999996" y="1311.6999999999966" w="224" collapsed="false">Step 2 bis: Send a request (timer acts as idCall) and do not wait for the answer</comment><comment x="487.9999999999996" y="1013.7000000000011" w="220" collapsed="false">Step 1: Activate the responder</comment><comment x="483.666666666667" y="805.3666666666666" w="224" collapsed="false">Step 2 bis: Send a request and do not wait for the answer</comment><comment x="487.0000000000001" y="495.6999999999983" w="220" collapsed="false">Step 1: Activate the responder as a simple subscription</comment><comment x="484.99999999999966" y="374.1999999999991" w="222" collapsed="false">Step 2: Publish a message</comment><comment x="485.99999999999955" y="293.19999999999925" w="222" collapsed="false">Step 1: Subscribe to a topic</comment><comment x="482.9999999999996" y="215.2" w="223" collapsed="false">Step 0: Connect to the broker</comment><comment x="485.00000000000006" y="635.6999999999996" w="220" collapsed="false">Step 2: Send a request and wait the answer.</comment><script x="24.333333333333485" y="209.2"><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><list><l></l></list></custom-block></script><comment x="24.333333333333485" y="152.20000000000013" w="239.99999999999997" collapsed="false">PubSub Hello World!</comment><script x="26.333333333333485" y="1139.1999999999978"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><list><l></l></list></custom-block><l>2</l></block></script><comment x="486.9999999999996" y="1138.6999999999982" w="219.00000000000023" collapsed="false">Step 2: Send a request (timer acts as idCall) and wait for the answer</comment><script x="27" y="803.0333333333335"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block></script><comment x="29" y="736.6999999999998" w="372.0000000000004" collapsed="false">Asynchronous client-server Hello World! with static response topic (name2)</comment><comment x="25.333333333333485" y="935.2000000000012" w="356.99999999999994" collapsed="false">Synchronous client-server Hello World! with dynamic response topic (timer)</comment><comment x="28" y="431.3666666666668" w="361.99999999999994" collapsed="false">Synchronous client-server Hello World! with static response topic (name2)</comment><comment x="27" y="1243.6999999999966" w="352.0000000000003" collapsed="false">Asynchronous client-server Hello World! with dynamic response topic (timer)</comment></scripts></block-definition><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:desa clau: _ amb valor: _ al navegador&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data in browser" type="reporter" category="other"><header></header><code></code><translations>ca:dades desades al navegador&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_getall</l><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra clau: _ del navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_remove(key)</l><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra dades del navegador&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><custom-block s="remove key: %s in browser"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="get value from key: %&apos;key&apos; in browser" type="reporter" category="other"><comment x="0" y="0" w="199.33333333333334" collapsed="false">Reports the value previously stored under&#xD;the input key in the browser&apos;s local storage.&#xD;Reports False if the key is not found.</comment><header></header><code></code><translations>ca:obté valor de clau: _ al navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_get(key)</l><list><block var="key"/></list></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="1" 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="858"><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 id="859"><item><ref mediaID="Stage_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="860"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="cloud" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="865"><costumes><list id="866"><item><ref mediaID="cloud_cst_cloud b"></ref></item></list></costumes><sounds><list struct="atomic" id="867"></list></sounds><blocks></blocks><variables></variables><scripts><script x="14.656054687500045" y="10"><block s="receiveGo"></block><block s="doSayFor"><l>hello welcome to cloud clicker</l><l>2</l></block><block s="doSayFor"><l>here are the rules</l><l>2</l></block><block s="doSayFor"><l>when somebody clicks me everyone’s score goes up</l><l>2</l></block><block s="doSayFor"><l>but when someone new joins the game they reset everyone’s score back to zero</l><l>2</l></block></script><script x="15.656054687500045" y="148.83333333333331"><block s="receiveGo"></block><block s="doSetVar"><l>start saving</l><l>0</l></block><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><list><l></l></list></custom-block><block s="doSetVar"><l>score per second</l><custom-block s="get value from key: %s in browser"><l>score-per-second</l></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="score per second"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doSetVar"><l>score per second</l><l>0</l></block></script><list></list></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>reset</l><l>reset</l><list><l></l></list></custom-block><block s="doForever"><script><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>broker.emqx.io</l><l>Increase</l><block s="reifyScript"><script><block s="doSetVar"><l>score</l><block var="payload"/></block></script><list><l>payload</l></list></block><list><l></l></list></custom-block><block s="doWait"><l>1</l></block></script></block></script><script x="408.65605468750005" y="144.16666666666674"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doChangeVar"><l>score</l><l>1</l></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>Increase</l><block var="score"/><list></list></custom-block></script><script x="477" y="336.83333333333326"><block s="receiveGo"></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>broker.emqx.io</l><l>reset</l><block s="reifyScript"><script><block s="doSetVar"><l>score</l><l>0</l></block></script><list></list></block><list><l></l></list></custom-block></script><script x="10" y="659"><block s="receiveGo"></block><block s="doWait"><l>1</l></block><block s="doForever"><script><block s="doChangeVar"><l>score</l><block var="score per second"/></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>Increase</l><block var="score"/><list></list></custom-block><block s="doWait"><l>1</l></block></script></block></script><script x="470" y="581.8333333333334"><block s="receiveGo"></block><block s="doWait"><l>1</l></block><block s="doWaitUntil"><block s="reportVariadicEquals"><list><block var="start saving"/><l>1</l></list></block></block><block s="doForever"><script><custom-block s="store key: %s value: %s in browser"><l>score-per-second</l><block var="score per second"/></custom-block></script></block></script></scripts></sprite><sprite name="auto clicker" idx="2" x="-212" y="-150.70588235294127" heading="90" scale="0.4" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="140.25,67.32000000000001,0,1" pen="tip" id="1002"><costumes><list id="1003"><item><ref mediaID="auto clicker_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="1004"></list></sounds><blocks></blocks><variables></variables><scripts><script x="13" y="13.166666666666686"><block s="receiveGo"></block><block s="setScale"><l>40</l></block></script><script x="12" y="90.16666666666669"><block s="receiveGo"></block><block s="doForever"><script><block s="doWaitUntil"><block s="reportTouchingObject"><l><option>mouse-pointer</option></l></block></block><block s="doSayFor"><l>auto clicker cost 10 score</l><l>0.5</l></block></script></block></script><script x="96" y="240.16666666666669"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="score"/><l>9</l></list></block><script><block s="doChangeVar"><l>score</l><l>-10</l></block><block s="doChangeVar"><l>score per second</l><l>0.1</l></block></script><list></list></block></script></scripts></sprite><watcher var="score" style="normal" x="10" y="10" color="243,118,29"/><watcher var="score per second" style="normal" x="20" y="20" color="243,118,29" hidden="true"/><watcher var="start saving" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="score"><l>1</l></variable><variable name="score per second"><l>0</l></variable><variable name="start saving"><l>0</l></variable></variables></scene></scenes></project><media name="cloud-clicker" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAFBBJREFUeF7t3b2OZGcRBuCv+RESSASs3RIJBAQE3ADpXgYZOdwD4h64By7BGZ0icgICAkiQ1jsOkEBC9tJoRvayM9ve/plzzlunzuPEgXu6qp6q7nd7Zr27++Xx1XH4hwABAgQIEFhUYCeAF/VWjAABAgQIPAgIYIdAgAABAgQCAgI4gK4kAQIECBAQwG6AAAECBAgEBARwAF1JAgQIECAggN0AAQIECBAICAjgALqSBAgQIEBAALsBAgQIECAQEBDAAXQlCRAgQICAAHYDBAgQIEAgICCAA+hKEiBAgAABAewGCBAgQIBAQEAAB9CVJECAAAECAtgNECBAgACBgIAADqArSYAAAQIEBLAbIECAAAECAQEBHEBXkgABAgQICGA3QIAAAQIEAgICOICuJAECBAgQEMBugAABAgQIBAQEcABdSQIECBAgIIDdAAECBAgQCAgI4AC6kgQIECBAQAC7AQIECBAgEBAQwAF0JQkQIECAgAB2AwQIECBAICAggAPoShIgQIAAAQHsBggQIECAQEBAAAfQlSRAgAABAgLYDRAgQIAAgYCAAA6gK0mAAAECBASwGyBAgAABAgEBARxAV5IAAQIECAhgN0CAAAECBAICAjiAriQBAgQIEBDAboAAAQIECAQEBHAAXUkCBAgQICCA3QABAgQIEAgICOAAupIECBAgQEAAuwECBAgQIBAQEMABdCUJECBAgIAAdgMECBAgQCAgIIAD6EoSIECAAAEB7AYIECBAgEBAQAAH0JUkQIAAAQIC2A0QIECAAIGAgAAOoCtJgAABAgQEsBsgQIAAAQIBAQEcQFeSAAECBAgIYDdAgAABAgQCAgI4gK4kAQIECBAQwG6AAAECBAgEBARwAF1JAgQIECAggN0AAQIECBAICAjgALqSBAgQIEBAALsBAgQIECAQEBDAAXQlCRAgQICAAHYDBAgQIEAgICCAA+hKEiBAgAABAewGCBAgQIBAQEAAB9CVJECAAAECAtgNECBAgACBgIAADqArSYAAAQIEBLAbIECAAAECAQEBHEBXkgABAgQICGA3QIAAAQIEAgICOICuJAECBAgQEMBugAABAgQIBAQEcABdSQIECBAgIIDdAAECBAgQCAgI4AC6kgQIECBAQAC7AQIECBAgEBAQwAF0JQkQIECAgAB2AwQIECBAICAggAPoShIgQIAAAQHsBggQIECAQEBAAAfQlSRAgAABAgLYDRAgQIAAgYCAAA6gK0mAAAECBASwGyBAgAABAgEBARxAV5IAAQIECAhgN0CAAAECBAICAjiAriQBAgQIEBDAboAAAQIECAQEBHAAXUkCBAgQICCA3QABAgQIEAgICOAAupIECBAgQEAAuwECBAgQIBAQEMABdCUJECBAgIAAdgMECBAgQCAgIIAD6EoSIECAAAEB7AYIECBAgEBAQAAH0JUkQIAAAQIC2A0QIECAAIGAgAAOoCtJgAABAgQEsBsgQIAAAQIBAQEcQFeSAAECBAgIYDdAgAABAgQCAgI4gK4kAQIECBAQwG6AAAECBAgEBARwAF1JAgQIECAggN0AAQIECBAICAjgALqSBAgQIEBAALsBAgQIECAQEBDAAXQlCRAgQICAAHYDBAgQIEAgICCAA+hKEiBAgAABAewGCBAgQIBAQEAAB9CVJECAAAECAtgNECBAgACBgIAADqArSYAAAQIEBLAbIECAAAECAQEBHEBXkgABAgQICGA3QIAAAQIEAgICOICuJAECBAgQEMBugAABAgQIBAQEcABdSQIECBAgIIDdAAECBAgQCAgI4AC6kgQIECBAQAC7AQIECBAgEBAQwAF0JQkQIECAgAB2AwQIECBAICAggAPoShIgQIAAAQHsBggQIECAQEBAAAfQlSRAgAABAgLYDRAgQIAAgYCAAA6gK0mAAAECBASwGyBAgAABAgEBARxAV5IAAQIECAhgN0CAAAECBAICAjiAriQBAgQIEBDAboAAAQIECAQEBHAAXUkCBAgQICCA3QABAgQIEAgICOAAupIECBAgQEAAuwECBAgQIBAQEMABdCUJECBAgIAAdgMECBAgQCAgIIAD6EoSIECAAAEB7AYIECBAgEBAQAAH0JUkQIAAAQIC2A0QIECAAIGAgAAOoCtJgAABAgQEsBsgQIAAAQIBAQEcQFeSAAECBAgIYDdAgAABAgQCAgI4gK4kAQIECBAQwG6AAAECBAgEBARwAF1JAgQIECAggN0AAQIECBAICAjgALqSBAgQIEBAALsBAgQIECAQEBDAAXQlCRAgQICAAHYDBAgQIEAgICCAA+hKEiBAgAABAewGCBAg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" mediaID="Stage_cst_Untitled"/><costume name="cloud b" center-x="111.5" center-y="18" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIyMjMiIGhlaWdodD0iMzYiIHZpZXdCb3g9Ii0xIC0xIDIyMyAzNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPCEtLSBFeHBvcnRlZCBieSBTY3JhdGNoIC0gaHR0cDovL3NjcmF0Y2gubWl0LmVkdS8gLS0+CiAgPGcgaWQ9IklEMC44Nzc5OTg0NzQ5ODUzNjExIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk0OTk5OTk4ODA3OTA3MSwgMCwgMCwgMC45NDk5OTk5ODgwNzkwNzEsIC0wLjUsIC0wLjE1KSI+CiAgICA8cGF0aCBpZD0iSUQwLjYwMTg4MDc2OTcxMDk4NzgiIGZpbGw9IiNGRkZGRkYiIHN0cm9rZT0iI0UzREVFRSIgZD0iTSA1MTMuMjAwIDUzNS45MDAgQyA1MjQgNTM1LjIwMCA5NjYuNDAwIDUzNS45MDAgOTcxLjgwMCA1MzUuOTAwIEMgOTc4LjcwMCA1MzUuOTAwIDk3My4yMDAgNTI1LjgwMCA5NjEuODAwIDUxOS44MDAgQyA5NDMuMTAwIDUxMCA5MjcuNzAwIDUxNS44MDAgOTI2LjcwMCA1MTQuNDAwIEMgOTI1LjkwMCA1MTMuMzAwIDkzMS4xMDAgNDkxIDg5MC40MDAgNDg0LjEwMCBDIDg2MS4yMDAgNDc5LjIwMCA4MzguMTAwIDQ4MS4yMDAgNzk5LjEwMCA0OTQuNDAwIEMgNzg5LjIwMCA0ODcuODAwIDc1My40MDAgNDY1LjIwMCA2OTguNjAwIDQ2NC42MDAgQyA2MzYgNDYzLjgwMCA1ODkuMTAwIDUwNi41MDAgNTg0LjQwMCA1MTAuNTAwIEMgNTc3LjMwMCA1MTAuODAwIDU2NS4yMDAgNTEyLjMwMCA1NDkuOTAwIDUxNi40MDAgQyA1MzYuMTAwIDUyMC4xMDAgNTIzLjQwMCA1MjYuMzAwIDUxNSA1MzEgQyA1MTAuNTAwIDUzMy41MDAgNTEwIDUzNS45MDAgNTEzLjIwMCA1MzUuOTAwIFogIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjQ3NTYxOTI4NjI5ODc1MTgzLCAwLCAwLCAwLjQ3NTYxOTI4NjI5ODc1MTgzLCAtMjQyLjMsIC0yMjAuMikiLz4KICAgIDxwYXRoIGlkPSJJRDAuMzc2MzE0OTcyOTkyOTg2NDQiIGZpbGw9IiNFM0RFRUUiIGQ9Ik0gNzIwLjgwMCA1MjAuNDAwIEMgNzQ1LjkwMCA1MTkuMjAwIDc3MC4zMDAgNTAzLjYwMCA3OTkuMTAwIDQ5NC40MDAgQyA3ODkuMjAwIDQ4Ny44MDAgNzUzLjQwMCA0NjUuMjAwIDY5OC42MDAgNDY0LjYwMCBDIDYzNiA0NjMuODAwIDU4OS4xMDAgNTA2LjUwMCA1ODQuNDAwIDUxMC41MDAgQyA2MjguMjAwIDUwOS4zMDAgNjg4LjgwMCA1MjEuOTAwIDcyMC44MDAgNTIwLjQwMCBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMC40NzU2MTkyODYyOTg3NTE4MywgMCwgMCwgMC40NzU2MTkyODYyOTg3NTE4MywgLTI0Mi4zLCAtMjIwLjIpIi8+CiAgPC9nPgo8L3N2Zz4=" mediaID="cloud_cst_cloud b"/><costume name="Untitled" center-x="54" center-y="49" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABiCAYAAAC1bDa9AAAAAXNSR0IArs4c6QAABD1JREFUeF7t3clu1EAQBuA/kNxYpRYIbvAEcO0LSCwXeFxyYZHg0ld4AriBQC2x3hIWzTCOJpOxu6sXd9nz5zqVcrm+qbadcTx7mMmPcfg7tCveYm8Ouzqlndg3Dkc1mu4tDgAc18hdOqdasNDElG7EZj6tE6kKrDVS35tAE15zMK1IWvGagU0NSsuSOTbYOePwu/bxZ8z83uI8gD9jbXM0sKlPVAhkrONcdbC5Q429VNYEu2EcPobemXN83VvcBPCpxr5VAdu1qRrzjLI02BXj8LXGO2uqOb3FVQDfStVfEuyBcXhZqrA55fEWDwG8KrFPRcC4BMZRlDiTzAYjVhxWF5WLlgM2u4tgWevTo3MutlPBiJXutfzNVLQUMGJlYq0tj+I/a4nBeMwqpLVKIz2micCIVRYr5UQkGoxYdbCkaLFg94zD67ol73Z2b3EfwJtQF2LALhiHn6FEfD2/A97iIoBfQ5mCYFwK8yEkGUInIYNgxJK0ulzsENoQ2CXj8L1cGcwU2wFvcRnAj23xvWCcrtj21onrm7I+sDvG4W2dUpg1pgPe4i6Ad5uxW8E4XTEtrR+zbcrOgBGrPoRkC5toBJN0r0HsIBinq4FIxCbX0U5NGMEiutcgpA+Mn3M1wIjZ5PqHnScTxumKaV27mG7KCNbOQLRlgona1T74FBiXw/YgMRUs0JZLIsFi2tU+hmDtDUQVEEzUrvbBSzAuh+0hJBUQTNItBbEEU4AgKYFgkm4piCWYAgRJCQSTdEtBLMEUIEhKIJikWwpiCaYAQVICwSTdUhBLMAUIkhIIJumWgliCKUCQlEAwSbcUxBJMAYKkBIJJuqUglrcIKECILYGfOMd2SkkcwZRAxJZBsNhOKYk7AQPA++qVoPSV0d1fz1u1lUN15fFW7YlA9YJxWdQruPXfjRbl8h5FnWj8D0ydLr1V9YJxyvRJ8ikC+kwGKwqCccr0iEY9WIVgEwQjWns06cPBFhXzi28auQ19wQ4fcNkIZWizqQ+4XObkxfS4olmPkF2VyqVxJLOY7xoLPqR5Vesj4/B8pLp3cjPe4jGAF6GdjwXj0hjqZObroaWwSx8NxuNZpsjAr8diLVKIwIhWHk2ClQTGz83KoaV8h5h4wlbl7huHo3Kl714mb3EA4Fi656lgi+3wxh1pt1fxKZOVdNKxrT5eWMvUpMeszew5E3aSi2hxaLlYqScdfdU9MQ7P4krfrShv8RTAYYm9LjJha4VcMw6fSxQ2lxze4jqAL6X2pzTYsi4ukf95SiyBVY5hPe+eW8bhfal31pTyeIvbAD7UqLnKhK0XumvTVmOq1vtZHWy1sdlfs+VcW0kmcSywrqbZ/YUk9S8WEqQWE3amvqkvlbWXvj7QsSds8nCtoLrGNQebwglKayQVS2JoDW+9ZGpCmgTYJmhtQK1AY144h4ao6Osh0KmAhJryD/PjLgIK+hB3AAAAAElFTkSuQmCC" mediaID="auto clicker_cst_Untitled"/></media></snapdata>