Undo 38eb28ebb36212417a639157d554b87c8fe0ee5b to make Editor work again
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Mon, 26 Aug 2019 08:43:39 +0000 (10:43 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Mon, 26 Aug 2019 08:43:39 +0000 (10:43 +0200)
27 files changed:
net.mograsim.logic.model.editor/components/GUI_rsLatch.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIand.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIand41.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIandor414.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIdemux2.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIdff.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIdlatch.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIdlatch4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIfulladder.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIhalfadder.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUImux1.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUImux1_4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUInand3.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUInot4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIor4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIor_4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIram2.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIram4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIsel2_4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIsel3_4.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUIxor.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUFuncDecode.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclDecode.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUOneBit.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/am2901/GUIAm2901DestDecode.json [new file with mode: 0644]
net.mograsim.logic.model.editor/components/am2901/GUIAm2901SourceDecode.json [new file with mode: 0644]

diff --git a/net.mograsim.logic.model.editor/components/GUI_rsLatch.json b/net.mograsim.logic.model.editor/components/GUI_rsLatch.json
new file mode 100644 (file)
index 0000000..4199e45
--- /dev/null
@@ -0,0 +1,248 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 20.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Q",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "_Q",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "_R",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "_S",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 40.0,
+          "y": 12.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 64.0,
+          "y": 36.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 34.0,
+          "y": 16.5
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Q"
+        },
+        "name": "q",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 17.5
+          },
+          {
+            "x": 35.0,
+            "y": 7.5
+          },
+          {
+            "x": 65.0,
+            "y": 7.5
+          },
+          {
+            "x": 65.0,
+            "y": 12.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "_q",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_R"
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 37.5
+          },
+          {
+            "x": 35.0,
+            "y": 27.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_S"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "_rsLatch",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
+  "highLevelStateHandlerParams": {
+    "subcomponentHighLevelStates": {},
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.WireForcingAtomicHighLevelStateHandler",
+        "params": {
+          "wiresToForce": [
+            "q"
+          ],
+          "wiresToForceInverted": [
+            "_q"
+          ]
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIand.json b/net.mograsim.logic.model.editor/components/GUIand.json
new file mode 100644 (file)
index 0000000..6ec536a
--- /dev/null
@@ -0,0 +1,153 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 20.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "B",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 50.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 44.0,
+          "y": 24.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#1"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#5"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIand",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIand41.json b/net.mograsim.logic.model.editor/components/GUIand41.json
new file mode 100644 (file)
index 0000000..9577681
--- /dev/null
@@ -0,0 +1,344 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 50.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "B",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 24.0,
+          "y": 96.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#0",
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#2",
+        "pos": {
+          "x": 30.0,
+          "y": 57.5
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#1",
+        "pos": {
+          "x": 30.0,
+          "y": 32.5
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#3",
+        "pos": {
+          "x": 30.0,
+          "y": 82.5
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUIand#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 112.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUIand#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "GUIand#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIand41",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIandor414.json b/net.mograsim.logic.model.editor/components/GUIandor414.json
new file mode 100644 (file)
index 0000000..c6dc821
--- /dev/null
@@ -0,0 +1,505 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 90.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "B",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "C1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "C2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "C3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "C4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUIor_4",
+        "name": "GUIor_4#0",
+        "pos": {
+          "x": 35.0,
+          "y": 37.5
+        }
+      },
+      {
+        "id": "GUIand41",
+        "name": "GUIand41#0",
+        "pos": {
+          "x": 15.0,
+          "y": 137.5
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUIor_4#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 52.5
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIor_4#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 42.5
+          },
+          {
+            "x": 75.0,
+            "y": 12.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIor_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 72.5
+          },
+          {
+            "x": 80.0,
+            "y": 87.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIor_4#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 142.5
+          },
+          {
+            "x": 70.0,
+            "y": 120.0
+          },
+          {
+            "x": 30.0,
+            "y": 120.0
+          },
+          {
+            "x": 30.0,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C4"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C3"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C2"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 37.5
+          },
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 137.5
+          },
+          {
+            "x": 5.0,
+            "y": 152.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 112.5
+          },
+          {
+            "x": 10.0,
+            "y": 142.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C1"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 12.5
+          },
+          {
+            "x": 10.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "B2"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 152.5
+          },
+          {
+            "x": 65.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 212.5
+          },
+          {
+            "x": 10.0,
+            "y": 182.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 187.5
+          },
+          {
+            "x": 5.0,
+            "y": 172.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "B4"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 172.5
+          },
+          {
+            "x": 55.0,
+            "y": 135.0
+          },
+          {
+            "x": 15.0,
+            "y": 135.0
+          },
+          {
+            "x": 15.0,
+            "y": 112.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIor_4#0",
+          "pinName": "B3"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 162.5
+          },
+          {
+            "x": 60.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 102.5
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIandor414",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIdemux2.json b/net.mograsim.logic.model.editor/components/GUIdemux2.json
new file mode 100644 (file)
index 0000000..55e3c8a
--- /dev/null
@@ -0,0 +1,536 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 40.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y00",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y11",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y10",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y01",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "S0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "S1",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 10.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#0",
+        "pos": {
+          "x": 40.0,
+          "y": 2.5
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#2",
+        "pos": {
+          "x": 40.0,
+          "y": 52.5
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#1",
+        "pos": {
+          "x": 40.0,
+          "y": 27.5
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#3",
+        "pos": {
+          "x": 40.0,
+          "y": 77.5
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 6.5,
+          "y": 16.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 36.5,
+          "y": 61.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 31.5,
+          "y": 66.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 4.0,
+          "y": 41.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 34.0,
+          "y": 36.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 31.5,
+          "y": 11.5
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#17",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#19",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 67.5
+          },
+          {
+            "x": 32.5,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 62.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y01"
+        },
+        "name": "unnamedWire#21"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y00"
+        },
+        "name": "unnamedWire#20"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y11"
+        },
+        "name": "unnamedWire#23"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y10"
+        },
+        "name": "unnamedWire#22"
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIdemux2",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIdff.json b/net.mograsim.logic.model.editor/components/GUIdff.json
new file mode 100644 (file)
index 0000000..345b126
--- /dev/null
@@ -0,0 +1,357 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 20.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Q",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "_Q",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "C",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "D",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#0",
+        "pos": {
+          "x": 40.0,
+          "y": 10.0
+        }
+      },
+      {
+        "id": "GUInand3",
+        "name": "GUInand3#0",
+        "pos": {
+          "x": 40.0,
+          "y": 40.0
+        }
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 120.0,
+          "y": 60.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#1",
+        "pos": {
+          "x": 120.0,
+          "y": 30.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 19.0,
+          "y": 64.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 9.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 99.0,
+          "y": 44.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 99.0,
+          "y": 34.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "unnamedWire#14"
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#1",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Q"
+        },
+        "name": "unnamedWire#13"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_S"
+        },
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUInand3#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 35.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUInand3#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUInand3#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 70.0
+          },
+          {
+            "x": 145.0,
+            "y": 85.0
+          },
+          {
+            "x": 20.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUInand3#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_R"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIdff",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
+  "highLevelStateHandlerParams": {
+    "subcomponentHighLevelStates": {},
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUI_rsLatch#1",
+          "subStateID": "q"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIdlatch.json b/net.mograsim.logic.model.editor/components/GUIdlatch.json
new file mode 100644 (file)
index 0000000..26c4071
--- /dev/null
@@ -0,0 +1,262 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 20.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Q",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "_Q",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "D",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "E",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 15.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#0",
+        "pos": {
+          "x": 45.0,
+          "y": 7.5
+        }
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 34.0,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "unnamedWire#9"
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Q"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "E"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 25.0
+          },
+          {
+            "x": 10.0,
+            "y": 25.0
+          },
+          {
+            "x": 10.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 17.5
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIdlatch",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
+  "highLevelStateHandlerParams": {
+    "subcomponentHighLevelStates": {},
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUI_rsLatch#0",
+          "subStateID": "q"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIdlatch4.json b/net.mograsim.logic.model.editor/components/GUIdlatch4.json
new file mode 100644 (file)
index 0000000..28021df
--- /dev/null
@@ -0,0 +1,395 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 50.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "D4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Q1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Q2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Q3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "C",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Q4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "D1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "D2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "D3",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 14.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 14.0,
+          "y": 96.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#1",
+        "pos": {
+          "x": 30.0,
+          "y": 32.5
+        }
+      },
+      {
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#0",
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        }
+      },
+      {
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#3",
+        "pos": {
+          "x": 30.0,
+          "y": 82.5
+        }
+      },
+      {
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#2",
+        "pos": {
+          "x": 30.0,
+          "y": 57.5
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUIdlatch#3",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Q4"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Q3"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compName": "GUIdlatch#2",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compName": "GUIdlatch#1",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "GUIdlatch#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch#0",
+          "pinName": "E"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch#3",
+          "pinName": "E"
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 112.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch#1",
+          "pinName": "E"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compName": "GUIdlatch#3",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch#2",
+          "pinName": "E"
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch#1",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Q2"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch#0",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIdlatch4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
+  "highLevelStateHandlerParams": {
+    "subcomponentHighLevelStates": {},
+    "atomicHighLevelStates": {
+      "q1": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch#0",
+          "subStateID": "q"
+        }
+      },
+      "q2": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch#1",
+          "subStateID": "q"
+        }
+      },
+      "q": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
+        "params": {
+          "vectorPartTargets": [
+            "q1",
+            "q2",
+            "q3",
+            "q4"
+          ],
+          "vectorPartLengthes": [
+            1,
+            1,
+            1,
+            1
+          ]
+        }
+      },
+      "q3": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch#2",
+          "subStateID": "q"
+        }
+      },
+      "q4": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch#3",
+          "subStateID": "q"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIfulladder.json b/net.mograsim.logic.model.editor/components/GUIfulladder.json
new file mode 100644 (file)
index 0000000..b509eb2
--- /dev/null
@@ -0,0 +1,197 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 30.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "B",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "C",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Z",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 57.5,
+          "y": 40.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIhalfadder",
+        "name": "GUIhalfadder#0",
+        "pos": {
+          "x": 5.0,
+          "y": 40.0
+        }
+      },
+      {
+        "id": "GUIhalfadder",
+        "name": "GUIhalfadder#1",
+        "pos": {
+          "x": 45.0,
+          "y": 7.5
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Z"
+        },
+        "name": "unnamedWire#7"
+      },
+      {
+        "pin1": {
+          "compName": "GUIhalfadder#1",
+          "pinName": "_Z"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 82.5,
+            "y": 22.5
+          },
+          {
+            "x": 82.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 45.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
+          "compName": "GUIhalfadder#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "GUIhalfadder#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIhalfadder#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIhalfadder#0",
+          "pinName": "_Z"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIhalfadder#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIhalfadder#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#3"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "GUIhalfadder#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#2"
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIfulladder",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIhalfadder.json b/net.mograsim.logic.model.editor/components/GUIhalfadder.json
new file mode 100644 (file)
index 0000000..8ca9ccd
--- /dev/null
@@ -0,0 +1,331 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 20.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "B",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "_Z",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 40.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 65.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 40.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 4.0,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 34.0,
+          "y": 24.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Z"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 25.0
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 62.5,
+            "y": 12.5
+          },
+          {
+            "x": 62.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 62.5,
+            "y": 37.5
+          },
+          {
+            "x": 62.5,
+            "y": 17.5
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIhalfadder",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUImux1.json b/net.mograsim.logic.model.editor/components/GUImux1.json
new file mode 100644 (file)
index 0000000..b75d9f1
--- /dev/null
@@ -0,0 +1,242 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 30.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "S0",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 35.0,
+          "y": 22.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 60.0,
+          "y": 30.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 4.0,
+          "y": 21.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 35.0,
+          "y": 47.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 4.0,
+          "y": 11.5
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#8"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#4"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUImux1",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUImux1_4.json b/net.mograsim.logic.model.editor/components/GUImux1_4.json
new file mode 100644 (file)
index 0000000..b9f6612
--- /dev/null
@@ -0,0 +1,488 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 90.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I0_1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "I0_3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "I1_2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I0_2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "I1_1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "I1_4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "S0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "I0_4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "I1_3",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#3",
+        "pos": {
+          "x": 30.0,
+          "y": 112.5
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#0",
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 24.0,
+          "y": 81.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#2",
+        "pos": {
+          "x": 30.0,
+          "y": 77.5
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#1",
+        "pos": {
+          "x": 30.0,
+          "y": 42.5
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUImux1#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#14"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 187.5
+          },
+          {
+            "x": 20.0,
+            "y": 102.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I0_4"
+        },
+        "pin2": {
+          "compName": "GUImux1#3",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 112.5
+          },
+          {
+            "x": 5.0,
+            "y": 127.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#3",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 117.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUImux1#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#18"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1_4"
+        },
+        "pin2": {
+          "compName": "GUImux1#3",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 212.5
+          },
+          {
+            "x": 25.0,
+            "y": 137.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUImux1#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#9"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1_2"
+        },
+        "pin2": {
+          "compName": "GUImux1#1",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 162.5
+          },
+          {
+            "x": 15.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I0_2"
+        },
+        "pin2": {
+          "compName": "GUImux1#1",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 62.5
+          },
+          {
+            "x": 5.0,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#1",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUImux1#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1_1"
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 137.5
+          },
+          {
+            "x": 10.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I0_3"
+        },
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I0_1"
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 37.5
+          },
+          {
+            "x": 5.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUImux1_4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUInand3.json b/net.mograsim.logic.model.editor/components/GUInand3.json
new file mode 100644 (file)
index 0000000..1bdc7cc
--- /dev/null
@@ -0,0 +1,213 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 30.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "B",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "C",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 35.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 62.5,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 31.5,
+          "y": 24.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 62.5
+          },
+          {
+            "x": 60.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#1"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 57.5,
+            "y": 25.0
+          },
+          {
+            "x": 57.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUInand3",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUInot4.json b/net.mograsim.logic.model.editor/components/GUInot4.json
new file mode 100644 (file)
index 0000000..0a3b703
--- /dev/null
@@ -0,0 +1,391 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 40.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 30.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 30.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 30.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 36.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 30.0,
+          "y": 52.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 14.0,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 14.0,
+          "y": 86.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 14.0,
+          "y": 61.5
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 92.5
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUInot4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIor4.json b/net.mograsim.logic.model.editor/components/GUIor4.json
new file mode 100644 (file)
index 0000000..fca69d6
--- /dev/null
@@ -0,0 +1,551 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 40.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 20.0,
+          "y": 65.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 20.0,
+          "y": 165.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 20.0,
+          "y": 115.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 74.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 14.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 14.0,
+          "y": 174.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 14.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 104.0,
+          "y": 149.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 104.0,
+          "y": 49.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 140.0,
+          "y": 90.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 50.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
+        "pos": {
+          "x": 50.0,
+          "y": 40.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 110.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 110.0,
+          "y": 40.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#14"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#13"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#16",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 45.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#17",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#19",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#23"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#22"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#24"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 80.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 170.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 130.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 180.0
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIor4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIor_4.json b/net.mograsim.logic.model.editor/components/GUIor_4.json
new file mode 100644 (file)
index 0000000..07a3e1e
--- /dev/null
@@ -0,0 +1,883 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 80.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "B2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "B3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "B1",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 15.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 15.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 15.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 15.0,
+          "y": 52.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
+        "pos": {
+          "x": 65.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 65.0,
+          "y": 52.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 6.5,
+          "y": 36.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 6.5,
+          "y": 86.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 6.5,
+          "y": 61.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 6.5,
+          "y": 136.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 6.5,
+          "y": 111.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
+        "pos": {
+          "x": 65.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 6.5,
+          "y": 186.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 65.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 6.5,
+          "y": 161.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 15.0,
+          "y": 127.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
+        "pos": {
+          "x": 15.0,
+          "y": 102.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 15.0,
+          "y": 177.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 15.0,
+          "y": 152.5
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 107.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 132.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 117.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#19",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 142.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 167.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 157.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 192.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 182.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 112.5
+          },
+          {
+            "x": 45.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 12.5
+          },
+          {
+            "x": 40.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 137.5
+          },
+          {
+            "x": 50.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#26",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 162.5
+          },
+          {
+            "x": 55.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 62.5
+          },
+          {
+            "x": 40.0,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 87.5
+          },
+          {
+            "x": 40.0,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIor_4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIram2.json b/net.mograsim.logic.model.editor/components/GUIram2.json
new file mode 100644 (file)
index 0000000..31a01fb
--- /dev/null
@@ -0,0 +1,3011 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 90.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "QA1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 55.0
+      },
+      "name": "QB2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "QB1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "QA3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 75.0
+      },
+      "name": "QB4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "QA2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 65.0
+      },
+      "name": "QB3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "QA4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "D1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "B0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "WE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "D2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "B1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "D3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "D4",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.1,
+    "subComps": [
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "pos": {
+          "x": 44.0,
+          "y": 649.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "pos": {
+          "x": 39.0,
+          "y": 639.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
+        "pos": {
+          "x": 129.0,
+          "y": 329.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "pos": {
+          "x": 49.0,
+          "y": 659.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "pos": {
+          "x": 119.0,
+          "y": 349.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
+        "pos": {
+          "x": 124.0,
+          "y": 339.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
+        "pos": {
+          "x": 114.0,
+          "y": 359.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 104.0,
+          "y": 164.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 109.0,
+          "y": 154.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 94.0,
+          "y": 184.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 99.0,
+          "y": 174.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 39.0,
+          "y": 649.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 34.0,
+          "y": 549.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 49.0,
+          "y": 809.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 44.0,
+          "y": 749.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 39.0,
+          "y": 489.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 34.0,
+          "y": 479.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 44.0,
+          "y": 499.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
+        "pos": {
+          "x": 34.0,
+          "y": 629.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 49.0,
+          "y": 509.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
+        "pos": {
+          "x": 135.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
+        "pos": {
+          "x": 135.0,
+          "y": 435.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
+        "pos": {
+          "x": 135.0,
+          "y": 585.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
+        "pos": {
+          "x": 235.0,
+          "y": 635.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
+        "pos": {
+          "x": 235.0,
+          "y": 785.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
+        "pos": {
+          "x": 235.0,
+          "y": 485.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
+        "pos": {
+          "x": 55.0,
+          "y": 475.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
+        "pos": {
+          "x": 55.0,
+          "y": 325.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#3",
+        "pos": {
+          "x": 55.0,
+          "y": 775.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#2",
+        "pos": {
+          "x": 55.0,
+          "y": 625.0
+        }
+      },
+      {
+        "id": "GUIand41",
+        "name": "GUIand41#2",
+        "pos": {
+          "x": 135.0,
+          "y": 325.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
+        "pos": {
+          "x": 119.0,
+          "y": 799.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#31",
+        "pos": {
+          "x": 114.0,
+          "y": 809.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIand41",
+        "name": "GUIand41#0",
+        "pos": {
+          "x": 130.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIand41",
+        "name": "GUIand41#1",
+        "pos": {
+          "x": 235.0,
+          "y": 375.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
+        "pos": {
+          "x": 124.0,
+          "y": 639.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
+        "pos": {
+          "x": 129.0,
+          "y": 629.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
+        "pos": {
+          "x": 114.0,
+          "y": 659.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#26",
+        "pos": {
+          "x": 119.0,
+          "y": 649.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#29",
+        "pos": {
+          "x": 124.0,
+          "y": 789.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#28",
+        "pos": {
+          "x": 129.0,
+          "y": 779.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
+        "pos": {
+          "x": 124.0,
+          "y": 489.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
+        "pos": {
+          "x": 129.0,
+          "y": 479.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
+        "pos": {
+          "x": 114.0,
+          "y": 509.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
+        "pos": {
+          "x": 119.0,
+          "y": 499.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#36",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#37",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#39",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#110",
+        "path": [
+          {
+            "x": 285.0,
+            "y": 650.0
+          },
+          {
+            "x": 285.0,
+            "y": 740.0
+          },
+          {
+            "x": 225.0,
+            "y": 740.0
+          },
+          {
+            "x": 225.0,
+            "y": 800.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#111",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 660.0
+          },
+          {
+            "x": 280.0,
+            "y": 735.0
+          },
+          {
+            "x": 220.0,
+            "y": 735.0
+          },
+          {
+            "x": 220.0,
+            "y": 810.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
+        },
+        "name": "unnamedWire#114",
+        "path": [
+          {
+            "x": 305.0,
+            "y": 800.0
+          },
+          {
+            "x": 305.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
+        },
+        "name": "unnamedWire#115",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 810.0
+          },
+          {
+            "x": 310.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#112",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 670.0
+          },
+          {
+            "x": 275.0,
+            "y": 730.0
+          },
+          {
+            "x": 215.0,
+            "y": 730.0
+          },
+          {
+            "x": 215.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
+        },
+        "name": "unnamedWire#113",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 790.0
+          },
+          {
+            "x": 300.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 340.0
+          },
+          {
+            "x": 185.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#119",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 350.0
+          },
+          {
+            "x": 180.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 460.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 780.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
+        },
+        "name": "unnamedWire#116",
+        "path": [
+          {
+            "x": 315.0,
+            "y": 820.0
+          },
+          {
+            "x": 315.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#40",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#117",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 330.0
+          },
+          {
+            "x": 190.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#43",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 800.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "name": "unnamedWire#45",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#44",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "name": "unnamedWire#47",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "name": "unnamedWire#49",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "name": "unnamedWire#48",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#100",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#103",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 400.0
+          },
+          {
+            "x": 280.0,
+            "y": 435.0
+          },
+          {
+            "x": 220.0,
+            "y": 435.0
+          },
+          {
+            "x": 220.0,
+            "y": 510.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#104",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 410.0
+          },
+          {
+            "x": 275.0,
+            "y": 430.0
+          },
+          {
+            "x": 215.0,
+            "y": 430.0
+          },
+          {
+            "x": 215.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#101",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 380.0
+          },
+          {
+            "x": 290.0,
+            "y": 445.0
+          },
+          {
+            "x": 230.0,
+            "y": 445.0
+          },
+          {
+            "x": 230.0,
+            "y": 490.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#102",
+        "path": [
+          {
+            "x": 285.0,
+            "y": 390.0
+          },
+          {
+            "x": 285.0,
+            "y": 440.0
+          },
+          {
+            "x": 225.0,
+            "y": 440.0
+          },
+          {
+            "x": 225.0,
+            "y": 500.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
+        },
+        "name": "unnamedWire#50",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#107",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 510.0
+          },
+          {
+            "x": 280.0,
+            "y": 585.0
+          },
+          {
+            "x": 220.0,
+            "y": 585.0
+          },
+          {
+            "x": 220.0,
+            "y": 660.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#108",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 520.0
+          },
+          {
+            "x": 275.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
+        },
+        "name": "unnamedWire#52",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#105",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 490.0
+          },
+          {
+            "x": 290.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 640.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "name": "unnamedWire#51",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#106",
+        "path": [
+          {
+            "x": 285.0,
+            "y": 500.0
+          },
+          {
+            "x": 285.0,
+            "y": 590.0
+          },
+          {
+            "x": 225.0,
+            "y": 590.0
+          },
+          {
+            "x": 225.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "name": "unnamedWire#54",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "name": "unnamedWire#53",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
+        },
+        "name": "unnamedWire#56",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#109",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 640.0
+          },
+          {
+            "x": 290.0,
+            "y": 745.0
+          },
+          {
+            "x": 230.0,
+            "y": 745.0
+          },
+          {
+            "x": 230.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
+        },
+        "name": "unnamedWire#55",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 165.0
+          },
+          {
+            "x": 180.0,
+            "y": 245.0
+          },
+          {
+            "x": 25.0,
+            "y": 245.0
+          },
+          {
+            "x": 25.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 155.0
+          },
+          {
+            "x": 185.0,
+            "y": 250.0
+          },
+          {
+            "x": 30.0,
+            "y": 250.0
+          },
+          {
+            "x": 30.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 170.0,
+            "y": 185.0
+          },
+          {
+            "x": 170.0,
+            "y": 235.0
+          },
+          {
+            "x": 15.0,
+            "y": 235.0
+          },
+          {
+            "x": 15.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 175.0
+          },
+          {
+            "x": 175.0,
+            "y": 240.0
+          },
+          {
+            "x": 20.0,
+            "y": 240.0
+          },
+          {
+            "x": 20.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#17",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 330.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 850.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 340.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#25",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 360.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#1",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#28",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIdlatch4#2",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 700.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#81",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 830.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#80",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 710.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#83",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 850.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#82",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 840.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#84",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 860.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#87",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#86",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#89",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#88",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#90",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#92",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#91",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#94",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A0"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#93",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#96",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#95",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#98",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#97",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 350.0
+          },
+          {
+            "x": 10.0,
+            "y": 165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "WE"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B0"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 250.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#99",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
+        },
+        "name": "unnamedWire#58",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
+        },
+        "name": "unnamedWire#57",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
+        },
+        "name": "unnamedWire#59",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
+        },
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 770.0
+          },
+          {
+            "x": 175.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
+        },
+        "name": "unnamedWire#130",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 750.0
+          },
+          {
+            "x": 185.0,
+            "y": 885.0
+          },
+          {
+            "x": 330.0,
+            "y": 885.0
+          },
+          {
+            "x": 330.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
+        },
+        "name": "unnamedWire#131",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 760.0
+          },
+          {
+            "x": 180.0,
+            "y": 890.0
+          },
+          {
+            "x": 335.0,
+            "y": 890.0
+          },
+          {
+            "x": 335.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 50.0
+          },
+          {
+            "x": 210.0,
+            "y": 420.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
+        },
+        "name": "unnamedWire#60",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#63",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 70.0
+          },
+          {
+            "x": 200.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#62",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 60.0
+          },
+          {
+            "x": 205.0,
+            "y": 570.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#65",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#64",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 80.0
+          },
+          {
+            "x": 195.0,
+            "y": 870.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#67",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#66",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#69",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 380.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#68",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#121",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 440.0
+          },
+          {
+            "x": 190.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 590.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#122",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 450.0
+          },
+          {
+            "x": 185.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 600.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#120",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 360.0
+          },
+          {
+            "x": 175.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 470.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#125",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 590.0
+          },
+          {
+            "x": 190.0,
+            "y": 730.0
+          },
+          {
+            "x": 130.0,
+            "y": 730.0
+          },
+          {
+            "x": 130.0,
+            "y": 740.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#126",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 600.0
+          },
+          {
+            "x": 185.0,
+            "y": 725.0
+          },
+          {
+            "x": 125.0,
+            "y": 725.0
+          },
+          {
+            "x": 125.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#70",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 390.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#123",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 460.0
+          },
+          {
+            "x": 180.0,
+            "y": 570.0
+          },
+          {
+            "x": 120.0,
+            "y": 570.0
+          },
+          {
+            "x": 120.0,
+            "y": 610.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#124",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 470.0
+          },
+          {
+            "x": 175.0,
+            "y": 565.0
+          },
+          {
+            "x": 115.0,
+            "y": 565.0
+          },
+          {
+            "x": 115.0,
+            "y": 620.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#72",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 410.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
+        },
+        "name": "unnamedWire#129",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 740.0
+          },
+          {
+            "x": 190.0,
+            "y": 880.0
+          },
+          {
+            "x": 325.0,
+            "y": 880.0
+          },
+          {
+            "x": 325.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#71",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#74",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 540.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#127",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 610.0
+          },
+          {
+            "x": 180.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 760.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 530.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#128",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 620.0
+          },
+          {
+            "x": 175.0,
+            "y": 715.0
+          },
+          {
+            "x": 115.0,
+            "y": 715.0
+          },
+          {
+            "x": 115.0,
+            "y": 770.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#76",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 560.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#75",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 690.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#77",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 680.0
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIram2",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
+  "highLevelStateHandlerParams": {
+    "subcomponentHighLevelStates": {
+      "c00": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch4#0"
+        }
+      },
+      "c11": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch4#3"
+        }
+      },
+      "c10": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch4#2"
+        }
+      },
+      "c01": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIdlatch4#1"
+        }
+      }
+    },
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
+        "params": {
+          "vectorPartTargets": [
+            "c11.q",
+            "c10.q",
+            "c01.q",
+            "c00.q"
+          ],
+          "vectorPartLengthes": [
+            4,
+            4,
+            4,
+            4
+          ]
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIram4.json b/net.mograsim.logic.model.editor/components/GUIram4.json
new file mode 100644 (file)
index 0000000..05bfe9d
--- /dev/null
@@ -0,0 +1,3503 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 130.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "QA1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 55.0
+      },
+      "name": "QB2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "QB1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "QA3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 75.0
+      },
+      "name": "QB4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "QA2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 65.0
+      },
+      "name": "QB3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "QA4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 95.0
+      },
+      "name": "D1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "B0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "WE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 105.0
+      },
+      "name": "D2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "B1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 115.0
+      },
+      "name": "D3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "B2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 125.0
+      },
+      "name": "D4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.1,
+    "subComps": [
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "pos": {
+          "x": 69.0,
+          "y": 854.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "pos": {
+          "x": 64.0,
+          "y": 844.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
+        "pos": {
+          "x": 39.0,
+          "y": 484.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "pos": {
+          "x": 74.0,
+          "y": 864.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "pos": {
+          "x": 49.0,
+          "y": 504.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
+        "pos": {
+          "x": 44.0,
+          "y": 494.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
+        "pos": {
+          "x": 54.0,
+          "y": 514.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIand41",
+        "name": "GUIand41#2",
+        "pos": {
+          "x": 155.0,
+          "y": 325.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 224.0,
+          "y": 164.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 229.0,
+          "y": 154.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 214.0,
+          "y": 184.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 219.0,
+          "y": 174.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 64.0,
+          "y": 544.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 59.0,
+          "y": 534.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 74.0,
+          "y": 564.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 69.0,
+          "y": 554.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 64.0,
+          "y": 694.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 59.0,
+          "y": 684.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 69.0,
+          "y": 704.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIand41",
+        "name": "GUIand41#0",
+        "pos": {
+          "x": 235.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
+        "pos": {
+          "x": 59.0,
+          "y": 834.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIand41",
+        "name": "GUIand41#1",
+        "pos": {
+          "x": 250.0,
+          "y": 375.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 74.0,
+          "y": 714.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
+        "pos": {
+          "x": 155.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
+        "pos": {
+          "x": 44.0,
+          "y": 349.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
+        "pos": {
+          "x": 39.0,
+          "y": 334.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
+        "pos": {
+          "x": 155.0,
+          "y": 435.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
+        "pos": {
+          "x": 54.0,
+          "y": 749.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
+        "pos": {
+          "x": 155.0,
+          "y": 585.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#26",
+        "pos": {
+          "x": 49.0,
+          "y": 649.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#3",
+        "pos": {
+          "x": 80.0,
+          "y": 780.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#2",
+        "pos": {
+          "x": 80.0,
+          "y": 630.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#1",
+        "pos": {
+          "x": 80.0,
+          "y": 480.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#0",
+        "pos": {
+          "x": 80.0,
+          "y": 330.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
+        "pos": {
+          "x": 250.0,
+          "y": 635.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
+        "pos": {
+          "x": 250.0,
+          "y": 785.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
+        "pos": {
+          "x": 250.0,
+          "y": 485.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
+        "pos": {
+          "x": 44.0,
+          "y": 644.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
+        "pos": {
+          "x": 39.0,
+          "y": 634.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
+        "pos": {
+          "x": 54.0,
+          "y": 664.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
+        "pos": {
+          "x": 49.0,
+          "y": 654.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#36",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 795.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 785.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 805.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#110",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 795.0
+          },
+          {
+            "x": 140.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#111",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 805.0
+          },
+          {
+            "x": 140.0,
+            "y": 800.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#114",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 390.0
+          },
+          {
+            "x": 300.0,
+            "y": 440.0
+          },
+          {
+            "x": 240.0,
+            "y": 440.0
+          },
+          {
+            "x": 240.0,
+            "y": 500.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#115",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 400.0
+          },
+          {
+            "x": 295.0,
+            "y": 435.0
+          },
+          {
+            "x": 235.0,
+            "y": 435.0
+          },
+          {
+            "x": 235.0,
+            "y": 510.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#112",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 815.0
+          },
+          {
+            "x": 140.0,
+            "y": 810.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#113",
+        "path": [
+          {
+            "x": 305.0,
+            "y": 380.0
+          },
+          {
+            "x": 305.0,
+            "y": 445.0
+          },
+          {
+            "x": 245.0,
+            "y": 445.0
+          },
+          {
+            "x": 245.0,
+            "y": 490.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 500.0
+          },
+          {
+            "x": 300.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#119",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 510.0
+          },
+          {
+            "x": 295.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 660.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 815.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#1",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#116",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 410.0
+          },
+          {
+            "x": 290.0,
+            "y": 430.0
+          },
+          {
+            "x": 230.0,
+            "y": 430.0
+          },
+          {
+            "x": 230.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
+        },
+        "name": "unnamedWire#40",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#117",
+        "path": [
+          {
+            "x": 305.0,
+            "y": 490.0
+          },
+          {
+            "x": 305.0,
+            "y": 595.0
+          },
+          {
+            "x": 245.0,
+            "y": 595.0
+          },
+          {
+            "x": 245.0,
+            "y": 640.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "name": "unnamedWire#43",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#45",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 385.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
+        },
+        "name": "unnamedWire#44",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#47",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 405.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#46",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 395.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#49",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#48",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#100",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 365.0
+          },
+          {
+            "x": 140.0,
+            "y": 360.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#103",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 505.0
+          },
+          {
+            "x": 140.0,
+            "y": 500.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#104",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 515.0
+          },
+          {
+            "x": 140.0,
+            "y": 510.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#101",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 485.0
+          },
+          {
+            "x": 140.0,
+            "y": 480.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#102",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 495.0
+          },
+          {
+            "x": 140.0,
+            "y": 490.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#50",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#107",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 655.0
+          },
+          {
+            "x": 140.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#108",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 665.0
+          },
+          {
+            "x": 140.0,
+            "y": 660.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#52",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#105",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 635.0
+          },
+          {
+            "x": 140.0,
+            "y": 630.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#51",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#106",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 645.0
+          },
+          {
+            "x": 140.0,
+            "y": 640.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#54",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#53",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "name": "unnamedWire#56",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#109",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 785.0
+          },
+          {
+            "x": 140.0,
+            "y": 780.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#55",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 285.0,
+            "y": 165.0
+          },
+          {
+            "x": 285.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 525.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 155.0
+          },
+          {
+            "x": 290.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 375.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 185.0
+          },
+          {
+            "x": 275.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 825.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 175.0
+          },
+          {
+            "x": 280.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 675.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "name": "unnamedWire#17",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 355.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 365.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#25",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
+        },
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
+        },
+        "name": "unnamedWire#28",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#81",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 375.0
+          },
+          {
+            "x": 140.0,
+            "y": 380.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#80",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 870.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#83",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 395.0
+          },
+          {
+            "x": 140.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#82",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 385.0
+          },
+          {
+            "x": 140.0,
+            "y": 390.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#85",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 525.0
+          },
+          {
+            "x": 140.0,
+            "y": 530.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#84",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 405.0
+          },
+          {
+            "x": 140.0,
+            "y": 410.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#87",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 545.0
+          },
+          {
+            "x": 140.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#86",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 535.0
+          },
+          {
+            "x": 140.0,
+            "y": 540.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#89",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 675.0
+          },
+          {
+            "x": 140.0,
+            "y": 680.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#1",
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#88",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 555.0
+          },
+          {
+            "x": 140.0,
+            "y": 560.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#140",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 620.0
+          },
+          {
+            "x": 195.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 770.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
+        },
+        "name": "unnamedWire#143",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 760.0
+          },
+          {
+            "x": 200.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
+        },
+        "name": "unnamedWire#144",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 770.0
+          },
+          {
+            "x": 195.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
+        },
+        "name": "unnamedWire#141",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 740.0
+          },
+          {
+            "x": 210.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
+        },
+        "name": "unnamedWire#142",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 750.0
+          },
+          {
+            "x": 205.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#90",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 685.0
+          },
+          {
+            "x": 140.0,
+            "y": 690.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#92",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 705.0
+          },
+          {
+            "x": 140.0,
+            "y": 710.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#91",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 695.0
+          },
+          {
+            "x": 140.0,
+            "y": 700.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#94",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 835.0
+          },
+          {
+            "x": 140.0,
+            "y": 840.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A0"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#93",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 825.0
+          },
+          {
+            "x": 140.0,
+            "y": 830.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#96",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 855.0
+          },
+          {
+            "x": 140.0,
+            "y": 860.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#95",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 845.0
+          },
+          {
+            "x": 140.0,
+            "y": 850.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#98",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 345.0
+          },
+          {
+            "x": 140.0,
+            "y": 340.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#97",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 335.0
+          },
+          {
+            "x": 140.0,
+            "y": 330.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 550.0
+          },
+          {
+            "x": 10.0,
+            "y": 165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "WE"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 850.0
+          },
+          {
+            "x": 15.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B0"
+        },
+        "pin2": {
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#99",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 355.0
+          },
+          {
+            "x": 140.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#58",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#57",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#59",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 360.0
+          },
+          {
+            "x": 195.0,
+            "y": 415.0
+          },
+          {
+            "x": 135.0,
+            "y": 415.0
+          },
+          {
+            "x": 135.0,
+            "y": 470.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#133",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 440.0
+          },
+          {
+            "x": 210.0,
+            "y": 580.0
+          },
+          {
+            "x": 150.0,
+            "y": 580.0
+          },
+          {
+            "x": 150.0,
+            "y": 590.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#130",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 340.0
+          },
+          {
+            "x": 205.0,
+            "y": 425.0
+          },
+          {
+            "x": 145.0,
+            "y": 425.0
+          },
+          {
+            "x": 145.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#131",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 350.0
+          },
+          {
+            "x": 200.0,
+            "y": 420.0
+          },
+          {
+            "x": 140.0,
+            "y": 420.0
+          },
+          {
+            "x": 140.0,
+            "y": 460.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#136",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 470.0
+          },
+          {
+            "x": 195.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 620.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 590.0
+          },
+          {
+            "x": 210.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 740.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#134",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 450.0
+          },
+          {
+            "x": 205.0,
+            "y": 575.0
+          },
+          {
+            "x": 145.0,
+            "y": 575.0
+          },
+          {
+            "x": 145.0,
+            "y": 600.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#135",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 460.0
+          },
+          {
+            "x": 200.0,
+            "y": 570.0
+          },
+          {
+            "x": 140.0,
+            "y": 570.0
+          },
+          {
+            "x": 140.0,
+            "y": 610.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#61",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#60",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#63",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#138",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 600.0
+          },
+          {
+            "x": 205.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#62",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#139",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 610.0
+          },
+          {
+            "x": 200.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 760.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "D1"
+        },
+        "name": "unnamedWire#65",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "name": "unnamedWire#64",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "D3"
+        },
+        "name": "unnamedWire#67",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "D2"
+        },
+        "name": "unnamedWire#66",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#69",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 950.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#68",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#121",
+        "path": [
+          {
+            "x": 305.0,
+            "y": 640.0
+          },
+          {
+            "x": 305.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#122",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 650.0
+          },
+          {
+            "x": 300.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 800.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#120",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 520.0
+          },
+          {
+            "x": 290.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
+        },
+        "name": "unnamedWire#125",
+        "path": [
+          {
+            "x": 330.0,
+            "y": 790.0
+          },
+          {
+            "x": 330.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
+        },
+        "name": "unnamedWire#126",
+        "path": [
+          {
+            "x": 335.0,
+            "y": 800.0
+          },
+          {
+            "x": 335.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#70",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 1050.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#123",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 660.0
+          },
+          {
+            "x": 295.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 810.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#124",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 670.0
+          },
+          {
+            "x": 290.0,
+            "y": 730.0
+          },
+          {
+            "x": 230.0,
+            "y": 730.0
+          },
+          {
+            "x": 230.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "name": "unnamedWire#72",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 1250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#129",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 330.0
+          },
+          {
+            "x": 210.0,
+            "y": 430.0
+          },
+          {
+            "x": 150.0,
+            "y": 430.0
+          },
+          {
+            "x": 150.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#71",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 1150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#74",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 60.0
+          },
+          {
+            "x": 130.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
+        },
+        "name": "unnamedWire#127",
+        "path": [
+          {
+            "x": 340.0,
+            "y": 810.0
+          },
+          {
+            "x": 340.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 135.0,
+            "y": 50.0
+          },
+          {
+            "x": 135.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
+        },
+        "name": "unnamedWire#128",
+        "path": [
+          {
+            "x": 345.0,
+            "y": 820.0
+          },
+          {
+            "x": 345.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#76",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 80.0
+          },
+          {
+            "x": 120.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#75",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 70.0
+          },
+          {
+            "x": 125.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 225.0,
+            "y": 570.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#77",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 420.0
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIram4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
+  "highLevelStateHandlerParams": {
+    "subcomponentHighLevelStates": {
+      "c00": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#0"
+        }
+      },
+      "c11": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#3"
+        }
+      },
+      "c10": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#2"
+        }
+      },
+      "c01": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#1"
+        }
+      },
+      "c1000": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#0",
+          "prefix": "c10"
+        }
+      },
+      "c1011": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#3",
+          "prefix": "c10"
+        }
+      },
+      "c1110": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#2",
+          "prefix": "c11"
+        }
+      },
+      "c1001": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#1",
+          "prefix": "c10"
+        }
+      },
+      "c1100": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#0",
+          "prefix": "c11"
+        }
+      },
+      "c1111": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#3",
+          "prefix": "c11"
+        }
+      },
+      "c0000": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#0",
+          "prefix": "c00"
+        }
+      },
+      "c0011": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#3",
+          "prefix": "c00"
+        }
+      },
+      "c0110": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#2",
+          "prefix": "c01"
+        }
+      },
+      "c0010": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#2",
+          "prefix": "c00"
+        }
+      },
+      "c1010": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#2",
+          "prefix": "c10"
+        }
+      },
+      "c0101": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#1",
+          "prefix": "c01"
+        }
+      },
+      "c0001": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#1",
+          "prefix": "c00"
+        }
+      },
+      "c0100": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#0",
+          "prefix": "c01"
+        }
+      },
+      "c0111": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#3",
+          "prefix": "c01"
+        }
+      },
+      "c1101": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
+        "params": {
+          "delegateTarget": "GUIram2#1",
+          "prefix": "c11"
+        }
+      }
+    },
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
+        "params": {
+          "vectorPartTargets": [
+            "c11.q",
+            "c10.q",
+            "c01.q",
+            "c00.q"
+          ],
+          "vectorPartLengthes": [
+            16,
+            16,
+            16,
+            16
+          ]
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIsel2_4.json b/net.mograsim.logic.model.editor/components/GUIsel2_4.json
new file mode 100644 (file)
index 0000000..1693ebf
--- /dev/null
@@ -0,0 +1,847 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 100.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "SA",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "SB",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "B1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "B3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 95.0
+      },
+      "name": "B4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 20.0,
+          "y": 52.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 20.0,
+          "y": 152.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 20.0,
+          "y": 102.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
+        "pos": {
+          "x": 65.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 65.0,
+          "y": 52.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 6.5,
+          "y": 66.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 6.5,
+          "y": 16.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 4.0,
+          "y": 41.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 6.5,
+          "y": 116.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 4.0,
+          "y": 141.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 4.0,
+          "y": 91.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
+        "pos": {
+          "x": 65.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 65.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 20.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
+        "pos": {
+          "x": 20.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 20.0,
+          "y": 177.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 20.0,
+          "y": 127.5
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#13"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#16"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 167.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#17"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#19"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 192.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#20"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 37.5
+          },
+          {
+            "x": 45.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 42.5,
+            "y": 12.5
+          },
+          {
+            "x": 42.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 87.5
+          },
+          {
+            "x": 50.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 47.5,
+            "y": 62.5
+          },
+          {
+            "x": 47.5,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 137.5
+          },
+          {
+            "x": 55.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#26",
+        "path": [
+          {
+            "x": 52.5,
+            "y": 112.5
+          },
+          {
+            "x": 52.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 57.5,
+            "y": 162.5
+          },
+          {
+            "x": 57.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SB"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#9"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SA"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#8"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 237.5
+          },
+          {
+            "x": 10.0,
+            "y": 182.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 212.5
+          },
+          {
+            "x": 15.0,
+            "y": 132.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 87.5
+          },
+          {
+            "x": 17.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 62.5
+          },
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 12.5,
+            "y": 187.5
+          },
+          {
+            "x": 12.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 162.5
+          },
+          {
+            "x": 10.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#31",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 137.5
+          },
+          {
+            "x": 17.5,
+            "y": 157.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 112.5
+          },
+          {
+            "x": 17.5,
+            "y": 107.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIsel2_4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIsel3_4.json b/net.mograsim.logic.model.editor/components/GUIsel3_4.json
new file mode 100644 (file)
index 0000000..cb7c3b4
--- /dev/null
@@ -0,0 +1,916 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 150.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "SA",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 115.0
+      },
+      "name": "C1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "SB",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 125.0
+      },
+      "name": "C2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "SC",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "B2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 135.0
+      },
+      "name": "C3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 95.0
+      },
+      "name": "B3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 145.0
+      },
+      "name": "C4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 105.0
+      },
+      "name": "B4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "Y2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 50.0,
+          "y": 620.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 50.0,
+          "y": 570.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 50.0,
+          "y": 720.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 50.0,
+          "y": 670.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUInot4",
+        "name": "GUInot4#0",
+        "pos": {
+          "x": 75.0,
+          "y": 250.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 29.0,
+          "y": 634.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 29.0,
+          "y": 584.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 29.0,
+          "y": 684.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 152.5,
+          "y": 65.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0",
+        "pos": {
+          "x": 35.0,
+          "y": 250.0
+        }
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
+        "pos": {
+          "x": 152.5,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 152.5,
+          "y": 165.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 152.5,
+          "y": 115.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SC"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#36",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#17",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#21",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 735.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C3"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C2"
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#22",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUInot4#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 255.0
+          },
+          {
+            "x": 115.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C4"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUInot4#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 275.0
+          },
+          {
+            "x": 125.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUInot4#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#26",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 265.0
+          },
+          {
+            "x": 120.0,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 135.0,
+            "y": 580.0
+          },
+          {
+            "x": 135.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUInot4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 285.0
+          },
+          {
+            "x": 130.0,
+            "y": 170.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 525.0
+          },
+          {
+            "x": 25.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 475.0
+          },
+          {
+            "x": 20.0,
+            "y": 335.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B2"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 425.0
+          },
+          {
+            "x": 15.0,
+            "y": 325.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 375.0
+          },
+          {
+            "x": 10.0,
+            "y": 315.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SB"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 75.0
+          },
+          {
+            "x": 20.0,
+            "y": 265.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SA"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 25.0
+          },
+          {
+            "x": 25.0,
+            "y": 255.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 630.0
+          },
+          {
+            "x": 140.0,
+            "y": 80.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 325.0
+          },
+          {
+            "x": 5.0,
+            "y": 305.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#32",
+        "path": [
+          {
+            "x": 150.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 275.0
+          },
+          {
+            "x": 5.0,
+            "y": 295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 680.0
+          },
+          {
+            "x": 145.0,
+            "y": 130.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 225.0
+          },
+          {
+            "x": 10.0,
+            "y": 285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 275.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIsel3_4",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/GUIxor.json b/net.mograsim.logic.model.editor/components/GUIxor.json
new file mode 100644 (file)
index 0000000..a15e5df
--- /dev/null
@@ -0,0 +1,280 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 20.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "A",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "B",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 35.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 7.5,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 62.5,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 35.0,
+          "y": 27.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 4.0,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 29.0,
+          "y": 24.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#11"
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIxor",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUFuncDecode.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUFuncDecode.json
new file mode 100644 (file)
index 0000000..a575c5c
--- /dev/null
@@ -0,0 +1,714 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 60.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "SBE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "FN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "SN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "I5",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "L",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 55.0
+      },
+      "name": "RN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "CinE",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 15.0,
+          "y": 50.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUInand3",
+        "name": "GUInand3#0",
+        "pos": {
+          "x": 55.0,
+          "y": 10.0
+        }
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 15.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#0",
+        "pos": {
+          "x": 100.0,
+          "y": 135.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 4.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 4.0,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 9.0,
+          "y": 59.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 4.0,
+          "y": 44.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 9.0,
+          "y": 64.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 9.0,
+          "y": 54.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 49.0,
+          "y": 99.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 9.0,
+          "y": 84.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 39.0,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 49.0,
+          "y": 74.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 39.0,
+          "y": 34.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
+        "pos": {
+          "x": 100.0,
+          "y": 50.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 105.0
+          },
+          {
+            "x": 135.0,
+            "y": 105.0
+          },
+          {
+            "x": 135.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 220.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUInand3#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#19",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#21",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#20",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 5.0
+          },
+          {
+            "x": 115.0,
+            "y": 5.0
+          },
+          {
+            "x": 115.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUInand3#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUInand3#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#27"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#28"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUInand3#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "L"
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 45.0
+          },
+          {
+            "x": 45.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "SBE"
+        },
+        "name": "unnamedWire#31",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIAm2901ALUFuncDecode",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclDecode.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclDecode.json
new file mode 100644 (file)
index 0000000..c6f61c4
--- /dev/null
@@ -0,0 +1,1521 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 120.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "R2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 105.0
+      },
+      "name": "S3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "R3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 115.0
+      },
+      "name": "S4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "R4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 55.0
+      },
+      "name": "OVR",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "Cn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "F1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "I5",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "F2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "F3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "F4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "Cn+4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "S1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "R1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 95.0
+      },
+      "name": "S2",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "pos": {
+          "x": 34.0,
+          "y": 354.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "pos": {
+          "x": 34.0,
+          "y": 254.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
+        "pos": {
+          "x": 36.5,
+          "y": 264.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "pos": {
+          "x": 36.5,
+          "y": 164.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "pos": {
+          "x": 84.0,
+          "y": 374.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
+        "pos": {
+          "x": 36.5,
+          "y": 364.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIAm2901ALUFuncDecode",
+        "name": "GUIAm2901ALUFuncDecode#0",
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#0",
+        "pos": {
+          "x": 45.0,
+          "y": 80.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
+        "pos": {
+          "x": 84.0,
+          "y": 384.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#0",
+        "pos": {
+          "x": 95.0,
+          "y": 400.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 194.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 26.5,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 24.0,
+          "y": 294.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 26.5,
+          "y": 304.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 26.5,
+          "y": 204.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#1",
+        "pos": {
+          "x": 45.0,
+          "y": 180.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 29.0,
+          "y": 224.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#2",
+        "pos": {
+          "x": 45.0,
+          "y": 280.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 29.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#3",
+        "pos": {
+          "x": 45.0,
+          "y": 380.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 31.5,
+          "y": 144.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 29.0,
+          "y": 324.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 31.5,
+          "y": 244.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
+        "pos": {
+          "x": 34.0,
+          "y": 154.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 31.5,
+          "y": 344.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#36",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "L"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 67.5,
+            "y": 17.5
+          },
+          {
+            "x": 67.5,
+            "y": 75.0
+          },
+          {
+            "x": 37.5,
+            "y": 75.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 455.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "name": "unnamedWire#39",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "L"
+        },
+        "name": "unnamedWire#41",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "name": "unnamedWire#40",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "L"
+        },
+        "name": "unnamedWire#43",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "L"
+        },
+        "name": "unnamedWire#42",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "R1"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "R"
+        },
+        "name": "unnamedWire#45",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 180.0
+          },
+          {
+            "x": 10.0,
+            "y": 115.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "L"
+        },
+        "name": "unnamedWire#44",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 465.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "R3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "R"
+        },
+        "name": "unnamedWire#47",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 260.0
+          },
+          {
+            "x": 10.0,
+            "y": 315.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "R2"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "R"
+        },
+        "name": "unnamedWire#46",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 220.0
+          },
+          {
+            "x": 10.0,
+            "y": 215.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "S"
+        },
+        "name": "unnamedWire#49",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 340.0
+          },
+          {
+            "x": 15.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "R4"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "R"
+        },
+        "name": "unnamedWire#48",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 300.0
+          },
+          {
+            "x": 20.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 395.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I4"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 60.0
+          },
+          {
+            "x": 10.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S2"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "S"
+        },
+        "name": "unnamedWire#50",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 380.0
+          },
+          {
+            "x": 5.0,
+            "y": 235.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I5"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          },
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S4"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "S"
+        },
+        "name": "unnamedWire#52",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 460.0
+          },
+          {
+            "x": 10.0,
+            "y": 435.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "S"
+        },
+        "name": "unnamedWire#51",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 420.0
+          },
+          {
+            "x": 10.0,
+            "y": 335.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "CinE"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 7.5
+          },
+          {
+            "x": 70.0,
+            "y": 77.5
+          },
+          {
+            "x": 27.5,
+            "y": 77.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "Cin"
+        },
+        "name": "unnamedWire#54",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 85.0
+          },
+          {
+            "x": 85.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "Cn"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cin"
+        },
+        "name": "unnamedWire#53",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 140.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SBE"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 62.5,
+            "y": 37.5
+          },
+          {
+            "x": 62.5,
+            "y": 70.0
+          },
+          {
+            "x": 25.0,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "name": "unnamedWire#56",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 27.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "Cin"
+        },
+        "name": "unnamedWire#55",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 185.0
+          },
+          {
+            "x": 85.0,
+            "y": 275.0
+          },
+          {
+            "x": 40.0,
+            "y": 275.0
+          },
+          {
+            "x": 40.0,
+            "y": 285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "name": "unnamedWire#58",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "Cin"
+        },
+        "name": "unnamedWire#57",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 375.0
+          },
+          {
+            "x": 40.0,
+            "y": 385.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 27.5,
+            "y": 405.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "F"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F1"
+        },
+        "name": "unnamedWire#59",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 95.0
+          },
+          {
+            "x": 90.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "RN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 57.5,
+            "y": 57.5
+          },
+          {
+            "x": 57.5,
+            "y": 65.0
+          },
+          {
+            "x": 30.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "F"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F3"
+        },
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 295.0
+          },
+          {
+            "x": 100.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "F"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F2"
+        },
+        "name": "unnamedWire#60",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 195.0
+          },
+          {
+            "x": 95.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIxor#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#63",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 375.0
+          },
+          {
+            "x": 90.0,
+            "y": 405.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "F"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F4"
+        },
+        "name": "unnamedWire#62",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 395.0
+          },
+          {
+            "x": 105.0,
+            "y": 140.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#21",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
+        },
+        "name": "unnamedWire#65",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 385.0
+          },
+          {
+            "x": 130.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#20",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIxor#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#64",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 425.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#22",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIxor#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "OVR"
+        },
+        "name": "unnamedWire#66"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 27.5
+          },
+          {
+            "x": 65.0,
+            "y": 72.5
+          },
+          {
+            "x": 32.5,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#28",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 445.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 47.5
+          },
+          {
+            "x": 60.0,
+            "y": 67.5
+          },
+          {
+            "x": 35.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIAm2901ALUInclDecode",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
new file mode 100644 (file)
index 0000000..12e2850
--- /dev/null
@@ -0,0 +1,1364 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 230.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 195.0
+      },
+      "name": "Q1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 205.0
+      },
+      "name": "Q2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 215.0
+      },
+      "name": "Q3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 225.0
+      },
+      "name": "Q4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "I0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "I1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "I2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 55.0
+      },
+      "name": "OVR",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "Cn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "I5",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 115.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 125.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 135.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 145.0
+      },
+      "name": "A4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "Cn+4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "F1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "F2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "D1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "F3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "D2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "F4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 95.0
+      },
+      "name": "D3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 155.0
+      },
+      "name": "B1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 105.0
+      },
+      "name": "D4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 165.0
+      },
+      "name": "B2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 175.0
+      },
+      "name": "B3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 185.0
+      },
+      "name": "B4",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
+        "pos": {
+          "x": 45.0,
+          "y": 575.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 499.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 9.0,
+          "y": 459.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIAm2901ALUInclDecode",
+        "name": "GUIAm2901ALUInclDecode#0",
+        "pos": {
+          "x": 60.0,
+          "y": 15.0
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 24.0,
+          "y": 579.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 19.0,
+          "y": 539.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0",
+        "pos": {
+          "x": 45.0,
+          "y": 365.0
+        }
+      },
+      {
+        "id": "GUIAm2901SourceDecode",
+        "name": "GUIAm2901SourceDecode#0",
+        "pos": {
+          "x": 15.0,
+          "y": 165.0
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R1"
+        },
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 82.5,
+            "y": 370.0
+          },
+          {
+            "x": 82.5,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RD"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 210.0
+          },
+          {
+            "x": 55.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R3"
+        },
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 87.5,
+            "y": 390.0
+          },
+          {
+            "x": 87.5,
+            "y": 157.5
+          },
+          {
+            "x": 25.0,
+            "y": 157.5
+          },
+          {
+            "x": 25.0,
+            "y": 80.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R2"
+        },
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 380.0
+          },
+          {
+            "x": 85.0,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R4"
+        },
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 400.0
+          },
+          {
+            "x": 90.0,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 90.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S2"
+        },
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 590.0
+          },
+          {
+            "x": 95.0,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 110.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 92.5,
+            "y": 580.0
+          },
+          {
+            "x": 92.5,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S4"
+        },
+        "name": "unnamedWire#43",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 610.0
+          },
+          {
+            "x": 100.0,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 130.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S3"
+        },
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 97.5,
+            "y": 600.0
+          },
+          {
+            "x": 97.5,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F2"
+        },
+        "name": "unnamedWire#45",
+        "path": [
+          {
+            "x": 135.0,
+            "y": 30.0
+          },
+          {
+            "x": 135.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F1"
+        },
+        "name": "unnamedWire#44",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F4"
+        },
+        "name": "unnamedWire#47",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 50.0
+          },
+          {
+            "x": 125.0,
+            "y": 140.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F3"
+        },
+        "name": "unnamedWire#46",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 40.0
+          },
+          {
+            "x": 130.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "OVR"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "OVR"
+        },
+        "name": "unnamedWire#49",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 70.0
+          },
+          {
+            "x": 115.0,
+            "y": 220.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn+4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
+        },
+        "name": "unnamedWire#48",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 60.0
+          },
+          {
+            "x": 120.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 380.0
+          },
+          {
+            "x": 5.0,
+            "y": 410.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 340.0
+          },
+          {
+            "x": 10.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 300.0
+          },
+          {
+            "x": 15.0,
+            "y": 390.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "Cn"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 260.0
+          },
+          {
+            "x": 10.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I4"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 60.0
+          },
+          {
+            "x": 5.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I5"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 220.0
+          },
+          {
+            "x": 5.0,
+            "y": 190.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I2"
+        },
+        "pin2": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I2"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 140.0
+          },
+          {
+            "x": 5.0,
+            "y": 170.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 40.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B2"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 430.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 460.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#19",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 610.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 630.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 620.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 620.0
+          },
+          {
+            "x": 5.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 640.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
+        },
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 700.0
+          },
+          {
+            "x": 5.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 780.0
+          },
+          {
+            "x": 15.0,
+            "y": 690.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
+        },
+        "name": "unnamedWire#26",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 740.0
+          },
+          {
+            "x": 10.0,
+            "y": 680.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 860.0
+          },
+          {
+            "x": 25.0,
+            "y": 710.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 820.0
+          },
+          {
+            "x": 20.0,
+            "y": 700.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 900.0
+          },
+          {
+            "x": 30.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RA"
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
+        },
+        "name": "unnamedWire#32",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 180.0
+          },
+          {
+            "x": 70.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 380.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SQ"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 170.0
+          },
+          {
+            "x": 75.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 600.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SA"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 200.0
+          },
+          {
+            "x": 60.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 580.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SB"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
+        },
+        "name": "unnamedWire#33",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 190.0
+          },
+          {
+            "x": 65.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 590.0
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUOneBit.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUOneBit.json
new file mode 100644 (file)
index 0000000..5abfdb5
--- /dev/null
@@ -0,0 +1,544 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 90.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "R",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "S",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "F",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "FN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "Cin",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "SN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Cout",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "RN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "L",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "CinE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "CoutE",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 60.0,
+          "y": 55.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 54.0,
+          "y": 69.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 49.0,
+          "y": 59.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#0",
+        "pos": {
+          "x": 90.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#0",
+        "pos": {
+          "x": 10.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#1",
+        "pos": {
+          "x": 10.0,
+          "y": 290.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#2",
+        "pos": {
+          "x": 135.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIfulladder",
+        "name": "GUIfulladder#0",
+        "pos": {
+          "x": 60.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#0",
+        "pos": {
+          "x": 10.0,
+          "y": 190.0
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "GUIand#1",
+        "pos": {
+          "x": 135.0,
+          "y": 20.0
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIfulladder#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 45.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIxor#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIfulladder#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 25.0
+          },
+          {
+            "x": 100.0,
+            "y": 65.0
+          },
+          {
+            "x": 85.0,
+            "y": 65.0
+          },
+          {
+            "x": 85.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 82.5,
+            "y": 65.0
+          },
+          {
+            "x": 82.5,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIfulladder#0",
+          "pinName": "Z"
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#17",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUImux1#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIxor#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIfulladder#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "L"
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 87.5,
+            "y": 425.0
+          },
+          {
+            "x": 87.5,
+            "y": 75.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compName": "GUIxor#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 375.0
+          },
+          {
+            "x": 130.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compName": "GUIxor#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "CoutE"
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 75.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "Cin"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S"
+        },
+        "pin2": {
+          "compName": "GUIxor#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#5"
+      },
+      {
+        "pin1": {
+          "compName": "GUIxor#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIxor#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "F"
+        },
+        "name": "unnamedWire#21",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "RN"
+        },
+        "pin2": {
+          "compName": "GUIxor#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4"
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Cout"
+        },
+        "name": "unnamedWire#20",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "R"
+        },
+        "pin2": {
+          "compName": "GUIxor#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "CinE"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 125.0
+          },
+          {
+            "x": 7.5,
+            "y": 35.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIfulladder#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 35.0
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIAm2901ALUOneBit",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901DestDecode.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901DestDecode.json
new file mode 100644 (file)
index 0000000..150c099
--- /dev/null
@@ -0,0 +1,1084 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 60.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "LSH",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "NSH",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "RSH",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I6",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "YF",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I7",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "RAMWE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 55.0
+      },
+      "name": "QWE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "I8",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 15.0,
+          "y": 50.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "pos": {
+          "x": 74.0,
+          "y": 159.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 15.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "pos": {
+          "x": 74.0,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 15.0,
+          "y": 150.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 15.0,
+          "y": 90.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "pos": {
+          "x": 109.0,
+          "y": 214.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 4.0,
+          "y": 14.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 4.0,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 9.0,
+          "y": 59.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 4.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 9.0,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 9.0,
+          "y": 64.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 39.0,
+          "y": 59.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 4.0,
+          "y": 154.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 44.0,
+          "y": 54.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 44.0,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 39.0,
+          "y": 134.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
+        "pos": {
+          "x": 74.0,
+          "y": 99.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 74.0,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#12",
+        "pos": {
+          "x": 115.0,
+          "y": 210.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
+        "pos": {
+          "x": 110.0,
+          "y": 105.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 80.0,
+          "y": 145.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
+        "pos": {
+          "x": 80.0,
+          "y": 90.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 80.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 50.0,
+          "y": 50.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
+        "pos": {
+          "x": 50.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 50.0,
+          "y": 130.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 50.0,
+          "y": 90.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "LSH"
+        },
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 140.0
+          },
+          {
+            "x": 125.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#16",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 5.0
+          },
+          {
+            "x": 40.0,
+            "y": 5.0
+          },
+          {
+            "x": 40.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#39",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#41"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "RSH"
+        },
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 20.0
+          },
+          {
+            "x": 130.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#21",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "name": "unnamedWire#43",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "NSH"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 5.0
+          },
+          {
+            "x": 135.0,
+            "y": 5.0
+          },
+          {
+            "x": 135.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#12",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#45",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 225.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#22",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#12",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#44",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QWE"
+        },
+        "name": "unnamedWire#47",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 115.0
+          },
+          {
+            "x": 45.0,
+            "y": 115.0
+          },
+          {
+            "x": 45.0,
+            "y": 105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "YF"
+        },
+        "name": "unnamedWire#46"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "name": "unnamedWire#28",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I8"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I7"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "RAMWE"
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 60.0
+          },
+          {
+            "x": 125.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I6"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#33",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 95.0
+          }
+        ]
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "GUIAm2901DestDecode",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901SourceDecode.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901SourceDecode.json
new file mode 100644 (file)
index 0000000..8c086bf
--- /dev/null
@@ -0,0 +1,1128 @@
+mograsim version: 0.1.3
+{
+  "width": 35.0,
+  "height": 50.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "RD",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "I2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "SQ",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "SA",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 15.0
+      },
+      "name": "RA",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "SB",
+      "logicWidth": 1
+    }
+  ],
+  "submodel": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 10.0,
+          "y": 50.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "pos": {
+          "x": 94.0,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "pos": {
+          "x": 64.0,
+          "y": 139.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
+        "pos": {
+          "x": 40.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
+        "pos": {
+          "x": 10.0,
+          "y": 90.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "pos": {
+          "x": 94.0,
+          "y": 179.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 6.5,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 4.0,
+          "y": 19.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 6.5,
+          "y": 59.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 4.0,
+          "y": 144.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 6.5,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 6.5,
+          "y": 99.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 34.0,
+          "y": 59.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 31.5,
+          "y": 54.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 34.0,
+          "y": 134.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 34.0,
+          "y": 64.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 36.5,
+          "y": 99.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
+        "pos": {
+          "x": 64.0,
+          "y": 99.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 64.0,
+          "y": 59.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#12",
+        "pos": {
+          "x": 70.0,
+          "y": 170.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
+        "pos": {
+          "x": 70.0,
+          "y": 130.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#14",
+        "pos": {
+          "x": 100.0,
+          "y": 170.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#13",
+        "pos": {
+          "x": 100.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 70.0,
+          "y": 90.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
+        "pos": {
+          "x": 70.0,
+          "y": 50.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 70.0,
+          "y": 10.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 40.0,
+          "y": 90.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
+        "pos": {
+          "x": 40.0,
+          "y": 50.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 40.0,
+          "y": 170.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 40.0,
+          "y": 130.0
+        },
+        "params": 1
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#36",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#11",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#12",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#39"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#13",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#40",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "RA"
+        },
+        "name": "unnamedWire#43",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#13",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#45",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "SB"
+        },
+        "name": "unnamedWire#44",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#14",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#47",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 175.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#13",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "SQ"
+        },
+        "name": "unnamedWire#49",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#14",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#48",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#12",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#14",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "RD"
+        },
+        "name": "unnamedWire#50",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#17",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#21",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#22",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 175.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#6",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#32",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#10",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      }
+    ]
+  },
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+  "symbolRendererParams": {
+    "centerText": "Am2901SourceDecode",
+    "centerTextHeight": 5.0,
+    "horizontalComponentCenter": 17.5,
+    "pinLabelHeight": 3.5,
+    "pinLabelMargin": 0.5
+  },
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+}
\ No newline at end of file