Quellcode durchsuchen

Add statechart that, under any semantic configuration, tells you the semantic configuration.

Joeri Exelmans vor 5 Jahren
Ursprung
Commit
f6f6fba213
2 geänderte Dateien mit 1071 neuen und 0 gelöschten Zeilen
  1. 854 0
      test/test_demo.svg
  2. 217 0
      test/test_demo.xml

+ 854 - 0
test/test_demo.svg

@@ -0,0 +1,854 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="9138pt" height="1114pt"
+ viewBox="0.00 0.00 9138.00 1113.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1109.5)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1109.5 9134,-1109.5 9134,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__P</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 9110,-8 9110,-8 9116,-8 9122,-14 9122,-20 9122,-20 9122,-1054.5 9122,-1054.5 9122,-1060.5 9116,-1066.5 9110,-1066.5 9110,-1066.5 20,-1066.5 20,-1066.5 14,-1066.5 8,-1060.5 8,-1054.5 8,-1054.5 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="4560.9986" y="-1047.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">P</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__P_ComboStepMaximality</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2503,-16C2503,-16 9102,-16 9102,-16 9108,-16 9114,-22 9114,-28 9114,-28 9114,-1016.5 9114,-1016.5 9114,-1022.5 9108,-1028.5 9102,-1028.5 9102,-1028.5 2503,-1028.5 2503,-1028.5 2497,-1028.5 2491,-1022.5 2491,-1016.5 2491,-1016.5 2491,-28 2491,-28 2491,-22 2497,-16 2503,-16"/>
+<text text-anchor="start" x="5742.4982" y="-1009.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboStepMaximality</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__P_ComboStepMaximality_ComboStepMaximality</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2965,-428 2965,-990.5 9106,-990.5 9106,-428 2965,-428"/>
+<text text-anchor="start" x="5975.4982" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboStepMaximality</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster__P_ComboStepMaximality_MemoryProtocolDeducer</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2801,-24 2801,-990.5 2957,-990.5 2957,-24 2801,-24"/>
+<text text-anchor="start" x="2812.6628" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">MemoryProtocolDeducer</text>
+</g>
+<g id="clust5" class="cluster">
+<title>cluster__P_ComboStepMaximality_InternalEventDeducer</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2653,-24 2653,-990.5 2793,-990.5 2793,-24 2653,-24"/>
+<text text-anchor="start" x="2664.9848" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">InternalEventDeducer</text>
+</g>
+<g id="clust6" class="cluster">
+<title>cluster__P_ComboStepMaximality_InputEventDeducer</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2507,-24 2507,-990.5 2645,-990.5 2645,-24 2507,-24"/>
+<text text-anchor="start" x="2524.649" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">InputEventDeducer</text>
+</g>
+<g id="clust7" class="cluster">
+<title>cluster__P_Priority</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2282,-428 2282,-990.5 2483,-990.5 2483,-428 2282,-428"/>
+<text text-anchor="start" x="2364.3382" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Priority</text>
+</g>
+<g id="clust8" class="cluster">
+<title>cluster__P_Priority_Composite</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2302,-554C2302,-554 2359,-554 2359,-554 2365,-554 2371,-560 2371,-566 2371,-566 2371,-847.5 2371,-847.5 2371,-853.5 2365,-859.5 2359,-859.5 2359,-859.5 2302,-859.5 2302,-859.5 2296,-859.5 2290,-853.5 2290,-847.5 2290,-847.5 2290,-566 2290,-566 2290,-560 2296,-554 2302,-554"/>
+<text text-anchor="start" x="2302.3308" y="-840.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Composite</text>
+</g>
+<g id="clust9" class="cluster">
+<title>cluster__P_MemoryProtocol</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M1978,-222C1978,-222 2262,-222 2262,-222 2268,-222 2274,-228 2274,-234 2274,-234 2274,-1016.5 2274,-1016.5 2274,-1022.5 2268,-1028.5 2262,-1028.5 2262,-1028.5 1978,-1028.5 1978,-1028.5 1972,-1028.5 1966,-1022.5 1966,-1016.5 1966,-1016.5 1966,-234 1966,-234 1966,-228 1972,-222 1978,-222"/>
+<text text-anchor="start" x="2076.8332" y="-1009.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">MemoryProtocol</text>
+</g>
+<g id="clust10" class="cluster">
+<title>cluster__P_MemoryProtocol_MemoryProtocol</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2088,-230 2088,-990.5 2266,-990.5 2266,-230 2088,-230"/>
+<text text-anchor="start" x="2133.8332" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">MemoryProtocol</text>
+</g>
+<g id="clust11" class="cluster">
+<title>cluster__P_MemoryProtocol_RegionAssign</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="1982,-428 1982,-990.5 2080,-990.5 2080,-428 1982,-428"/>
+<text text-anchor="start" x="1993.992" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">RegionAssign</text>
+</g>
+<g id="clust12" class="cluster">
+<title>cluster__P_InternalEventLifeline</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M298,-222C298,-222 1946,-222 1946,-222 1952,-222 1958,-228 1958,-234 1958,-234 1958,-1016.5 1958,-1016.5 1958,-1022.5 1952,-1028.5 1946,-1028.5 1946,-1028.5 298,-1028.5 298,-1028.5 292,-1028.5 286,-1022.5 286,-1016.5 286,-1016.5 286,-234 286,-234 286,-228 292,-222 298,-222"/>
+<text text-anchor="start" x="1067.652" y="-1009.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">InternalEventLifeline</text>
+</g>
+<g id="clust13" class="cluster">
+<title>cluster__P_InternalEventLifeline_InternalEventLifeline</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="666,-230 666,-990.5 1950,-990.5 1950,-230 666,-230"/>
+<text text-anchor="start" x="1253.652" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">InternalEventLifeline</text>
+</g>
+<g id="clust14" class="cluster">
+<title>cluster__P_InternalEventLifeline_RegionReceive2</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="546,-428 546,-990.5 658,-990.5 658,-428 546,-428"/>
+<text text-anchor="start" x="557.9912" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">RegionReceive2</text>
+</g>
+<g id="clust15" class="cluster">
+<title>cluster__P_InternalEventLifeline_RegionReceive1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="426,-428 426,-990.5 538,-990.5 538,-428 426,-428"/>
+<text text-anchor="start" x="437.9912" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">RegionReceive1</text>
+</g>
+<g id="clust16" class="cluster">
+<title>cluster__P_InternalEventLifeline_RegionBroadcast</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="302,-428 302,-990.5 418,-990.5 418,-428 302,-428"/>
+<text text-anchor="start" x="313.9878" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">RegionBroadcast</text>
+</g>
+<g id="clust17" class="cluster">
+<title>cluster__P_InputEventLifeline</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="154,-554 154,-990.5 278,-990.5 278,-554 154,-554"/>
+<text text-anchor="start" x="168.8162" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">InputEventLifeline</text>
+</g>
+<g id="clust18" class="cluster">
+<title>cluster__P_BigStepMaximality</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-428 24,-990.5 146,-990.5 146,-428 24,-428"/>
+<text text-anchor="start" x="35.665" y="-971.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">BigStepMaximality</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-1100" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P -->
+<!-- __initial&#45;&gt;_P -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_P</title>
+<path fill="none" stroke="#000000" d="M16,-1094.189C16,-1090.0672 16,-1083.9596 16,-1076.5416"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-1076.4953 16,-1066.4954 12.5001,-1076.4954 19.5001,-1076.4953"/>
+<text text-anchor="middle" x="17.3895" y="-1077.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_ComboStepMaximality -->
+<!-- _P_ComboStepMaximality_ComboStepMaximality -->
+<!-- _P_ComboStepMaximality_ComboStepMaximality_initial -->
+<g id="node5" class="node">
+<title>_P_ComboStepMaximality_ComboStepMaximality_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="5647" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps -->
+<g id="node9" class="node">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="5700,-716 5594,-716 5594,-680 5700,-680 5700,-716"/>
+<text text-anchor="start" x="5604.6586" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">NoComboSteps</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M5606.3333,-681C5606.3333,-681 5687.6667,-681 5687.6667,-681 5693.3333,-681 5699,-686.6667 5699,-692.3333 5699,-692.3333 5699,-703.6667 5699,-703.6667 5699,-709.3333 5693.3333,-715 5687.6667,-715 5687.6667,-715 5606.3333,-715 5606.3333,-715 5600.6667,-715 5595,-709.3333 5595,-703.6667 5595,-703.6667 5595,-692.3333 5595,-692.3333 5595,-686.6667 5600.6667,-681 5606.3333,-681"/>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_initial&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps -->
+<g id="edge2" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_initial&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps</title>
+<path fill="none" stroke="#000000" d="M5647,-941.3288C5647,-936.6736 5647,-929.9097 5647,-924 5647,-924 5647,-924 5647,-733.5 5647,-731.1079 5647,-728.6252 5647,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="5650.5001,-726.0597 5647,-716.0598 5643.5001,-726.0598 5650.5001,-726.0597"/>
+<text text-anchor="middle" x="5648.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany -->
+<g id="node6" class="node">
+<title>_P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="7754,-472 7638,-472 7638,-436 7754,-436 7754,-472"/>
+<text text-anchor="start" x="7648.6606" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeMany</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M7650.3333,-437C7650.3333,-437 7741.6667,-437 7741.6667,-437 7747.3333,-437 7753,-442.6667 7753,-448.3333 7753,-448.3333 7753,-459.6667 7753,-459.6667 7753,-465.3333 7747.3333,-471 7741.6667,-471 7741.6667,-471 7650.3333,-471 7650.3333,-471 7644.6667,-471 7639,-465.3333 7639,-459.6667 7639,-459.6667 7639,-448.3333 7639,-448.3333 7639,-442.6667 7644.6667,-437 7650.3333,-437"/>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic -->
+<g id="node7" class="node">
+<title>_P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="5701.5,-472 5592.5,-472 5592.5,-436 5701.5,-436 5701.5,-472"/>
+<text text-anchor="start" x="5603.8266" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboSyntactic</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M5604.8333,-437C5604.8333,-437 5689.1667,-437 5689.1667,-437 5694.8333,-437 5700.5,-442.6667 5700.5,-448.3333 5700.5,-448.3333 5700.5,-459.6667 5700.5,-459.6667 5700.5,-465.3333 5694.8333,-471 5689.1667,-471 5689.1667,-471 5604.8333,-471 5604.8333,-471 5599.1667,-471 5593.5,-465.3333 5593.5,-459.6667 5593.5,-459.6667 5593.5,-448.3333 5593.5,-448.3333 5593.5,-442.6667 5599.1667,-437 5604.8333,-437"/>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne -->
+<g id="node8" class="node">
+<title>_P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="3747,-472 3637,-472 3637,-436 3747,-436 3747,-472"/>
+<text text-anchor="start" x="3647.9906" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeOne</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M3649.3333,-437C3649.3333,-437 3734.6667,-437 3734.6667,-437 3740.3333,-437 3746,-442.6667 3746,-448.3333 3746,-448.3333 3746,-459.6667 3746,-459.6667 3746,-465.3333 3740.3333,-471 3734.6667,-471 3734.6667,-471 3649.3333,-471 3649.3333,-471 3643.6667,-471 3638,-465.3333 3638,-459.6667 3638,-459.6667 3638,-448.3333 3638,-448.3333 3638,-442.6667 3643.6667,-437 3649.3333,-437"/>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany -->
+<g id="edge5" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany</title>
+<path fill="none" stroke="#000000" d="M5700.1666,-697.3916C5959.6888,-694.3365 7081,-680.1173 7081,-662.5 7081,-662.5 7081,-662.5 7081,-489.5 7081,-462.3725 7467.4057,-455.9458 7627.6443,-454.4469"/>
+<polygon fill="#000000" stroke="#000000" points="7627.8972,-457.9449 7637.8653,-454.3552 7627.8343,-450.9452 7627.8972,-457.9449"/>
+<text text-anchor="start" x="7081" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">¬input0 [INSTATE([&quot;/P/InputEventLifeline/FirstComboStep&quot;,&quot;/P/ComboStepMaximality/InputEventDeducer/ComboTakeMany&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany -->
+<g id="edge8" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany</title>
+<path fill="none" stroke="#000000" d="M5700.2295,-697.7918C6022.2334,-696.4479 7696,-688.2247 7696,-662.5 7696,-662.5 7696,-662.5 7696,-489.5 7696,-487.1079 7696,-484.6252 7696,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="7699.5001,-482.0597 7696,-472.0598 7692.5001,-482.0598 7699.5001,-482.0597"/>
+<text text-anchor="start" x="7696" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">¬internal0 [INSTATE([&quot;/P/InternalEventLifeline/InternalEventLifeline/NextComboStep&quot;,&quot;/P/ComboStepMaximality/InternalEventDeducer/ComboTakeMany&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany -->
+<g id="edge11" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeMany</title>
+<path fill="none" stroke="#000000" d="M5700.2808,-697.6819C6086.2748,-695.335 8439,-680.2998 8439,-662.5 8439,-662.5 8439,-662.5 8439,-489.5 8439,-472.7064 7948.1907,-459.7606 7764.3918,-455.5014"/>
+<polygon fill="#000000" stroke="#000000" points="7764.3799,-452.0003 7754.302,-455.2692 7764.2188,-458.9985 7764.3799,-452.0003"/>
+<text text-anchor="start" x="8439" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 1 and INSTATE([&quot;/P/MemoryProtocol/MemoryProtocol/ComboStep&quot;,&quot;/P/ComboStepMaximality/MemoryProtocolDeducer/ComboTakeMany&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic -->
+<g id="edge4" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic</title>
+<path fill="none" stroke="#000000" d="M5593.7551,-697.6546C5445.3681,-696.343 5038,-690.2183 5038,-662.5 5038,-662.5 5038,-662.5 5038,-489.5 5038,-462.4852 5424.9533,-455.9818 5581.9678,-454.4549"/>
+<polygon fill="#000000" stroke="#000000" points="5582.4525,-457.9506 5592.4194,-454.3573 5582.3871,-450.9509 5582.4525,-457.9506"/>
+<text text-anchor="start" x="5038" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">¬input0 [INSTATE([&quot;/P/InputEventLifeline/FirstComboStep&quot;,&quot;/P/ComboStepMaximality/InputEventDeducer/ComboSyntactic&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic -->
+<g id="edge7" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic</title>
+<path fill="none" stroke="#000000" d="M5700.2474,-696.6747C5863.1811,-692.4456 6344,-678.6015 6344,-662.5 6344,-662.5 6344,-662.5 6344,-489.5 6344,-473.7672 5884.9506,-460.1896 5711.9315,-455.6309"/>
+<polygon fill="#000000" stroke="#000000" points="5711.7806,-452.1258 5701.6924,-455.3629 5711.5974,-459.1234 5711.7806,-452.1258"/>
+<text text-anchor="start" x="6344" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">¬internal0 [INSTATE([&quot;/P/InternalEventLifeline/InternalEventLifeline/NextComboStep&quot;,&quot;/P/ComboStepMaximality/InternalEventDeducer/ComboSyntactic&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic -->
+<g id="edge10" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboSyntactic</title>
+<path fill="none" stroke="#000000" d="M5647,-679.9402C5647,-674.3497 5647,-668.1701 5647,-662.5 5647,-662.5 5647,-662.5 5647,-489.5 5647,-487.1079 5647,-484.6252 5647,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="5650.5001,-482.0597 5647,-472.0598 5643.5001,-482.0598 5650.5001,-482.0597"/>
+<text text-anchor="start" x="5647" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 1 and INSTATE([&quot;/P/MemoryProtocol/MemoryProtocol/ComboStep&quot;,&quot;/P/ComboStepMaximality/MemoryProtocolDeducer/ComboSyntactic&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne -->
+<g id="edge3" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne</title>
+<path fill="none" stroke="#000000" d="M5593.9489,-697.7477C5281.2253,-696.1762 3692,-686.9853 3692,-662.5 3692,-662.5 3692,-662.5 3692,-489.5 3692,-487.1079 3692,-484.6252 3692,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="3695.5001,-482.0597 3692,-472.0598 3688.5001,-482.0598 3695.5001,-482.0597"/>
+<text text-anchor="start" x="3692" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">¬input0 [INSTATE([&quot;/P/InputEventLifeline/FirstComboStep&quot;,&quot;/P/ComboStepMaximality/InputEventDeducer/ComboTakeOne&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne -->
+<g id="edge6" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne</title>
+<path fill="none" stroke="#000000" d="M5593.8206,-697.3043C5344.2217,-693.9535 4301,-678.9638 4301,-662.5 4301,-662.5 4301,-662.5 4301,-489.5 4301,-462.4906 3914.2013,-455.9844 3757.1263,-454.4558"/>
+<polygon fill="#000000" stroke="#000000" points="3757.1511,-450.956 3747.1188,-454.3621 3757.0856,-457.9557 3757.1511,-450.956"/>
+<text text-anchor="start" x="4301" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">¬internal0 [INSTATE([&quot;/P/InternalEventLifeline/InternalEventLifeline/NextComboStep&quot;,&quot;/P/ComboStepMaximality/InternalEventDeducer/ComboTakeOne&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne -->
+<g id="edge9" class="edge">
+<title>_P_ComboStepMaximality_ComboStepMaximality_NoComboSteps&#45;&gt;_P_ComboStepMaximality_ComboStepMaximality_ComboTakeOne</title>
+<path fill="none" stroke="#000000" d="M5593.726,-697.6459C5219.0664,-695.113 2995,-679.367 2995,-662.5 2995,-662.5 2995,-662.5 2995,-489.5 2995,-473.7779 3453.4238,-460.2081 3626.7143,-455.6402"/>
+<polygon fill="#000000" stroke="#000000" points="3626.8201,-459.1387 3636.725,-455.378 3626.6367,-452.1411 3626.8201,-459.1387"/>
+<text text-anchor="start" x="2995" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 1 and INSTATE([&quot;/P/MemoryProtocol/MemoryProtocol/ComboStep&quot;,&quot;/P/ComboStepMaximality/MemoryProtocolDeducer/ComboTakeOne&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer -->
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_initial -->
+<g id="node11" class="node">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2879" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_Initial -->
+<g id="node15" class="node">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2907,-716 2851,-716 2851,-680 2907,-680 2907,-716"/>
+<text text-anchor="start" x="2865.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2863.3333,-681C2863.3333,-681 2894.6667,-681 2894.6667,-681 2900.3333,-681 2906,-686.6667 2906,-692.3333 2906,-692.3333 2906,-703.6667 2906,-703.6667 2906,-709.3333 2900.3333,-715 2894.6667,-715 2894.6667,-715 2863.3333,-715 2863.3333,-715 2857.6667,-715 2852,-709.3333 2852,-703.6667 2852,-703.6667 2852,-692.3333 2852,-692.3333 2852,-686.6667 2857.6667,-681 2863.3333,-681"/>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_initial&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_Initial -->
+<g id="edge12" class="edge">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_initial&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_Initial</title>
+<path fill="none" stroke="#000000" d="M2879,-941.3288C2879,-936.6736 2879,-929.9097 2879,-924 2879,-924 2879,-924 2879,-733.5 2879,-731.1079 2879,-728.6252 2879,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2882.5001,-726.0597 2879,-716.0598 2875.5001,-726.0598 2882.5001,-726.0597"/>
+<text text-anchor="middle" x="2880.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeMany -->
+<g id="node12" class="node">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeMany</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2937,-68 2821,-68 2821,-32 2937,-32 2937,-68"/>
+<text text-anchor="start" x="2831.6606" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeMany</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2833.3333,-33C2833.3333,-33 2924.6667,-33 2924.6667,-33 2930.3333,-33 2936,-38.6667 2936,-44.3333 2936,-44.3333 2936,-55.6667 2936,-55.6667 2936,-61.3333 2930.3333,-67 2924.6667,-67 2924.6667,-67 2833.3333,-67 2833.3333,-67 2827.6667,-67 2822,-61.3333 2822,-55.6667 2822,-55.6667 2822,-44.3333 2822,-44.3333 2822,-38.6667 2827.6667,-33 2833.3333,-33"/>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_ComboSyntactic -->
+<g id="node13" class="node">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_ComboSyntactic</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2940,-274 2818,-274 2818,-238 2940,-238 2940,-274"/>
+<text text-anchor="start" x="2828.657" y="-252.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboSyntactic ✓</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2830.3333,-239C2830.3333,-239 2927.6667,-239 2927.6667,-239 2933.3333,-239 2939,-244.6667 2939,-250.3333 2939,-250.3333 2939,-261.6667 2939,-261.6667 2939,-267.3333 2933.3333,-273 2927.6667,-273 2927.6667,-273 2830.3333,-273 2830.3333,-273 2824.6667,-273 2819,-267.3333 2819,-261.6667 2819,-261.6667 2819,-250.3333 2819,-250.3333 2819,-244.6667 2824.6667,-239 2830.3333,-239"/>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_ComboSyntactic&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeMany -->
+<g id="edge13" class="edge">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_ComboSyntactic&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeMany</title>
+<path fill="none" stroke="#000000" d="M2879,-237.8863C2879,-228.0162 2879,-215.5868 2879,-204.5 2879,-204.5 2879,-204.5 2879,-85.5 2879,-83.1079 2879,-80.6252 2879,-78.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2882.5001,-78.0597 2879,-68.0598 2875.5001,-78.0598 2882.5001,-78.0597"/>
+<text text-anchor="start" x="2879" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 0] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeOne -->
+<g id="node14" class="node">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeOne</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2934,-472 2824,-472 2824,-436 2934,-436 2934,-472"/>
+<text text-anchor="start" x="2834.9906" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeOne</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2836.3333,-437C2836.3333,-437 2921.6667,-437 2921.6667,-437 2927.3333,-437 2933,-442.6667 2933,-448.3333 2933,-448.3333 2933,-459.6667 2933,-459.6667 2933,-465.3333 2927.3333,-471 2921.6667,-471 2921.6667,-471 2836.3333,-471 2836.3333,-471 2830.6667,-471 2825,-465.3333 2825,-459.6667 2825,-459.6667 2825,-448.3333 2825,-448.3333 2825,-442.6667 2830.6667,-437 2836.3333,-437"/>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeOne&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_ComboSyntactic -->
+<g id="edge14" class="edge">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeOne&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_ComboSyntactic</title>
+<path fill="none" stroke="#000000" d="M2879,-435.7983C2879,-428.007 2879,-418.8073 2879,-410.5 2879,-410.5 2879,-410.5 2879,-291.5 2879,-289.1079 2879,-286.6252 2879,-284.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2882.5001,-284.0597 2879,-274.0598 2875.5001,-284.0598 2882.5001,-284.0597"/>
+<text text-anchor="start" x="2879" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 0] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_MemoryProtocolDeducer_Initial&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeOne -->
+<g id="edge15" class="edge">
+<title>_P_ComboStepMaximality_MemoryProtocolDeducer_Initial&#45;&gt;_P_ComboStepMaximality_MemoryProtocolDeducer_ComboTakeOne</title>
+<path fill="none" stroke="#000000" d="M2879,-679.9402C2879,-674.3497 2879,-668.1701 2879,-662.5 2879,-662.5 2879,-662.5 2879,-489.5 2879,-487.1079 2879,-484.6252 2879,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2882.5001,-482.0597 2879,-472.0598 2875.5001,-482.0598 2882.5001,-482.0597"/>
+<text text-anchor="start" x="2879" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 0] &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer -->
+<!-- _P_ComboStepMaximality_InternalEventDeducer_initial -->
+<g id="node17" class="node">
+<title>_P_ComboStepMaximality_InternalEventDeducer_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2723" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_Initial -->
+<g id="node21" class="node">
+<title>_P_ComboStepMaximality_InternalEventDeducer_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2751,-716 2695,-716 2695,-680 2751,-680 2751,-716"/>
+<text text-anchor="start" x="2709.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2707.3333,-681C2707.3333,-681 2738.6667,-681 2738.6667,-681 2744.3333,-681 2750,-686.6667 2750,-692.3333 2750,-692.3333 2750,-703.6667 2750,-703.6667 2750,-709.3333 2744.3333,-715 2738.6667,-715 2738.6667,-715 2707.3333,-715 2707.3333,-715 2701.6667,-715 2696,-709.3333 2696,-703.6667 2696,-703.6667 2696,-692.3333 2696,-692.3333 2696,-686.6667 2701.6667,-681 2707.3333,-681"/>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_initial&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_Initial -->
+<g id="edge16" class="edge">
+<title>_P_ComboStepMaximality_InternalEventDeducer_initial&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_Initial</title>
+<path fill="none" stroke="#000000" d="M2723,-941.3288C2723,-936.6736 2723,-929.9097 2723,-924 2723,-924 2723,-924 2723,-733.5 2723,-731.1079 2723,-728.6252 2723,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2726.5001,-726.0597 2723,-716.0598 2719.5001,-726.0598 2726.5001,-726.0597"/>
+<text text-anchor="middle" x="2724.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_ComboTakeMany -->
+<g id="node18" class="node">
+<title>_P_ComboStepMaximality_InternalEventDeducer_ComboTakeMany</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2781,-68 2665,-68 2665,-32 2781,-32 2781,-68"/>
+<text text-anchor="start" x="2675.6606" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeMany</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2677.3333,-33C2677.3333,-33 2768.6667,-33 2768.6667,-33 2774.3333,-33 2780,-38.6667 2780,-44.3333 2780,-44.3333 2780,-55.6667 2780,-55.6667 2780,-61.3333 2774.3333,-67 2768.6667,-67 2768.6667,-67 2677.3333,-67 2677.3333,-67 2671.6667,-67 2666,-61.3333 2666,-55.6667 2666,-55.6667 2666,-44.3333 2666,-44.3333 2666,-38.6667 2671.6667,-33 2677.3333,-33"/>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_ComboSyntactic -->
+<g id="node19" class="node">
+<title>_P_ComboStepMaximality_InternalEventDeducer_ComboSyntactic</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2784,-274 2662,-274 2662,-238 2784,-238 2784,-274"/>
+<text text-anchor="start" x="2672.657" y="-252.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboSyntactic ✓</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2674.3333,-239C2674.3333,-239 2771.6667,-239 2771.6667,-239 2777.3333,-239 2783,-244.6667 2783,-250.3333 2783,-250.3333 2783,-261.6667 2783,-261.6667 2783,-267.3333 2777.3333,-273 2771.6667,-273 2771.6667,-273 2674.3333,-273 2674.3333,-273 2668.6667,-273 2663,-267.3333 2663,-261.6667 2663,-261.6667 2663,-250.3333 2663,-250.3333 2663,-244.6667 2668.6667,-239 2674.3333,-239"/>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_ComboSyntactic&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_ComboTakeMany -->
+<g id="edge17" class="edge">
+<title>_P_ComboStepMaximality_InternalEventDeducer_ComboSyntactic&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_ComboTakeMany</title>
+<path fill="none" stroke="#000000" d="M2723,-237.8863C2723,-228.0162 2723,-215.5868 2723,-204.5 2723,-204.5 2723,-204.5 2723,-85.5 2723,-83.1079 2723,-80.6252 2723,-78.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2726.5001,-78.0597 2723,-68.0598 2719.5001,-78.0598 2726.5001,-78.0597"/>
+<text text-anchor="start" x="2723" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">internal0 &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_ComboTakeOne -->
+<g id="node20" class="node">
+<title>_P_ComboStepMaximality_InternalEventDeducer_ComboTakeOne</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2778,-472 2668,-472 2668,-436 2778,-436 2778,-472"/>
+<text text-anchor="start" x="2678.9906" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeOne</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2680.3333,-437C2680.3333,-437 2765.6667,-437 2765.6667,-437 2771.3333,-437 2777,-442.6667 2777,-448.3333 2777,-448.3333 2777,-459.6667 2777,-459.6667 2777,-465.3333 2771.3333,-471 2765.6667,-471 2765.6667,-471 2680.3333,-471 2680.3333,-471 2674.6667,-471 2669,-465.3333 2669,-459.6667 2669,-459.6667 2669,-448.3333 2669,-448.3333 2669,-442.6667 2674.6667,-437 2680.3333,-437"/>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_ComboTakeOne&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_ComboSyntactic -->
+<g id="edge18" class="edge">
+<title>_P_ComboStepMaximality_InternalEventDeducer_ComboTakeOne&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_ComboSyntactic</title>
+<path fill="none" stroke="#000000" d="M2723,-435.7983C2723,-428.007 2723,-418.8073 2723,-410.5 2723,-410.5 2723,-410.5 2723,-291.5 2723,-289.1079 2723,-286.6252 2723,-284.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2726.5001,-284.0597 2723,-274.0598 2719.5001,-284.0598 2726.5001,-284.0597"/>
+<text text-anchor="start" x="2723" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">internal0 &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_InternalEventDeducer_Initial&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_ComboTakeOne -->
+<g id="edge19" class="edge">
+<title>_P_ComboStepMaximality_InternalEventDeducer_Initial&#45;&gt;_P_ComboStepMaximality_InternalEventDeducer_ComboTakeOne</title>
+<path fill="none" stroke="#000000" d="M2723,-679.9402C2723,-674.3497 2723,-668.1701 2723,-662.5 2723,-662.5 2723,-662.5 2723,-489.5 2723,-487.1079 2723,-484.6252 2723,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2726.5001,-482.0597 2723,-472.0598 2719.5001,-482.0598 2726.5001,-482.0597"/>
+<text text-anchor="start" x="2723" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">internal0 &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer -->
+<!-- _P_ComboStepMaximality_InputEventDeducer_initial -->
+<g id="node23" class="node">
+<title>_P_ComboStepMaximality_InputEventDeducer_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2576" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_Initial -->
+<g id="node27" class="node">
+<title>_P_ComboStepMaximality_InputEventDeducer_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2604,-716 2548,-716 2548,-680 2604,-680 2604,-716"/>
+<text text-anchor="start" x="2562.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2560.3333,-681C2560.3333,-681 2591.6667,-681 2591.6667,-681 2597.3333,-681 2603,-686.6667 2603,-692.3333 2603,-692.3333 2603,-703.6667 2603,-703.6667 2603,-709.3333 2597.3333,-715 2591.6667,-715 2591.6667,-715 2560.3333,-715 2560.3333,-715 2554.6667,-715 2549,-709.3333 2549,-703.6667 2549,-703.6667 2549,-692.3333 2549,-692.3333 2549,-686.6667 2554.6667,-681 2560.3333,-681"/>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_initial&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_Initial -->
+<g id="edge20" class="edge">
+<title>_P_ComboStepMaximality_InputEventDeducer_initial&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_Initial</title>
+<path fill="none" stroke="#000000" d="M2576,-941.3288C2576,-936.6736 2576,-929.9097 2576,-924 2576,-924 2576,-924 2576,-733.5 2576,-731.1079 2576,-728.6252 2576,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2579.5001,-726.0597 2576,-716.0598 2572.5001,-726.0598 2579.5001,-726.0597"/>
+<text text-anchor="middle" x="2577.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_ComboTakeMany -->
+<g id="node24" class="node">
+<title>_P_ComboStepMaximality_InputEventDeducer_ComboTakeMany</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2634,-68 2518,-68 2518,-32 2634,-32 2634,-68"/>
+<text text-anchor="start" x="2528.6606" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeMany</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2530.3333,-33C2530.3333,-33 2621.6667,-33 2621.6667,-33 2627.3333,-33 2633,-38.6667 2633,-44.3333 2633,-44.3333 2633,-55.6667 2633,-55.6667 2633,-61.3333 2627.3333,-67 2621.6667,-67 2621.6667,-67 2530.3333,-67 2530.3333,-67 2524.6667,-67 2519,-61.3333 2519,-55.6667 2519,-55.6667 2519,-44.3333 2519,-44.3333 2519,-38.6667 2524.6667,-33 2530.3333,-33"/>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_ComboSyntactic -->
+<g id="node25" class="node">
+<title>_P_ComboStepMaximality_InputEventDeducer_ComboSyntactic</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2637,-274 2515,-274 2515,-238 2637,-238 2637,-274"/>
+<text text-anchor="start" x="2525.657" y="-252.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboSyntactic ✓</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2527.3333,-239C2527.3333,-239 2624.6667,-239 2624.6667,-239 2630.3333,-239 2636,-244.6667 2636,-250.3333 2636,-250.3333 2636,-261.6667 2636,-261.6667 2636,-267.3333 2630.3333,-273 2624.6667,-273 2624.6667,-273 2527.3333,-273 2527.3333,-273 2521.6667,-273 2516,-267.3333 2516,-261.6667 2516,-261.6667 2516,-250.3333 2516,-250.3333 2516,-244.6667 2521.6667,-239 2527.3333,-239"/>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_ComboSyntactic&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_ComboTakeMany -->
+<g id="edge21" class="edge">
+<title>_P_ComboStepMaximality_InputEventDeducer_ComboSyntactic&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_ComboTakeMany</title>
+<path fill="none" stroke="#000000" d="M2576,-237.8863C2576,-228.0162 2576,-215.5868 2576,-204.5 2576,-204.5 2576,-204.5 2576,-85.5 2576,-83.1079 2576,-80.6252 2576,-78.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2579.5001,-78.0597 2576,-68.0598 2572.5001,-78.0598 2579.5001,-78.0597"/>
+<text text-anchor="start" x="2576" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input0 &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_ComboTakeOne -->
+<g id="node26" class="node">
+<title>_P_ComboStepMaximality_InputEventDeducer_ComboTakeOne</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2631,-472 2521,-472 2521,-436 2631,-436 2631,-472"/>
+<text text-anchor="start" x="2531.9906" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboTakeOne</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2533.3333,-437C2533.3333,-437 2618.6667,-437 2618.6667,-437 2624.3333,-437 2630,-442.6667 2630,-448.3333 2630,-448.3333 2630,-459.6667 2630,-459.6667 2630,-465.3333 2624.3333,-471 2618.6667,-471 2618.6667,-471 2533.3333,-471 2533.3333,-471 2527.6667,-471 2522,-465.3333 2522,-459.6667 2522,-459.6667 2522,-448.3333 2522,-448.3333 2522,-442.6667 2527.6667,-437 2533.3333,-437"/>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_ComboTakeOne&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_ComboSyntactic -->
+<g id="edge22" class="edge">
+<title>_P_ComboStepMaximality_InputEventDeducer_ComboTakeOne&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_ComboSyntactic</title>
+<path fill="none" stroke="#000000" d="M2576,-435.7983C2576,-428.007 2576,-418.8073 2576,-410.5 2576,-410.5 2576,-410.5 2576,-291.5 2576,-289.1079 2576,-286.6252 2576,-284.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2579.5001,-284.0597 2576,-274.0598 2572.5001,-284.0598 2579.5001,-284.0597"/>
+<text text-anchor="start" x="2576" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input0 &#160;&#160;</text>
+</g>
+<!-- _P_ComboStepMaximality_InputEventDeducer_Initial&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_ComboTakeOne -->
+<g id="edge23" class="edge">
+<title>_P_ComboStepMaximality_InputEventDeducer_Initial&#45;&gt;_P_ComboStepMaximality_InputEventDeducer_ComboTakeOne</title>
+<path fill="none" stroke="#000000" d="M2576,-679.9402C2576,-674.3497 2576,-668.1701 2576,-662.5 2576,-662.5 2576,-662.5 2576,-489.5 2576,-487.1079 2576,-484.6252 2576,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2579.5001,-482.0597 2576,-472.0598 2572.5001,-482.0598 2579.5001,-482.0597"/>
+<text text-anchor="start" x="2576" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input0 &#160;&#160;</text>
+</g>
+<!-- _P_Priority -->
+<!-- _P_Priority_initial -->
+<g id="node29" class="node">
+<title>_P_Priority_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2363" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_Priority_Composite -->
+<!-- _P_Priority_initial&#45;&gt;_P_Priority_Composite -->
+<g id="edge24" class="edge">
+<title>_P_Priority_initial&#45;&gt;_P_Priority_Composite</title>
+<path fill="none" stroke="#000000" d="M2363,-941.3288C2363,-936.6736 2363,-929.9097 2363,-924 2363,-924 2363,-924 2363,-877 2363,-874.6116 2363,-872.1707 2363,-869.7049"/>
+<polygon fill="#000000" stroke="#000000" points="2366.5001,-869.4997 2363,-859.4997 2359.5001,-869.4997 2366.5001,-869.4997"/>
+<text text-anchor="middle" x="2364.3895" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_Priority_SourceChild -->
+<g id="node30" class="node">
+<title>_P_Priority_SourceChild</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2378.5,-472 2291.5,-472 2291.5,-436 2378.5,-436 2378.5,-472"/>
+<text text-anchor="start" x="2302.83" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">SourceChild</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2303.8333,-437C2303.8333,-437 2366.1667,-437 2366.1667,-437 2371.8333,-437 2377.5,-442.6667 2377.5,-448.3333 2377.5,-448.3333 2377.5,-459.6667 2377.5,-459.6667 2377.5,-465.3333 2371.8333,-471 2366.1667,-471 2366.1667,-471 2303.8333,-471 2303.8333,-471 2298.1667,-471 2292.5,-465.3333 2292.5,-459.6667 2292.5,-459.6667 2292.5,-448.3333 2292.5,-448.3333 2292.5,-442.6667 2298.1667,-437 2303.8333,-437"/>
+</g>
+<!-- _P_Priority_SourceParent -->
+<g id="node31" class="node">
+<title>_P_Priority_SourceParent</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2474.5,-716 2379.5,-716 2379.5,-680 2474.5,-680 2474.5,-716"/>
+<text text-anchor="start" x="2390.8226" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">SourceParent</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2391.8333,-681C2391.8333,-681 2462.1667,-681 2462.1667,-681 2467.8333,-681 2473.5,-686.6667 2473.5,-692.3333 2473.5,-692.3333 2473.5,-703.6667 2473.5,-703.6667 2473.5,-709.3333 2467.8333,-715 2462.1667,-715 2462.1667,-715 2391.8333,-715 2391.8333,-715 2386.1667,-715 2380.5,-709.3333 2380.5,-703.6667 2380.5,-703.6667 2380.5,-692.3333 2380.5,-692.3333 2380.5,-686.6667 2386.1667,-681 2391.8333,-681"/>
+</g>
+<!-- _P_Priority_Composite&#45;&gt;_P_Priority_SourceParent -->
+<g id="edge27" class="edge">
+<title>_P_Priority_Composite&#45;&gt;_P_Priority_SourceParent</title>
+<path fill="none" stroke="#000000" d="M2370.9978,-813.0921C2382.6707,-808.2721 2403,-797.4453 2403,-780.5 2403,-780.5 2403,-780.5 2403,-733.5 2403,-730.6683 2403.5305,-727.8939 2404.4339,-725.2224"/>
+<polygon fill="#000000" stroke="#000000" points="2407.6681,-726.5824 2409.0562,-716.0789 2401.421,-723.4243 2407.6681,-726.5824"/>
+<text text-anchor="middle" x="2404.3895" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_Priority_Composite_initial -->
+<g id="node33" class="node">
+<title>_P_Priority_Composite_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2335" cy="-816" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_Priority_Composite_Basic -->
+<g id="node34" class="node">
+<title>_P_Priority_Composite_Basic</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2363,-598 2307,-598 2307,-562 2363,-562 2363,-598"/>
+<text text-anchor="start" x="2320.3318" y="-576.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Basic</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2319.3333,-563C2319.3333,-563 2350.6667,-563 2350.6667,-563 2356.3333,-563 2362,-568.6667 2362,-574.3333 2362,-574.3333 2362,-585.6667 2362,-585.6667 2362,-591.3333 2356.3333,-597 2350.6667,-597 2350.6667,-597 2319.3333,-597 2319.3333,-597 2313.6667,-597 2308,-591.3333 2308,-585.6667 2308,-585.6667 2308,-574.3333 2308,-574.3333 2308,-568.6667 2313.6667,-563 2319.3333,-563"/>
+</g>
+<!-- _P_Priority_Composite_initial&#45;&gt;_P_Priority_Composite_Basic -->
+<g id="edge25" class="edge">
+<title>_P_Priority_Composite_initial&#45;&gt;_P_Priority_Composite_Basic</title>
+<path fill="none" stroke="#000000" d="M2335,-810.4659C2335,-803.482 2335,-791.1007 2335,-780.5 2335,-780.5 2335,-780.5 2335,-615.5 2335,-613.1079 2335,-610.6252 2335,-608.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2338.5001,-608.0597 2335,-598.0598 2331.5001,-608.0598 2338.5001,-608.0597"/>
+<text text-anchor="middle" x="2336.3895" y="-695" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_Priority_Composite_Basic&#45;&gt;_P_Priority_SourceChild -->
+<g id="edge26" class="edge">
+<title>_P_Priority_Composite_Basic&#45;&gt;_P_Priority_SourceChild</title>
+<path fill="none" stroke="#000000" d="M2335,-561.7983C2335,-554.007 2335,-544.8073 2335,-536.5 2335,-536.5 2335,-536.5 2335,-489.5 2335,-487.1079 2335,-484.6252 2335,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2338.5001,-482.0597 2335,-472.0598 2331.5001,-482.0598 2338.5001,-482.0597"/>
+<text text-anchor="middle" x="2336.3895" y="-510" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_MemoryProtocol -->
+<!-- _P_MemoryProtocol_MemoryProtocol -->
+<!-- _P_MemoryProtocol_MemoryProtocol_initial -->
+<g id="node37" class="node">
+<title>_P_MemoryProtocol_MemoryProtocol_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2155" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_Initial -->
+<g id="node41" class="node">
+<title>_P_MemoryProtocol_MemoryProtocol_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2183,-716 2127,-716 2127,-680 2183,-680 2183,-716"/>
+<text text-anchor="start" x="2141.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2139.3333,-681C2139.3333,-681 2170.6667,-681 2170.6667,-681 2176.3333,-681 2182,-686.6667 2182,-692.3333 2182,-692.3333 2182,-703.6667 2182,-703.6667 2182,-709.3333 2176.3333,-715 2170.6667,-715 2170.6667,-715 2139.3333,-715 2139.3333,-715 2133.6667,-715 2128,-709.3333 2128,-703.6667 2128,-703.6667 2128,-692.3333 2128,-692.3333 2128,-686.6667 2133.6667,-681 2139.3333,-681"/>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_initial&#45;&gt;_P_MemoryProtocol_MemoryProtocol_Initial -->
+<g id="edge28" class="edge">
+<title>_P_MemoryProtocol_MemoryProtocol_initial&#45;&gt;_P_MemoryProtocol_MemoryProtocol_Initial</title>
+<path fill="none" stroke="#000000" d="M2155,-941.3288C2155,-936.6736 2155,-929.9097 2155,-924 2155,-924 2155,-924 2155,-733.5 2155,-731.1079 2155,-728.6252 2155,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2158.5001,-726.0597 2155,-716.0598 2151.5001,-726.0598 2158.5001,-726.0597"/>
+<text text-anchor="middle" x="2156.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_SmallStep -->
+<g id="node38" class="node">
+<title>_P_MemoryProtocol_MemoryProtocol_SmallStep</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2172,-472 2096,-472 2096,-436 2172,-436 2172,-472"/>
+<text text-anchor="start" x="2106.6634" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">SmallStep</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2108.3333,-437C2108.3333,-437 2159.6667,-437 2159.6667,-437 2165.3333,-437 2171,-442.6667 2171,-448.3333 2171,-448.3333 2171,-459.6667 2171,-459.6667 2171,-465.3333 2165.3333,-471 2159.6667,-471 2159.6667,-471 2108.3333,-471 2108.3333,-471 2102.6667,-471 2097,-465.3333 2097,-459.6667 2097,-459.6667 2097,-448.3333 2097,-448.3333 2097,-442.6667 2102.6667,-437 2108.3333,-437"/>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_ComboStep -->
+<g id="node39" class="node">
+<title>_P_MemoryProtocol_MemoryProtocol_ComboStep</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2257.5,-274 2172.5,-274 2172.5,-238 2257.5,-238 2257.5,-274"/>
+<text text-anchor="start" x="2183.8254" y="-252.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ComboStep</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2184.8333,-239C2184.8333,-239 2245.1667,-239 2245.1667,-239 2250.8333,-239 2256.5,-244.6667 2256.5,-250.3333 2256.5,-250.3333 2256.5,-261.6667 2256.5,-261.6667 2256.5,-267.3333 2250.8333,-273 2245.1667,-273 2245.1667,-273 2184.8333,-273 2184.8333,-273 2179.1667,-273 2173.5,-267.3333 2173.5,-261.6667 2173.5,-261.6667 2173.5,-250.3333 2173.5,-250.3333 2173.5,-244.6667 2179.1667,-239 2184.8333,-239"/>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_BigStep -->
+<g id="node40" class="node">
+<title>_P_MemoryProtocol_MemoryProtocol_BigStep</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2258,-472 2194,-472 2194,-436 2258,-436 2258,-472"/>
+<text text-anchor="start" x="2204.9922" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">BigStep</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2206.3333,-437C2206.3333,-437 2245.6667,-437 2245.6667,-437 2251.3333,-437 2257,-442.6667 2257,-448.3333 2257,-448.3333 2257,-459.6667 2257,-459.6667 2257,-465.3333 2251.3333,-471 2245.6667,-471 2245.6667,-471 2206.3333,-471 2206.3333,-471 2200.6667,-471 2195,-465.3333 2195,-459.6667 2195,-459.6667 2195,-448.3333 2195,-448.3333 2195,-442.6667 2200.6667,-437 2206.3333,-437"/>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_BigStep&#45;&gt;_P_MemoryProtocol_MemoryProtocol_ComboStep -->
+<g id="edge29" class="edge">
+<title>_P_MemoryProtocol_MemoryProtocol_BigStep&#45;&gt;_P_MemoryProtocol_MemoryProtocol_ComboStep</title>
+<path fill="none" stroke="#000000" d="M2219.2214,-435.6294C2216.9578,-427.9696 2215,-418.913 2215,-410.5 2215,-410.5 2215,-410.5 2215,-291.5 2215,-289.1079 2215,-286.6252 2215,-284.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2218.5001,-284.0597 2215,-274.0598 2211.5001,-284.0598 2218.5001,-284.0597"/>
+<text text-anchor="start" x="2215" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 1] &#160;&#160;</text>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_Initial&#45;&gt;_P_MemoryProtocol_MemoryProtocol_SmallStep -->
+<g id="edge30" class="edge">
+<title>_P_MemoryProtocol_MemoryProtocol_Initial&#45;&gt;_P_MemoryProtocol_MemoryProtocol_SmallStep</title>
+<path fill="none" stroke="#000000" d="M2136.0518,-679.6603C2132.565,-674.5449 2130,-668.6812 2130,-662.5 2130,-662.5 2130,-662.5 2130,-489.5 2130,-487.0928 2130.0919,-484.5995 2130.248,-482.1015"/>
+<polygon fill="#000000" stroke="#000000" points="2133.7449,-482.2949 2131.1785,-472.0156 2126.7745,-481.6517 2133.7449,-482.2949"/>
+<text text-anchor="start" x="2130" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 1] &#160;&#160;</text>
+</g>
+<!-- _P_MemoryProtocol_MemoryProtocol_Initial&#45;&gt;_P_MemoryProtocol_MemoryProtocol_BigStep -->
+<g id="edge31" class="edge">
+<title>_P_MemoryProtocol_MemoryProtocol_Initial&#45;&gt;_P_MemoryProtocol_MemoryProtocol_BigStep</title>
+<path fill="none" stroke="#000000" d="M2183.0005,-692.7911C2199.0364,-688.0093 2216,-679.0417 2216,-662.5 2216,-662.5 2216,-662.5 2216,-489.5 2216,-487.0688 2216.22,-484.5779 2216.5947,-482.0985"/>
+<polygon fill="#000000" stroke="#000000" points="2220.0518,-482.678 2218.8389,-472.1529 2213.2235,-481.1372 2220.0518,-482.678"/>
+<text text-anchor="start" x="2216" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[x == 0] &#160;&#160;</text>
+</g>
+<!-- _P_MemoryProtocol_RegionAssign -->
+<!-- _P_MemoryProtocol_RegionAssign_initial -->
+<g id="node43" class="node">
+<title>_P_MemoryProtocol_RegionAssign_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2030" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_MemoryProtocol_RegionAssign_Initial -->
+<g id="node45" class="node">
+<title>_P_MemoryProtocol_RegionAssign_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2058,-716 2002,-716 2002,-680 2058,-680 2058,-716"/>
+<text text-anchor="start" x="2016.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2014.3333,-681C2014.3333,-681 2045.6667,-681 2045.6667,-681 2051.3333,-681 2057,-686.6667 2057,-692.3333 2057,-692.3333 2057,-703.6667 2057,-703.6667 2057,-709.3333 2051.3333,-715 2045.6667,-715 2045.6667,-715 2014.3333,-715 2014.3333,-715 2008.6667,-715 2003,-709.3333 2003,-703.6667 2003,-703.6667 2003,-692.3333 2003,-692.3333 2003,-686.6667 2008.6667,-681 2014.3333,-681"/>
+</g>
+<!-- _P_MemoryProtocol_RegionAssign_initial&#45;&gt;_P_MemoryProtocol_RegionAssign_Initial -->
+<g id="edge32" class="edge">
+<title>_P_MemoryProtocol_RegionAssign_initial&#45;&gt;_P_MemoryProtocol_RegionAssign_Initial</title>
+<path fill="none" stroke="#000000" d="M2030,-941.3288C2030,-936.6736 2030,-929.9097 2030,-924 2030,-924 2030,-924 2030,-733.5 2030,-731.1079 2030,-728.6252 2030,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2033.5001,-726.0597 2030,-716.0598 2026.5001,-726.0598 2033.5001,-726.0597"/>
+<text text-anchor="middle" x="2031.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_MemoryProtocol_RegionAssign_Assigned -->
+<g id="node44" class="node">
+<title>_P_MemoryProtocol_RegionAssign_Assigned</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="2065.5,-472 1994.5,-472 1994.5,-436 2065.5,-436 2065.5,-472"/>
+<text text-anchor="start" x="2005.8256" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Assigned</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M2006.8333,-437C2006.8333,-437 2053.1667,-437 2053.1667,-437 2058.8333,-437 2064.5,-442.6667 2064.5,-448.3333 2064.5,-448.3333 2064.5,-459.6667 2064.5,-459.6667 2064.5,-465.3333 2058.8333,-471 2053.1667,-471 2053.1667,-471 2006.8333,-471 2006.8333,-471 2001.1667,-471 1995.5,-465.3333 1995.5,-459.6667 1995.5,-459.6667 1995.5,-448.3333 1995.5,-448.3333 1995.5,-442.6667 2001.1667,-437 2006.8333,-437"/>
+</g>
+<!-- _P_MemoryProtocol_RegionAssign_Initial&#45;&gt;_P_MemoryProtocol_RegionAssign_Assigned -->
+<g id="edge33" class="edge">
+<title>_P_MemoryProtocol_RegionAssign_Initial&#45;&gt;_P_MemoryProtocol_RegionAssign_Assigned</title>
+<path fill="none" stroke="#000000" d="M2030,-679.9402C2030,-674.3497 2030,-668.1701 2030,-662.5 2030,-662.5 2030,-662.5 2030,-489.5 2030,-487.1079 2030,-484.6252 2030,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="2033.5001,-482.0597 2030,-472.0598 2026.5001,-482.0598 2033.5001,-482.0597"/>
+<text text-anchor="start" x="2030" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/x = 1 &#160;&#160;</text>
+</g>
+<!-- _P_InternalEventLifeline -->
+<!-- _P_InternalEventLifeline_InternalEventLifeline -->
+<!-- _P_InternalEventLifeline_InternalEventLifeline_initial -->
+<g id="node48" class="node">
+<title>_P_InternalEventLifeline_InternalEventLifeline_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="1363" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_Initial -->
+<g id="node53" class="node">
+<title>_P_InternalEventLifeline_InternalEventLifeline_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="1391,-716 1335,-716 1335,-680 1391,-680 1391,-716"/>
+<text text-anchor="start" x="1349.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M1347.3333,-681C1347.3333,-681 1378.6667,-681 1378.6667,-681 1384.3333,-681 1390,-686.6667 1390,-692.3333 1390,-692.3333 1390,-703.6667 1390,-703.6667 1390,-709.3333 1384.3333,-715 1378.6667,-715 1378.6667,-715 1347.3333,-715 1347.3333,-715 1341.6667,-715 1336,-709.3333 1336,-703.6667 1336,-703.6667 1336,-692.3333 1336,-692.3333 1336,-686.6667 1341.6667,-681 1347.3333,-681"/>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_Initial -->
+<g id="edge34" class="edge">
+<title>_P_InternalEventLifeline_InternalEventLifeline_initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_Initial</title>
+<path fill="none" stroke="#000000" d="M1363,-941.3288C1363,-936.6736 1363,-929.9097 1363,-924 1363,-924 1363,-924 1363,-733.5 1363,-731.1079 1363,-728.6252 1363,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="1366.5001,-726.0597 1363,-716.0598 1359.5001,-726.0598 1366.5001,-726.0597"/>
+<text text-anchor="middle" x="1364.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_Queue -->
+<g id="node49" class="node">
+<title>_P_InternalEventLifeline_InternalEventLifeline_Queue</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="1712,-472 1654,-472 1654,-436 1712,-436 1712,-472"/>
+<text text-anchor="start" x="1664.991" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Queue</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M1666.3333,-437C1666.3333,-437 1699.6667,-437 1699.6667,-437 1705.3333,-437 1711,-442.6667 1711,-448.3333 1711,-448.3333 1711,-459.6667 1711,-459.6667 1711,-465.3333 1705.3333,-471 1699.6667,-471 1699.6667,-471 1666.3333,-471 1666.3333,-471 1660.6667,-471 1655,-465.3333 1655,-459.6667 1655,-459.6667 1655,-448.3333 1655,-448.3333 1655,-442.6667 1660.6667,-437 1666.3333,-437"/>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_NextComboStep -->
+<g id="node50" class="node">
+<title>_P_InternalEventLifeline_InternalEventLifeline_NextComboStep</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="1465,-274 1355,-274 1355,-238 1465,-238 1465,-274"/>
+<text text-anchor="start" x="1365.9912" y="-252.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">NextComboStep</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M1367.3333,-239C1367.3333,-239 1452.6667,-239 1452.6667,-239 1458.3333,-239 1464,-244.6667 1464,-250.3333 1464,-250.3333 1464,-261.6667 1464,-261.6667 1464,-267.3333 1458.3333,-273 1452.6667,-273 1452.6667,-273 1367.3333,-273 1367.3333,-273 1361.6667,-273 1356,-267.3333 1356,-261.6667 1356,-261.6667 1356,-250.3333 1356,-250.3333 1356,-244.6667 1361.6667,-239 1367.3333,-239"/>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_Queue&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_NextComboStep -->
+<g id="edge35" class="edge">
+<title>_P_InternalEventLifeline_InternalEventLifeline_Queue&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_NextComboStep</title>
+<path fill="none" stroke="#000000" d="M1653.7842,-452.3745C1583.3577,-448.0666 1410,-434.9768 1410,-410.5 1410,-410.5 1410,-410.5 1410,-291.5 1410,-289.1079 1410,-286.6252 1410,-284.1342"/>
+<polygon fill="#000000" stroke="#000000" points="1413.5001,-284.0597 1410,-274.0598 1406.5001,-284.0598 1413.5001,-284.0597"/>
+<text text-anchor="start" x="1410" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[INSTATE([&quot;/P/InternalEventLifeline/RegionReceive1/GotEvent&quot;,&quot;/P/InternalEventLifeline/RegionReceive2/GotEvent&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_Remainder -->
+<g id="node51" class="node">
+<title>_P_InternalEventLifeline_InternalEventLifeline_Remainder</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="1403,-472 1323,-472 1323,-436 1403,-436 1403,-472"/>
+<text text-anchor="start" x="1333.6654" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Remainder</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M1335.3333,-437C1335.3333,-437 1390.6667,-437 1390.6667,-437 1396.3333,-437 1402,-442.6667 1402,-448.3333 1402,-448.3333 1402,-459.6667 1402,-459.6667 1402,-465.3333 1396.3333,-471 1390.6667,-471 1390.6667,-471 1335.3333,-471 1335.3333,-471 1329.6667,-471 1324,-465.3333 1324,-459.6667 1324,-459.6667 1324,-448.3333 1324,-448.3333 1324,-442.6667 1329.6667,-437 1335.3333,-437"/>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_NextSmallStep -->
+<g id="node52" class="node">
+<title>_P_InternalEventLifeline_InternalEventLifeline_NextSmallStep</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="775.5,-472 674.5,-472 674.5,-436 775.5,-436 775.5,-472"/>
+<text text-anchor="start" x="685.8292" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">NextSmallStep</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M686.8333,-437C686.8333,-437 763.1667,-437 763.1667,-437 768.8333,-437 774.5,-442.6667 774.5,-448.3333 774.5,-448.3333 774.5,-459.6667 774.5,-459.6667 774.5,-465.3333 768.8333,-471 763.1667,-471 763.1667,-471 686.8333,-471 686.8333,-471 681.1667,-471 675.5,-465.3333 675.5,-459.6667 675.5,-459.6667 675.5,-448.3333 675.5,-448.3333 675.5,-442.6667 681.1667,-437 686.8333,-437"/>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_Initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_Queue -->
+<g id="edge38" class="edge">
+<title>_P_InternalEventLifeline_InternalEventLifeline_Initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_Queue</title>
+<path fill="none" stroke="#000000" d="M1391.1716,-697.755C1506.8149,-696.5674 1939,-690.2713 1939,-662.5 1939,-662.5 1939,-662.5 1939,-489.5 1939,-467.9029 1794.202,-458.7117 1722.404,-455.4817"/>
+<polygon fill="#000000" stroke="#000000" points="1722.5084,-451.9831 1712.3665,-455.0477 1722.2059,-458.9765 1722.5084,-451.9831"/>
+<text text-anchor="middle" x="1940.3895" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_Initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_Remainder -->
+<g id="edge37" class="edge">
+<title>_P_InternalEventLifeline_InternalEventLifeline_Initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_Remainder</title>
+<path fill="none" stroke="#000000" d="M1363,-679.9402C1363,-674.3497 1363,-668.1701 1363,-662.5 1363,-662.5 1363,-662.5 1363,-489.5 1363,-487.1079 1363,-484.6252 1363,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="1366.5001,-482.0597 1363,-472.0598 1359.5001,-482.0598 1366.5001,-482.0597"/>
+<text text-anchor="start" x="1363" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[INSTATE([&quot;/P/InternalEventLifeline/RegionReceive1/GotEvent&quot;,&quot;/P/InternalEventLifeline/RegionReceive2/GotEvent&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_InternalEventLifeline_InternalEventLifeline_Initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_NextSmallStep -->
+<g id="edge36" class="edge">
+<title>_P_InternalEventLifeline_InternalEventLifeline_Initial&#45;&gt;_P_InternalEventLifeline_InternalEventLifeline_NextSmallStep</title>
+<path fill="none" stroke="#000000" d="M1334.7659,-697.2473C1207.8124,-693.7719 696,-678.7529 696,-662.5 696,-662.5 696,-662.5 696,-489.5 696,-486.5157 696.6223,-483.6439 697.6845,-480.9158"/>
+<polygon fill="#000000" stroke="#000000" points="700.7285,-482.6436 702.7261,-472.2387 694.6759,-479.1269 700.7285,-482.6436"/>
+<text text-anchor="start" x="696" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[INSTATE([&quot;/P/InternalEventLifeline/RegionReceive1/GotEvent&quot;]) and not INSTATE([&quot;/P/InternalEventLifeline/RegionReceive2/GotEvent&quot;])] &#160;&#160;</text>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive2 -->
+<!-- _P_InternalEventLifeline_RegionReceive2_initial -->
+<g id="node55" class="node">
+<title>_P_InternalEventLifeline_RegionReceive2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="596" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive2_Initial -->
+<g id="node57" class="node">
+<title>_P_InternalEventLifeline_RegionReceive2_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="624,-716 568,-716 568,-680 624,-680 624,-716"/>
+<text text-anchor="start" x="582.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M580.3333,-681C580.3333,-681 611.6667,-681 611.6667,-681 617.3333,-681 623,-686.6667 623,-692.3333 623,-692.3333 623,-703.6667 623,-703.6667 623,-709.3333 617.3333,-715 611.6667,-715 611.6667,-715 580.3333,-715 580.3333,-715 574.6667,-715 569,-709.3333 569,-703.6667 569,-703.6667 569,-692.3333 569,-692.3333 569,-686.6667 574.6667,-681 580.3333,-681"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive2_initial&#45;&gt;_P_InternalEventLifeline_RegionReceive2_Initial -->
+<g id="edge39" class="edge">
+<title>_P_InternalEventLifeline_RegionReceive2_initial&#45;&gt;_P_InternalEventLifeline_RegionReceive2_Initial</title>
+<path fill="none" stroke="#000000" d="M596,-941.3288C596,-936.6736 596,-929.9097 596,-924 596,-924 596,-924 596,-733.5 596,-731.1079 596,-728.6252 596,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="599.5001,-726.0597 596,-716.0598 592.5001,-726.0598 599.5001,-726.0597"/>
+<text text-anchor="middle" x="597.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive2_GotEvent -->
+<g id="node56" class="node">
+<title>_P_InternalEventLifeline_RegionReceive2_GotEvent</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="632,-472 560,-472 560,-436 632,-436 632,-472"/>
+<text text-anchor="start" x="570.9902" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">GotEvent</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M572.3333,-437C572.3333,-437 619.6667,-437 619.6667,-437 625.3333,-437 631,-442.6667 631,-448.3333 631,-448.3333 631,-459.6667 631,-459.6667 631,-465.3333 625.3333,-471 619.6667,-471 619.6667,-471 572.3333,-471 572.3333,-471 566.6667,-471 561,-465.3333 561,-459.6667 561,-459.6667 561,-448.3333 561,-448.3333 561,-442.6667 566.6667,-437 572.3333,-437"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive2_Initial&#45;&gt;_P_InternalEventLifeline_RegionReceive2_GotEvent -->
+<g id="edge40" class="edge">
+<title>_P_InternalEventLifeline_RegionReceive2_Initial&#45;&gt;_P_InternalEventLifeline_RegionReceive2_GotEvent</title>
+<path fill="none" stroke="#000000" d="M596,-679.9402C596,-674.3497 596,-668.1701 596,-662.5 596,-662.5 596,-662.5 596,-489.5 596,-487.1079 596,-484.6252 596,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="599.5001,-482.0597 596,-472.0598 592.5001,-482.0598 599.5001,-482.0597"/>
+<text text-anchor="start" x="596" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">internal0 &#160;&#160;</text>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive1 -->
+<!-- _P_InternalEventLifeline_RegionReceive1_initial -->
+<g id="node59" class="node">
+<title>_P_InternalEventLifeline_RegionReceive1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="476" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive1_Initial -->
+<g id="node61" class="node">
+<title>_P_InternalEventLifeline_RegionReceive1_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="504,-716 448,-716 448,-680 504,-680 504,-716"/>
+<text text-anchor="start" x="462.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M460.3333,-681C460.3333,-681 491.6667,-681 491.6667,-681 497.3333,-681 503,-686.6667 503,-692.3333 503,-692.3333 503,-703.6667 503,-703.6667 503,-709.3333 497.3333,-715 491.6667,-715 491.6667,-715 460.3333,-715 460.3333,-715 454.6667,-715 449,-709.3333 449,-703.6667 449,-703.6667 449,-692.3333 449,-692.3333 449,-686.6667 454.6667,-681 460.3333,-681"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive1_initial&#45;&gt;_P_InternalEventLifeline_RegionReceive1_Initial -->
+<g id="edge41" class="edge">
+<title>_P_InternalEventLifeline_RegionReceive1_initial&#45;&gt;_P_InternalEventLifeline_RegionReceive1_Initial</title>
+<path fill="none" stroke="#000000" d="M476,-941.3288C476,-936.6736 476,-929.9097 476,-924 476,-924 476,-924 476,-733.5 476,-731.1079 476,-728.6252 476,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="479.5001,-726.0597 476,-716.0598 472.5001,-726.0598 479.5001,-726.0597"/>
+<text text-anchor="middle" x="477.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive1_GotEvent -->
+<g id="node60" class="node">
+<title>_P_InternalEventLifeline_RegionReceive1_GotEvent</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="512,-472 440,-472 440,-436 512,-436 512,-472"/>
+<text text-anchor="start" x="450.9902" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">GotEvent</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M452.3333,-437C452.3333,-437 499.6667,-437 499.6667,-437 505.3333,-437 511,-442.6667 511,-448.3333 511,-448.3333 511,-459.6667 511,-459.6667 511,-465.3333 505.3333,-471 499.6667,-471 499.6667,-471 452.3333,-471 452.3333,-471 446.6667,-471 441,-465.3333 441,-459.6667 441,-459.6667 441,-448.3333 441,-448.3333 441,-442.6667 446.6667,-437 452.3333,-437"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionReceive1_Initial&#45;&gt;_P_InternalEventLifeline_RegionReceive1_GotEvent -->
+<g id="edge42" class="edge">
+<title>_P_InternalEventLifeline_RegionReceive1_Initial&#45;&gt;_P_InternalEventLifeline_RegionReceive1_GotEvent</title>
+<path fill="none" stroke="#000000" d="M476,-679.9402C476,-674.3497 476,-668.1701 476,-662.5 476,-662.5 476,-662.5 476,-489.5 476,-487.1079 476,-484.6252 476,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="479.5001,-482.0597 476,-472.0598 472.5001,-482.0598 479.5001,-482.0597"/>
+<text text-anchor="start" x="476" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">internal0 &#160;&#160;</text>
+</g>
+<!-- _P_InternalEventLifeline_RegionBroadcast -->
+<!-- _P_InternalEventLifeline_RegionBroadcast_initial -->
+<g id="node63" class="node">
+<title>_P_InternalEventLifeline_RegionBroadcast_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="348" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionBroadcast_Initial -->
+<g id="node65" class="node">
+<title>_P_InternalEventLifeline_RegionBroadcast_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="376,-716 320,-716 320,-680 376,-680 376,-716"/>
+<text text-anchor="start" x="334.0002" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M332.3333,-681C332.3333,-681 363.6667,-681 363.6667,-681 369.3333,-681 375,-686.6667 375,-692.3333 375,-692.3333 375,-703.6667 375,-703.6667 375,-709.3333 369.3333,-715 363.6667,-715 363.6667,-715 332.3333,-715 332.3333,-715 326.6667,-715 321,-709.3333 321,-703.6667 321,-703.6667 321,-692.3333 321,-692.3333 321,-686.6667 326.6667,-681 332.3333,-681"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionBroadcast_initial&#45;&gt;_P_InternalEventLifeline_RegionBroadcast_Initial -->
+<g id="edge43" class="edge">
+<title>_P_InternalEventLifeline_RegionBroadcast_initial&#45;&gt;_P_InternalEventLifeline_RegionBroadcast_Initial</title>
+<path fill="none" stroke="#000000" d="M348,-941.3288C348,-936.6736 348,-929.9097 348,-924 348,-924 348,-924 348,-733.5 348,-731.1079 348,-728.6252 348,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="351.5001,-726.0597 348,-716.0598 344.5001,-726.0598 351.5001,-726.0597"/>
+<text text-anchor="middle" x="349.3895" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_InternalEventLifeline_RegionBroadcast_Done -->
+<g id="node64" class="node">
+<title>_P_InternalEventLifeline_RegionBroadcast_Done</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="376,-472 320,-472 320,-436 376,-436 376,-472"/>
+<text text-anchor="start" x="333.6624" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Done</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M332.3333,-437C332.3333,-437 363.6667,-437 363.6667,-437 369.3333,-437 375,-442.6667 375,-448.3333 375,-448.3333 375,-459.6667 375,-459.6667 375,-465.3333 369.3333,-471 363.6667,-471 363.6667,-471 332.3333,-471 332.3333,-471 326.6667,-471 321,-465.3333 321,-459.6667 321,-459.6667 321,-448.3333 321,-448.3333 321,-442.6667 326.6667,-437 332.3333,-437"/>
+</g>
+<!-- _P_InternalEventLifeline_RegionBroadcast_Initial&#45;&gt;_P_InternalEventLifeline_RegionBroadcast_Done -->
+<g id="edge44" class="edge">
+<title>_P_InternalEventLifeline_RegionBroadcast_Initial&#45;&gt;_P_InternalEventLifeline_RegionBroadcast_Done</title>
+<path fill="none" stroke="#000000" d="M348,-679.9402C348,-674.3497 348,-668.1701 348,-662.5 348,-662.5 348,-662.5 348,-489.5 348,-487.1079 348,-484.6252 348,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="351.5001,-482.0597 348,-472.0598 344.5001,-482.0598 351.5001,-482.0597"/>
+<text text-anchor="start" x="348" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">^internal0 &#160;&#160;</text>
+</g>
+<!-- _P_InputEventLifeline -->
+<!-- _P_InputEventLifeline_initial -->
+<g id="node67" class="node">
+<title>_P_InputEventLifeline_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="216" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_InputEventLifeline_FirstSmallStep -->
+<g id="node70" class="node">
+<title>_P_InputEventLifeline_FirstSmallStep</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="265.5,-834 166.5,-834 166.5,-798 265.5,-798 265.5,-834"/>
+<text text-anchor="start" x="177.5018" y="-812.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">FirstSmallStep</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M178.8333,-799C178.8333,-799 253.1667,-799 253.1667,-799 258.8333,-799 264.5,-804.6667 264.5,-810.3333 264.5,-810.3333 264.5,-821.6667 264.5,-821.6667 264.5,-827.3333 258.8333,-833 253.1667,-833 253.1667,-833 178.8333,-833 178.8333,-833 173.1667,-833 167.5,-827.3333 167.5,-821.6667 167.5,-821.6667 167.5,-810.3333 167.5,-810.3333 167.5,-804.6667 173.1667,-799 178.8333,-799"/>
+</g>
+<!-- _P_InputEventLifeline_initial&#45;&gt;_P_InputEventLifeline_FirstSmallStep -->
+<g id="edge45" class="edge">
+<title>_P_InputEventLifeline_initial&#45;&gt;_P_InputEventLifeline_FirstSmallStep</title>
+<path fill="none" stroke="#000000" d="M216,-941.3288C216,-936.6736 216,-929.9097 216,-924 216,-924 216,-924 216,-877 216,-866.3104 216,-854.5672 216,-844.263"/>
+<polygon fill="#000000" stroke="#000000" points="219.5001,-844.1503 216,-834.1503 212.5001,-844.1504 219.5001,-844.1503"/>
+<text text-anchor="middle" x="217.3895" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_InputEventLifeline_FirstComboStep -->
+<g id="node68" class="node">
+<title>_P_InputEventLifeline_FirstComboStep</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="270,-598 162,-598 162,-562 270,-562 270,-598"/>
+<text text-anchor="start" x="172.6638" y="-576.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">FirstComboStep</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M174.3333,-563C174.3333,-563 257.6667,-563 257.6667,-563 263.3333,-563 269,-568.6667 269,-574.3333 269,-574.3333 269,-585.6667 269,-585.6667 269,-591.3333 263.3333,-597 257.6667,-597 257.6667,-597 174.3333,-597 174.3333,-597 168.6667,-597 163,-591.3333 163,-585.6667 163,-585.6667 163,-574.3333 163,-574.3333 163,-568.6667 168.6667,-563 174.3333,-563"/>
+</g>
+<!-- _P_InputEventLifeline_Whole -->
+<g id="node69" class="node">
+<title>_P_InputEventLifeline_Whole</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="244,-716 188,-716 188,-680 244,-680 244,-716"/>
+<text text-anchor="start" x="198.999" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Whole</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M200.3333,-681C200.3333,-681 231.6667,-681 231.6667,-681 237.3333,-681 243,-686.6667 243,-692.3333 243,-692.3333 243,-703.6667 243,-703.6667 243,-709.3333 237.3333,-715 231.6667,-715 231.6667,-715 200.3333,-715 200.3333,-715 194.6667,-715 189,-709.3333 189,-703.6667 189,-703.6667 189,-692.3333 189,-692.3333 189,-686.6667 194.6667,-681 200.3333,-681"/>
+</g>
+<!-- _P_InputEventLifeline_Whole&#45;&gt;_P_InputEventLifeline_FirstComboStep -->
+<g id="edge46" class="edge">
+<title>_P_InputEventLifeline_Whole&#45;&gt;_P_InputEventLifeline_FirstComboStep</title>
+<path fill="none" stroke="#000000" d="M216,-679.9402C216,-674.3497 216,-668.1701 216,-662.5 216,-662.5 216,-662.5 216,-615.5 216,-613.1079 216,-610.6252 216,-608.1342"/>
+<polygon fill="#000000" stroke="#000000" points="219.5001,-608.0597 216,-598.0598 212.5001,-608.0598 219.5001,-608.0597"/>
+<text text-anchor="start" x="216" y="-636" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">¬input0 &#160;&#160;</text>
+</g>
+<!-- _P_InputEventLifeline_FirstSmallStep&#45;&gt;_P_InputEventLifeline_Whole -->
+<g id="edge47" class="edge">
+<title>_P_InputEventLifeline_FirstSmallStep&#45;&gt;_P_InputEventLifeline_Whole</title>
+<path fill="none" stroke="#000000" d="M216,-797.9402C216,-792.3497 216,-786.1701 216,-780.5 216,-780.5 216,-780.5 216,-733.5 216,-731.1079 216,-728.6252 216,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="219.5001,-726.0597 216,-716.0598 212.5001,-726.0598 219.5001,-726.0597"/>
+<text text-anchor="start" x="216" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input0 &#160;&#160;</text>
+</g>
+<!-- _P_BigStepMaximality -->
+<!-- _P_BigStepMaximality_initial -->
+<g id="node72" class="node">
+<title>_P_BigStepMaximality_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="83" cy="-947" rx="5.5" ry="5.5"/>
+</g>
+<!-- _P_BigStepMaximality_Initial -->
+<g id="node76" class="node">
+<title>_P_BigStepMaximality_Initial</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="111,-834 55,-834 55,-798 111,-798 111,-834"/>
+<text text-anchor="start" x="69.0002" y="-812.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M67.3333,-799C67.3333,-799 98.6667,-799 98.6667,-799 104.3333,-799 110,-804.6667 110,-810.3333 110,-810.3333 110,-821.6667 110,-821.6667 110,-827.3333 104.3333,-833 98.6667,-833 98.6667,-833 67.3333,-833 67.3333,-833 61.6667,-833 56,-827.3333 56,-821.6667 56,-821.6667 56,-810.3333 56,-810.3333 56,-804.6667 61.6667,-799 67.3333,-799"/>
+</g>
+<!-- _P_BigStepMaximality_initial&#45;&gt;_P_BigStepMaximality_Initial -->
+<g id="edge48" class="edge">
+<title>_P_BigStepMaximality_initial&#45;&gt;_P_BigStepMaximality_Initial</title>
+<path fill="none" stroke="#000000" d="M83,-941.3288C83,-936.6736 83,-929.9097 83,-924 83,-924 83,-924 83,-877 83,-866.3104 83,-854.5672 83,-844.263"/>
+<polygon fill="#000000" stroke="#000000" points="86.5001,-844.1503 83,-834.1503 79.5001,-844.1504 86.5001,-844.1503"/>
+<text text-anchor="middle" x="84.3895" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_BigStepMaximality_TakeMany -->
+<g id="node73" class="node">
+<title>_P_BigStepMaximality_TakeMany</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="122,-472 44,-472 44,-436 122,-436 122,-472"/>
+<text text-anchor="start" x="54.9956" y="-450.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">TakeMany</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M56.3333,-437C56.3333,-437 109.6667,-437 109.6667,-437 115.3333,-437 121,-442.6667 121,-448.3333 121,-448.3333 121,-459.6667 121,-459.6667 121,-465.3333 115.3333,-471 109.6667,-471 109.6667,-471 56.3333,-471 56.3333,-471 50.6667,-471 45,-465.3333 45,-459.6667 45,-459.6667 45,-448.3333 45,-448.3333 45,-442.6667 50.6667,-437 56.3333,-437"/>
+</g>
+<!-- _P_BigStepMaximality_Syntactic -->
+<g id="node74" class="node">
+<title>_P_BigStepMaximality_Syntactic</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="125,-598 41,-598 41,-562 125,-562 125,-598"/>
+<text text-anchor="start" x="51.992" y="-576.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Syntactic ✓</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M53.3333,-563C53.3333,-563 112.6667,-563 112.6667,-563 118.3333,-563 124,-568.6667 124,-574.3333 124,-574.3333 124,-585.6667 124,-585.6667 124,-591.3333 118.3333,-597 112.6667,-597 112.6667,-597 53.3333,-597 53.3333,-597 47.6667,-597 42,-591.3333 42,-585.6667 42,-585.6667 42,-574.3333 42,-574.3333 42,-568.6667 47.6667,-563 53.3333,-563"/>
+</g>
+<!-- _P_BigStepMaximality_Syntactic&#45;&gt;_P_BigStepMaximality_TakeMany -->
+<g id="edge49" class="edge">
+<title>_P_BigStepMaximality_Syntactic&#45;&gt;_P_BigStepMaximality_TakeMany</title>
+<path fill="none" stroke="#000000" d="M83,-561.7983C83,-554.007 83,-544.8073 83,-536.5 83,-536.5 83,-536.5 83,-489.5 83,-487.1079 83,-484.6252 83,-482.1342"/>
+<polygon fill="#000000" stroke="#000000" points="86.5001,-482.0597 83,-472.0598 79.5001,-482.0598 86.5001,-482.0597"/>
+<text text-anchor="middle" x="84.3895" y="-510" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_BigStepMaximality_TakeOne -->
+<g id="node75" class="node">
+<title>_P_BigStepMaximality_TakeOne</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="118.5,-716 47.5,-716 47.5,-680 118.5,-680 118.5,-716"/>
+<text text-anchor="start" x="58.8256" y="-694.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">TakeOne</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M59.8333,-681C59.8333,-681 106.1667,-681 106.1667,-681 111.8333,-681 117.5,-686.6667 117.5,-692.3333 117.5,-692.3333 117.5,-703.6667 117.5,-703.6667 117.5,-709.3333 111.8333,-715 106.1667,-715 106.1667,-715 59.8333,-715 59.8333,-715 54.1667,-715 48.5,-709.3333 48.5,-703.6667 48.5,-703.6667 48.5,-692.3333 48.5,-692.3333 48.5,-686.6667 54.1667,-681 59.8333,-681"/>
+</g>
+<!-- _P_BigStepMaximality_TakeOne&#45;&gt;_P_BigStepMaximality_Syntactic -->
+<g id="edge50" class="edge">
+<title>_P_BigStepMaximality_TakeOne&#45;&gt;_P_BigStepMaximality_Syntactic</title>
+<path fill="none" stroke="#000000" d="M83,-679.9402C83,-674.3497 83,-668.1701 83,-662.5 83,-662.5 83,-662.5 83,-615.5 83,-613.1079 83,-610.6252 83,-608.1342"/>
+<polygon fill="#000000" stroke="#000000" points="86.5001,-608.0597 83,-598.0598 79.5001,-608.0598 86.5001,-608.0597"/>
+<text text-anchor="middle" x="84.3895" y="-636" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _P_BigStepMaximality_Initial&#45;&gt;_P_BigStepMaximality_TakeOne -->
+<g id="edge51" class="edge">
+<title>_P_BigStepMaximality_Initial&#45;&gt;_P_BigStepMaximality_TakeOne</title>
+<path fill="none" stroke="#000000" d="M83,-797.9402C83,-792.3497 83,-786.1701 83,-780.5 83,-780.5 83,-780.5 83,-733.5 83,-731.1079 83,-728.6252 83,-726.1342"/>
+<polygon fill="#000000" stroke="#000000" points="86.5001,-726.0597 83,-716.0598 79.5001,-726.0598 86.5001,-726.0597"/>
+<text text-anchor="middle" x="84.3895" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+</g>
+</svg>

+ 217 - 0
test/test_demo.xml

@@ -0,0 +1,217 @@
+<test>
+  <statechart>
+    <semantics
+      big_step_maximality="take_one, syntactic, take_many"
+      combo_step_maximality="combo_take_one, combo_syntactic, combo_take_many"
+      input_event_lifeline="first_small_step, first_combo_step, whole"
+      internal_event_lifeline="next_small_step, next_combo_step, remainder, queue"
+      enabledness_memory_protocol="small_step, combo_step, big_step"
+      assignment_memory_protocol="small_step, combo_step, big_step"
+      concurrency="single"
+      priority="source_child, source_parent"/>
+<!--     <semantics
+      big_step_maximality="syntactic"
+      combo_step_maximality="combo_take_one"
+      input_event_lifeline="whole"
+      internal_event_lifeline="next_small_step"
+      enabledness_memory_protocol="combo_step"
+      assignment_memory_protocol="combo_step"
+      priority="source_parent"/>
+ -->
+    <datamodel>
+      x = 0;
+      #y = 0;
+    </datamodel>
+
+    <inport name="in">
+      <event name="input0"/>
+      <event name="bigstep1"/>
+    </inport>
+
+
+    <root>
+      <parallel id="P">
+
+        <state id="BigStepMaximality" initial="Initial">
+          <state id="Initial">
+            <transition target="../TakeOne"/>
+          </state>
+          <state id="TakeOne">
+            <transition target="../Syntactic"/>
+          </state>
+          <state id="Syntactic" stable="true">
+            <transition target="../TakeMany"/>
+          </state>
+          <state id="TakeMany">
+          </state>
+        </state>
+
+        <state id="InputEventLifeline" initial="FirstSmallStep">
+          <!-- because BigStepMaximality region has higher priority,
+               it will 'consume' the input event upon FirstSmallStep -->
+          <state id="FirstSmallStep">
+            <transition event="input0" target="../Whole"/>
+          </state>
+          <state id="Whole">
+            <transition event="not input0" target="../FirstComboStep"/>
+          </state>
+          <state id="FirstComboStep">
+          </state>
+        </state>
+
+        <parallel id="InternalEventLifeline" >
+          <state id="RegionBroadcast" initial="Initial">
+            <state id="Initial">
+              <transition target="../Done">
+                <raise event="internal0"/>
+              </transition>
+            </state>
+            <state id="Done"/>
+          </state>
+          <state id="RegionReceive1" initial="Initial">
+            <state id="Initial">
+              <transition event="internal0" target="../GotEvent"/>
+            </state>
+            <state id="GotEvent">
+            </state>
+          </state>
+          <state id="RegionReceive2" initial="Initial">
+            <state id="Initial">
+              <transition event="internal0" target="../GotEvent"/>
+            </state>
+            <state id="GotEvent">
+            </state>
+          </state>
+
+          <state id="InternalEventLifeline" initial="Initial">
+            <!-- <state id="NonRemainder" initial="Initial"> -->
+            <state id="Initial">
+              <transition cond='INSTATE(["/P/InternalEventLifeline/RegionReceive1/GotEvent"]) and not INSTATE(["/P/InternalEventLifeline/RegionReceive2/GotEvent"])' target="../NextSmallStep"/>
+              <transition cond='INSTATE(["/P/InternalEventLifeline/RegionReceive1/GotEvent", "/P/InternalEventLifeline/RegionReceive2/GotEvent"])' target="../Remainder"/>
+              <transition target="../Queue"/>
+            </state>
+            <state id="NextSmallStep">
+            </state>
+            <state id="Remainder">
+            </state>
+            <state id="NextComboStep">
+            </state>
+            <state id="Queue">
+              <transition cond='INSTATE(["/P/InternalEventLifeline/RegionReceive1/GotEvent", "/P/InternalEventLifeline/RegionReceive2/GotEvent"])' target="../NextComboStep"/>
+            </state>
+          </state>
+        </parallel>
+
+        <parallel id="MemoryProtocol">
+          <state id="RegionAssign" initial="Initial">
+            <state id="Initial">
+              <transition target="../Assigned">
+                <code> x = 1; </code>
+              </transition>
+            </state>
+            <state id="Assigned">
+            </state>
+          </state>
+          <state id="MemoryProtocol" initial="Initial">
+            <state id="Initial">
+              <transition cond="x == 1" target="../SmallStep"/>
+              <transition cond="x == 0" target="../BigStep"/>
+            </state>
+            <state id="BigStep">
+              <transition cond="x == 1" target="../ComboStep"/>
+            </state>
+            <state id="ComboStep">
+            </state>
+            <state id="SmallStep">
+            </state>
+          </state>
+        </parallel>
+
+        <state id="Priority" initial="Composite">
+          <state id="Composite">
+            <state id="Basic">
+              <transition target="../../SourceChild"/>
+            </state>
+            <transition target="../SourceParent"/>
+          </state>
+
+          <state id="SourceParent"/>
+          <state id="SourceChild"/>
+        </state>
+
+        <parallel id="ComboStepMaximality">
+
+          <state id="InputEventDeducer" initial="Initial">
+            <!-- suppose Input Event Lifeline is first_combo_step, then the "final" state of this region will indicate combo step maximality -->
+            <state id="Initial">
+              <transition event="input0" target="../ComboTakeOne"/>
+            </state>
+            <state id="ComboTakeOne">
+              <transition event="input0" target="../ComboSyntactic"/>
+            </state>
+            <state id="ComboSyntactic" stable="true">
+              <transition event="input0" target="../ComboTakeMany"/>
+            </state>
+            <state id="ComboTakeMany">
+            </state>
+          </state>
+          <state id="InternalEventDeducer" initial="Initial">
+            <!-- suppose Internal Event Lifeline is next_combo_step, then the "final" state of this region will indicate combo step maximality -->
+            <state id="Initial">
+              <transition event="internal0" target="../ComboTakeOne"/>
+            </state>
+            <state id="ComboTakeOne">
+              <transition event="internal0" target="../ComboSyntactic"/>
+            </state>
+            <state id="ComboSyntactic" stable="true">
+              <transition event="internal0" target="../ComboTakeMany"/>
+            </state>
+            <state id="ComboTakeMany">
+            </state>
+          </state>
+          <state id="MemoryProtocolDeducer" initial="Initial">
+            <!-- suppose Memory Protocol is combo_step, then the "final" state of this region will indicate combo step maximality -->
+            <state id="Initial">
+              <transition cond="x == 0" target="../ComboTakeOne">
+                <!-- <code> y = 1; </code> y will be 1 in the next combo step -->
+              </transition>
+            </state>
+            <state id="ComboTakeOne">
+              <transition cond="x == 0" target="../ComboSyntactic"/>
+            </state>
+            <state id="ComboSyntactic" stable="true">
+              <transition cond="x == 0" target="../ComboTakeMany"/>
+            </state>
+            <state id="ComboTakeMany">
+            </state>
+          </state>
+
+
+          <state id="ComboStepMaximality" initial="NoComboSteps">
+            <state id="NoComboSteps">
+              <transition event="not input0" cond='INSTATE(["/P/InputEventLifeline/FirstComboStep", "/P/ComboStepMaximality/InputEventDeducer/ComboTakeOne"])' target="../ComboTakeOne"/>
+              <transition event="not input0" cond='INSTATE(["/P/InputEventLifeline/FirstComboStep", "/P/ComboStepMaximality/InputEventDeducer/ComboSyntactic"])' target="../ComboSyntactic"/>
+              <transition event="not input0" cond='INSTATE(["/P/InputEventLifeline/FirstComboStep", "/P/ComboStepMaximality/InputEventDeducer/ComboTakeMany"])' target="../ComboTakeMany"/>
+
+              <transition event="not internal0" cond='INSTATE(["/P/InternalEventLifeline/InternalEventLifeline/NextComboStep", "/P/ComboStepMaximality/InternalEventDeducer/ComboTakeOne"])' target="../ComboTakeOne"/>
+              <transition event="not internal0" cond='INSTATE(["/P/InternalEventLifeline/InternalEventLifeline/NextComboStep", "/P/ComboStepMaximality/InternalEventDeducer/ComboSyntactic"])' target="../ComboSyntactic"/>
+              <transition event="not internal0" cond='INSTATE(["/P/InternalEventLifeline/InternalEventLifeline/NextComboStep", "/P/ComboStepMaximality/InternalEventDeducer/ComboTakeMany"])' target="../ComboTakeMany"/>
+
+              <transition cond='x == 1 and INSTATE(["/P/MemoryProtocol/MemoryProtocol/ComboStep", "/P/ComboStepMaximality/MemoryProtocolDeducer/ComboTakeOne"])' target="../ComboTakeOne"/>
+              <transition cond='x == 1 and INSTATE(["/P/MemoryProtocol/MemoryProtocol/ComboStep", "/P/ComboStepMaximality/MemoryProtocolDeducer/ComboSyntactic"])' target="../ComboSyntactic"/>
+              <transition cond='x == 1 and INSTATE(["/P/MemoryProtocol/MemoryProtocol/ComboStep", "/P/ComboStepMaximality/MemoryProtocolDeducer/ComboTakeMany"])' target="../ComboTakeMany"/>
+            </state>
+
+            <state id="ComboTakeOne"/>
+            <state id="ComboSyntactic"/>
+            <state id="ComboTakeMany"/>
+          </state>
+        </parallel>
+      </parallel>
+    </root>
+  </statechart>
+
+  <input>
+    <event port="in" name="input0" time="0 d"/>
+  </input>
+</test>