<?xml version="1.0" encoding="UTF-16"?>
<!DOCTYPE BlockLangDef SYSTEM "lang_def.dtd">

<!-- 


This describes every BlockGenus, BlockDrawer, BlockFamilies in Starlogo-TNG.

Note: For BlockGenus, if genus A relies on another genus B, that genus B must be 
specified in the xml file before genus A is specified.  We impose this requirement so 
that sanity checks can be made regarding the validity of a default argument when the
BlockGenuses are first loaded. 

-->

<BlockLangDef>

	<BlockConnectorShapes>
		<BlockConnectorShape shape-type="number" shape-number="1"></BlockConnectorShape>
		<BlockConnectorShape shape-type="number-list" shape-number="2"></BlockConnectorShape>
		<BlockConnectorShape shape-type="number-inv" shape-number="3"></BlockConnectorShape>
		<BlockConnectorShape shape-type="boolean" shape-number="4"></BlockConnectorShape>
		<BlockConnectorShape shape-type="boolean-list" shape-number="5"></BlockConnectorShape>
		<BlockConnectorShape shape-type="boolean-inv" shape-number="6"></BlockConnectorShape>
		<BlockConnectorShape shape-type="string" shape-number="7"></BlockConnectorShape>
		<BlockConnectorShape shape-type="string-list" shape-number="8"></BlockConnectorShape>
		<BlockConnectorShape shape-type="string-inv" shape-number="9"></BlockConnectorShape>
		<BlockConnectorShape shape-type="poly" shape-number="10"></BlockConnectorShape>
		<BlockConnectorShape shape-type="poly-list" shape-number="11"></BlockConnectorShape>
		<BlockConnectorShape shape-type="poly-inv" shape-number="12"></BlockConnectorShape>
		<BlockConnectorShape shape-type="proc-param" shape-number="13"></BlockConnectorShape>
		<BlockConnectorShape shape-type="cmd" shape-number="14"></BlockConnectorShape>
	</BlockConnectorShapes>
	
	<BlockGenuses>
		<!-- Stub Genuses 
			Do not remove unless you would like to remove the stub feature all together
		-->
		
		<BlockGenus name="getter" kind="data" initlabel="" color="0 0 0" >
			<description>
				<text>
					Reports the value of the variable.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="poly" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="setter" kind="command" initlabel="" color="0 0 0" label-prefix="set ">
			<description>
				<text>
					Sets the value of the variable.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly" position-type="single"></BlockConnector>
			</BlockConnectors>
		</BlockGenus>
		
		<BlockGenus name="caller" kind="command" initlabel="" color="0 0 0">
			<description>
				<text>
					Calls the procedure of the specified name.
				</text>
			</description>
		</BlockGenus>

		<BlockGenus name="inc" kind="command" initlabel="" color="0 0 0" label-prefix="inc ">
			<description>
				<text>
					Increments the value of the variable number.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="single"></BlockConnector>
			</BlockConnectors>		
		</BlockGenus>
		
		<BlockGenus name="agent" kind="function" initlabel="" color="0 0 0" label-suffix=" of" is-starter="yes" is-terminator="yes">
			<description>
				<text>
					Gets the value of the variable of the agent ID.
				</text>
			</description>
			<BlockConnectors>
			    <BlockConnector connector-kind="plug" connector-type="poly" position-type="single"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number" position-type="single"></BlockConnector>
			</BlockConnectors>	
			<LangSpecProperties>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>			
		</BlockGenus>
		
		<!-- End of Stub Genuses -->
	
		<BlockGenus name="number" kind="data" initlabel="1" editable-label="yes" is-label-value="yes" color="255 0 255">
			<description>
				<text>
					Reports the number shown.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="string" kind="data" initlabel="abc" editable-label="yes" is-label-value="yes" color="255 0 255">
			<description>
				<text>
					Reports the string shown.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>		
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="true" kind="data" initlabel="true" color="255 0 255">
			<description>
				<text>
					Reports the boolean true.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="true"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="false" kind="data" initlabel="false" color="255 0 255">
			<description>
				<text>
					Reports the boolean false.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="false"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- COLORS -->
		
		<BlockGenus name="red" kind="data" initlabel="red" color="255 0 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="15"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="black" kind="data" initlabel="black" color="0 0 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="white" kind="data" initlabel="white" color="255 255 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="9"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="gray" kind="data" initlabel="gray" color="128 128 128">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="5"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="orange" kind="data" initlabel="orange" color="255 165 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="25"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="brown" kind="data" initlabel="brown" color="165 42 42">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="35"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="yellow" kind="data" initlabel="yellow" color="255 255 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="45"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="green" kind="data" initlabel="green" color="0 255 0">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="55"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lime" kind="data" initlabel="lime" color="50 205 50">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="65"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="turquoise" kind="data" initlabel="turquoise" color="0 245 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="75"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="cyan" kind="data" initlabel="cyan" color="0 255 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="85"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="purple" kind="data" initlabel="purple" color="128 0 128">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="115"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="magenta" kind="data" initlabel="magenta" color="255 0 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="125"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sky" kind="data" initlabel="sky" color="135 206 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="95"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="blue" kind="data" initlabel="blue" color="0 0 255">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="105"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pink" kind="data" initlabel="pink" color="255 192 203">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="135"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- MOVEMENT -->
	
		<BlockGenus name="fd" kind="command" initlabel="forward" color="255 0 0">
			<description>
				<text>
					Agents moves <arg n="1"/> steps forward.
				</text>
				<arg-description n="1" name="steps">
					Number of steps to move.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="fd"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
	    <BlockGenus name="bk" kind="command" initlabel="back" color="255 0 0">
			<description>
				<text>
					Agents moves <arg n="1"/> steps backward.
				</text>
				<arg-description n="1" name="steps">
					Number of steps to move.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="bk"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lt" kind="command" initlabel="left" color="255 0 0">
			<description>
				<text>
					Makes agents turn <arg n="1"/> degrees to the left.
				</text>
				<arg-description n="1" name="degs">
					Number of degrees to turn.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="90"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="lt"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="rt" kind="command" initlabel="right" color="255 0 0">
			<description>
				<text>
					Makes agents turn <arg n="1"/> degrees to the right.
				</text>
				<arg-description n="1" name="degs">
					Number of degrees to turn.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="90"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="rt"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="up" kind="command" initlabel="up" color="255 0 0">
			<description>
				<text>
					Heights of agents increase by <arg n="1"/> steps.
				</text>
				<arg-description n="1" name="steps">
					Number of steps to move up.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="up"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="down" kind="command" initlabel="down" color="255 0 0">
			<description>
				<text>
					Heights of agents decrease by <arg n="1"/> steps.
				</text>
				<arg-description n="1" name="steps">
					Number of steps to move down.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="steps" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="down"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setxy" kind="command" initlabel="set xy" color="27 180 225">
			<description>
				<text>Sets the x and y coordinates (a.k.a. position) of an agent</text>
			</description>
			<BlockConnectors>
				<BlockConnector label="xcor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
				<BlockConnector label="ycor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setxy"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setx" kind="command" initlabel="set x" color="27 180 225">
			<description>
				<text>
					Sets the x-coordinate of the agent.
				</text>
				<arg-description n="1" name="coord" doc-name="coord">
					The new x-coordinate value for the agent.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setx"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="sety" kind="command" initlabel="set y" color="27 180 225">
			<description>
				<text>
					Sets the y-coordinate of the agent.
				</text>
				<arg-description n="1" name="coord" doc-name="coord">
					The new y-coordinate value for the agent.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sety"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="home" kind="command" initlabel="go home" color="255 0 0">
			<description>
				<text>
					Makes this agent go to the center of the map.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="home"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>			
		</BlockGenus>
		
		<BlockGenus name="towards" kind="function" initlabel="towards" color="255 0 0">
			<description>
				<text>
					Reports the angle in degrees that (<arg n="1"/>, <arg n="2"/>) is from this agent.
				</text>
				
				<arg-description n="1" name="xcor">
					The x coordinate of the destination.
				</arg-description>
				
				<arg-description n="2" name="ycor">
					The y coordinate of the destination.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number">
				</BlockConnector>
				<BlockConnector label="xcor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
				<BlockConnector label="ycor" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>	
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="towards"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>			
		</BlockGenus>
		
		<!-- LOGIC -->
		
		<BlockGenus name="if" kind="command" initlabel="if" color="255 80 0">
			<description>
				<text>
					If <arg n="1"/> is true, the agent will run the blocks attached to <arg n="2"/>
				</text>
				<arg-description n="1" name="test">
					The condition being tested.
				</arg-description>
				
				<arg-description n="2" name="then">
					The set of instructions that is done when the condition is true.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="test" connector-kind="socket" connector-type="boolean"></BlockConnector>
				<BlockConnector label="then" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="if"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ifelse" kind="command" initlabel="ifelse" color="255 80 0">
			<description>
				<text>
					Does the first set of commands if the condition specified is true, otherwise it will do the second set of commands.
				</text>
				<arg-description n="1" name="test">
					The condition being tested.
				</arg-description>
				
				<arg-description n="2" name="then">
					The set of instructions that is done when the condition is true.
				</arg-description>
				
				<arg-description n="3" name="else">
					The set of instructions that is done when the condition is false.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="test" connector-kind="socket" connector-type="boolean"></BlockConnector>
				<BlockConnector label="then" connector-kind="socket" connector-type="cmd"></BlockConnector>
				<BlockConnector label="else" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ifelse"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="repeat" kind="command" initlabel="repeat" color="255 80 0">
			<description>
				<text>
					Repeats some commands <arg n="1"/> times.
				</text>
				<arg-description n="1" name="times">
					The number of times to repeat the command.
				</arg-description>
				
				<arg-description n="2" name="do">
					The commands to do.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="times" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="repeat"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
			
			
		<BlockGenus name="or" kind="function" initlabel="or" color="15 20 220">
			<description>
				<text>
					Reports true if one or both of the two conditions are true.
				</text>
				<arg-description n="2" doc-name="condition 1">
					The first condition that must be true.
				</arg-description>
				<arg-description n="3" doc-name="condition 2">
					The second condition that must be true.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="or"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="and" kind="function" initlabel="and" color="15 20 220">
			<description>
				<text>
					Reports true if both of the two conditions are true.
				</text>
				<arg-description n="2" doc-name="condition 1">
					The first condition that must be true.
				</arg-description>
					<arg-description n="3" doc-name="condition 2">
					The second condition that must be true.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="and"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="not" kind="function" initlabel="not" color="15 20 220">
			<description>
				<text>
					Reports the opposite of <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="boolean">
					The boolean (<em>true</em> or <em>false</em>) that should be inverted.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="not"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="hatch" kind="command" initlabel="hatch" color="255 80 0">
			<description>
				<text>
					All agents make a child that is exactly like themselves.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hatch"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hatch-and-do" kind="command" initlabel="hatch" color="255 80 0">
			<description>
				<text>
					All agents make a child, which then does some commands, that starts out exactly like themselves.
				</text>
				<arg-description n="1" name="do">
					The commands to do.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hatch-and-do"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="die" kind="command" initlabel="die" color="255 80 0" is-terminator="yes">
			<description>
				<text>
					Agent stops running blocks and disappears from SpaceLand.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="die"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		
		<BlockGenus name="ask-agents" kind="command" initlabel="ask agents" color="255 80 0">
			<description>
				<text>
					If <arg n="1"/> is the ID number of a live agent, that agent will run the blocks attached to <arg n="2"/>
				</text>
				<arg-description n="1" name="ID">
					The ID of the agent being asked to run something.
				</arg-description>
				<arg-description n="2" name="then">
					The set of instructions that is run when by the asked agent.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ask-agents"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ask-agent" kind="command" initlabel="ask agent" color="255 80 0">
			<description>
				<text>
					If <arg n="1"/> is the ID number of a live agent, that agent will run the blocks attached to <arg n="2"/>
				</text>
				<arg-description n="1" name="ID">
					The ID of the agent being asked to run something.
				</arg-description>
				<arg-description n="2" name="then">
					The set of instructions that is run when by the asked agent.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ask-turtle"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="stop" kind="command" initlabel="exit proc" color="255 80 0" is-terminator="yes">
			<description>
				<text>
					Leaves the procedure to which this is attached. <note>This must be attached to a procedure.</note>
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="stop"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="output" kind="command" initlabel="output" color="255 80 0" is-terminator="yes">
			<description>
				<text>
					Makes a procedure report <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="value">
					The value to report.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="output"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="wait" kind="command" initlabel="yield" color="255 80 0">
            <description> 
                <text>
                    Pause execution for one cycle.
                </text>
            </description>
            <BlockConnectors>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="wait"></LangSpecProperty>
                <LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<BlockGenus name="collidee" kind="data" initlabel="collidee" color="128 128 128">
			<description>
				<text>
					The ID number of the other agent in a collision.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
				<LangSpecProperty key="is-special-variable" value="yes"></LangSpecProperty>
				<LangSpecProperty key="scope" value="local"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-collision"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>

		
		<BlockGenus name="switch" kind="command" initlabel="switch" color="255 80 0">
			<description>
				<text>
					Performs one of a set of actions based on a value.
				</text>
				
				<arg-description n="1" name="value">
					The value to compare against.
				</arg-description>
				
				<arg-description n="2" name="case">
					The first possibility for the value.
				</arg-description>
				
				<arg-description n="3" name="do">
					The set of instructions that is done in the first case.
				</arg-description>
				
				<arg-description n="4" name="default">
					The set of instructions that is done in the default case.
				</arg-description>
				
			</description>
			
			<BlockConnectors>
				<BlockConnector label="value" connector-kind="socket" connector-type="poly"></BlockConnector>
				<BlockConnector label="case" connector-kind="socket" connector-type="poly" is-expandable="yes" expand-group="1"></BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd" expand-group="1"></BlockConnector>
				<BlockConnector label="default" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="switch"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-everyone-with" kind="function" initlabel="count everyone with" color="255 0 255">
			<description>
				<text>
					Counts all agents that satisfy a certain condition.
				</text>
				<arg-description n="1" name="condition" doc-name="condition">
					The condition an agent must satisfy to be counted
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="count-everyone-with"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-everyone" kind="function" initlabel="count everyone" color="255 0 255">
			<description>
				<text>
					Reports the number of agents that are currently alive.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" position-type="mirror" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="count-everyone"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- OTHER AGENTS -->
		
		<BlockGenus name="smell" kind="function" initlabel="smell" color="101 20 200">
			<description>
				<text>
					Reports the number of agents within a <arg n="1"/> from a particular agent.
				</text>
				<arg-description n="1" doc-name="radius">
					The smell radius from an agent. 
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="smell-with" kind="function" initlabel="smell with" color="101 20 200">
			<description>
				<text>
					Reports the number of agents that are within a <arg n="1"/> from an agent and for whom the specified <arg n="2"/> is true.
				</text>
				<arg-description n="1" doc-name="radius">
					The smell radius from an agent. 
				</arg-description>
				<arg-description n="2" doc-name="condition">
					A condition that must be true of the smelled agents.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="condition" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell-with"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="1"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="smell-list" kind="function" initlabel="smell list" color="101 20 200">
			<description>
				<text>
					Reports a list of agent ID numbers within a <arg n="1"/> from a particular agent.
				</text>
				<arg-description n="1" doc-name="radius">
					The smell radius from an agent. 
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number-list"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell-list"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="smell-list-with" kind="function" initlabel="smell list with" color="128 30 255">
			<description>
				<text>
					Reports a list of agent ID numbers that are within a <arg n="1"/> from an agent and for whom the specified <arg n="2"/> is true.
				</text>
				<arg-description n="1" name="radius" doc-name="radius">
					The distance within which an agent must be to be smelled.
				</arg-description>
				<arg-description n="2" name="condition" doc-name="condition">
					The condition an agent must satisfy to be smelled.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number-list"></BlockConnector>
				<BlockConnector label="radius" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="condition" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="smell-list-with"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="1"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="1"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="xcor-of" kind="function" initlabel="xcor of" color="128 30 255">
			<description>
				<text>
					Reports the x coordinate of the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="xcor-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ycor-of" kind="function" initlabel="ycor of" color="128 30 255">
			<description>
				<text>
					Reports the y coordinate of the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ycor-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="color-of" kind="function" initlabel="color of" color="128 30 255">
			<description>
				<text>
					Reports the color of the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-color-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="shape-of" kind="function" initlabel="shape of" color="128 30 255">
			<description>
				<text>
					Reports the shape of the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="shape-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="height-of" kind="function" initlabel="altitude of" color="128 30 255">
			<description>
				<text>
					Reports the altitude of the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="height-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
        <BlockGenus name="scale-of" kind="function" initlabel="size of" color="128 30 255">
            <description>
                <text>
                    Reports the size of the agent with ID number <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    The ID number of the agent in question.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scale-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<BlockGenus name="scalex-of" kind="function" initlabel="shape width of" color="128 30 255">
            <description>
                <text>
                    Reports the shape width of the agent with ID number <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    The ID number of the agent in question.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scalex-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
        
        <BlockGenus name="scaley-of" kind="function" initlabel="shape length of" color="128 30 255">
            <description>
                <text>
                    Reports the shape length of the agent with ID number <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    The ID number of the agent in question.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scaley-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
        
        <BlockGenus name="scalez-of" kind="function" initlabel="shape height of" color="128 30 255">
            <description>
                <text>
                    Reports the shape height of the agent with ID number <arg n="1"/>.
                </text>
                <arg-description n="1" name="ID">
                    The ID number of the agent in question.
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
                <BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="scalez-of"></LangSpecProperty>
                <LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<BlockGenus name="heading-of" kind="function" initlabel="heading of" color="128 30 255">
			<description>
				<text>
					Reports the heading of the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="heading-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="breed-of" kind="function" initlabel="breed of" color="128 30 255">
			<description>
				<text>
					Reports the breed of the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="breed-of"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="kill" kind="command" initlabel="kill" color="128 30 255">
			<description>
				<text>
					Kills the agent with ID number <arg n="1"/>.
				</text>
				<arg-description n="1" name="ID">
					The ID number of the agent in question.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="ID" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="kill"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- String Functions or Commands -->
		
		<BlockGenus name="say" kind="command" initlabel="say" color="45 201 255">
			<description>
				<text>
					Causes this agent to "say" the supplied string by popping up a speech bubble in SpaceLand.
				</text>
				<arg-description n="1" name="string" doc-name="string">
					The string to say
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="say"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="set-status" kind="command" initlabel="set status" color="45 201 255">
			<description>
				<text>
					Displays the text attached to this block in the bottom panel of Spaceland.  
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-status"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="play" kind="command" initlabel="play sound" color="150 255 107">
			<description>
				<text>
					Causes agent to play a sound with the following <arg n="1"/>.  Type in these names (bird, boing, claps, cork, cow, glass, hit, knock, laugh, scratch, smellrat, test) into a string block and attach to this block.  
				</text>
				<arg-description n="1" name="name">
					The string name of the sound to play.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="play"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="newline" kind="data" initlabel="newline" color="45 201 255">
			<description>
				<text>
					Appends a new line to text.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="\n"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>	
		
		<BlockGenus name="to-string" kind="function" initlabel="to string" color="45 201 255">
			<description>
				<text>
					Converts the block attached to it as text.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="string"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="to-string"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>	
		
		<BlockGenus name="string-append" kind="function" initlabel="+" color="45 201 255">
			<description>
				<text>
					Appends <arg n="3"/> to the end of <arg n="2"/>.
				</text>
				<arg-description n="2" doc-name="first">
					The string to which to append <arg n="3"/>.
				</arg-description>
				<arg-description n="3" doc-name="second">
					The string to append to <arg n="2"/>.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="string" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="string" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sentence"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>	
		
		<!-- List Functions or Commands -->
		
				
		<BlockGenus name="list" kind="function" initlabel="list" color="255 80 70">
			<description>
				<text>
					Creates a list from two items.
				</text>
				<arg-description n="1" name="item" doc-name="first item">
					The first item
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="list"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="add-to-list" kind="function" initlabel="add to list" color="255 80 70">
			<description>
				<text>
					Adds an item to a list.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					The list
				</arg-description>
				<arg-description n="2" name="number" doc-name="number">
					The item to add to the list
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="item" connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sentence"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="length" kind="function" initlabel="length" color="255 80 70">
			<description>
				<text>
					Retrieves the length of a list.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					The list
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="length"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="first" kind="function" initlabel="first" color="255 80 70">
			<description>
				<text>
					Retrieves the first item in a list.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					The list
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="first"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="get-list-item" kind="function" initlabel="get list item" color="255 80 70">
			<description>
				<text>
					Retrieves an item from a list.
				</text>
				<arg-description n="1" name="list" doc-name="list">
					The list
				</arg-description>
				<arg-description n="2" name="index" doc-name="index">
					The index of the item to retrieve
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="poly"></BlockConnector>
				<BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
				<BlockConnector label="index" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="item"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pick-list-item" kind="function" initlabel="pick list item" color="255 80 70">
            <description>
                <text>
                    Picks an item from a list.
                </text>
                <arg-description n="1" name="list" doc-name="list">
                    The list
                </arg-description>
            </description>
            <BlockConnectors>
                <BlockConnector label="" connector-kind="plug" connector-type="poly"></BlockConnector>
                <BlockConnector label="list" connector-kind="socket" connector-type="poly-list"></BlockConnector>
            </BlockConnectors>
            <LangSpecProperties>
                <LangSpecProperty key="vm-cmd-name" value="pick"></LangSpecProperty>
            </LangSpecProperties>
        </BlockGenus>
		
		<!-- VARIABLES -->
		
		<BlockGenus name="agent-var-boolean" kind="variable" initlabel="agent boolean" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Reports the value of a boolean (<em>true</em> or <em>false</em>) agent variable. <note>Every agent has a different value for a given agent variable.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="boolean"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-boolean-list" kind="variable" initlabel="agent boolean list" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Reports the value of a boolean list agent variable. <note>Every agent has a different value for a given agent variable.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="boolean-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="agent-var-number" kind="variable" initlabel="agent number" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Reports the value of a number agent variable. <note>Every agent has a different value for a given agent variable.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="inc">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tinct"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="number"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-number-list" kind="variable" initlabel="agent number list" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Reports the value of a number list agent variable. <note>Every agent has a different value for a given agent variable.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="number-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-string" kind="variable" initlabel="agent string" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Reports the value of a string agent variable. <note>Every agent has a different value for a given agent variable.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="string"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-var-string-list" kind="variable" initlabel="agent string list" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="65 170 225">
			<description>
				<text>
					Reports the value of a string list agent variable. <note>Every agent has a different value for a given agent variable.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tsett"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="agent">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="tgett-of"></LangSpecProperty>
						<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="agent"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="string-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="global-var-boolean" kind="variable" initlabel="shared boolean" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Reports the value of a boolean (<em>true</em> or <em>false</em>) shared variable. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="scope" value="global"></LangSpecProperty>
				<LangSpecProperty key="type" value="boolean"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="global-var-boolean-list" kind="variable" initlabel="shared boolean list" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Reports the value of a boolean list shared variable.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="boolean-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="global"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="boolean-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="global-var-number" kind="variable" initlabel="shared number" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Reports the value of a number shared variable. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number-inv"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="inc">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-incglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="scope" value="global"></LangSpecProperty>
				<LangSpecProperty key="type" value="number"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="global-var-number-list" kind="variable" initlabel="shared number list" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Reports the value of a number list shared variable.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="global"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="number-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
	
		<BlockGenus name="global-var-string" kind="variable" initlabel="shared string" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Reports the value of a String shared variable. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="scope" value="global"></LangSpecProperty>
				<LangSpecProperty key="type" value="string"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="global-var-string-list" kind="variable" initlabel="shared string list" editable-label="yes" label-unique="yes" page-label-enabled="yes" color="230 0 255 ">
			<description>
				<text>
					Reports the value of a string list shared variable.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string-list" ></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-global"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
				<Stub stub-genus="setter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-setglobal"></LangSpecProperty>
						<LangSpecProperty key="scope" value="global"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
			 	<LangSpecProperty key="scope" value="global"></LangSpecProperty>
			 	<LangSpecProperty key="type" value="string-list"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- MATH -->
		
		<BlockGenus name="pi" kind="function" initlabel="π" color="255 0 255">
			<description>
				<text>
					Reports the value of PI (approximately 3.14).
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pi"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="e" kind="function" initlabel="e" color="255 0 255">
			<description>
				<text>
					Reports the mathematical number <em>e</em>, which is about 2.718.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="e"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sum" kind="function" initlabel="+" color="15 20 220">
			<description>
				<text>
					Reports the sum of two numbers (<arg n="1"/> + <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left number">
				</arg-description>
				<arg-description n="2" doc-name="right number">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sum"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="difference" kind="function" initlabel="-" color="15 20 220">
			<description>
				<text>
					Reports the difference of two numbers (<arg n="1"/> - <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left number">
				</arg-description>
				<arg-description n="2" doc-name="right number">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="difference"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="product" kind="function" initlabel="x" color="15 20 220">
			<description>
				<text>
					Reports the product of  two numbers (<arg n="1"/> x <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				</arg-description>
				<arg-description n="2" doc-name="right value">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="product"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="quotient" kind="function" initlabel="÷" color="15 20 220">
			<description>
				<text>
					Reports the quotient of  two numbers (<arg n="1"/> ÷ <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				</arg-description>
				<arg-description n="2" doc-name="right value">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="quotient"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="equals" kind="function" initlabel="=" color="15 20 220">
			<description>
				<text>
					Determines if two quantities are equal (<arg n="1"/> = <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				</arg-description>
				<arg-description n="2" doc-name="right value">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="equals"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="not-equals" kind="function" initlabel="≠" color="15 20 220">
			<description>
				<text>
					Determines if two quantities are different (<arg n="1"/> != <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="left value">
				The first thing to compare.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				The second thing to compare.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="poly" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="not-equals"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lessthan" kind="function" initlabel="&lt;" color="15 20 220">
			<description>
				<text>
					Reports whether the <arg n="1"/> is less than the <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				The first thing to compare.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				The second thing to compare.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="less-than"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="lessthanorequalto" kind="function" initlabel="≤" color="15 20 220">
			<description>
				<text>
					Reports whether the <arg n="1"/> is less than or equal to the <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				The first thing to compare.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				The second thing to compare.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="less-than-or-equal-to"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="greaterthan" kind="function" initlabel="&gt;" color="15 20 220">
			<description>
				<text>
					Reports whether the <arg n="1"/> is greater than the <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				The first thing to compare.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				The second thing to compare.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector label="" connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="greater-than"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="greaterthanorequalto" kind="function" initlabel="≥" color="15 20 220">
			<description>
				<text>
					Reports whether the <arg n="1"/> is greater than or equal to the <arg n="2"/>.
				</text>
				<arg-description n="1" doc-name="left value">
				The first thing to compare.
				</arg-description>
				<arg-description n="2" doc-name="right value">
				The second thing to compare.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="greater-than-or-equal-to"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="atan" kind="function" initlabel="atan" color="15 20 220">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="x" connector-kind="socket" connector-type="number"></BlockConnector>
				<BlockConnector label="y" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="atan"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="random" kind="function" initlabel="random" color="15 20 220">
			<description>
				<text>
					Reports a random integer greater than or equal to 1 and less than or equal to <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="number">
					The upper integer in the range.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="random"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="round" kind="function" initlabel="round" color="15 20 220">
			<description>
				<text>
					Rounds <arg n="1"/> to the nearest integer.
				</text>
				<arg-description n="1" doc-name="number">
					The number to round.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="round"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="int" kind="function" initlabel="int" color="15 20 220">
			<description>
				<text>
					Reports the whole number part of the number.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="int"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="remainder" kind="function" initlabel="remainder" color="15 20 220">
			<description>
				<text>
					Reports the integer remainder of <arg n="2"/> divided by <arg n="3"/>.
				</text>
				<arg-description n="2" doc-name="first">
					The number to divide.
				</arg-description>
				
				<arg-description n="3" doc-name="second">
					The number by which to divide.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="remainder"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="min" kind="function" initlabel="min" color="15 20 220">
			<description>
				<text>
					Reports the smaller value of the two numbers.	
				</text>
				<arg-description n="2" doc-name="number 1">
					The first number to compare.
				</arg-description>
				<arg-description n="3" doc-name="number 2">
					The second number to compare.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="min"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="max" kind="function" initlabel="max" color="15 20 220">
			<description>
				<text>
					Reports the greatest value of the two numbers.	
				</text>
				<arg-description n="2" doc-name="number 1">
					The first number to compare.
				</arg-description>
				<arg-description n="3" doc-name="number 2">
					The second number to compare.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="max"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="power" kind="function" initlabel="power" color="15 20 220">
			<description>
				<text>
					Reports the power of one number raised to another (<arg n="1"/> ^ <arg n="2"/>).
				</text>
				<arg-description n="1" doc-name="base">
				</arg-description>
				<arg-description n="2" doc-name="exponent">
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" position-type="bottom"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="power"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="abs" kind="function" initlabel="abs" color="15 20 220">
			<description>
				<text>
				Reports the absolute value of a number.
				</text>
				<arg-description n="1" doc-name="number">
					A number from which to get the absolute value.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="abs"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sqrt" kind="function" initlabel="sqrt" color="15 20 220">
			<description>
				<text>
					Reports the square root of <arg n="1"/>.
				</text>
				<arg-description n="1" doc-name="number">
					The number whose square root to take.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sqrt"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="sin" kind="function" initlabel="sin" color="15 20 220">
			<description>
				<text>
					A Trigonmetric function that reports the sine of the specified angle. 
				</text>
				<arg-description n="1" name="degs">
					The angle in degrees for which the sine will be reported.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="sin"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="cos" kind="function" initlabel="cos" color="15 20 220">
			<description>
				<text>
					A Trigonmetric function that reports the cosine of the specified angle. 
				</text>
				<arg-description n="1" name="degs">
					The angle in degrees for which the cosine will be reported.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="cos"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="tan" kind="function" initlabel="tan" color="15 20 220">
			<description>
				<text>
					A Trigonmetric function that reports the tangent of the specified angle. 
				</text>
				<arg-description n="1" name="degs">
					The angle in degrees for which the tangent will be reported.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="degs" connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="tan"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="asin" kind="function" initlabel="asin" color="15 20 220">
			<description>
				<text>
					Trigonometric function that reports the arcsine of the specified number.  All angles are reported in degrees.
				</text>
				<arg-description n="1" doc-name="number">
					A number from which to get the arcsine.
				</arg-description>
				</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="asin"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="acos" kind="function" initlabel="acos" color="15 20 220">
			<description>
				<text>
					Trigonometric function that reports the arccosine of the specified number.  All angles are reported in degrees.
				</text>
				<arg-description n="1" doc-name="number">
					A number from which to get the arccosine.
				</arg-description>
				</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="acos"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="log" kind="function" initlabel="log" color="15 20 220">
			<description>
				<text>
					Reports the logarithm base 10 of <arg n="1"/>. <note>The return value <i>x</i> will be the number for which 10 to the power of <i>x</i> is equal to <arg n="1"/>.</note>
				</text>
				<arg-description n="1" doc-name="number">
					The number of which to take the natural logarithm
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="log"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ln" kind="function" initlabel="ln" color="15 20 220">
			<description>
				<text>
					Reports the natural logarithm of <arg n="1"/>. <note>The return value <i>x</i> will be the number for which the mathematical constant e, which is about 2.718, to the power of <i>x</i> is equal to <arg n="1"/>.</note>
				</text>
				<arg-description n="1" doc-name="number">
					The number of which to take the natural logarithm
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ln"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- TERRAIN --> 
		
		<BlockGenus name="pc-ahead" kind="function" initlabel="pc ahead" color="40 255 0">
			<description>
             	<text>Reports the color of the patch one step ahead of where the agent is standing.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pc-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pc" kind="function" initlabel="patch color" color="40 255 0">
			<description>
             	<text>Reports the color of the patch where the agent is standing.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pc"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="stamp" kind="command" initlabel="stamp" color="0 236 0">
			<description>
             	<text>Changes the color of the patch on which this agent is to <arg n="1"/>.</text>
				<arg-description n="1" name="color">
					The color to which to change the patch.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="color" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="red" label="red"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="stamp"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="patch-height" kind="function" initlabel="patch height" color="40 255 0">
			<description>
             	 <text>Reports the height of the patch where the agent is standing.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="patch-height"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ph-ahead" kind="function" initlabel="ph ahead" color="40 255 0">
			<description>
             	 <text>Reports the height of the patch one step ahead of where the agent is standing.</text>
             </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ph-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
				
		<BlockGenus name="dig" kind="command" initlabel="dig" color="0 236 0">
			<description>
             	<text>Decreases the height of the patch where the agent is standing, creating walls if necessary.</text>
				<arg-description n="1" name="height">
					How much the patch height is decreased.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="dig"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="build" kind="command" initlabel="build" color="0 236 0">
			<description>
             	<text>Increases the height of the patch where the agent is standing, creating walls if necessary.</text>
				<arg-description n="1" name="height">
					How much the patch height is increased.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="build"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="stomp" kind="command" initlabel="stomp" color="0 236 0">
			<description>
             	<text>Decreases the height of the patch where the agent is standing, smoothly connecting the edges to surrounding patches.</text>
				<arg-description n="1" name="height">
					How much the patch height is decreased.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="stomp"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="yank" kind="command" initlabel="yank" color="0 236 0">
			<description>
             	<text>Increases the height of the patch where the agent is standing, smoothly connecting the edges to surrounding patches.</text>
				<arg-description n="1" name="height">
					How much the patch height is increased.
				</arg-description>
            </description>
			<BlockConnectors>
				<BlockConnector label="height" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="yank"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-patches" kind="command" initlabel="show patches" color="0 236 0">
			<description>
             	<text>Shows the patches, i.e. makes the terrain visible.</text>
            </description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-patches"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="hide-patches" kind="command" initlabel="hide patches" color="0 236 0">
			<description>
             	<text>Hides the patches, i.e. makes the terrain invisible.</text>
            </description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-patches"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="wall-ahead" kind="function" initlabel="wall ahead?" color="40 255 0">
			<description>
             	<text>Returns true if the height of the patch ahead of this agent is greater than the height of the patch where this agent is standing.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="wall-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="slope-ahead" kind="function" initlabel="slope ahead" color="40 255 0">
			<description>
             	<text>Returns the value of the slope between the agent's current patch and the agent's next patch. A positive slope implies an upward hill, a negative slope implies a downward hill and zero slipe implies flat ground.</text>
            </description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="slope-ahead"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- TRAITS -->
		
		<BlockGenus name="setc" kind="command" initlabel="set color" color="27 180 225">
			<description>
				<text>Sets the color of the agent to the given color.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="red" label="red"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setc"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="color" kind="function" initlabel="color" color="44 220 255">
			<description>
				<text>Reports the color of this agent.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-color"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="seth" kind="command" initlabel="set heading" color="27 180 225">
			<description>
				<text>Sets the heading of this agent to the specified value in degrees.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="seth"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setheight" kind="command" initlabel="set altitude" color="27 180 225">
			<description>
				<text>Sets the altitude of this agent above the terrain.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-height"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="heading" kind="function" initlabel="heading" color="44 220 255">
			<description>
				<text>Reports the angle, in degrees, where the agent is heading.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="heading"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="xcor" kind="function" initlabel="xcor" color="44 220 255">
			<description>
				<text>Reports the x coordinate of this agent.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="xcor"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="ycor" kind="function" initlabel="ycor" color="44 220 255">
			<description>
				<text>Reports the y coordinate of this agent.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ycor"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="height" kind="function" initlabel="altitude" color="44 220 255">
			<description>
				<text>Reports the height of this agent above the terrain.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="height"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="scale" kind="function" initlabel="size" color="44 220 255">
			<description>
				<text>Reports the size, or scale, of this agent.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scale"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="scalex" kind="function" initlabel="shape width" color="44 220 255">
			<description>
				<text>Reports the width of this agent's shape.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scalex"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="scaley" kind="function" initlabel="shape height" color="44 220 255">
			<description>
				<text>Reports the height of this agent's shape.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scaley"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>		
		
		<BlockGenus name="scalez" kind="function" initlabel="shape length" color="44 220 255">
			<description>
				<text>Reports the length of this agent's shape.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-scalez"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscale" kind="command" initlabel="set size" color="27 180 225">
			<description>
				<text>Sets the size of this agent's shape.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scale"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscalex" kind="command" initlabel="set shape width" color="27 180 225">
			<description>
				<text>Sets the width of this agent's shape.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scalex"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscaley" kind="command" initlabel="set shape height" color="27 180 225">
			<description>
				<text>Sets the height of this agent's shape.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scaley"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="setscalez" kind="command" initlabel="set shape length" color="27 180 225">
			<description>
				<text>Sets the length of this agent's shape.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="1"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-scalez"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="who" kind="function" initlabel="ID" color="44 220 255">
			<description>
				<text>Reports the ID number, or "ID" of this agent.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="who"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="penup" kind="command" initlabel="pen up" color="27 180 225">
			<description>
				<text>Pulls the agent's pen up so the agent will not stamp every patch where it moves.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pu"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pendown" kind="command" initlabel="pen down" color="27 180 225">
			<description>
				<text>Pulls the agent's pen down so the agent will stamp every patch where it moves.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pd"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="pendown?" kind="function" initlabel="pen down?" color="44 220 255">
			<description>
				<text>Reports true if this agent's pen is down, and false otherwise.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="pendown?"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="shown?" kind="function" initlabel="shown?" color="44 220 255">
			<description>
				<text>Reports true if this agent is shown, and false otherwise.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="shown?"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="alive?" kind="function" initlabel="alive?" color="128 30 255">
			<description>
				<text>Reports true if the agent with the given ID number is alive, and false otherwise.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="number" label="ID"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="alive?-of"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="shape" kind="function" initlabel="shape" color="44 220 255">
			<description>
				<text>Reports the shape of this agent.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="shape"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="breed" kind="function" initlabel="breed" color="44 220 255">
			<description>
				<text>Reports the breed of this agent.</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="breed"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setshape" kind="command" initlabel="set shape" color="27 180 225">
			<description>
				<text>
					Causes this agent to change its shape to the supplied shape.
				</text>
				<arg-description n="1" name="string" doc-name="string">
					The shape
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setshape"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setbreed" kind="command" initlabel="set breed" color="27 180 225">
			<description>
				<text>
					Causes this agent to change its breed to the supplied breed.
				</text>
				<arg-description n="1" name="string" doc-name="string">
					The name of the new breed.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="setbreed"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hideagent" kind="command" initlabel="hide agent" color="27 180 225">
			<description>
				<text>Hides this agent, making it invisible.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ht"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="showagent" kind="command" initlabel="show agent" color="27 180 225">
			<description>
				<text>Shows this agent, making it visible if it was previously hidden.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="st"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setskinon" kind="command" initlabel="model skin on" color="27 180 225">
			<description>
				<text>Draws this agent's shape's "skin" on the shape, covering the agent's color.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-skin"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setskinoff" kind="command" initlabel="model skin off" color="27 180 225">
			<description>
				<text>Stops drawing the skin of this agent's shape, instead coloring the shape according to the agent's color.</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="no-show-skin"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		
		<!-- CONTROLS -->
		
		<BlockGenus name="keyboard-a" kind="data" initlabel="keyboard a?" color="255 255 0">
			<description>
				<text>
					Reports whether the "a" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-a"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-b" kind="data" initlabel="keyboard b?" color="255 255 0">
			<description>
				<text>
					Reports whether the "b" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-b"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-c" kind="data" initlabel="keyboard c?" color="255 255 0">
			<description>
				<text>
					Reports whether the "c" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-c"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-d" kind="data" initlabel="keyboard d?" color="255 255 0">
			<description>
				<text>
					Reports whether the "d" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-d"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-e" kind="data" initlabel="keyboard e?" color="255 255 0">
			<description>
				<text>
					Reports whether the "e" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-e"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-f" kind="data" initlabel="keyboard f?" color="255 255 0">
			<description>
				<text>
					Reports whether the "f" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-f"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-g" kind="data" initlabel="keyboard g?" color="255 255 0">
			<description>
				<text>
					Reports whether the "g" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-g"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-h" kind="data" initlabel="keyboard h?" color="255 255 0">
			<description>
				<text>
					Reports whether the "h" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-h"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-i" kind="data" initlabel="keyboard i?" color="255 255 0">
			<description>
				<text>
					Reports whether the "i" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-i"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-j" kind="data" initlabel="keyboard j?" color="255 255 0">
			<description>
				<text>
					Reports whether the "j" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-j"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-k" kind="data" initlabel="keyboard k?" color="255 255 0">
			<description>
				<text>
					Reports whether the "k" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-k"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-l" kind="data" initlabel="keyboard l?" color="255 255 0">
			<description>
				<text>
					Reports whether the "l" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-l"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-m" kind="data" initlabel="keyboard m?" color="255 255 0">
			<description>
				<text>
					Reports whether the "m" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-m"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-n" kind="data" initlabel="keyboard n?" color="255 255 0">
			<description>
				<text>
					Reports whether the "n" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-n"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-o" kind="data" initlabel="keyboard o?" color="255 255 0">
			<description>
				<text>
					Reports whether the "o" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-o"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-p" kind="data" initlabel="keyboard p?" color="255 255 0">
			<description>
				<text>
					Reports whether the "p" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-p"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-q" kind="data" initlabel="keyboard q?" color="255 255 0">
			<description>
				<text>
					Reports whether the "q" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-q"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-r" kind="data" initlabel="keyboard r?" color="255 255 0">
			<description>
				<text>
					Reports whether the "r" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-r"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-s" kind="data" initlabel="keyboard s?" color="255 255 0">
			<description>
				<text>
					Reports whether the "s" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-s"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-t" kind="data" initlabel="keyboard t?" color="255 255 0">
			<description>
				<text>
					Reports whether the "t" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-t"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-u" kind="data" initlabel="keyboard u?" color="255 255 0">
			<description>
				<text>
					Reports whether the "u" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-u"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-v" kind="data" initlabel="keyboard v?" color="255 255 0">
			<description>
				<text>
					Reports whether the "v" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-v"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-w" kind="data" initlabel="keyboard w?" color="255 255 0">
			<description>
				<text>
					Reports whether the "w" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-w"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-x" kind="data" initlabel="keyboard x?" color="255 255 0">
			<description>
				<text>
					Reports whether the "x" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-x"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-y" kind="data" initlabel="keyboard y?" color="255 255 0">
			<description>
				<text>
					Reports whether the "y" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-y"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-z" kind="data" initlabel="keyboard z?" color="255 255 0">
			<description>
				<text>
					Reports whether the "z" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-z"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-1" kind="data" initlabel="keyboard 1?" color="255 255 0">
			<description>
				<text>
					Reports whether the "1" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-1"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-2" kind="data" initlabel="keyboard 2?" color="255 255 0">
			<description>
				<text>
					Reports whether the "2" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-2"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-3" kind="data" initlabel="keyboard 3?" color="255 255 0">
			<description>
				<text>
					Reports whether the "3" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-3"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-4" kind="data" initlabel="keyboard 4?" color="255 255 0">
			<description>
				<text>
					Reports whether the "4" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-4"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-5" kind="data" initlabel="keyboard 5?" color="255 255 0">
			<description>
				<text>
					Reports whether the "5" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-5"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-6" kind="data" initlabel="keyboard 6?" color="255 255 0">
			<description>
				<text>
					Reports whether the "6" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-6"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-7" kind="data" initlabel="keyboard 7?" color="255 255 0">
			<description>
				<text>
					Reports whether the "7" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-7"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-8" kind="data" initlabel="keyboard 8?" color="255 255 0">
			<description>
				<text>
					Reports whether the "8" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-8"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-9" kind="data" initlabel="keyboard 9?" color="255 255 0">
			<description>
				<text>
					Reports whether the "9" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-9"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-0" kind="data" initlabel="keyboard 0?" color="255 255 0">
			<description>
				<text>
					Reports whether the "0" key is being pressed. <note>Letter keys have a drop down menu that allow you to select other letter keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-0"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-up" kind="data" initlabel="keyboard up arrow?" color="255 255 0">
			<description>
				<text>
					Reports whether the up arrow key is being pressed. <note>Arrow keys have a drop down menu that allow you to select other arrow keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-up"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-down" kind="data" initlabel="keyboard down arrow?" color="255 255 0">
			<description>
				<text>
					Reports whether the down arrow key is being pressed. <note>Arrow keys have a drop down menu that allow you to select other arrow keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-down"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-left" kind="data" initlabel="keyboard left arrow?" color="255 255 0">
			<description>
				<text>
					Reports whether the left arrow key is being pressed. <note>Arrow keys have a drop down menu that allow you to select other arrow keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-left"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-right" kind="data" initlabel="keyboard right arrow?" color="255 255 0">
			<description>
				<text>
					Reports whether the right arrow key is being pressed. <note>Arrow keys have a drop down menu that allow you to select other arrow keys.</note>
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-right"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="keyboard-space" kind="data" initlabel="keyboard space bar?" color="255 255 0">
			<description>
				<text>
					Reports whether the space bar is being pressed. 
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="keyboard-space"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-xaxis" kind="function" initlabel="joy x-axis" color="255 255 0">
			<description>
				<text>
					Reports the current position along the x-axis of the joystick.  Reports -1 at the extreme left position and +1 at the extreme right.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-xaxis"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="joy-yaxis" kind="function" initlabel="joy y-axis" color="255 255 0">
			<description>
				<text>
					Reports the current position along the y-axis of the joystick.  Reports -10 at the extreme left position and +10 at the extreme right.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-yaxis"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-radius" kind="function" initlabel="joy radius" color="255 255 0">
			<description>
				<text>
					Reports the current radius of the position of the joystick.  Reports 0 when the joystick is in the center and 1 when it is full deflected in any direction.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-radius"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-angle" kind="function" initlabel="joy angle" color="255 255 0">
			<description>
				<text>
					Reports the current angle in degrees that the joystick is at, with 0 at the top and 180 at the bottom.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-angle"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="dpad-angle" kind="function" initlabel="dpad angle" color="255 255 0">
			<description>
				<text>
					Reports the angle in degrees of the direction pad on a gamepad.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="dpad-angle"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-button1?" kind="function" initlabel="button 1?" color="255 255 0">
			<description>
				<text>
					Reports <em>true</em> if the first joystick button is down and <em>false</em> if it is not.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-1?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="joy-button2?" kind="function" initlabel="button 2?" color="255 255 0">
			<description>
				<text>
					Reports <em>true</em> if the second joystick button is down and <em>false</em> if it is not.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-2?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-button3?" kind="function" initlabel="button 3?" color="255 255 0">
			<description>
				<text>
					Reports <em>true</em> if the third joystick button is down and <em>false</em> if it is not.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-3?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="joy-button4?" kind="function" initlabel="button 4?" color="255 255 0">
			<description>
				<text>
					Reports <em>true</em> if the fourth joystick button is down and <em>false</em> if it is not.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="joy-button-4?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="set-agent-camera" kind="command" initlabel="set agent camera" color="255 255 0">
			<description>
				<text>
					If <arg n="1"/> is the ID number of a live agent, that agent will run the blocks attached to <arg n="2"/>
				</text>
				<arg-description n="1" name="ID">
					The ID of the agent being asked to run something.
				</arg-description>
				
				<arg-description n="2" name="then">
					The set of instructions that is run when by the asked agent.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-agent-camera"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="who-of-agent-camera" kind="function" initlabel="ID of agent camera" color="255 255 0">
			<description>
				<text>
					Reports the ID number of the agent that is currently being followed by the camera.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="who-of-agent-camera"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="over-shoulder?" kind="function" initlabel="over shoulder?" color="255 255 0">
			<description>
				<text>
					Reports whether over-the-soulder view is on.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="over-shoulder?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="over-shoulder-on" kind="command" initlabel="over shoulder" color="255 255 0">
			<description>
				<text>
				Turns the over-the-shoulder view on.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="over-shoulder-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="agent-eye?" kind="function" initlabel="agent eye?" color="255 255 0">
			<description>
				<text>
					Reports whether agent-eye view is on.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-eye?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="agent-eye-on" kind="command" initlabel="agent eye" color="255 255 0">
			<description>
				<text>
					Turns the agent-eye view on.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="agent-eye-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="aerial?" kind="function" initlabel="aerial?" color="255 255 0">
			<description>
				<text>
					Returns <em>true</em> if the aerial camera view is on and <em>false</em> if it is off.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="aerial?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="aerial-on" kind="command" initlabel="aerial" color="255 255 0">
			<description>
				<text>
					Turns the agent-eye view on.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="aerial-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="overhead?" kind="function" initlabel="overhead?" color="255 255 0">
			<description>
				<text>
					Returns <em>true</em> if the overhead camera view is on and <em>false</em> if it is off.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean" position-type="mirror"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="overhead?"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="overhead-on" kind="command" initlabel="overhead on" color="255 255 0">
			<description>
				<text>
					Turns <em>overhead</em> camera mode on.  This is a 2D aerial view of the entire spaceland with map view turned on.	
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="overhead-on"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="overhead-off" kind="command" initlabel="overhead off" color="255 255 0">
			<description>
				<text>
					Turns <em>overhead</em> camera mode off and goes back to the previous camera view.
				</text>
			</description>
			<BlockConnectors>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="overhead-off"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		
		<!-- Procedure and parameters -->
		
		<BlockGenus name="procedure" kind="procedure" initlabel="Procedure" editable-label="yes" label-unique="yes" page-label-enabled="yes" is-starter="yes" color="177 10 255">
			<description>
				<text>
					Defines a section of blocks as a procedure that can be called from other sections of blocks.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="caller">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-procedure"></LangSpecProperty>
						<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
						<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed"></LangSpecProperty>
					</LangSpecProperties>
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-procedure"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-breed-set-by-canvas" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="proc-param-number" kind="param" initlabel="number param" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adds a number parameter to a procedure.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="number"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="proc-param-boolean" kind="param" initlabel="boolean param" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adds a boolean parameter to a procedure.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="boolean"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="proc-param-string" kind="param" initlabel="string param" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adds a string parameter to a procedure.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="string"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<BlockGenus name="proc-param-list" kind="param" initlabel="list param" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="177 10 255">
			<description>
				<text>
					Adds a list parameter to a procedure.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="poly-list"></BlockConnector>
			</BlockConnectors>
			<Stubs>
				<Stub stub-genus="getter">
					<LangSpecProperties>
						<LangSpecProperty key="vm-cmd-name" value="eval-local"></LangSpecProperty>
						<LangSpecProperty key="scope" value="local"></LangSpecProperty>
						<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
					</LangSpecProperties>	
				</Stub>
			</Stubs>
			<LangSpecProperties>
				<LangSpecProperty key="type" value="list"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-procedure"></LangSpecProperty>
			</LangSpecProperties>	
		</BlockGenus>
		
		<!-- SETUP AND RUNTIME BLOCKS -->
		
		<!-- NOTE: The genus names "forever", "runonce", and "runforsometime" is duplicated in RunBlockManager.java, 
			if you change this name, make sure to change it there too.  -->
		<BlockGenus name="forever" kind="command" initlabel="forever" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					When switched on, agents do commands over and over. <note>There are different commands for each breed.</note>
				</text>
				<arg-description n="1" name="agents" doc-name="breed">
					The breed of the agents performing the commands attached here.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image block-location="southwest" image-editable="yes" width="15" height="15">
					<FileLocation>support/forever_switch_on.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="forever"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-forever"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-forever" kind="command" initlabel="forever" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					When switched on, agents do commands over and over. <note>There are different commands for each breed.</note>
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="forever"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runonce" kind="command" initlabel="run once" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					When switched on, agents do commands once. <note>There are different commands for each breed.</note>
				</text>
				<arg-description n="1" name="agents" doc-name="breed">
					The breed of the agents performing the commands attached here.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image block-location="southwest" image-editable="yes" width="15" height="15">
					<FileLocation>support/forever_switch_on.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runonce"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-forever"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-once" kind="command" initlabel="run once" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					When switched on, agents do commands once. <note>There are different commands for each breed.</note>
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runonce"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runforsometime" kind="command" initlabel="run" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					When switched on, agents do commands over and over for <arg n="1"/> seconds. <note>There are different commands for each breed.</note>
				</text>
				
				<arg-description n="1" name="secs">
					The number of seconds for which the commands are run when switched on.
				</arg-description>
				
				<arg-description n="2" name="agents" doc-name="breed">
					The breed of the agents performing the commands attached here.
				</arg-description>
			</description>
			<BlockConnectors>
			    <BlockConnector label="secs" connector-kind="socket" connector-type="number">
			    </BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image block-location="southwest" image-editable="yes" width="15" height="15">
					<FileLocation>support/forever_switch_on.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runforsometime"></LangSpecProperty>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-forever"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-sometime" kind="command" initlabel="run" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					When switched on, agents do commands over and over for a number of seconds. <note>There are different commands for each breed.</note>
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="runtime-type" value="runforsometime"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="setup" kind="command" initlabel="setup" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					This block serves as a wrapper around blocks that set up a model.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-setup" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-setup" kind="command" initlabel="setup" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					This block serves as a wrapper around blocks that set up a model.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="monitor" kind="command" initlabel="monitor" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					A block used to define a monitor.  Mointors appear in the runtime space where they dynamically report a value.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="poly"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-monitor" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-monitor" kind="command" initlabel="monitor" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					A block used to define a monitor.  Mointors appear in the runtime space where they dynamically report a value.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="slider" kind="command" initlabel="slider" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					A block used to define a slider.  Sliders appear in the runtime space where you can dynamically change the value of its attached shared number variable.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number-inv"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-slider" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-slider" kind="command" initlabel="slider" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use the slider to change the value of this slider's attached shared number variable.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="table" kind="command" initlabel="table" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Defines a table that appears in the runtime space.  Each input to its sockets describes a series in the graph.  Values are graphed against time.	
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-table" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-table" kind="command" initlabel="table" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use the table to moniter the value of this graph's attached shared variable.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-runtime-table" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="line-graph" kind="command" initlabel="line graph" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Defines a line graph that appears in the runtime space.  Each input to its sockets describes a series in the graph.  Values are graphed against time.	
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-line-graph" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-line-graph" kind="command" initlabel="line graph" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use the Bar Graph to moniter the value of this graph's attached shared variable.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-runtime-line-graph" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="bar-graph" kind="command" initlabel="bar graph" editable-label="yes" label-unique="yes" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Defines a bar graph that appears in the runtime space.  Each input to its sockets describes a series in the graph.  Values in the graph may change dynamically over time.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number" is-expandable="yes"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-bar-graph" value="yes"></LangSpecProperty>
				<LangSpecProperty key="has-runtime-equiv" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="monitor"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="runtime-bar-graph" kind="command" initlabel="bar graph" is-starter="yes" is-terminator="yes" color="139 0 0">
			<description>
				<text>
					Use the Bar Graph to moniter the value of this graph's attached shared variable.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-runtime" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-runtime-bar-graph" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clear-all" kind="command" initlabel="clear all" color="139 0 0">
			<description>
				<text>
					Resets the terrain to flat and green, and kills all of the agents in SpaceLand.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ca"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clear-everyone" kind="command" initlabel="clear everyone" color="139 0 0">
			<description>
				<text>
					Kills all of the agents in SpaceLand.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="ct"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clear-patches" kind="command" initlabel="clear patches" color="139 0 0">
			<description>
				<text>
					Flattens the terrain in Spaceland and repaints it green.  
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="cp"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="scatter-everyone" kind="command" initlabel="scatter everyone" color="139 0 0">
			<description>
				<text>
					Scatters all agents randomly around the terrain.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="scatter-everyone"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="scatter-pc" kind="command" initlabel="scatter pc" color="139 0 0">
			<description>
				<text>
					Randomly colors the terrain based on the supplied proportions of red, green, blue, and black.  If all four numbers are the same, the terrain will have roughly an equal number of patches of each color.  If one color has a higher number than the others, it will appear more often on the resulting terrain.
				</text>
				
				<arg-description n="1" name="red">
					The proportion of red patches that you want.
				</arg-description>
				
				<arg-description n="2" name="green">
					The proportion of green patches that you want.
				</arg-description>
				
				<arg-description n="3" name="blue">
					The proportion of blue patches that you want.
				</arg-description>
				
				<arg-description n="4" name="black">
					The proportion of black patches that you want.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="red" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="green" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="blue" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
				<BlockConnector label="black" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="scatter-pc"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="set-score" kind="command" initlabel="set score" color="230 0 255 ">
			<description>
				<text>
					Sets the score to be the given value.
				</text>
				<arg-description n="1" name="score" doc-name="score">
					The new value for the score.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="0" />
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="set-score"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="score" kind="function" initlabel="score" color="230 0 255 ">
			<description>
				<text>
					Reports the current score.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" position-type="mirror" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="score"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hide-score" kind="command" initlabel="hide score" color="139 0 0">
			<description>
				<text>
					Hides the score from the Spaceland status bar.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-score"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-score" kind="command" initlabel="show score" color="139 0 0">
			<description>
				<text>
					Shows the score in the Spaceland status bar.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-score"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="hide-clock" kind="command" initlabel="hide clock" color="139 0 0">
			<description>
				<text>
					Hides the clock value from the Spaceland status bar.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-clock"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-clock" kind="command" initlabel="show clock" color="139 0 0">
			<description>
				<text>
					Shows the clock value in the Spaceland status bar.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-clock"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="clock" kind="function" initlabel="clock" color="230 0 255 ">
			<description>
				<text>
					Reports the number of StarLogo seconds elapsed since StarLogo started running or an agent called Reset Clock.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" position-type="mirror" connector-type="number"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="clock"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="reset-clock" kind="command" initlabel="reset clock" color="230 0 255 ">
			<description>
				<text>
					Resets the StarLogo clock to 0 StarLogo seconds.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="reset-clock"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>

		<BlockGenus name="hide-miniview" kind="command" initlabel="hide miniview" color="139 0 0">
			<description>
				<text>
					Hides the Spaceland mini-view/mini-map.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="hide-miniview"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="show-miniview" kind="command" initlabel="show miniview" color="139 0 0">
			<description>
				<text>
					Shows the Spaceland mini-view/mini-map.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="show-miniview"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- BREED SPECIFIC BLOCKS -->
		
		<BlockGenus name="create-agents" kind="command" initlabel="" label-prefix="create " color="139 0 0">
			<description>
				<text>
				Creates <arg n="1"/> number of agents of the given breed.
				</text>
				<arg-description n="1" name="num">
					The number of agents to create.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="num" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10"></DefaultArg>
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="crt-breed"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="include-breed-shape" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="create-and-do" kind="command" initlabel="" label-prefix="create " color="139 0 0">
			<description>
				<text>
				Creates <arg n="1"/> number of agents of the given breed and has each do the specified commands.
				</text>
				<arg-description n="1" name="num">
					The number of agents to create.
				</arg-description>
				<arg-description n="2" name="cmd">
					The commands for each agent to do.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector label="num" connector-kind="socket" connector-type="number">
					<DefaultArg genus-name="number" label="10"></DefaultArg>
				</BlockConnector>
				<BlockConnector label="do" connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="crt-breed-do"></LangSpecProperty>
				<LangSpecProperty key="is-setup-block" value="yes"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="1"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="include-breed-shape" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed-forever"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="1"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="breed-string" kind="function" initlabel="" label-prefix="breed: "  color="255 0 255">
			<description>
				<text>
				  	Reports the string of the given breed.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string" position-type="mirror">
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="nop"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-breeds" kind="function" initlabel="" label-prefix="count "  color="128 30 255">
			<description>
				<text>
				  	Reports the number agents of this breed.
				</text>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number" position-type="mirror">
				</BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="count-breeds"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="count-breeds-with" kind="function" initlabel="" label-prefix="count "  label-suffix=" with" color="128 30 255">
			<description>
				<text>
				  	Reports the number agents of this breed that satisfy the given condition.
				</text>
				<arg-description n="1" doc-name="condition">
					A condition that must be true of the counted agents.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="number"></BlockConnector>
				<BlockConnector label="condition" connector-kind="socket" connector-type="boolean"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="count-breeds-with"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="is-monitorable" value="yes"></LangSpecProperty>
				<LangSpecProperty key="inline-arg" value="0"></LangSpecProperty>
				<LangSpecProperty key="inline-stack-type" value="breed"></LangSpecProperty>
				<LangSpecProperty key="ask-arg" value="0"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="scatter-breeds" kind="command" initlabel="" label-prefix="scatter "  color="139 0 0">
			<description>
				<text>
				  	Scatters agents of this breed across SpaceLand.
				</text>
			</description>
			<LangSpecProperties>
				<LangSpecProperty key="is-owned-by-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="vm-cmd-name" value="scatter-agents"></LangSpecProperty>
				<LangSpecProperty key="include-breed" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="setup"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="collision" kind="command" initlabel="Collision" color="128 128 128" is-starter="yes" is-terminator="yes" page-label-enabled="yes">
			<description>
				<text>Constantly checks for collisions between agents.  If a collision occurs, causes the collider to run the <arg n="1"/> code, and the collidee to run the <arg n="2"/> code.  Which agent is the collidee and which is the collider depends on the block.  For example, if a Turtle and Frog collide, the collision block with "Turtles" as the first port and "Frogs" as the second port will assume that the Turtle is the collider and the Frog is the collidee.</text>
				<arg-description n="1" name="me">
				This is the code that the collider runs.
				</arg-description>
				
				<arg-description n="2" name="agents">
					This is the code that the collidee runs.  The label of this port determines which breed will be assumed to be collidee.
				</arg-description>
			</description>
			<BlockConnectors>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
				<BlockConnector connector-kind="socket" connector-type="cmd"></BlockConnector>
			</BlockConnectors>
			<LangSpecProperties>
				<LangSpecProperty key="is-collision" value="yes"></LangSpecProperty>
				<LangSpecProperty key="stack-type" value="breed-collision"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<!-- DYNAMIC BLOCKS -->
		
		<BlockGenus name="ashape" kind="data" initlabel="" color="255 252 138">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image width="64" height="64">
					<FileLocation>/models/animals/turtle/default_icon.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="animals/turtle-default"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
		<BlockGenus name="bshape" kind="data" initlabel="" color="255 252 138">
			<BlockConnectors>
				<BlockConnector connector-kind="plug" connector-type="string"></BlockConnector>
			</BlockConnectors>
			<Images>
				<Image width="64" height="64">
					<FileLocation>/models/animals/sonic/sonic_icon.png</FileLocation>
				</Image>
			</Images>
			<LangSpecProperties>
				<LangSpecProperty key="vm-cmd-name" value="eval-num"></LangSpecProperty>
				<LangSpecProperty key="special-value" value="animals/sonic-sonic"></LangSpecProperty>
			</LangSpecProperties>
		</BlockGenus>
		
	</BlockGenuses>
	
	<BlockFamilies>
		<BlockFamily>
			<FamilyMember>show-score</FamilyMember>
			<FamilyMember>hide-score</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>show-clock</FamilyMember>
			<FamilyMember>hide-clock</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>show-miniview</FamilyMember>
			<FamilyMember>hide-miniview</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>fd</FamilyMember>
			<FamilyMember>bk</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>rt</FamilyMember>
			<FamilyMember>lt</FamilyMember>
		</BlockFamily> 
		<BlockFamily>
			<FamilyMember>up</FamilyMember>
			<FamilyMember>down</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>penup</FamilyMember>
			<FamilyMember>pendown</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>true</FamilyMember>
			<FamilyMember>false</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>min</FamilyMember>
			<FamilyMember>max</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>round</FamilyMember>
			<FamilyMember>int</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>sin</FamilyMember>
			<FamilyMember>cos</FamilyMember>
			<FamilyMember>tan</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>log</FamilyMember>
			<FamilyMember>ln</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>setx</FamilyMember>
			<FamilyMember>sety</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>hideagent</FamilyMember>
			<FamilyMember>showagent</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>setskinon</FamilyMember>
			<FamilyMember>setskinoff</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>over-shoulder-on</FamilyMember>
			<FamilyMember>agent-eye-on</FamilyMember>
			<FamilyMember>aerial-on</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>overhead-on</FamilyMember>
			<FamilyMember>overhead-off</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>overhead?</FamilyMember>
			<FamilyMember>aerial?</FamilyMember>
			<FamilyMember>agent-eye?</FamilyMember>
			<FamilyMember>over-shoulder?</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>joy-button1?</FamilyMember>
			<FamilyMember>joy-button2?</FamilyMember>
			<FamilyMember>joy-button3?</FamilyMember>
			<FamilyMember>joy-button4?</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>joy-xaxis</FamilyMember>
			<FamilyMember>joy-yaxis</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>xcor</FamilyMember>
			<FamilyMember>ycor</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>xcor-of</FamilyMember>
			<FamilyMember>ycor-of</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>black</FamilyMember>
			<FamilyMember>blue</FamilyMember>
			<FamilyMember>brown</FamilyMember>
			<FamilyMember>cyan</FamilyMember>
			<FamilyMember>gray</FamilyMember>
			<FamilyMember>green</FamilyMember>
			<FamilyMember>lime</FamilyMember>
			<FamilyMember>magenta</FamilyMember>
			<FamilyMember>orange</FamilyMember>
			<FamilyMember>pink</FamilyMember>
			<FamilyMember>purple</FamilyMember>
			<FamilyMember>red</FamilyMember>
			<FamilyMember>sky</FamilyMember>
			<FamilyMember>turquoise</FamilyMember>
			<FamilyMember>white</FamilyMember>
			<FamilyMember>yellow</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>keyboard-a</FamilyMember>
			<FamilyMember>keyboard-b</FamilyMember>
			<FamilyMember>keyboard-c</FamilyMember>
			<FamilyMember>keyboard-d</FamilyMember>
			<FamilyMember>keyboard-e</FamilyMember>
			<FamilyMember>keyboard-f</FamilyMember>
			<FamilyMember>keyboard-g</FamilyMember>
			<FamilyMember>keyboard-h</FamilyMember>
			<FamilyMember>keyboard-i</FamilyMember>
			<FamilyMember>keyboard-j</FamilyMember>
			<FamilyMember>keyboard-k</FamilyMember>
			<FamilyMember>keyboard-l</FamilyMember>
			<FamilyMember>keyboard-m</FamilyMember>
			<FamilyMember>keyboard-n</FamilyMember>
			<FamilyMember>keyboard-o</FamilyMember>
			<FamilyMember>keyboard-p</FamilyMember>
			<FamilyMember>keyboard-q</FamilyMember>
			<FamilyMember>keyboard-r</FamilyMember>
			<FamilyMember>keyboard-s</FamilyMember>
			<FamilyMember>keyboard-t</FamilyMember>
			<FamilyMember>keyboard-u</FamilyMember>
			<FamilyMember>keyboard-v</FamilyMember>
			<FamilyMember>keyboard-w</FamilyMember>
			<FamilyMember>keyboard-x</FamilyMember>
			<FamilyMember>keyboard-y</FamilyMember>
			<FamilyMember>keyboard-z</FamilyMember>
			<FamilyMember>keyboard-0</FamilyMember>
			<FamilyMember>keyboard-1</FamilyMember>
			<FamilyMember>keyboard-2</FamilyMember>
			<FamilyMember>keyboard-3</FamilyMember>
			<FamilyMember>keyboard-4</FamilyMember>
			<FamilyMember>keyboard-5</FamilyMember>
			<FamilyMember>keyboard-6</FamilyMember>
			<FamilyMember>keyboard-7</FamilyMember>
			<FamilyMember>keyboard-8</FamilyMember>
			<FamilyMember>keyboard-9</FamilyMember>
			<FamilyMember>keyboard-up</FamilyMember>
			<FamilyMember>keyboard-down</FamilyMember>
			<FamilyMember>keyboard-left</FamilyMember>
			<FamilyMember>keyboard-right</FamilyMember>
			<FamilyMember>keyboard-space</FamilyMember>
		</BlockFamily> 
		<BlockFamily>
			<FamilyMember>equals</FamilyMember>
			<FamilyMember>not-equals</FamilyMember>
			<FamilyMember>lessthan</FamilyMember>
			<FamilyMember>greaterthan</FamilyMember>
			<FamilyMember>lessthanorequalto</FamilyMember>
			<FamilyMember>greaterthanorequalto</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>and</FamilyMember>
			<FamilyMember>or</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>sum</FamilyMember>
			<FamilyMember>difference</FamilyMember>
			<FamilyMember>quotient</FamilyMember>
			<FamilyMember>product</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>show-patches</FamilyMember>
			<FamilyMember>hide-patches</FamilyMember>
		</BlockFamily>
		<BlockFamily>
			<FamilyMember>stomp</FamilyMember>
			<FamilyMember>yank</FamilyMember>
			<FamilyMember>dig</FamilyMember>
			<FamilyMember>build</FamilyMember>			
		</BlockFamily>
	</BlockFamilies>

	<BlockDrawerSets>	
		<BlockDrawerSet name="factory" type="stack" location="southwest" window-per-drawer="no" drawer-draggable="no" >
			<BlockDrawer name="Setup and Run" type="factory" is-open="yes" button-color="173 0 0">
				<BlockGenusMember>setup</BlockGenusMember>
				<BlockGenusMember>forever</BlockGenusMember>
				<BlockGenusMember>runforsometime</BlockGenusMember>
				<BlockGenusMember>runonce</BlockGenusMember>
				<BlockGenusMember>clear-all</BlockGenusMember>
				<BlockGenusMember>clear-everyone</BlockGenusMember>
				<BlockGenusMember>clear-patches</BlockGenusMember>
				<BlockGenusMember>scatter-everyone</BlockGenusMember>
				<BlockGenusMember>scatter-pc</BlockGenusMember>
				<BlockGenusMember>show-score</BlockGenusMember>
				<BlockGenusMember>hide-score</BlockGenusMember>
				<BlockGenusMember>set-score</BlockGenusMember>
				<BlockGenusMember>score</BlockGenusMember>
				<BlockGenusMember>show-clock</BlockGenusMember>
				<BlockGenusMember>hide-clock</BlockGenusMember>
				<BlockGenusMember>reset-clock</BlockGenusMember>
				<BlockGenusMember>clock</BlockGenusMember>
				<BlockGenusMember>show-miniview</BlockGenusMember>
				<BlockGenusMember>hide-miniview</BlockGenusMember>
				<BlockGenusMember>count-everyone</BlockGenusMember>
				<BlockGenusMember>count-everyone-with</BlockGenusMember>
				<BlockGenusMember>monitor</BlockGenusMember>
				<BlockGenusMember>line-graph</BlockGenusMember>
				<BlockGenusMember>bar-graph</BlockGenusMember>
				<BlockGenusMember>table</BlockGenusMember>
				<BlockGenusMember>slider</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Movement" type="factory" button-color="247 0 0">
				<BlockGenusMember>fd</BlockGenusMember>
				<BlockGenusMember>bk</BlockGenusMember>
				<BlockGenusMember>lt</BlockGenusMember>
				<BlockGenusMember>rt</BlockGenusMember>
				<BlockGenusMember>up</BlockGenusMember>
				<BlockGenusMember>down</BlockGenusMember>
				<BlockGenusMember>home</BlockGenusMember>
				<BlockGenusMember>towards</BlockGenusMember>
				<BlockGenusMember>seth</BlockGenusMember>
				<BlockGenusMember>heading</BlockGenusMember>
				<BlockGenusMember>setxy</BlockGenusMember>
				<BlockGenusMember>setx</BlockGenusMember>
				<BlockGenusMember>xcor</BlockGenusMember>
				<BlockGenusMember>sety</BlockGenusMember>
				<BlockGenusMember>ycor</BlockGenusMember>
				<BlockGenusMember>setheight</BlockGenusMember>
				<BlockGenusMember>height</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Logic" type="factory" button-color="255 173 0">
				<BlockGenusMember>if</BlockGenusMember>
				<BlockGenusMember>ifelse</BlockGenusMember>
				<BlockGenusMember>repeat</BlockGenusMember>
				<BlockGenusMember>wait</BlockGenusMember>
				<BlockGenusMember>die</BlockGenusMember>
				<BlockGenusMember>and</BlockGenusMember>
				<BlockGenusMember>or</BlockGenusMember>
				<BlockGenusMember>not</BlockGenusMember>
				<BlockGenusMember>equals</BlockGenusMember>
				<BlockGenusMember>lessthan</BlockGenusMember>
				<BlockGenusMember>true</BlockGenusMember>
				<BlockGenusMember>false</BlockGenusMember>
				<BlockGenusMember>hatch</BlockGenusMember>
				<BlockGenusMember>hatch-and-do</BlockGenusMember>
				<BlockGenusMember>ask-agent</BlockGenusMember>
				<BlockGenusMember>switch</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Controls" type="factory" button-color="255 235 0">
				<BlockGenusMember>keyboard-a</BlockGenusMember>
				<BlockGenusMember>keyboard-0</BlockGenusMember>
				<BlockGenusMember>keyboard-up</BlockGenusMember>
				<BlockGenusMember>keyboard-space</BlockGenusMember>
				<BlockGenusMember>joy-xaxis</BlockGenusMember>
				<BlockGenusMember>joy-yaxis</BlockGenusMember>
				<BlockGenusMember>joy-radius</BlockGenusMember>
				<BlockGenusMember>joy-angle</BlockGenusMember>
				<BlockGenusMember>dpad-angle</BlockGenusMember>
				<BlockGenusMember>joy-button1?</BlockGenusMember>
				<BlockGenusMember>joy-button2?</BlockGenusMember>
				<BlockGenusMember>joy-button3?</BlockGenusMember>
				<BlockGenusMember>joy-button4?</BlockGenusMember>
				<BlockGenusMember>set-agent-camera</BlockGenusMember>
				<BlockGenusMember>who-of-agent-camera</BlockGenusMember>
				<BlockGenusMember>over-shoulder?</BlockGenusMember>
				<BlockGenusMember>over-shoulder-on</BlockGenusMember>
				<BlockGenusMember>agent-eye?</BlockGenusMember>
				<BlockGenusMember>agent-eye-on</BlockGenusMember>
				<BlockGenusMember>aerial?</BlockGenusMember>
				<BlockGenusMember>aerial-on</BlockGenusMember>
				<BlockGenusMember>overhead?</BlockGenusMember>
				<BlockGenusMember>overhead-on</BlockGenusMember>
				<BlockGenusMember>overhead-off</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Terrain" type="factory" button-color="120 255 0">
				<BlockGenusMember>stamp</BlockGenusMember>
				<BlockGenusMember>pc</BlockGenusMember>
				<BlockGenusMember>pc-ahead</BlockGenusMember>
				<BlockGenusMember>dig</BlockGenusMember>
				<BlockGenusMember>build</BlockGenusMember>
				<BlockGenusMember>stomp</BlockGenusMember>
				<BlockGenusMember>yank</BlockGenusMember>
				<BlockGenusMember>patch-height</BlockGenusMember>
				<BlockGenusMember>ph-ahead</BlockGenusMember>
				<BlockGenusMember>wall-ahead</BlockGenusMember>
				<BlockGenusMember>slope-ahead</BlockGenusMember>
				<BlockGenusMember>hide-patches</BlockGenusMember>
				<BlockGenusMember>show-patches</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Traits" type="factory" button-color="0 255 254">
				<BlockGenusMember>who</BlockGenusMember>
				<BlockGenusMember>setc</BlockGenusMember>
				<BlockGenusMember>color</BlockGenusMember>
				<BlockGenusMember>setshape</BlockGenusMember>
				<BlockGenusMember>shape</BlockGenusMember>
				<BlockGenusMember>setbreed</BlockGenusMember>
				<BlockGenusMember>breed</BlockGenusMember>
				<BlockGenusMember>seth</BlockGenusMember>
				<BlockGenusMember>heading</BlockGenusMember>
				<BlockGenusMember>penup</BlockGenusMember>
				<BlockGenusMember>pendown</BlockGenusMember>
				<BlockGenusMember>pendown?</BlockGenusMember>
				<BlockGenusMember>shown?</BlockGenusMember>
				<BlockGenusMember>setscale</BlockGenusMember>
				<BlockGenusMember>scale</BlockGenusMember>
				<BlockGenusMember>setscalex</BlockGenusMember>
				<BlockGenusMember>scalex</BlockGenusMember>
				<BlockGenusMember>setscaley</BlockGenusMember>
				<BlockGenusMember>scaley</BlockGenusMember>
				<BlockGenusMember>setscalez</BlockGenusMember>
				<BlockGenusMember>scalez</BlockGenusMember>
				<BlockGenusMember>setheight</BlockGenusMember>
				<BlockGenusMember>height</BlockGenusMember>
				<BlockGenusMember>seth</BlockGenusMember>
				<BlockGenusMember>heading</BlockGenusMember>
				<BlockGenusMember>setxy</BlockGenusMember>
				<BlockGenusMember>setx</BlockGenusMember>
				<BlockGenusMember>xcor</BlockGenusMember>
				<BlockGenusMember>sety</BlockGenusMember>
				<BlockGenusMember>ycor</BlockGenusMember>
				<BlockGenusMember>hideagent</BlockGenusMember>
				<BlockGenusMember>showagent</BlockGenusMember>
				<BlockGenusMember>setskinon</BlockGenusMember>
				<BlockGenusMember>setskinoff</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Text" type="factory" button-color="45 201 255">
				<BlockGenusMember>string</BlockGenusMember>
				<BlockGenusMember>say</BlockGenusMember>
				<BlockGenusMember>set-status</BlockGenusMember>
				<BlockGenusMember>newline</BlockGenusMember>
				<BlockGenusMember>to-string</BlockGenusMember>
				<BlockGenusMember>string-append</BlockGenusMember>
				<BlockGenusMember>equals</BlockGenusMember>
				<BlockGenusMember>not-equals</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Math" type="factory" button-color="102 129 255">
				<BlockGenusMember>number</BlockGenusMember>
				<BlockGenusMember>pi</BlockGenusMember>
				<BlockGenusMember>e</BlockGenusMember>
				<BlockGenusMember>sum</BlockGenusMember>
				<BlockGenusMember>difference</BlockGenusMember>
				<BlockGenusMember>product</BlockGenusMember>
				<BlockGenusMember>quotient</BlockGenusMember>
				<BlockGenusMember>equals</BlockGenusMember>
				<BlockGenusMember>not-equals</BlockGenusMember>
				<BlockGenusMember>lessthan</BlockGenusMember>
				<BlockGenusMember>greaterthan</BlockGenusMember>
				<BlockGenusMember>lessthanorequalto</BlockGenusMember>
				<BlockGenusMember>greaterthanorequalto</BlockGenusMember>
				<BlockGenusMember>atan</BlockGenusMember>
				<BlockGenusMember>random</BlockGenusMember>
				<BlockGenusMember>round</BlockGenusMember>
				<BlockGenusMember>int</BlockGenusMember>
				<BlockGenusMember>min</BlockGenusMember>
				<BlockGenusMember>max</BlockGenusMember>
				<BlockGenusMember>remainder</BlockGenusMember>
				<BlockGenusMember>power</BlockGenusMember>
				<BlockGenusMember>abs</BlockGenusMember>
				<BlockGenusMember>sqrt</BlockGenusMember>
				<BlockGenusMember>sin</BlockGenusMember>
				<BlockGenusMember>cos</BlockGenusMember>
				<BlockGenusMember>tan</BlockGenusMember>
				<BlockGenusMember>asin</BlockGenusMember>
				<BlockGenusMember>acos</BlockGenusMember>
				<BlockGenusMember>log</BlockGenusMember>
				<BlockGenusMember>ln</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Other Agents" type="factory" button-color="128 30 255">
				<BlockGenusMember>collidee</BlockGenusMember>
				<BlockGenusMember>xcor-of</BlockGenusMember>
				<BlockGenusMember>ycor-of</BlockGenusMember>
				<BlockGenusMember>color-of</BlockGenusMember>
				<BlockGenusMember>height-of</BlockGenusMember>
				<BlockGenusMember>heading-of</BlockGenusMember>
				<BlockGenusMember>shape-of</BlockGenusMember>
				<BlockGenusMember>scale-of</BlockGenusMember>
				<BlockGenusMember>scalex-of</BlockGenusMember>
				<BlockGenusMember>scaley-of</BlockGenusMember>
				<BlockGenusMember>scalez-of</BlockGenusMember>
				<BlockGenusMember>breed-of</BlockGenusMember>
				<BlockGenusMember>alive?</BlockGenusMember>
				<BlockGenusMember>kill</BlockGenusMember>
				<BlockGenusMember>ask-agent</BlockGenusMember>
				<BlockGenusMember>smell</BlockGenusMember>
				<BlockGenusMember>smell-with</BlockGenusMember>
				<BlockGenusMember>smell-list</BlockGenusMember>
				<BlockGenusMember>smell-list-with</BlockGenusMember>
				<BlockGenusMember>count-everyone</BlockGenusMember>
				<BlockGenusMember>count-everyone-with</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Procedure" type="factory" button-color="177 10 255">
				<BlockGenusMember>procedure</BlockGenusMember>
				<BlockGenusMember>proc-param-number</BlockGenusMember>
				<BlockGenusMember>proc-param-string</BlockGenusMember>
				<BlockGenusMember>proc-param-boolean</BlockGenusMember>
				<BlockGenusMember>proc-param-list</BlockGenusMember>
				<BlockGenusMember>stop</BlockGenusMember>
				<BlockGenusMember>output</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Variables" type="factory" button-color="230 0 255">
				<BlockGenusMember>global-var-boolean</BlockGenusMember>
				<BlockGenusMember>global-var-number</BlockGenusMember>
				<BlockGenusMember>global-var-string</BlockGenusMember>
				<BlockGenusMember>global-var-boolean-list</BlockGenusMember>
				<BlockGenusMember>global-var-number-list</BlockGenusMember>
				<BlockGenusMember>global-var-string-list</BlockGenusMember>
				<BlockGenusMember>agent-var-boolean</BlockGenusMember>
				<BlockGenusMember>agent-var-number</BlockGenusMember>
				<BlockGenusMember>agent-var-string</BlockGenusMember>
				<BlockGenusMember>agent-var-boolean-list</BlockGenusMember>
				<BlockGenusMember>agent-var-number-list</BlockGenusMember>
				<BlockGenusMember>agent-var-string-list</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="List" type="factory" button-color="255 80 70">
				<BlockGenusMember>list</BlockGenusMember>
				<BlockGenusMember>length</BlockGenusMember>
				<BlockGenusMember>add-to-list</BlockGenusMember>
				<BlockGenusMember>first</BlockGenusMember>
				<BlockGenusMember>get-list-item</BlockGenusMember>
				<BlockGenusMember>pick-list-item</BlockGenusMember>
			</BlockDrawer>
			<BlockDrawer name="Colors" type="factory" button-color="255 155 64">
				<BlockGenusMember>setc</BlockGenusMember>
				<BlockGenusMember>blue</BlockGenusMember>
				<BlockGenusMember>cyan</BlockGenusMember>
				<BlockGenusMember>green</BlockGenusMember>
				<BlockGenusMember>lime</BlockGenusMember>
				<BlockGenusMember>magenta</BlockGenusMember>
				<BlockGenusMember>orange</BlockGenusMember>
				<BlockGenusMember>pink</BlockGenusMember>
				<BlockGenusMember>purple</BlockGenusMember>
				<BlockGenusMember>red</BlockGenusMember>
				<BlockGenusMember>sky</BlockGenusMember>
				<BlockGenusMember>turquoise</BlockGenusMember>
				<BlockGenusMember>white</BlockGenusMember>
				<BlockGenusMember>yellow</BlockGenusMember>
				<BlockGenusMember>brown</BlockGenusMember>
				<BlockGenusMember>gray</BlockGenusMember>
				<BlockGenusMember>black</BlockGenusMember>
			</BlockDrawer>
			<!-- Shapes are automatically loaded as blocks in the Shapes drawer
				 (see ShapeBlocksGenerator for details)  -->
			<!-- Sound blocks reside in the auto-generated String drawer.  
				 (see SoundBlocksGenerator for details)  -->
		</BlockDrawerSet>
	</BlockDrawerSets>

	<Pages drawer-with-page="yes">
		<Page page-name="Turtles" page-width="400"></Page>
		<Page page-name="Everyone" page-width="400"></Page>
		<Page page-name="Setup" page-width="400"></Page>
		<Page page-name="Runtime" page-width="400"></Page>
		<Page page-name="Collisions" page-width="400"></Page>
	</Pages>


	<TrashCan>
		<OpenTrashImage>/support/images/trash_open.png</OpenTrashImage>
		<ClosedTrashImage>/support/images/trash.png</ClosedTrashImage>
	</TrashCan>
	
	<BreedShapeMappings>
		<BtoSMapping>
			<BreedName>Turtles</BreedName>
			<BreedShape>animals/turtle-default</BreedShape>
		</BtoSMapping>
	</BreedShapeMappings>
	
</BlockLangDef>
