<snapdata remixID="9292682"><project name="U2L2.3 Caesar Cipher" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAFAUlEQVR4Xu3VQSusYRTA8TNk4wNY2SsWNqTsKBspkZSUoskCJVHKSopSLJQsZCElJfEBJGWhlCULaz6BhUh5b89zm2lmDEfjPZ3m3v/dzXTmnJnf/O/IJEmSCP8QcBLIEKCTPGejAAESgqsAAbryc5wAacBVgABd+TlOgDTgKkCArvwcJ0AacBUgQFd+jhMgDbgKEKArP8cJkAZcBQjQlZ/jBEgDrgIE6MrPcQKkAVcBAnTl5zgB0oCrAAG68nOcAGnAVYAAXfk5ToA04CpAgK78HCdAGnAVIEBXfo4TIA24ChCgKz/HCZAGXAUI0JWf4wRIA64CBOjKz3ECpAFXAQJ05ec4AdKAqwABuvJznABpwFWAAF35OU6ANOAqQICu/BwnQBpwFSBAV36OEyANuAoQoCs/xwmQBlwFCNCVn+MESAOuAgToys9xAqQBVwECdOXnOAHSgKsAAbryc5wAacBVgABd+TlOgDTgKkCAKfB/fHxITU1NCpv+rvhq30/ulM785DWpvfEKFlV1gAMDA1JfXy8vLy9ydnZWwcdP5yWnp6cyODiYzjIR+Wrf1NSU7OzsfHtnZmZGtre38zOlj1N7kyktqvoAc+G9vr7KyMiILC0tydraWgwyBJr70sLjq6sr2d/fl97eXunr64vz4fm5uTlZWVmRsbExaWlpkfv7+/j88PBwZK6trZWjo6O4r3R/mDk+Pv70H+Dt7U1WV1fj3pubG3l8fJTDw0NZX1+XxcXFOF/u/ZTuCzdDkJlMJn6W5uZmubi4yH++wvcT3ut3AYZdhfdTauhXa/65AOvq6iJIiCKbzcre3l4R0NPTkzQ2NsbnkiSRu7u7GGwusFzQ5+fn0tPTU/Ta8AUW7l9YWJCNjY0Y1ujo6KcvIsyHfyGS9vZ2mZ2dla2trfjcw8ODNDU1SeH70fbl/jPlIit9P1qA5e7/qp4UXlz1Aba1tcnt7W3+F6Grq0suLy/j46GhIenu7pYQU3i8ubkpz8/P0tDQINPT05EvfIm56Mr9SQ+/ku/v7zHQ8OtUuD/Md3Z2yvX1tSwvL0tra2vRVxLi7+/vl8nJyfz7K/yFK30/5faF505OTuKvcPg84Rd8YmJCdnd3ZXx8vOj9hD+94Ve1o6ND5ufn45/iwsdh11e/2Cm0VNGKqg6wok9c8qLwZ/fg4OBTjGnsZocu8N8HqBMxYSlAgJa67FYFCFAlYsBSgAAtddmtChCgSsSApQABWuqyWxUgQJWIAUsBArTUZbcqQIAqEQOWAgRoqctuVYAAVSIGLAUI0FKX3aoAAapEDFgKEKClLrtVAQJUiRiwFCBAS112qwIEqBIxYClAgJa67FYFCFAlYsBSgAAtddmtChCgSsSApQABWuqyWxUgQJWIAUsBArTUZbcqQIAqEQOWAgRoqctuVYAAVSIGLAUI0FKX3aoAAapEDFgKEKClLrtVAQJUiRiwFCBAS112qwIEqBIxYClAgJa67FYFCFAlYsBSgAAtddmtChCgSsSApQABWuqyWxUgQJWIAUsBArTUZbcqQIAqEQOWAgRoqctuVYAAVSIGLAUI0FKX3aoAAapEDFgKEKClLrtVAQJUiRiwFCBAS112qwIEqBIxYClAgJa67FYFCFAlYsBSgAAtddmtChCgSsSApQABWuqyWxUgQJWIAUsBArTUZbcqQIAqEQOWAgRoqctuVYAAVSIGLAX+AGgDLsbvSvXyAAAAAElFTkSuQmCC</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="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAfyElEQVR4Xu3dD5BlWV0f8HNed+/g8m92YUcg/KlS/K+wuyUaRGATRbNht999s7b/YqitgFskkfgvgMbErAXRxASiqCmzIoIoYnU5776eVDYSiBtiMKCyG8kqIikVEZJN3B10dzOz031v6nTdN/W26Vm6e6bneM5+uooCet575/w+vzPv+8798yYGPwQIECBAgMAlF4iXfEQDEiBAgAABAkEAWwQECBAgQCCDgADOgG5IAgQIECAggK0BAgQIECCQQUAAZ0A3JAECBAgQEMDWAAECBAgQyCAggDOgG5IAAQIECAhga4AAAQIECGQQEMAZ0A1JgAABAgQEsDVAgAABAgQyCAjgDOiGJECAAAECAtgaIECAAAECGQQEcAZ0QxIgQIAAAQFsDRAgQIAAgQwCAjgDuiEJECBAgIAAtgYIECBAgEAGAQGcAd2QBAgQIEBAAFsDBAgQIEAgg4AAzoBuSAIECBAgIICtAQIECBAgkEFAAGdANyQBAgQIEBDA1gABAgQIEMggIIAzoBuSAAECBAgIYGuAAAECBAhkEBDAGdANSYAAAQIEBLA1QIAAAQIEMggI4AzohiRAgAABAgLYGiBAgAABAhkEBHAGdEMSIECAAAEBbA0QIECAAIEMAgI4A7ohCRAgQICAALYGCBAgQIBABgEBnAHdkAQIECBAQABbAwQIECBAIIOAAM6AbkgCBAgQICCArQECBAgQIJBBQABnQDckAQIECBAQwNYAAQIECBDIICCAM6AbkgABAgQICGBrgAABAgQIZBAQwBnQDUmAAAECBASwNUCAAAECBDIICOAM6IYkQIAAAQIC2BogQIAAAQIZBARwBnRDEiBAgAABAWwNECBAgACBDAICOAO6IQkQIECAgAC2BggQIECAQAYBAZwB3ZAECBAgQEAAWwMECBAgQCCDgADOgG5IAgQIECAggK0BAgQIECCQQUAAZ0A3JAECBAgQEMDWAAECBAgQyCAggDOgG5IAAQIECAhga4AAAQIECGQQEMAZ0A1JgAABAgQEsDVAgAABAgQyCAjgDOiGJECAAAECAtgaIECAAAECGQQEcAZ0QxIgQIAAAQFsDRAgQIAAgQwCAjgDuiEJECBAgIAAtgYIECBAgEAGAQGcAd2QBAgQIEBAAFsDBAgQIEAgg4AAzoBuSAIECBAgIICtAQIECBAgkEFAAGdANyQBAgQIEBDA1gABAgQIEMggIIAzoBuSAAECBAgIYGuAAAECBAhkEBDAGdANSYAAAQIEBLA1QIAAAQIEMggI4AzohiRAgAABAgLYGiBAgAABAhkEBHAGdEMSIECAAAEBbA0QIECAAIEMAgI4A7ohCRAgQICAALYGCBAgQIBABgEBnAHdkAQIECBAQABbAwQIECBAIIOAAM6AbkgCBAgQICCArQECBAgQIJBBQABnQDckAQIECBAQwNYAAQIECBDIICCAM6AbkgABAgQICGBrgAABAgQIZBAQwBnQDUmAAAECBASwNUCAAAECBDIICOAM6IYkQIAAAQIC2BogQIAAAQIZBARwBnRDEiBAgAABAWwNECBAgACBDAICOAO6IQkQIECAgAC2BggQIECAQAYBAZwB3ZAECBAgQEAAWwMECBAgQCCDgADOgG5IAgQIECAggK0BAgQIECCQQUAAZ0A3JAECBAgQEMDWAAECBAgQyCAggDOgG5IAAQIECAhga4AAAQIECGQQEMAZ0A1JgAABAgQEsDVAgAABAgQyCAjgDOiGJECAAAECAtgaIECAAAECGQQEcAZ0QxIgQIAAAQFsDRAgQIAAgQwCAjgDuiEJECBAgIAAtgYIECBAgEAGAQGcAd2QBAgQIEBAAFsDBAgQIEAgg4AAzoBuSAIECBAgIICtAQIECBAgkEFAAGdANyQBAgQIEBDA1gABAgQIEMggIIAzoBuSAAECBAgIYGuAAAECBAhkEBDAGdANSYAAAQIEBLA1QIAAAQIEMggI4AzohiRAgAABAgLYGiBAgAABAhkEBHAGdEMSIECAAAEBbA0QIECAAIEMAgI4A7ohCRAgQICAALYGCBAgQIBABgEBnAHdkAQIECBAQABbAwQIECBAIIOAAM6AbkgCBAgQICCArQECBAgQIJBBQABnQDckAQIECBAQwNYAAQIECBDIICCAM6AbkgABAgQICGBrgAABAgQIZBAQwBnQDUmAAAECBASwNUCAAAECBDIICOAM6IYkQIAAAQIC2BogQIAAAQIZBARwBnRDEiBAgAABAWwNECBAgACBDAICOAO6IQkQIECAgAC2BggQIECAQAYBAZwB3ZAECBAgQEAAWwMECBAgQCCDgADOgG5IAgQIECAggK0BAgQI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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><watcher var="decrpted word" style="normal" x="2.5" y="2.499999999999993" color="243,118,29" hidden="true"/><watcher var="encrypted word" style="normal" x="4.5" y="63.000001" color="243,118,29" hidden="true"/><watcher var="shifts" style="normal" x="5.5" y="29.750000500000006" color="243,118,29" hidden="true"/><watcher var="inputted word" style="normal" x="5" y="94" color="243,118,29" hidden="true"/><sprite name="Sprite" idx="1" x="140.0390625" y="2.842170943040401e-14" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="middle" id="12"><costumes><list id="13"><item><costume name="Untitled" center-x="240" center-y="180" image="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" id="14"/></item></list></costumes><sounds><list struct="atomic" id="15"></list></sounds><blocks></blocks><variables></variables><scripts><script x="34" y="30"><block s="receiveGo"></block><block s="clear"></block><block s="doSetVar"><l>decrpted word</l><l></l></block><block s="doSetVar"><l>inputted word</l><l></l></block><block s="doSetVar"><l>shifts</l><l></l></block><block s="doSetVar"><l>encrypted word</l><l></l></block><block s="doAsk"><l>Would you like to decode or encode?</l></block><custom-block s="Encode a word"></custom-block><custom-block s="Decode a word:"></custom-block></script><script x="404" y="121"><block s="reportUnicode"><block var="decrpted word"/></block></script><script x="472" y="411"><custom-block s="decode one letter: %s shift: %s"><l></l><l></l></custom-block></script><script x="457.5498056875" y="362.000001"><custom-block s="encode one letter: %s shift: %s"><l></l><l></l></custom-block></script></scripts></sprite><watcher var="Encode a word" style="normal" x="10" y="10" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="join words %words" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="shift letter %letter by shift %shift" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.000001" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a primeira palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bf</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bf</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportGreaterThan"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doSetVar"><l>bf</l><block s="reportJoinWords"><list><block var="bf"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block var="bf"/></block></script></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportEquals"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.99999999999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a última palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bl</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bl</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><l>1</l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportLessThan"><block var="index"/><l>1</l></block><script><block s="doSetVar"><l>bl</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="bl"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doReport"><block var="bl"/></block></script></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>first</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>first</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block></script></block><block s="doReport"><block var="first"/></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations>pt:o último caractere de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportLetter"><block s="reportStringSize"><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a última palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>last</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>last</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block></script></block><block s="doReport"><block var="last"/></block></script></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations>pt:a palavra _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.</comment><header></header><code></code><translations>pt:a frase _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;pt:uma frase com as palavras _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="words"/></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;pt:uma frase com as palavras em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="146.42857142857144" collapsed="false">report a list in which each item is one letter from the input word</comment><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;pt:uma lista com os caracteres da palavra _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="158.57142857142858" collapsed="false">join all the items of the input list&#xD;into a single word, and report it</comment><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;pt:uma palavra com os caracteres em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="encode one letter: %&apos;letter&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script></block-definition><block-definition s="decode one letter: %&apos;letter&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportDifference"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script></block-definition><block-definition s="encode a message: %&apos;message&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="encode one letter: %s shift: %s"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><custom-block s="word $arrowRight list %txt"><block var="message"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="decode a message: %&apos;message&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="decode one letter: %s shift: %s"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><custom-block s="word $arrowRight list %txt"><block var="message"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="Encode a word" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>encode</l></block><script><block s="doAsk"><l>What would you like to encrypt?</l></block><block s="doSetVar"><l>inputted word</l><block s="getLastAnswer"></block></block><block s="doWait"><l>.5</l></block><block s="doAsk"><l>How many shifts?</l></block><block s="doSetVar"><l>shifts</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>encrypted word</l><custom-block s="encode a message: %s shift: %s"><block var="inputted word"/><block var="shifts"/></custom-block></block><block s="gotoXY"><l>-100</l><l>0</l></block><block s="write"><block s="reportJoinWords"><list><l>Encrypted word:</l><block var="encrypted word"/></list></block><l>20</l></block></script></block></script></block-definition><block-definition s="Decode a word:" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>decode</l></block><script><block s="doAsk"><l>What would you like to decrypt?</l></block><block s="doSetVar"><l>inputted word</l><block s="getLastAnswer"></block></block><block s="doWait"><l>.5</l></block><block s="doAsk"><l>How many shifts?</l></block><block s="doSetVar"><l>shifts</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>decrpted word</l><custom-block s="decode a message: %s shift: %s"><block var="inputted word"/><block var="shifts"/></custom-block></block><block s="gotoXY"><l>-100</l><l>0</l></block><block s="write"><block s="reportJoinWords"><list><l>Decrypted word:</l><block var="decrpted word"/></list></block><l>20</l></block></script></block></script></block-definition></blocks><variables><variable name="decrpted word"><l>hello</l></variable><variable name="shifts"><l>3</l></variable><variable name="encrypted word"><l></l></variable><variable name="inputted word"><l>khoor</l></variable><variable name="Encode a word"><l>0</l></variable></variables></project><media name="U2L2.3 Caesar Cipher" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>