<snapdata remixID="9373886"><project name="Hangman update display list " app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAABaAAAAAAHwbojAAAL30lEQVR4Ae3QMQEAAADCoPVPbQwfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGPgMDI3+AAEeFvcCAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0.1639344262295026" y="-0.4918032786885078" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="122" y="42"><block s="receiveGo"></block><block s="doSetVar"><l>Chances</l><l>6</l></block><block s="doSetVar"><l>Word list</l><block s="reportTextSplit"><block s="reportURL"><l>snap.berkeley.edu</l></block><l><option>line</option></l></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="Word list"/></block><block s="doSetVar"><l>Secret word</l><block s="reportListItem"><l><option>any</option></l><block var="Word list"/></block></block><block s="doSetVar"><l>Display list</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>Guessed letters</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block s="reportStringSize"><block var="Secret word"/></block><script><block s="doAddToList"><l></l><block var="Display list"/></block></script></block><block s="doBroadcastAndWait"><l>display word</l></block><block s="doBroadcast"><l>Guess letter</l></block></script><script x="363" y="323"><block s="receiveMessage"><l></l></block></script><script x="10" y="124"><block var="Word list"/></script><script x="96" y="493"><custom-block s="secret word contains letter %s"><l>2</l></custom-block></script><script x="56" y="567"><custom-block s="Update display list %s"><l>R</l></custom-block></script></scripts></sprite><watcher var="Chances" style="normal" x="7.625000000000114" y="7.625" color="243,118,29" hidden="true"/><watcher var="Word list" style="normal" x="7.625000000000114" y="23.637501525000005" color="243,118,29" hidden="true"/><watcher var="Secret word" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="Display list" style="normal" x="10" y="31.000001999999995" color="243,118,29" extX="80" extY="70"/><watcher var="Guessed a" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="Guessed letters" style="normal" x="10" y="73.00000599999998" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="secret word contains letter %&apos;Letter&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doFor"><l>i</l><l>1</l><block s="reportStringSize"><block var="Secret word"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="i"/><block var="Secret word"/></block><block var="Letter"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="Update display list %&apos;letter&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doFor"><l>i</l><l>1</l><block s="reportStringSize"><block var="Secret word"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="i"/><block var="Secret word"/></block><block var="letter"/></block><script><block s="doReplaceInList"><block var="i"/><block var="Display list"/><block var="letter"/></block></script></block></script></block></script></block-definition></blocks><variables><variable name="Chances"><l>6</l></variable><variable name="Word list"><list struct="atomic" id="126">&lt;html&gt;,    &lt;head&gt;,&quot;	&lt;meta name=&quot;&quot;snap-cloud-domain&quot;&quot; location=&quot;&quot;https://snap.berkeley.edu:443&quot;&quot;&gt;&quot;,&quot;        &lt;meta charset=&quot;&quot;UTF-8&quot;&quot;&gt;&quot;,        &lt;title&gt;Snap! Build Your Own Blocks&lt;/title&gt;,&quot;        &lt;meta name=&quot;&quot;description&quot;&quot; content=&quot;&quot;The Snap! social platform&quot;&quot;&gt;&quot;,&quot;        &lt;meta name=&quot;&quot;author&quot;&quot; content=&quot;&quot;Bernat Romagosa&quot;&quot;&gt;&quot;,&quot;        &lt;meta name=&quot;&quot;snap-cloud-domain&quot;&quot; location=&quot;&quot;https://snap.berkeley.edu&quot;&quot;&gt;&quot;,&quot;        &lt;link rel=&quot;&quot;icon&quot;&quot; href=&quot;&quot;favicon.ico&quot;&quot;&gt;&quot;,&quot;        &lt;meta name=&quot;&quot;viewport&quot;&quot; content=&quot;&quot;width=device-width, initial-scale=1&quot;&quot;&gt;&quot;,&quot;        &lt;!-- External libs, both stylesheets and JS --&gt;&quot;,&quot;        &lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;libs/reset.css&quot;&quot;&gt;&quot;,&quot;        &lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;libs/pure-min.css&quot;&quot;&gt;&quot;,&quot;        &lt;link rel=&quot;&quot;stylesheet&quot;&quot;&quot;,&quot;            href=&quot;&quot;https://use.fontawesome.com/releases/v5.7.1/css/all.css&quot;&quot;&quot;,&quot;            integrity=&quot;&quot;sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr&quot;&quot;&quot;,&quot;            crossorigin=&quot;&quot;anonymous&quot;&quot;&gt;&quot;,&quot;        &lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;libs/custom-alert.css&quot;&quot;&gt;&quot;,&quot;        &lt;script type=&quot;&quot;text/javascript&quot;&quot; src=&quot;&quot;libs/FileSaver.min.js&quot;&quot;&gt;&lt;/script&gt;&quot;,        &lt;!-- Stylesheets --&gt;,&quot;        &lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;style/elements.css&quot;&quot;&gt;&quot;,&quot;        &lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;style/classes.css&quot;&quot;&gt;&quot;,&quot;        &lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;style/layout.css&quot;&quot;&gt;&quot;,        &lt;!-- JS --&gt;,&quot;        &lt;script type=&quot;&quot;text/javascript&quot;&quot; src=&quot;&quot;js/locale.js&quot;&quot;&gt;&lt;/script&gt;&quot;,&quot;        &lt;script type=&quot;&quot;text/javascript&quot;&quot; src=&quot;&quot;js/base.js&quot;&quot;&gt;&lt;/script&gt;&quot;,&quot;        &lt;script type=&quot;&quot;text/javascript&quot;&quot; src=&quot;&quot;libs/cloud.js&quot;&quot;&gt;&lt;/script&gt;&quot;,&quot;        &lt;script type=&quot;&quot;text/javascript&quot;&quot;&gt;SnapCloud = new Cloud();&lt;/script&gt;&quot;,&quot;        &lt;script type=&quot;&quot;text/javascript&quot;&quot; src=&quot;&quot;libs/sha512.js&quot;&quot;&gt;&lt;/script&gt;&quot;,    &lt;/head&gt;,    &lt;body&gt;,&quot;        &lt;script type=&quot;&quot;text/javascript&quot;&quot; src=&quot;&quot;libs/custom-alert.min.js&quot;&quot;&gt;&lt;/script&gt;&quot;,        &lt;script&gt;new customAlert();&lt;/script&gt;,&quot;        &lt;div id=&quot;&quot;loading&quot;&quot;&gt;&quot;,&quot;            &lt;i class=&quot;&quot;fas fa-spinner fa-spin fa-3x&quot;&quot; aria-hidden=&quot;&quot;true&quot;&quot;&gt;&lt;/i&gt;&quot;,        &lt;/div&gt;,&quot;&lt;nav id=&quot;&quot;top-bar&quot;&quot;&gt;&quot;,&quot;    &lt;div class=&quot;&quot;pure-menu-horizontal pure-menu&quot;&quot;&gt;&quot;,&quot;        &lt;ul class=&quot;&quot;pure-g pure-menu-list&quot;&quot;&gt;&quot;,&quot;            &lt;a class=&quot;&quot;pure-u-1-12&quot;&quot; href=&quot;&quot;/&quot;&quot; aria-label=&quot;&quot;Snap! home page&quot;&quot;&gt;&quot;,&quot;                &lt;img src=&quot;&quot;img/topbar-logo.png&quot;&quot; class=&quot;&quot;logo clickable&quot;&quot;/&gt;&quot;,            &lt;/a&gt;,&quot;            &lt;span class=&quot;&quot;pure-u-5-12&quot;&quot;&gt;&quot;,&quot;                &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                    &lt;a localizable class=&quot;&quot;pure-menu-link run&quot;&quot;&quot;,&quot;                        target=&quot;&quot;_blank&quot;&quot;&gt;Run Snap&lt;em&gt;!&lt;/em&gt;&lt;/a&gt;&quot;,                &lt;/li&gt;,&quot;                &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                    &lt;a localizable class=&quot;&quot;pure-menu-link explore&quot;&quot;&quot;,&quot;                        href=&quot;&quot;explore&quot;&quot;&gt;Explore&lt;/a&gt;&quot;,                &lt;/li&gt;,&quot;                &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                    &lt;a localizable class=&quot;&quot;pure-menu-link forum&quot;&quot;&quot;,&quot;                        href=&quot;&quot;https://forum.snap.berkeley.edu/&quot;&quot;&gt;Forum&lt;/a&gt;&quot;,                &lt;/li&gt;,&quot;                &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                    &lt;a localizable class=&quot;&quot;pure-menu-link&quot;&quot; target=&quot;&quot;_blank&quot;&quot;&quot;,&quot;                    href=&quot;&quot;https://www.snapcon.org&quot;&quot;&gt;Snap&lt;em&gt;!&lt;/em&gt;Con&lt;/a&gt;&quot;,                &lt;/li&gt;,            &lt;/span&gt;,&quot;            &lt;i class=&quot;&quot;pure-u-1-24&quot;&quot;&gt;&lt;/i&gt;&quot;,&quot;            &lt;div class=&quot;&quot;search pure-u-1-6&quot;&quot;&gt;&quot;,&quot;                &lt;form action=&quot;&quot;search&quot;&quot;&gt;&quot;,&quot;                    &lt;input type=&quot;&quot;text&quot;&quot; name=&quot;&quot;query&quot;&quot;&gt;&quot;,&quot;                    &lt;i class=&quot;&quot;fas fa-search&quot;&quot;&gt;&lt;/i&gt;&quot;,                &lt;/form&gt;,            &lt;/div&gt;,&quot;            &lt;i class=&quot;&quot;pure-u-1-24&quot;&quot;&gt;&lt;/i&gt;&quot;,&quot;            &lt;li hidden=&quot;&quot;true&quot;&quot; class=&quot;&quot;join pure-menu-item pure-u-1-12&quot;&quot;&gt;&quot;,&quot;                &lt;a localizable class=&quot;&quot;pure-menu-link&quot;&quot;&quot;,&quot;                    href=&quot;&quot;sign_up&quot;&quot;&gt;Join&lt;/a&gt;&lt;/li&gt;&quot;,&quot;            &lt;li hidden=&quot;&quot;true&quot;&quot; class=&quot;&quot;sign-in pure-menu-item pure-u-1-12&quot;&quot;&gt;&quot;,&quot;                &lt;a localizable class=&quot;&quot;pure-menu-link&quot;&quot;&quot;,&quot;                               href=&quot;&quot;login&quot;&quot;&gt;Log In&lt;/a&gt;&lt;/li&gt;&quot;,&quot;            &lt;li hidden=&quot;&quot;true&quot;&quot; class=&quot;&quot;pure-menu-item pure-u-1-6&quot;,&quot;                pure-menu-has-children pure-menu-allow-hover user-menu&quot;&quot;&gt;&quot;,&quot;                &lt;a id=&quot;&quot;menuLink1&quot;&quot; class=&quot;&quot;pure-menu-link visitor clickable&quot;&quot;&gt;&lt;/a&gt;&quot;,&quot;                &lt;ul class=&quot;&quot;pure-menu-children&quot;&quot;&gt;&quot;,&quot;                    &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                        &lt;a localizable class=&quot;&quot;pure-menu-link my-projects&quot;&quot;&quot;,&quot;                            href=&quot;&quot;my_projects&quot;&quot;&gt;My Projects&lt;/a&gt;&lt;/li&gt;&quot;,&quot;                    &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                        &lt;a localizable class=&quot;&quot;pure-menu-link my-collections&quot;&quot;&quot;,&quot;                            href=&quot;&quot;my_collections&quot;&quot;&gt;My Collections&lt;/a&gt;&lt;/li&gt;&quot;,&quot;                    &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                        &lt;a localizable class=&quot;&quot;pure-menu-link my-public-projects&quot;&quot;&quot;,&quot;                           href=&quot;&quot;&quot;&quot;&gt;My Public Page&lt;/a&gt;&lt;/li&gt;&quot;,&quot;                    &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                        &lt;a localizable class=&quot;&quot;pure-menu-link my-profile&quot;&quot;&quot;,&quot;                            href=&quot;&quot;profile&quot;&quot;&gt;My Profile&lt;/a&gt;&lt;/li&gt;&quot;,&quot;                    &lt;li hidden=&quot;&quot;true&quot;&quot; class=&quot;&quot;pure-menu-item admin&quot;&quot;&gt;&quot;,&quot;                        &lt;a localizable class=&quot;&quot;pure-menu-link&quot;&quot;&quot;,&quot;                            href=&quot;&quot;admin&quot;&quot;&gt;Administration&lt;/a&gt;&lt;/li&gt;&quot;,                    &lt;hr&gt;,&quot;                    &lt;li class=&quot;&quot;pure-menu-item&quot;&quot;&gt;&quot;,&quot;                        &lt;a localizable class=&quot;&quot;pure-menu-link clickable&quot;&quot;&quot;,&quot;                            href=&quot;&quot;javascript:SnapCloud.logout(function () {&quot;,                                sessionStorage.clear();,                                location.href = &apos;index&apos;;,&quot;                            });&quot;&quot;&gt;Log Out&lt;/a&gt;&lt;/li&gt;&quot;,                &lt;/ul&gt;,            &lt;/li&gt;,&quot;            &lt;li class=&quot;&quot;pure-menu-item pure-u-1-24 pure-menu-has-children&quot;,&quot;                pure-menu-allow-hover language-select&quot;&quot;&gt;&quot;,&quot;                &lt;a class=&quot;&quot;pure-menu-link clickable&quot;&quot;&gt;&quot;,&quot;                    &lt;i class=&quot;&quot;fas fa-globe&quot;&quot;&gt;&lt;/i&gt;&quot;,                &lt;/a&gt;,&quot;                &lt;ul class=&quot;&quot;pure-menu-children languages&quot;&quot;&gt;&quot;,&quot;                    &lt;a class=&quot;&quot;pure-menu-link clickable&quot;&quot;&quot;,&quot;                        onclick=&quot;&quot;localizer.setLanguage(&apos;es&apos;);&quot;&quot;&gt;Castellano&lt;/a&gt;&quot;,&quot;                    &lt;a class=&quot;&quot;pure-menu-link clickable&quot;&quot;&quot;,&quot;                        onclick=&quot;&quot;localizer.setLanguage(&apos;ca&apos;);&quot;&quot;&gt;Català&lt;/a&gt;&quot;,&quot;                    &lt;a class=&quot;&quot;pure-menu-link clickable&quot;&quot;&quot;,&quot;                        onclick=&quot;&quot;localizer.setLanguage(&apos;zh&apos;);&quot;&quot;&gt;简体中文&lt;/a&gt;&quot;,&quot;                    &lt;a class=&quot;&quot;pure-menu-link clickable&quot;&quot;&quot;,&quot;                        onclick=&quot;&quot;localizer.setLanguage(&apos;de&apos;);&quot;&quot;&gt;Deutsch&lt;/a&gt;&quot;,&quot;                    &lt;a class=&quot;&quot;pure-menu-link clickable&quot;&quot;&quot;,&quot;                        onclick=&quot;&quot;localizer.setLanguage(&apos;en&apos;);&quot;&quot;&gt;English&lt;/a&gt;&quot;,&quot;                    &lt;a class=&quot;&quot;pure-menu-link clickable&quot;&quot;&quot;,&quot;                        onclick=&quot;&quot;localizer.setLanguage(&apos;pt&apos;);&quot;&quot;&gt;Português&lt;/a&gt;&quot;,                &lt;/ul&gt;,            &lt;/li&gt;,        &lt;/ul&gt;,    &lt;/div&gt;,&lt;/nav&gt;,&quot;        &lt;div id=&quot;&quot;wrapper&quot;&quot;&gt;&quot;,&quot;&lt;script src=&quot;&quot;js/project.js&quot;&quot;&gt;&lt;/script&gt;&quot;,&quot;&lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;style/project.css&quot;&quot;&gt;&quot;,,&lt;!-- Thanks to www.w3schools.com --&gt;,&quot;&lt;link rel=&quot;&quot;stylesheet&quot;&quot; href=&quot;&quot;style/banner.css&quot;&quot;&gt;&quot;,,&quot;&lt;div class=&quot;&quot;slideshow&quot;&quot;&gt;&quot;,&quot;    &lt;div class=&quot;&quot;slide fade&quot;&quot;&gt;&quot;,&quot;        &lt;img src=&quot;&quot;img/snap-byob.png&quot;&quot; style=&quot;&quot;width:100%&quot;&quot;&gt;&quot;,    &lt;/div&gt;,,&quot;    &lt;div class=&quot;&quot;slide fade&quot;&quot;&gt;&quot;,&quot;        &lt;img src=&quot;&quot;img/lowfloor.png&quot;&quot; style=&quot;&quot;width:100%&quot;&quot;&gt;&quot;,    &lt;/div&gt;,,&quot;    &lt;div class=&quot;&quot;slide fade&quot;&quot;&gt;&quot;,&quot;        &lt;img src=&quot;&quot;img/widewalls.png&quot;&quot; style=&quot;&quot;width:100%&quot;&quot;&gt;&quot;,    &lt;/div&gt;,,&quot;    &lt;div class=&quot;&quot;slide fade&quot;&quot;&gt;&quot;,&quot;        &lt;img src=&quot;&quot;img/noceiling.png&quot;&quot; style=&quot;&quot;width:100%&quot;&quot;&gt;&quot;,    &lt;/div&gt;,,&quot;    &lt;a class=&quot;&quot;previous&quot;&quot; onclick=&quot;&quot;plusSlides(-1)&quot;&quot;&gt;&amp;#10094;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;next&quot;&quot; onclick=&quot;&quot;plusSlides(1)&quot;&quot;&gt;&amp;#10095;&lt;/a&gt;&quot;,&lt;/div&gt;,&lt;br&gt;,,&lt;script&gt;,    var slideIndex = 1;,,    showSlide(slideIndex);,,    function plusSlides (n) {,        showSlide(slideIndex += n);,    };,,    function currentSlide (n) {,        showSlide(slideIndex = n);,    };,,    function showSlide (n) {,&quot;        var slides = document.querySelectorAll(&apos;.slide&apos;),&quot;,            i;,        if (n &gt; slides.length) { slideIndex = 1 },        if (n &lt; 1) { slideIndex = slides.length },        slides.forEach(function (slide) {,            slide.style.display = &apos;none&apos;;,        });,        slides[slideIndex-1].style.display = &apos;block&apos;;,    };,,&lt;/script&gt;,,&lt;h1&gt;&lt;span localizable&gt;Welcome to Snap&lt;/span&gt;&lt;em&gt;!&lt;/em&gt;&lt;/h1&gt;,,&quot;&lt;div class=&quot;&quot;indent bigger&quot;&quot; localizable&gt;Snap&lt;em&gt;!&lt;/em&gt; is a broadly inviting programming language for kids and adults that’s also a platform for serious study of computer science.&lt;/div&gt;&quot;,,&quot;&lt;div class=&quot;&quot;indent v-spaced&quot;&quot;&gt;&quot;,&quot;    &lt;a href=&quot;&quot;/snap&quot;&quot; class=&quot;&quot;pure-button&quot;&quot; localizable&gt;Run Snap&lt;em&gt;!&lt;/em&gt; Now&lt;/a&gt;&quot;,&quot;    &lt;a href=&quot;&quot;/examples&quot;&quot; class=&quot;&quot;pure-button&quot;&quot; localizable&gt;Example Projects&lt;/a&gt;&quot;,&quot;    &lt;a href=&quot;&quot;/snap/help/SnapManual.pdf&quot;&quot; class=&quot;&quot;pure-button&quot;&quot; localizable&gt;Reference Manual&lt;/a&gt;&quot;,&quot;    &lt;a href=&quot;&quot;https://snapcon.org&quot;&quot; target=&quot;&quot;_blank&quot;&quot; class=&quot;&quot;pure-button&quot;&quot; localizable&gt;Snap!Con 2020&lt;/a&gt;&quot;,&lt;/div&gt;,,&quot;&lt;br class=&quot;&quot;v-spaced&quot;&quot;&gt;&quot;,,,&lt;!--,    Any template that uses me needs to specify the following functions:,,    // Defines how to retrieve a particular page from the DB,    latest_loadPage (,&quot;        query,      // search query&quot;,&quot;        pageSize,   // amount of elements per page&quot;,&quot;        pageNumber, // current page being requested&quot;,        onSuccess   // callback called when response comes back. Just leave as,&quot;                    // `onSuccess` unless doing something very specific, as&quot;,                    // this callback is defined by the search bar itself.,    ),,    // Defines how to load a particular page,    latest_onLoadPage (,&quot;        response,      // response from the server&quot;,        targetElement  // HTML element where response should be rendered,    ),,&quot;    Once these functions have been defined, just call:&quot;,,    latest_initGrid(callback);,--&gt;,&quot;&lt;div class=&quot;&quot;latest container&quot;&quot;&gt;&quot;,&quot;    &lt;h2 class=&quot;&quot;latest header&quot;&quot; localizable&gt;&lt;/h2&gt;&quot;,&quot;    &lt;div class=&quot;&quot;bar&quot;&quot;&gt;&quot;,&quot;        &lt;div hidden class=&quot;&quot;latest search&quot;&quot;&gt;&quot;,&quot;            &lt;form action=&quot;&quot;latest&quot;&quot;&gt;&quot;,&quot;                &lt;input type=&quot;&quot;text&quot;&quot; name=&quot;&quot;query&quot;&quot;&gt;&quot;,&quot;                &lt;i class=&quot;&quot;fas fa-search&quot;&quot;&gt;&lt;/i&gt;&quot;,            &lt;/form&gt;,            &lt;script&gt;,&quot;                var latest_page = 1,&quot;,&quot;                    latest_totalPages = 1,&quot;,&quot;                    latest_maxPages = [20][0] || 0, // 0 = no limit&quot;,&quot;                    latest_pageSize = [5][0] || 150,&quot;,                    latest_keepIfEmpty = [][0];,,                if (![&apos;Latest Projects&apos;][0]) {,                    document.querySelector(&apos;.latest.header&apos;).remove();,                } else {,                    document.querySelector(&apos;.latest.header&apos;).innerHTML =,                        [&apos;Latest Projects&apos;][0];,                },,                if ([false][0]) {,&quot;                    document.querySelector(&quot;&quot;.latest.search&quot;&quot;).hidden =&quot;,                        false;,                };,,                document.querySelector(&apos;.latest form input&apos;).value =,                    getUrlParameter(&apos;query&apos;);,,                function latest_toPage (pageNumber) {,                    var latest_div =,&quot;                            document.querySelector(&apos;.latest.container&apos;),&quot;,                        latest_listDiv =,&quot;                            document.querySelector(&apos;.latest.list&apos;),&quot;,                        latest_pageSpan =,                            document.querySelector(,&quot;                                &apos;.latest.paginator .page&apos;),&quot;,                        latest_totalPagesSpan =,                            document.querySelector(,&quot;                                &apos;.latest.paginator .total-pages&apos;),&quot;,                        height = latest_listDiv.clientHeight;,,                    // Forces grid to keep previous height when emptied out,                    if (height &gt; 0) {,                        latest_listDiv.style.height = height;,                    },,                    latest_listDiv.innerHTML = &apos;&apos;;,                    beganLoading(&apos;.latest.list&apos;);,,                    latest_loadPage(,&quot;                        getUrlParameter(&apos;query&apos;),&quot;,&quot;                        latest_pageSize,&quot;,&quot;                        pageNumber,&quot;,                        function (response) {,                            latest_totalPages =,                                latest_maxPages || response.pages;,                            latest_totalPagesSpan.textContent =,                                latest_totalPages;,,                            if (latest_totalPages == 0 ||,                                (response.projects &amp;&amp; !response.projects[0]) ||,                                (response.collections &amp;&amp;,                                    !response.collections[0]) ||,                                (response.users &amp;&amp; !response.users[0]),                                // Until we fix the API this will do,                            ) {,                                if (!latest_keepIfEmpty) {,                                    latest_div.remove();,                                } else {,                                    doneLoading(&apos;.latest.list&apos;);,                                },                                return;,                            } else if (latest_totalPages == 1 &amp;&amp;,                                    !latest_keepIfEmpty) {,                                document.querySelector(,                                    &apos;.latest.paginator&apos;).remove();,                            },,&quot;                            latest_onLoadPage(response,&quot;,                                latest_listDiv);,,                            doneLoading(&apos;.latest.list&apos;);,                        },                    );,,                    latest_page = pageNumber;,                    latest_pageSpan.textContent = pageNumber;,                };,,                function latest_initGrid (callback) {,                    latest_toPage(1);,                    if (callback) {,                        callback.call(this);,                    },                };,,            &lt;/script&gt;,        &lt;/div&gt;,&quot;&lt;nav class=&quot;&quot;latest paginator&quot;&quot;&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;latest_toPage(1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;latest_toPage(latest_page - 5 &gt; 0 ? latest_page - 5 : 1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;latest_toPage(latest_page - 1 &gt; 0 ? latest_page - 1 : latest_page);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;span class=&quot;&quot;page&quot;&quot;&gt;&lt;/span&gt; / &lt;span class=&quot;&quot;total-pages&quot;&quot;&gt;&lt;/span&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;latest_toPage(latest_page + 1 &lt; latest_totalPages ? latest_page + 1 : latest_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;latest_toPage(latest_page + 5 &lt; latest_totalPages ? latest_page + 5 : latest_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;latest_toPage(latest_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&lt;/nav&gt;,    &lt;/div&gt;,&quot;    &lt;div class=&quot;&quot;latest list pure-g&quot;&quot;&gt;&lt;/div&gt;&quot;,&lt;/div&gt;,&lt;script&gt;,    latest_loadPage =,&quot;        function (query, pageSize, pageNumber, onSuccess) {&quot;,            SnapCloud.getPublishedProjectList(,&quot;                null, // no username&quot;,&quot;                pageNumber,&quot;,&quot;                pageSize,&quot;,&quot;                query,&quot;,&quot;                onSuccess,&quot;,&quot;                genericError,&quot;,                true // withThumbnail,            );,        };,,    latest_onLoadPage =,&quot;        function (response, targetElement) {&quot;,            response.projects.forEach(function (project) {,                targetElement.append(,                    newProjectDiv(,&quot;                        project,&quot;,                        {,&quot;                            size: &apos;small&apos;,&quot;,&quot;                            gridSize: 5,&quot;,                            extraFields: {,&quot;                                isPublic: &apos;ispublic&apos;,&quot;,&quot;                                isPublished: &apos;ispublished&apos;,&quot;,                                author: &apos;username&apos;,                            },                        },                    ),                );,            });,        };,,    latest_initGrid();,&lt;/script&gt;,,&lt;!--,    Any template that uses me needs to specify the following functions:,,    // Defines how to retrieve a particular page from the DB,    featured_loadPage (,&quot;        query,      // search query&quot;,&quot;        pageSize,   // amount of elements per page&quot;,&quot;        pageNumber, // current page being requested&quot;,        onSuccess   // callback called when response comes back. Just leave as,&quot;                    // `onSuccess` unless doing something very specific, as&quot;,                    // this callback is defined by the search bar itself.,    ),,    // Defines how to load a particular page,    featured_onLoadPage (,&quot;        response,      // response from the server&quot;,        targetElement  // HTML element where response should be rendered,    ),,&quot;    Once these functions have been defined, just call:&quot;,,    featured_initGrid(callback);,--&gt;,&quot;&lt;div class=&quot;&quot;featured container&quot;&quot;&gt;&quot;,&quot;    &lt;h2 class=&quot;&quot;featured header&quot;&quot; localizable&gt;&lt;/h2&gt;&quot;,&quot;    &lt;div class=&quot;&quot;bar&quot;&quot;&gt;&quot;,&quot;        &lt;div hidden class=&quot;&quot;featured search&quot;&quot;&gt;&quot;,&quot;            &lt;form action=&quot;&quot;featured&quot;&quot;&gt;&quot;,&quot;                &lt;input type=&quot;&quot;text&quot;&quot; name=&quot;&quot;query&quot;&quot;&gt;&quot;,&quot;                &lt;i class=&quot;&quot;fas fa-search&quot;&quot;&gt;&lt;/i&gt;&quot;,            &lt;/form&gt;,            &lt;script&gt;,&quot;                var featured_page = 1,&quot;,&quot;                    featured_totalPages = 1,&quot;,&quot;                    featured_maxPages = [0][0] || 0, // 0 = no limit&quot;,&quot;                    featured_pageSize = [5][0] || 150,&quot;,                    featured_keepIfEmpty = [][0];,,                if (![&apos;Featured Projects&apos;][0]) {,                    document.querySelector(&apos;.featured.header&apos;).remove();,                } else {,                    document.querySelector(&apos;.featured.header&apos;).innerHTML =,                        [&apos;Featured Projects&apos;][0];,                },,                if ([false][0]) {,&quot;                    document.querySelector(&quot;&quot;.featured.search&quot;&quot;).hidden =&quot;,                        false;,                };,,                document.querySelector(&apos;.featured form input&apos;).value =,                    getUrlParameter(&apos;query&apos;);,,                function featured_toPage (pageNumber) {,                    var featured_div =,&quot;                            document.querySelector(&apos;.featured.container&apos;),&quot;,                        featured_listDiv =,&quot;                            document.querySelector(&apos;.featured.list&apos;),&quot;,                        featured_pageSpan =,                            document.querySelector(,&quot;                                &apos;.featured.paginator .page&apos;),&quot;,                        featured_totalPagesSpan =,                            document.querySelector(,&quot;                                &apos;.featured.paginator .total-pages&apos;),&quot;,                        height = featured_listDiv.clientHeight;,,                    // Forces grid to keep previous height when emptied out,                    if (height &gt; 0) {,                        featured_listDiv.style.height = height;,                    },,                    featured_listDiv.innerHTML = &apos;&apos;;,                    beganLoading(&apos;.featured.list&apos;);,,                    featured_loadPage(,&quot;                        getUrlParameter(&apos;query&apos;),&quot;,&quot;                        featured_pageSize,&quot;,&quot;                        pageNumber,&quot;,                        function (response) {,                            featured_totalPages =,                                featured_maxPages || response.pages;,                            featured_totalPagesSpan.textContent =,                                featured_totalPages;,,                            if (featured_totalPages == 0 ||,                                (response.projects &amp;&amp; !response.projects[0]) ||,                                (response.collections &amp;&amp;,                                    !response.collections[0]) ||,                                (response.users &amp;&amp; !response.users[0]),                                // Until we fix the API this will do,                            ) {,                                if (!featured_keepIfEmpty) {,                                    featured_div.remove();,                                } else {,                                    doneLoading(&apos;.featured.list&apos;);,                                },                                return;,                            } else if (featured_totalPages == 1 &amp;&amp;,                                    !featured_keepIfEmpty) {,                                document.querySelector(,                                    &apos;.featured.paginator&apos;).remove();,                            },,&quot;                            featured_onLoadPage(response,&quot;,                                featured_listDiv);,,                            doneLoading(&apos;.featured.list&apos;);,                        },                    );,,                    featured_page = pageNumber;,                    featured_pageSpan.textContent = pageNumber;,                };,,                function featured_initGrid (callback) {,                    featured_toPage(1);,                    if (callback) {,                        callback.call(this);,                    },                };,,            &lt;/script&gt;,        &lt;/div&gt;,&quot;&lt;nav class=&quot;&quot;featured paginator&quot;&quot;&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;featured_toPage(1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;featured_toPage(featured_page - 5 &gt; 0 ? featured_page - 5 : 1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;featured_toPage(featured_page - 1 &gt; 0 ? featured_page - 1 : featured_page);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;span class=&quot;&quot;page&quot;&quot;&gt;&lt;/span&gt; / &lt;span class=&quot;&quot;total-pages&quot;&quot;&gt;&lt;/span&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;featured_toPage(featured_page + 1 &lt; featured_totalPages ? featured_page + 1 : featured_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;featured_toPage(featured_page + 5 &lt; featured_totalPages ? featured_page + 5 : featured_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;featured_toPage(featured_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&lt;/nav&gt;,    &lt;/div&gt;,&quot;    &lt;div class=&quot;&quot;featured list pure-g&quot;&quot;&gt;&lt;/div&gt;&quot;,&lt;/div&gt;,&lt;script&gt;,    featured_loadPage =,&quot;        function (query, pageSize, pageNumber, onSuccess) {&quot;,            SnapCloud.getCollectionProjects(,&quot;                &apos;snapcloud&apos;,&quot;,&quot;                pageNumber,&quot;,&quot;                pageSize,&quot;,&quot;                &apos;Featured&apos;,&quot;,&quot;                onSuccess,&quot;,&quot;                genericError,&quot;,                true // withThumbnail,            );,        };,,    featured_onLoadPage = latest_onLoadPage;,    featured_initGrid();,&lt;/script&gt;,,&lt;!--,    Any template that uses me needs to specify the following functions:,,    // Defines how to retrieve a particular page from the DB,    snapcon_loadPage (,&quot;        query,      // search query&quot;,&quot;        pageSize,   // amount of elements per page&quot;,&quot;        pageNumber, // current page being requested&quot;,        onSuccess   // callback called when response comes back. Just leave as,&quot;                    // `onSuccess` unless doing something very specific, as&quot;,                    // this callback is defined by the search bar itself.,    ),,    // Defines how to load a particular page,    snapcon_onLoadPage (,&quot;        response,      // response from the server&quot;,        targetElement  // HTML element where response should be rendered,    ),,&quot;    Once these functions have been defined, just call:&quot;,,    snapcon_initGrid(callback);,--&gt;,&quot;&lt;div class=&quot;&quot;snapcon container&quot;&quot;&gt;&quot;,&quot;    &lt;h2 class=&quot;&quot;snapcon header&quot;&quot; localizable&gt;&lt;/h2&gt;&quot;,&quot;    &lt;div class=&quot;&quot;bar&quot;&quot;&gt;&quot;,&quot;        &lt;div hidden class=&quot;&quot;snapcon search&quot;&quot;&gt;&quot;,&quot;            &lt;form action=&quot;&quot;snapcon&quot;&quot;&gt;&quot;,&quot;                &lt;input type=&quot;&quot;text&quot;&quot; name=&quot;&quot;query&quot;&quot;&gt;&quot;,&quot;                &lt;i class=&quot;&quot;fas fa-search&quot;&quot;&gt;&lt;/i&gt;&quot;,            &lt;/form&gt;,            &lt;script&gt;,&quot;                var snapcon_page = 1,&quot;,&quot;                    snapcon_totalPages = 1,&quot;,&quot;                    snapcon_maxPages = [0][0] || 0, // 0 = no limit&quot;,&quot;                    snapcon_pageSize = [5][0] || 150,&quot;,                    snapcon_keepIfEmpty = [][0];,,                if (![&apos;Snap!Con 2019 Projects&apos;][0]) {,                    document.querySelector(&apos;.snapcon.header&apos;).remove();,                } else {,                    document.querySelector(&apos;.snapcon.header&apos;).innerHTML =,                        [&apos;Snap!Con 2019 Projects&apos;][0];,                },,                if ([false][0]) {,&quot;                    document.querySelector(&quot;&quot;.snapcon.search&quot;&quot;).hidden =&quot;,                        false;,                };,,                document.querySelector(&apos;.snapcon form input&apos;).value =,                    getUrlParameter(&apos;query&apos;);,,                function snapcon_toPage (pageNumber) {,                    var snapcon_div =,&quot;                            document.querySelector(&apos;.snapcon.container&apos;),&quot;,                        snapcon_listDiv =,&quot;                            document.querySelector(&apos;.snapcon.list&apos;),&quot;,                        snapcon_pageSpan =,                            document.querySelector(,&quot;                                &apos;.snapcon.paginator .page&apos;),&quot;,                        snapcon_totalPagesSpan =,                            document.querySelector(,&quot;                                &apos;.snapcon.paginator .total-pages&apos;),&quot;,                        height = snapcon_listDiv.clientHeight;,,                    // Forces grid to keep previous height when emptied out,                    if (height &gt; 0) {,                        snapcon_listDiv.style.height = height;,                    },,                    snapcon_listDiv.innerHTML = &apos;&apos;;,                    beganLoading(&apos;.snapcon.list&apos;);,,                    snapcon_loadPage(,&quot;                        getUrlParameter(&apos;query&apos;),&quot;,&quot;                        snapcon_pageSize,&quot;,&quot;                        pageNumber,&quot;,                        function (response) {,                            snapcon_totalPages =,                                snapcon_maxPages || response.pages;,                            snapcon_totalPagesSpan.textContent =,                                snapcon_totalPages;,,                            if (snapcon_totalPages == 0 ||,                                (response.projects &amp;&amp; !response.projects[0]) ||,                                (response.collections &amp;&amp;,                                    !response.collections[0]) ||,                                (response.users &amp;&amp; !response.users[0]),                                // Until we fix the API this will do,                            ) {,                                if (!snapcon_keepIfEmpty) {,                                    snapcon_div.remove();,                                } else {,                                    doneLoading(&apos;.snapcon.list&apos;);,                                },                                return;,                            } else if (snapcon_totalPages == 1 &amp;&amp;,                                    !snapcon_keepIfEmpty) {,                                document.querySelector(,                                    &apos;.snapcon.paginator&apos;).remove();,                            },,&quot;                            snapcon_onLoadPage(response,&quot;,                                snapcon_listDiv);,,                            doneLoading(&apos;.snapcon.list&apos;);,                        },                    );,,                    snapcon_page = pageNumber;,                    snapcon_pageSpan.textContent = pageNumber;,                };,,                function snapcon_initGrid (callback) {,                    snapcon_toPage(1);,                    if (callback) {,                        callback.call(this);,                    },                };,,            &lt;/script&gt;,        &lt;/div&gt;,&quot;&lt;nav class=&quot;&quot;snapcon paginator&quot;&quot;&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;snapcon_toPage(1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;snapcon_toPage(snapcon_page - 5 &gt; 0 ? snapcon_page - 5 : 1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;snapcon_toPage(snapcon_page - 1 &gt; 0 ? snapcon_page - 1 : snapcon_page);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;span class=&quot;&quot;page&quot;&quot;&gt;&lt;/span&gt; / &lt;span class=&quot;&quot;total-pages&quot;&quot;&gt;&lt;/span&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;snapcon_toPage(snapcon_page + 1 &lt; snapcon_totalPages ? snapcon_page + 1 : snapcon_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;snapcon_toPage(snapcon_page + 5 &lt; snapcon_totalPages ? snapcon_page + 5 : snapcon_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;snapcon_toPage(snapcon_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&lt;/nav&gt;,    &lt;/div&gt;,&quot;    &lt;div class=&quot;&quot;snapcon list pure-g&quot;&quot;&gt;&lt;/div&gt;&quot;,&lt;/div&gt;,&lt;script&gt;,    snapcon_loadPage =,&quot;        function (query, pageSize, pageNumber, onSuccess) {&quot;,            SnapCloud.getCollectionProjects(,&quot;                &apos;snapcloud&apos;,&quot;,&quot;                pageNumber,&quot;,&quot;                pageSize,&quot;,&quot;                &apos;Snap!Con 2019&apos;,&quot;,&quot;                onSuccess,&quot;,&quot;                genericError,&quot;,                true // withThumbnail,            );,        };,,    snapcon_onLoadPage = latest_onLoadPage;,    snapcon_initGrid();,&lt;/script&gt;,,,&lt;script&gt;,    // pick a random curated collection,    var collection =,&quot;        [ &apos;Science Projects&apos;,&quot;,&quot;            &apos;Art Projects&apos;,&quot;,&quot;            &apos;Fractals&apos;,&quot;,&quot;            &apos;Animations&apos;,&quot;,            &apos;Games&apos; ][Math.floor(Math.random()*4)];,&lt;/script&gt;,&lt;!--,    Any template that uses me needs to specify the following functions:,,    // Defines how to retrieve a particular page from the DB,    curated_loadPage (,&quot;        query,      // search query&quot;,&quot;        pageSize,   // amount of elements per page&quot;,&quot;        pageNumber, // current page being requested&quot;,        onSuccess   // callback called when response comes back. Just leave as,&quot;                    // `onSuccess` unless doing something very specific, as&quot;,                    // this callback is defined by the search bar itself.,    ),,    // Defines how to load a particular page,    curated_onLoadPage (,&quot;        response,      // response from the server&quot;,        targetElement  // HTML element where response should be rendered,    ),,&quot;    Once these functions have been defined, just call:&quot;,,    curated_initGrid(callback);,--&gt;,&quot;&lt;div class=&quot;&quot;curated container&quot;&quot;&gt;&quot;,&quot;    &lt;h2 class=&quot;&quot;curated header&quot;&quot; localizable&gt;&lt;/h2&gt;&quot;,&quot;    &lt;div class=&quot;&quot;bar&quot;&quot;&gt;&quot;,&quot;        &lt;div hidden class=&quot;&quot;curated search&quot;&quot;&gt;&quot;,&quot;            &lt;form action=&quot;&quot;curated&quot;&quot;&gt;&quot;,&quot;                &lt;input type=&quot;&quot;text&quot;&quot; name=&quot;&quot;query&quot;&quot;&gt;&quot;,&quot;                &lt;i class=&quot;&quot;fas fa-search&quot;&quot;&gt;&lt;/i&gt;&quot;,            &lt;/form&gt;,            &lt;script&gt;,&quot;                var curated_page = 1,&quot;,&quot;                    curated_totalPages = 1,&quot;,&quot;                    curated_maxPages = [0][0] || 0, // 0 = no limit&quot;,&quot;                    curated_pageSize = [5][0] || 150,&quot;,                    curated_keepIfEmpty = [][0];,,                if (![collection][0]) {,                    document.querySelector(&apos;.curated.header&apos;).remove();,                } else {,                    document.querySelector(&apos;.curated.header&apos;).innerHTML =,                        [collection][0];,                },,                if ([false][0]) {,&quot;                    document.querySelector(&quot;&quot;.curated.search&quot;&quot;).hidden =&quot;,                        false;,                };,,                document.querySelector(&apos;.curated form input&apos;).value =,                    getUrlParameter(&apos;query&apos;);,,                function curated_toPage (pageNumber) {,                    var curated_div =,&quot;                            document.querySelector(&apos;.curated.container&apos;),&quot;,                        curated_listDiv =,&quot;                            document.querySelector(&apos;.curated.list&apos;),&quot;,                        curated_pageSpan =,                            document.querySelector(,&quot;                                &apos;.curated.paginator .page&apos;),&quot;,                        curated_totalPagesSpan =,                            document.querySelector(,&quot;                                &apos;.curated.paginator .total-pages&apos;),&quot;,                        height = curated_listDiv.clientHeight;,,                    // Forces grid to keep previous height when emptied out,                    if (height &gt; 0) {,                        curated_listDiv.style.height = height;,                    },,                    curated_listDiv.innerHTML = &apos;&apos;;,                    beganLoading(&apos;.curated.list&apos;);,,                    curated_loadPage(,&quot;                        getUrlParameter(&apos;query&apos;),&quot;,&quot;                        curated_pageSize,&quot;,&quot;                        pageNumber,&quot;,                        function (response) {,                            curated_totalPages =,                                curated_maxPages || response.pages;,                            curated_totalPagesSpan.textContent =,                                curated_totalPages;,,                            if (curated_totalPages == 0 ||,                                (response.projects &amp;&amp; !response.projects[0]) ||,                                (response.collections &amp;&amp;,                                    !response.collections[0]) ||,                                (response.users &amp;&amp; !response.users[0]),                                // Until we fix the API this will do,                            ) {,                                if (!curated_keepIfEmpty) {,                                    curated_div.remove();,                                } else {,                                    doneLoading(&apos;.curated.list&apos;);,                                },                                return;,                            } else if (curated_totalPages == 1 &amp;&amp;,                                    !curated_keepIfEmpty) {,                                document.querySelector(,                                    &apos;.curated.paginator&apos;).remove();,                            },,&quot;                            curated_onLoadPage(response,&quot;,                                curated_listDiv);,,                            doneLoading(&apos;.curated.list&apos;);,                        },                    );,,                    curated_page = pageNumber;,                    curated_pageSpan.textContent = pageNumber;,                };,,                function curated_initGrid (callback) {,                    curated_toPage(1);,                    if (callback) {,                        callback.call(this);,                    },                };,,            &lt;/script&gt;,        &lt;/div&gt;,&quot;&lt;nav class=&quot;&quot;curated paginator&quot;&quot;&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;curated_toPage(1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;curated_toPage(curated_page - 5 &gt; 0 ? curated_page - 5 : 1);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;curated_toPage(curated_page - 1 &gt; 0 ? curated_page - 1 : curated_page);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-left&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;span class=&quot;&quot;page&quot;&quot;&gt;&lt;/span&gt; / &lt;span class=&quot;&quot;total-pages&quot;&quot;&gt;&lt;/span&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;curated_toPage(curated_page + 1 &lt; curated_totalPages ? curated_page + 1 : curated_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;curated_toPage(curated_page + 5 &lt; curated_totalPages ? curated_page + 5 : curated_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-angle-double-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&quot;    &lt;a class=&quot;&quot;clickable&quot;&quot; onclick=&quot;&quot;curated_toPage(curated_totalPages);&quot;&quot;&gt;&lt;i class=&quot;&quot;fas fa-caret-right&quot;&quot;&gt;&lt;/i&gt;&lt;/a&gt;&quot;,&lt;/nav&gt;,    &lt;/div&gt;,&quot;    &lt;div class=&quot;&quot;curated list pure-g&quot;&quot;&gt;&lt;/div&gt;&quot;,&lt;/div&gt;,&lt;script&gt;,    curated_loadPage =,&quot;        function (query, pageSize, pageNumber, onSuccess) {&quot;,            SnapCloud.getCollectionProjects(,&quot;                &apos;snapcloud&apos;,&quot;,&quot;                pageNumber,&quot;,&quot;                pageSize,&quot;,&quot;                collection,&quot;,&quot;                onSuccess,&quot;,&quot;                genericError,&quot;,                true // withThumbnail,            );,        };,,    curated_onLoadPage = latest_onLoadPage;,    curated_initGrid();,&lt;/script&gt;,,        &lt;/div&gt;,&quot;&lt;div id=&quot;&quot;footer&quot;&quot;&gt;&quot;,&quot;    &lt;div class=&quot;&quot;links pure-g&quot;&quot;&gt;&quot;,&quot;        &lt;div class=&quot;&quot;pure-u-1-5&quot;&quot;&gt;&quot;,            &lt;p&gt;&lt;h4 localizable&gt;About&lt;/h4&gt;&lt;/p&gt;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;about&quot;&quot;&gt;About Snap&lt;em&gt;!&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;blog&quot;&quot;&gt;Blog&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;credits&quot;&quot;&gt;Credits&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;requirements&quot;&quot;&gt;Technical Requirements&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;partners&quot;&quot;&gt;Partners&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;source&quot;&quot; &gt;Source Code&lt;/a&gt;&lt;/p&gt;&quot;,        &lt;/div&gt;,&quot;        &lt;div class=&quot;&quot;pure-u-1-5&quot;&quot;&gt;&quot;,            &lt;p&gt;&lt;h4 localizable&gt;Learning&lt;/h4&gt;&lt;/p&gt;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;examples&quot;&quot;&gt;Examples&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;snapsource/help/SnapManual.pdf&quot;&quot;&quot;,                &gt;Reference Manual&lt;/a&gt;&lt;/p&gt;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;materials&quot;&quot;&gt;Materials&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;bjc&quot;&quot;&gt;The Beauty and Joy of Computing&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;research&quot;&quot;&gt;Research&lt;/a&gt;&lt;/p&gt;&quot;,        &lt;/div&gt;,&quot;        &lt;div class=&quot;&quot;pure-u-1-5&quot;&quot;&gt;&quot;,            &lt;p&gt;&lt;h4 localizable&gt;Tools&lt;/h4&gt;&lt;/p&gt;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;offline&quot;&quot;&gt;Offline Version&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;extensions&quot;&quot;&gt;Extensions&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a href=&quot;&quot;snapp&quot;&quot;&gt;Snapp&lt;em&gt;!&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a href=&quot;&quot;snapinator&quot;&quot;&gt;Snapinator&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a href=&quot;&quot;old_site/old-byob.html&quot;&quot;&gt;BYOB (old Snap&lt;em&gt;!&lt;/em&gt;)&lt;/a&gt;&lt;/p&gt;&quot;,        &lt;/div&gt;,&quot;        &lt;div class=&quot;&quot;pure-u-1-5&quot;&quot;&gt;&quot;,            &lt;p&gt;&lt;h4 localizable&gt;Support&lt;/h4&gt;&lt;/p&gt;,&quot;            &lt;p&gt;&lt;a localizable target=&quot;&quot;_blank&quot;&quot;&quot;,&quot;                href=&quot;&quot;https://forum.snap.berkeley.edu/&quot;&quot;&gt;Forum&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;contact&quot;&quot;&gt;Contact Us&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;mirrors&quot;&quot;&gt;Mirrors&lt;/a&gt;&lt;/p&gt;&quot;,        &lt;/div&gt;,&quot;        &lt;div class=&quot;&quot;pure-u-1-5&quot;&quot;&gt;&quot;,            &lt;p&gt;&lt;h4 localizable&gt;Legal&lt;/h4&gt;&lt;/p&gt;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;dmca&quot;&quot;&gt;DMCA&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;privacy&quot;&quot;&gt;Privacy&lt;/a&gt;&lt;/p&gt;&quot;,&quot;            &lt;p&gt;&lt;a localizable href=&quot;&quot;tos&quot;&quot;&gt;Terms of Service&lt;/a&gt;&lt;/p&gt;&quot;,        &lt;/div&gt;,    &lt;/div&gt;,&lt;/div&gt;,    &lt;/body&gt;,    &lt;script&gt;,    SnapCloud.genericError = genericError;,    document.querySelector(&apos;#top-bar .run&apos;).href = snapURL;,    if (!sessionStorage.username) {,        SnapCloud.initSession(,&quot;            function (username, role) {&quot;,                sessionStorage.username = username;,                sessionStorage.role = role;,                initForUsername(username);,            },        );,    } else {,        initForUsername(sessionStorage.username);,    },,    function initForUsername (username) {,        if (username) {,            SnapCloud.username = username;,            document.querySelector(&apos;li.join&apos;).hidden = true;,            document.querySelector(&apos;li.sign-in&apos;).hidden = true;,            document.querySelector(&apos;li.user-menu&apos;).hidden = false;,            document.querySelector(&apos;a.my-public-projects&apos;).href =,                &apos;user?user=&apos; + username;,&quot;            if (hasAnyOfRoles([&apos;admin&apos;, &apos;moderator&apos;, &apos;reviewer&apos;])) {&quot;,                document.querySelector(&apos;.admin&apos;).hidden = false;,            },            fillVisitorFields();,        } else {,            document.querySelector(&apos;li.join&apos;).hidden = false;,            document.querySelector(&apos;li.sign-in&apos;).hidden = false;,            document.querySelector(&apos;li.user-menu&apos;).hidden = true;,        },        fillUsernameFields();,        fillVisitorFields();,        doneLoading();,    },,    // Share sessionStorage across tabs,    // http://blog.guya.net/2015/06/12/sharing-sessionstorage-between-tabs-for-secure-multi-tab-authentication/,    if (!sessionStorage.length) {,&quot;        localStorage.setItem(&apos;getSessionStorage&apos;, Date.now());&quot;,    };,&quot;    window.addEventListener(&apos;storage&apos;, function(event) {&quot;,        if (event.key == &apos;getSessionStorage&apos;) {,&quot;            localStorage.setItem(&apos;sessionStorage&apos;,&quot;,                JSON.stringify(sessionStorage));,            localStorage.removeItem(&apos;sessionStorage&apos;);,        } else if (event.key == &apos;sessionStorage&apos; &amp;&amp; !sessionStorage.length) {,&quot;            var data = JSON.parse(event.newValue), value;&quot;,&quot;            for (key in data) { sessionStorage.setItem(key, data[key]); }&quot;,        },    });,    &lt;/script&gt;,&lt;/html&gt;</list></variable><variable name="Secret word"><l>            function (username, role) {</l></variable><variable name="Display list"><list struct="atomic" id="127">,,,,,,,,,,,,,,,,,,,,,,,,,R,,,,,,,R,,,,,,</list></variable><variable name="Guessed a"><l>0</l></variable><variable name="Guessed letters"><list struct="atomic" id="128"></list></variable></variables></project><media name="Hangman update display list " app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>