roverml
NamedElement
name
RoverProgram
block
rover
Command
incoming
outgoing
Move
speed
distance
SetLightColor
color
lights
Rotate
angle
Wait
duration
Repeat
count
0
Color
none
none
red
red
green
green
blue
blue
yellow
yellow
Rover
components
Block
commands
transitions
Transition
source
target
TriggeredTransition
SensorType
QuantityType
sensor
operator
comparisonValue
GPS
DistanceSensor
Compass
SingleQuantity
value
TimeUnit
ns
ns
ms
ms
s
s
min
min
h
h
Time
timeUnit
Angle
angleUnit
Velocity
velocityUnit
Light
AngleUnit
radian
radian
degree
degree
VelocityUnit
mm_per_s
mm_per_s
cm_per_s
cm_per_s
Length
lengthUnit
LengthUnit
mm
mm
cm
cm
m
m
ComparisonOperator
smaller
smaller
equals
equals
greater
greater
unequal
unequal
Sensor
QuantityType
lastSensedValue
Motor
Terminate
Component
kind
Actuator
RoverSystem
rovers
roverPrograms
DistanceSensorTrigger
GpsTrigger
CompassTrigger
Quantity
Position
x
y
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="roverml" nsURI="http://www.big.tuwien.ac.at/roverml" nsPrefix="at.ac.tuwien.big.roverml">
  <eAnnotations source="http://www.eclipse.org/OCL/Import">
    <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
  </eAnnotations>
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
    <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="RoverProgram" eSuperTypes="#//NamedElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="block" lowerBound="1" eType="#//Block"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="rover" lowerBound="1" eType="#//Rover"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Command" abstract="true" eSuperTypes="#//NamedElement">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="noParallelExecution"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="noParallelExecution" value="if not self.oclIsKindOf(Block) and self.outgoing->size() > 1 then&#xA;&#x9;&#x9;&#x9;self.outgoing->select(t | t.oclIsTypeOf(Transition))->size() &lt;= 1 else true&#xA;&#x9;&#x9;&#x9;endif"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" upperBound="-1"
        eType="#//Transition" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="self.Block.transitions->select(target = self)"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" upperBound="-1"
        eType="#//Transition" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="self.Block.transitions->select(source = self)"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Move" eSuperTypes="#//Command">
    <eStructuralFeatures xsi:type="ecore:EReference" name="speed" lowerBound="1" eType="#//Velocity"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="distance" eType="#//Length"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SetLightColor" eSuperTypes="#//Command">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="color" eType="#//Color"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="lights" lowerBound="1"
        upperBound="-1" eType="#//Light"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Rotate" eSuperTypes="#//Command">
    <eStructuralFeatures xsi:type="ecore:EReference" name="angle" lowerBound="1" eType="#//Angle"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Wait" eSuperTypes="#//Command">
    <eStructuralFeatures xsi:type="ecore:EReference" name="duration" lowerBound="1"
        eType="#//Time" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Repeat" eSuperTypes="#//Command #//Block">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="repeatAtLeastOnce"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="repeatAtLeastOnce" value="self.count > 0 or self.count = - 1"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="count" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="0"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="Color">
    <eLiterals name="none"/>
    <eLiterals name="red" value="1"/>
    <eLiterals name="green" value="2"/>
    <eLiterals name="blue" value="3"/>
    <eLiterals name="yellow" value="4"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Rover" eSuperTypes="#//NamedElement">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="atLeastOneMotor uniqueName"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="atLeastOneMotor" value="self.components->select(component | component.oclIsTypeOf(Motor))->size() > 0"/>
      <details key="uniqueName" value="self.components->forAll(c1, c2 | c1 &lt;> c2 implies c1.name &lt;> c2.name)"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
        eType="#//Component" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Block">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="onlyTerminateOnce atLeastOneIncomingTransition"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="onlyTerminateOnce" value="self.commands->select(command | command.oclIsTypeOf(Terminate))->size() &lt;= 1"/>
      <details key="atLeastOneIncomingTransition" value="self.commands->select(command | command.incoming->isEmpty())->size() &lt;= 1"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="commands" upperBound="-1"
        eType="#//Command" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1"
        eType="#//Transition" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//NamedElement">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="sourceAndTargetInSameBlock triggeredTransitionAfterInfiniteCommand doNotRotateTwiceInARow"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="sourceAndTargetInSameBlock" value="self.source.Block = self.target.Block"/>
      <details key="triggeredTransitionAfterInfiniteCommand" value="&#xA;&#x9;&#x9;&#x9;if&#xA;&#x9;&#x9;&#x9;&#x9;(self.source.oclIsKindOf(Move) and self.source.oclAsType(Move).distance.oclIsUndefined()) &#xA;&#x9;&#x9;&#x9;&#x9;xor&#xA;&#x9;&#x9;&#x9;&#x9;(self.source.oclIsKindOf(Repeat) and self.source.oclAsType(Repeat).count = -1)&#xA;&#x9;&#x9;&#x9;then &#xA;&#x9;&#x9;&#x9;&#x9;self.oclIsKindOf(TriggeredTransition)&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;true&#xA;&#x9;&#x9;&#x9;endif"/>
      <details key="doNotRotateTwiceInARow" value="if self.source.oclIsTypeOf(Rotate) then not self.target.oclIsTypeOf(Rotate) else true endif"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
        eType="#//Command"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
        eType="#//Command"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TriggeredTransition" abstract="true"
      eSuperTypes="#//Transition">
    <eTypeParameters name="SensorType">
      <eBounds eClassifier="#//Sensor">
        <eTypeArguments eTypeParameter="#//TriggeredTransition/QuantityType"/>
      </eBounds>
    </eTypeParameters>
    <eTypeParameters name="QuantityType">
      <eBounds eClassifier="#//Quantity"/>
    </eTypeParameters>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sensor" lowerBound="1">
      <eGenericType eTypeParameter="#//TriggeredTransition/SensorType"/>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" lowerBound="1"
        eType="#//ComparisonOperator"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="comparisonValue" lowerBound="1"
        containment="true">
      <eGenericType eTypeParameter="#//TriggeredTransition/QuantityType"/>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="GPS">
    <eGenericSuperTypes eClassifier="#//Sensor">
      <eTypeArguments eClassifier="#//Position"/>
    </eGenericSuperTypes>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DistanceSensor">
    <eGenericSuperTypes eClassifier="#//Sensor">
      <eTypeArguments eClassifier="#//Length"/>
    </eGenericSuperTypes>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Compass">
    <eGenericSuperTypes eClassifier="#//Sensor">
      <eTypeArguments eClassifier="#//Angle"/>
    </eGenericSuperTypes>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SingleQuantity" abstract="true" eSuperTypes="#//Quantity">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="TimeUnit">
    <eLiterals name="ns"/>
    <eLiterals name="ms" value="1"/>
    <eLiterals name="s" value="2"/>
    <eLiterals name="min" value="3"/>
    <eLiterals name="h" value="4"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Time" eSuperTypes="#//SingleQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="notNegative"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="notNegative" value="self.value > 0"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeUnit" lowerBound="1"
        eType="#//TimeUnit"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Angle" eSuperTypes="#//SingleQuantity">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="angleUnit" lowerBound="1"
        eType="#//AngleUnit"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Velocity" eSuperTypes="#//SingleQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="positiveOrNegative"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="positiveOrNegative" value="self.value &lt;> 0"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="velocityUnit" lowerBound="1"
        eType="#//VelocityUnit"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Light" eSuperTypes="#//Actuator"/>
  <eClassifiers xsi:type="ecore:EEnum" name="AngleUnit">
    <eLiterals name="radian"/>
    <eLiterals name="degree" value="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="VelocityUnit">
    <eLiterals name="mm_per_s"/>
    <eLiterals name="cm_per_s" value="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Length" eSuperTypes="#//SingleQuantity">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthUnit" lowerBound="1"
        eType="#//LengthUnit"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="LengthUnit">
    <eLiterals name="mm"/>
    <eLiterals name="cm" value="1"/>
    <eLiterals name="m" value="2"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ComparisonOperator">
    <eLiterals name="smaller"/>
    <eLiterals name="equals" value="1"/>
    <eLiterals name="greater" value="2"/>
    <eLiterals name="unequal" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Sensor" abstract="true" eSuperTypes="#//Component">
    <eTypeParameters name="QuantityType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="lastSensedValue" containment="true">
      <eGenericType eTypeParameter="#//Sensor/QuantityType"/>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Motor" eSuperTypes="#//Actuator"/>
  <eClassifiers xsi:type="ecore:EClass" name="Terminate" eSuperTypes="#//Command">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="noOutgoingTransition"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="noOutgoingTransition" value="self.outgoing->isEmpty()"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Component" abstract="true" eSuperTypes="#//NamedElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Actuator" abstract="true" eSuperTypes="#//Component"/>
  <eClassifiers xsi:type="ecore:EClass" name="RoverSystem">
    <eStructuralFeatures xsi:type="ecore:EReference" name="rovers" upperBound="-1"
        eType="#//Rover" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="roverPrograms" upperBound="-1"
        eType="#//RoverProgram" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DistanceSensorTrigger">
    <eGenericSuperTypes eClassifier="#//TriggeredTransition">
      <eTypeArguments eClassifier="#//DistanceSensor"/>
      <eTypeArguments eClassifier="#//Length"/>
    </eGenericSuperTypes>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="GpsTrigger">
    <eGenericSuperTypes eClassifier="#//TriggeredTransition">
      <eTypeArguments eClassifier="#//GPS"/>
      <eTypeArguments eClassifier="#//Position"/>
    </eGenericSuperTypes>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CompassTrigger">
    <eGenericSuperTypes eClassifier="#//TriggeredTransition">
      <eTypeArguments eClassifier="#//Compass"/>
      <eTypeArguments eClassifier="#//Angle"/>
    </eGenericSuperTypes>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Quantity" abstract="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="Position" eSuperTypes="#//Quantity">
    <eStructuralFeatures xsi:type="ecore:EReference" name="x" lowerBound="1" eType="#//Length"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="y" lowerBound="1" eType="#//Length"
        containment="true"/>
  </eClassifiers>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"at.ac.tuwien.big.roverml","nsURI":"http://www.big.tuwien.ac.at/roverml","name":"roverml","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamedElement","instanceClass":null,"abstract":true,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RoverProgram","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Command","instanceClass":null,"abstract":true,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Move","instanceClass":null,"abstract":false,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SetLightColor","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Rotate","instanceClass":null,"abstract":false,"id":6,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Wait","instanceClass":null,"abstract":false,"id":7,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Repeat","instanceClass":null,"abstract":false,"id":8,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"Color","instanceClass":null,"id":9,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Rover","instanceClass":null,"abstract":false,"id":10,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Block","instanceClass":null,"abstract":false,"id":11,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Transition","instanceClass":null,"abstract":false,"id":12,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TriggeredTransition","instanceClass":null,"abstract":true,"id":13,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"GPS","instanceClass":null,"abstract":false,"id":14,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DistanceSensor","instanceClass":null,"abstract":false,"id":15,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Compass","instanceClass":null,"abstract":false,"id":16,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SingleQuantity","instanceClass":null,"abstract":true,"id":17,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"TimeUnit","instanceClass":null,"id":18,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Time","instanceClass":null,"abstract":false,"id":19,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Angle","instanceClass":null,"abstract":false,"id":20,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Velocity","instanceClass":null,"abstract":false,"id":21,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Light","instanceClass":null,"abstract":false,"id":22,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"AngleUnit","instanceClass":null,"id":23,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"instanceClassName":null,"name":"VelocityUnit","instanceClass":null,"id":24,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Length","instanceClass":null,"abstract":false,"id":25,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"LengthUnit","instanceClass":null,"id":26,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"instanceClassName":null,"name":"ComparisonOperator","instanceClass":null,"id":27,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Sensor","instanceClass":null,"abstract":true,"id":28,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Motor","instanceClass":null,"abstract":false,"id":29,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Terminate","instanceClass":null,"abstract":false,"id":30,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Component","instanceClass":null,"abstract":true,"id":31,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Actuator","instanceClass":null,"abstract":true,"id":32,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RoverSystem","instanceClass":null,"abstract":false,"id":33,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DistanceSensorTrigger","instanceClass":null,"abstract":false,"id":34,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"GpsTrigger","instanceClass":null,"abstract":false,"id":35,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CompassTrigger","instanceClass":null,"abstract":false,"id":36,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Quantity","instanceClass":null,"abstract":true,"id":37,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Position","instanceClass":null,"abstract":false,"id":38,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":39,"derived":false},{"id":40,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"block","changeable":true,"resolveProxies":true,"lowerBound":1,"id":41,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"rover","changeable":true,"resolveProxies":true,"lowerBound":1,"id":42,"derived":false},{"id":43,"eClass":"EGenericType"},{"id":44,"eClass":"EGenericType"},{"id":45,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"incoming","changeable":true,"resolveProxies":true,"lowerBound":0,"id":46,"derived":true},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"outgoing","changeable":true,"resolveProxies":true,"lowerBound":0,"id":47,"derived":true},{"id":48,"eClass":"EGenericType"},{"id":49,"eClass":"EGenericType"},{"id":50,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"speed","changeable":true,"resolveProxies":true,"lowerBound":1,"id":51,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"distance","changeable":true,"resolveProxies":true,"lowerBound":0,"id":52,"derived":false},{"id":53,"eClass":"EGenericType"},{"id":54,"eClass":"EGenericType"},{"id":55,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"color","changeable":true,"lowerBound":0,"iD":false,"id":56,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"lights","changeable":true,"resolveProxies":true,"lowerBound":1,"id":57,"derived":false},{"id":58,"eClass":"EGenericType"},{"id":59,"eClass":"EGenericType"},{"id":60,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"angle","changeable":true,"resolveProxies":true,"lowerBound":1,"id":61,"derived":false},{"id":62,"eClass":"EGenericType"},{"id":63,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"duration","changeable":true,"resolveProxies":true,"lowerBound":1,"id":64,"derived":false},{"id":65,"eClass":"EGenericType"},{"id":66,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"0","unsettable":false,"transient":false,"unique":true,"name":"count","changeable":true,"lowerBound":1,"iD":false,"id":67,"derived":false},{"id":68,"eClass":"EGenericType"},{"id":69,"eClass":"EGenericType"},{"id":70,"eClass":"EGenericType"},{"name":"none","id":71,"value":0,"literal":"none","eClass":"EEnumLiteral"},{"name":"red","id":72,"value":1,"literal":"red","eClass":"EEnumLiteral"},{"name":"green","id":73,"value":2,"literal":"green","eClass":"EEnumLiteral"},{"name":"blue","id":74,"value":3,"literal":"blue","eClass":"EEnumLiteral"},{"name":"yellow","id":75,"value":4,"literal":"yellow","eClass":"EEnumLiteral"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"components","changeable":true,"resolveProxies":true,"lowerBound":0,"id":76,"derived":false},{"id":77,"eClass":"EGenericType"},{"id":78,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"commands","changeable":true,"resolveProxies":true,"lowerBound":0,"id":79,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"transitions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":80,"derived":false},{"id":81,"eClass":"EGenericType"},{"id":82,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"source","changeable":true,"resolveProxies":true,"lowerBound":1,"id":83,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"target","changeable":true,"resolveProxies":true,"lowerBound":1,"id":84,"derived":false},{"id":85,"eClass":"EGenericType"},{"id":86,"eClass":"EGenericType"},{"id":87,"eClass":"EGenericType"},{"name":"SensorType","id":88,"eClass":"ETypeParameter"},{"name":"QuantityType","id":89,"eClass":"ETypeParameter"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"sensor","changeable":true,"resolveProxies":true,"lowerBound":1,"id":90,"derived":false},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"operator","changeable":true,"lowerBound":1,"iD":false,"id":91,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"comparisonValue","changeable":true,"resolveProxies":true,"lowerBound":1,"id":92,"derived":false},{"id":93,"eClass":"EGenericType"},{"id":94,"eClass":"EGenericType"},{"id":95,"eClass":"EGenericType"},{"id":96,"eClass":"EGenericType"},{"id":97,"eClass":"EGenericType"},{"id":98,"eClass":"EGenericType"},{"id":99,"eClass":"EGenericType"},{"id":100,"eClass":"EGenericType"},{"id":101,"eClass":"EGenericType"},{"id":102,"eClass":"EGenericType"},{"id":103,"eClass":"EGenericType"},{"id":104,"eClass":"EGenericType"},{"id":105,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":1,"iD":false,"id":106,"derived":false},{"id":107,"eClass":"EGenericType"},{"id":108,"eClass":"EGenericType"},{"name":"ns","id":109,"value":0,"literal":"ns","eClass":"EEnumLiteral"},{"name":"ms","id":110,"value":1,"literal":"ms","eClass":"EEnumLiteral"},{"name":"s","id":111,"value":2,"literal":"s","eClass":"EEnumLiteral"},{"name":"min","id":112,"value":3,"literal":"min","eClass":"EEnumLiteral"},{"name":"h","id":113,"value":4,"literal":"h","eClass":"EEnumLiteral"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"timeUnit","changeable":true,"lowerBound":1,"iD":false,"id":114,"derived":false},{"id":115,"eClass":"EGenericType"},{"id":116,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"angleUnit","changeable":true,"lowerBound":1,"iD":false,"id":117,"derived":false},{"id":118,"eClass":"EGenericType"},{"id":119,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"velocityUnit","changeable":true,"lowerBound":1,"iD":false,"id":120,"derived":false},{"id":121,"eClass":"EGenericType"},{"id":122,"eClass":"EGenericType"},{"id":123,"eClass":"EGenericType"},{"name":"radian","id":124,"value":0,"literal":"radian","eClass":"EEnumLiteral"},{"name":"degree","id":125,"value":1,"literal":"degree","eClass":"EEnumLiteral"},{"name":"mm_per_s","id":126,"value":0,"literal":"mm_per_s","eClass":"EEnumLiteral"},{"name":"cm_per_s","id":127,"value":1,"literal":"cm_per_s","eClass":"EEnumLiteral"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"lengthUnit","changeable":true,"lowerBound":1,"iD":false,"id":128,"derived":false},{"id":129,"eClass":"EGenericType"},{"id":130,"eClass":"EGenericType"},{"name":"mm","id":131,"value":0,"literal":"mm","eClass":"EEnumLiteral"},{"name":"cm","id":132,"value":1,"literal":"cm","eClass":"EEnumLiteral"},{"name":"m","id":133,"value":2,"literal":"m","eClass":"EEnumLiteral"},{"name":"smaller","id":134,"value":0,"literal":"smaller","eClass":"EEnumLiteral"},{"name":"equals","id":135,"value":1,"literal":"equals","eClass":"EEnumLiteral"},{"name":"greater","id":136,"value":2,"literal":"greater","eClass":"EEnumLiteral"},{"name":"unequal","id":137,"value":3,"literal":"unequal","eClass":"EEnumLiteral"},{"name":"QuantityType","id":138,"eClass":"ETypeParameter"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"lastSensedValue","changeable":true,"resolveProxies":true,"lowerBound":0,"id":139,"derived":false},{"id":140,"eClass":"EGenericType"},{"id":141,"eClass":"EGenericType"},{"id":142,"eClass":"EGenericType"},{"id":143,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"kind","changeable":true,"lowerBound":0,"iD":false,"id":144,"derived":false},{"id":145,"eClass":"EGenericType"},{"id":146,"eClass":"EGenericType"},{"id":147,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"rovers","changeable":true,"resolveProxies":true,"lowerBound":0,"id":148,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"roverPrograms","changeable":true,"resolveProxies":true,"lowerBound":0,"id":149,"derived":false},{"id":150,"eClass":"EGenericType"},{"id":151,"eClass":"EGenericType"},{"id":152,"eClass":"EGenericType"},{"id":153,"eClass":"EGenericType"},{"id":154,"eClass":"EGenericType"},{"id":155,"eClass":"EGenericType"},{"id":156,"eClass":"EGenericType"},{"id":157,"eClass":"EGenericType"},{"id":158,"eClass":"EGenericType"},{"id":159,"eClass":"EGenericType"},{"id":160,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"x","changeable":true,"resolveProxies":true,"lowerBound":1,"id":161,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"y","changeable":true,"resolveProxies":true,"lowerBound":1,"id":162,"derived":false},{"id":163,"eClass":"EGenericType"},{"id":164,"eClass":"EGenericType"},{"id":165,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":0,"target":6},{"source":0,"target":7},{"source":0,"target":8},{"source":0,"target":9},{"source":0,"target":10},{"source":0,"target":11},{"source":0,"target":12},{"source":0,"target":13},{"source":0,"target":14},{"source":0,"target":15},{"source":0,"target":16},{"source":0,"target":17},{"source":0,"target":18},{"source":0,"target":19},{"source":0,"target":20},{"source":0,"target":21},{"source":0,"target":22},{"source":0,"target":23},{"source":0,"target":24},{"source":0,"target":25},{"source":0,"target":26},{"source":0,"target":27},{"source":0,"target":28},{"source":0,"target":29},{"source":0,"target":30},{"source":0,"target":31},{"source":0,"target":32},{"source":0,"target":33},{"source":0,"target":34},{"source":0,"target":35},{"source":0,"target":36},{"source":0,"target":37},{"source":0,"target":38},{"source":1,"target":0},{"source":1,"target":39},{"source":39,"target":40},{"source":39,"target":1},{"source":2,"target":0},{"source":2,"target":1},{"source":2,"target":41},{"source":2,"target":42},{"source":2,"target":43},{"source":41,"target":11},{"source":41,"target":44},{"source":41,"target":2},{"source":44,"target":11},{"source":42,"target":10},{"source":42,"target":45},{"source":42,"target":2},{"source":45,"target":10},{"source":43,"target":1},{"source":3,"target":0},{"source":3,"target":1},{"source":3,"target":46},{"source":3,"target":47},{"source":3,"target":48},{"source":46,"target":12},{"source":46,"target":49},{"source":46,"target":3},{"source":49,"target":12},{"source":47,"target":12},{"source":47,"target":50},{"source":47,"target":3},{"source":50,"target":12},{"source":48,"target":1},{"source":4,"target":0},{"source":4,"target":3},{"source":4,"target":51},{"source":4,"target":52},{"source":4,"target":53},{"source":51,"target":21},{"source":51,"target":54},{"source":51,"target":4},{"source":54,"target":21},{"source":52,"target":25},{"source":52,"target":55},{"source":52,"target":4},{"source":55,"target":25},{"source":53,"target":3},{"source":5,"target":0},{"source":5,"target":3},{"source":5,"target":56},{"source":5,"target":57},{"source":5,"target":58},{"source":56,"target":9},{"source":56,"target":59},{"source":56,"target":5},{"source":59,"target":9},{"source":57,"target":22},{"source":57,"target":60},{"source":57,"target":5},{"source":60,"target":22},{"source":58,"target":3},{"source":6,"target":0},{"source":6,"target":3},{"source":6,"target":61},{"source":6,"target":62},{"source":61,"target":20},{"source":61,"target":63},{"source":61,"target":6},{"source":63,"target":20},{"source":62,"target":3},{"source":7,"target":0},{"source":7,"target":3},{"source":7,"target":64},{"source":7,"target":65},{"source":64,"target":19},{"source":64,"target":66},{"source":64,"target":7},{"source":66,"target":19},{"source":65,"target":3},{"source":8,"target":0},{"source":8,"target":3},{"source":8,"target":11},{"source":8,"target":67},{"source":8,"target":68},{"source":8,"target":69},{"source":67,"target":70},{"source":67,"target":8},{"source":68,"target":3},{"source":69,"target":11},{"source":9,"target":0},{"source":9,"target":71},{"source":9,"target":72},{"source":9,"target":73},{"source":9,"target":74},{"source":9,"target":75},{"source":71,"target":9},{"source":72,"target":9},{"source":73,"target":9},{"source":74,"target":9},{"source":75,"target":9},{"source":10,"target":0},{"source":10,"target":1},{"source":10,"target":76},{"source":10,"target":77},{"source":76,"target":31},{"source":76,"target":78},{"source":76,"target":10},{"source":78,"target":31},{"source":77,"target":1},{"source":11,"target":0},{"source":11,"target":79},{"source":11,"target":80},{"source":79,"target":3},{"source":79,"target":81},{"source":79,"target":11},{"source":81,"target":3},{"source":80,"target":12},{"source":80,"target":82},{"source":80,"target":11},{"source":82,"target":12},{"source":12,"target":0},{"source":12,"target":1},{"source":12,"target":83},{"source":12,"target":84},{"source":12,"target":85},{"source":83,"target":3},{"source":83,"target":86},{"source":83,"target":12},{"source":86,"target":3},{"source":84,"target":3},{"source":84,"target":87},{"source":84,"target":12},{"source":87,"target":3},{"source":85,"target":1},{"source":13,"target":0},{"source":13,"target":88},{"source":13,"target":89},{"source":13,"target":12},{"source":13,"target":90},{"source":13,"target":91},{"source":13,"target":92},{"source":13,"target":93},{"source":88,"target":94},{"source":94,"target":95},{"source":94,"target":28},{"source":95,"target":89},{"source":89,"target":96},{"source":96,"target":37},{"source":90,"target":28},{"source":90,"target":97},{"source":90,"target":13},{"source":97,"target":88},{"source":91,"target":27},{"source":91,"target":98},{"source":91,"target":13},{"source":98,"target":27},{"source":92,"target":37},{"source":92,"target":99},{"source":92,"target":13},{"source":99,"target":89},{"source":93,"target":12},{"source":14,"target":0},{"source":14,"target":28},{"source":14,"target":100},{"source":100,"target":101},{"source":100,"target":28},{"source":101,"target":38},{"source":15,"target":0},{"source":15,"target":28},{"source":15,"target":102},{"source":102,"target":103},{"source":102,"target":28},{"source":103,"target":25},{"source":16,"target":0},{"source":16,"target":28},{"source":16,"target":104},{"source":104,"target":105},{"source":104,"target":28},{"source":105,"target":20},{"source":17,"target":0},{"source":17,"target":37},{"source":17,"target":106},{"source":17,"target":107},{"source":106,"target":108},{"source":106,"target":17},{"source":107,"target":37},{"source":18,"target":0},{"source":18,"target":109},{"source":18,"target":110},{"source":18,"target":111},{"source":18,"target":112},{"source":18,"target":113},{"source":109,"target":18},{"source":110,"target":18},{"source":111,"target":18},{"source":112,"target":18},{"source":113,"target":18},{"source":19,"target":0},{"source":19,"target":17},{"source":19,"target":114},{"source":19,"target":115},{"source":114,"target":18},{"source":114,"target":116},{"source":114,"target":19},{"source":116,"target":18},{"source":115,"target":17},{"source":20,"target":0},{"source":20,"target":17},{"source":20,"target":117},{"source":20,"target":118},{"source":117,"target":23},{"source":117,"target":119},{"source":117,"target":20},{"source":119,"target":23},{"source":118,"target":17},{"source":21,"target":0},{"source":21,"target":17},{"source":21,"target":120},{"source":21,"target":121},{"source":120,"target":24},{"source":120,"target":122},{"source":120,"target":21},{"source":122,"target":24},{"source":121,"target":17},{"source":22,"target":0},{"source":22,"target":32},{"source":22,"target":123},{"source":123,"target":32},{"source":23,"target":0},{"source":23,"target":124},{"source":23,"target":125},{"source":124,"target":23},{"source":125,"target":23},{"source":24,"target":0},{"source":24,"target":126},{"source":24,"target":127},{"source":126,"target":24},{"source":127,"target":24},{"source":25,"target":0},{"source":25,"target":17},{"source":25,"target":128},{"source":25,"target":129},{"source":128,"target":26},{"source":128,"target":130},{"source":128,"target":25},{"source":130,"target":26},{"source":129,"target":17},{"source":26,"target":0},{"source":26,"target":131},{"source":26,"target":132},{"source":26,"target":133},{"source":131,"target":26},{"source":132,"target":26},{"source":133,"target":26},{"source":27,"target":0},{"source":27,"target":134},{"source":27,"target":135},{"source":27,"target":136},{"source":27,"target":137},{"source":134,"target":27},{"source":135,"target":27},{"source":136,"target":27},{"source":137,"target":27},{"source":28,"target":0},{"source":28,"target":138},{"source":28,"target":31},{"source":28,"target":139},{"source":28,"target":140},{"source":139,"target":141},{"source":139,"target":28},{"source":141,"target":138},{"source":140,"target":31},{"source":29,"target":0},{"source":29,"target":32},{"source":29,"target":142},{"source":142,"target":32},{"source":30,"target":0},{"source":30,"target":3},{"source":30,"target":143},{"source":143,"target":3},{"source":31,"target":0},{"source":31,"target":1},{"source":31,"target":144},{"source":31,"target":145},{"source":144,"target":146},{"source":144,"target":31},{"source":145,"target":1},{"source":32,"target":0},{"source":32,"target":31},{"source":32,"target":147},{"source":147,"target":31},{"source":33,"target":0},{"source":33,"target":148},{"source":33,"target":149},{"source":148,"target":10},{"source":148,"target":150},{"source":148,"target":33},{"source":150,"target":10},{"source":149,"target":2},{"source":149,"target":151},{"source":149,"target":33},{"source":151,"target":2},{"source":34,"target":0},{"source":34,"target":13},{"source":34,"target":152},{"source":152,"target":153},{"source":152,"target":154},{"source":152,"target":13},{"source":153,"target":15},{"source":154,"target":25},{"source":35,"target":0},{"source":35,"target":13},{"source":35,"target":155},{"source":155,"target":156},{"source":155,"target":157},{"source":155,"target":13},{"source":156,"target":14},{"source":157,"target":38},{"source":36,"target":0},{"source":36,"target":13},{"source":36,"target":158},{"source":158,"target":159},{"source":158,"target":160},{"source":158,"target":13},{"source":159,"target":16},{"source":160,"target":20},{"source":37,"target":0},{"source":38,"target":0},{"source":38,"target":37},{"source":38,"target":161},{"source":38,"target":162},{"source":38,"target":163},{"source":161,"target":25},{"source":161,"target":164},{"source":161,"target":38},{"source":164,"target":25},{"source":162,"target":25},{"source":162,"target":165},{"source":162,"target":38},{"source":165,"target":25},{"source":163,"target":37}],"multigraph":true}