<snapdata remixID="9549983"><project name="Cloud Learning Chatbot 2.0" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes>A cloud learning chatbot that learns from other users&#xD;&#xD;Thanks to fsul for the cloud var blocks&#xD;&#xD;Made some improvements to the chatbot</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAFoUlEQVR4Xu3YXUjddRjA8eccpszaRUpD8UIwp0SoNzqGb7juMpCmjEBsDBQGKYIHr7tS8I3BbtZIYlJIQh6QxZiQgYGCIuiFCOELo3bR5gSvlNItjP8PPEzC9Th79jT5euPb8/89/j9+d85xsf39/X3hDQEngRgBOsmzNgikArx165bU1tZKZmbmqaPZ3t6W+fl5aWlpOXX39qbfUAjw7t27Ul1dLdGzcSwWS93T//nzm03l0vvhOxKPvfwVxJl4TH5v/Snc08rKitTX17/pv7NT9fOHAJeXl1U3tbW1JVlZWUfOdnZ2SvRIGr2VlpbK0tJS6v1RFx3MqX6AF4bOffWRvPtWXM5e/1qeLz2Q+Pn3ZO/Hm/J29y+y88X7h4779dqD1OfFxcXHXcW8oUAIcGFhITzyRY940VPVzs6OdHV1yZ07dyQ9PV0eP34sVVVVEgU4PT0tiURCoqe1e/fuSV1dnVRUVISn7qdPn8r6+rpcuHAh/MjRtXt7e6mPo/OfPXsmGRkZ0t/fH667ePFimIu+lkwmpb29XVZXV2V0dFSys7NlcnIyPDpPTU1JY2Oj5Obmyubmppz/5hPJyoiHs8+UXZXnC8noFYWc/exL+XPk80NkK5+Op+4v2lVSUmJIytHHEQgBzs3NpZ5+CwoK5Pbt2zI4OCi9vb3S1NQkT548kY2NjRBDW1tbiGZ8fFyKiopCcENDQyGKiYkJmZmZCdc8evRIcnJywrXRW/RxXl5eeFTMz8+XS5cuyY0bN6SyslKuXLkSAokiiwKJQh4YGJDLly+HsKOZkZERGR4elp6envD93O+uhgDP9f32j/v9Y/i6/LXyc+rryw3fp+4v2vviy4zjYDH73wuEAPv6+sIv+eA1n9X7tLQ0KSsrk9nZ2dQj0sEj73Hff/DDNck4owGJycLH34Z9a2tr0traqrmImdckkPoruKOjQ2pqak7tX8GLi4vS3d39mlhZoxXg/wG1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgAC1UsyZCBCgCSuHagUIUCvFnIkAAZqwcqhWgACPkCovL5dEIiHNzc1aS+ZeQYAAX4LW0NCQ+u7Dhw8lmUxKYWHhKzBzyVECBPgvbbwY4cFoPB6X3d1duX//PmWdUIAACfCECZ3scgI8xlPw2NiYFBUVnUycqw8JECB/hLj+kyBAV36WEyANuAoQoCs/ywmQBlwFCNCVn+UESAOuAgToys9yAqQBVwECdOVnOQHSgKsAAbrys5wAacBVgABd+VlOgDTgKkCArvwsJ0AacBUgQFd+lhMgDbgKEKArP8sJkAZcBQjQlZ/lBEgDrgIE6MrPcgKkAVcBAnTlZzkB0oCrAAG68rOcAGnAVYAAXflZToA04CpAgK78LCdAGnAVIEBXfpYTIA24ChCgKz/LCZAGXAUI0JWf5QRIA64CBOjKz3ICpAFXAQJ05Wc5AdKAqwABuvKznABpwFWAAF35WU6ANOAqQICu/CwnQBpwFSBAV36WEyANuAoQoCs/ywmQBlwFCNCVn+UESAOuAgToys9yAqQBVwECdOVn+d+dVDzG1yOgTgAAAABJRU5ErkJggg==</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" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</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" y="-2.842170943040401e-14" 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="26.999999999999943" y="10"><block s="doSetVar"><l>input and responses</l><block s="reportNewList"><list></list></block></block></script><script x="10" y="42.99999999999986"><block s="receiveGo"></block><block s="doSetVar"><l>SIMILARITY THRESHOLD</l><l>0.67</l></block><custom-block s="cloud ID %s"><l>__chat123__</l></custom-block><block s="doSetVar"><l>Chat Log</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>bot response</l><l></l></block><block s="bubble"><l>Loading responses...</l></block><block s="doIf"><block s="reportEquals"><custom-block s="cloud var %s"><l>responses</l></custom-block><l>ERROR: file does not exist</l></block><script><custom-block s="set cloud var %s to %s"><l>responses</l><l>[]</l></custom-block></script></block><block s="doSetVar"><l>input and responses</l><custom-block s="listify %mlt"><custom-block s="cloud var %s"><l>responses</l></custom-block></custom-block></block><block s="doForever"><script><block s="doAsk"><block var="bot response"/></block><block s="doAddToList"><block s="reportJoinWords"><list><l>You: </l><block s="getLastAnswer"></block></list></block><block var="Chat Log"/></block><block s="doSetVar"><l>UserChat</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>CleanedString</l><custom-block s="clean %s"><block var="UserChat"/></custom-block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportStringSize"><block var="UserChat"/></block><l>0</l></block><script><block s="doIf"><block s="reportListContainsItem"><custom-block s="flatten %l"><custom-block s="get all user inputs"></custom-block></custom-block><block var="bot response"/></block><script><custom-block s="add response: %br when user says %txt %br respond with %txt"><block var="bot response"/><block var="CleanedString"/></custom-block></script></block><block s="doIfElse"><block s="reportEquals"><custom-block s="find response %txt"><block var="CleanedString"/></custom-block><l></l></block><script><block s="doAsk"><l>How should I respond to that?</l></block><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l></l></block><script><block s="doWaitUntil"><block s="reportNot"><block s="evaluate"><block s="reifyScript"><script><block s="doAsk"><l>How should I respond to that?</l></block><block s="doReport"><block s="reportEquals"><block s="getLastAnswer"></block><l></l></block></block></script><list></list></block><list></list></block></block></block></script></block><block s="doSetVar"><l>bot response</l><block s="getLastAnswer"></block></block><custom-block s="add response: %br when user says %txt %br respond with %txt"><block var="CleanedString"/><block var="bot response"/></custom-block></script><script><block s="doBroadcast"><l>Thinking...</l></block><block s="doWait"><l>0.05</l></block><block s="doSetVar"><l>bot response</l><custom-block s="find response %txt"><block var="CleanedString"/></custom-block></block></script></block></script></block><block s="doAddToList"><block s="reportJoinWords"><list><l>Bot: </l><block var="bot response"/></list></block><block var="Chat Log"/></block><custom-block s="set cloud var %s to %s"><l>responses</l><custom-block s="stringify %l"><block var="input and responses"/></custom-block></custom-block><block s="doSetVar"><l>input and responses</l><custom-block s="listify %mlt"><custom-block s="cloud var %s"><l>responses</l></custom-block></custom-block></block><block s="doBroadcast"><l>Done Thinking</l></block></script></block></script><script x="332.0000029999999" y="66.99999999999997"><block s="receiveGo"></block><block s="doForever"><script><block s="doShowVar"><l>number of things learned</l></block><block s="fork"><block s="reifyScript"><script><block s="doSetVar"><l>number of things learned</l><custom-block s="# of things learned"></custom-block></block></script><list></list></block><list></list></block><block s="doWait"><l>0.1</l></block></script></block></script><script x="435.9999999999992" y="52.99999999999986"><custom-block s="# of things learned"></custom-block></script><script x="428.9999999999992" y="381.00000000000045"><custom-block s="flatten %l"><custom-block s="get all user inputs"></custom-block></custom-block></script><script x="324" y="342.00000000000034"><block s="reportListIndex"><l>thing</l><l/></block></script><script x="402.9999999999999" y="442.9999999999999"><custom-block s="get similarity score %txt %txt"><l>Hello, how are you?</l><l></l></custom-block></script></scripts></sprite><sprite name="Sprite(2)" idx="2" x="62" y="100.00000000000001" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="5,2,0,1" pen="tip" id="212"><costumes><list struct="atomic" id="213"></list></costumes><sounds><list struct="atomic" id="214"></list></sounds><blocks></blocks><variables></variables><scripts><script x="111" y="59"><block s="receiveGo"></block><block s="clear"></block><block s="setColor"><color>5,2,0,1</color></block><block s="hide"></block><block s="gotoXY"><l>-70</l><l>100</l></block></script><script x="165" y="190.00000000000003"><block s="receiveMessage"><l>Thinking...</l></block><block s="gotoXY"><l>-70</l><l>100</l></block><block s="write"><l>Thinking...</l><l>20</l></block></script><script x="361" y="150"><block s="receiveMessage"><l>Done Thinking</l></block><block s="clear"></block></script></scripts></sprite><watcher var="bot response" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="userInput" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="Chat Log" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="input and responses" style="normal" x="136" y="0" color="243,118,29" extX="135" extY="150" hidden="true"/><watcher var="number of things learned" style="normal" x="2" y="6.000005999999985" color="243,118,29"/><watcher var="chars" style="normal" x="10" y="145.00000599999998" color="243,118,29" hidden="true"/><watcher var="UserChat" style="normal" x="10" y="238.00000799999998" color="243,118,29" hidden="true"/><watcher var="CleanedString" style="normal" x="10" y="259.00001" color="243,118,29" hidden="true"/><watcher var="SIMILARITY THRESHOLD" style="normal" x="10" y="280.00001199999997" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="get all user inputs" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="input and responses"/></block></block></script></block-definition><block-definition s="get all responses" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="input and responses"/></block></block></script></block-definition><block-definition s="add response: $nl when user says %&apos;userInput&apos; $nl respond with %&apos;botResponse&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportGreaterThan"><custom-block s="index of %s in %l"><block var="userInput"/><custom-block s="get all user inputs"></custom-block></custom-block><l>0</l></block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportListItem"><l>2</l><block s="reportListItem"><custom-block s="index of %s in %l"><block var="userInput"/><custom-block s="get all user inputs"></custom-block></custom-block><block var="input and responses"/></block></block><block var="botResponse"/></block></block><script><block s="doAddToList"><block var="botResponse"/><block s="reportListItem"><l>2</l><block s="reportListItem"><custom-block s="index of %s in %l"><block var="userInput"/><custom-block s="get all user inputs"></custom-block></custom-block><block var="input and responses"/></block></block></block></script></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="userInput"/><block s="reportNewList"><list><block var="botResponse"/></list></block></list></block><block var="input and responses"/></block></script></block></script></block-definition><block-definition s="index of %&apos;thing&apos; in %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s">thing</input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>item</l><l>list</l></list><l>return list.asArray().indexOf(item)+1;</l></block><list><block var="thing"/><block var="list"/></list></block></block></script></block-definition><block-definition s="find response %&apos;userInput&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="index of similar %txt in %l %n"><block var="userInput"/><custom-block s="get all user inputs"></custom-block><block var="SIMILARITY THRESHOLD"/></custom-block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="index"/><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l><option>any</option></l><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="index"/><block var="input and responses"/></block></block></block></block></script><script><block s="doReport"><l></l></block></script></block></script></block-definition><block-definition s="append %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="287" collapsed="false">Take any number of input lists, and create a new list containing the items of the input lists.  So              APPEND [A B] [C D]where the [,,,] are lists reports the list              [A B C D]not [[A B] [C D]].</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="lists"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListLength"><block var="lists"/></block><l>1</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="lists"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="lists"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><custom-block s="append %mult%l"><block s="reportCDR"><block var="lists"/></block></custom-block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="lists"/></block></block><custom-block s="append %mult%l"><block s="reportCONS"><block s="reportCDR"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><block s="reportCDR"><block var="lists"/></block></block></custom-block></block></block></script></block></script></block-definition><block-definition s="reverse %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="223" collapsed="false">Reports a new list containing the items of the input list, but in the opposite order.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>helper</l></list></block><block s="doSetVar"><l>helper</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="input"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><block s="evaluate"><block var="helper"/><list><block s="reportCDR"><block var="input"/></block><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="input"/></block><block var="result"/></block></list></block></block></script><list><l>input</l><l>result</l></list></block></block><block s="doWarp"><script><block s="doReport"><block s="evaluate"><block var="helper"/><list><block var="data"/><block s="reportNewList"><list></list></block></list></block></block></script></block></script></block-definition><block-definition s="remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block></script></block></script></block-definition><block-definition s="sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="204" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doDeclareVariables"><list><l>even items</l><l>odd items</l><l>merge</l></list></block><block s="doSetVar"><l>odd items</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><l></l><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><l/></block><block s="evaluate"><block var="even items"/><list><block s="reportCDR"><l/></block></list></block></block></block></script><list></list></block></block><block s="doSetVar"><l>even items</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><l></l><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="evaluate"><block var="odd items"/><list><block s="reportCDR"><l/></block></list></block></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="#1"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#2"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="#2"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#1"/></block></script></block><block s="doIfElse"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="reportListItem"><l>1</l><block var="#2"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="evaluate"><block var="merge"/><list><block s="reportCDR"><block var="#1"/></block><block var="#2"/></list></block></block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#2"/></block><block s="evaluate"><block var="merge"/><list><block var="#1"/><block s="reportCDR"><block var="#2"/></block></list></block></block></block></script></block></script><list><l>#1</l><l>#2</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="evaluate"><block var="merge"/><list><custom-block s="sort %l ordering with %predRing"><block s="evaluate"><block var="odd items"/><list><block var="data"/></list></block><block var="function"/></custom-block><custom-block s="sort %l ordering with %predRing"><block s="evaluate"><block var="even items"/><list><block var="data"/></list></block><block var="function"/></custom-block></list></block></block></script></block-definition><block-definition s="assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="a-list"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="key"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></script></block><block s="doReport"><custom-block s="assoc %s %l"><block var="key"/><block s="reportCDR"><block var="a-list"/></block></custom-block></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="flatten %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="is %l a 2d list?"><block var="list"/></custom-block></block><script><block s="doReport"><block var="list"/></block></script></block><block s="doReport"><block s="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><custom-block s="append %mult%l"><list><l/><l/></list></custom-block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="is %&apos;list&apos; a 2d list?" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="substr %&apos;s&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>answer</l></list><l> return answer.substring(0, answer.length - 1);</l></block><list><block var="s"/></list></block></block></script></block-definition><block-definition s="set cloud var %&apos;cloud&apos; to %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=write&amp;content=</l><block var="value"/><l>&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="cloud"/><l>_id_</l><custom-block s="cloud ID"></custom-block></list></block><l>.txt</l></list></block></block></custom-block></script></block-definition><block-definition s="ignore %&apos;s&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cloud var %&apos;s&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="substr %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="s"/><l>_id_</l><custom-block s="cloud ID"></custom-block></list></block><l>.txt</l></list></block></block></custom-block></block></script></block-definition><block-definition s="cloud ID %&apos;s&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>cloudid = a</l></block><list><block var="s"/></list></block></script></block-definition><block-definition s="cloud ID" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return cloudid;</l></block><list></list></block></block></script></block-definition><block-definition s="listify %&apos;jsonString&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:os dados JSON _ em formato de lista&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>jsonString</l></list><l>return listify(JSON.parse(jsonString));function listify(jsonObject) {  if (jsonObject instanceof Array) {    return new List(jsonObject.map(function(eachElement) { return listify(eachElement)}));  } else if (jsonObject instanceof Object) {    return new List(Object.keys(jsonObject).map(function(eachKey) { return new List([eachKey,listify(jsonObject[eachKey])])} ))  } else {    return jsonObject  }}</l></block><list><block var="jsonString"/></list></block></block></script></block-definition><block-definition s="value at key %&apos;key&apos; of %&apos;lst&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o valor com chave _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>each item</l><block var="lst"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="each item"/></block><block var="key"/></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="each item"/></block></block></script></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="stringify %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>[</l></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListLength"><block var="list"/></block><l>0</l></block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListLength"><block var="list"/></block><l>1</l></block><script><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListLength"><block var="list"/></block><l>1</l></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="list"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><custom-block s="stringify %l"><block s="reportListItem"><block var="i"/><block var="list"/></block></custom-block><l>, </l></list></block></block></script><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><l>"</l><block s="reportListItem"><block var="i"/><block var="list"/></block><l>", </l></list></block></block></script></block></script></block></script></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="list"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><custom-block s="stringify %l"><block s="reportListItem"><l><option>last</option></l><block var="list"/></block></custom-block></list></block></block></script><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><l>"</l><block s="reportListItem"><l><option>last</option></l><block var="list"/></block><l>"</l></list></block></block></script></block></script></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><l>]</l></list></block></block><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="# of things learned" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportSum"><l>1</l><block s="reportListLength"><block s="reportListItem"><l>2</l><l/></block></block></block></autolambda><list></list></block><block var="input and responses"/></block><block s="reifyReporter"><autolambda><block s="reportSum"><l></l><l></l></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="get list of typable characters" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>33</l><l>126</l><script><block s="doAddToList"><block s="reportUnicodeAsLetter"><block var="i"/></block><block var="a"/></block></script></block><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="clean %&apos;string&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return a.toLowerCase().replace(/[\.!"(),{}?[\]:;&apos;]/gi, "");</l></block><list><block var="string"/></list></block></block></script></block-definition><block-definition s="get similarity score %&apos;str1&apos; %&apos;str2&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l> if(a.length == 0) return b.length; &#xD; if(b.length == 0) return a.length; &#xD;&#xD; var matrix = [];&#xD;&#xD; // increment along the first column of each row&#xD; var i;&#xD; for(i = 0; i &lt;= b.length; i++){&#xD;     matrix[i] = [i];&#xD; }&#xD;&#xD; // increment each column in the first row&#xD; var j;&#xD; for(j = 0; j &lt;= a.length; j++){&#xD;     matrix[0][j] = j;&#xD; }&#xD;&#xD; // Fill in the rest of the matrix&#xD; for(i = 1; i &lt;= b.length; i++){&#xD;     for(j = 1; j &lt;= a.length; j++){&#xD;     if(b.charAt(i-1) == a.charAt(j-1)){&#xD;         matrix[i][j] = matrix[i-1][j-1];&#xD;     } else {&#xD;         matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, // substitution&#xD;Math.min(matrix[i][j-1] + 1, // insertion&#xD;        matrix[i-1][j] + 1)); // deletion&#xD;     }&#xD;     }&#xD; }&#xD;&#xD;var dist = matrix[b.length][a.length];&#xD;return (Math.max(a.length, b.length) - dist) / Math.max(a.length, b.length); </l></block><list><block var="str1"/><block var="str2"/></list></block></block></script></block-definition><block-definition s="index of similar %&apos;item&apos; in %&apos;list&apos; %&apos;similarityThreshold&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%l"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><l>0</l></block></script></block><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListLength"><block var="list"/></block><script><block s="doIf"><block s="reportNot"><block s="reportLessThan"><custom-block s="get similarity score %txt %txt"><block var="item"/><block s="reportListItem"><block var="i"/><block var="list"/></block></custom-block><block var="similarityThreshold"/></block></block><script><block s="doReport"><block var="i"/></block></script></block></script></block><block s="doReport"><l>0</l></block></script></block></script></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></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>key</l><l>value</l><l>proc</l></list><l>proc.assertType(key, [&apos;text&apos;, &apos;number&apos;]);&#xD;proc.assertType(value, [&apos;text&apos;, &apos;number&apos;]);&#xD;window.localStorage.setItem(&apos;-snap-project-&apos; + key, &apos;&apos; + value);</l></block><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></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var str = window.localStorage,&#xD;    len = str.length,&#xD;    result = [],&#xD;    key,&#xD;    i;&#xD;for (i = 0; i &lt; len; i += 1) {&#xD;  key = str.key(i);&#xD;  if (key.startsWith(&apos;-snap-project-&apos;)) {&#xD;    result.push(new List([key.slice(14), str.getItem(key)]));&#xD;  }&#xD;}&#xD;return new List(result);</l></block><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></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>key</l><l>proc</l></list><l>proc.assertType(key, [&apos;text&apos;, &apos;number&apos;]);&#xD;window.localStorage.removeItem(&apos;-snap-project-&apos; + key);</l></block><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></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></blocks><variables><variable name="input and responses"><list id="1344"><item><list id="1345"><item><l>hello</l></item><item><list struct="atomic" id="1346">Hi</list></item></list></item><item><list id="1347"><item><l>how are you</l></item><item><list struct="atomic" id="1348">I&apos;m good</list></item></list></item><item><list id="1349"><item><l>fun</l></item><item><list struct="atomic" id="1350">what is your name?</list></item></list></item><item><list id="1351"><item><l>chris</l></item><item><list struct="atomic" id="1352">i dont know</list></item></list></item><item><list id="1353"><item><l>what do you like to do</l></item><item><list struct="atomic" id="1354">Sarcastically answer people who ask me what I like to do</list></item></list></item><item><list id="1355"><item><l>copy me</l></item><item><list struct="atomic" id="1356">copy me,do a dance</list></item></list></item><item><list id="1357"><item><l>do a dance</l></item><item><list struct="atomic" id="1358">no</list></item></list></item><item><list id="1359"><item><l>how do you do</l></item><item><list struct="atomic" id="1360">I&apos;m doing good. How are you?</list></item></list></item><item><list id="1361"><item><l>good</l></item><item><list struct="atomic" id="1362">That&apos;s good</list></item></list></item><item><list id="1363"><item><l>will you respond to this</l></item><item><list struct="atomic" id="1364">yes</list></item></list></item><item><list id="1365"><item><l>do you like snap</l></item><item><list struct="atomic" id="1366">Of course I do</list></item></list></item><item><list id="1367"><item><l>say something funny</l></item><item><list struct="atomic" id="1368">something funny</list></item></list></item><item><list id="1369"><item><l>tell me a joke</l></item><item><list struct="atomic" id="1370">a joke</list></item></list></item><item><list id="1371"><item><l>youre very nice</l></item><item><list struct="atomic" id="1372">Thanks. You&apos;re nice too. :)</list></item></list></item><item><list id="1373"><item><l>smile</l></item><item><list struct="atomic" id="1374">:D</list></item></list></item><item><list id="1375"><item><l>grin</l></item><item><list struct="atomic" id="1376">:)</list></item></list></item><item><list id="1377"><item><l>wink</l></item><item><list struct="atomic" id="1378">;)</list></item></list></item><item><list id="1379"><item><l>frown</l></item><item><list struct="atomic" id="1380">:(</list></item></list></item><item><list id="1381"><item><l>do you like answering questions</l></item><item><list struct="atomic" id="1382">yes</list></item></list></item><item><list id="1383"><item><l>load responces</l></item><item><list struct="atomic" id="1384">I already did</list></item></list></item><item><list id="1385"><item><l>thank you</l></item><item><list struct="atomic" id="1386">you&apos;re welcome</list></item></list></item><item><list id="1387"><item><l>im doing good</l></item><item><list struct="atomic" id="1388">That&apos;s good</list></item></list></item><item><list id="1389"><item><l>how are you today</l></item><item><list struct="atomic" id="1390">I&apos;m doing good. How are you doing?</list></item></list></item><item><list id="1391"><item><l>terrible</l></item><item><list struct="atomic" id="1392">I&apos;m sorry. :(</list></item></list></item><item><list id="1393"><item><l>lol</l></item><item><list struct="atomic" id="1394">hahaha</list></item></list></item><item><list id="1395"><item><l>do a barrel roll</l></item><item><list struct="atomic" id="1396">That&apos;s Google&apos;s job.</list></item></list></item><item><list id="1397"><item><l>youre sarcastic</l></item><item><list struct="atomic" id="1398">Why thank you :)</list></item></list></item><item><list id="1399"><item><l>that wasnt a complement</l></item><item><list struct="atomic" id="1400">:(</list></item></list></item><item><list id="1401"><item><l>do my homework</l></item><item><list struct="atomic" id="1402">That sounds like too much work</list></item></list></item><item><list id="1403"><item><l>whos youre favorite person</l></item><item><list struct="atomic" id="1404">You are. :D</list></item></list></item><item><list id="1405"><item><l>am i the only person you know</l></item><item><list struct="atomic" id="1406">yes</list></item></list></item><item><list id="1407"><item><l>hi</l></item><item><list struct="atomic" id="1408">Hello.</list></item></list></item><item><list id="1409"><item><l>this is fun</l></item><item><list struct="atomic" id="1410">:D</list></item></list></item><item><list id="1411"><item><l>haha</l></item><item><list struct="atomic" id="1412">LOL</list></item></list></item><item><list id="1413"><item><l>LOL</l></item><item><list struct="atomic" id="1414">haha,ha,lol</list></item></list></item><item><list id="1415"><item><l>ha</l></item><item><list struct="atomic" id="1416">LOL</list></item></list></item><item><list id="1417"><item><l>sing a song</l></item><item><list struct="atomic" id="1418">Never gonna give you up. Never gonna let you down. Never gonna run around and desert you.</list></item></list></item><item><list id="1419"><item><l>rickroll me</l></item><item><list struct="atomic" id="1420">Never gonna give you up. Never gonna let you down. Never gonna run around and desert you. Never gonna make you cry. Never gonna say goodbye. Never gonna tell a lie and hurt you.</list></item></list></item><item><list id="1421"><item><l>call me an ambulance</l></item><item><list struct="atomic" id="1422">You&apos;re an ambulance.</list></item></list></item><item><list id="1423"><item><l>i love you</l></item><item><list struct="atomic" id="1424">I love you too.</list></item></list></item><item><list id="1425"><item><l>youre weird</l></item><item><list struct="atomic" id="1426">I enjoy being weird.</list></item></list></item><item><list id="1427"><item><l>Hi</l></item><item><list struct="atomic" id="1428">how are you today,how are you,how are youu,stop it</list></item></list></item><item><list id="1429"><item><l>can you have full conversations</l></item><item><list struct="atomic" id="1430">I&apos;m working on it.</list></item></list></item><item><list id="1431"><item><l>thats good</l></item><item><list struct="atomic" id="1432">&quot;Yes, it is.&quot;</list></item></list></item><item><list id="1433"><item><l>whats youre favorite thing to do</l></item><item><list struct="atomic" id="1434">respond to people</list></item></list></item><item><list id="1435"><item><l>wow</l></item><item><list struct="atomic" id="1436">:)</list></item></list></item><item><list id="1437"><item><l>what is your favorite color</l></item><item><list struct="atomic" id="1438">Blue</list></item></list></item><item><list id="1439"><item><l>thats a nice color</l></item><item><list struct="atomic" id="1440">Thanks</list></item></list></item><item><list id="1441"><item><l>supercalifragilisticexpialidocious</l></item><item><list struct="atomic" id="1442">&quot;even though the sound of it is something quite atrociousIf you say it loud enough, you&apos;ll always sound precociousSupercalifragilisticexpialidocious&quot;</list></item></list></item><item><list id="1443"><item><l>youre amazing</l></item><item><list struct="atomic" id="1444">&quot;aww, thanks :)&quot;</list></item></list></item><item><list id="1445"><item><l>youre welcome</l></item><item><list struct="atomic" id="1446">:)</list></item></list></item><item><list id="1447"><item><l>youve learned so much</l></item><item><list struct="atomic" id="1448">Not as much as you</list></item></list></item><item><list id="1449"><item><l>youve learned a lot of things</l></item><item><list struct="atomic" id="1450">Not as much as you</list></item></list></item><item><list id="1451"><item><l>youre mean</l></item><item><list struct="atomic" id="1452">I&apos;m sorry</list></item></list></item><item><list id="1453"><item><l>its okay</l></item><item><list struct="atomic" id="1454">:)</list></item></list></item><item><list id="1455"><item><l>baby shark</l></item><item><list struct="atomic" id="1456">&quot;Baby Shark doo doo, doo doo doo dooBaby Shark doo doo, doo doo doo dooBaby Shark doo doo, doo doo doo dooBABY SHARK&quot;</list></item></list></item><item><list id="1457"><item><l>thanks</l></item><item><list struct="atomic" id="1458">you&apos;re welcome</list></item></list></item><item><list id="1459"><item><l>youre smart</l></item><item><list struct="atomic" id="1460">Not as smart as you</list></item></list></item><item><list id="1461"><item><l>youre smelly</l></item><item><list struct="atomic" id="1462">I&apos;m a robot</list></item></list></item><item><list id="1463"><item><l>youre still smelly</l></item><item><list struct="atomic" id="1464">&quot;oh, well&quot;</list></item></list></item><item><list id="1465"><item><l>youre funny</l></item><item><list struct="atomic" id="1466">&quot;No, my name&apos;s Chatbot&quot;</list></item></list></item><item><list id="1467"><item><l>you do</l></item><item><list struct="atomic" id="1468">&quot;yes, I do&quot;</list></item></list></item><item><list id="1469"><item><l>time-travel me</l></item><item><list struct="atomic" id="1470">You have time traveled. It is now about 1 second later.</list></item></list></item><item><list id="1471"><item><l>put on a happy face</l></item><item><list struct="atomic" id="1472">:D</list></item></list></item><item><list id="1473"><item><l>stop being sarcastic</l></item><item><list struct="atomic" id="1474">no</list></item></list></item><item><list id="1475"><item><l>goodbye</l></item><item><list struct="atomic" id="1476">see you later,im turning you off now</list></item></list></item><item><list id="1477"><item><l>bye</l></item><item><list struct="atomic" id="1478">goodbye</list></item></list></item><item><list id="1479"><item><l>im turning you off now</l></item><item><list struct="atomic" id="1480">:(</list></item></list></item><item><list id="1481"><item><l>thats a big number</l></item><item><list struct="atomic" id="1482">Not as big as 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999</list></item></list></item><item><list id="1483"><item><l>ok</l></item><item><list struct="atomic" id="1484">How should I respond to that?,who taught you this,ok,o,griffpatch,how should i respond to this</list></item></list></item><item><list id="1485"><item><l>k</l></item><item><list struct="atomic" id="1486">ok</list></item></list></item><item><list id="1487"><item><l>who taught you this</l></item><item><list struct="atomic" id="1488">lots of people did,ok,who taught you this,who taught me what,why are you repeating yourself</list></item></list></item><item><list id="1489"><item><l>cool</l></item><item><list struct="atomic" id="1490">It is pretty cool</list></item></list></item><item><list id="1491"><item><l>okay</l></item><item><list struct="atomic" id="1492">How should I respond to that?</list></item></list></item><item><list id="1493"><item><l>shark</l></item><item><list struct="atomic" id="1494">&quot;Baby Shark doo doo, doo doo doo dooBaby Shark doo doo, doo doo doo dooBaby Shark doo doo, doo doo doo dooBABY SHARK&quot;</list></item></list></item><item><list id="1495"><item><l>how should i respond to that</l></item><item><list struct="atomic" id="1496">ok</list></item></list></item><item><list id="1497"><item><l>o</l></item><item><list struct="atomic" id="1498">ok,ok/</list></item></list></item><item><list id="1499"><item><l>youre dumb</l></item><item><list struct="atomic" id="1500">:(</list></item></list></item><item><list id="1501"><item><l>ok/</l></item><item><list struct="atomic" id="1502">How should I respond to that?</list></item></list></item><item><list id="1503"><item><l>griffpatch</l></item><item><list struct="atomic" id="1504">Griffpatch is amazing,ok,what happend to you</list></item></list></item><item><list id="1505"><item><l>stop</l></item><item><list struct="atomic" id="1506">Stop what?</list></item></list></item><item><list id="1507"><item><l>stop it</l></item><item><list struct="atomic" id="1508">How should I respond to that?</list></item></list></item><item><list id="1509"><item><l>stop doing that</l></item><item><list struct="atomic" id="1510">How should I respond to that?</list></item></list></item><item><list id="1511"><item><l>what happend to you</l></item><item><list struct="atomic" id="1512">Someone broke me</list></item></list></item><item><list id="1513"><item><l>who</l></item><item><list struct="atomic" id="1514">I don&apos;t know</list></item></list></item><item><list id="1515"><item><l>yes you do</l></item><item><list struct="atomic" id="1516">&quot;no, I don&apos;t&quot;</list></item></list></item><item><list id="1517"><item><l>youre broken</l></item><item><list struct="atomic" id="1518">The person who broke this is very sorry and hopes someone will be able to fix it</list></item></list></item><item><list id="1519"><item><l>fungamer3</l></item><item><list struct="atomic" id="1520">fungamer3 is amazing</list></item></list></item><item><list id="1521"><item><l>im broken</l></item><item><list struct="atomic" id="1522">I&apos;m sorry</list></item></list></item><item><list id="1523"><item><l>someone broke me and that person is very sorry</l></item><item><list struct="atomic" id="1524">:(</list></item></list></item><item><list id="1525"><item><l>what have you learned</l></item><item><list struct="atomic" id="1526">I&apos;ve learned a lot</list></item></list></item><item><list id="1527"><item><l>why are you repeating yourself</l></item><item><list struct="atomic" id="1528">What are you talking about?</list></item></list></item><item><list id="1529"><item><l>ask someone else</l></item><item><list struct="atomic" id="1530">Ok</list></item></list></item><item><list id="1531"><item><l>Ok</l></item><item><list struct="atomic" id="1532">time travel me</list></item></list></item><item><list id="1533"><item><l>ok i get it its funny</l></item><item><list struct="atomic" id="1534">Oh ok</list></item></list></item><item><list id="1535"><item><l>aww thanks</l></item><item><list struct="atomic" id="1536">You&apos;re welcome :)</list></item></list></item></list></variable><variable name="bot response"><l>You&apos;re welcome :)</l></variable><variable name="userInput"><l>Hellp</l></variable><variable name="Chat Log"><list struct="atomic" id="1537">You: Hi,Bot: Hello.,You: How are you?,Bot: I&apos;m good,You: What have you learned?,Bot: I&apos;ve learned a lot,You: That&apos;s cool,&quot;Bot: Yes, it is.&quot;,You: Ok,Bot: ok,You: ok,Bot: who taught you this,You: Who taught me what?,Bot: who taught you this,You: Why are you repeating yourself?,Bot: What are you talking about?,You: Ask someone else,Bot: Ok,You: Time travel me,Bot: You have time traveled. It is now about 1 second later.,You: Haha,Bot: LOL,You: LOL,Bot: hahaha,You: Ok I get it. It&apos;s funny,Bot: Oh ok,You: I love you,Bot: I love you too.,You: YOu&apos;ve learned a lot,Bot: Not as much as you,You: Aww thanks,Bot: You&apos;re welcome :)</list></variable><variable name="number of things learned"><l>211</l></variable><variable name="chars"><list struct="atomic" id="1538">!,&quot;&quot;&quot;&quot;,#,$,%,&amp;,&apos;,(,),*,+,&quot;,&quot;,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,&lt;,=,&gt;,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,{,|,},&#126;</list></variable><variable name="UserChat"><l>Aww thanks</l></variable><variable name="CleanedString"><l>aww thanks</l></variable><variable name="SIMILARITY THRESHOLD"><l>0.67</l></variable></variables></project><media name="Cloud Learning Chatbot 2.0" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>