Reorganized location of .json components
authorFabian Stemmler <stemmler@in.tum.de>
Mon, 24 Jun 2019 15:46:14 +0000 (17:46 +0200)
committerFabian Stemmler <stemmler@in.tum.de>
Mon, 24 Jun 2019 15:46:14 +0000 (17:46 +0200)
64 files changed:
net.mograsim.logic.ui.am2900/components/GUI_rsLatch.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIand.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIand41.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIandor414.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIdemux2.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIdff.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIdlatch.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIdlatch4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIfulladder.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIhalfadder.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUImux1.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUImux1_4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUInand3.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUInot4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIor4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIor_4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIram2.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIram4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIsel2_4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIsel3_4.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/GUIxor.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUFuncDecode.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclDecode.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUOneBit.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901DestDecode.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901QReg.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901SourceDecode.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/components/mapping.json [new file with mode: 0644]
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/examples/JsonExample.java
net.mograsim.logic.ui/components/GUI_rsLatch.json [deleted file]
net.mograsim.logic.ui/components/GUIand.json [deleted file]
net.mograsim.logic.ui/components/GUIand41.json [deleted file]
net.mograsim.logic.ui/components/GUIandor414.json [deleted file]
net.mograsim.logic.ui/components/GUIdemux2.json [deleted file]
net.mograsim.logic.ui/components/GUIdff.json [deleted file]
net.mograsim.logic.ui/components/GUIdlatch.json [deleted file]
net.mograsim.logic.ui/components/GUIdlatch4.json [deleted file]
net.mograsim.logic.ui/components/GUIfulladder.json [deleted file]
net.mograsim.logic.ui/components/GUIhalfadder.json [deleted file]
net.mograsim.logic.ui/components/GUImux1.json [deleted file]
net.mograsim.logic.ui/components/GUImux1_4.json [deleted file]
net.mograsim.logic.ui/components/GUInand3.json [deleted file]
net.mograsim.logic.ui/components/GUInot4.json [deleted file]
net.mograsim.logic.ui/components/GUIor4.json [deleted file]
net.mograsim.logic.ui/components/GUIor_4.json [deleted file]
net.mograsim.logic.ui/components/GUIram2.json [deleted file]
net.mograsim.logic.ui/components/GUIram4.json [deleted file]
net.mograsim.logic.ui/components/GUIsel2_4.json [deleted file]
net.mograsim.logic.ui/components/GUIsel3_4.json [deleted file]
net.mograsim.logic.ui/components/GUIxor.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901ALUFuncDecode.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901ALUInclDecode.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901ALUOneBit.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901DestDecode.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901QReg.json [deleted file]
net.mograsim.logic.ui/components/am2901/GUIAm2901SourceDecode.json [deleted file]
net.mograsim.logic.ui/components/mapping.json [deleted file]
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUIComponentCreator.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUICustomComponentCreator.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/Version.java

diff --git a/net.mograsim.logic.ui.am2900/components/GUI_rsLatch.json b/net.mograsim.logic.ui.am2900/components/GUI_rsLatch.json
new file mode 100644 (file)
index 0000000..186aac3
--- /dev/null
@@ -0,0 +1,232 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUI_rsLatch",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 12.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 16.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 64.0,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "_S"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "_R"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 37.5
+          },
+          {
+            "x": 35.0,
+            "y": 27.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "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": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "_Q"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "_S",
+      "_R"
+    ],
+    "label": "_rsLatch",
+    "logic_width": 1,
+    "output_count": [
+      "Q",
+      "_Q"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIand.json b/net.mograsim.logic.ui.am2900/components/GUIand.json
new file mode 100644 (file)
index 0000000..2ea3683
--- /dev/null
@@ -0,0 +1,154 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIand",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A",
+      "B"
+    ],
+    "label": "GUIand",
+    "logic_width": 1,
+    "output_count": [
+      "Y"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIand41.json b/net.mograsim.logic.ui.am2900/components/GUIand41.json
new file mode 100644 (file)
index 0000000..7b2757c
--- /dev/null
@@ -0,0 +1,342 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIand41",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 32.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 57.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 82.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 71.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 96.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 112.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A1",
+      "A2",
+      "A3",
+      "A4",
+      "B"
+    ],
+    "label": "GUIand41",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIandor414.json b/net.mograsim.logic.ui.am2900/components/GUIandor414.json
new file mode 100644 (file)
index 0000000..d581e8f
--- /dev/null
@@ -0,0 +1,502 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIandor414",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 137.5
+        },
+        "name": "GUIand41",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 37.5
+        },
+        "name": "GUIor_4",
+        "params": {}
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 112.5
+          },
+          {
+            "x": 10.0,
+            "y": 142.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 137.5
+          },
+          {
+            "x": 5.0,
+            "y": 152.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 187.5
+          },
+          {
+            "x": 5.0,
+            "y": 172.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 212.5
+          },
+          {
+            "x": 10.0,
+            "y": 182.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 12.5
+          },
+          {
+            "x": 10.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 37.5
+          },
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C3"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C4"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B1"
+        },
+        "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": {
+          "compId": 1,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B2"
+        },
+        "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": {
+          "compId": 1,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B3"
+        },
+        "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
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B4"
+        },
+        "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": {
+          "compId": 2,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 42.5
+          },
+          {
+            "x": 75.0,
+            "y": 12.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        },
+        "path": [
+          {
+            "x": 80.0,
+            "y": 52.5
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        },
+        "path": [
+          {
+            "x": 80.0,
+            "y": 72.5
+          },
+          {
+            "x": 80.0,
+            "y": 87.5
+          }
+        ]
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "C1",
+      "C2",
+      "C3",
+      "C4",
+      "A1",
+      "A2",
+      "A3",
+      "A4",
+      "B"
+    ],
+    "label": "GUIandor414",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIdemux2.json b/net.mograsim.logic.ui.am2900/components/GUIdemux2.json
new file mode 100644 (file)
index 0000000..d6b01c6
--- /dev/null
@@ -0,0 +1,529 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIdemux2",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 2.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 27.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 52.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 77.5
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 16.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 36.5,
+          "y": 61.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 41.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 66.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 62.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 67.5
+          },
+          {
+            "x": 32.5,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 37.5,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 37.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y00"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y01"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y10"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y11"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "S0",
+      "S1"
+    ],
+    "label": "GUIdemux2",
+    "logic_width": 1,
+    "output_count": [
+      "Y00",
+      "Y01",
+      "Y10",
+      "Y11"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIdff.json b/net.mograsim.logic.ui.am2900/components/GUIdff.json
new file mode 100644 (file)
index 0000000..5c0c80a
--- /dev/null
@@ -0,0 +1,339 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIdff",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 10.0
+        },
+        "name": "GUI_rsLatch",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 40.0
+        },
+        "name": "GUInand3",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 120.0,
+          "y": 60.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 120.0,
+          "y": 30.0
+        },
+        "name": "GUI_rsLatch",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 19.0,
+          "y": 64.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 99.0,
+          "y": 34.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 99.0,
+          "y": 44.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "_R"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 145.0,
+            "y": 70.0
+          },
+          {
+            "x": 145.0,
+            "y": 85.0
+          },
+          {
+            "x": 20.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "_S"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "C"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 100.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 35.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "_S"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "_R"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 100.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "_Q"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "C",
+      "D"
+    ],
+    "label": "GUIdff",
+    "logic_width": 1,
+    "output_count": [
+      "Q",
+      "_Q"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIdlatch.json b/net.mograsim.logic.ui.am2900/components/GUIdlatch.json
new file mode 100644 (file)
index 0000000..6811c4d
--- /dev/null
@@ -0,0 +1,248 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIdlatch",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 7.5
+        },
+        "name": "GUI_rsLatch",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "E"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 25.0
+          },
+          {
+            "x": 10.0,
+            "y": 25.0
+          },
+          {
+            "x": 10.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "_S"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "_R"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "_Q"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "D",
+      "E"
+    ],
+    "label": "GUIdlatch",
+    "logic_width": 1,
+    "output_count": [
+      "Q",
+      "_Q"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIdlatch4.json b/net.mograsim.logic.ui.am2900/components/GUIdlatch4.json
new file mode 100644 (file)
index 0000000..e6316c3
--- /dev/null
@@ -0,0 +1,342 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIdlatch4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        },
+        "name": "GUIdlatch",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 32.5
+        },
+        "name": "GUIdlatch",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 57.5
+        },
+        "name": "GUIdlatch",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 82.5
+        },
+        "name": "GUIdlatch",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 46.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 71.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 96.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 112.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "E"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "E"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "E"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "E"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "D"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "D"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "D"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q4"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "D1",
+      "D2",
+      "D3",
+      "D4",
+      "C"
+    ],
+    "label": "GUIdlatch4",
+    "logic_width": 1,
+    "output_count": [
+      "Q1",
+      "Q2",
+      "Q3",
+      "Q4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIfulladder.json b/net.mograsim.logic.ui.am2900/components/GUIfulladder.json
new file mode 100644 (file)
index 0000000..259ba27
--- /dev/null
@@ -0,0 +1,196 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIfulladder",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 5.0,
+          "y": 40.0
+        },
+        "name": "GUIhalfadder",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 7.5
+        },
+        "name": "GUIhalfadder",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 57.5,
+          "y": 40.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "_Z"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "_Z"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Z"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A",
+      "B",
+      "C"
+    ],
+    "label": "GUIfulladder",
+    "logic_width": 1,
+    "output_count": [
+      "Y",
+      "Z"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIhalfadder.json b/net.mograsim.logic.ui.am2900/components/GUIhalfadder.json
new file mode 100644 (file)
index 0000000..5e1371e
--- /dev/null
@@ -0,0 +1,330 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIhalfadder",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "_Z"
+        },
+        "path": [
+          {
+            "x": 80.0,
+            "y": 25.0
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 62.5,
+            "y": 12.5
+          },
+          {
+            "x": 62.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 62.5,
+            "y": 37.5
+          },
+          {
+            "x": 62.5,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A",
+      "B"
+    ],
+    "label": "GUIhalfadder",
+    "logic_width": 1,
+    "output_count": [
+      "Y",
+      "_Z"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUImux1.json b/net.mograsim.logic.ui.am2900/components/GUImux1.json
new file mode 100644 (file)
index 0000000..9f373e2
--- /dev/null
@@ -0,0 +1,242 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUImux1",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 22.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 47.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 60.0,
+          "y": 30.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 21.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "S0",
+      "I0",
+      "I1"
+    ],
+    "label": "GUImux1",
+    "logic_width": 1,
+    "output_count": [
+      "Y"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUImux1_4.json b/net.mograsim.logic.ui.am2900/components/GUImux1_4.json
new file mode 100644 (file)
index 0000000..7d326ba
--- /dev/null
@@ -0,0 +1,486 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUImux1_4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        },
+        "name": "GUImux1",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 42.5
+        },
+        "name": "GUImux1",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 77.5
+        },
+        "name": "GUImux1",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 112.5
+        },
+        "name": "GUImux1",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 81.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "S0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0_1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I0"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 37.5
+          },
+          {
+            "x": 5.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1_1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 137.5
+          },
+          {
+            "x": 10.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "S0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0_2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I0"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 62.5
+          },
+          {
+            "x": 5.0,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1_2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I1"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 162.5
+          },
+          {
+            "x": 15.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "S0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0_3"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "I0"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "I1"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 187.5
+          },
+          {
+            "x": 20.0,
+            "y": 102.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "S0"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 117.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0_4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "I0"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 112.5
+          },
+          {
+            "x": 5.0,
+            "y": 127.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1_4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "I1"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 212.5
+          },
+          {
+            "x": 25.0,
+            "y": 137.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "S0",
+      "I0_1",
+      "I0_2",
+      "I0_3",
+      "I0_4",
+      "I1_1",
+      "I1_2",
+      "I1_3",
+      "I1_4"
+    ],
+    "label": "GUImux1_4",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUInand3.json b/net.mograsim.logic.ui.am2900/components/GUInand3.json
new file mode 100644 (file)
index 0000000..fe953c3
--- /dev/null
@@ -0,0 +1,214 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUInand3",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 62.5,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 57.5,
+            "y": 25.0
+          },
+          {
+            "x": 57.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 62.5
+          },
+          {
+            "x": 60.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A",
+      "B",
+      "C"
+    ],
+    "label": "GUInand3",
+    "logic_width": 1,
+    "output_count": [
+      "Y"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUInot4.json b/net.mograsim.logic.ui.am2900/components/GUInot4.json
new file mode 100644 (file)
index 0000000..71e414e
--- /dev/null
@@ -0,0 +1,392 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUInot4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 52.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 30.0,
+          "y": 77.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 61.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 86.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A1",
+      "A2",
+      "A3",
+      "A4"
+    ],
+    "label": "GUInot4",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIor4.json b/net.mograsim.logic.ui.am2900/components/GUIor4.json
new file mode 100644 (file)
index 0000000..53da78d
--- /dev/null
@@ -0,0 +1,547 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIor4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 65.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 115.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 165.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 40.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 140.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 110.0,
+          "y": 40.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 110.0,
+          "y": 140.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 140.0,
+          "y": 90.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 74.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 124.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 174.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 104.0,
+          "y": 49.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 104.0,
+          "y": 149.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 170.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 80.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 130.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 105.0,
+            "y": 45.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 105.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 105.0,
+            "y": 145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 105.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A1",
+      "A2",
+      "A3",
+      "A4"
+    ],
+    "label": "GUIor4",
+    "logic_width": 1,
+    "output_count": [
+      "Y"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIor_4.json b/net.mograsim.logic.ui.am2900/components/GUIor_4.json
new file mode 100644 (file)
index 0000000..729cd82
--- /dev/null
@@ -0,0 +1,880 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIor_4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 52.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 77.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 102.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 127.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 152.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 177.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 52.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 77.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 61.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 86.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 111.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 136.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 161.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 186.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 107.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 117.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 132.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 142.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 157.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 167.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 182.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 192.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 12.5
+          },
+          {
+            "x": 40.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 112.5
+          },
+          {
+            "x": 45.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 137.5
+          },
+          {
+            "x": 50.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 62.5
+          },
+          {
+            "x": 40.0,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 162.5
+          },
+          {
+            "x": 55.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 87.5
+          },
+          {
+            "x": 40.0,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A1",
+      "A2",
+      "A3",
+      "A4",
+      "B1",
+      "B2",
+      "B3",
+      "B4"
+    ],
+    "label": "GUIor_4",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIram2.json b/net.mograsim.logic.ui.am2900/components/GUIram2.json
new file mode 100644 (file)
index 0000000..df20ab5
--- /dev/null
@@ -0,0 +1,2880 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIram2",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.1,
+    "subComps": [
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        },
+        "name": "GUIdemux2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        },
+        "name": "GUIdemux2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 130.0,
+          "y": 150.0
+        },
+        "name": "GUIand41",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 325.0
+        },
+        "name": "GUIdlatch4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 475.0
+        },
+        "name": "GUIdlatch4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 625.0
+        },
+        "name": "GUIdlatch4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 775.0
+        },
+        "name": "GUIdlatch4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 235.0,
+          "y": 375.0
+        },
+        "name": "GUIand41",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 235.0,
+          "y": 485.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 235.0,
+          "y": 635.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 235.0,
+          "y": 785.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 135.0,
+          "y": 325.0
+        },
+        "name": "GUIand41",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 135.0,
+          "y": 435.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 135.0,
+          "y": 585.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 135.0,
+          "y": 735.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 109.0,
+          "y": 154.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 104.0,
+          "y": 164.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 99.0,
+          "y": 174.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 94.0,
+          "y": 184.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 549.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 649.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 749.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 809.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 479.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 489.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 499.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 509.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 629.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 639.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 649.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 659.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 129.0,
+          "y": 329.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 124.0,
+          "y": 339.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 119.0,
+          "y": 349.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 114.0,
+          "y": 359.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 129.0,
+          "y": 479.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 124.0,
+          "y": 489.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 119.0,
+          "y": 499.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 114.0,
+          "y": 509.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 129.0,
+          "y": 629.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 124.0,
+          "y": 639.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 119.0,
+          "y": 649.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 114.0,
+          "y": 659.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 129.0,
+          "y": 779.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 124.0,
+          "y": 789.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 119.0,
+          "y": 799.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 114.0,
+          "y": 809.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A0"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "S0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "S1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B0"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "S0"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 250.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "S1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 350.0
+          },
+          {
+            "x": 10.0,
+            "y": 165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "WE"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "C"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "C"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "C"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "C"
+        },
+        "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": {
+          "compId": 0,
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 850.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D1"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 330.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D2"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 340.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D3"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D4"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 360.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D1"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 780.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D2"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D3"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 800.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 44,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 45,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 46,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 47,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 210.0,
+            "y": 50.0
+          },
+          {
+            "x": 210.0,
+            "y": 420.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 205.0,
+            "y": 60.0
+          },
+          {
+            "x": 205.0,
+            "y": 570.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 200.0,
+            "y": 70.0
+          },
+          {
+            "x": 200.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 195.0,
+            "y": 80.0
+          },
+          {
+            "x": 195.0,
+            "y": 870.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 110.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 105.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 100.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 95.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 380.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 390.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 115.0,
+            "y": 410.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 530.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 540.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 115.0,
+            "y": 560.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 680.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 690.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 700.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 115.0,
+            "y": 710.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 44,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 830.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 45,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 840.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 46,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 850.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 47,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 115.0,
+            "y": 860.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 44,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 45,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 46,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 47,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 8,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 8,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 8,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 11,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA1"
+        },
+        "path": [
+          {
+            "x": 300.0,
+            "y": 790.0
+          },
+          {
+            "x": 300.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA2"
+        },
+        "path": [
+          {
+            "x": 305.0,
+            "y": 800.0
+          },
+          {
+            "x": 305.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA3"
+        },
+        "path": [
+          {
+            "x": 310.0,
+            "y": 810.0
+          },
+          {
+            "x": 310.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA4"
+        },
+        "path": [
+          {
+            "x": 315.0,
+            "y": 820.0
+          },
+          {
+            "x": 315.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 12,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 12,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 12,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB1"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB2"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB3"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB4"
+        },
+        "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
+          }
+        ]
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A0",
+      "A1",
+      "B0",
+      "B1",
+      "WE",
+      "D1",
+      "D2",
+      "D3",
+      "D4"
+    ],
+    "label": "GUIram2",
+    "logic_width": 1,
+    "output_count": [
+      "QA1",
+      "QA2",
+      "QA3",
+      "QA4",
+      "QB1",
+      "QB2",
+      "QB3",
+      "QB4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIram4.json b/net.mograsim.logic.ui.am2900/components/GUIram4.json
new file mode 100644 (file)
index 0000000..605b061
--- /dev/null
@@ -0,0 +1,3248 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIram4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.1,
+    "subComps": [
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        },
+        "name": "GUIdemux2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        },
+        "name": "GUIdemux2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 235.0,
+          "y": 150.0
+        },
+        "name": "GUIand41",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 80.0,
+          "y": 330.0
+        },
+        "name": "GUIram2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 80.0,
+          "y": 480.0
+        },
+        "name": "GUIram2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 80.0,
+          "y": 630.0
+        },
+        "name": "GUIram2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 80.0,
+          "y": 780.0
+        },
+        "name": "GUIram2",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 250.0,
+          "y": 375.0
+        },
+        "name": "GUIand41",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 250.0,
+          "y": 485.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 250.0,
+          "y": 635.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 250.0,
+          "y": 785.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 155.0,
+          "y": 325.0
+        },
+        "name": "GUIand41",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 155.0,
+          "y": 435.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 155.0,
+          "y": 585.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 155.0,
+          "y": 735.0
+        },
+        "name": "GUIandor414",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 229.0,
+          "y": 154.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 224.0,
+          "y": 164.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 219.0,
+          "y": 174.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 214.0,
+          "y": 184.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 59.0,
+          "y": 534.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 64.0,
+          "y": 544.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 69.0,
+          "y": 554.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 74.0,
+          "y": 564.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 59.0,
+          "y": 684.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 64.0,
+          "y": 694.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 69.0,
+          "y": 704.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 74.0,
+          "y": 714.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 59.0,
+          "y": 834.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 64.0,
+          "y": 844.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 69.0,
+          "y": 854.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 74.0,
+          "y": 864.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 484.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 494.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 504.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 54.0,
+          "y": 514.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 634.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 644.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 654.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 54.0,
+          "y": 664.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 334.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 349.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 649.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 54.0,
+          "y": 749.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A0"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "S0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "S1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B0"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "S0"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "S1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 550.0
+          },
+          {
+            "x": 10.0,
+            "y": 165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "WE"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 850.0
+          },
+          {
+            "x": 15.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "WE"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "WE"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "WE"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "WE"
+        },
+        "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": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B0"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 355.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 365.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B0"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A0"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 785.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 795.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B0"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 805.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 815.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D1"
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 385.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D2"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 395.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D3"
+        },
+        "path": [
+          {
+            "x": 70.0,
+            "y": 405.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D4"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 950.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 1050.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 70.0,
+            "y": 1150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 1250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y00"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 135.0,
+            "y": 50.0
+          },
+          {
+            "x": 135.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 60.0
+          },
+          {
+            "x": 130.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 70.0
+          },
+          {
+            "x": 125.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 80.0
+          },
+          {
+            "x": 120.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 230.0,
+            "y": 420.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 225.0,
+            "y": 570.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 220.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 215.0,
+            "y": 870.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 375.0
+          },
+          {
+            "x": 140.0,
+            "y": 380.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 385.0
+          },
+          {
+            "x": 140.0,
+            "y": 390.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 395.0
+          },
+          {
+            "x": 140.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 405.0
+          },
+          {
+            "x": 140.0,
+            "y": 410.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 525.0
+          },
+          {
+            "x": 140.0,
+            "y": 530.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 535.0
+          },
+          {
+            "x": 140.0,
+            "y": 540.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 545.0
+          },
+          {
+            "x": 140.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 555.0
+          },
+          {
+            "x": 140.0,
+            "y": 560.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 675.0
+          },
+          {
+            "x": 140.0,
+            "y": 680.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 685.0
+          },
+          {
+            "x": 140.0,
+            "y": 690.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 695.0
+          },
+          {
+            "x": 140.0,
+            "y": 700.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 705.0
+          },
+          {
+            "x": 140.0,
+            "y": 710.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 825.0
+          },
+          {
+            "x": 140.0,
+            "y": 830.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 835.0
+          },
+          {
+            "x": 140.0,
+            "y": 840.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 845.0
+          },
+          {
+            "x": 140.0,
+            "y": 850.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 855.0
+          },
+          {
+            "x": 140.0,
+            "y": 860.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 335.0
+          },
+          {
+            "x": 140.0,
+            "y": 330.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 345.0
+          },
+          {
+            "x": 140.0,
+            "y": 340.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 355.0
+          },
+          {
+            "x": 140.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 365.0
+          },
+          {
+            "x": 140.0,
+            "y": 360.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 485.0
+          },
+          {
+            "x": 140.0,
+            "y": 480.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 495.0
+          },
+          {
+            "x": 140.0,
+            "y": 490.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 505.0
+          },
+          {
+            "x": 140.0,
+            "y": 500.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 515.0
+          },
+          {
+            "x": 140.0,
+            "y": 510.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 635.0
+          },
+          {
+            "x": 140.0,
+            "y": 630.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 645.0
+          },
+          {
+            "x": 140.0,
+            "y": 640.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 655.0
+          },
+          {
+            "x": 140.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 665.0
+          },
+          {
+            "x": 140.0,
+            "y": 660.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 785.0
+          },
+          {
+            "x": 140.0,
+            "y": 780.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 795.0
+          },
+          {
+            "x": 140.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 805.0
+          },
+          {
+            "x": 140.0,
+            "y": 800.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 815.0
+          },
+          {
+            "x": 140.0,
+            "y": 810.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 8,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 8,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 8,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 9,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 10,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 11,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB1"
+        },
+        "path": [
+          {
+            "x": 330.0,
+            "y": 790.0
+          },
+          {
+            "x": 330.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB2"
+        },
+        "path": [
+          {
+            "x": 335.0,
+            "y": 800.0
+          },
+          {
+            "x": 335.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB3"
+        },
+        "path": [
+          {
+            "x": 340.0,
+            "y": 810.0
+          },
+          {
+            "x": 340.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QB4"
+        },
+        "path": [
+          {
+            "x": 345.0,
+            "y": 820.0
+          },
+          {
+            "x": 345.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 12,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 12,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 12,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 13,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C1"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C2"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C3"
+        },
+        "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": {
+          "compId": 14,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "C4"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA1"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA2"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA3"
+        },
+        "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": {
+          "compId": 15,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QA4"
+        },
+        "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
+          }
+        ]
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A0",
+      "A1",
+      "A2",
+      "A3",
+      "B0",
+      "B1",
+      "B2",
+      "B3",
+      "WE",
+      "D1",
+      "D2",
+      "D3",
+      "D4"
+    ],
+    "label": "GUIram4",
+    "logic_width": 1,
+    "output_count": [
+      "QA1",
+      "QA2",
+      "QA3",
+      "QA4",
+      "QB1",
+      "QB2",
+      "QB3",
+      "QB4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIsel2_4.json b/net.mograsim.logic.ui.am2900/components/GUIsel2_4.json
new file mode 100644 (file)
index 0000000..c98c1dc
--- /dev/null
@@ -0,0 +1,846 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIsel2_4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 52.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 102.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 152.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 77.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 127.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 177.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 52.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 65.0,
+          "y": 77.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 16.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 66.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 116.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 41.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 91.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 141.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 62.5
+          },
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 17.5,
+            "y": 87.5
+          },
+          {
+            "x": 17.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 17.5,
+            "y": 112.5
+          },
+          {
+            "x": 17.5,
+            "y": 107.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 17.5,
+            "y": 137.5
+          },
+          {
+            "x": 17.5,
+            "y": 157.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 162.5
+          },
+          {
+            "x": 10.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 12.5,
+            "y": 187.5
+          },
+          {
+            "x": 12.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 212.5
+          },
+          {
+            "x": 15.0,
+            "y": 132.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 237.5
+          },
+          {
+            "x": 10.0,
+            "y": 182.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "SA"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": ""
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "SB"
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        }
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        }
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": ""
+        }
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 167.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        }
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        }
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 192.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 42.5,
+            "y": 12.5
+          },
+          {
+            "x": 42.5,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 37.5
+          },
+          {
+            "x": 45.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 47.5,
+            "y": 62.5
+          },
+          {
+            "x": 47.5,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 87.5
+          },
+          {
+            "x": 50.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 52.5,
+            "y": 112.5
+          },
+          {
+            "x": 52.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 137.5
+          },
+          {
+            "x": 55.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 57.5,
+            "y": 162.5
+          },
+          {
+            "x": 57.5,
+            "y": 82.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "SA",
+      "SB",
+      "A1",
+      "A2",
+      "A3",
+      "A4",
+      "B1",
+      "B2",
+      "B3",
+      "B4"
+    ],
+    "label": "GUIsel2_4",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIsel3_4.json b/net.mograsim.logic.ui.am2900/components/GUIsel3_4.json
new file mode 100644 (file)
index 0000000..b1f4647
--- /dev/null
@@ -0,0 +1,910 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIsel3_4",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 250.0
+        },
+        "name": "GUIsel2_4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 75.0,
+          "y": 250.0
+        },
+        "name": "GUInot4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 570.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 620.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 670.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 720.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 152.5,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 152.5,
+          "y": 65.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 152.5,
+          "y": 115.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 152.5,
+          "y": 165.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 584.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 634.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 684.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "SA"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "SA"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 25.0
+          },
+          {
+            "x": 25.0,
+            "y": 255.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "SB"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "SB"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 75.0
+          },
+          {
+            "x": 20.0,
+            "y": 265.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 275.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 225.0
+          },
+          {
+            "x": 10.0,
+            "y": 285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 275.0
+          },
+          {
+            "x": 5.0,
+            "y": 295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 325.0
+          },
+          {
+            "x": 5.0,
+            "y": 305.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 375.0
+          },
+          {
+            "x": 10.0,
+            "y": 315.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B2"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 425.0
+          },
+          {
+            "x": 15.0,
+            "y": 325.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B3"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 475.0
+          },
+          {
+            "x": 20.0,
+            "y": 335.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B4"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 525.0
+          },
+          {
+            "x": 25.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "SC"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 735.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C1"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C2"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C3"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C4"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 115.0,
+            "y": 255.0
+          },
+          {
+            "x": 115.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 265.0
+          },
+          {
+            "x": 120.0,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 275.0
+          },
+          {
+            "x": 125.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 285.0
+          },
+          {
+            "x": 130.0,
+            "y": 170.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 135.0,
+            "y": 580.0
+          },
+          {
+            "x": 135.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 630.0
+          },
+          {
+            "x": 140.0,
+            "y": 80.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 145.0,
+            "y": 680.0
+          },
+          {
+            "x": 145.0,
+            "y": 130.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 150.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "SA",
+      "SB",
+      "SC",
+      "A1",
+      "A2",
+      "A3",
+      "A4",
+      "B1",
+      "B2",
+      "B3",
+      "B4",
+      "C1",
+      "C2",
+      "C3",
+      "C4"
+    ],
+    "label": "GUIsel3_4",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/GUIxor.json b/net.mograsim.logic.ui.am2900/components/GUIxor.json
new file mode 100644 (file)
index 0000000..f32f1a1
--- /dev/null
@@ -0,0 +1,279 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIxor",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 7.5,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 2.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 27.5
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 62.5,
+          "y": 15.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 11.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        }
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "A",
+      "B"
+    ],
+    "label": "GUIxor",
+    "logic_width": 1,
+    "output_count": [
+      "Y"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901.json
new file mode 100644 (file)
index 0000000..e93eea3
--- /dev/null
@@ -0,0 +1,3329 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901",
+  "width": 35.0,
+  "height": 270.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 35.0,
+        "y": 85.0
+      },
+      "name": "ORAMn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 95.0
+      },
+      "name": "C",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 265.0
+      },
+      "name": "IQn+3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 85.0
+      },
+      "name": "I0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 255.0
+      },
+      "name": "IQn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "I1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 65.0
+      },
+      "name": "I2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.0
+      },
+      "name": "I3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 65.0
+      },
+      "name": "OVR",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "I4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 105.0
+      },
+      "name": "Cn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 115.0
+      },
+      "name": "OQn+3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "I5",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "I6",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 105.0
+      },
+      "name": "OQn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "I7",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 5.0
+      },
+      "name": "I8",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 155.0
+      },
+      "name": "A0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 165.0
+      },
+      "name": "A1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 175.0
+      },
+      "name": "A2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 185.0
+      },
+      "name": "A3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 235.0
+      },
+      "name": "IRAMn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 55.0
+      },
+      "name": "Cn+4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 95.0
+      },
+      "name": "ORAMn+3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 45.0
+      },
+      "name": "F\u003d0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 115.0
+      },
+      "name": "D1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 245.0
+      },
+      "name": "IRAMn+3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 75.0
+      },
+      "name": "F3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 125.0
+      },
+      "name": "D2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 195.0
+      },
+      "name": "B0",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 135.0
+      },
+      "name": "D3",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 205.0
+      },
+      "name": "B1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 145.0
+      },
+      "name": "D4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 215.0
+      },
+      "name": "B2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 225.0
+      },
+      "name": "B3",
+      "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.1,
+    "subComps": [
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 45.0
+        },
+        "name": "GUIAm2901DestDecode",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 275.0,
+          "y": 135.0
+        },
+        "name": "GUImux1_4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 190.0,
+          "y": 65.0
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 160.0,
+          "y": 75.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 240.0,
+          "y": 2110.0
+        },
+        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 275.0,
+          "y": 445.0
+        },
+        "name": "GUIor4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 320.0,
+          "y": 440.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 95.0,
+          "y": 2220.0
+        },
+        "name": "GUIram4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 160.0,
+          "y": 2220.0
+        },
+        "name": "GUIdlatch4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 160.0,
+          "y": 2275.0
+        },
+        "name": "GUIdlatch4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 2310.0
+        },
+        "name": "GUIsel3_4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 2510.0
+        },
+        "name": "GUIsel3_4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 90.0,
+          "y": 2490.0
+        },
+        "name": "GUIAm2901QReg",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 154.0,
+          "y": 949.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 154.0,
+          "y": 89.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 154.0,
+          "y": 2264.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 154.0,
+          "y": 2319.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 2314.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 2324.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 2334.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 219.0,
+          "y": 2224.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 224.0,
+          "y": 2234.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 229.0,
+          "y": 2244.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 234.0,
+          "y": 2254.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 129.0,
+          "y": 2494.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 134.0,
+          "y": 2504.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 139.0,
+          "y": 2514.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 144.0,
+          "y": 2524.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 219.0,
+          "y": 2494.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 234.0,
+          "y": 2524.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 2624.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 2634.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 279.0,
+          "y": 2114.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 294.0,
+          "y": 2144.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 329.0,
+          "y": 949.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 254.0,
+          "y": 2089.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 259.0,
+          "y": 2094.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 264.0,
+          "y": 2099.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 269.0,
+          "y": 2104.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 254.0,
+          "y": 449.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 259.0,
+          "y": 459.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 264.0,
+          "y": 469.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 269.0,
+          "y": 479.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 2354.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 2364.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 19.0,
+          "y": 2374.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 2394.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 19.0,
+          "y": 2404.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 2414.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 2384.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 2424.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 19.0,
+          "y": 2434.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 2444.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 314.0,
+          "y": 449.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I8"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I8"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I7"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I7"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 150.0
+          },
+          {
+            "x": 5.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I6"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I6"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 250.0
+          },
+          {
+            "x": 10.0,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "I5"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 350.0
+          },
+          {
+            "x": 130.0,
+            "y": 2115.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "I4"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 450.0
+          },
+          {
+            "x": 125.0,
+            "y": 2125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "I3"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 550.0
+          },
+          {
+            "x": 120.0,
+            "y": 2135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I2"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "I2"
+        },
+        "path": [
+          {
+            "x": 115.0,
+            "y": 650.0
+          },
+          {
+            "x": 115.0,
+            "y": 2145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "I1"
+        },
+        "path": [
+          {
+            "x": 110.0,
+            "y": 750.0
+          },
+          {
+            "x": 110.0,
+            "y": 2155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "I0"
+        },
+        "path": [
+          {
+            "x": 105.0,
+            "y": 850.0
+          },
+          {
+            "x": 105.0,
+            "y": 2165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 155.0,
+            "y": 80.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "C"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "C"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "C"
+        },
+        "path": [
+          {
+            "x": 155.0,
+            "y": 2485.0
+          },
+          {
+            "x": 80.0,
+            "y": 2485.0
+          },
+          {
+            "x": 80.0,
+            "y": 2495.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "LSH"
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 90.0
+          },
+          {
+            "x": 55.0,
+            "y": 125.0
+          },
+          {
+            "x": 40.0,
+            "y": 125.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "NSH"
+        },
+        "pin2": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 50.0
+          },
+          {
+            "x": 60.0,
+            "y": 120.0
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "RSH"
+        },
+        "pin2": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 60.0
+          },
+          {
+            "x": 65.0,
+            "y": 115.0
+          },
+          {
+            "x": 30.0,
+            "y": 115.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "SA"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "SB"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "SC"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "SA"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 2515.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "SB"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 2525.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "SC"
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 2535.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A0"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A0"
+        },
+        "path": [
+          {
+            "x": 80.0,
+            "y": 1550.0
+          },
+          {
+            "x": 80.0,
+            "y": 2225.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 1650.0
+          },
+          {
+            "x": 75.0,
+            "y": 2235.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 70.0,
+            "y": 1750.0
+          },
+          {
+            "x": 70.0,
+            "y": 2245.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 1850.0
+          },
+          {
+            "x": 65.0,
+            "y": 2255.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B0"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B0"
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 1950.0
+          },
+          {
+            "x": 60.0,
+            "y": 2265.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 2050.0
+          },
+          {
+            "x": 55.0,
+            "y": 2275.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B2"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 2150.0
+          },
+          {
+            "x": 50.0,
+            "y": 2285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B3"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 2250.0
+          },
+          {
+            "x": 45.0,
+            "y": 2295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QB1"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "D1"
+        },
+        "path": [
+          {
+            "x": 150.0,
+            "y": 2265.0
+          },
+          {
+            "x": 150.0,
+            "y": 2280.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "D2"
+        },
+        "path": [
+          {
+            "x": 145.0,
+            "y": 2275.0
+          },
+          {
+            "x": 145.0,
+            "y": 2290.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QB3"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "D3"
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 2285.0
+          },
+          {
+            "x": 140.0,
+            "y": 2300.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "QB4"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "D4"
+        },
+        "path": [
+          {
+            "x": 135.0,
+            "y": 2295.0
+          },
+          {
+            "x": 135.0,
+            "y": 2310.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Cn"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "Cn"
+        },
+        "path": [
+          {
+            "x": 100.0,
+            "y": 1050.0
+          },
+          {
+            "x": 100.0,
+            "y": 2175.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D1"
+        },
+        "path": [
+          {
+            "x": 180.0,
+            "y": 1150.0
+          },
+          {
+            "x": 180.0,
+            "y": 2185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D2"
+        },
+        "path": [
+          {
+            "x": 175.0,
+            "y": 1250.0
+          },
+          {
+            "x": 175.0,
+            "y": 2195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D3"
+        },
+        "path": [
+          {
+            "x": 170.0,
+            "y": 1350.0
+          },
+          {
+            "x": 170.0,
+            "y": 2205.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D4"
+        },
+        "path": [
+          {
+            "x": 165.0,
+            "y": 1450.0
+          },
+          {
+            "x": 165.0,
+            "y": 2215.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I0_1"
+        },
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I0_2"
+        },
+        "path": [
+          {
+            "x": 225.0,
+            "y": 160.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I0_3"
+        },
+        "path": [
+          {
+            "x": 230.0,
+            "y": 170.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I0_4"
+        },
+        "path": [
+          {
+            "x": 235.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 200.0,
+            "y": 2280.0
+          },
+          {
+            "x": 200.0,
+            "y": 2265.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B2"
+        },
+        "path": [
+          {
+            "x": 205.0,
+            "y": 2290.0
+          },
+          {
+            "x": 205.0,
+            "y": 2275.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B3"
+        },
+        "path": [
+          {
+            "x": 210.0,
+            "y": 2300.0
+          },
+          {
+            "x": 210.0,
+            "y": 2285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B4"
+        },
+        "path": [
+          {
+            "x": 215.0,
+            "y": 2310.0
+          },
+          {
+            "x": 215.0,
+            "y": 2295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "OQn"
+        },
+        "path": [
+          {
+            "x": 335.0,
+            "y": 2495.0
+          },
+          {
+            "x": 335.0,
+            "y": 1050.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "OQn+3"
+        },
+        "path": [
+          {
+            "x": 340.0,
+            "y": 2525.0
+          },
+          {
+            "x": 340.0,
+            "y": 1150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 135.0,
+            "y": 2670.0
+          },
+          {
+            "x": 30.0,
+            "y": 2670.0
+          },
+          {
+            "x": 30.0,
+            "y": 2635.0
+          },
+          {
+            "x": 35.0,
+            "y": 2635.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 140.0,
+            "y": 2675.0
+          },
+          {
+            "x": 35.0,
+            "y": 2675.0
+          },
+          {
+            "x": 35.0,
+            "y": 2640.0
+          },
+          {
+            "x": 40.0,
+            "y": 2640.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "C1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "C2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "C3"
+        },
+        "path": [
+          {
+            "x": 145.0,
+            "y": 2680.0
+          },
+          {
+            "x": 40.0,
+            "y": 2680.0
+          },
+          {
+            "x": 40.0,
+            "y": 2645.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "IQn+3"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "C4"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2650.0
+          },
+          {
+            "x": 5.0,
+            "y": 2655.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "IQn"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2550.0
+          },
+          {
+            "x": 5.0,
+            "y": 2545.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2555.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "Q1"
+        },
+        "path": [
+          {
+            "x": 220.0,
+            "y": 2305.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "Q2"
+        },
+        "path": [
+          {
+            "x": 225.0,
+            "y": 2505.0
+          },
+          {
+            "x": 225.0,
+            "y": 2315.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "Q3"
+        },
+        "path": [
+          {
+            "x": 230.0,
+            "y": 2515.0
+          },
+          {
+            "x": 230.0,
+            "y": 2325.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "Q4"
+        },
+        "path": [
+          {
+            "x": 235.0,
+            "y": 2335.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 2565.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 32,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 2575.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Cn+4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Cn+4"
+        },
+        "path": [
+          {
+            "x": 315.0,
+            "y": 2155.0
+          },
+          {
+            "x": 315.0,
+            "y": 550.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "OVR"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "OVR"
+        },
+        "path": [
+          {
+            "x": 320.0,
+            "y": 2165.0
+          },
+          {
+            "x": 320.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "F1"
+        },
+        "pin2": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "F4"
+        },
+        "pin2": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "ORAMn"
+        },
+        "path": [
+          {
+            "x": 325.0,
+            "y": 2115.0
+          },
+          {
+            "x": 325.0,
+            "y": 850.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 330.0,
+            "y": 2145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "ORAMn+3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 35,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F3"
+        },
+        "path": [
+          {
+            "x": 330.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 33,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 280.0,
+            "y": 2090.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "F2"
+        },
+        "pin2": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 285.0,
+            "y": 2125.0
+          },
+          {
+            "x": 285.0,
+            "y": 2095.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "F3"
+        },
+        "pin2": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 290.0,
+            "y": 2135.0
+          },
+          {
+            "x": 290.0,
+            "y": 2100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 34,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 295.0,
+            "y": 2105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 40,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I1_1"
+        },
+        "path": [
+          {
+            "x": 255.0,
+            "y": 190.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 41,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I1_2"
+        },
+        "path": [
+          {
+            "x": 260.0,
+            "y": 200.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 42,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I1_3"
+        },
+        "path": [
+          {
+            "x": 265.0,
+            "y": 210.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 43,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "I1_4"
+        },
+        "path": [
+          {
+            "x": 270.0,
+            "y": 220.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 36,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 44,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 2090.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 37,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 45,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 2095.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 38,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 46,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 2100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "IRAMn"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2350.0
+          },
+          {
+            "x": 5.0,
+            "y": 2345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 44,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 45,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 46,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 45,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 47,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 46,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 48,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 39,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 49,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 2105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 44,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 50,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 50,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 47,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 48,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 49,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 47,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 51,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 48,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 52,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 49,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 53,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 51,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 52,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 53,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "IRAMn+3"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "C4"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2450.0
+          },
+          {
+            "x": 5.0,
+            "y": 2455.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 50,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 2585.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 51,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B2"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 2595.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 52,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B3"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 2605.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 53,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B4"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 2615.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "D1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "D2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "D3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "D4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "RAMWE"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "WE"
+        },
+        "path": [
+          {
+            "x": 230.0,
+            "y": 70.0
+          },
+          {
+            "x": 230.0,
+            "y": 105.0
+          },
+          {
+            "x": 90.0,
+            "y": 105.0
+          },
+          {
+            "x": 90.0,
+            "y": 2305.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "QWE"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "WE"
+        },
+        "path": [
+          {
+            "x": 85.0,
+            "y": 100.0
+          },
+          {
+            "x": 85.0,
+            "y": 2505.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "YF"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "S0"
+        },
+        "path": [
+          {
+            "x": 70.0,
+            "y": 80.0
+          },
+          {
+            "x": 70.0,
+            "y": 140.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y1"
+        },
+        "path": [
+          {
+            "x": 335.0,
+            "y": 140.0
+          },
+          {
+            "x": 335.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y3"
+        },
+        "path": [
+          {
+            "x": 335.0,
+            "y": 160.0
+          },
+          {
+            "x": 335.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Y4"
+        },
+        "path": [
+          {
+            "x": 325.0,
+            "y": 170.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 54,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 54,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 315.0,
+            "y": 445.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 54,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 315.0,
+            "y": 455.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F\u003d0"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "I8",
+      "I7",
+      "I6",
+      "I5",
+      "I4",
+      "I3",
+      "I2",
+      "I1",
+      "I0",
+      "C",
+      "Cn",
+      "D1",
+      "D2",
+      "D3",
+      "D4",
+      "A0",
+      "A1",
+      "A2",
+      "A3",
+      "B0",
+      "B1",
+      "B2",
+      "B3",
+      "IRAMn",
+      "IRAMn+3",
+      "IQn",
+      "IQn+3"
+    ],
+    "label": "GUIAm2901",
+    "logic_width": 1,
+    "output_count": [
+      "Y1",
+      "Y2",
+      "Y3",
+      "Y4",
+      "F\u003d0",
+      "Cn+4",
+      "OVR",
+      "F3",
+      "ORAMn",
+      "ORAMn+3",
+      "OQn",
+      "OQn+3"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUFuncDecode.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUFuncDecode.json
new file mode 100644 (file)
index 0000000..1a838ef
--- /dev/null
@@ -0,0 +1,708 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901ALUFuncDecode",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 50.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 10.0
+        },
+        "name": "GUInand3",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 100.0,
+          "y": 50.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 100.0,
+          "y": 135.0
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 44.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 59.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 54.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 64.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 84.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 99.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 74.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 34.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 45.0
+          },
+          {
+            "x": 45.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "FN"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "SN"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 105.0
+          },
+          {
+            "x": 135.0,
+            "y": 105.0
+          },
+          {
+            "x": 135.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "RN"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 220.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "CinE"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 5.0
+          },
+          {
+            "x": 115.0,
+            "y": 5.0
+          },
+          {
+            "x": 115.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "C"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "L"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "SBE"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "I5",
+      "I4",
+      "I3"
+    ],
+    "label": "GUIAm2901ALUFuncDecode",
+    "logic_width": 1,
+    "output_count": [
+      "CinE",
+      "L",
+      "SN",
+      "SBE",
+      "FN",
+      "RN"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclDecode.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclDecode.json
new file mode 100644 (file)
index 0000000..9c3181c
--- /dev/null
@@ -0,0 +1,1493 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901ALUInclDecode",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        },
+        "name": "GUIAm2901ALUFuncDecode",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 80.0
+        },
+        "name": "GUIAm2901ALUOneBit",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 180.0
+        },
+        "name": "GUIAm2901ALUOneBit",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 280.0
+        },
+        "name": "GUIAm2901ALUOneBit",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 380.0
+        },
+        "name": "GUIAm2901ALUOneBit",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 95.0,
+          "y": 400.0
+        },
+        "name": "GUIxor",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 194.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 294.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 26.5,
+          "y": 104.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 26.5,
+          "y": 204.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 26.5,
+          "y": 304.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 124.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 224.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 29.0,
+          "y": 324.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 144.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 244.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 344.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 154.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 254.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 354.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 36.5,
+          "y": 164.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 36.5,
+          "y": 264.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 36.5,
+          "y": 364.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 84.0,
+          "y": 374.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 84.0,
+          "y": 384.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I5"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          },
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I4"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 60.0
+          },
+          {
+            "x": 10.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I3"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 27.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "SBE"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 62.5,
+            "y": 37.5
+          },
+          {
+            "x": 62.5,
+            "y": 70.0
+          },
+          {
+            "x": 25.0,
+            "y": 70.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "CoutE"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "CoutE"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "CoutE"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "CoutE"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 395.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "CinE"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 70.0,
+            "y": 7.5
+          },
+          {
+            "x": 70.0,
+            "y": 77.5
+          },
+          {
+            "x": 27.5,
+            "y": 77.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "CinE"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "CinE"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "CinE"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "CinE"
+        },
+        "path": [
+          {
+            "x": 27.5,
+            "y": 405.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "RN"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 57.5,
+            "y": 57.5
+          },
+          {
+            "x": 57.5,
+            "y": 65.0
+          },
+          {
+            "x": 30.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "RN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "RN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "RN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "RN"
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 425.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 27.5
+          },
+          {
+            "x": 65.0,
+            "y": 72.5
+          },
+          {
+            "x": 32.5,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "SN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "SN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "SN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "SN"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 445.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 60.0,
+            "y": 47.5
+          },
+          {
+            "x": 60.0,
+            "y": 67.5
+          },
+          {
+            "x": 35.0,
+            "y": 67.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "FN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "FN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "FN"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "FN"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 455.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "L"
+        },
+        "pin2": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 67.5,
+            "y": 17.5
+          },
+          {
+            "x": 67.5,
+            "y": 75.0
+          },
+          {
+            "x": 37.5,
+            "y": 75.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "L"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "L"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "L"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "L"
+        },
+        "path": [
+          {
+            "x": 37.5,
+            "y": 465.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "R1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "R"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 180.0
+          },
+          {
+            "x": 10.0,
+            "y": 115.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "R2"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "R"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 220.0
+          },
+          {
+            "x": 10.0,
+            "y": 215.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "R3"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "R"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 260.0
+          },
+          {
+            "x": 10.0,
+            "y": 315.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "R4"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "R"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 300.0
+          },
+          {
+            "x": 20.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "S"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 340.0
+          },
+          {
+            "x": 15.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S2"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "S"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 380.0
+          },
+          {
+            "x": 5.0,
+            "y": 235.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S3"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "S"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 420.0
+          },
+          {
+            "x": 10.0,
+            "y": 335.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S4"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "S"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 460.0
+          },
+          {
+            "x": 10.0,
+            "y": 435.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Cn"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "Cin"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 140.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "Cin"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "Cin"
+        },
+        "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": {
+          "compId": 4,
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 85.0,
+            "y": 285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "Cin"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 375.0
+          },
+          {
+            "x": 40.0,
+            "y": 385.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Cout"
+        },
+        "pin2": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "F"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F1"
+        },
+        "path": [
+          {
+            "x": 90.0,
+            "y": 95.0
+          },
+          {
+            "x": 90.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "F"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F2"
+        },
+        "path": [
+          {
+            "x": 95.0,
+            "y": 195.0
+          },
+          {
+            "x": 95.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "F"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F3"
+        },
+        "path": [
+          {
+            "x": 100.0,
+            "y": 295.0
+          },
+          {
+            "x": 100.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "F"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F4"
+        },
+        "path": [
+          {
+            "x": 105.0,
+            "y": 395.0
+          },
+          {
+            "x": 105.0,
+            "y": 140.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 90.0,
+            "y": 375.0
+          },
+          {
+            "x": 90.0,
+            "y": 405.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 85.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Cn+4"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 385.0
+          },
+          {
+            "x": 130.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "OVR"
+        }
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "I5",
+      "I4",
+      "I3",
+      "Cn",
+      "R1",
+      "R2",
+      "R3",
+      "R4",
+      "S1",
+      "S2",
+      "S3",
+      "S4"
+    ],
+    "label": "GUIAm2901ALUInclDecode",
+    "logic_width": 1,
+    "output_count": [
+      "F1",
+      "F2",
+      "F3",
+      "F4",
+      "Cn+4",
+      "OVR"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
new file mode 100644 (file)
index 0000000..71a63aa
--- /dev/null
@@ -0,0 +1,1348 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 165.0
+        },
+        "name": "GUIAm2901SourceDecode",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 365.0
+        },
+        "name": "GUIsel2_4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 45.0,
+          "y": 575.0
+        },
+        "name": "GUIsel3_4",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 60.0,
+          "y": 15.0
+        },
+        "name": "GUIAm2901ALUInclDecode",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 459.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 14.0,
+          "y": 499.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 19.0,
+          "y": 539.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 24.0,
+          "y": 579.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "I5"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "I4"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 60.0
+          },
+          {
+            "x": 5.0,
+            "y": 30.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "I3"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 40.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I2"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I2"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 140.0
+          },
+          {
+            "x": 5.0,
+            "y": 170.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "I0"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 220.0
+          },
+          {
+            "x": 5.0,
+            "y": 190.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Cn"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "Cn"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 260.0
+          },
+          {
+            "x": 10.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 300.0
+          },
+          {
+            "x": 15.0,
+            "y": 390.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 340.0
+          },
+          {
+            "x": 10.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 380.0
+          },
+          {
+            "x": 5.0,
+            "y": 410.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A4"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 430.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B2"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B3"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B4"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 460.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A1"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 610.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A2"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 620.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A3"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 630.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A4"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 640.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B1"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B1"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 620.0
+          },
+          {
+            "x": 5.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B2"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B3"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B3"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 700.0
+          },
+          {
+            "x": 5.0,
+            "y": 670.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "B4"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B4"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 740.0
+          },
+          {
+            "x": 10.0,
+            "y": 680.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Q1"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "C1"
+        },
+        "path": [
+          {
+            "x": 15.0,
+            "y": 780.0
+          },
+          {
+            "x": 15.0,
+            "y": 690.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Q2"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "C2"
+        },
+        "path": [
+          {
+            "x": 20.0,
+            "y": 820.0
+          },
+          {
+            "x": 20.0,
+            "y": 700.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Q3"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "C3"
+        },
+        "path": [
+          {
+            "x": 25.0,
+            "y": 860.0
+          },
+          {
+            "x": 25.0,
+            "y": 710.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Q4"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "C4"
+        },
+        "path": [
+          {
+            "x": 30.0,
+            "y": 900.0
+          },
+          {
+            "x": 30.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "SQ"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "SC"
+        },
+        "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": {
+          "compId": 1,
+          "pinName": "RA"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "SB"
+        },
+        "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": {
+          "compId": 1,
+          "pinName": "SB"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "SB"
+        },
+        "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
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "SA"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "SA"
+        },
+        "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": {
+          "compId": 1,
+          "pinName": "RD"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "SA"
+        },
+        "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": {
+          "compId": 2,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "R1"
+        },
+        "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": {
+          "compId": 2,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "R2"
+        },
+        "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": {
+          "compId": 2,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "R3"
+        },
+        "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": {
+          "compId": 2,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "R4"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "S1"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "S2"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "S3"
+        },
+        "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": {
+          "compId": 3,
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "S4"
+        },
+        "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": {
+          "compId": 4,
+          "pinName": "F1"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "F2"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F2"
+        },
+        "path": [
+          {
+            "x": 135.0,
+            "y": 30.0
+          },
+          {
+            "x": 135.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "F3"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F3"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 40.0
+          },
+          {
+            "x": 130.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "F4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F4"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 50.0
+          },
+          {
+            "x": 125.0,
+            "y": 140.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Cn+4"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Cn+4"
+        },
+        "path": [
+          {
+            "x": 120.0,
+            "y": 60.0
+          },
+          {
+            "x": 120.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "OVR"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "OVR"
+        },
+        "path": [
+          {
+            "x": 115.0,
+            "y": 70.0
+          },
+          {
+            "x": 115.0,
+            "y": 220.0
+          }
+        ]
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "I5",
+      "I4",
+      "I3",
+      "I2",
+      "I1",
+      "I0",
+      "Cn",
+      "D1",
+      "D2",
+      "D3",
+      "D4",
+      "A1",
+      "A2",
+      "A3",
+      "A4",
+      "B1",
+      "B2",
+      "B3",
+      "B4",
+      "Q1",
+      "Q2",
+      "Q3",
+      "Q4"
+    ],
+    "label": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+    "logic_width": 1,
+    "output_count": [
+      "F1",
+      "F2",
+      "F3",
+      "F4",
+      "Cn+4",
+      "OVR"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUOneBit.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUOneBit.json
new file mode 100644 (file)
index 0000000..5466a04
--- /dev/null
@@ -0,0 +1,537 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901ALUOneBit",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.2,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 20.0
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 190.0
+        },
+        "name": "GUIxor",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 290.0
+        },
+        "name": "GUIxor",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 60.0,
+          "y": 20.0
+        },
+        "name": "GUIfulladder",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 60.0,
+          "y": 55.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 135.0,
+          "y": 20.0
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 90.0,
+          "y": 70.0
+        },
+        "name": "GUImux1",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 135.0,
+          "y": 70.0
+        },
+        "name": "GUIxor",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 59.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 54.0,
+          "y": 69.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "Cin"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "CoutE"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "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": {
+          "compId": 0,
+          "pinName": "CinE"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 125.0
+          },
+          {
+            "x": 7.5,
+            "y": 35.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "R"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "RN"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "S"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 375.0
+          },
+          {
+            "x": 130.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "L"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "S0"
+        },
+        "path": [
+          {
+            "x": 87.5,
+            "y": 425.0
+          },
+          {
+            "x": 87.5,
+            "y": 75.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 50.0,
+            "y": 35.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "C"
+        },
+        "path": [
+          {
+            "x": 55.0,
+            "y": 45.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "I0"
+        },
+        "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": {
+          "compId": 4,
+          "pinName": "Z"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "I1"
+        },
+        "path": [
+          {
+            "x": 82.5,
+            "y": 65.0
+          },
+          {
+            "x": 82.5,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Cout"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "F"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "Cin",
+      "CoutE",
+      "CinE",
+      "R",
+      "RN",
+      "S",
+      "SN",
+      "FN",
+      "L"
+    ],
+    "label": "GUIAm2901ALUOneBit",
+    "logic_width": 1,
+    "output_count": [
+      "Cout",
+      "F"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901DestDecode.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901DestDecode.json
new file mode 100644 (file)
index 0000000..3faa02d
--- /dev/null
@@ -0,0 +1,1075 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901DestDecode",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 50.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 90.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 15.0,
+          "y": 150.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 50.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 90.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 130.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 80.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 80.0,
+          "y": 90.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 80.0,
+          "y": 145.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 110.0,
+          "y": 105.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 115.0,
+          "y": 210.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 14.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 24.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 59.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 64.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 104.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 154.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 59.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 44.0,
+          "y": 54.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 39.0,
+          "y": 134.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 74.0,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 74.0,
+          "y": 99.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 74.0,
+          "y": 104.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 74.0,
+          "y": 159.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 109.0,
+          "y": 214.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I8"
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I7"
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I6"
+        },
+        "pin2": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 5.0
+          },
+          {
+            "x": 40.0,
+            "y": 5.0
+          },
+          {
+            "x": 40.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "NSH"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 5.0
+          },
+          {
+            "x": 135.0,
+            "y": 5.0
+          },
+          {
+            "x": 135.0,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 45.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 10.0,
+            "y": 115.0
+          },
+          {
+            "x": 45.0,
+            "y": 115.0
+          },
+          {
+            "x": 45.0,
+            "y": 105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 40.0,
+            "y": 145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "RAMWE"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 60.0
+          },
+          {
+            "x": 125.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "LSH"
+        },
+        "path": [
+          {
+            "x": 125.0,
+            "y": 140.0
+          },
+          {
+            "x": 125.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "RSH"
+        },
+        "path": [
+          {
+            "x": 130.0,
+            "y": 20.0
+          },
+          {
+            "x": 130.0,
+            "y": 60.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 75.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 120.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 110.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 110.0,
+            "y": 225.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "YF"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "QWE"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "I8",
+      "I7",
+      "I6"
+    ],
+    "label": "GUIAm2901DestDecode",
+    "logic_width": 1,
+    "output_count": [
+      "NSH",
+      "RSH",
+      "RAMWE",
+      "YF",
+      "LSH",
+      "QWE"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901QReg.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901QReg.json
new file mode 100644 (file)
index 0000000..85f0edf
--- /dev/null
@@ -0,0 +1,423 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901QReg",
+  "width": 35.0,
+  "height": 60.0,
+  "interfacePins": [
+    {
+      "location": {
+        "x": 0.0,
+        "y": 55.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": 5.0
+      },
+      "name": "C",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Q4",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 25.0
+      },
+      "name": "D1",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 15.0
+      },
+      "name": "WE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 35.0
+      },
+      "name": "D2",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 45.0
+      },
+      "name": "D3",
+      "logicWidth": 1
+    }
+  ],
+  "composition": {
+    "innerScale": 0.4,
+    "subComps": [
+      {
+        "pos": {
+          "x": 5.0,
+          "y": 15.0
+        },
+        "name": "GUIand",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 7.5
+        },
+        "name": "GUIdff",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 32.5
+        },
+        "name": "GUIdff",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 57.5
+        },
+        "name": "GUIdff",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 82.5
+        },
+        "name": "GUIdff",
+        "params": {}
+      },
+      {
+        "pos": {
+          "x": 41.5,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 41.5,
+          "y": 36.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 41.5,
+          "y": 61.5
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "C"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "WE"
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "C"
+        },
+        "path": [
+          {
+            "x": 42.5,
+            "y": 12.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "C"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "C"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "C"
+        },
+        "path": [
+          {
+            "x": 42.5,
+            "y": 87.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "D"
+        },
+        "path": [
+          {
+            "x": 17.5,
+            "y": 62.5
+          },
+          {
+            "x": 17.5,
+            "y": 42.5
+          },
+          {
+            "x": 45.0,
+            "y": 42.5
+          },
+          {
+            "x": 45.0,
+            "y": 22.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D2"
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "D"
+        },
+        "path": [
+          {
+            "x": 22.5,
+            "y": 87.5
+          },
+          {
+            "x": 22.5,
+            "y": 47.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D3"
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "D"
+        },
+        "path": [
+          {
+            "x": 27.5,
+            "y": 112.5
+          },
+          {
+            "x": 27.5,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "D4"
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "D"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 137.5
+          },
+          {
+            "x": 32.5,
+            "y": 97.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q1"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q2"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q3"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "Q4"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "C",
+      "WE",
+      "D1",
+      "D2",
+      "D3",
+      "D4"
+    ],
+    "label": "GUIAm2901QReg",
+    "logic_width": 1,
+    "output_count": [
+      "Q1",
+      "Q2",
+      "Q3",
+      "Q4"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901SourceDecode.json b/net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901SourceDecode.json
new file mode 100644 (file)
index 0000000..c882371
--- /dev/null
@@ -0,0 +1,1117 @@
+mograsim version: 0.1.2
+{
+  "type": "SimpleRectangularSubmodelComponent",
+  "name": "GUIAm2901SourceDecode",
+  "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
+    }
+  ],
+  "composition": {
+    "innerScale": 0.25,
+    "subComps": [
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 50.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 10.0,
+          "y": 90.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 50.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 90.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 130.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 170.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 70.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 70.0,
+          "y": 50.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 70.0,
+          "y": 90.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 70.0,
+          "y": 130.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 70.0,
+          "y": 170.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 100.0,
+          "y": 10.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 100.0,
+          "y": 170.0
+        },
+        "name": "GUINandGate",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 144.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 59.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 99.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 6.5,
+          "y": 104.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 54.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 59.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 64.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 34.0,
+          "y": 134.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 36.5,
+          "y": 99.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 64.0,
+          "y": 59.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 64.0,
+          "y": 99.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 64.0,
+          "y": 139.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 94.0,
+          "y": 19.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      },
+      {
+        "pos": {
+          "x": 94.0,
+          "y": 179.0
+        },
+        "name": "WireCrossPoint",
+        "params": {
+          "logicWidth": 1
+        }
+      }
+    ],
+    "innerWires": [
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I2"
+        },
+        "pin2": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 17,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 1,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 16,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 18,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 5.0,
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 19,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 2,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 0,
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 20,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 3,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 21,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 7.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 1,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 22,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 6,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 32.5,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 2,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 4,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 23,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 5,
+          "pinName": "B"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 24,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 7,
+          "pinName": "A"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 25,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 35.0,
+            "y": 175.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 3,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 37.5,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 26,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 8,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 37.5,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 4,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 9,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 5,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 55.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 27,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 10,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 6,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 28,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 11,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 105.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 7,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 29,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 12,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 65.0,
+            "y": 145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 8,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 13,
+          "pinName": "A"
+        }
+      },
+      {
+        "pin1": {
+          "compId": 9,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 95.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 30,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 14,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 95.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 10,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "RA"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 11,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "SB"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 12,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "SA"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 13,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "A"
+        },
+        "path": [
+          {
+            "x": 95.0,
+            "y": 175.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 31,
+          "pinName": ""
+        },
+        "pin2": {
+          "compId": 15,
+          "pinName": "B"
+        },
+        "path": [
+          {
+            "x": 95.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compId": 14,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "SQ"
+        },
+        "path": []
+      },
+      {
+        "pin1": {
+          "compId": 15,
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compId": 0,
+          "pinName": "RD"
+        },
+        "path": []
+      }
+    ]
+  },
+  "specialized": {
+    "input_count": [
+      "I2",
+      "I1",
+      "I0"
+    ],
+    "label": "Am2901SourceDecode",
+    "logic_width": 1,
+    "output_count": [
+      "SQ",
+      "RA",
+      "SB",
+      "SA",
+      "RD"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui.am2900/components/mapping.json b/net.mograsim.logic.ui.am2900/components/mapping.json
new file mode 100644 (file)
index 0000000..6c7a835
--- /dev/null
@@ -0,0 +1,36 @@
+mograsim version: 0.1.2
+{
+  "GUIAm2901": "file:components/am2901/GUIAm2901.json",
+  "GUIAm2901ALUFuncDecode": "file:components/am2901/GUIAm2901ALUFuncDecode.json",
+  "GUIAm2901ALUInclDecode": "file:components/am2901/GUIAm2901ALUInclDecode.json",
+  "GUIAm2901ALUInclSourceDecodeInclFunctionDecode": "file:components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json",
+  "GUIAm2901ALUOneBit": "file:components/am2901/GUIAm2901ALUOneBit.json",
+  "GUIAm2901DestDecode": "file:components/am2901/GUIAm2901DestDecode.json",
+  "GUIAm2901QReg": "file:components/am2901/GUIAm2901QReg.json",
+  "GUIAm2901SourceDecode": "file:components/am2901/GUIAm2901SourceDecode.json",
+  "GUIAndGate": "class:net.mograsim.logic.ui.model.components.GUIAndGate",
+  "GUINandGate": "class:net.mograsim.logic.ui.model.components.GUINandGate",
+  "GUIOrGate": "class:net.mograsim.logic.ui.model.components.GUIOrGate",
+  "GUI_rsLatch": "file:components/GUI_rsLatch.json",
+  "GUIand": "file:components/GUIand.json",
+  "GUIand41": "file:components/GUIand41.json",
+  "GUIandor414": "file:components/GUIandor414.json",
+  "GUIdemux2": "file:components/GUIdemux2.json",
+  "GUIdff": "file:components/GUIdff.json",
+  "GUIdlatch": "file:components/GUIdlatch.json",
+  "GUIdlatch4": "file:components/GUIdlatch4.json",
+  "GUIfulladder": "file:components/GUIfulladder.json",
+  "GUIhalfadder": "file:components/GUIhalfadder.json",
+  "GUImux1": "file:components/GUImux1.json",
+  "GUImux1_4": "file:components/GUImux1_4.json",
+  "GUInand3": "file:components/GUInand3.json",
+  "GUInot4": "file:components/GUInot4.json",
+  "GUIor4": "file:components/GUIor4.json",
+  "GUIor_4": "file:components/GUIor_4.json",
+  "GUIram2": "file:components/GUIram2.json",
+  "GUIram4": "file:components/GUIram4.json",
+  "GUIsel2_4": "file:components/GUIsel2_4.json",
+  "GUIsel3_4": "file:components/GUIsel3_4.json",
+  "GUIxor": "file:components/GUIxor.json",
+  "WireCrossPoint": "class:net.mograsim.logic.ui.model.wires.WireCrossPoint"
+}
\ No newline at end of file
index 4ebd32a..a35ab2f 100644 (file)
@@ -1,10 +1,12 @@
 package net.mograsim.logic.ui.examples;
 
 import java.io.IOException;
+import java.util.HashMap;
 
 import net.mograsim.logic.ui.SimpleLogicUIStandalone;
 import net.mograsim.logic.ui.model.ViewModelModifiable;
 import net.mograsim.logic.ui.model.components.GUIBitDisplay;
+import net.mograsim.logic.ui.model.components.GUIComponentCreator;
 import net.mograsim.logic.ui.model.components.GUICustomComponentCreator;
 import net.mograsim.logic.ui.model.components.GUIManualSwitch;
 import net.mograsim.logic.ui.model.components.SimpleRectangularSubmodelComponent;
@@ -18,7 +20,12 @@ public class JsonExample
 {
        public static void main(String[] args)
        {
-               SimpleLogicUIStandalone.executeVisualisation(JsonExample::refJsonFromJsonTest);
+               SimpleLogicUIStandalone.executeVisualisation(JsonExample::mappingTest);
+       }
+
+       public static void mappingTest(ViewModelModifiable model)
+       {
+               GUIComponentCreator.create(model, "GUIAm2901", new HashMap<String, Object>());
        }
 
        private static class TestComponent extends SimpleRectangularSubmodelComponent
@@ -39,7 +46,6 @@ public class JsonExample
                t.calculateParams().writeJson("Test.json");
                SubmodelComponent c = GUICustomComponentCreator.create(model, "Test.json");
                c.moveTo(0, 50);
-
        }
 
        public static void createHalfAdderExample(ViewModelModifiable model)
@@ -57,7 +63,7 @@ public class JsonExample
                        e.printStackTrace();
                }
 
-               GUICustomComponentCreator.create(model, p, "");
+               GUICustomComponentCreator.create(model, p);
        }
 
        @SuppressWarnings("unused") // for GUIWires being created
@@ -99,7 +105,7 @@ public class JsonExample
                new GUIWire(model, adder.getPin("Y"), bdY.getInputPin());
                new GUIWire(model, adder.getPin("Z"), bdZ.getInputPin());
 
-               SubmodelComponent adder2 = GUICustomComponentCreator.create(model, pC, "");
+               SubmodelComponent adder2 = GUICustomComponentCreator.create(model, pC);
 
                swA = new GUIManualSwitch(model);
                swA.moveTo(0, 70);
diff --git a/net.mograsim.logic.ui/components/GUI_rsLatch.json b/net.mograsim.logic.ui/components/GUI_rsLatch.json
deleted file mode 100644 (file)
index 9195303..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUI_rsLatch",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 7.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 12.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 16.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 64.0,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "_S"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "_R"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 37.5
-          },
-          {
-            "x": 35.0,
-            "y": 27.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 22.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
-            "y": 22.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "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": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "_Q"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "_S",
-      "_R"
-    ],
-    "label": "_rsLatch",
-    "logic_width": 1,
-    "output_count": [
-      "Q",
-      "_Q"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIand.json b/net.mograsim.logic.ui/components/GUIand.json
deleted file mode 100644 (file)
index 6581c53..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIand",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A",
-      "B"
-    ],
-    "label": "GUIand",
-    "logic_width": 1,
-    "output_count": [
-      "Y"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIand41.json b/net.mograsim.logic.ui/components/GUIand41.json
deleted file mode 100644 (file)
index 6c88a16..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIand41",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 7.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 32.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 57.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 82.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 71.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 96.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 112.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 22.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A1",
-      "A2",
-      "A3",
-      "A4",
-      "B"
-    ],
-    "label": "GUIand41",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIandor414.json b/net.mograsim.logic.ui/components/GUIandor414.json
deleted file mode 100644 (file)
index 1985834..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIandor414",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 137.5
-        },
-        "name": "GUIand41",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 35.0,
-          "y": 37.5
-        },
-        "name": "GUIor_4",
-        "params": {}
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 112.5
-          },
-          {
-            "x": 10.0,
-            "y": 142.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 137.5
-          },
-          {
-            "x": 5.0,
-            "y": 152.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 187.5
-          },
-          {
-            "x": 5.0,
-            "y": 172.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 212.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 12.5
-          },
-          {
-            "x": 10.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 37.5
-          },
-          {
-            "x": 5.0,
-            "y": 52.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C3"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C4"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 87.5
-          },
-          {
-            "x": 5.0,
-            "y": 72.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B1"
-        },
-        "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": {
-          "compId": 1,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B2"
-        },
-        "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": {
-          "compId": 1,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B3"
-        },
-        "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
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B4"
-        },
-        "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": {
-          "compId": 2,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 42.5
-          },
-          {
-            "x": 75.0,
-            "y": 12.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        },
-        "path": [
-          {
-            "x": 80.0,
-            "y": 52.5
-          },
-          {
-            "x": 80.0,
-            "y": 37.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        },
-        "path": [
-          {
-            "x": 80.0,
-            "y": 72.5
-          },
-          {
-            "x": 80.0,
-            "y": 87.5
-          }
-        ]
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "C1",
-      "C2",
-      "C3",
-      "C4",
-      "A1",
-      "A2",
-      "A3",
-      "A4",
-      "B"
-    ],
-    "label": "GUIandor414",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIdemux2.json b/net.mograsim.logic.ui/components/GUIdemux2.json
deleted file mode 100644 (file)
index 44aaa4a..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIdemux2",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 2.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 27.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 52.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 77.5
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 16.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 36.5,
-          "y": 61.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 41.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 31.5,
-          "y": 66.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 31.5,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S0"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S1"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 62.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 67.5
-          },
-          {
-            "x": 32.5,
-            "y": 67.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 37.5,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 37.5,
-            "y": 82.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 92.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y00"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y01"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y10"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y11"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "S0",
-      "S1"
-    ],
-    "label": "GUIdemux2",
-    "logic_width": 1,
-    "output_count": [
-      "Y00",
-      "Y01",
-      "Y10",
-      "Y11"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIdff.json b/net.mograsim.logic.ui/components/GUIdff.json
deleted file mode 100644 (file)
index 712733d..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIdff",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 10.0
-        },
-        "name": "GUI_rsLatch",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 40.0
-        },
-        "name": "GUInand3",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 120.0,
-          "y": 60.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 120.0,
-          "y": 30.0
-        },
-        "name": "GUI_rsLatch",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 19.0,
-          "y": 64.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 99.0,
-          "y": 34.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 99.0,
-          "y": 44.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "_R"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 145.0,
-            "y": 70.0
-          },
-          {
-            "x": 145.0,
-            "y": 85.0
-          },
-          {
-            "x": 20.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "_S"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "C"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "_Q"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 100.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 35.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "_S"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "_R"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 100.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "_Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "_Q"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "C",
-      "D"
-    ],
-    "label": "GUIdff",
-    "logic_width": 1,
-    "output_count": [
-      "Q",
-      "_Q"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIdlatch.json b/net.mograsim.logic.ui/components/GUIdlatch.json
deleted file mode 100644 (file)
index 7d87498..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIdlatch",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 7.5
-        },
-        "name": "GUI_rsLatch",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "E"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 25.0
-          },
-          {
-            "x": 10.0,
-            "y": 25.0
-          },
-          {
-            "x": 10.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "_S"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "_R"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 37.5
-          },
-          {
-            "x": 40.0,
-            "y": 22.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "_Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "_Q"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "D",
-      "E"
-    ],
-    "label": "GUIdlatch",
-    "logic_width": 1,
-    "output_count": [
-      "Q",
-      "_Q"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIdlatch4.json b/net.mograsim.logic.ui/components/GUIdlatch4.json
deleted file mode 100644 (file)
index 0c7a9e6..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIdlatch4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 7.5
-        },
-        "name": "GUIdlatch",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 32.5
-        },
-        "name": "GUIdlatch",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 57.5
-        },
-        "name": "GUIdlatch",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 82.5
-        },
-        "name": "GUIdlatch",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 46.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 71.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 96.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 112.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "E"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "E"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "E"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "E"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 22.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "D"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "D"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D3"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "D"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q4"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "D1",
-      "D2",
-      "D3",
-      "D4",
-      "C"
-    ],
-    "label": "GUIdlatch4",
-    "logic_width": 1,
-    "output_count": [
-      "Q1",
-      "Q2",
-      "Q3",
-      "Q4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIfulladder.json b/net.mograsim.logic.ui/components/GUIfulladder.json
deleted file mode 100644 (file)
index 888df77..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIfulladder",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 5.0,
-          "y": 40.0
-        },
-        "name": "GUIhalfadder",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 7.5
-        },
-        "name": "GUIhalfadder",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 57.5,
-          "y": 40.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "_Z"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "_Z"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Z"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A",
-      "B",
-      "C"
-    ],
-    "label": "GUIfulladder",
-    "logic_width": 1,
-    "output_count": [
-      "Y",
-      "Z"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIhalfadder.json b/net.mograsim.logic.ui/components/GUIhalfadder.json
deleted file mode 100644 (file)
index a83a1e4..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIhalfadder",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "_Z"
-        },
-        "path": [
-          {
-            "x": 80.0,
-            "y": 25.0
-          },
-          {
-            "x": 80.0,
-            "y": 37.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 62.5,
-            "y": 12.5
-          },
-          {
-            "x": 62.5,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A",
-      "B"
-    ],
-    "label": "GUIhalfadder",
-    "logic_width": 1,
-    "output_count": [
-      "Y",
-      "_Z"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUImux1.json b/net.mograsim.logic.ui/components/GUImux1.json
deleted file mode 100644 (file)
index f36fc7c..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUImux1",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 7.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 35.0,
-          "y": 22.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 35.0,
-          "y": 47.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 60.0,
-          "y": 30.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 21.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S0"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 52.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "S0",
-      "I0",
-      "I1"
-    ],
-    "label": "GUImux1",
-    "logic_width": 1,
-    "output_count": [
-      "Y"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUImux1_4.json b/net.mograsim.logic.ui/components/GUImux1_4.json
deleted file mode 100644 (file)
index a652c16..0000000
+++ /dev/null
@@ -1,486 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUImux1_4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 7.5
-        },
-        "name": "GUImux1",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 42.5
-        },
-        "name": "GUImux1",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 77.5
-        },
-        "name": "GUImux1",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 112.5
-        },
-        "name": "GUImux1",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 81.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S0"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "S0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0_1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I0"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 37.5
-          },
-          {
-            "x": 5.0,
-            "y": 22.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 137.5
-          },
-          {
-            "x": 10.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "S0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0_2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I0"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 62.5
-          },
-          {
-            "x": 5.0,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1_2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I1"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 162.5
-          },
-          {
-            "x": 15.0,
-            "y": 67.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "S0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0_3"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "I0"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 87.5
-          },
-          {
-            "x": 5.0,
-            "y": 92.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1_3"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "I1"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 187.5
-          },
-          {
-            "x": 20.0,
-            "y": 102.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "S0"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 117.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0_4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "I0"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 112.5
-          },
-          {
-            "x": 5.0,
-            "y": 127.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "I1"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 212.5
-          },
-          {
-            "x": 25.0,
-            "y": 137.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "S0",
-      "I0_1",
-      "I0_2",
-      "I0_3",
-      "I0_4",
-      "I1_1",
-      "I1_2",
-      "I1_3",
-      "I1_4"
-    ],
-    "label": "GUImux1_4",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUInand3.json b/net.mograsim.logic.ui/components/GUInand3.json
deleted file mode 100644 (file)
index 2db174f..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUInand3",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 35.0,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 62.5,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 31.5,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 57.5,
-            "y": 25.0
-          },
-          {
-            "x": 57.5,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 62.5
-          },
-          {
-            "x": 60.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A",
-      "B",
-      "C"
-    ],
-    "label": "GUInand3",
-    "logic_width": 1,
-    "output_count": [
-      "Y"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUInot4.json b/net.mograsim.logic.ui/components/GUInot4.json
deleted file mode 100644 (file)
index 1a4f9d1..0000000
+++ /dev/null
@@ -1,392 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUInot4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 52.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 30.0,
-          "y": 77.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 61.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 86.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 82.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 67.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 92.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A1",
-      "A2",
-      "A3",
-      "A4"
-    ],
-    "label": "GUInot4",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIor4.json b/net.mograsim.logic.ui/components/GUIor4.json
deleted file mode 100644 (file)
index 4aba55a..0000000
+++ /dev/null
@@ -1,547 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIor4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 65.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 115.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 165.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 40.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 140.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 110.0,
-          "y": 40.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 110.0,
-          "y": 140.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 140.0,
-          "y": 90.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 74.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 124.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 174.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 104.0,
-          "y": 49.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 104.0,
-          "y": 149.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 170.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 80.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 180.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 105.0,
-            "y": 45.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 105.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 105.0,
-            "y": 145.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 105.0,
-            "y": 155.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A1",
-      "A2",
-      "A3",
-      "A4"
-    ],
-    "label": "GUIor4",
-    "logic_width": 1,
-    "output_count": [
-      "Y"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIor_4.json b/net.mograsim.logic.ui/components/GUIor_4.json
deleted file mode 100644 (file)
index 69bacd2..0000000
+++ /dev/null
@@ -1,880 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIor_4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 52.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 77.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 102.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 127.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 152.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 177.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 52.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 77.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 61.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 86.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 111.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 136.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 161.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 186.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B1"
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 67.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 82.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 92.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 107.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 117.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 132.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 142.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 157.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 167.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 182.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 192.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 12.5
-          },
-          {
-            "x": 40.0,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 112.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 37.5
-          },
-          {
-            "x": 40.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 137.5
-          },
-          {
-            "x": 50.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 62.5
-          },
-          {
-            "x": 40.0,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 162.5
-          },
-          {
-            "x": 55.0,
-            "y": 67.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 87.5
-          },
-          {
-            "x": 40.0,
-            "y": 82.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 187.5
-          },
-          {
-            "x": 60.0,
-            "y": 92.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A1",
-      "A2",
-      "A3",
-      "A4",
-      "B1",
-      "B2",
-      "B3",
-      "B4"
-    ],
-    "label": "GUIor_4",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIram2.json b/net.mograsim.logic.ui/components/GUIram2.json
deleted file mode 100644 (file)
index 665d5a0..0000000
+++ /dev/null
@@ -1,2880 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIram2",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.1,
-    "subComps": [
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 45.0
-        },
-        "name": "GUIdemux2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 150.0
-        },
-        "name": "GUIdemux2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 130.0,
-          "y": 150.0
-        },
-        "name": "GUIand41",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 325.0
-        },
-        "name": "GUIdlatch4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 475.0
-        },
-        "name": "GUIdlatch4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 625.0
-        },
-        "name": "GUIdlatch4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 775.0
-        },
-        "name": "GUIdlatch4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 235.0,
-          "y": 375.0
-        },
-        "name": "GUIand41",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 235.0,
-          "y": 485.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 235.0,
-          "y": 635.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 235.0,
-          "y": 785.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 135.0,
-          "y": 325.0
-        },
-        "name": "GUIand41",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 135.0,
-          "y": 435.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 135.0,
-          "y": 585.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 135.0,
-          "y": 735.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 109.0,
-          "y": 154.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 104.0,
-          "y": 164.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 99.0,
-          "y": 174.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 94.0,
-          "y": 184.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 549.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 649.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 749.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 809.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 479.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 489.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 499.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 509.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 629.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 639.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 649.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 659.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 129.0,
-          "y": 329.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 124.0,
-          "y": 339.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 119.0,
-          "y": 349.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 114.0,
-          "y": 359.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 129.0,
-          "y": 479.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 124.0,
-          "y": 489.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 119.0,
-          "y": 499.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 114.0,
-          "y": 509.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 129.0,
-          "y": 629.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 124.0,
-          "y": 639.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 119.0,
-          "y": 649.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 114.0,
-          "y": 659.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 129.0,
-          "y": 779.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 124.0,
-          "y": 789.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 119.0,
-          "y": 799.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 114.0,
-          "y": 809.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A0"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "S0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "S1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B0"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "S0"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 250.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "S1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 350.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y00"
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y01"
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y10"
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y11"
-        },
-        "pin2": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "C"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "C"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "C"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "C"
-        },
-        "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": {
-          "compId": 0,
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D2"
-        },
-        "pin2": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D3"
-        },
-        "pin2": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D4"
-        },
-        "pin2": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 850.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D1"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 330.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D2"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 340.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D3"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 350.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D4"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 360.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D1"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 780.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D2"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 790.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D3"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 800.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 44,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 45,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 46,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 47,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y00"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 210.0,
-            "y": 50.0
-          },
-          {
-            "x": 210.0,
-            "y": 420.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y01"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 205.0,
-            "y": 60.0
-          },
-          {
-            "x": 205.0,
-            "y": 570.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y10"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 200.0,
-            "y": 70.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y11"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 195.0,
-            "y": 80.0
-          },
-          {
-            "x": 195.0,
-            "y": 870.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 110.0,
-            "y": 370.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 105.0,
-            "y": 520.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 100.0,
-            "y": 670.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 95.0,
-            "y": 820.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 380.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 390.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 400.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 115.0,
-            "y": 410.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 530.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 540.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 550.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 115.0,
-            "y": 560.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 680.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 690.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 700.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 115.0,
-            "y": 710.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 44,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 830.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 45,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 840.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 46,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 850.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 47,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 115.0,
-            "y": 860.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 44,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 45,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 46,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 47,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 8,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 8,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 8,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 11,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA1"
-        },
-        "path": [
-          {
-            "x": 300.0,
-            "y": 790.0
-          },
-          {
-            "x": 300.0,
-            "y": 50.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA2"
-        },
-        "path": [
-          {
-            "x": 305.0,
-            "y": 800.0
-          },
-          {
-            "x": 305.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA3"
-        },
-        "path": [
-          {
-            "x": 310.0,
-            "y": 810.0
-          },
-          {
-            "x": 310.0,
-            "y": 250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA4"
-        },
-        "path": [
-          {
-            "x": 315.0,
-            "y": 820.0
-          },
-          {
-            "x": 315.0,
-            "y": 350.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 12,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 12,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 12,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB1"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB2"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB3"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB4"
-        },
-        "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
-          }
-        ]
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A0",
-      "A1",
-      "B0",
-      "B1",
-      "WE",
-      "D1",
-      "D2",
-      "D3",
-      "D4"
-    ],
-    "label": "GUIram2",
-    "logic_width": 1,
-    "output_count": [
-      "QA1",
-      "QA2",
-      "QA3",
-      "QA4",
-      "QB1",
-      "QB2",
-      "QB3",
-      "QB4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIram4.json b/net.mograsim.logic.ui/components/GUIram4.json
deleted file mode 100644 (file)
index 2965fd0..0000000
+++ /dev/null
@@ -1,3248 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIram4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.1,
-    "subComps": [
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 45.0
-        },
-        "name": "GUIdemux2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 150.0
-        },
-        "name": "GUIdemux2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 235.0,
-          "y": 150.0
-        },
-        "name": "GUIand41",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 330.0
-        },
-        "name": "GUIram2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 480.0
-        },
-        "name": "GUIram2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 630.0
-        },
-        "name": "GUIram2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 780.0
-        },
-        "name": "GUIram2",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 250.0,
-          "y": 375.0
-        },
-        "name": "GUIand41",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 250.0,
-          "y": 485.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 250.0,
-          "y": 635.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 250.0,
-          "y": 785.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 155.0,
-          "y": 325.0
-        },
-        "name": "GUIand41",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 155.0,
-          "y": 435.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 155.0,
-          "y": 585.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 155.0,
-          "y": 735.0
-        },
-        "name": "GUIandor414",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 229.0,
-          "y": 154.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 224.0,
-          "y": 164.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 219.0,
-          "y": 174.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 214.0,
-          "y": 184.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 59.0,
-          "y": 534.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 64.0,
-          "y": 544.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 69.0,
-          "y": 554.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 74.0,
-          "y": 564.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 59.0,
-          "y": 684.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 64.0,
-          "y": 694.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 69.0,
-          "y": 704.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 74.0,
-          "y": 714.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 59.0,
-          "y": 834.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 64.0,
-          "y": 844.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 69.0,
-          "y": 854.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 74.0,
-          "y": 864.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 484.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 494.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 504.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 54.0,
-          "y": 514.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 634.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 644.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 654.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 54.0,
-          "y": 664.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 334.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 349.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 649.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 54.0,
-          "y": 749.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A0"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "S0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "S1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B0"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "S0"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "S1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 550.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y00"
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y01"
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y10"
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y11"
-        },
-        "pin2": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 850.0
-          },
-          {
-            "x": 15.0,
-            "y": 195.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "WE"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "WE"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "WE"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "WE"
-        },
-        "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": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 345.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B0"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 355.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 365.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B0"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A0"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 785.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 795.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B0"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 805.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 815.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D1"
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 385.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D2"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 395.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D3"
-        },
-        "path": [
-          {
-            "x": 70.0,
-            "y": 405.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D4"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 415.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 950.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D2"
-        },
-        "pin2": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 1050.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D3"
-        },
-        "pin2": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 70.0,
-            "y": 1150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D4"
-        },
-        "pin2": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 1250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y00"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 135.0,
-            "y": 50.0
-          },
-          {
-            "x": 135.0,
-            "y": 370.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y01"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 60.0
-          },
-          {
-            "x": 130.0,
-            "y": 520.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y10"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 70.0
-          },
-          {
-            "x": 125.0,
-            "y": 670.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y11"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 80.0
-          },
-          {
-            "x": 120.0,
-            "y": 820.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 230.0,
-            "y": 420.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 225.0,
-            "y": 570.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 220.0,
-            "y": 720.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 215.0,
-            "y": 870.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QB1"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 375.0
-          },
-          {
-            "x": 140.0,
-            "y": 380.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QB2"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 385.0
-          },
-          {
-            "x": 140.0,
-            "y": 390.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QB3"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 395.0
-          },
-          {
-            "x": 140.0,
-            "y": 400.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QB4"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 405.0
-          },
-          {
-            "x": 140.0,
-            "y": 410.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QB1"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 525.0
-          },
-          {
-            "x": 140.0,
-            "y": 530.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QB2"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 535.0
-          },
-          {
-            "x": 140.0,
-            "y": 540.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QB3"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 545.0
-          },
-          {
-            "x": 140.0,
-            "y": 550.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QB4"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 555.0
-          },
-          {
-            "x": 140.0,
-            "y": 560.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QB1"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 675.0
-          },
-          {
-            "x": 140.0,
-            "y": 680.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QB2"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 685.0
-          },
-          {
-            "x": 140.0,
-            "y": 690.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QB3"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 695.0
-          },
-          {
-            "x": 140.0,
-            "y": 700.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QB4"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 705.0
-          },
-          {
-            "x": 140.0,
-            "y": 710.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QB1"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 825.0
-          },
-          {
-            "x": 140.0,
-            "y": 830.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QB2"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 835.0
-          },
-          {
-            "x": 140.0,
-            "y": 840.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QB3"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 845.0
-          },
-          {
-            "x": 140.0,
-            "y": 850.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QB4"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 855.0
-          },
-          {
-            "x": 140.0,
-            "y": 860.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QA1"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 335.0
-          },
-          {
-            "x": 140.0,
-            "y": 330.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 345.0
-          },
-          {
-            "x": 140.0,
-            "y": 340.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QA3"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 355.0
-          },
-          {
-            "x": 140.0,
-            "y": 350.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "QA4"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 365.0
-          },
-          {
-            "x": 140.0,
-            "y": 360.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QA1"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 485.0
-          },
-          {
-            "x": 140.0,
-            "y": 480.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 495.0
-          },
-          {
-            "x": 140.0,
-            "y": 490.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QA3"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 505.0
-          },
-          {
-            "x": 140.0,
-            "y": 500.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "QA4"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 515.0
-          },
-          {
-            "x": 140.0,
-            "y": 510.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QA1"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 635.0
-          },
-          {
-            "x": 140.0,
-            "y": 630.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 645.0
-          },
-          {
-            "x": 140.0,
-            "y": 640.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QA3"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 655.0
-          },
-          {
-            "x": 140.0,
-            "y": 650.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "QA4"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 665.0
-          },
-          {
-            "x": 140.0,
-            "y": 660.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QA1"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 785.0
-          },
-          {
-            "x": 140.0,
-            "y": 780.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 795.0
-          },
-          {
-            "x": 140.0,
-            "y": 790.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QA3"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 805.0
-          },
-          {
-            "x": 140.0,
-            "y": 800.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "QA4"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 815.0
-          },
-          {
-            "x": 140.0,
-            "y": 810.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 8,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 8,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 8,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 9,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 10,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 11,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB1"
-        },
-        "path": [
-          {
-            "x": 330.0,
-            "y": 790.0
-          },
-          {
-            "x": 330.0,
-            "y": 450.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB2"
-        },
-        "path": [
-          {
-            "x": 335.0,
-            "y": 800.0
-          },
-          {
-            "x": 335.0,
-            "y": 550.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB3"
-        },
-        "path": [
-          {
-            "x": 340.0,
-            "y": 810.0
-          },
-          {
-            "x": 340.0,
-            "y": 650.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QB4"
-        },
-        "path": [
-          {
-            "x": 345.0,
-            "y": 820.0
-          },
-          {
-            "x": 345.0,
-            "y": 750.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 12,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 12,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 12,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 13,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C1"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C2"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C3"
-        },
-        "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": {
-          "compId": 14,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "C4"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA1"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA2"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA3"
-        },
-        "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": {
-          "compId": 15,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QA4"
-        },
-        "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
-          }
-        ]
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A0",
-      "A1",
-      "A2",
-      "A3",
-      "B0",
-      "B1",
-      "B2",
-      "B3",
-      "WE",
-      "D1",
-      "D2",
-      "D3",
-      "D4"
-    ],
-    "label": "GUIram4",
-    "logic_width": 1,
-    "output_count": [
-      "QA1",
-      "QA2",
-      "QA3",
-      "QA4",
-      "QB1",
-      "QB2",
-      "QB3",
-      "QB4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIsel2_4.json b/net.mograsim.logic.ui/components/GUIsel2_4.json
deleted file mode 100644 (file)
index d0e4289..0000000
+++ /dev/null
@@ -1,846 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIsel2_4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 52.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 102.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 152.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 77.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 127.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 177.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 52.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 65.0,
-          "y": 77.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 16.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 66.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 116.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 41.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 91.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 141.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 62.5
-          },
-          {
-            "x": 15.0,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 17.5,
-            "y": 87.5
-          },
-          {
-            "x": 17.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 17.5,
-            "y": 112.5
-          },
-          {
-            "x": 17.5,
-            "y": 107.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 17.5,
-            "y": 137.5
-          },
-          {
-            "x": 17.5,
-            "y": 157.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B1"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 162.5
-          },
-          {
-            "x": 10.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 12.5,
-            "y": 187.5
-          },
-          {
-            "x": 12.5,
-            "y": 82.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 212.5
-          },
-          {
-            "x": 15.0,
-            "y": 132.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 237.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "SA"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": ""
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "SB"
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        }
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        }
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": ""
-        }
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 167.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        }
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        }
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 192.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 42.5,
-            "y": 12.5
-          },
-          {
-            "x": 42.5,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 37.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 47.5,
-            "y": 62.5
-          },
-          {
-            "x": 47.5,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 87.5
-          },
-          {
-            "x": 50.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 52.5,
-            "y": 112.5
-          },
-          {
-            "x": 52.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 137.5
-          },
-          {
-            "x": 55.0,
-            "y": 67.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 57.5,
-            "y": 162.5
-          },
-          {
-            "x": 57.5,
-            "y": 82.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 187.5
-          },
-          {
-            "x": 60.0,
-            "y": 92.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "SA",
-      "SB",
-      "A1",
-      "A2",
-      "A3",
-      "A4",
-      "B1",
-      "B2",
-      "B3",
-      "B4"
-    ],
-    "label": "GUIsel2_4",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIsel3_4.json b/net.mograsim.logic.ui/components/GUIsel3_4.json
deleted file mode 100644 (file)
index cf4ad9d..0000000
+++ /dev/null
@@ -1,910 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIsel3_4",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "pos": {
-          "x": 35.0,
-          "y": 250.0
-        },
-        "name": "GUIsel2_4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 75.0,
-          "y": 250.0
-        },
-        "name": "GUInot4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 570.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 620.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 670.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 720.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 152.5,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 152.5,
-          "y": 65.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 152.5,
-          "y": 115.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 152.5,
-          "y": 165.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 584.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 634.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 684.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "SA"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "SA"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 25.0
-          },
-          {
-            "x": 25.0,
-            "y": 255.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "SB"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "SB"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 75.0
-          },
-          {
-            "x": 20.0,
-            "y": 265.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 175.0
-          },
-          {
-            "x": 15.0,
-            "y": 275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 225.0
-          },
-          {
-            "x": 10.0,
-            "y": 285.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 275.0
-          },
-          {
-            "x": 5.0,
-            "y": 295.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 325.0
-          },
-          {
-            "x": 5.0,
-            "y": 305.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 375.0
-          },
-          {
-            "x": 10.0,
-            "y": 315.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B2"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 425.0
-          },
-          {
-            "x": 15.0,
-            "y": 325.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B3"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 475.0
-          },
-          {
-            "x": 20.0,
-            "y": 335.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B4"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 525.0
-          },
-          {
-            "x": 25.0,
-            "y": 345.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "SC"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 125.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 125.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 125.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 735.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C1"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C2"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C3"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C4"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 115.0,
-            "y": 255.0
-          },
-          {
-            "x": 115.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 265.0
-          },
-          {
-            "x": 120.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 275.0
-          },
-          {
-            "x": 125.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 285.0
-          },
-          {
-            "x": 130.0,
-            "y": 170.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 135.0,
-            "y": 580.0
-          },
-          {
-            "x": 135.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 630.0
-          },
-          {
-            "x": 140.0,
-            "y": 80.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 145.0,
-            "y": 680.0
-          },
-          {
-            "x": 145.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 180.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "SA",
-      "SB",
-      "SC",
-      "A1",
-      "A2",
-      "A3",
-      "A4",
-      "B1",
-      "B2",
-      "B3",
-      "B4",
-      "C1",
-      "C2",
-      "C3",
-      "C4"
-    ],
-    "label": "GUIsel3_4",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/GUIxor.json b/net.mograsim.logic.ui/components/GUIxor.json
deleted file mode 100644 (file)
index 42029db..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIxor",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 7.5,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 35.0,
-          "y": 2.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 35.0,
-          "y": 27.5
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 62.5,
-          "y": 15.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 11.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        }
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 42.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "A",
-      "B"
-    ],
-    "label": "GUIxor",
-    "logic_width": 1,
-    "output_count": [
-      "Y"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901.json
deleted file mode 100644 (file)
index fa1d68e..0000000
+++ /dev/null
@@ -1,3329 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901",
-  "width": 35.0,
-  "height": 270.0,
-  "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 85.0
-      },
-      "name": "ORAMn",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 95.0
-      },
-      "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 265.0
-      },
-      "name": "IQn+3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 85.0
-      },
-      "name": "I0",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 255.0
-      },
-      "name": "IQn",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 75.0
-      },
-      "name": "I1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 65.0
-      },
-      "name": "I2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 55.0
-      },
-      "name": "I3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 65.0
-      },
-      "name": "OVR",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 45.0
-      },
-      "name": "I4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 105.0
-      },
-      "name": "Cn",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 115.0
-      },
-      "name": "OQn+3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 35.0
-      },
-      "name": "I5",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 25.0
-      },
-      "name": "I6",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 105.0
-      },
-      "name": "OQn",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 15.0
-      },
-      "name": "I7",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 5.0
-      },
-      "name": "I8",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 155.0
-      },
-      "name": "A0",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 165.0
-      },
-      "name": "A1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 175.0
-      },
-      "name": "A2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 185.0
-      },
-      "name": "A3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 235.0
-      },
-      "name": "IRAMn",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 55.0
-      },
-      "name": "Cn+4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 95.0
-      },
-      "name": "ORAMn+3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 45.0
-      },
-      "name": "F\u003d0",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 115.0
-      },
-      "name": "D1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 245.0
-      },
-      "name": "IRAMn+3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 75.0
-      },
-      "name": "F3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 125.0
-      },
-      "name": "D2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 195.0
-      },
-      "name": "B0",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 135.0
-      },
-      "name": "D3",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 205.0
-      },
-      "name": "B1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 145.0
-      },
-      "name": "D4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 215.0
-      },
-      "name": "B2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 225.0
-      },
-      "name": "B3",
-      "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.1,
-    "subComps": [
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 45.0
-        },
-        "name": "GUIAm2901DestDecode",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 275.0,
-          "y": 135.0
-        },
-        "name": "GUImux1_4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 190.0,
-          "y": 65.0
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 160.0,
-          "y": 75.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 240.0,
-          "y": 2110.0
-        },
-        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 275.0,
-          "y": 445.0
-        },
-        "name": "GUIor4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 320.0,
-          "y": 440.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 95.0,
-          "y": 2220.0
-        },
-        "name": "GUIram4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 160.0,
-          "y": 2220.0
-        },
-        "name": "GUIdlatch4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 160.0,
-          "y": 2275.0
-        },
-        "name": "GUIdlatch4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 2310.0
-        },
-        "name": "GUIsel3_4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 2510.0
-        },
-        "name": "GUIsel3_4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 90.0,
-          "y": 2490.0
-        },
-        "name": "GUIAm2901QReg",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 154.0,
-          "y": 949.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 154.0,
-          "y": 89.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 154.0,
-          "y": 2264.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 154.0,
-          "y": 2319.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 2314.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 2324.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 2334.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 219.0,
-          "y": 2224.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 224.0,
-          "y": 2234.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 229.0,
-          "y": 2244.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 234.0,
-          "y": 2254.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 129.0,
-          "y": 2494.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 134.0,
-          "y": 2504.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 139.0,
-          "y": 2514.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 144.0,
-          "y": 2524.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 219.0,
-          "y": 2494.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 234.0,
-          "y": 2524.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 2624.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 2634.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 279.0,
-          "y": 2114.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 294.0,
-          "y": 2144.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 329.0,
-          "y": 949.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 254.0,
-          "y": 2089.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 259.0,
-          "y": 2094.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 264.0,
-          "y": 2099.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 269.0,
-          "y": 2104.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 254.0,
-          "y": 449.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 259.0,
-          "y": 459.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 264.0,
-          "y": 469.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 269.0,
-          "y": 479.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 2354.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 2364.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 19.0,
-          "y": 2374.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 2394.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 19.0,
-          "y": 2404.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 2414.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 2384.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 2424.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 19.0,
-          "y": 2434.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 2444.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 314.0,
-          "y": 449.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I8"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I8"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I7"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I7"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 150.0
-          },
-          {
-            "x": 5.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I6"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I6"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 250.0
-          },
-          {
-            "x": 10.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "I5"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 350.0
-          },
-          {
-            "x": 130.0,
-            "y": 2115.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I4"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "I4"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 450.0
-          },
-          {
-            "x": 125.0,
-            "y": 2125.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I3"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "I3"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 550.0
-          },
-          {
-            "x": 120.0,
-            "y": 2135.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "I2"
-        },
-        "path": [
-          {
-            "x": 115.0,
-            "y": 650.0
-          },
-          {
-            "x": 115.0,
-            "y": 2145.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "I1"
-        },
-        "path": [
-          {
-            "x": 110.0,
-            "y": 750.0
-          },
-          {
-            "x": 110.0,
-            "y": 2155.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "I0"
-        },
-        "path": [
-          {
-            "x": 105.0,
-            "y": 850.0
-          },
-          {
-            "x": 105.0,
-            "y": 2165.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 155.0,
-            "y": 80.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "C"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "C"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "C"
-        },
-        "path": [
-          {
-            "x": 155.0,
-            "y": 2485.0
-          },
-          {
-            "x": 80.0,
-            "y": 2485.0
-          },
-          {
-            "x": 80.0,
-            "y": 2495.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "LSH"
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 90.0
-          },
-          {
-            "x": 55.0,
-            "y": 125.0
-          },
-          {
-            "x": 40.0,
-            "y": 125.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "NSH"
-        },
-        "pin2": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 50.0
-          },
-          {
-            "x": 60.0,
-            "y": 120.0
-          },
-          {
-            "x": 35.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "RSH"
-        },
-        "pin2": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 60.0
-          },
-          {
-            "x": 65.0,
-            "y": 115.0
-          },
-          {
-            "x": 30.0,
-            "y": 115.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "SA"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "SB"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "SC"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "SA"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 2515.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "SB"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 2525.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "SC"
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 2535.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A0"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A0"
-        },
-        "path": [
-          {
-            "x": 80.0,
-            "y": 1550.0
-          },
-          {
-            "x": 80.0,
-            "y": 2225.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 1650.0
-          },
-          {
-            "x": 75.0,
-            "y": 2235.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 70.0,
-            "y": 1750.0
-          },
-          {
-            "x": 70.0,
-            "y": 2245.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 1850.0
-          },
-          {
-            "x": 65.0,
-            "y": 2255.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B0"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B0"
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 1950.0
-          },
-          {
-            "x": 60.0,
-            "y": 2265.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B1"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 2050.0
-          },
-          {
-            "x": 55.0,
-            "y": 2275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B2"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 2150.0
-          },
-          {
-            "x": 50.0,
-            "y": 2285.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B3"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 2250.0
-          },
-          {
-            "x": 45.0,
-            "y": 2295.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QA1"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QA3"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QA4"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QB1"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "D1"
-        },
-        "path": [
-          {
-            "x": 150.0,
-            "y": 2265.0
-          },
-          {
-            "x": 150.0,
-            "y": 2280.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QB2"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "D2"
-        },
-        "path": [
-          {
-            "x": 145.0,
-            "y": 2275.0
-          },
-          {
-            "x": 145.0,
-            "y": 2290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QB3"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "D3"
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 2285.0
-          },
-          {
-            "x": 140.0,
-            "y": 2300.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "QB4"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "D4"
-        },
-        "path": [
-          {
-            "x": 135.0,
-            "y": 2295.0
-          },
-          {
-            "x": 135.0,
-            "y": 2310.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Cn"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "Cn"
-        },
-        "path": [
-          {
-            "x": 100.0,
-            "y": 1050.0
-          },
-          {
-            "x": 100.0,
-            "y": 2175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D1"
-        },
-        "path": [
-          {
-            "x": 180.0,
-            "y": 1150.0
-          },
-          {
-            "x": 180.0,
-            "y": 2185.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D2"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D2"
-        },
-        "path": [
-          {
-            "x": 175.0,
-            "y": 1250.0
-          },
-          {
-            "x": 175.0,
-            "y": 2195.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D3"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D3"
-        },
-        "path": [
-          {
-            "x": 170.0,
-            "y": 1350.0
-          },
-          {
-            "x": 170.0,
-            "y": 2205.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D4"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D4"
-        },
-        "path": [
-          {
-            "x": 165.0,
-            "y": 1450.0
-          },
-          {
-            "x": 165.0,
-            "y": 2215.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I0_1"
-        },
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I0_2"
-        },
-        "path": [
-          {
-            "x": 225.0,
-            "y": 160.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I0_3"
-        },
-        "path": [
-          {
-            "x": 230.0,
-            "y": 170.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I0_4"
-        },
-        "path": [
-          {
-            "x": 235.0,
-            "y": 180.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 200.0,
-            "y": 2280.0
-          },
-          {
-            "x": 200.0,
-            "y": 2265.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B2"
-        },
-        "path": [
-          {
-            "x": 205.0,
-            "y": 2290.0
-          },
-          {
-            "x": 205.0,
-            "y": 2275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B3"
-        },
-        "path": [
-          {
-            "x": 210.0,
-            "y": 2300.0
-          },
-          {
-            "x": 210.0,
-            "y": 2285.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B4"
-        },
-        "path": [
-          {
-            "x": 215.0,
-            "y": 2310.0
-          },
-          {
-            "x": 215.0,
-            "y": 2295.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "OQn"
-        },
-        "path": [
-          {
-            "x": 335.0,
-            "y": 2495.0
-          },
-          {
-            "x": 335.0,
-            "y": 1050.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "OQn+3"
-        },
-        "path": [
-          {
-            "x": 340.0,
-            "y": 2525.0
-          },
-          {
-            "x": 340.0,
-            "y": 1150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 135.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2635.0
-          },
-          {
-            "x": 35.0,
-            "y": 2635.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 140.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2640.0
-          },
-          {
-            "x": 40.0,
-            "y": 2640.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "C1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "C2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "C3"
-        },
-        "path": [
-          {
-            "x": 145.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2645.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "IQn+3"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "C4"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 2650.0
-          },
-          {
-            "x": 5.0,
-            "y": 2655.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "IQn"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 2550.0
-          },
-          {
-            "x": 5.0,
-            "y": 2545.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2555.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "Q1"
-        },
-        "path": [
-          {
-            "x": 220.0,
-            "y": 2305.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "Q2"
-        },
-        "path": [
-          {
-            "x": 225.0,
-            "y": 2505.0
-          },
-          {
-            "x": 225.0,
-            "y": 2315.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "Q3"
-        },
-        "path": [
-          {
-            "x": 230.0,
-            "y": 2515.0
-          },
-          {
-            "x": 230.0,
-            "y": 2325.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "Q4"
-        },
-        "path": [
-          {
-            "x": 235.0,
-            "y": 2335.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 2565.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 32,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 2575.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Cn+4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Cn+4"
-        },
-        "path": [
-          {
-            "x": 315.0,
-            "y": 2155.0
-          },
-          {
-            "x": 315.0,
-            "y": 550.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "OVR"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "OVR"
-        },
-        "path": [
-          {
-            "x": 320.0,
-            "y": 2165.0
-          },
-          {
-            "x": 320.0,
-            "y": 650.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "F1"
-        },
-        "pin2": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "F4"
-        },
-        "pin2": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "ORAMn"
-        },
-        "path": [
-          {
-            "x": 325.0,
-            "y": 2115.0
-          },
-          {
-            "x": 325.0,
-            "y": 850.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 330.0,
-            "y": 2145.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "ORAMn+3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 35,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F3"
-        },
-        "path": [
-          {
-            "x": 330.0,
-            "y": 750.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 33,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 280.0,
-            "y": 2090.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "F2"
-        },
-        "pin2": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 285.0,
-            "y": 2125.0
-          },
-          {
-            "x": 285.0,
-            "y": 2095.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "F3"
-        },
-        "pin2": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 290.0,
-            "y": 2135.0
-          },
-          {
-            "x": 290.0,
-            "y": 2100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 34,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 295.0,
-            "y": 2105.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 40,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I1_1"
-        },
-        "path": [
-          {
-            "x": 255.0,
-            "y": 190.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 41,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I1_2"
-        },
-        "path": [
-          {
-            "x": 260.0,
-            "y": 200.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 42,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I1_3"
-        },
-        "path": [
-          {
-            "x": 265.0,
-            "y": 210.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 43,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "I1_4"
-        },
-        "path": [
-          {
-            "x": 270.0,
-            "y": 220.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 36,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 44,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 2090.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 37,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 45,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 2095.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 38,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 46,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 2100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "IRAMn"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 2350.0
-          },
-          {
-            "x": 5.0,
-            "y": 2345.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 44,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 45,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 46,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 45,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 47,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 46,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 48,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 39,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 49,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 2105.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 44,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 50,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 50,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 47,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 48,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 49,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 47,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 51,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 48,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 52,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 49,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 53,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 51,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 52,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 53,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "IRAMn+3"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "C4"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 2450.0
-          },
-          {
-            "x": 5.0,
-            "y": 2455.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 50,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 2585.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 51,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B2"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 2595.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 52,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B3"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 2605.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 53,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B4"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 2615.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "D1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "D2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "D3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "D4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "RAMWE"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "WE"
-        },
-        "path": [
-          {
-            "x": 230.0,
-            "y": 70.0
-          },
-          {
-            "x": 230.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 2305.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "QWE"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "WE"
-        },
-        "path": [
-          {
-            "x": 85.0,
-            "y": 100.0
-          },
-          {
-            "x": 85.0,
-            "y": 2505.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "YF"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "S0"
-        },
-        "path": [
-          {
-            "x": 70.0,
-            "y": 80.0
-          },
-          {
-            "x": 70.0,
-            "y": 140.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y1"
-        },
-        "path": [
-          {
-            "x": 335.0,
-            "y": 140.0
-          },
-          {
-            "x": 335.0,
-            "y": 50.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y3"
-        },
-        "path": [
-          {
-            "x": 335.0,
-            "y": 160.0
-          },
-          {
-            "x": 335.0,
-            "y": 250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Y4"
-        },
-        "path": [
-          {
-            "x": 325.0,
-            "y": 170.0
-          },
-          {
-            "x": 325.0,
-            "y": 350.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 54,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 54,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 315.0,
-            "y": 445.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 54,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 315.0,
-            "y": 455.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F\u003d0"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "I8",
-      "I7",
-      "I6",
-      "I5",
-      "I4",
-      "I3",
-      "I2",
-      "I1",
-      "I0",
-      "C",
-      "Cn",
-      "D1",
-      "D2",
-      "D3",
-      "D4",
-      "A0",
-      "A1",
-      "A2",
-      "A3",
-      "B0",
-      "B1",
-      "B2",
-      "B3",
-      "IRAMn",
-      "IRAMn+3",
-      "IQn",
-      "IQn+3"
-    ],
-    "label": "GUIAm2901",
-    "logic_width": 1,
-    "output_count": [
-      "Y1",
-      "Y2",
-      "Y3",
-      "Y4",
-      "F\u003d0",
-      "Cn+4",
-      "OVR",
-      "F3",
-      "ORAMn",
-      "ORAMn+3",
-      "OQn",
-      "OQn+3"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUFuncDecode.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUFuncDecode.json
deleted file mode 100644 (file)
index 16bc1b1..0000000
+++ /dev/null
@@ -1,708 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901ALUFuncDecode",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.25,
-    "subComps": [
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 50.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 10.0
-        },
-        "name": "GUInand3",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 45.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 100.0,
-          "y": 50.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 100.0,
-          "y": 135.0
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 44.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 59.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 54.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 64.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 84.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 99.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 74.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 34.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 45.0
-          },
-          {
-            "x": 45.0,
-            "y": 50.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "FN"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 180.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I4"
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "SN"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 105.0
-          },
-          {
-            "x": 135.0,
-            "y": 105.0
-          },
-          {
-            "x": 135.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I3"
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "RN"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 220.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "CinE"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 5.0
-          },
-          {
-            "x": 115.0,
-            "y": 5.0
-          },
-          {
-            "x": 115.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "C"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "L"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "SBE"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "I5",
-      "I4",
-      "I3"
-    ],
-    "label": "GUIAm2901ALUFuncDecode",
-    "logic_width": 1,
-    "output_count": [
-      "CinE",
-      "L",
-      "SN",
-      "SBE",
-      "FN",
-      "RN"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUInclDecode.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUInclDecode.json
deleted file mode 100644 (file)
index 09d738a..0000000
+++ /dev/null
@@ -1,1493 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901ALUInclDecode",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.25,
-    "subComps": [
-      {
-        "pos": {
-          "x": 20.0,
-          "y": 2.5
-        },
-        "name": "GUIAm2901ALUFuncDecode",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 80.0
-        },
-        "name": "GUIAm2901ALUOneBit",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 180.0
-        },
-        "name": "GUIAm2901ALUOneBit",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 280.0
-        },
-        "name": "GUIAm2901ALUOneBit",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 380.0
-        },
-        "name": "GUIAm2901ALUOneBit",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 95.0,
-          "y": 400.0
-        },
-        "name": "GUIxor",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 94.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 194.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 294.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 26.5,
-          "y": 104.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 26.5,
-          "y": 204.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 26.5,
-          "y": 304.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 124.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 224.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 29.0,
-          "y": 324.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 31.5,
-          "y": 144.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 31.5,
-          "y": 244.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 31.5,
-          "y": 344.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 154.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 254.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 354.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 36.5,
-          "y": 164.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 36.5,
-          "y": 264.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 36.5,
-          "y": 364.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 84.0,
-          "y": 374.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 84.0,
-          "y": 384.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I5"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 20.0
-          },
-          {
-            "x": 5.0,
-            "y": 7.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I4"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I4"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 60.0
-          },
-          {
-            "x": 10.0,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I3"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I3"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 100.0
-          },
-          {
-            "x": 15.0,
-            "y": 27.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "SBE"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 70.0
-          },
-          {
-            "x": 25.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "CoutE"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "CoutE"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "CoutE"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "CoutE"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 395.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "CinE"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 70.0,
-            "y": 7.5
-          },
-          {
-            "x": 70.0,
-            "y": 77.5
-          },
-          {
-            "x": 27.5,
-            "y": 77.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "CinE"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "CinE"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "CinE"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "CinE"
-        },
-        "path": [
-          {
-            "x": 27.5,
-            "y": 405.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "RN"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 57.5,
-            "y": 57.5
-          },
-          {
-            "x": 57.5,
-            "y": 65.0
-          },
-          {
-            "x": 30.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "RN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "RN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "RN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "RN"
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 425.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "SN"
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 27.5
-          },
-          {
-            "x": 65.0,
-            "y": 72.5
-          },
-          {
-            "x": 32.5,
-            "y": 72.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "SN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "SN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "SN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "SN"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 445.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 60.0,
-            "y": 47.5
-          },
-          {
-            "x": 60.0,
-            "y": 67.5
-          },
-          {
-            "x": 35.0,
-            "y": 67.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "FN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "FN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "FN"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "FN"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 455.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "L"
-        },
-        "pin2": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 67.5,
-            "y": 17.5
-          },
-          {
-            "x": 67.5,
-            "y": 75.0
-          },
-          {
-            "x": 37.5,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "L"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "L"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "L"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "L"
-        },
-        "path": [
-          {
-            "x": 37.5,
-            "y": 465.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "R1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "R"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 180.0
-          },
-          {
-            "x": 10.0,
-            "y": 115.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "R2"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "R"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 220.0
-          },
-          {
-            "x": 10.0,
-            "y": 215.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "R3"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "R"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 260.0
-          },
-          {
-            "x": 10.0,
-            "y": 315.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "R4"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "R"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 300.0
-          },
-          {
-            "x": 20.0,
-            "y": 415.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "S"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 340.0
-          },
-          {
-            "x": 15.0,
-            "y": 135.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S2"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "S"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 380.0
-          },
-          {
-            "x": 5.0,
-            "y": 235.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S3"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "S"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 420.0
-          },
-          {
-            "x": 10.0,
-            "y": 335.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S4"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "S"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 460.0
-          },
-          {
-            "x": 10.0,
-            "y": 435.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Cn"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "Cin"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 140.0
-          },
-          {
-            "x": 5.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Cout"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "Cin"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Cout"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "Cin"
-        },
-        "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": {
-          "compId": 4,
-          "pinName": "Cout"
-        },
-        "pin2": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 85.0,
-            "y": 285.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "Cin"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 375.0
-          },
-          {
-            "x": 40.0,
-            "y": 385.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Cout"
-        },
-        "pin2": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "F"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F1"
-        },
-        "path": [
-          {
-            "x": 90.0,
-            "y": 95.0
-          },
-          {
-            "x": 90.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "F"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F2"
-        },
-        "path": [
-          {
-            "x": 95.0,
-            "y": 195.0
-          },
-          {
-            "x": 95.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "F"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F3"
-        },
-        "path": [
-          {
-            "x": 100.0,
-            "y": 295.0
-          },
-          {
-            "x": 100.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "F"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F4"
-        },
-        "path": [
-          {
-            "x": 105.0,
-            "y": 395.0
-          },
-          {
-            "x": 105.0,
-            "y": 140.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 90.0,
-            "y": 375.0
-          },
-          {
-            "x": 90.0,
-            "y": 405.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 85.0,
-            "y": 415.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Cn+4"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 385.0
-          },
-          {
-            "x": 130.0,
-            "y": 180.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "OVR"
-        }
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "I5",
-      "I4",
-      "I3",
-      "Cn",
-      "R1",
-      "R2",
-      "R3",
-      "R4",
-      "S1",
-      "S2",
-      "S3",
-      "S4"
-    ],
-    "label": "GUIAm2901ALUInclDecode",
-    "logic_width": 1,
-    "output_count": [
-      "F1",
-      "F2",
-      "F3",
-      "F4",
-      "Cn+4",
-      "OVR"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
deleted file mode 100644 (file)
index 0b15fc0..0000000
+++ /dev/null
@@ -1,1348 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.25,
-    "subComps": [
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 165.0
-        },
-        "name": "GUIAm2901SourceDecode",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 365.0
-        },
-        "name": "GUIsel2_4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 45.0,
-          "y": 575.0
-        },
-        "name": "GUIsel3_4",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 60.0,
-          "y": 15.0
-        },
-        "name": "GUIAm2901ALUInclDecode",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 459.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 14.0,
-          "y": 499.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 19.0,
-          "y": 539.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 24.0,
-          "y": 579.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "I5"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "I4"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 60.0
-          },
-          {
-            "x": 5.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I3"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "I3"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 100.0
-          },
-          {
-            "x": 15.0,
-            "y": 40.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I2"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 140.0
-          },
-          {
-            "x": 5.0,
-            "y": 170.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "I0"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 220.0
-          },
-          {
-            "x": 5.0,
-            "y": 190.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Cn"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "Cn"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 260.0
-          },
-          {
-            "x": 10.0,
-            "y": 50.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 300.0
-          },
-          {
-            "x": 15.0,
-            "y": 390.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D2"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 340.0
-          },
-          {
-            "x": 10.0,
-            "y": 400.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D3"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 380.0
-          },
-          {
-            "x": 5.0,
-            "y": 410.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D4"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A4"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 430.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B2"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 440.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B3"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 450.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B4"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 460.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A1"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 610.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A2"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 620.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A3"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 630.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A4"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 640.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B1"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B1"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 620.0
-          },
-          {
-            "x": 5.0,
-            "y": 650.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B3"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 700.0
-          },
-          {
-            "x": 5.0,
-            "y": 670.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B4"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 740.0
-          },
-          {
-            "x": 10.0,
-            "y": 680.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "C1"
-        },
-        "path": [
-          {
-            "x": 15.0,
-            "y": 780.0
-          },
-          {
-            "x": 15.0,
-            "y": 690.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "C2"
-        },
-        "path": [
-          {
-            "x": 20.0,
-            "y": 820.0
-          },
-          {
-            "x": 20.0,
-            "y": 700.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "C3"
-        },
-        "path": [
-          {
-            "x": 25.0,
-            "y": 860.0
-          },
-          {
-            "x": 25.0,
-            "y": 710.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "C4"
-        },
-        "path": [
-          {
-            "x": 30.0,
-            "y": 900.0
-          },
-          {
-            "x": 30.0,
-            "y": 720.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "SQ"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "SC"
-        },
-        "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": {
-          "compId": 1,
-          "pinName": "RA"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "SB"
-        },
-        "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": {
-          "compId": 1,
-          "pinName": "SB"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "SB"
-        },
-        "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
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "SA"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "SA"
-        },
-        "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": {
-          "compId": 1,
-          "pinName": "RD"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "SA"
-        },
-        "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": {
-          "compId": 2,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "R1"
-        },
-        "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": {
-          "compId": 2,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "R2"
-        },
-        "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": {
-          "compId": 2,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "R3"
-        },
-        "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": {
-          "compId": 2,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "R4"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "S1"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "S2"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "S3"
-        },
-        "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": {
-          "compId": 3,
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "S4"
-        },
-        "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": {
-          "compId": 4,
-          "pinName": "F1"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "F2"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F2"
-        },
-        "path": [
-          {
-            "x": 135.0,
-            "y": 30.0
-          },
-          {
-            "x": 135.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "F3"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F3"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 40.0
-          },
-          {
-            "x": 130.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "F4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F4"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 50.0
-          },
-          {
-            "x": 125.0,
-            "y": 140.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Cn+4"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Cn+4"
-        },
-        "path": [
-          {
-            "x": 120.0,
-            "y": 60.0
-          },
-          {
-            "x": 120.0,
-            "y": 180.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "OVR"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "OVR"
-        },
-        "path": [
-          {
-            "x": 115.0,
-            "y": 70.0
-          },
-          {
-            "x": 115.0,
-            "y": 220.0
-          }
-        ]
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "I5",
-      "I4",
-      "I3",
-      "I2",
-      "I1",
-      "I0",
-      "Cn",
-      "D1",
-      "D2",
-      "D3",
-      "D4",
-      "A1",
-      "A2",
-      "A3",
-      "A4",
-      "B1",
-      "B2",
-      "B3",
-      "B4",
-      "Q1",
-      "Q2",
-      "Q3",
-      "Q4"
-    ],
-    "label": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
-    "logic_width": 1,
-    "output_count": [
-      "F1",
-      "F2",
-      "F3",
-      "F4",
-      "Cn+4",
-      "OVR"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUOneBit.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901ALUOneBit.json
deleted file mode 100644 (file)
index cd8e6c0..0000000
+++ /dev/null
@@ -1,537 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901ALUOneBit",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 20.0
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 190.0
-        },
-        "name": "GUIxor",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 290.0
-        },
-        "name": "GUIxor",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 60.0,
-          "y": 20.0
-        },
-        "name": "GUIfulladder",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 60.0,
-          "y": 55.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 135.0,
-          "y": 20.0
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 90.0,
-          "y": 70.0
-        },
-        "name": "GUImux1",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 135.0,
-          "y": 70.0
-        },
-        "name": "GUIxor",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 49.0,
-          "y": 59.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 54.0,
-          "y": 69.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "Cin"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "CoutE"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "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": {
-          "compId": 0,
-          "pinName": "CinE"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 125.0
-          },
-          {
-            "x": 7.5,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "R"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "RN"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "S"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "SN"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 375.0
-          },
-          {
-            "x": 130.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "L"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "S0"
-        },
-        "path": [
-          {
-            "x": 87.5,
-            "y": 425.0
-          },
-          {
-            "x": 87.5,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 195.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 50.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 295.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "C"
-        },
-        "path": [
-          {
-            "x": 55.0,
-            "y": 45.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "I0"
-        },
-        "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": {
-          "compId": 4,
-          "pinName": "Z"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "I1"
-        },
-        "path": [
-          {
-            "x": 82.5,
-            "y": 65.0
-          },
-          {
-            "x": 82.5,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Cout"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "F"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "Cin",
-      "CoutE",
-      "CinE",
-      "R",
-      "RN",
-      "S",
-      "SN",
-      "FN",
-      "L"
-    ],
-    "label": "GUIAm2901ALUOneBit",
-    "logic_width": 1,
-    "output_count": [
-      "Cout",
-      "F"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901DestDecode.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901DestDecode.json
deleted file mode 100644 (file)
index 51dae7b..0000000
+++ /dev/null
@@ -1,1075 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901DestDecode",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.25,
-    "subComps": [
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 50.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 90.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 150.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 50.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 90.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 130.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 90.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 145.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 110.0,
-          "y": 105.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 115.0,
-          "y": 210.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 14.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 24.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 59.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 64.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 9.0,
-          "y": 104.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 154.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 59.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 44.0,
-          "y": 54.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 39.0,
-          "y": 134.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 74.0,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 74.0,
-          "y": 99.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 74.0,
-          "y": 104.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 74.0,
-          "y": 159.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 109.0,
-          "y": 214.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I8"
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I7"
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I6"
-        },
-        "pin2": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 165.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 5.0
-          },
-          {
-            "x": 40.0,
-            "y": 5.0
-          },
-          {
-            "x": 40.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "NSH"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 5.0
-          },
-          {
-            "x": 135.0,
-            "y": 5.0
-          },
-          {
-            "x": 135.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 45.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 10.0,
-            "y": 115.0
-          },
-          {
-            "x": 45.0,
-            "y": 115.0
-          },
-          {
-            "x": 45.0,
-            "y": 105.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 40.0,
-            "y": 145.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "RAMWE"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 60.0
-          },
-          {
-            "x": 125.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "LSH"
-        },
-        "path": [
-          {
-            "x": 125.0,
-            "y": 140.0
-          },
-          {
-            "x": 125.0,
-            "y": 180.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "RSH"
-        },
-        "path": [
-          {
-            "x": 130.0,
-            "y": 20.0
-          },
-          {
-            "x": 130.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 75.0,
-            "y": 170.0
-          },
-          {
-            "x": 105.0,
-            "y": 170.0
-          },
-          {
-            "x": 105.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 110.0,
-            "y": 155.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 110.0,
-            "y": 225.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "YF"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "QWE"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "I8",
-      "I7",
-      "I6"
-    ],
-    "label": "GUIAm2901DestDecode",
-    "logic_width": 1,
-    "output_count": [
-      "NSH",
-      "RSH",
-      "RAMWE",
-      "YF",
-      "LSH",
-      "QWE"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901QReg.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901QReg.json
deleted file mode 100644 (file)
index 2743868..0000000
+++ /dev/null
@@ -1,423 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901QReg",
-  "width": 35.0,
-  "height": 60.0,
-  "interfacePins": [
-    {
-      "location": {
-        "x": 0.0,
-        "y": 55.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": 5.0
-      },
-      "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 35.0
-      },
-      "name": "Q4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 25.0
-      },
-      "name": "D1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 15.0
-      },
-      "name": "WE",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 35.0
-      },
-      "name": "D2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 45.0
-      },
-      "name": "D3",
-      "logicWidth": 1
-    }
-  ],
-  "composition": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "pos": {
-          "x": 5.0,
-          "y": 15.0
-        },
-        "name": "GUIand",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 7.5
-        },
-        "name": "GUIdff",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 32.5
-        },
-        "name": "GUIdff",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 57.5
-        },
-        "name": "GUIdff",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 82.5
-        },
-        "name": "GUIdff",
-        "params": {}
-      },
-      {
-        "pos": {
-          "x": 41.5,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 41.5,
-          "y": 36.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 41.5,
-          "y": 61.5
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "C"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "C"
-        },
-        "path": [
-          {
-            "x": 42.5,
-            "y": 12.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "C"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "C"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "C"
-        },
-        "path": [
-          {
-            "x": 42.5,
-            "y": 87.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "D"
-        },
-        "path": [
-          {
-            "x": 17.5,
-            "y": 62.5
-          },
-          {
-            "x": 17.5,
-            "y": 42.5
-          },
-          {
-            "x": 45.0,
-            "y": 42.5
-          },
-          {
-            "x": 45.0,
-            "y": 22.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D2"
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "D"
-        },
-        "path": [
-          {
-            "x": 22.5,
-            "y": 87.5
-          },
-          {
-            "x": 22.5,
-            "y": 47.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D3"
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "D"
-        },
-        "path": [
-          {
-            "x": 27.5,
-            "y": 112.5
-          },
-          {
-            "x": 27.5,
-            "y": 72.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "D4"
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "D"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 137.5
-          },
-          {
-            "x": 32.5,
-            "y": 97.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q1"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q2"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q3"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Q"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "Q4"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "C",
-      "WE",
-      "D1",
-      "D2",
-      "D3",
-      "D4"
-    ],
-    "label": "GUIAm2901QReg",
-    "logic_width": 1,
-    "output_count": [
-      "Q1",
-      "Q2",
-      "Q3",
-      "Q4"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/am2901/GUIAm2901SourceDecode.json b/net.mograsim.logic.ui/components/am2901/GUIAm2901SourceDecode.json
deleted file mode 100644 (file)
index 6bc92ac..0000000
+++ /dev/null
@@ -1,1117 +0,0 @@
-mograsim version: 0.1.1
-{
-  "type": "SimpleRectangularSubmodelComponent",
-  "name": "GUIAm2901SourceDecode",
-  "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
-    }
-  ],
-  "composition": {
-    "innerScale": 0.25,
-    "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 50.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 90.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 50.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 90.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 130.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 40.0,
-          "y": 170.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 70.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 70.0,
-          "y": 50.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 70.0,
-          "y": 90.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 70.0,
-          "y": 130.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 70.0,
-          "y": 170.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 100.0,
-          "y": 10.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 100.0,
-          "y": 170.0
-        },
-        "name": "GUINandGate",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 4.0,
-          "y": 144.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 59.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 99.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 104.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 31.5,
-          "y": 54.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 59.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 64.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 34.0,
-          "y": 134.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 36.5,
-          "y": 99.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 64.0,
-          "y": 59.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 64.0,
-          "y": 99.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 64.0,
-          "y": 139.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 94.0,
-          "y": 19.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      },
-      {
-        "pos": {
-          "x": 94.0,
-          "y": 179.0
-        },
-        "name": "WireCrossPoint",
-        "params": {
-          "logicWidth": 1
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 17,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 1,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 16,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 18,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 5.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 185.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I1"
-        },
-        "pin2": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 19,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 2,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 0,
-          "pinName": "I0"
-        },
-        "pin2": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 20,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 3,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 21,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 7.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 105.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 1,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 22,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 6,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 32.5,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 2,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 4,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 23,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 5,
-          "pinName": "B"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 24,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 7,
-          "pinName": "A"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 25,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 35.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 3,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 37.5,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 26,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 8,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 37.5,
-            "y": 185.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 4,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 9,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 5,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 27,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 10,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 6,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 28,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 11,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 105.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 7,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 135.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 29,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 12,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 65.0,
-            "y": 145.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 8,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 13,
-          "pinName": "A"
-        }
-      },
-      {
-        "pin1": {
-          "compId": 9,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 95.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 30,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 14,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 95.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 10,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "RA"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 11,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "SB"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 12,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "SA"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 13,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "A"
-        },
-        "path": [
-          {
-            "x": 95.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 31,
-          "pinName": ""
-        },
-        "pin2": {
-          "compId": 15,
-          "pinName": "B"
-        },
-        "path": [
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compId": 14,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "SQ"
-        },
-        "path": []
-      },
-      {
-        "pin1": {
-          "compId": 15,
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compId": 0,
-          "pinName": "RD"
-        },
-        "path": []
-      }
-    ]
-  },
-  "specialized": {
-    "input_count": [
-      "I2",
-      "I1",
-      "I0"
-    ],
-    "label": "Am2901SourceDecode",
-    "logic_width": 1,
-    "output_count": [
-      "SQ",
-      "RA",
-      "SB",
-      "SA",
-      "RD"
-    ]
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.ui/components/mapping.json b/net.mograsim.logic.ui/components/mapping.json
deleted file mode 100644 (file)
index 02f3936..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-mograsim version: 0.1.1
-{
-  "GUIAm2901": "file:components/am2901/GUIAm2901.json",
-  "GUIAm2901ALUFuncDecode": "file:components/am2901/GUIAm2901ALUFuncDecode.json",
-  "GUIAm2901ALUInclDecode": "file:components/am2901/GUIAm2901ALUInclDecode.json",
-  "GUIAm2901ALUInclSourceDecodeInclFunctionDecode": "file:components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json",
-  "GUIAm2901ALUOneBit": "file:components/am2901/GUIAm2901ALUOneBit.json",
-  "GUIAm2901DestDecode": "file:components/am2901/GUIAm2901DestDecode.json",
-  "GUIAm2901QReg": "file:components/am2901/GUIAm2901QReg.json",
-  "GUIAm2901SourceDecode": "file:components/am2901/GUIAm2901SourceDecode.json",
-  "GUIAndGate": "class:net.mograsim.logic.ui.model.components.GUIAndGate",
-  "GUINandGate": "class:net.mograsim.logic.ui.model.components.GUINandGate",
-  "GUIOrGate": "class:net.mograsim.logic.ui.model.components.GUIOrGate",
-  "GUI_rsLatch": "file:components/GUI_rsLatch.json",
-  "GUIand": "file:components/GUIand.json",
-  "GUIand41": "file:components/GUIand41.json",
-  "GUIandor414": "file:components/GUIandor414.json",
-  "GUIdemux2": "file:components/GUIdemux2.json",
-  "GUIdff": "file:components/GUIdff.json",
-  "GUIdlatch": "file:components/GUIdlatch.json",
-  "GUIdlatch4": "file:components/GUIdlatch4.json",
-  "GUIfulladder": "file:components/GUIfulladder.json",
-  "GUIhalfadder": "file:components/GUIhalfadder.json",
-  "GUImux1": "file:components/GUImux1.json",
-  "GUImux1_4": "file:components/GUImux1_4.json",
-  "GUInand3": "file:components/GUInand3.json",
-  "GUInot4": "file:components/GUInot4.json",
-  "GUIor4": "file:components/GUIor4.json",
-  "GUIor_4": "file:components/GUIor_4.json",
-  "GUIram2": "file:components/GUIram2.json",
-  "GUIram4": "file:components/GUIram4.json",
-  "GUIsel2_4": "file:components/GUIsel2_4.json",
-  "GUIsel3_4": "file:components/GUIsel3_4.json",
-  "GUIxor": "file:components/GUIxor.json",
-  "WireCrossPoint": "class:net.mograsim.logic.ui.model.wires.WireCrossPoint"
-}
\ No newline at end of file
index 3a23428..c8e3333 100644 (file)
@@ -13,7 +13,8 @@ import net.mograsim.logic.ui.util.JsonHandler;
 public class GUIComponentCreator
 {
        private final static Map<String, String> componentMapping;
-       private final static String componentMappingPath = "components/mapping.json"; // TODO: manage this somewhere else
+       private final static String componentMappingPath = "../net.mograsim.logic.ui.am2900/components/mapping.json"; // TODO: manage this
+                                                                                                                                                                                                                                       // somewhere else
 
        static
        {
index c153956..1e2034e 100644 (file)
@@ -1,8 +1,6 @@
 package net.mograsim.logic.ui.model.components;
 
 import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Map;
@@ -14,7 +12,6 @@ import net.mograsim.logic.ui.model.components.SubmodelComponentParams.InnerWireP
 import net.mograsim.logic.ui.model.components.SubmodelComponentParams.InterfacePinParams;
 import net.mograsim.logic.ui.model.wires.GUIWire;
 import net.mograsim.logic.ui.model.wires.MovablePin;
-import net.mograsim.logic.ui.model.wires.WireCrossPoint;
 
 /**
  * Creates {@link SubmodelComponent}s from {@link SubmodelComponentParams}
index 366ab02..8e80249 100644 (file)
@@ -2,7 +2,7 @@ package net.mograsim.logic.ui.util;
 
 public final class Version
 {
-       public final static Version jsonCompVersion = new Version(0, 1, 1);
+       public final static Version jsonCompVersion = new Version(0, 1, 2);
        public final int major, minor, patch;
 
        public Version(int major, int minor, int patch)