New cells
diff --git a/cells/cell/AND2X1.cell b/cells/cell/AND2X1.cell
new file mode 100644
index 0000000..9ccf37f
--- /dev/null
+++ b/cells/cell/AND2X1.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B 1 vdd
+pmos 1 Y vdd
+nmos A 2 1
+nmos B 2 gnd
+nmos 1 Y gnd
diff --git a/cells/cell/AND2X2.cell b/cells/cell/AND2X2.cell
new file mode 100644
index 0000000..9ccf37f
--- /dev/null
+++ b/cells/cell/AND2X2.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B 1 vdd
+pmos 1 Y vdd
+nmos A 2 1
+nmos B 2 gnd
+nmos 1 Y gnd
diff --git a/cells/cell/AOI21X1.cell b/cells/cell/AOI21X1.cell
new file mode 100644
index 0000000..e4f8975
--- /dev/null
+++ b/cells/cell/AOI21X1.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs C B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B 1 vdd
+pmos C Y 1
+nmos A 2 gnd
+nmos B Y 2
+nmos C Y gnd
diff --git a/cells/cell/AOI22X1.cell b/cells/cell/AOI22X1.cell
new file mode 100644
index 0000000..7d10c30
--- /dev/null
+++ b/cells/cell/AOI22X1.cell
@@ -0,0 +1,12 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs D C B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B 1 vdd
+pmos D Y 1
+pmos C 1 Y
+nmos A 2 gnd
+nmos B Y 2
+nmos D 3 Y
+nmos C 3 gnd
diff --git a/cells/cell/BUFX2.cell b/cells/cell/BUFX2.cell
new file mode 100644
index 0000000..1957c01
--- /dev/null
+++ b/cells/cell/BUFX2.cell
@@ -0,0 +1,8 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos 1 Y vdd
+nmos A 1 gnd
+nmos 1 Y gnd
diff --git a/cells/cell/CLKBUF2.cell b/cells/cell/CLKBUF2.cell
new file mode 100644
index 0000000..6c61683
--- /dev/null
+++ b/cells/cell/CLKBUF2.cell
@@ -0,0 +1,28 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos A 1 vdd
+pmos 1 2 vdd
+pmos 1 2 vdd
+pmos 2 3 vdd
+pmos 2 3 vdd
+pmos 3 4 vdd
+pmos 3 4 vdd
+pmos 4 5 vdd
+pmos 4 5 vdd
+pmos 5 Y vdd
+pmos 5 Y vdd
+nmos A 1 gnd
+nmos A 1 gnd
+nmos 1 2 gnd
+nmos 1 2 gnd
+nmos 2 3 gnd
+nmos 2 3 gnd
+nmos 3 4 gnd
+nmos 3 4 gnd
+nmos 4 5 gnd
+nmos 4 5 gnd
+nmos 5 Y gnd
+nmos 5 Y gnd
diff --git a/cells/cell/CLKBUF3.cell b/cells/cell/CLKBUF3.cell
new file mode 100644
index 0000000..59104cc
--- /dev/null
+++ b/cells/cell/CLKBUF3.cell
@@ -0,0 +1,36 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos A 1 vdd
+pmos 1 2 vdd
+pmos 1 2 vdd
+pmos 2 3 vdd
+pmos 2 3 vdd
+pmos 3 4 vdd
+pmos 3 4 vdd
+pmos 4 5 vdd
+pmos 4 5 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 6 7 vdd
+pmos 6 7 vdd
+pmos 7 Y vdd
+pmos 7 Y vdd
+nmos A 1 gnd
+nmos A 1 gnd
+nmos 1 2 gnd
+nmos 1 2 gnd
+nmos 2 3 gnd
+nmos 2 3 gnd
+nmos 3 4 gnd
+nmos 3 4 gnd
+nmos 4 5 gnd
+nmos 4 5 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 6 7 gnd
+nmos 6 7 gnd
+nmos 7 Y gnd
+nmos 7 Y gnd
diff --git a/cells/cell/DFFNEGX1.cell b/cells/cell/DFFNEGX1.cell
new file mode 100644
index 0000000..eb4ec3e
--- /dev/null
+++ b/cells/cell/DFFNEGX1.cell
@@ -0,0 +1,26 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs D CLK
+.outputs Q
+.ORDER "MOSFET Gate Drain Source"
+pmos CLK 1 vdd
+pmos D 2 vdd
+pmos 1 3 2
+pmos CLK 4 3
+pmos 5 4 vdd
+pmos 3 5 vdd
+pmos 5 6 vdd
+pmos CLK 7 6
+pmos 1 8 7
+pmos Q 8 vdd
+nmos CLK 1 gnd
+pmos 7 Q vdd
+nmos D 9 gnd
+nmos CLK 3 9
+nmos 1 10 3
+nmos 5 10 gnd
+nmos 3 5 gnd
+nmos 5 11 gnd
+nmos 1 7 11
+nmos CLK 12 7
+nmos Q 12 gnd
+nmos 7 Q gnd
diff --git a/cells/cell/DFFPOSX1.cell b/cells/cell/DFFPOSX1.cell
new file mode 100644
index 0000000..8cbd8fa
--- /dev/null
+++ b/cells/cell/DFFPOSX1.cell
@@ -0,0 +1,26 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs D CLK
+.outputs Q
+.ORDER "MOSFET Gate Drain Source"
+pmos CLK 1 vdd
+pmos D 2 vdd
+pmos CLK 3 2
+pmos 1 4 3
+pmos 5 4 vdd
+pmos 3 5 vdd
+pmos 5 6 vdd
+pmos 1 7 6
+pmos CLK 8 7
+pmos Q 8 vdd
+nmos CLK 1 gnd
+pmos 7 Q vdd
+nmos D 9 gnd
+nmos 1 3 9
+nmos CLK 10 3
+nmos 5 10 gnd
+nmos 3 5 gnd
+nmos 5 11 gnd
+nmos CLK 7 11
+nmos 1 12 7
+nmos Q 12 gnd
+nmos 7 Q gnd
diff --git a/cells/cell/DFFSR.cell b/cells/cell/DFFSR.cell
new file mode 100644
index 0000000..f8d5e14
--- /dev/null
+++ b/cells/cell/DFFSR.cell
@@ -0,0 +1,36 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs S R D CLK
+.outputs Q
+.ORDER "MOSFET Gate Drain Source"
+pmos R 1 vdd
+pmos 2 1 vdd
+pmos 3 2 vdd
+pmos S 2 vdd
+pmos 4 3 1
+pmos 5 6 3
+pmos D 6 vdd
+pmos 4 5 vdd
+pmos CLK 4 vdd
+pmos 4 7 2
+pmos 5 8 7
+pmos 7 9 vdd
+pmos R 9 vdd
+pmos 9 8 vdd
+pmos S 8 vdd
+pmos 9 Q vdd
+nmos R 10 1
+nmos 2 10 gnd
+nmos 3 11 gnd
+nmos S 2 11
+nmos 5 3 1
+nmos 4 6 3
+nmos D 6 gnd
+nmos 4 5 gnd
+nmos CLK 4 gnd
+nmos 5 7 2
+nmos 4 8 7
+nmos 7 12 9
+nmos R 12 gnd
+nmos 9 13 gnd
+nmos S 8 13
+nmos 9 Q gnd
diff --git a/cells/cell/FAX1.cell b/cells/cell/FAX1.cell
new file mode 100644
index 0000000..3d8e7bd
--- /dev/null
+++ b/cells/cell/FAX1.cell
@@ -0,0 +1,32 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs C B A
+.outputs YS YC
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B 1 vdd
+pmos C 2 1
+pmos B 3 2
+pmos A 3 vdd
+pmos A 4 vdd
+pmos B 4 vdd
+pmos C 4 vdd
+pmos 2 5 4
+pmos C 6 5
+pmos B 7 6
+pmos A 7 vdd
+pmos 5 YS vdd
+pmos 2 YC vdd
+nmos A 8 gnd
+nmos B 8 gnd
+nmos C 2 8
+nmos B 9 2
+nmos A 9 gnd
+nmos A 10 gnd
+nmos B 10 gnd
+nmos C 10 gnd
+nmos 2 5 10
+nmos C 11 5
+nmos B 12 11
+nmos A 12 gnd
+nmos 5 YS gnd
+nmos 2 YC gnd
diff --git a/cells/cell/HAX1.cell b/cells/cell/HAX1.cell
new file mode 100644
index 0000000..d361eb1
--- /dev/null
+++ b/cells/cell/HAX1.cell
@@ -0,0 +1,18 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs YS YC
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B 1 vdd
+pmos 1 YC vdd
+pmos 1 2 vdd
+pmos B 3 2
+pmos A 3 vdd
+pmos 2 YS vdd
+nmos A 4 gnd
+nmos B 1 4
+nmos 1 YC gnd
+nmos 1 5 gnd
+nmos B 2 5
+nmos A 5 2
+nmos 2 YS gnd
diff --git a/cells/cell/INV.cell b/cells/cell/INV.cell
new file mode 100644
index 0000000..c311284
--- /dev/null
+++ b/cells/cell/INV.cell
@@ -0,0 +1,22 @@
+.DESCRIPTION a Not (or Inverter) gate
+.cell INV
+.inputs A
+.outputs Y
+#           ^ Vdd
+#           |
+#       | +-'
+#  A --o| |     pMOS
+#       | +-.
+#           |
+#           |
+#           *---- Y
+#           |
+#           |
+#       | +-'
+#  A ---| |     nMOS
+#       | +-.
+#           |
+#          _|_ Gnd
+pmos A Y vdd vdd 1 1  1
+nmos A Y gnd gnd 1 1 -1
+.end
diff --git a/cells/cell/INVX1.cell b/cells/cell/INVX1.cell
new file mode 100644
index 0000000..df6858c
--- /dev/null
+++ b/cells/cell/INVX1.cell
@@ -0,0 +1,6 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A Y vdd
+nmos A Y gnd
diff --git a/cells/cell/INVX2.cell b/cells/cell/INVX2.cell
new file mode 100644
index 0000000..df6858c
--- /dev/null
+++ b/cells/cell/INVX2.cell
@@ -0,0 +1,6 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A Y vdd
+nmos A Y gnd
diff --git a/cells/cell/INVX4.cell b/cells/cell/INVX4.cell
new file mode 100644
index 0000000..1c34a75
--- /dev/null
+++ b/cells/cell/INVX4.cell
@@ -0,0 +1,8 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A Y vdd
+pmos A Y vdd
+nmos A Y gnd
+nmos A Y gnd
diff --git a/cells/cell/INVX8.cell b/cells/cell/INVX8.cell
new file mode 100644
index 0000000..56cb811
--- /dev/null
+++ b/cells/cell/INVX8.cell
@@ -0,0 +1,12 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A Y vdd
+pmos A Y vdd
+pmos A Y vdd
+pmos A Y vdd
+nmos A Y gnd
+nmos A Y gnd
+nmos A Y gnd
+nmos A Y gnd
diff --git a/cells/cell/LATCH.cell b/cells/cell/LATCH.cell
new file mode 100644
index 0000000..63412ce
--- /dev/null
+++ b/cells/cell/LATCH.cell
@@ -0,0 +1,16 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs D CLK
+.outputs Q
+.ORDER "MOSFET Gate Drain Source"
+pmos CLK 1 vdd
+pmos D 2 vdd
+pmos 1 3 2
+pmos CLK 4 3
+pmos Q 4 vdd
+nmos CLK 1 gnd
+pmos 3 Q vdd
+nmos D 5 gnd
+nmos CLK 3 5
+nmos 1 6 3
+nmos Q 6 gnd
+nmos 3 Q gnd
diff --git a/cells/cell/LOFTY.cell b/cells/cell/LOFTY.cell
new file mode 100644
index 0000000..59e8d1f
--- /dev/null
+++ b/cells/cell/LOFTY.cell
@@ -0,0 +1,33 @@
+.inputs asel_p asel_n bsel_p bsel_n muxsel_p muxsel_n usexor_p usexor_n usemux_p usemux_n 
+.outputs q
+.differential usemux_p usemux_n
+.differential asel_p asel_n
+.differential usexor_p usexor_n
+.differential bsel_p bsel_n
+.differential muxsel_p muxsel_n
+.ORDER "MOSFET Gate Drain Source"
+nmos usemux_p q N0
+nmos usemux_n q N1
+nmos asel_p N0 N00
+nmos asel_n N0 N01
+nmos usexor_p N00 gnd
+nmos usexor_n N00 N001
+nmos bsel_p N001 gnd
+nmos bsel_n N011 gnd
+nmos usexor_p N01 N001
+nmos usexor_n N01 N011
+nmos muxsel_n N1 N001
+nmos muxsel_p N1 N10
+nmos asel_p N10 gnd
+pmos usemux_n P0 q
+pmos usemux_p P1 q
+pmos asel_n P00 P0
+pmos asel_p P01 P0
+pmos usexor_p P001 P00
+pmos bsel_p vcc P001
+pmos usexor_n P001 P01
+pmos usexor_p P011 P01
+pmos bsel_n vcc P011
+pmos muxsel_p P001 P1
+pmos muxsel_n P10 P1
+pmos asel_p vcc P10
diff --git a/cells/cell/LOFTY2.cell b/cells/cell/LOFTY2.cell
new file mode 100644
index 0000000..0fd18fe
--- /dev/null
+++ b/cells/cell/LOFTY2.cell
@@ -0,0 +1,50 @@
+.inputs usemux_p muxsel_p asel_p usexor_p bsel_p usemux_n muxsel_n asel_n usexor_n bsel_n
+.outputs q
+.ORDER "MOSFET Gate Drain Source"
+pmos usemux_p usemux_n vdd
+nmos usemux_p usemux_n gnd
+
+pmos muxsel_p muxsel_n vdd
+nmos muxsel_p muxsel_n gnd
+
+pmos asel_p asel_n vdd
+nmos asel_p asel_n gnd
+
+pmos usexor_p usexor_n vdd
+nmos usexor_p usexor_n gnd
+
+pmos bsel_p bsel_n vdd
+nmos bsel_p bsel_n gnd
+
+nmos usemux_n q usemux0n
+pmos usemux_p usemux0p q
+nmos usemux_p q usemux1n
+pmos usemux_n usemux1p q
+
+nmos muxsel_p usemux1n usemux1muxsel1n
+pmos muxsel_n usemux1muxsel1p usemux1p
+nmos muxsel_n usemux1n usemux1muxsel0n
+pmos muxsel_p usemux1muxsel0p usemux1p
+
+nmos asel_n usemux1muxsel0n gnd
+pmos asel_n vdd usemux1muxsel0p
+
+nmos bsel_n usemux1muxsel1n gnd
+pmos bsel_n vdd usemux1muxsel1p
+
+nmos asel_n usemux0n usemux0asel0n
+pmos asel_p usemux0asel0p usemux0p
+nmos asel_p usemux0n usemux0asel1n
+pmos asel_n usemux0asel1p usemux0p
+
+nmos usexor_n usemux0asel1n usemux1muxsel1n
+pmos usexor_p usemux1muxsel1p usemux0asel1p
+nmos usexor_p usemux0asel1n usemux1muxsel1usexor1n
+pmos usexor_n usemux1muxsel1usexor1p usemux0asel1p
+
+nmos bsel_p usemux1muxsel1usexor1n gnd
+pmos bsel_p vdd usemux1muxsel1usexor1p
+
+nmos usexor_n usemux0asel0n gnd
+nmos usexor_p usemux0asel0n usemux1muxsel1n
+pmos usexor_n usemux1muxsel1p usemux0asel0p
diff --git a/cells/cell/MUX2X1.cell b/cells/cell/MUX2X1.cell
new file mode 100644
index 0000000..8a34795
--- /dev/null
+++ b/cells/cell/MUX2X1.cell
@@ -0,0 +1,14 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs S B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos S 1 vdd
+pmos B 2 vdd
+pmos S Y 2
+pmos 1 3 Y
+pmos A 3 vdd
+nmos S 1 gnd
+nmos B 4 gnd
+nmos 1 Y 4
+nmos S 5 Y
+nmos A 5 gnd
diff --git a/cells/cell/NAND2X1.cell b/cells/cell/NAND2X1.cell
new file mode 100644
index 0000000..20cdae9
--- /dev/null
+++ b/cells/cell/NAND2X1.cell
@@ -0,0 +1,8 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A Y vdd
+pmos B Y vdd
+nmos A 1 gnd
+nmos B Y 1
diff --git a/cells/cell/NAND3X1.cell b/cells/cell/NAND3X1.cell
new file mode 100644
index 0000000..c7fc932
--- /dev/null
+++ b/cells/cell/NAND3X1.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs C B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A Y vdd
+pmos B Y vdd
+pmos C Y vdd
+nmos A 1 gnd
+nmos B 2 1
+nmos C Y 2
diff --git a/cells/cell/NOR2X1.cell b/cells/cell/NOR2X1.cell
new file mode 100644
index 0000000..32d5a8a
--- /dev/null
+++ b/cells/cell/NOR2X1.cell
@@ -0,0 +1,8 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B Y 1
+nmos A Y gnd
+nmos B Y gnd
diff --git a/cells/cell/OAI21X1.cell b/cells/cell/OAI21X1.cell
new file mode 100644
index 0000000..65dd544
--- /dev/null
+++ b/cells/cell/OAI21X1.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs C B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B Y 1
+pmos C Y vdd
+nmos A 2 gnd
+nmos B 2 gnd
+nmos C Y 2
diff --git a/cells/cell/OAI22X1.cell b/cells/cell/OAI22X1.cell
new file mode 100644
index 0000000..b2d91f3
--- /dev/null
+++ b/cells/cell/OAI22X1.cell
@@ -0,0 +1,12 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs D C B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B Y 1
+pmos D 2 Y
+pmos C 2 vdd
+nmos A 3 gnd
+nmos B 3 gnd
+nmos D Y 3
+nmos C 3 Y
diff --git a/cells/cell/OR2X1.cell b/cells/cell/OR2X1.cell
new file mode 100644
index 0000000..1ff3863
--- /dev/null
+++ b/cells/cell/OR2X1.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 2
+pmos B 1 vdd
+pmos 2 Y vdd
+nmos A 2 gnd
+nmos B 2 gnd
+nmos 2 Y gnd
diff --git a/cells/cell/OR2X2.cell b/cells/cell/OR2X2.cell
new file mode 100644
index 0000000..1ff3863
--- /dev/null
+++ b/cells/cell/OR2X2.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 2
+pmos B 1 vdd
+pmos 2 Y vdd
+nmos A 2 gnd
+nmos B 2 gnd
+nmos 2 Y gnd
diff --git a/cells/cell/PADINC.cell b/cells/cell/PADINC.cell
new file mode 100644
index 0000000..1a19d97
--- /dev/null
+++ b/cells/cell/PADINC.cell
@@ -0,0 +1,86 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs DI
+.outputs YPAD
+.ORDER "MOSFET Gate Drain Source"
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+nmos gnd2 2 gnd
+nmos 2 3 gnd
+nmos gnd2 4 gnd
+nmos gnd2 4 gnd
+nmos gnd2 4 gnd
+nmos gnd2 4 gnd
+nmos gnd2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 3 1 4
+nmos 3 4 1
+nmos 3 1 4
+nmos 3 4 1
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+pmos gnd2 2 vdd
+pmos 2 3 vdd
+pmos gnd2 1 vdd
+pmos gnd2 1 vdd
+pmos gnd2 1 vdd
+pmos gnd2 1 vdd
+pmos gnd2 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 2 4 1
+pmos 2 1 4
+pmos 2 4 1
+pmos 2 1 4
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+res YPAD 5 100
+res 5 YPAD 100
diff --git a/cells/cell/PADINOUT.cell b/cells/cell/PADINOUT.cell
new file mode 100644
index 0000000..b7263cc
--- /dev/null
+++ b/cells/cell/PADINOUT.cell
@@ -0,0 +1,86 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs OEN DI
+.outputs YPAD DO
+.ORDER "MOSFET Gate Drain Source"
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+nmos OEN 2 gnd
+nmos 2 3 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 3 1 4
+nmos 3 4 1
+nmos 3 1 4
+nmos 3 4 1
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+nmos 6 DI gnd
+pmos OEN 2 vdd
+pmos 2 3 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 2 4 1
+pmos 2 1 4
+pmos 2 4 1
+pmos 2 1 4
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+pmos 6 DI vdd
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+res YPAD 5 100
+res 5 YPAD 100
diff --git a/cells/cell/PADOUT.cell b/cells/cell/PADOUT.cell
new file mode 100644
index 0000000..798b29c
--- /dev/null
+++ b/cells/cell/PADOUT.cell
@@ -0,0 +1,86 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs 
+.outputs YPAD DO
+.ORDER "MOSFET Gate Drain Source"
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+pmos 1 vdd2 YPAD
+pmos 1 YPAD vdd2
+nmos vdd 2 gnd
+nmos 2 3 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos DO 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 2 4 gnd
+nmos 3 1 4
+nmos 3 4 1
+nmos 3 1 4
+nmos 3 4 1
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 5 6 gnd
+nmos 6 7 gnd
+nmos 6 7 gnd
+nmos 6 7 gnd
+nmos 6 7 gnd
+nmos 6 7 gnd
+nmos 6 7 gnd
+pmos vdd 2 vdd
+pmos 2 3 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos DO 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 3 1 vdd
+pmos 2 4 1
+pmos 2 1 4
+pmos 2 4 1
+pmos 2 1 4
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 5 6 vdd
+pmos 6 7 vdd
+pmos 6 7 vdd
+pmos 6 7 vdd
+pmos 6 7 vdd
+pmos 6 7 vdd
+pmos 6 7 vdd
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+nmos 4 gnd2 YPAD
+nmos 4 YPAD gnd2
+res YPAD 5 100
+res 5 YPAD 100
diff --git a/cells/cell/TBUFX1.cell b/cells/cell/TBUFX1.cell
new file mode 100644
index 0000000..f4a92ad
--- /dev/null
+++ b/cells/cell/TBUFX1.cell
@@ -0,0 +1,10 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs EN A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos EN 1 vdd
+pmos 1 2 Y
+pmos A 2 vdd
+nmos EN 1 gnd
+nmos EN 3 Y
+nmos A 3 gnd
diff --git a/cells/cell/TBUFX2.cell b/cells/cell/TBUFX2.cell
new file mode 100644
index 0000000..75f2255
--- /dev/null
+++ b/cells/cell/TBUFX2.cell
@@ -0,0 +1,14 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs EN A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos EN 1 vdd
+pmos 1 Y 2
+pmos 1 2 Y
+pmos A 2 vdd
+pmos A 2 vdd
+nmos EN 1 gnd
+nmos EN Y 3
+nmos EN 3 Y
+nmos A 3 gnd
+nmos A 3 gnd
diff --git a/cells/cell/XOR2X1.cell b/cells/cell/XOR2X1.cell
new file mode 100644
index 0000000..376f17a
--- /dev/null
+++ b/cells/cell/XOR2X1.cell
@@ -0,0 +1,16 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos 2 3 vdd
+pmos A Y 3
+pmos 1 4 Y
+pmos B 4 vdd
+pmos B 2 vdd
+nmos A 1 gnd
+nmos 2 5 gnd
+nmos 1 Y 5
+nmos A 6 Y
+nmos B 6 gnd
+nmos B 2 gnd
diff --git a/cells/gds/OR2X2.gds b/cells/gds/OR2X2.gds
new file mode 100644
index 0000000..3c2b7ac
--- /dev/null
+++ b/cells/gds/OR2X2.gds
Binary files differ
diff --git a/cells/gds/XOR2X1.gds b/cells/gds/XOR2X1.gds
new file mode 100644
index 0000000..2339128
--- /dev/null
+++ b/cells/gds/XOR2X1.gds
Binary files differ
diff --git a/cells/lef/AND2X1.lef.beforemagic b/cells/lef/AND2X1.lef.beforemagic
new file mode 100644
index 0000000..0d7982a
--- /dev/null
+++ b/cells/lef/AND2X1.lef.beforemagic
@@ -0,0 +1,187 @@
+MACRO AND2X1
+ CLASS CORE ;
+ FOREIGN AND2X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 0.56 3.01 ) ( 0.89 3.09 ) ;
+      RECT ( 0.56 2.84 ) ( 0.64 3.01 ) ;
+      RECT ( 0.81 2.84 ) ( 0.89 3.01 ) ;
+      RECT ( 0.56 2.76 ) ( 0.89 2.84 ) ;
+      RECT ( 3.2 3.01 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.53 3.01 ) ;
+      RECT ( 3.2 2.76 ) ( 3.53 2.84 ) ;
+      RECT ( 1.76 2.43 ) ( 2.09 2.51 ) ;
+      RECT ( 1.76 2.26 ) ( 1.84 2.43 ) ;
+      RECT ( 2.01 2.26 ) ( 2.09 2.43 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 1.78 2.18 ) ( 2.09 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.76 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.92 ) ( 1.36 1.08 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 0.92 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.3 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.13 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 3.2 0.49 ) ( 3.53 0.57 ) ;
+      RECT ( 3.2 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.53 0.49 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 5.76 3.57 ) ;
+      RECT ( 0.58 3.01 ) ( 0.87 3.09 ) ;
+      RECT ( 0.58 2.84 ) ( 0.64 3.01 ) ;
+      RECT ( 0.81 2.84 ) ( 0.87 3.01 ) ;
+      RECT ( 0.58 2.78 ) ( 0.87 2.84 ) ;
+      RECT ( 3.22 3.01 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.51 3.01 ) ;
+      RECT ( 3.22 2.78 ) ( 3.51 2.84 ) ;
+      RECT ( 1.78 2.43 ) ( 2.07 2.49 ) ;
+      RECT ( 1.78 2.26 ) ( 1.84 2.43 ) ;
+      RECT ( 2.01 2.26 ) ( 2.07 2.43 ) ;
+      RECT ( 1.78 2.2 ) ( 2.07 2.26 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 1.85 1.06 ) ( 1.99 2.2 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 1.85 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 1.85 0.66 ) ( 1.99 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
+      RECT ( 1.05 0.52 ) ( 1.99 0.66 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.52 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 3.22 0.49 ) ( 3.51 0.55 ) ;
+      RECT ( 3.22 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.51 0.49 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 3.22 0.24 ) ( 3.51 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 0.24 ) ;
+
+  end
+END AND2X1
diff --git a/cells/lef/AND2X2.lef.beforemagic b/cells/lef/AND2X2.lef.beforemagic
new file mode 100644
index 0000000..dcfc50c
--- /dev/null
+++ b/cells/lef/AND2X2.lef.beforemagic
@@ -0,0 +1,194 @@
+MACRO AND2X2
+ CLASS CORE ;
+ FOREIGN AND2X2 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 0.56 3.01 ) ( 0.89 3.09 ) ;
+      RECT ( 0.56 2.84 ) ( 0.64 3.01 ) ;
+      RECT ( 0.81 2.84 ) ( 0.89 3.01 ) ;
+      RECT ( 0.56 2.76 ) ( 0.89 2.84 ) ;
+      RECT ( 3.2 3.01 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.53 3.01 ) ;
+      RECT ( 3.2 2.76 ) ( 3.53 2.84 ) ;
+      RECT ( 1.76 2.43 ) ( 2.09 2.51 ) ;
+      RECT ( 1.76 2.26 ) ( 1.84 2.43 ) ;
+      RECT ( 2.01 2.26 ) ( 2.09 2.43 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 1.78 2.18 ) ( 2.09 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.31 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.92 ) ( 1.36 1.08 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 0.92 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.3 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.13 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 3.2 0.49 ) ( 3.53 0.57 ) ;
+      RECT ( 3.2 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.53 0.49 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 5.76 3.57 ) ;
+      RECT ( 0.58 3.01 ) ( 0.87 3.09 ) ;
+      RECT ( 0.58 2.84 ) ( 0.64 3.01 ) ;
+      RECT ( 0.81 2.84 ) ( 0.87 3.01 ) ;
+      RECT ( 0.58 2.78 ) ( 0.87 2.84 ) ;
+      RECT ( 3.22 3.01 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.51 3.01 ) ;
+      RECT ( 3.22 2.78 ) ( 3.51 2.84 ) ;
+      RECT ( 1.78 2.43 ) ( 2.07 2.49 ) ;
+      RECT ( 1.78 2.26 ) ( 1.84 2.43 ) ;
+      RECT ( 2.01 2.26 ) ( 2.07 2.43 ) ;
+      RECT ( 1.78 2.2 ) ( 2.07 2.26 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 1.85 1.06 ) ( 1.99 2.2 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 2.81 1.54 ) ( 2.95 1.78 ) ;
+      RECT ( 2.74 1.48 ) ( 3.03 1.54 ) ;
+      RECT ( 2.74 1.31 ) ( 2.8 1.48 ) ;
+      RECT ( 2.97 1.31 ) ( 3.03 1.48 ) ;
+      RECT ( 2.74 1.25 ) ( 3.03 1.31 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 1.85 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 1.85 0.66 ) ( 1.99 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
+      RECT ( 1.05 0.52 ) ( 1.99 0.66 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.52 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 3.22 0.49 ) ( 3.51 0.55 ) ;
+      RECT ( 3.22 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.51 0.49 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 3.22 0.24 ) ( 3.51 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 0.24 ) ;
+
+  end
+END AND2X2
diff --git a/cells/lef/AOI21X1.lef.beforemagic b/cells/lef/AOI21X1.lef.beforemagic
new file mode 100644
index 0000000..f53a671
--- /dev/null
+++ b/cells/lef/AOI21X1.lef.beforemagic
@@ -0,0 +1,213 @@
+MACRO AOI21X1
+ CLASS CORE ;
+ FOREIGN AOI21X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 4.94500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 4.65500000 0.65500000 4.94500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END B
+
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END C
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 3.2 3.01 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.53 3.01 ) ;
+      RECT ( 3.2 2.76 ) ( 3.53 2.84 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.13 2.26 ) ;
+      RECT ( 2.24 2.43 ) ( 2.57 2.51 ) ;
+      RECT ( 2.24 2.26 ) ( 2.32 2.43 ) ;
+      RECT ( 2.49 2.26 ) ( 2.57 2.43 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 2.24 2.18 ) ( 2.55 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.92 ) ( 4.49 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
+      RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 4.64 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 1.76 0.27 ) ( 2.09 0.32 ) ;
+      RECT ( 1.76 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 2.01 0.24 ) ( 2.09 0.27 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 5.76 3.57 ) ;
+      RECT ( 3.22 3.01 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.51 3.01 ) ;
+      RECT ( 3.22 2.78 ) ( 3.51 2.84 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.43 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 2.26 2.43 ) ( 2.55 2.49 ) ;
+      RECT ( 2.26 2.26 ) ( 2.32 2.43 ) ;
+      RECT ( 2.49 2.41 ) ( 2.55 2.43 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.41 ) ( 4.72 2.43 ) ;
+      RECT ( 2.49 2.27 ) ( 4.72 2.41 ) ;
+      RECT ( 2.49 2.26 ) ( 2.55 2.27 ) ;
+      RECT ( 2.26 2.2 ) ( 2.55 2.26 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.27 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 0.89 0.73 ) ( 1.03 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
+      RECT ( 1.05 0.52 ) ( 4.72 0.66 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.52 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.52 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 1.78 0.27 ) ( 2.07 0.33 ) ;
+      RECT ( 1.78 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 0 0.1 ) ( 1.84 0.24 ) ;
+      RECT ( 2.01 0.24 ) ( 2.07 0.27 ) ;
+      RECT ( 2.01 0.1 ) ( 5.76 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 0.1 ) ;
+
+  end
+END AOI21X1
diff --git a/cells/lef/AOI22X1.lef.beforemagic b/cells/lef/AOI22X1.lef.beforemagic
new file mode 100644
index 0000000..8c7114e
--- /dev/null
+++ b/cells/lef/AOI22X1.lef.beforemagic
@@ -0,0 +1,267 @@
+MACRO AOI22X1
+ CLASS CORE ;
+ FOREIGN AOI22X1 0 0 ;
+ SIZE 7.2 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
+    END
+  END Y
+
+  PIN D
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+    END
+  END D
+
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END C
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 3.68 2.83 ) ( 4.01 2.91 ) ;
+      RECT ( 3.68 2.66 ) ( 3.76 2.83 ) ;
+      RECT ( 3.93 2.66 ) ( 4.01 2.83 ) ;
+      RECT ( 3.68 2.58 ) ( 4.01 2.66 ) ;
+      RECT ( 6.08 2.83 ) ( 6.41 2.91 ) ;
+      RECT ( 6.08 2.66 ) ( 6.16 2.83 ) ;
+      RECT ( 6.33 2.66 ) ( 6.41 2.83 ) ;
+      RECT ( 6.08 2.58 ) ( 6.41 2.66 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 3.2 2.43 ) ( 3.51 2.51 ) ;
+      RECT ( 3.2 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.41 ) ( 3.51 2.43 ) ;
+      RECT ( 5.12 2.43 ) ( 5.45 2.51 ) ;
+      RECT ( 3.45 2.26 ) ( 3.53 2.41 ) ;
+      RECT ( 0.8 2.18 ) ( 1.11 2.26 ) ;
+      RECT ( 3.2 2.18 ) ( 3.53 2.26 ) ;
+      RECT ( 5.12 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.26 ) ( 5.45 2.43 ) ;
+      RECT ( 5.12 2.18 ) ( 5.43 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.03 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 2.01 ) ( 5.93 2.09 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 5.6 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
+      RECT ( 5.6 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 6.1 0.67 ) ( 6.41 0.75 ) ;
+      RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 3.2 0.49 ) ( 3.53 0.57 ) ;
+      RECT ( 3.2 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.53 0.49 ) ;
+      RECT ( 6.08 0.5 ) ( 6.16 0.66 ) ;
+      RECT ( 6.33 0.5 ) ( 6.41 0.67 ) ;
+      RECT ( 6.08 0.42 ) ( 6.41 0.5 ) ;
+      RECT ( 3.2 0.27 ) ( 3.53 0.32 ) ;
+      RECT ( 3.2 0.24 ) ( 3.28 0.27 ) ;
+      RECT ( 3.45 0.24 ) ( 3.53 0.27 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 7.2 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 3.7 2.83 ) ( 3.99 2.89 ) ;
+      RECT ( 3.7 2.66 ) ( 3.76 2.83 ) ;
+      RECT ( 3.93 2.82 ) ( 3.99 2.83 ) ;
+      RECT ( 6.1 2.83 ) ( 6.39 2.89 ) ;
+      RECT ( 6.1 2.82 ) ( 6.16 2.83 ) ;
+      RECT ( 3.93 2.68 ) ( 6.16 2.82 ) ;
+      RECT ( 3.93 2.66 ) ( 3.99 2.68 ) ;
+      RECT ( 3.7 2.6 ) ( 3.99 2.66 ) ;
+      RECT ( 6.1 2.66 ) ( 6.16 2.68 ) ;
+      RECT ( 6.33 2.66 ) ( 6.39 2.83 ) ;
+      RECT ( 6.1 2.6 ) ( 6.39 2.66 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.41 ) ( 1.11 2.43 ) ;
+      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
+      RECT ( 3.22 2.41 ) ( 3.28 2.43 ) ;
+      RECT ( 1.05 2.27 ) ( 3.28 2.41 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.27 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 3.22 2.26 ) ( 3.28 2.27 ) ;
+      RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
+      RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
+      RECT ( 5.14 2.43 ) ( 5.43 2.49 ) ;
+      RECT ( 5.14 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.41 ) ( 5.43 2.43 ) ;
+      RECT ( 5.37 2.27 ) ( 6.31 2.41 ) ;
+      RECT ( 5.37 2.26 ) ( 5.43 2.27 ) ;
+      RECT ( 5.14 2.2 ) ( 5.43 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 5.69 1.14 ) ( 5.83 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
+      RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
+      RECT ( 6.17 0.73 ) ( 6.31 2.27 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 6.1 0.67 ) ( 6.39 0.73 ) ;
+      RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
+      RECT ( 1.05 0.52 ) ( 6.16 0.66 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.52 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 6.1 0.5 ) ( 6.16 0.52 ) ;
+      RECT ( 6.33 0.5 ) ( 6.39 0.67 ) ;
+      RECT ( 6.1 0.44 ) ( 6.39 0.5 ) ;
+      RECT ( 3.22 0.27 ) ( 3.51 0.33 ) ;
+      RECT ( 3.22 0.24 ) ( 3.28 0.27 ) ;
+      RECT ( 0 0.1 ) ( 3.28 0.24 ) ;
+      RECT ( 3.45 0.24 ) ( 3.51 0.27 ) ;
+      RECT ( 3.45 0.1 ) ( 7.2 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 7.2 0.1 ) ;
+
+  end
+END AOI22X1
diff --git a/cells/lef/BUFX2.lef.beforemagic b/cells/lef/BUFX2.lef.beforemagic
new file mode 100644
index 0000000..1f87c69
--- /dev/null
+++ b/cells/lef/BUFX2.lef.beforemagic
@@ -0,0 +1,146 @@
+MACRO BUFX2
+ CLASS CORE ;
+ FOREIGN BUFX2 0 0 ;
+ SIZE 4.32 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+        RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 3.2 2.43 ) ( 3.53 2.51 ) ;
+      RECT ( 3.2 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.26 ) ( 3.53 2.43 ) ;
+      RECT ( 3.2 2.18 ) ( 3.53 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.03 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 1.36 1.16 ) ( 1.53 1.76 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.92 ) ( 3.05 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 0.92 ) ;
+      RECT ( 2.72 0.83 ) ( 3.03 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 3.2 0.67 ) ( 3.53 0.75 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 3.2 0.5 ) ( 3.28 0.67 ) ;
+      RECT ( 3.45 0.5 ) ( 3.53 0.67 ) ;
+      RECT ( 3.2 0.42 ) ( 3.53 0.5 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 4.32 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
+      RECT ( 3.22 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
+      RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
+      RECT ( 0.65 1.06 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 1.06 ) ( 2.8 1.08 ) ;
+      RECT ( 0.65 0.92 ) ( 2.8 1.06 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 0.92 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 3.29 0.73 ) ( 3.43 2.2 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 3.22 0.67 ) ( 3.51 0.73 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 1.78 0.49 ) ( 2.07 0.55 ) ;
+      RECT ( 1.78 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.07 0.49 ) ;
+      RECT ( 3.22 0.5 ) ( 3.28 0.67 ) ;
+      RECT ( 3.45 0.5 ) ( 3.51 0.67 ) ;
+      RECT ( 3.22 0.44 ) ( 3.51 0.5 ) ;
+      RECT ( 1.78 0.24 ) ( 2.07 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 4.32 0.24 ) ;
+
+  end
+END BUFX2
diff --git a/cells/lef/HAX1.lef.beforemagic b/cells/lef/HAX1.lef.beforemagic
new file mode 100644
index 0000000..13341e9
--- /dev/null
+++ b/cells/lef/HAX1.lef.beforemagic
@@ -0,0 +1,413 @@
+MACRO HAX1
+ CLASS CORE ;
+ FOREIGN HAX1 0 0 ;
+ SIZE 15.84 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 15.84000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 15.84000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN YC
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+    END
+  END YC
+
+  PIN YS
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 14.73500000 0.44000000 15.02500000 0.73000000 ;
+        RECT 14.81000000 0.73000000 14.95000000 2.19500000 ;
+        RECT 14.73500000 2.19500000 15.02500000 2.48500000 ;
+    END
+  END YS
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
+        RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
+        RECT 6.17000000 0.65500000 6.31000000 0.92000000 ;
+        RECT 9.93500000 0.84500000 10.22500000 0.92000000 ;
+        RECT 6.17000000 0.92000000 10.22500000 1.06000000 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 9.93500000 1.06000000 10.22500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 11.37500000 0.84500000 11.66500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.32500000 ;
+        RECT 11.45000000 1.13500000 11.59000000 1.32500000 ;
+        RECT 5.69000000 1.32500000 11.59000000 1.46500000 ;
+        RECT 5.69000000 1.46500000 5.83000000 1.78000000 ;
+        RECT 11.45000000 1.46500000 11.59000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+        RECT 11.37500000 1.78000000 11.66500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 4.64 3.01 ) ( 4.97 3.09 ) ;
+      RECT ( 4.64 2.84 ) ( 4.72 3.01 ) ;
+      RECT ( 4.89 2.84 ) ( 4.97 3.01 ) ;
+      RECT ( 4.64 2.76 ) ( 4.97 2.84 ) ;
+      RECT ( 7.76 3.01 ) ( 8.09 3.09 ) ;
+      RECT ( 7.76 2.84 ) ( 7.84 3.01 ) ;
+      RECT ( 8.01 2.84 ) ( 8.09 3.01 ) ;
+      RECT ( 7.76 2.76 ) ( 8.09 2.84 ) ;
+      RECT ( 11.84 3.01 ) ( 12.17 3.09 ) ;
+      RECT ( 11.84 2.84 ) ( 11.92 3.01 ) ;
+      RECT ( 12.09 2.84 ) ( 12.17 3.01 ) ;
+      RECT ( 11.84 2.76 ) ( 12.17 2.84 ) ;
+      RECT ( 13.52 3.01 ) ( 13.85 3.09 ) ;
+      RECT ( 13.52 2.84 ) ( 13.6 3.01 ) ;
+      RECT ( 13.77 2.84 ) ( 13.85 3.01 ) ;
+      RECT ( 13.52 2.76 ) ( 13.85 2.84 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 3.44 2.43 ) ( 3.77 2.51 ) ;
+      RECT ( 3.44 2.26 ) ( 3.52 2.43 ) ;
+      RECT ( 3.69 2.26 ) ( 3.77 2.43 ) ;
+      RECT ( 3.44 2.18 ) ( 3.77 2.26 ) ;
+      RECT ( 6.08 2.43 ) ( 6.41 2.51 ) ;
+      RECT ( 6.08 2.26 ) ( 6.16 2.43 ) ;
+      RECT ( 6.33 2.26 ) ( 6.41 2.43 ) ;
+      RECT ( 6.08 2.18 ) ( 6.41 2.26 ) ;
+      RECT ( 9.44 2.43 ) ( 9.77 2.51 ) ;
+      RECT ( 9.44 2.26 ) ( 9.52 2.43 ) ;
+      RECT ( 9.69 2.26 ) ( 9.77 2.43 ) ;
+      RECT ( 14.72 2.43 ) ( 15.05 2.51 ) ;
+      RECT ( 14.72 2.26 ) ( 14.8 2.43 ) ;
+      RECT ( 14.97 2.26 ) ( 15.05 2.43 ) ;
+      RECT ( 9.44 2.18 ) ( 9.75 2.26 ) ;
+      RECT ( 14.74 2.18 ) ( 15.05 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 2.01 ) ( 5.91 2.09 ) ;
+      RECT ( 8.48 2.01 ) ( 8.81 2.09 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 8.48 1.84 ) ( 8.56 2.01 ) ;
+      RECT ( 8.73 1.84 ) ( 8.81 2.01 ) ;
+      RECT ( 8.48 1.76 ) ( 8.81 1.84 ) ;
+      RECT ( 9.92 2.01 ) ( 10.25 2.09 ) ;
+      RECT ( 9.92 1.76 ) ( 10 2.01 ) ;
+      RECT ( 8.56 1.16 ) ( 8.73 1.76 ) ;
+      RECT ( 10.17 1.76 ) ( 10.25 2.01 ) ;
+      RECT ( 11.36 2.01 ) ( 11.69 2.09 ) ;
+      RECT ( 10 1.16 ) ( 10.17 1.72 ) ;
+      RECT ( 11.36 1.84 ) ( 11.44 2.01 ) ;
+      RECT ( 11.61 1.84 ) ( 11.69 2.01 ) ;
+      RECT ( 11.36 1.76 ) ( 11.69 1.84 ) ;
+      RECT ( 14.24 2.01 ) ( 14.57 2.09 ) ;
+      RECT ( 14.24 1.84 ) ( 14.32 2.01 ) ;
+      RECT ( 14.49 1.84 ) ( 14.57 2.01 ) ;
+      RECT ( 14.24 1.76 ) ( 14.57 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 5.6 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
+      RECT ( 5.6 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 8.48 1.08 ) ( 8.81 1.16 ) ;
+      RECT ( 8.48 0.91 ) ( 8.56 1.08 ) ;
+      RECT ( 8.73 0.91 ) ( 8.81 1.08 ) ;
+      RECT ( 8.48 0.83 ) ( 8.81 0.91 ) ;
+      RECT ( 9.92 1.08 ) ( 10.25 1.16 ) ;
+      RECT ( 9.92 0.91 ) ( 10 1.08 ) ;
+      RECT ( 10.17 0.92 ) ( 10.25 1.08 ) ;
+      RECT ( 10.17 0.91 ) ( 10.23 0.92 ) ;
+      RECT ( 9.92 0.83 ) ( 10.23 0.91 ) ;
+      RECT ( 10.48 0.75 ) ( 10.65 1.72 ) ;
+      RECT ( 11.36 1.08 ) ( 11.69 1.16 ) ;
+      RECT ( 11.36 0.91 ) ( 11.44 1.08 ) ;
+      RECT ( 11.61 0.91 ) ( 11.69 1.08 ) ;
+      RECT ( 11.36 0.83 ) ( 11.69 0.91 ) ;
+      RECT ( 14.24 1.08 ) ( 14.57 1.16 ) ;
+      RECT ( 14.24 0.91 ) ( 14.32 1.08 ) ;
+      RECT ( 14.49 0.92 ) ( 14.57 1.08 ) ;
+      RECT ( 14.49 0.91 ) ( 14.55 0.92 ) ;
+      RECT ( 14.24 0.83 ) ( 14.55 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 3.44 0.67 ) ( 3.77 0.75 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 3.44 0.5 ) ( 3.52 0.67 ) ;
+      RECT ( 3.69 0.5 ) ( 3.77 0.67 ) ;
+      RECT ( 9.44 0.67 ) ( 9.75 0.75 ) ;
+      RECT ( 3.44 0.42 ) ( 3.77 0.5 ) ;
+      RECT ( 6.08 0.49 ) ( 6.41 0.57 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.32 ) ;
+      RECT ( 6.08 0.32 ) ( 6.16 0.49 ) ;
+      RECT ( 6.33 0.32 ) ( 6.41 0.49 ) ;
+      RECT ( 6.08 0.27 ) ( 6.41 0.32 ) ;
+      RECT ( 6.08 0.24 ) ( 6.16 0.27 ) ;
+      RECT ( 6.33 0.24 ) ( 6.41 0.27 ) ;
+      RECT ( 7.76 0.49 ) ( 8.09 0.57 ) ;
+      RECT ( 7.76 0.32 ) ( 7.84 0.49 ) ;
+      RECT ( 8.01 0.32 ) ( 8.09 0.49 ) ;
+      RECT ( 9.44 0.5 ) ( 9.52 0.67 ) ;
+      RECT ( 9.69 0.66 ) ( 9.75 0.67 ) ;
+      RECT ( 10.4 0.67 ) ( 10.73 0.75 ) ;
+      RECT ( 9.69 0.5 ) ( 9.77 0.66 ) ;
+      RECT ( 9.44 0.42 ) ( 9.77 0.5 ) ;
+      RECT ( 10.4 0.5 ) ( 10.48 0.67 ) ;
+      RECT ( 10.65 0.5 ) ( 10.73 0.67 ) ;
+      RECT ( 11.86 0.67 ) ( 12.17 0.75 ) ;
+      RECT ( 11.86 0.66 ) ( 11.92 0.67 ) ;
+      RECT ( 10.4 0.42 ) ( 10.73 0.5 ) ;
+      RECT ( 11.84 0.5 ) ( 11.92 0.66 ) ;
+      RECT ( 12.09 0.5 ) ( 12.17 0.67 ) ;
+      RECT ( 14.72 0.67 ) ( 15.05 0.75 ) ;
+      RECT ( 11.84 0.42 ) ( 12.17 0.5 ) ;
+      RECT ( 13.52 0.49 ) ( 13.85 0.57 ) ;
+      RECT ( 7.76 0.27 ) ( 8.09 0.32 ) ;
+      RECT ( 7.76 0.24 ) ( 7.84 0.27 ) ;
+      RECT ( 8.01 0.24 ) ( 8.09 0.27 ) ;
+      RECT ( 13.52 0.32 ) ( 13.6 0.49 ) ;
+      RECT ( 13.77 0.32 ) ( 13.85 0.49 ) ;
+      RECT ( 14.72 0.5 ) ( 14.8 0.67 ) ;
+      RECT ( 14.97 0.5 ) ( 15.05 0.67 ) ;
+      RECT ( 14.72 0.42 ) ( 15.05 0.5 ) ;
+      RECT ( 13.52 0.24 ) ( 13.85 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 15.84 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 4.66 3.01 ) ( 4.95 3.09 ) ;
+      RECT ( 4.66 2.84 ) ( 4.72 3.01 ) ;
+      RECT ( 4.89 2.84 ) ( 4.95 3.01 ) ;
+      RECT ( 4.66 2.78 ) ( 4.95 2.84 ) ;
+      RECT ( 7.78 3.01 ) ( 8.07 3.09 ) ;
+      RECT ( 7.78 2.84 ) ( 7.84 3.01 ) ;
+      RECT ( 8.01 2.84 ) ( 8.07 3.01 ) ;
+      RECT ( 7.78 2.78 ) ( 8.07 2.84 ) ;
+      RECT ( 11.86 3.01 ) ( 12.15 3.09 ) ;
+      RECT ( 11.86 2.84 ) ( 11.92 3.01 ) ;
+      RECT ( 12.09 2.84 ) ( 12.15 3.01 ) ;
+      RECT ( 11.86 2.78 ) ( 12.15 2.84 ) ;
+      RECT ( 13.54 3.01 ) ( 13.83 3.09 ) ;
+      RECT ( 13.54 2.84 ) ( 13.6 3.01 ) ;
+      RECT ( 13.77 2.84 ) ( 13.83 3.01 ) ;
+      RECT ( 13.54 2.78 ) ( 13.83 2.84 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 3.46 2.43 ) ( 3.75 2.49 ) ;
+      RECT ( 3.46 2.26 ) ( 3.52 2.43 ) ;
+      RECT ( 3.69 2.41 ) ( 3.75 2.43 ) ;
+      RECT ( 6.1 2.43 ) ( 6.39 2.49 ) ;
+      RECT ( 6.1 2.41 ) ( 6.16 2.43 ) ;
+      RECT ( 3.69 2.27 ) ( 6.16 2.41 ) ;
+      RECT ( 3.69 2.26 ) ( 3.75 2.27 ) ;
+      RECT ( 3.46 2.2 ) ( 3.75 2.26 ) ;
+      RECT ( 6.1 2.26 ) ( 6.16 2.27 ) ;
+      RECT ( 6.33 2.41 ) ( 6.39 2.43 ) ;
+      RECT ( 9.46 2.43 ) ( 9.75 2.49 ) ;
+      RECT ( 6.33 2.27 ) ( 8.71 2.41 ) ;
+      RECT ( 6.33 2.26 ) ( 6.39 2.27 ) ;
+      RECT ( 6.1 2.2 ) ( 6.39 2.26 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 2 ) ( 1.59 2.01 ) ;
+      RECT ( 3.53 2 ) ( 3.67 2.2 ) ;
+      RECT ( 8.57 2.07 ) ( 8.71 2.27 ) ;
+      RECT ( 9.46 2.26 ) ( 9.52 2.43 ) ;
+      RECT ( 9.69 2.41 ) ( 9.75 2.43 ) ;
+      RECT ( 14.74 2.43 ) ( 15.03 2.49 ) ;
+      RECT ( 9.69 2.27 ) ( 14.47 2.41 ) ;
+      RECT ( 9.69 2.26 ) ( 9.75 2.27 ) ;
+      RECT ( 9.46 2.2 ) ( 9.75 2.26 ) ;
+      RECT ( 1.53 1.86 ) ( 3.67 2 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 1.86 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 3.53 0.73 ) ( 3.67 1.86 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
+      RECT ( 8.5 2.01 ) ( 8.79 2.07 ) ;
+      RECT ( 8.5 1.84 ) ( 8.56 2.01 ) ;
+      RECT ( 8.73 1.84 ) ( 8.79 2.01 ) ;
+      RECT ( 8.5 1.78 ) ( 8.79 1.84 ) ;
+      RECT ( 9.94 2.01 ) ( 10.23 2.07 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 5.69 1.47 ) ( 5.83 1.78 ) ;
+      RECT ( 9.94 1.72 ) ( 10 2.01 ) ;
+      RECT ( 10.17 1.72 ) ( 10.23 2.01 ) ;
+      RECT ( 10.49 1.95 ) ( 10.63 2.27 ) ;
+      RECT ( 14.33 2.07 ) ( 14.47 2.27 ) ;
+      RECT ( 14.74 2.26 ) ( 14.8 2.43 ) ;
+      RECT ( 14.97 2.26 ) ( 15.03 2.43 ) ;
+      RECT ( 14.74 2.2 ) ( 15.03 2.26 ) ;
+      RECT ( 11.38 2.01 ) ( 11.67 2.07 ) ;
+      RECT ( 9.94 1.66 ) ( 10.23 1.72 ) ;
+      RECT ( 10.42 1.89 ) ( 10.71 1.95 ) ;
+      RECT ( 10.42 1.72 ) ( 10.48 1.89 ) ;
+      RECT ( 10.65 1.72 ) ( 10.71 1.89 ) ;
+      RECT ( 11.38 1.84 ) ( 11.44 2.01 ) ;
+      RECT ( 11.61 1.84 ) ( 11.67 2.01 ) ;
+      RECT ( 11.38 1.78 ) ( 11.67 1.84 ) ;
+      RECT ( 14.26 2.01 ) ( 14.55 2.07 ) ;
+      RECT ( 14.26 1.84 ) ( 14.32 2.01 ) ;
+      RECT ( 14.49 1.84 ) ( 14.55 2.01 ) ;
+      RECT ( 14.26 1.78 ) ( 14.55 1.84 ) ;
+      RECT ( 10.42 1.66 ) ( 10.71 1.72 ) ;
+      RECT ( 11.45 1.47 ) ( 11.59 1.78 ) ;
+      RECT ( 5.69 1.33 ) ( 11.59 1.47 ) ;
+      RECT ( 5.69 1.14 ) ( 5.83 1.33 ) ;
+      RECT ( 11.45 1.14 ) ( 11.59 1.33 ) ;
+      RECT ( 14.33 1.14 ) ( 14.47 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
+      RECT ( 9.94 1.08 ) ( 10.23 1.14 ) ;
+      RECT ( 9.94 1.06 ) ( 10 1.08 ) ;
+      RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
+      RECT ( 6.17 0.92 ) ( 10 1.06 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 3.46 0.67 ) ( 3.75 0.73 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 1.78 0.49 ) ( 2.07 0.55 ) ;
+      RECT ( 1.78 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.07 0.49 ) ;
+      RECT ( 3.46 0.5 ) ( 3.52 0.67 ) ;
+      RECT ( 3.69 0.5 ) ( 3.75 0.67 ) ;
+      RECT ( 4.25 0.66 ) ( 4.39 0.85 ) ;
+      RECT ( 6.17 0.66 ) ( 6.31 0.92 ) ;
+      RECT ( 9.94 0.91 ) ( 10 0.92 ) ;
+      RECT ( 10.17 0.91 ) ( 10.23 1.08 ) ;
+      RECT ( 9.94 0.85 ) ( 10.23 0.91 ) ;
+      RECT ( 11.38 1.08 ) ( 11.67 1.14 ) ;
+      RECT ( 11.38 0.91 ) ( 11.44 1.08 ) ;
+      RECT ( 11.61 0.91 ) ( 11.67 1.08 ) ;
+      RECT ( 11.38 0.85 ) ( 11.67 0.91 ) ;
+      RECT ( 14.26 1.08 ) ( 14.55 1.14 ) ;
+      RECT ( 14.26 0.91 ) ( 14.32 1.08 ) ;
+      RECT ( 14.49 0.91 ) ( 14.55 1.08 ) ;
+      RECT ( 14.26 0.85 ) ( 14.55 0.91 ) ;
+      RECT ( 14.81 0.73 ) ( 14.95 2.2 ) ;
+      RECT ( 4.25 0.52 ) ( 6.31 0.66 ) ;
+      RECT ( 9.46 0.67 ) ( 9.75 0.73 ) ;
+      RECT ( 3.46 0.44 ) ( 3.75 0.5 ) ;
+      RECT ( 9.46 0.5 ) ( 9.52 0.67 ) ;
+      RECT ( 9.69 0.66 ) ( 9.75 0.67 ) ;
+      RECT ( 11.86 0.67 ) ( 12.15 0.73 ) ;
+      RECT ( 11.86 0.66 ) ( 11.92 0.67 ) ;
+      RECT ( 9.69 0.52 ) ( 11.92 0.66 ) ;
+      RECT ( 9.69 0.5 ) ( 9.75 0.52 ) ;
+      RECT ( 9.46 0.44 ) ( 9.75 0.5 ) ;
+      RECT ( 11.86 0.5 ) ( 11.92 0.52 ) ;
+      RECT ( 12.09 0.5 ) ( 12.15 0.67 ) ;
+      RECT ( 14.74 0.67 ) ( 15.03 0.73 ) ;
+      RECT ( 11.86 0.44 ) ( 12.15 0.5 ) ;
+      RECT ( 13.54 0.49 ) ( 13.83 0.55 ) ;
+      RECT ( 1.78 0.24 ) ( 2.07 0.32 ) ;
+      RECT ( 6.1 0.27 ) ( 6.39 0.33 ) ;
+      RECT ( 6.1 0.24 ) ( 6.16 0.27 ) ;
+      RECT ( 0 0.1 ) ( 6.16 0.24 ) ;
+      RECT ( 6.33 0.24 ) ( 6.39 0.27 ) ;
+      RECT ( 7.78 0.27 ) ( 8.07 0.33 ) ;
+      RECT ( 7.78 0.24 ) ( 7.84 0.27 ) ;
+      RECT ( 6.33 0.1 ) ( 7.84 0.24 ) ;
+      RECT ( 8.01 0.24 ) ( 8.07 0.27 ) ;
+      RECT ( 13.54 0.32 ) ( 13.6 0.49 ) ;
+      RECT ( 13.77 0.32 ) ( 13.83 0.49 ) ;
+      RECT ( 14.74 0.5 ) ( 14.8 0.67 ) ;
+      RECT ( 14.97 0.5 ) ( 15.03 0.67 ) ;
+      RECT ( 14.74 0.44 ) ( 15.03 0.5 ) ;
+      RECT ( 13.54 0.24 ) ( 13.83 0.32 ) ;
+      RECT ( 8.01 0.1 ) ( 15.84 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 15.84 0.1 ) ;
+
+  end
+END HAX1
diff --git a/cells/lef/INV.lef.beforemagic b/cells/lef/INV.lef.beforemagic
new file mode 100644
index 0000000..34032ea
--- /dev/null
+++ b/cells/lef/INV.lef.beforemagic
@@ -0,0 +1,69 @@
+MACRO INV
+ CLASS CORE ;
+ FOREIGN INV 0 0 ;
+ SIZE 2.88 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER li1 ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.57 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.75 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 2.09 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.51 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 3.09 ) ;
+    LAYER li1 ;
+    LAYER li1 ;
+
+  end
+END INV
diff --git a/cells/lef/INVX1.lef.beforemagic b/cells/lef/INVX1.lef.beforemagic
new file mode 100644
index 0000000..8eb3fee
--- /dev/null
+++ b/cells/lef/INVX1.lef.beforemagic
@@ -0,0 +1,69 @@
+MACRO INVX1
+ CLASS CORE ;
+ FOREIGN INVX1 0 0 ;
+ SIZE 2.88 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER li1 ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.57 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.75 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 2.09 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.51 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 3.09 ) ;
+    LAYER li1 ;
+    LAYER li1 ;
+
+  end
+END INVX1
diff --git a/cells/lef/INVX2.lef.beforemagic b/cells/lef/INVX2.lef.beforemagic
new file mode 100644
index 0000000..780f788
--- /dev/null
+++ b/cells/lef/INVX2.lef.beforemagic
@@ -0,0 +1,69 @@
+MACRO INVX2
+ CLASS CORE ;
+ FOREIGN INVX2 0 0 ;
+ SIZE 2.88 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER li1 ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.57 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.75 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 2.09 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.51 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 3.09 ) ;
+    LAYER li1 ;
+    LAYER li1 ;
+
+  end
+END INVX2
diff --git a/cells/lef/INVX4.lef.beforemagic b/cells/lef/INVX4.lef.beforemagic
new file mode 100644
index 0000000..adc1a5d
--- /dev/null
+++ b/cells/lef/INVX4.lef.beforemagic
@@ -0,0 +1,168 @@
+MACRO INVX4
+ CLASS CORE ;
+ FOREIGN INVX4 0 0 ;
+ SIZE 4.32 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.73000000 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+        RECT 0.81500000 2.27000000 3.50500000 2.41000000 ;
+        RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.02500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 3.2 2.43 ) ( 3.53 2.51 ) ;
+      RECT ( 3.2 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.26 ) ( 3.53 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.11 2.26 ) ;
+      RECT ( 3.22 2.18 ) ( 3.53 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.92 ) ( 1.36 1.08 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 0.92 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.3 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.13 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.67 ) ;
+      RECT ( 3.22 0.67 ) ( 3.53 0.75 ) ;
+      RECT ( 3.22 0.66 ) ( 3.28 0.67 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 3.2 0.5 ) ( 3.28 0.66 ) ;
+      RECT ( 3.45 0.5 ) ( 3.53 0.67 ) ;
+      RECT ( 3.2 0.42 ) ( 3.53 0.5 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 4.32 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.41 ) ( 1.11 2.43 ) ;
+      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
+      RECT ( 3.22 2.41 ) ( 3.28 2.43 ) ;
+      RECT ( 1.05 2.27 ) ( 3.28 2.41 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.27 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 3.22 2.26 ) ( 3.28 2.27 ) ;
+      RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
+      RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
+      RECT ( 0.89 0.73 ) ( 1.03 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 1.06 ) ( 1.59 1.08 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 1.06 ) ( 2.8 1.08 ) ;
+      RECT ( 1.53 0.92 ) ( 2.8 1.06 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 0.92 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 3.29 0.73 ) ( 3.43 2.2 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.67 ) ;
+      RECT ( 3.22 0.67 ) ( 3.51 0.73 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 1.78 0.49 ) ( 2.07 0.55 ) ;
+      RECT ( 1.78 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.07 0.49 ) ;
+      RECT ( 3.22 0.5 ) ( 3.28 0.67 ) ;
+      RECT ( 3.45 0.5 ) ( 3.51 0.67 ) ;
+      RECT ( 3.22 0.44 ) ( 3.51 0.5 ) ;
+      RECT ( 1.78 0.24 ) ( 2.07 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 4.32 0.24 ) ;
+
+  end
+END INVX4
diff --git a/cells/lef/INVX8.lef.beforemagic b/cells/lef/INVX8.lef.beforemagic
new file mode 100644
index 0000000..c2cfe5b
--- /dev/null
+++ b/cells/lef/INVX8.lef.beforemagic
@@ -0,0 +1,266 @@
+MACRO INVX8
+ CLASS CORE ;
+ FOREIGN INVX8 0 0 ;
+ SIZE 7.2 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+        RECT 3.69500000 0.51500000 6.38500000 0.65500000 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.73000000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.19500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+        RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+        RECT 0.81500000 2.27000000 6.38500000 2.41000000 ;
+        RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+        RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 1.29500000 1.85500000 5.90500000 1.99500000 ;
+        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 4.64 3.01 ) ( 4.97 3.09 ) ;
+      RECT ( 4.64 2.84 ) ( 4.72 3.01 ) ;
+      RECT ( 4.89 2.84 ) ( 4.97 3.01 ) ;
+      RECT ( 4.64 2.76 ) ( 4.97 2.84 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.13 2.26 ) ;
+      RECT ( 3.68 2.43 ) ( 4.01 2.51 ) ;
+      RECT ( 3.68 2.26 ) ( 3.76 2.43 ) ;
+      RECT ( 3.93 2.26 ) ( 4.01 2.43 ) ;
+      RECT ( 6.08 2.43 ) ( 6.41 2.51 ) ;
+      RECT ( 6.08 2.26 ) ( 6.16 2.43 ) ;
+      RECT ( 6.33 2.26 ) ( 6.41 2.43 ) ;
+      RECT ( 3.68 2.18 ) ( 3.99 2.26 ) ;
+      RECT ( 6.1 2.18 ) ( 6.41 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 2.01 ) ( 5.93 2.09 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.92 ) ( 4.24 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.18 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 5.6 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
+      RECT ( 5.6 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 3.68 0.67 ) ( 4.01 0.75 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 3.68 0.5 ) ( 3.76 0.67 ) ;
+      RECT ( 3.93 0.5 ) ( 4.01 0.67 ) ;
+      RECT ( 6.1 0.67 ) ( 6.41 0.75 ) ;
+      RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
+      RECT ( 3.68 0.42 ) ( 4.01 0.5 ) ;
+      RECT ( 4.64 0.49 ) ( 4.97 0.57 ) ;
+      RECT ( 1.76 0.27 ) ( 2.09 0.32 ) ;
+      RECT ( 1.76 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 2.01 0.24 ) ( 2.09 0.27 ) ;
+      RECT ( 4.64 0.32 ) ( 4.72 0.49 ) ;
+      RECT ( 4.89 0.32 ) ( 4.97 0.49 ) ;
+      RECT ( 6.08 0.5 ) ( 6.16 0.66 ) ;
+      RECT ( 6.33 0.5 ) ( 6.41 0.67 ) ;
+      RECT ( 6.08 0.42 ) ( 6.41 0.5 ) ;
+      RECT ( 4.64 0.27 ) ( 4.97 0.32 ) ;
+      RECT ( 4.64 0.24 ) ( 4.72 0.27 ) ;
+      RECT ( 4.89 0.24 ) ( 4.97 0.27 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 7.2 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 4.66 3.01 ) ( 4.95 3.09 ) ;
+      RECT ( 4.66 2.84 ) ( 4.72 3.01 ) ;
+      RECT ( 4.89 2.84 ) ( 4.95 3.01 ) ;
+      RECT ( 4.66 2.78 ) ( 4.95 2.84 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.41 ) ( 1.11 2.43 ) ;
+      RECT ( 3.7 2.43 ) ( 3.99 2.49 ) ;
+      RECT ( 3.7 2.41 ) ( 3.76 2.43 ) ;
+      RECT ( 1.05 2.27 ) ( 3.76 2.41 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.27 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 3.7 2.26 ) ( 3.76 2.27 ) ;
+      RECT ( 3.93 2.41 ) ( 3.99 2.43 ) ;
+      RECT ( 6.1 2.43 ) ( 6.39 2.49 ) ;
+      RECT ( 6.1 2.41 ) ( 6.16 2.43 ) ;
+      RECT ( 3.93 2.27 ) ( 6.16 2.41 ) ;
+      RECT ( 3.93 2.26 ) ( 3.99 2.27 ) ;
+      RECT ( 3.7 2.2 ) ( 3.99 2.26 ) ;
+      RECT ( 6.1 2.26 ) ( 6.16 2.27 ) ;
+      RECT ( 6.33 2.26 ) ( 6.39 2.43 ) ;
+      RECT ( 6.1 2.2 ) ( 6.39 2.26 ) ;
+      RECT ( 0.89 0.73 ) ( 1.03 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 2 ) ( 1.59 2.01 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 2 ) ( 2.8 2.01 ) ;
+      RECT ( 1.53 1.86 ) ( 2.8 2 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 1.86 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 1.86 ) ;
+      RECT ( 2.97 2 ) ( 3.03 2.01 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 2 ) ( 4.24 2.01 ) ;
+      RECT ( 2.97 1.86 ) ( 4.24 2 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 1.86 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 1.86 ) ;
+      RECT ( 4.41 2 ) ( 4.47 2.01 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 2 ) ( 5.68 2.01 ) ;
+      RECT ( 4.41 1.86 ) ( 5.68 2 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 1.86 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 1.86 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 5.69 1.14 ) ( 5.83 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
+      RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
+      RECT ( 6.17 0.73 ) ( 6.31 2.2 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.67 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 3.7 0.67 ) ( 3.99 0.73 ) ;
+      RECT ( 3.7 0.5 ) ( 3.76 0.67 ) ;
+      RECT ( 3.93 0.66 ) ( 3.99 0.67 ) ;
+      RECT ( 6.1 0.67 ) ( 6.39 0.73 ) ;
+      RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
+      RECT ( 3.93 0.52 ) ( 6.16 0.66 ) ;
+      RECT ( 3.93 0.5 ) ( 3.99 0.52 ) ;
+      RECT ( 3.7 0.44 ) ( 3.99 0.5 ) ;
+      RECT ( 6.1 0.5 ) ( 6.16 0.52 ) ;
+      RECT ( 6.33 0.5 ) ( 6.39 0.67 ) ;
+      RECT ( 6.1 0.44 ) ( 6.39 0.5 ) ;
+      RECT ( 1.78 0.27 ) ( 2.07 0.33 ) ;
+      RECT ( 1.78 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 0 0.1 ) ( 1.84 0.24 ) ;
+      RECT ( 2.01 0.24 ) ( 2.07 0.27 ) ;
+      RECT ( 4.66 0.27 ) ( 4.95 0.33 ) ;
+      RECT ( 4.66 0.24 ) ( 4.72 0.27 ) ;
+      RECT ( 2.01 0.1 ) ( 4.72 0.24 ) ;
+      RECT ( 4.89 0.24 ) ( 4.95 0.27 ) ;
+      RECT ( 4.89 0.1 ) ( 7.2 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 7.2 0.1 ) ;
+
+  end
+END INVX8
diff --git a/cells/lef/MUX2X1.lef.beforemagic b/cells/lef/MUX2X1.lef.beforemagic
new file mode 100644
index 0000000..de59893
--- /dev/null
+++ b/cells/lef/MUX2X1.lef.beforemagic
@@ -0,0 +1,256 @@
+MACRO MUX2X1
+ CLASS CORE ;
+ FOREIGN MUX2X1 0 0 ;
+ SIZE 8.64 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 8.64000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 8.64000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.13500000 1.25000000 5.42500000 1.54000000 ;
+        RECT 5.21000000 1.54000000 5.35000000 2.19500000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.48500000 ;
+    END
+  END Y
+
+  PIN S
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
+        RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 6.17000000 0.65500000 6.31000000 1.85500000 ;
+        RECT 5.61500000 1.85500000 6.31000000 1.99500000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+    END
+  END S
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 7.05500000 0.84500000 7.34500000 1.13500000 ;
+        RECT 7.13000000 1.13500000 7.27000000 1.78000000 ;
+        RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
+    END
+  END B
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 7.52 3.01 ) ( 7.85 3.09 ) ;
+      RECT ( 7.52 2.84 ) ( 7.6 3.01 ) ;
+      RECT ( 7.77 2.84 ) ( 7.85 3.01 ) ;
+      RECT ( 7.52 2.76 ) ( 7.85 2.84 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 5.12 2.43 ) ( 5.45 2.51 ) ;
+      RECT ( 5.12 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.26 ) ( 5.45 2.43 ) ;
+      RECT ( 5.12 2.18 ) ( 5.45 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 5.62 2.01 ) ( 5.93 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 7.04 2.01 ) ( 7.37 2.09 ) ;
+      RECT ( 7.04 1.84 ) ( 7.12 2.01 ) ;
+      RECT ( 7.29 1.84 ) ( 7.37 2.01 ) ;
+      RECT ( 7.04 1.76 ) ( 7.37 1.84 ) ;
+      RECT ( 1.36 1.16 ) ( 1.53 1.76 ) ;
+      RECT ( 2.8 1.48 ) ( 2.97 1.76 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.31 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 5.2 0.75 ) ( 5.37 1.31 ) ;
+      RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 5.6 0.92 ) ( 5.68 1.08 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
+      RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
+      RECT ( 5.62 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 7.04 1.08 ) ( 7.37 1.16 ) ;
+      RECT ( 7.04 0.91 ) ( 7.12 1.08 ) ;
+      RECT ( 7.29 0.91 ) ( 7.37 1.08 ) ;
+      RECT ( 7.04 0.83 ) ( 7.37 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 5.12 0.67 ) ( 5.45 0.75 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 5.12 0.5 ) ( 5.2 0.67 ) ;
+      RECT ( 5.37 0.5 ) ( 5.45 0.67 ) ;
+      RECT ( 5.12 0.42 ) ( 5.45 0.5 ) ;
+      RECT ( 7.52 0.49 ) ( 7.85 0.57 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.32 ) ;
+      RECT ( 7.52 0.32 ) ( 7.6 0.49 ) ;
+      RECT ( 7.77 0.32 ) ( 7.85 0.49 ) ;
+      RECT ( 7.52 0.24 ) ( 7.85 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 8.64 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 7.54 3.01 ) ( 7.83 3.09 ) ;
+      RECT ( 7.54 2.84 ) ( 7.6 3.01 ) ;
+      RECT ( 7.77 2.84 ) ( 7.83 3.01 ) ;
+      RECT ( 7.54 2.78 ) ( 7.83 2.84 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 5.14 2.43 ) ( 5.43 2.49 ) ;
+      RECT ( 5.14 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.26 ) ( 5.43 2.43 ) ;
+      RECT ( 5.14 2.2 ) ( 5.43 2.26 ) ;
+      RECT ( 0.65 2 ) ( 0.79 2.2 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 2 ) ( 4.24 2.01 ) ;
+      RECT ( 0.65 1.86 ) ( 4.24 2 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 1.86 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 1.86 ) ;
+      RECT ( 4.41 2 ) ( 4.47 2.01 ) ;
+      RECT ( 4.41 1.86 ) ( 4.87 2 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 1.86 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 2.74 1.48 ) ( 3.03 1.54 ) ;
+      RECT ( 2.74 1.31 ) ( 2.8 1.48 ) ;
+      RECT ( 2.97 1.31 ) ( 3.03 1.48 ) ;
+      RECT ( 2.74 1.25 ) ( 3.03 1.31 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 1.06 ) ( 1.59 1.08 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 1.53 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 0.92 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.73 1.06 ) ( 4.87 1.86 ) ;
+      RECT ( 5.21 1.54 ) ( 5.35 2.2 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 2 ) ( 5.91 2.01 ) ;
+      RECT ( 7.06 2.01 ) ( 7.35 2.07 ) ;
+      RECT ( 5.85 1.86 ) ( 6.31 2 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 1.86 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
+      RECT ( 5.14 1.48 ) ( 5.43 1.54 ) ;
+      RECT ( 5.14 1.31 ) ( 5.2 1.48 ) ;
+      RECT ( 5.37 1.31 ) ( 5.43 1.48 ) ;
+      RECT ( 5.14 1.25 ) ( 5.43 1.31 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 1.06 ) ( 5.68 1.08 ) ;
+      RECT ( 4.73 0.92 ) ( 5.68 1.06 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
+      RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
+      RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 4.25 0.66 ) ( 4.39 0.85 ) ;
+      RECT ( 6.17 0.66 ) ( 6.31 1.86 ) ;
+      RECT ( 7.06 1.84 ) ( 7.12 2.01 ) ;
+      RECT ( 7.29 1.84 ) ( 7.35 2.01 ) ;
+      RECT ( 7.06 1.78 ) ( 7.35 1.84 ) ;
+      RECT ( 7.13 1.14 ) ( 7.27 1.78 ) ;
+      RECT ( 7.06 1.08 ) ( 7.35 1.14 ) ;
+      RECT ( 7.06 0.91 ) ( 7.12 1.08 ) ;
+      RECT ( 7.29 0.91 ) ( 7.35 1.08 ) ;
+      RECT ( 7.06 0.85 ) ( 7.35 0.91 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 1.78 0.49 ) ( 2.07 0.55 ) ;
+      RECT ( 4.25 0.52 ) ( 6.31 0.66 ) ;
+      RECT ( 1.78 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.07 0.49 ) ;
+      RECT ( 1.78 0.24 ) ( 2.07 0.32 ) ;
+      RECT ( 7.54 0.49 ) ( 7.83 0.55 ) ;
+      RECT ( 7.54 0.32 ) ( 7.6 0.49 ) ;
+      RECT ( 7.77 0.32 ) ( 7.83 0.49 ) ;
+      RECT ( 7.54 0.24 ) ( 7.83 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 8.64 0.24 ) ;
+
+  end
+END MUX2X1
diff --git a/cells/lef/NAND2X1.lef.beforemagic b/cells/lef/NAND2X1.lef.beforemagic
new file mode 100644
index 0000000..cf54cd4
--- /dev/null
+++ b/cells/lef/NAND2X1.lef.beforemagic
@@ -0,0 +1,159 @@
+MACRO NAND2X1
+ CLASS CORE ;
+ FOREIGN NAND2X1 0 0 ;
+ SIZE 4.32 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+        RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
+        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 3.2 2.43 ) ( 3.53 2.51 ) ;
+      RECT ( 3.2 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.26 ) ( 3.53 2.43 ) ;
+      RECT ( 3.2 2.18 ) ( 3.53 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.03 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 3.2 0.49 ) ( 3.53 0.57 ) ;
+      RECT ( 3.2 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.53 0.49 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 4.32 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.41 ) ( 0.87 2.43 ) ;
+      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
+      RECT ( 3.22 2.41 ) ( 3.28 2.43 ) ;
+      RECT ( 0.81 2.27 ) ( 3.28 2.41 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.27 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 3.22 2.26 ) ( 3.28 2.27 ) ;
+      RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
+      RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 3.22 0.49 ) ( 3.51 0.55 ) ;
+      RECT ( 3.22 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.51 0.49 ) ;
+      RECT ( 3.22 0.24 ) ( 3.51 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 4.32 0.24 ) ;
+
+  end
+END NAND2X1
diff --git a/cells/lef/NAND3X1.lef.beforemagic b/cells/lef/NAND3X1.lef.beforemagic
new file mode 100644
index 0000000..ea6d83d
--- /dev/null
+++ b/cells/lef/NAND3X1.lef.beforemagic
@@ -0,0 +1,197 @@
+MACRO NAND3X1
+ CLASS CORE ;
+ FOREIGN NAND3X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+        RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
+        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+    END
+  END Y
+
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END C
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 4.64 3.01 ) ( 4.97 3.09 ) ;
+      RECT ( 4.64 2.84 ) ( 4.72 3.01 ) ;
+      RECT ( 4.89 2.84 ) ( 4.97 3.01 ) ;
+      RECT ( 4.64 2.76 ) ( 4.97 2.84 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 3.2 2.43 ) ( 3.53 2.51 ) ;
+      RECT ( 3.2 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.26 ) ( 3.53 2.43 ) ;
+      RECT ( 3.2 2.18 ) ( 3.53 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.03 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 4.64 0.49 ) ( 4.97 0.57 ) ;
+      RECT ( 4.64 0.32 ) ( 4.72 0.49 ) ;
+      RECT ( 4.89 0.32 ) ( 4.97 0.49 ) ;
+      RECT ( 4.64 0.24 ) ( 4.97 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 5.76 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 4.66 3.01 ) ( 4.95 3.09 ) ;
+      RECT ( 4.66 2.84 ) ( 4.72 3.01 ) ;
+      RECT ( 4.89 2.84 ) ( 4.95 3.01 ) ;
+      RECT ( 4.66 2.78 ) ( 4.95 2.84 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.41 ) ( 0.87 2.43 ) ;
+      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
+      RECT ( 3.22 2.41 ) ( 3.28 2.43 ) ;
+      RECT ( 0.81 2.27 ) ( 3.28 2.41 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.27 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 3.22 2.26 ) ( 3.28 2.27 ) ;
+      RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
+      RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 4.66 0.49 ) ( 4.95 0.55 ) ;
+      RECT ( 4.66 0.32 ) ( 4.72 0.49 ) ;
+      RECT ( 4.89 0.32 ) ( 4.95 0.49 ) ;
+      RECT ( 4.66 0.24 ) ( 4.95 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 0.24 ) ;
+
+  end
+END NAND3X1
diff --git a/cells/lef/NOR2X1.lef.beforemagic b/cells/lef/NOR2X1.lef.beforemagic
new file mode 100644
index 0000000..2bdeb66
--- /dev/null
+++ b/cells/lef/NOR2X1.lef.beforemagic
@@ -0,0 +1,164 @@
+MACRO NOR2X1
+ CLASS CORE ;
+ FOREIGN NOR2X1 0 0 ;
+ SIZE 4.32 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 3.50500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
+        RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 0.56 3.01 ) ( 0.89 3.09 ) ;
+      RECT ( 0.56 2.84 ) ( 0.64 3.01 ) ;
+      RECT ( 0.81 2.84 ) ( 0.89 3.01 ) ;
+      RECT ( 0.56 2.76 ) ( 0.89 2.84 ) ;
+      RECT ( 3.2 2.43 ) ( 3.53 2.51 ) ;
+      RECT ( 3.2 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.26 ) ( 3.53 2.43 ) ;
+      RECT ( 3.2 2.18 ) ( 3.53 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.03 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.92 ) ( 3.05 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 0.92 ) ;
+      RECT ( 2.72 0.83 ) ( 3.03 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 3.2 0.67 ) ( 3.53 0.75 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 3.2 0.5 ) ( 3.28 0.67 ) ;
+      RECT ( 3.45 0.5 ) ( 3.53 0.67 ) ;
+      RECT ( 3.2 0.42 ) ( 3.53 0.5 ) ;
+      RECT ( 1.76 0.27 ) ( 2.09 0.32 ) ;
+      RECT ( 1.76 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 2.01 0.24 ) ( 2.09 0.27 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 4.32 3.57 ) ;
+      RECT ( 0.58 3.01 ) ( 0.87 3.09 ) ;
+      RECT ( 0.58 2.84 ) ( 0.64 3.01 ) ;
+      RECT ( 0.81 2.84 ) ( 0.87 3.01 ) ;
+      RECT ( 0.58 2.78 ) ( 0.87 2.84 ) ;
+      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
+      RECT ( 3.22 2.26 ) ( 3.28 2.43 ) ;
+      RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
+      RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 3.29 0.73 ) ( 3.43 2.2 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 3.22 0.67 ) ( 3.51 0.73 ) ;
+      RECT ( 3.22 0.66 ) ( 3.28 0.67 ) ;
+      RECT ( 1.05 0.52 ) ( 3.28 0.66 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.52 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 3.22 0.5 ) ( 3.28 0.52 ) ;
+      RECT ( 3.45 0.5 ) ( 3.51 0.67 ) ;
+      RECT ( 3.22 0.44 ) ( 3.51 0.5 ) ;
+      RECT ( 1.78 0.27 ) ( 2.07 0.33 ) ;
+      RECT ( 1.78 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 0 0.1 ) ( 1.84 0.24 ) ;
+      RECT ( 2.01 0.24 ) ( 2.07 0.27 ) ;
+      RECT ( 2.01 0.1 ) ( 4.32 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 4.32 0.1 ) ;
+
+  end
+END NOR2X1
diff --git a/cells/lef/OAI21X1.lef.beforemagic b/cells/lef/OAI21X1.lef.beforemagic
new file mode 100644
index 0000000..e559a02
--- /dev/null
+++ b/cells/lef/OAI21X1.lef.beforemagic
@@ -0,0 +1,213 @@
+MACRO OAI21X1
+ CLASS CORE ;
+ FOREIGN OAI21X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.27000000 ;
+        RECT 0.57500000 2.27000000 4.94500000 2.41000000 ;
+        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+        RECT 4.65500000 2.41000000 4.94500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END B
+
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END C
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 4.64 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.47 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.92 ) ( 4.49 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
+      RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 2.24 0.67 ) ( 2.55 0.75 ) ;
+      RECT ( 2.24 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.66 ) ( 2.55 0.67 ) ;
+      RECT ( 4.64 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 2.49 0.5 ) ( 2.57 0.66 ) ;
+      RECT ( 2.24 0.42 ) ( 2.57 0.5 ) ;
+      RECT ( 3.2 0.49 ) ( 3.53 0.57 ) ;
+      RECT ( 3.2 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.53 0.49 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 3.2 0.27 ) ( 3.53 0.32 ) ;
+      RECT ( 3.2 0.24 ) ( 3.28 0.27 ) ;
+      RECT ( 3.45 0.24 ) ( 3.53 0.27 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 5.76 3.57 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.41 ) ( 0.87 2.43 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.41 ) ( 4.72 2.43 ) ;
+      RECT ( 0.81 2.27 ) ( 4.72 2.41 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.27 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.27 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 2.26 0.67 ) ( 2.55 0.73 ) ;
+      RECT ( 2.26 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.66 ) ( 2.55 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
+      RECT ( 2.49 0.52 ) ( 4.72 0.66 ) ;
+      RECT ( 2.49 0.5 ) ( 2.55 0.52 ) ;
+      RECT ( 2.26 0.44 ) ( 2.55 0.5 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.52 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 3.22 0.27 ) ( 3.51 0.33 ) ;
+      RECT ( 3.22 0.24 ) ( 3.28 0.27 ) ;
+      RECT ( 0 0.1 ) ( 3.28 0.24 ) ;
+      RECT ( 3.45 0.24 ) ( 3.51 0.27 ) ;
+      RECT ( 3.45 0.1 ) ( 5.76 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 0.1 ) ;
+
+  end
+END OAI21X1
diff --git a/cells/lef/OAI22X1.lef.beforemagic b/cells/lef/OAI22X1.lef.beforemagic
new file mode 100644
index 0000000..9fb67b7
--- /dev/null
+++ b/cells/lef/OAI22X1.lef.beforemagic
@@ -0,0 +1,257 @@
+MACRO OAI22X1
+ CLASS CORE ;
+ FOREIGN OAI22X1 0 0 ;
+ SIZE 7.2 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.13500000 0.84500000 5.42500000 1.13500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+        RECT 5.21000000 1.13500000 5.35000000 2.27000000 ;
+        RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+        RECT 0.81500000 2.27000000 6.38500000 2.41000000 ;
+        RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+        RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
+
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END C
+
+  PIN D
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+    END
+  END D
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 3.2 3.01 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.53 3.01 ) ;
+      RECT ( 3.2 2.76 ) ( 3.53 2.84 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 6.08 2.43 ) ( 6.41 2.51 ) ;
+      RECT ( 6.08 2.26 ) ( 6.16 2.43 ) ;
+      RECT ( 6.33 2.26 ) ( 6.41 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.11 2.26 ) ;
+      RECT ( 6.1 2.18 ) ( 6.41 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 2.01 ) ( 5.93 2.09 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.92 ) ( 1.36 1.08 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 0.92 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.3 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 5.6 0.92 ) ( 5.68 1.08 ) ;
+      RECT ( 5.2 0.75 ) ( 5.37 0.91 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
+      RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
+      RECT ( 5.62 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.13 0.75 ) ;
+      RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.67 ) ;
+      RECT ( 3.22 0.67 ) ( 3.53 0.75 ) ;
+      RECT ( 3.22 0.66 ) ( 3.28 0.67 ) ;
+      RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 3.2 0.5 ) ( 3.28 0.66 ) ;
+      RECT ( 3.45 0.5 ) ( 3.53 0.67 ) ;
+      RECT ( 3.2 0.42 ) ( 3.53 0.5 ) ;
+      RECT ( 5.12 0.67 ) ( 5.45 0.75 ) ;
+      RECT ( 5.12 0.5 ) ( 5.2 0.67 ) ;
+      RECT ( 5.37 0.5 ) ( 5.45 0.67 ) ;
+      RECT ( 6.1 0.67 ) ( 6.41 0.75 ) ;
+      RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
+      RECT ( 5.12 0.42 ) ( 5.45 0.5 ) ;
+      RECT ( 6.08 0.5 ) ( 6.16 0.66 ) ;
+      RECT ( 6.33 0.5 ) ( 6.41 0.67 ) ;
+      RECT ( 6.08 0.42 ) ( 6.41 0.5 ) ;
+      RECT ( 1.76 0.27 ) ( 2.09 0.32 ) ;
+      RECT ( 1.76 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 2.01 0.24 ) ( 2.09 0.27 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 7.2 3.57 ) ;
+      RECT ( 3.22 3.01 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.51 3.01 ) ;
+      RECT ( 3.22 2.78 ) ( 3.51 2.84 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.41 ) ( 1.11 2.43 ) ;
+      RECT ( 6.1 2.43 ) ( 6.39 2.49 ) ;
+      RECT ( 6.1 2.41 ) ( 6.16 2.43 ) ;
+      RECT ( 1.05 2.27 ) ( 6.16 2.41 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.27 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 5.21 1.14 ) ( 5.35 2.27 ) ;
+      RECT ( 6.1 2.26 ) ( 6.16 2.27 ) ;
+      RECT ( 6.33 2.26 ) ( 6.39 2.43 ) ;
+      RECT ( 6.1 2.2 ) ( 6.39 2.26 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
+      RECT ( 5.69 1.14 ) ( 5.83 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 5.14 1.08 ) ( 5.43 1.14 ) ;
+      RECT ( 5.14 0.91 ) ( 5.2 1.08 ) ;
+      RECT ( 5.37 0.91 ) ( 5.43 1.08 ) ;
+      RECT ( 5.14 0.85 ) ( 5.43 0.91 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
+      RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
+      RECT ( 3.22 0.67 ) ( 3.51 0.73 ) ;
+      RECT ( 3.22 0.66 ) ( 3.28 0.67 ) ;
+      RECT ( 1.05 0.52 ) ( 3.28 0.66 ) ;
+      RECT ( 1.05 0.5 ) ( 1.11 0.52 ) ;
+      RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
+      RECT ( 3.22 0.5 ) ( 3.28 0.52 ) ;
+      RECT ( 3.45 0.66 ) ( 3.51 0.67 ) ;
+      RECT ( 6.1 0.67 ) ( 6.39 0.73 ) ;
+      RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
+      RECT ( 3.45 0.52 ) ( 6.16 0.66 ) ;
+      RECT ( 3.45 0.5 ) ( 3.51 0.52 ) ;
+      RECT ( 3.22 0.44 ) ( 3.51 0.5 ) ;
+      RECT ( 6.1 0.5 ) ( 6.16 0.52 ) ;
+      RECT ( 6.33 0.5 ) ( 6.39 0.67 ) ;
+      RECT ( 6.1 0.44 ) ( 6.39 0.5 ) ;
+      RECT ( 1.78 0.27 ) ( 2.07 0.33 ) ;
+      RECT ( 1.78 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 0 0.1 ) ( 1.84 0.24 ) ;
+      RECT ( 2.01 0.24 ) ( 2.07 0.27 ) ;
+      RECT ( 2.01 0.1 ) ( 7.2 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 7.2 0.1 ) ;
+
+  end
+END OAI22X1
diff --git a/cells/lef/OR2X1.lef.beforemagic b/cells/lef/OR2X1.lef.beforemagic
new file mode 100644
index 0000000..db38bab
--- /dev/null
+++ b/cells/lef/OR2X1.lef.beforemagic
@@ -0,0 +1,193 @@
+MACRO OR2X1
+ CLASS CORE ;
+ FOREIGN OR2X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 3.2 3.01 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.53 3.01 ) ;
+      RECT ( 3.2 2.76 ) ( 3.53 2.84 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.11 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 1.36 1.16 ) ( 1.53 1.31 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.31 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.92 ) ( 2.8 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.74 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 2.24 0.67 ) ( 2.57 0.75 ) ;
+      RECT ( 0.56 0.49 ) ( 0.89 0.57 ) ;
+      RECT ( 0.56 0.32 ) ( 0.64 0.49 ) ;
+      RECT ( 0.81 0.32 ) ( 0.89 0.49 ) ;
+      RECT ( 2.24 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.5 ) ( 2.57 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
+      RECT ( 2.24 0.42 ) ( 2.57 0.5 ) ;
+      RECT ( 3.2 0.49 ) ( 3.53 0.57 ) ;
+      RECT ( 0.56 0.24 ) ( 0.89 0.32 ) ;
+      RECT ( 3.2 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.53 0.49 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 5.76 3.57 ) ;
+      RECT ( 3.22 3.01 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.51 3.01 ) ;
+      RECT ( 3.22 2.78 ) ( 3.51 2.84 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.43 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 0.89 1.06 ) ( 1.03 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.54 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.54 ) ( 2.95 1.78 ) ;
+      RECT ( 1.3 1.48 ) ( 1.59 1.54 ) ;
+      RECT ( 1.3 1.31 ) ( 1.36 1.48 ) ;
+      RECT ( 1.53 1.31 ) ( 1.59 1.48 ) ;
+      RECT ( 1.3 1.25 ) ( 1.59 1.31 ) ;
+      RECT ( 2.74 1.48 ) ( 3.03 1.54 ) ;
+      RECT ( 2.74 1.31 ) ( 2.8 1.48 ) ;
+      RECT ( 2.97 1.31 ) ( 3.03 1.48 ) ;
+      RECT ( 2.74 1.25 ) ( 3.03 1.31 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 0.89 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 2.33 0.73 ) ( 2.47 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
+      RECT ( 2.26 0.67 ) ( 2.55 0.73 ) ;
+      RECT ( 0.58 0.49 ) ( 0.87 0.55 ) ;
+      RECT ( 0.58 0.32 ) ( 0.64 0.49 ) ;
+      RECT ( 0.81 0.32 ) ( 0.87 0.49 ) ;
+      RECT ( 2.26 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.5 ) ( 2.55 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 2.26 0.44 ) ( 2.55 0.5 ) ;
+      RECT ( 3.22 0.49 ) ( 3.51 0.55 ) ;
+      RECT ( 0.58 0.24 ) ( 0.87 0.32 ) ;
+      RECT ( 3.22 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.51 0.49 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 3.22 0.24 ) ( 3.51 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 0.24 ) ;
+
+  end
+END OR2X1
diff --git a/cells/lef/OR2X2.lef b/cells/lef/OR2X2.lef
new file mode 100644
index 0000000..20aa302
--- /dev/null
+++ b/cells/lef/OR2X2.lef
@@ -0,0 +1,156 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO OR2X2
+  CLASS CORE ;
+  FOREIGN OR2X2 ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 5.760 BY 3.330 ;
+  SYMMETRY X Y R90 ;
+  SITE unit ;
+  PIN vdd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.000 3.090 5.760 3.570 ;
+        RECT 3.220 3.010 3.510 3.090 ;
+        RECT 3.220 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.510 3.010 ;
+        RECT 3.220 2.780 3.510 2.840 ;
+    END
+  END vdd
+  PIN gnd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.580 0.490 0.870 0.550 ;
+        RECT 0.580 0.320 0.640 0.490 ;
+        RECT 0.810 0.320 0.870 0.490 ;
+        RECT 0.580 0.240 0.870 0.320 ;
+        RECT 3.220 0.490 3.510 0.550 ;
+        RECT 3.220 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.510 0.490 ;
+        RECT 3.220 0.240 3.510 0.320 ;
+        RECT 0.000 -0.240 5.760 0.240 ;
+    END
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 4.660 2.200 4.950 2.490 ;
+        RECT 4.730 0.730 4.870 2.200 ;
+        RECT 4.660 0.440 4.950 0.730 ;
+    END
+  END Y
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.540 1.510 1.780 ;
+        RECT 1.300 1.250 1.590 1.540 ;
+    END
+  END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+    END
+  END B
+  OBS
+      LAYER li1 ;
+        RECT 3.200 3.010 3.530 3.090 ;
+        RECT 3.200 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.530 3.010 ;
+        RECT 3.200 2.760 3.530 2.840 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 0.800 2.180 1.110 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 1.360 1.160 1.530 1.310 ;
+        RECT 2.800 1.160 2.970 1.760 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.920 2.800 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.740 0.910 2.800 0.920 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.740 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 2.240 0.670 2.570 0.750 ;
+        RECT 0.560 0.490 0.890 0.570 ;
+        RECT 0.560 0.320 0.640 0.490 ;
+        RECT 0.810 0.320 0.890 0.490 ;
+        RECT 2.240 0.500 2.320 0.670 ;
+        RECT 2.490 0.500 2.570 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
+        RECT 2.240 0.420 2.570 0.500 ;
+        RECT 3.200 0.490 3.530 0.570 ;
+        RECT 0.560 0.240 0.890 0.320 ;
+        RECT 3.200 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.530 0.490 ;
+        RECT 4.640 0.500 4.720 0.660 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 3.200 0.240 3.530 0.320 ;
+      LAYER met1 ;
+        RECT 0.820 2.430 1.110 2.490 ;
+        RECT 0.820 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.110 2.430 ;
+        RECT 0.820 2.200 1.110 2.260 ;
+        RECT 0.890 1.060 1.030 2.200 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 0.890 0.920 4.240 1.060 ;
+        RECT 2.330 0.730 2.470 0.920 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 2.260 0.670 2.550 0.730 ;
+        RECT 2.260 0.500 2.320 0.670 ;
+        RECT 2.490 0.500 2.550 0.670 ;
+        RECT 2.260 0.440 2.550 0.500 ;
+  END
+END OR2X2
+END LIBRARY
+
diff --git a/cells/lef/OR2X2.lef.beforemagic b/cells/lef/OR2X2.lef.beforemagic
new file mode 100644
index 0000000..57adb87
--- /dev/null
+++ b/cells/lef/OR2X2.lef.beforemagic
@@ -0,0 +1,186 @@
+MACRO OR2X2
+ CLASS CORE ;
+ FOREIGN OR2X2 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 3.2 3.01 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.53 3.01 ) ;
+      RECT ( 3.2 2.76 ) ( 3.53 2.84 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.11 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 1.36 1.16 ) ( 1.53 1.31 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.76 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.92 ) ( 2.8 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.74 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 2.24 0.67 ) ( 2.57 0.75 ) ;
+      RECT ( 0.56 0.49 ) ( 0.89 0.57 ) ;
+      RECT ( 0.56 0.32 ) ( 0.64 0.49 ) ;
+      RECT ( 0.81 0.32 ) ( 0.89 0.49 ) ;
+      RECT ( 2.24 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.5 ) ( 2.57 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
+      RECT ( 2.24 0.42 ) ( 2.57 0.5 ) ;
+      RECT ( 3.2 0.49 ) ( 3.53 0.57 ) ;
+      RECT ( 0.56 0.24 ) ( 0.89 0.32 ) ;
+      RECT ( 3.2 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.53 0.49 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.32 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.09 ) ( 5.76 3.57 ) ;
+      RECT ( 3.22 3.01 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.84 ) ( 3.28 3.01 ) ;
+      RECT ( 3.45 2.84 ) ( 3.51 3.01 ) ;
+      RECT ( 3.22 2.78 ) ( 3.51 2.84 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.43 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 0.89 1.06 ) ( 1.03 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.54 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.48 ) ( 1.59 1.54 ) ;
+      RECT ( 1.3 1.31 ) ( 1.36 1.48 ) ;
+      RECT ( 1.53 1.31 ) ( 1.59 1.48 ) ;
+      RECT ( 1.3 1.25 ) ( 1.59 1.31 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 0.89 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 2.33 0.73 ) ( 2.47 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
+      RECT ( 2.26 0.67 ) ( 2.55 0.73 ) ;
+      RECT ( 0.58 0.49 ) ( 0.87 0.55 ) ;
+      RECT ( 0.58 0.32 ) ( 0.64 0.49 ) ;
+      RECT ( 0.81 0.32 ) ( 0.87 0.49 ) ;
+      RECT ( 2.26 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.5 ) ( 2.55 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 2.26 0.44 ) ( 2.55 0.5 ) ;
+      RECT ( 3.22 0.49 ) ( 3.51 0.55 ) ;
+      RECT ( 0.58 0.24 ) ( 0.87 0.32 ) ;
+      RECT ( 3.22 0.32 ) ( 3.28 0.49 ) ;
+      RECT ( 3.45 0.32 ) ( 3.51 0.49 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 3.22 0.24 ) ( 3.51 0.32 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 0.24 ) ;
+
+  end
+END OR2X2
diff --git a/cells/lef/XOR2X1.lef b/cells/lef/XOR2X1.lef
new file mode 100644
index 0000000..3521cff
--- /dev/null
+++ b/cells/lef/XOR2X1.lef
@@ -0,0 +1,243 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO XOR2X1
+  CLASS CORE ;
+  FOREIGN XOR2X1 ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 10.080 BY 3.330 ;
+  SYMMETRY X Y R90 ;
+  SITE unit ;
+  PIN vdd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.000 3.090 10.080 3.570 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 7.540 3.070 7.600 3.090 ;
+        RECT 7.770 3.070 7.830 3.090 ;
+        RECT 7.540 3.010 7.830 3.070 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
+    END
+  END vdd
+  PIN gnd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.780 0.270 2.070 0.330 ;
+        RECT 1.780 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.070 0.270 ;
+        RECT 7.540 0.270 7.830 0.330 ;
+        RECT 7.540 0.240 7.600 0.270 ;
+        RECT 7.770 0.240 7.830 0.270 ;
+        RECT 0.000 -0.240 10.080 0.240 ;
+    END
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 5.140 2.410 5.430 2.490 ;
+        RECT 5.140 2.270 6.310 2.410 ;
+        RECT 5.140 2.200 5.430 2.270 ;
+        RECT 5.140 0.660 5.430 0.730 ;
+        RECT 6.170 0.660 6.310 2.270 ;
+        RECT 5.140 0.520 6.310 0.660 ;
+        RECT 5.140 0.440 5.430 0.520 ;
+    END
+  END Y
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 5.620 2.000 5.910 2.070 ;
+        RECT 4.250 1.860 5.910 2.000 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 4.250 1.140 4.390 1.860 ;
+        RECT 5.620 1.780 5.910 1.860 ;
+        RECT 1.300 1.060 1.590 1.140 ;
+        RECT 4.180 1.060 4.470 1.140 ;
+        RECT 1.300 0.920 4.470 1.060 ;
+        RECT 1.300 0.850 1.590 0.920 ;
+        RECT 4.180 0.850 4.470 0.920 ;
+    END
+  END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.810 2.680 8.710 2.820 ;
+        RECT 2.810 2.070 2.950 2.680 ;
+        RECT 8.570 2.070 8.710 2.680 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 8.500 1.780 8.790 2.070 ;
+        RECT 8.570 1.140 8.710 1.780 ;
+        RECT 8.500 0.850 8.790 1.140 ;
+    END
+  END B
+  OBS
+      LAYER li1 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 7.520 3.070 7.600 3.090 ;
+        RECT 7.770 3.070 7.850 3.090 ;
+        RECT 7.520 3.010 7.850 3.070 ;
+        RECT 7.520 2.840 7.600 3.010 ;
+        RECT 7.770 2.840 7.850 3.010 ;
+        RECT 7.520 2.760 7.850 2.840 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 5.120 2.430 5.450 2.510 ;
+        RECT 5.120 2.260 5.200 2.430 ;
+        RECT 5.370 2.260 5.450 2.430 ;
+        RECT 8.960 2.430 9.290 2.510 ;
+        RECT 8.960 2.260 9.040 2.430 ;
+        RECT 9.210 2.260 9.290 2.430 ;
+        RECT 5.120 2.180 5.430 2.260 ;
+        RECT 8.980 2.180 9.290 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 3.450 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 2.010 5.930 2.090 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 7.040 2.010 7.370 2.090 ;
+        RECT 7.040 1.840 7.120 2.010 ;
+        RECT 7.290 1.840 7.370 2.010 ;
+        RECT 7.040 1.760 7.370 1.840 ;
+        RECT 8.480 2.010 8.810 2.090 ;
+        RECT 8.480 1.840 8.560 2.010 ;
+        RECT 8.730 1.840 8.810 2.010 ;
+        RECT 8.480 1.760 8.810 1.840 ;
+        RECT 2.800 1.160 2.970 1.760 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 5.600 0.920 5.680 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 5.620 0.910 5.680 0.920 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 5.620 0.830 5.930 0.910 ;
+        RECT 7.040 1.080 7.370 1.160 ;
+        RECT 7.040 0.910 7.120 1.080 ;
+        RECT 7.290 0.910 7.370 1.080 ;
+        RECT 7.040 0.830 7.370 0.910 ;
+        RECT 8.480 1.080 8.810 1.160 ;
+        RECT 8.480 0.910 8.560 1.080 ;
+        RECT 8.730 0.910 8.810 1.080 ;
+        RECT 8.480 0.830 8.810 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 5.120 0.670 5.450 0.750 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 5.120 0.500 5.200 0.670 ;
+        RECT 5.370 0.500 5.450 0.670 ;
+        RECT 8.980 0.670 9.290 0.750 ;
+        RECT 8.980 0.660 9.040 0.670 ;
+        RECT 5.120 0.420 5.450 0.500 ;
+        RECT 7.520 0.490 7.850 0.570 ;
+        RECT 1.760 0.270 2.090 0.320 ;
+        RECT 1.760 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.090 0.270 ;
+        RECT 7.520 0.320 7.600 0.490 ;
+        RECT 7.770 0.320 7.850 0.490 ;
+        RECT 8.960 0.500 9.040 0.660 ;
+        RECT 9.210 0.500 9.290 0.670 ;
+        RECT 8.960 0.420 9.290 0.500 ;
+        RECT 7.520 0.270 7.850 0.320 ;
+        RECT 7.520 0.240 7.600 0.270 ;
+        RECT 7.770 0.240 7.850 0.270 ;
+      LAYER met1 ;
+        RECT 0.580 2.430 0.870 2.490 ;
+        RECT 0.580 2.260 0.640 2.430 ;
+        RECT 0.810 2.410 0.870 2.430 ;
+        RECT 8.980 2.430 9.270 2.490 ;
+        RECT 0.810 2.270 1.990 2.410 ;
+        RECT 0.810 2.260 0.870 2.270 ;
+        RECT 0.580 2.200 0.870 2.260 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 1.850 1.600 1.990 2.270 ;
+        RECT 8.980 2.260 9.040 2.430 ;
+        RECT 9.210 2.260 9.270 2.430 ;
+        RECT 8.980 2.200 9.270 2.260 ;
+        RECT 3.220 2.010 3.510 2.070 ;
+        RECT 3.220 1.840 3.280 2.010 ;
+        RECT 3.450 1.840 3.510 2.010 ;
+        RECT 3.220 1.780 3.510 1.840 ;
+        RECT 7.060 2.010 7.350 2.070 ;
+        RECT 7.060 1.840 7.120 2.010 ;
+        RECT 7.290 1.840 7.350 2.010 ;
+        RECT 7.060 1.780 7.350 1.840 ;
+        RECT 3.290 1.600 3.430 1.780 ;
+        RECT 1.850 1.460 3.430 1.600 ;
+        RECT 7.130 1.140 7.270 1.780 ;
+        RECT 5.620 1.080 5.910 1.140 ;
+        RECT 5.620 1.060 5.680 1.080 ;
+        RECT 4.730 0.920 5.680 1.060 ;
+        RECT 0.580 0.670 0.870 0.730 ;
+        RECT 0.580 0.500 0.640 0.670 ;
+        RECT 0.810 0.660 0.870 0.670 ;
+        RECT 4.730 0.660 4.870 0.920 ;
+        RECT 5.620 0.910 5.680 0.920 ;
+        RECT 5.850 0.910 5.910 1.080 ;
+        RECT 5.620 0.850 5.910 0.910 ;
+        RECT 7.060 1.080 7.350 1.140 ;
+        RECT 7.060 0.910 7.120 1.080 ;
+        RECT 7.290 0.910 7.350 1.080 ;
+        RECT 7.060 0.850 7.350 0.910 ;
+        RECT 0.810 0.520 4.870 0.660 ;
+        RECT 7.130 0.660 7.270 0.850 ;
+        RECT 9.050 0.730 9.190 2.200 ;
+        RECT 8.980 0.670 9.270 0.730 ;
+        RECT 8.980 0.660 9.040 0.670 ;
+        RECT 7.130 0.520 9.040 0.660 ;
+        RECT 0.810 0.500 0.870 0.520 ;
+        RECT 0.580 0.440 0.870 0.500 ;
+        RECT 8.980 0.500 9.040 0.520 ;
+        RECT 9.210 0.500 9.270 0.670 ;
+        RECT 8.980 0.440 9.270 0.500 ;
+  END
+END XOR2X1
+END LIBRARY
+
diff --git a/cells/lef/XOR2X1.lef.beforemagic b/cells/lef/XOR2X1.lef.beforemagic
new file mode 100644
index 0000000..1e0a66d
--- /dev/null
+++ b/cells/lef/XOR2X1.lef.beforemagic
@@ -0,0 +1,308 @@
+MACRO XOR2X1
+ CLASS CORE ;
+ FOREIGN XOR2X1 0 0 ;
+ SIZE 10.08 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
+        RECT 5.13500000 0.51500000 6.31000000 0.65500000 ;
+        RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.65500000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.85500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 4.25000000 1.85500000 5.90500000 1.99500000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
+        RECT 8.57000000 1.13500000 8.71000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+        RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
+        RECT 2.81000000 2.07000000 2.95000000 2.67500000 ;
+        RECT 8.57000000 2.07000000 8.71000000 2.67500000 ;
+        RECT 2.81000000 2.67500000 8.71000000 2.81500000 ;
+    END
+  END B
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 1.76 3.01 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.09 3.01 ) ;
+      RECT ( 1.76 2.76 ) ( 2.09 2.84 ) ;
+      RECT ( 7.52 3.07 ) ( 7.6 3.09 ) ;
+      RECT ( 7.77 3.07 ) ( 7.85 3.09 ) ;
+      RECT ( 7.52 3.01 ) ( 7.85 3.07 ) ;
+      RECT ( 7.52 2.84 ) ( 7.6 3.01 ) ;
+      RECT ( 7.77 2.84 ) ( 7.85 3.01 ) ;
+      RECT ( 7.52 2.76 ) ( 7.85 2.84 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 5.12 2.43 ) ( 5.45 2.51 ) ;
+      RECT ( 5.12 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.26 ) ( 5.45 2.43 ) ;
+      RECT ( 8.96 2.43 ) ( 9.29 2.51 ) ;
+      RECT ( 8.96 2.26 ) ( 9.04 2.43 ) ;
+      RECT ( 9.21 2.26 ) ( 9.29 2.43 ) ;
+      RECT ( 5.12 2.18 ) ( 5.43 2.26 ) ;
+      RECT ( 8.98 2.18 ) ( 9.29 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 3.45 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 2.01 ) ( 5.93 2.09 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 7.04 2.01 ) ( 7.37 2.09 ) ;
+      RECT ( 7.04 1.84 ) ( 7.12 2.01 ) ;
+      RECT ( 7.29 1.84 ) ( 7.37 2.01 ) ;
+      RECT ( 7.04 1.76 ) ( 7.37 1.84 ) ;
+      RECT ( 8.48 2.01 ) ( 8.81 2.09 ) ;
+      RECT ( 8.48 1.84 ) ( 8.56 2.01 ) ;
+      RECT ( 8.73 1.84 ) ( 8.81 2.01 ) ;
+      RECT ( 8.48 1.76 ) ( 8.81 1.84 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.76 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 5.6 0.92 ) ( 5.68 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
+      RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
+      RECT ( 5.62 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 7.04 1.08 ) ( 7.37 1.16 ) ;
+      RECT ( 7.04 0.91 ) ( 7.12 1.08 ) ;
+      RECT ( 7.29 0.91 ) ( 7.37 1.08 ) ;
+      RECT ( 7.04 0.83 ) ( 7.37 0.91 ) ;
+      RECT ( 8.48 1.08 ) ( 8.81 1.16 ) ;
+      RECT ( 8.48 0.91 ) ( 8.56 1.08 ) ;
+      RECT ( 8.73 0.91 ) ( 8.81 1.08 ) ;
+      RECT ( 8.48 0.83 ) ( 8.81 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 5.12 0.67 ) ( 5.45 0.75 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 1.76 0.49 ) ( 2.09 0.57 ) ;
+      RECT ( 1.76 0.32 ) ( 1.84 0.49 ) ;
+      RECT ( 2.01 0.32 ) ( 2.09 0.49 ) ;
+      RECT ( 5.12 0.5 ) ( 5.2 0.67 ) ;
+      RECT ( 5.37 0.5 ) ( 5.45 0.67 ) ;
+      RECT ( 8.98 0.67 ) ( 9.29 0.75 ) ;
+      RECT ( 8.98 0.66 ) ( 9.04 0.67 ) ;
+      RECT ( 5.12 0.42 ) ( 5.45 0.5 ) ;
+      RECT ( 7.52 0.49 ) ( 7.85 0.57 ) ;
+      RECT ( 1.76 0.27 ) ( 2.09 0.32 ) ;
+      RECT ( 1.76 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 2.01 0.24 ) ( 2.09 0.27 ) ;
+      RECT ( 7.52 0.32 ) ( 7.6 0.49 ) ;
+      RECT ( 7.77 0.32 ) ( 7.85 0.49 ) ;
+      RECT ( 8.96 0.5 ) ( 9.04 0.66 ) ;
+      RECT ( 9.21 0.5 ) ( 9.29 0.67 ) ;
+      RECT ( 8.96 0.42 ) ( 9.29 0.5 ) ;
+      RECT ( 7.52 0.27 ) ( 7.85 0.32 ) ;
+      RECT ( 7.52 0.24 ) ( 7.6 0.27 ) ;
+      RECT ( 7.77 0.24 ) ( 7.85 0.27 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.24 ) ( 10.08 3.57 ) ;
+      RECT ( 0 3.09 ) ( 7.6 3.24 ) ;
+      RECT ( 1.78 3.01 ) ( 2.07 3.09 ) ;
+      RECT ( 7.54 3.07 ) ( 7.6 3.09 ) ;
+      RECT ( 7.77 3.09 ) ( 10.08 3.24 ) ;
+      RECT ( 7.77 3.07 ) ( 7.83 3.09 ) ;
+      RECT ( 7.54 3.01 ) ( 7.83 3.07 ) ;
+      RECT ( 1.78 2.84 ) ( 1.84 3.01 ) ;
+      RECT ( 2.01 2.84 ) ( 2.07 3.01 ) ;
+      RECT ( 1.78 2.78 ) ( 2.07 2.84 ) ;
+      RECT ( 2.81 2.68 ) ( 8.71 2.82 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.41 ) ( 0.87 2.43 ) ;
+      RECT ( 0.81 2.27 ) ( 1.99 2.41 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.27 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 1.85 1.6 ) ( 1.99 2.27 ) ;
+      RECT ( 2.81 2.07 ) ( 2.95 2.68 ) ;
+      RECT ( 5.14 2.43 ) ( 5.43 2.49 ) ;
+      RECT ( 5.14 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.41 ) ( 5.43 2.43 ) ;
+      RECT ( 5.37 2.27 ) ( 6.31 2.41 ) ;
+      RECT ( 5.37 2.26 ) ( 5.43 2.27 ) ;
+      RECT ( 5.14 2.2 ) ( 5.43 2.26 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 3.22 2.01 ) ( 3.51 2.07 ) ;
+      RECT ( 3.22 1.84 ) ( 3.28 2.01 ) ;
+      RECT ( 3.45 1.84 ) ( 3.51 2.01 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 2 ) ( 5.68 2.01 ) ;
+      RECT ( 3.22 1.78 ) ( 3.51 1.84 ) ;
+      RECT ( 4.25 1.86 ) ( 5.68 2 ) ;
+      RECT ( 3.29 1.6 ) ( 3.43 1.78 ) ;
+      RECT ( 1.85 1.46 ) ( 3.43 1.6 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.86 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 1.86 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 1.06 ) ( 1.59 1.08 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 1.53 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 0.92 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 1.06 ) ( 5.68 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 4.73 0.92 ) ( 5.68 1.06 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.66 ) ( 0.87 0.67 ) ;
+      RECT ( 4.73 0.66 ) ( 4.87 0.92 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
+      RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
+      RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
+      RECT ( 0.81 0.52 ) ( 4.87 0.66 ) ;
+      RECT ( 5.14 0.67 ) ( 5.43 0.73 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.52 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 5.14 0.5 ) ( 5.2 0.67 ) ;
+      RECT ( 5.37 0.66 ) ( 5.43 0.67 ) ;
+      RECT ( 6.17 0.66 ) ( 6.31 2.27 ) ;
+      RECT ( 8.57 2.07 ) ( 8.71 2.68 ) ;
+      RECT ( 8.98 2.43 ) ( 9.27 2.49 ) ;
+      RECT ( 8.98 2.26 ) ( 9.04 2.43 ) ;
+      RECT ( 9.21 2.26 ) ( 9.27 2.43 ) ;
+      RECT ( 8.98 2.2 ) ( 9.27 2.26 ) ;
+      RECT ( 7.06 2.01 ) ( 7.35 2.07 ) ;
+      RECT ( 7.06 1.84 ) ( 7.12 2.01 ) ;
+      RECT ( 7.29 1.84 ) ( 7.35 2.01 ) ;
+      RECT ( 7.06 1.78 ) ( 7.35 1.84 ) ;
+      RECT ( 8.5 2.01 ) ( 8.79 2.07 ) ;
+      RECT ( 8.5 1.84 ) ( 8.56 2.01 ) ;
+      RECT ( 8.73 1.84 ) ( 8.79 2.01 ) ;
+      RECT ( 8.5 1.78 ) ( 8.79 1.84 ) ;
+      RECT ( 7.13 1.14 ) ( 7.27 1.78 ) ;
+      RECT ( 8.57 1.14 ) ( 8.71 1.78 ) ;
+      RECT ( 7.06 1.08 ) ( 7.35 1.14 ) ;
+      RECT ( 7.06 0.91 ) ( 7.12 1.08 ) ;
+      RECT ( 7.29 0.91 ) ( 7.35 1.08 ) ;
+      RECT ( 7.06 0.85 ) ( 7.35 0.91 ) ;
+      RECT ( 8.5 1.08 ) ( 8.79 1.14 ) ;
+      RECT ( 8.5 0.91 ) ( 8.56 1.08 ) ;
+      RECT ( 8.73 0.91 ) ( 8.79 1.08 ) ;
+      RECT ( 8.5 0.85 ) ( 8.79 0.91 ) ;
+      RECT ( 5.37 0.52 ) ( 6.31 0.66 ) ;
+      RECT ( 7.13 0.66 ) ( 7.27 0.85 ) ;
+      RECT ( 9.05 0.73 ) ( 9.19 2.2 ) ;
+      RECT ( 8.98 0.67 ) ( 9.27 0.73 ) ;
+      RECT ( 8.98 0.66 ) ( 9.04 0.67 ) ;
+      RECT ( 7.13 0.52 ) ( 9.04 0.66 ) ;
+      RECT ( 5.37 0.5 ) ( 5.43 0.52 ) ;
+      RECT ( 5.14 0.44 ) ( 5.43 0.5 ) ;
+      RECT ( 8.98 0.5 ) ( 9.04 0.52 ) ;
+      RECT ( 9.21 0.5 ) ( 9.27 0.67 ) ;
+      RECT ( 8.98 0.44 ) ( 9.27 0.5 ) ;
+      RECT ( 1.78 0.27 ) ( 2.07 0.33 ) ;
+      RECT ( 1.78 0.24 ) ( 1.84 0.27 ) ;
+      RECT ( 0 0.1 ) ( 1.84 0.24 ) ;
+      RECT ( 2.01 0.24 ) ( 2.07 0.27 ) ;
+      RECT ( 7.54 0.27 ) ( 7.83 0.33 ) ;
+      RECT ( 7.54 0.24 ) ( 7.6 0.27 ) ;
+      RECT ( 2.01 0.1 ) ( 7.6 0.24 ) ;
+      RECT ( 7.77 0.24 ) ( 7.83 0.27 ) ;
+      RECT ( 7.77 0.1 ) ( 10.08 0.24 ) ;
+      RECT ( 0 -0.24 ) ( 10.08 0.1 ) ;
+
+  end
+END XOR2X1
diff --git a/cells/lef/orig/OR2X2.lef b/cells/lef/orig/OR2X2.lef
new file mode 100644
index 0000000..e6bf0b9
--- /dev/null
+++ b/cells/lef/orig/OR2X2.lef
@@ -0,0 +1,142 @@
+MACRO OR2X2
+ CLASS CORE ;
+ FOREIGN OR2X2 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 0.63500000 0.32000000 0.80500000 0.49000000 ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 0.55500000 0.24000000 0.88500000 0.57000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.57000000 ;
+     RECT 2.23500000 0.42000000 2.56500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.35500000 1.15500000 1.52500000 1.48000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 3.19500000 2.76000000 3.52500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 0.63500000 0.32000000 0.80500000 0.49000000 ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.31000000 1.52500000 1.48000000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 0.57500000 0.24000000 0.86500000 0.55000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.55000000 ;
+     RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+     RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 2.25500000 0.44000000 2.54500000 0.73000000 ;
+     RECT 2.33000000 0.73000000 2.47000000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 0.89000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 0.89000000 1.06000000 1.03000000 2.19500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+     RECT 3.21500000 2.78000000 3.50500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
+END OR2X2
diff --git a/cells/lef/orig/XOR2X1.lef b/cells/lef/orig/XOR2X1.lef
new file mode 100644
index 0000000..7cc76a7
--- /dev/null
+++ b/cells/lef/orig/XOR2X1.lef
@@ -0,0 +1,225 @@
+MACRO XOR2X1
+ CLASS CORE ;
+ FOREIGN XOR2X1 0 0 ;
+ SIZE 10.08 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
+        RECT 5.13500000 0.51500000 6.31000000 0.65500000 ;
+        RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.65500000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.85500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 4.25000000 1.85500000 5.90500000 1.99500000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
+        RECT 8.57000000 1.13500000 8.71000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+        RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
+        RECT 2.81000000 2.07000000 2.95000000 2.67500000 ;
+        RECT 8.57000000 2.07000000 8.71000000 2.67500000 ;
+        RECT 2.81000000 2.67500000 8.71000000 2.81500000 ;
+    END
+  END B
+
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
+     RECT 8.55500000 0.90500000 8.72500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
+     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 9.03500000 2.25500000 9.20500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 7.59500000 2.84000000 7.76500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 7.59500000 0.32000000 7.76500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
+     RECT 9.03500000 0.50000000 9.20500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.83500000 0.09500000 2.00500000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 7.59500000 0.09500000 7.76500000 0.24000000 ;
+     RECT 7.51500000 0.24000000 7.84500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 5.11500000 0.42000000 5.44500000 0.75000000 ;
+     RECT 8.95500000 0.42000000 9.28500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 7.03500000 0.82500000 7.36500000 1.15500000 ;
+     RECT 8.47500000 0.82500000 8.80500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 1.84000000 ;
+     RECT 3.27500000 1.84000000 4.48500000 2.01000000 ;
+     RECT 4.15500000 2.01000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 7.03500000 1.76000000 7.36500000 2.09000000 ;
+     RECT 8.47500000 1.76000000 8.80500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 5.11500000 2.17500000 5.44500000 2.50500000 ;
+     RECT 8.95500000 2.17500000 9.28500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+     RECT 7.51500000 2.76000000 7.84500000 3.09000000 ;
+     RECT 7.59500000 3.09000000 7.76500000 3.23500000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.09500000 2.00500000 0.26500000 ;
+     RECT 7.59500000 0.09500000 7.76500000 0.26500000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
+     RECT 9.03500000 0.50000000 9.20500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
+     RECT 8.55500000 0.90500000 8.72500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 3.27500000 1.84000000 3.44500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
+     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 9.03500000 2.25500000 9.20500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 7.59500000 3.06500000 7.76500000 3.23500000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.32500000 ;
+     RECT 7.53500000 0.24000000 7.82500000 0.32500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
+     RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.85500000 ;
+     RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+     RECT 4.25000000 1.85500000 5.90500000 1.99500000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.51500000 ;
+     RECT 0.57500000 0.51500000 4.87000000 0.65500000 ;
+     RECT 0.57500000 0.65500000 0.86500000 0.73000000 ;
+     RECT 4.73000000 0.65500000 4.87000000 0.92000000 ;
+     RECT 5.61500000 0.84500000 5.90500000 0.92000000 ;
+     RECT 4.73000000 0.92000000 5.90500000 1.06000000 ;
+     RECT 5.61500000 1.06000000 5.90500000 1.13500000 ;
+     RECT 1.85000000 1.46000000 3.43000000 1.60000000 ;
+     RECT 3.29000000 1.60000000 3.43000000 1.78000000 ;
+     RECT 3.21500000 1.78000000 3.50500000 2.07000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+     RECT 1.85000000 1.60000000 1.99000000 2.27000000 ;
+     RECT 0.57500000 2.27000000 1.99000000 2.41000000 ;
+     RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+     RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
+     RECT 5.13500000 0.51500000 6.31000000 0.65500000 ;
+     RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
+     RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+     RECT 6.17000000 0.65500000 6.31000000 2.27000000 ;
+     RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+     RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
+     RECT 8.97500000 0.44000000 9.26500000 0.51500000 ;
+     RECT 7.13000000 0.51500000 9.26500000 0.65500000 ;
+     RECT 8.97500000 0.65500000 9.26500000 0.73000000 ;
+     RECT 7.13000000 0.65500000 7.27000000 0.84500000 ;
+     RECT 7.05500000 0.84500000 7.34500000 1.13500000 ;
+     RECT 7.13000000 1.13500000 7.27000000 1.78000000 ;
+     RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
+     RECT 9.05000000 0.73000000 9.19000000 2.19500000 ;
+     RECT 8.97500000 2.19500000 9.26500000 2.48500000 ;
+     RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
+     RECT 8.57000000 1.13500000 8.71000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
+     RECT 2.81000000 2.07000000 2.95000000 2.67500000 ;
+     RECT 8.57000000 2.07000000 8.71000000 2.67500000 ;
+     RECT 2.81000000 2.67500000 8.71000000 2.81500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 7.53500000 3.00500000 7.82500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
+
+ END
+END XOR2X1
diff --git a/cells/lib/OR2X2.lib b/cells/lib/OR2X2.lib
new file mode 100644
index 0000000..d5eccfb
--- /dev/null
+++ b/cells/lib/OR2X2.lib
@@ -0,0 +1,186 @@
+library (ls05_stdcells) {
+  delay_model: table_lookup;
+  in_place_swap_mode: match_footprint;
+  time_unit: "1ns";
+  voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
+  operating_conditions (typical) {
+    process: 1.0;
+    voltage: 5.0;
+    temperature: 25.0;
+  }
+  lu_table_template (delay_template_5x5) {
+    variable_1: total_output_net_capacitance;
+    variable_2: input_net_transition;
+    index_1 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+    index_2 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+  }
+  cell (OR2X2) {
+    area: 219456.0;
+    cell_leakage_power: 0.1173;
+    pin (B) {
+      direction: input;
+      rise_capacitance: 0.006299305363616857;
+      fall_capacitance: 0.008885220124112183;
+      capacitance: 0.007592262743864521;
+    }
+    pin (A) {
+      direction: input;
+      rise_capacitance: 0.006309610190379141;
+      fall_capacitance: 0.00630283867340493;
+      capacitance: 0.006306224431892035;
+    }
+    pin (Y) {
+      direction: output;
+      function: "!(!B&!A)";
+      function: "(!!A & !B)";
+      timing () {
+        related_pin: "A";
+        timing_sense: positive_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410", \
+            "0.041854, 0.043329, 0.051603, 0.059323, 0.062560", \
+            "0.084916, 0.078410, 0.082038, 0.088448, 0.103720", \
+            "0.172611, 0.158216, 0.154751, 0.153103, 0.172991", \
+            "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228", \
+            "0.069115, 0.070143, 0.075842, 0.091793, 0.184877", \
+            "0.111955, 0.111797, 0.115439, 0.127845, 0.254311", \
+            "0.200493, 0.199357, 0.201189, 0.207941, 0.374505", \
+            "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675", \
+            "0.075475, 0.097421, 0.130787, 0.191718, 0.688979", \
+            "0.145593, 0.155613, 0.179062, 0.217295, 0.718675", \
+            "0.287207, 0.287428, 0.292736, 0.315169, 0.792432", \
+            "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641", \
+            "0.093953, 0.096473, 0.103565, 0.127433, 0.668426", \
+            "0.177647, 0.178545, 0.181992, 0.198197, 0.680919", \
+            "0.349306, 0.349321, 0.350007, 0.357523, 0.740411", \
+            "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"
+          );
+        }
+      }
+      timing () {
+        related_pin: "B";
+        timing_sense: positive_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827", \
+            "0.042995, 0.049240, 0.058421, 0.069922, 0.132870", \
+            "0.085418, 0.083324, 0.088199, 0.097150, 0.172762", \
+            "0.172559, 0.161472, 0.159668, 0.160671, 0.230240", \
+            "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818", \
+            "0.070126, 0.072893, 0.078115, 0.092691, 0.135288", \
+            "0.112911, 0.114897, 0.118672, 0.129875, 0.209498", \
+            "0.201393, 0.202758, 0.205335, 0.211918, 0.341264", \
+            "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235", \
+            "0.076858, 0.103458, 0.137895, 0.200949, 0.702148", \
+            "0.145825, 0.159732, 0.185528, 0.227910, 0.724008", \
+            "0.287314, 0.288184, 0.294861, 0.320599, 0.788394", \
+            "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658", \
+            "0.094505, 0.095669, 0.100243, 0.118924, 0.616317", \
+            "0.177929, 0.178313, 0.180338, 0.192868, 0.629773", \
+            "0.349160, 0.349206, 0.349675, 0.355201, 0.694984", \
+            "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"
+          );
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/cells/lib/XOR2X1.lib b/cells/lib/XOR2X1.lib
new file mode 100644
index 0000000..3363566
--- /dev/null
+++ b/cells/lib/XOR2X1.lib
@@ -0,0 +1,186 @@
+library (ls05_stdcells) {
+  delay_model: table_lookup;
+  in_place_swap_mode: match_footprint;
+  time_unit: "1ns";
+  voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
+  operating_conditions (typical) {
+    process: 1.0;
+    voltage: 5.0;
+    temperature: 25.0;
+  }
+  lu_table_template (delay_template_5x5) {
+    variable_1: total_output_net_capacitance;
+    variable_2: input_net_transition;
+    index_1 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+    index_2 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+  }
+  cell (XOR2X1) {
+    area: 384048.0;
+    cell_leakage_power: 0.1173;
+    pin (B) {
+      direction: input;
+      rise_capacitance: 0.011125237855721299;
+      fall_capacitance: 0.013458368537199627;
+      capacitance: 0.012291803196460463;
+    }
+    pin (A) {
+      direction: input;
+      rise_capacitance: 0.005915560312833218;
+      fall_capacitance: 0.009103970632490159;
+      capacitance: 0.007509765472661688;
+    }
+    pin (Y) {
+      direction: output;
+      function: "!(!B&!A|B&A)";
+      function: "(!(A & B + !A & !B))";
+      timing () {
+        related_pin: "A";
+        timing_sense: non_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.012892, 0.017884, 0.023582, 0.028581, 0.047039", \
+            "0.088020, 0.084498, 0.088176, 0.100267, 0.176997", \
+            "0.164777, 0.158599, 0.158811, 0.165507, 0.272027", \
+            "0.319197, 0.311031, 0.307896, 0.307904, 0.436456", \
+            "1.558585, 1.548160, 1.540528, 1.528710, 1.518515"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.016957, 0.021209, 0.026433, 0.031788, 0.049581", \
+            "0.105352, 0.101262, 0.101517, 0.109489, 0.189817", \
+            "0.199116, 0.192599, 0.189067, 0.189128, 0.294604", \
+            "0.387610, 0.379329, 0.372685, 0.364852, 0.472363", \
+            "1.898846, 1.888657, 1.878160, 1.859296, 1.755721"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.023649, 0.043194, 0.070971, 0.085067, 0.565950", \
+            "0.130727, 0.130960, 0.133759, 0.151712, 0.602446", \
+            "0.243440, 0.243431, 0.243448, 0.248631, 0.662387", \
+            "0.468772, 0.468795, 0.468785, 0.468785, 0.757475", \
+            "2.271774, 2.271788, 2.271788, 2.271786, 2.282763"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.028995, 0.032141, 0.047871, 0.084453, 0.560124", \
+            "0.155738, 0.155044, 0.155572, 0.170946, 0.631684", \
+            "0.286568, 0.286562, 0.286518, 0.289308, 0.710606", \
+            "0.548144, 0.548142, 0.548134, 0.548140, 0.843303", \
+            "2.640828, 2.640826, 2.640826, 2.640827, 2.646192"
+          );
+        }
+      }
+      timing () {
+        related_pin: "B";
+        timing_sense: non_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.014892, 0.026246, 0.031838, 0.037204, 0.048590", \
+            "0.091734, 0.095678, 0.100730, 0.112148, 0.182368", \
+            "0.168923, 0.171200, 0.174309, 0.182497, 0.282866", \
+            "0.323721, 0.324777, 0.326200, 0.330900, 0.455028", \
+            "1.563456, 1.563165, 1.562411, 1.561608, 1.609279"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.024069, 0.032502, 0.038891, 0.047467, 0.087946", \
+            "0.115473, 0.118528, 0.123164, 0.134818, 0.246531", \
+            "0.209458, 0.210932, 0.213732, 0.222349, 0.363720", \
+            "0.398106, 0.398429, 0.399551, 0.404751, 0.555323", \
+            "1.909486, 1.908601, 1.907591, 1.907104, 1.962711"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.025121, 0.046358, 0.037829, 0.058746, 0.265684", \
+            "0.130823, 0.130739, 0.131644, 0.140015, 0.394131", \
+            "0.243421, 0.243395, 0.243335, 0.244847, 0.496071", \
+            "0.468767, 0.468755, 0.468745, 0.468743, 0.634781", \
+            "2.271778, 2.271763, 2.271765, 2.271761, 2.273117"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.031037, 0.031042, 0.038291, 0.059160, 0.254240", \
+            "0.155716, 0.155677, 0.155943, 0.162510, 0.429541", \
+            "0.286530, 0.286528, 0.286510, 0.286927, 0.538348", \
+            "0.548114, 0.548124, 0.548121, 0.548120, 0.703170", \
+            "2.640816, 2.640814, 2.640814, 2.640812, 2.640811"
+          );
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/cells/mag/OR2X2.mag b/cells/mag/OR2X2.mag
new file mode 100644
index 0000000..d688278
--- /dev/null
+++ b/cells/mag/OR2X2.mag
@@ -0,0 +1,253 @@
+magic
+tech sky130A
+timestamp 1624067522
+<< nwell >>
+rect 0 179 576 333
+<< nmos >>
+rect 137 24 152 66
+rect 281 24 296 66
+rect 425 24 440 66
+<< pmos >>
+rect 137 225 152 309
+rect 281 225 296 309
+rect 425 225 440 309
+<< ndiff >>
+rect 226 67 255 73
+rect 226 66 232 67
+rect 58 49 137 66
+rect 58 32 64 49
+rect 81 32 137 49
+rect 58 24 137 32
+rect 152 50 232 66
+rect 249 66 255 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 249 50 281 66
+rect 152 24 281 50
+rect 296 49 425 66
+rect 296 32 328 49
+rect 345 32 425 49
+rect 296 24 425 32
+rect 440 50 472 66
+rect 489 66 495 67
+rect 489 50 519 66
+rect 440 24 519 50
+<< pdiff >>
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
+rect 152 225 281 309
+rect 296 301 425 309
+rect 296 284 328 301
+rect 345 284 425 301
+rect 296 225 425 284
+rect 440 243 519 309
+rect 440 226 472 243
+rect 489 226 519 243
+rect 440 225 519 226
+rect 82 220 111 225
+rect 466 220 495 225
+<< ndiffc >>
+rect 64 32 81 49
+rect 232 50 249 67
+rect 328 32 345 49
+rect 472 50 489 67
+<< pdiffc >>
+rect 88 226 105 243
+rect 328 284 345 301
+rect 472 226 489 243
+<< poly >>
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 137 11 152 24
+rect 281 11 296 24
+rect 425 11 440 24
+<< polycont >>
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+<< locali >>
+rect 320 301 353 309
+rect 320 284 328 301
+rect 345 284 353 301
+rect 320 276 353 284
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 80 218 111 226
+rect 466 218 497 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 136 116 153 131
+rect 280 116 297 176
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 272 108 305 116
+rect 272 92 280 108
+rect 128 83 161 91
+rect 274 91 280 92
+rect 297 91 305 108
+rect 274 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 224 67 257 75
+rect 56 49 89 57
+rect 56 32 64 49
+rect 81 32 89 49
+rect 224 50 232 67
+rect 249 50 257 67
+rect 466 67 497 75
+rect 466 66 472 67
+rect 224 42 257 50
+rect 320 49 353 57
+rect 56 24 89 32
+rect 320 32 328 49
+rect 345 32 353 49
+rect 464 50 472 66
+rect 489 50 497 67
+rect 464 42 497 50
+rect 320 24 353 32
+<< viali >>
+rect 328 284 345 301
+rect 88 226 105 243
+rect 472 226 489 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 131 153 148
+rect 424 91 441 108
+rect 64 32 81 49
+rect 232 50 249 67
+rect 328 32 345 49
+rect 472 50 489 67
+<< metal1 >>
+rect 0 309 576 357
+rect 322 301 351 309
+rect 322 284 328 301
+rect 345 284 351 301
+rect 322 278 351 284
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 226 111 243
+rect 82 220 111 226
+rect 466 243 495 249
+rect 466 226 472 243
+rect 489 226 495 243
+rect 466 220 495 226
+rect 89 106 103 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 154 151 178
+rect 130 148 159 154
+rect 130 131 136 148
+rect 153 131 159 148
+rect 130 125 159 131
+rect 425 114 439 178
+rect 418 108 447 114
+rect 418 106 424 108
+rect 89 92 424 106
+rect 233 73 247 92
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 473 73 487 220
+rect 226 67 255 73
+rect 58 49 87 55
+rect 58 32 64 49
+rect 81 32 87 49
+rect 226 50 232 67
+rect 249 50 255 67
+rect 466 67 495 73
+rect 226 44 255 50
+rect 322 49 351 55
+rect 58 24 87 32
+rect 322 32 328 49
+rect 345 32 351 49
+rect 466 50 472 67
+rect 489 50 495 67
+rect 466 44 495 50
+rect 322 24 351 32
+rect 0 -24 576 24
+<< labels >>
+rlabel metal1 0 309 576 357 0 VDD
+port 1 se
+rlabel metal1 0 -24 576 24 0 GND
+port 2 se
+rlabel metal1 466 44 495 73 0 Y
+port 3 se
+rlabel metal1 473 73 487 220 0 Y
+port 4 se
+rlabel metal1 466 220 495 249 0 Y
+port 5 se
+rlabel metal1 130 125 159 154 0 A
+port 6 se
+rlabel metal1 137 154 151 178 0 A
+port 7 se
+rlabel metal1 130 178 159 207 0 A
+port 8 se
+rlabel metal1 274 178 303 207 0 B
+port 9 se
+<< properties >>
+string FIXED_BBOX 0 0 576 333
+<< end >>
diff --git a/cells/mag/XOR2X1.mag b/cells/mag/XOR2X1.mag
new file mode 100644
index 0000000..81f76fa
--- /dev/null
+++ b/cells/mag/XOR2X1.mag
@@ -0,0 +1,470 @@
+magic
+tech sky130A
+timestamp 1624068079
+<< nwell >>
+rect 0 179 1008 333
+<< nmos >>
+rect 137 24 152 66
+rect 281 24 296 66
+rect 425 24 440 66
+rect 569 24 584 66
+rect 713 24 728 66
+rect 857 24 872 66
+<< pmos >>
+rect 137 225 152 309
+rect 281 225 296 309
+rect 425 225 440 309
+rect 569 225 584 309
+rect 713 225 728 309
+rect 857 225 872 309
+<< ndiff >>
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 514 67 543 73
+rect 514 66 520 67
+rect 81 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
+rect 296 24 425 66
+rect 440 50 520 66
+rect 537 66 543 67
+rect 898 67 927 73
+rect 898 66 904 67
+rect 537 50 569 66
+rect 440 24 569 50
+rect 584 24 713 66
+rect 728 49 857 66
+rect 728 32 760 49
+rect 777 32 857 49
+rect 728 24 857 32
+rect 872 50 904 66
+rect 921 66 927 67
+rect 921 50 951 66
+rect 872 24 951 50
+<< pdiff >>
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
+rect 296 225 425 309
+rect 440 243 569 309
+rect 440 226 520 243
+rect 537 226 569 243
+rect 440 225 569 226
+rect 584 225 713 309
+rect 728 301 857 309
+rect 728 284 760 301
+rect 777 284 857 301
+rect 728 225 857 284
+rect 872 243 951 309
+rect 872 226 904 243
+rect 921 226 951 243
+rect 872 225 951 226
+rect 58 220 87 225
+rect 514 220 543 225
+rect 898 220 927 225
+<< ndiffc >>
+rect 64 50 81 67
+rect 184 32 201 49
+rect 520 50 537 67
+rect 760 32 777 49
+rect 904 50 921 67
+<< pdiffc >>
+rect 64 226 81 243
+rect 184 284 201 301
+rect 520 226 537 243
+rect 760 284 777 301
+rect 904 226 921 243
+<< poly >>
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 713 309 728 322
+rect 857 309 872 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 713 209 728 225
+rect 857 209 872 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 704 201 737 209
+rect 704 184 712 201
+rect 729 184 737 201
+rect 704 176 737 184
+rect 848 201 881 209
+rect 848 184 856 201
+rect 873 184 881 201
+rect 848 176 881 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 704 108 737 116
+rect 704 91 712 108
+rect 729 91 737 108
+rect 704 83 737 91
+rect 848 108 881 116
+rect 848 91 856 108
+rect 873 91 881 108
+rect 848 83 881 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 569 66 584 83
+rect 713 66 728 83
+rect 857 66 872 83
+rect 137 11 152 24
+rect 281 11 296 24
+rect 425 11 440 24
+rect 569 11 584 24
+rect 713 11 728 24
+rect 857 11 872 24
+<< polycont >>
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 712 184 729 201
+rect 856 184 873 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 712 91 729 108
+rect 856 91 873 108
+<< locali >>
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 752 307 760 309
+rect 777 307 785 309
+rect 752 301 785 307
+rect 752 284 760 301
+rect 777 284 785 301
+rect 752 276 785 284
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 512 243 545 251
+rect 512 226 520 243
+rect 537 226 545 243
+rect 896 243 929 251
+rect 896 226 904 243
+rect 921 226 929 243
+rect 512 218 543 226
+rect 898 218 929 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 416 201 449 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 345 184 424 201
+rect 441 184 449 201
+rect 272 176 305 184
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 704 201 737 209
+rect 704 184 712 201
+rect 729 184 737 201
+rect 704 176 737 184
+rect 848 201 881 209
+rect 848 184 856 201
+rect 873 184 881 201
+rect 848 176 881 184
+rect 280 116 297 176
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 560 108 593 116
+rect 560 92 568 108
+rect 416 83 449 91
+rect 562 91 568 92
+rect 585 91 593 108
+rect 562 83 593 91
+rect 704 108 737 116
+rect 704 91 712 108
+rect 729 91 737 108
+rect 704 83 737 91
+rect 848 108 881 116
+rect 848 91 856 108
+rect 873 91 881 108
+rect 848 83 881 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 512 67 545 75
+rect 56 42 89 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 512 50 520 67
+rect 537 50 545 67
+rect 898 67 929 75
+rect 898 66 904 67
+rect 512 42 545 50
+rect 752 49 785 57
+rect 176 27 209 32
+rect 176 24 184 27
+rect 201 24 209 27
+rect 752 32 760 49
+rect 777 32 785 49
+rect 896 50 904 66
+rect 921 50 929 67
+rect 896 42 929 50
+rect 752 27 785 32
+rect 752 24 760 27
+rect 777 24 785 27
+<< viali >>
+rect 184 284 201 301
+rect 760 307 777 324
+rect 64 226 81 243
+rect 520 226 537 243
+rect 904 226 921 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 328 184 345 201
+rect 568 184 585 201
+rect 712 184 729 201
+rect 856 184 873 201
+rect 136 91 153 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 712 91 729 108
+rect 856 91 873 108
+rect 64 50 81 67
+rect 520 50 537 67
+rect 184 10 201 27
+rect 904 50 921 67
+rect 760 10 777 27
+<< metal1 >>
+rect 0 324 1008 357
+rect 0 309 760 324
+rect 178 301 207 309
+rect 754 307 760 309
+rect 777 309 1008 324
+rect 777 307 783 309
+rect 754 301 783 307
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 281 268 871 282
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 241 87 243
+rect 81 227 199 241
+rect 81 226 87 227
+rect 58 220 87 226
+rect 65 73 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 137 114 151 178
+rect 185 160 199 227
+rect 281 207 295 268
+rect 514 243 543 249
+rect 514 226 520 243
+rect 537 241 543 243
+rect 537 227 631 241
+rect 537 226 543 227
+rect 514 220 543 226
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 322 201 351 207
+rect 322 184 328 201
+rect 345 184 351 201
+rect 562 201 591 207
+rect 562 200 568 201
+rect 322 178 351 184
+rect 425 186 568 200
+rect 329 160 343 178
+rect 185 146 343 160
+rect 425 114 439 186
+rect 562 184 568 186
+rect 585 184 591 201
+rect 562 178 591 184
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 106 159 108
+rect 418 108 447 114
+rect 418 106 424 108
+rect 153 92 424 106
+rect 153 91 159 92
+rect 130 85 159 91
+rect 418 91 424 92
+rect 441 91 447 108
+rect 562 108 591 114
+rect 562 106 568 108
+rect 418 85 447 91
+rect 473 92 568 106
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 473 66 487 92
+rect 562 91 568 92
+rect 585 91 591 108
+rect 562 85 591 91
+rect 81 52 487 66
+rect 514 67 543 73
+rect 81 50 87 52
+rect 58 44 87 50
+rect 514 50 520 67
+rect 537 66 543 67
+rect 617 66 631 227
+rect 857 207 871 268
+rect 898 243 927 249
+rect 898 226 904 243
+rect 921 226 927 243
+rect 898 220 927 226
+rect 706 201 735 207
+rect 706 184 712 201
+rect 729 184 735 201
+rect 706 178 735 184
+rect 850 201 879 207
+rect 850 184 856 201
+rect 873 184 879 201
+rect 850 178 879 184
+rect 713 114 727 178
+rect 857 114 871 178
+rect 706 108 735 114
+rect 706 91 712 108
+rect 729 91 735 108
+rect 706 85 735 91
+rect 850 108 879 114
+rect 850 91 856 108
+rect 873 91 879 108
+rect 850 85 879 91
+rect 537 52 631 66
+rect 713 66 727 85
+rect 905 73 919 220
+rect 898 67 927 73
+rect 898 66 904 67
+rect 713 52 904 66
+rect 537 50 543 52
+rect 514 44 543 50
+rect 898 50 904 52
+rect 921 50 927 67
+rect 898 44 927 50
+rect 178 27 207 33
+rect 178 24 184 27
+rect 0 10 184 24
+rect 201 24 207 27
+rect 754 27 783 33
+rect 754 24 760 27
+rect 201 10 760 24
+rect 777 24 783 27
+rect 777 10 1008 24
+rect 0 -24 1008 10
+<< labels >>
+rlabel metal1 0 309 1008 357 0 VDD
+port 1 se
+rlabel metal1 0 -24 1008 24 0 GND
+port 2 se
+rlabel metal1 514 44 543 52 0 Y
+port 3 se
+rlabel metal1 514 52 631 66 0 Y
+port 4 se
+rlabel metal1 514 66 543 73 0 Y
+port 5 se
+rlabel metal1 514 220 543 227 0 Y
+port 6 se
+rlabel metal1 617 66 631 227 0 Y
+port 7 se
+rlabel metal1 514 227 631 241 0 Y
+port 8 se
+rlabel metal1 514 241 543 249 0 Y
+port 9 se
+rlabel metal1 130 85 159 92 0 A
+port 10 se
+rlabel metal1 418 85 447 92 0 A
+port 11 se
+rlabel metal1 130 92 447 106 0 A
+port 12 se
+rlabel metal1 130 106 159 114 0 A
+port 13 se
+rlabel metal1 418 106 447 114 0 A
+port 14 se
+rlabel metal1 137 114 151 178 0 A
+port 15 se
+rlabel metal1 425 114 439 186 0 A
+port 16 se
+rlabel metal1 562 178 591 186 0 A
+port 17 se
+rlabel metal1 425 186 591 200 0 A
+port 18 se
+rlabel metal1 130 178 159 207 0 A
+port 19 se
+rlabel metal1 562 200 591 207 0 A
+port 20 se
+rlabel metal1 850 85 879 114 0 B
+port 21 se
+rlabel metal1 857 114 871 178 0 B
+port 22 se
+rlabel metal1 274 178 303 207 0 B
+port 23 se
+rlabel metal1 850 178 879 207 0 B
+port 24 se
+rlabel metal1 281 207 295 268 0 B
+port 25 se
+rlabel metal1 857 207 871 268 0 B
+port 26 se
+rlabel metal1 281 268 871 282 0 B
+port 27 se
+<< properties >>
+string FIXED_BBOX 0 0 1008 333
+<< end >>
diff --git a/cells/sp/AND2X1.sp b/cells/sp/AND2X1.sp
new file mode 100644
index 0000000..1a2cb76
--- /dev/null
+++ b/cells/sp/AND2X1.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file AND2X1.cell ***
+
+.subckt AND2X1 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A 1 gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends AND2X1
+
diff --git a/cells/sp/AND2X2.sp b/cells/sp/AND2X2.sp
new file mode 100644
index 0000000..614c321
--- /dev/null
+++ b/cells/sp/AND2X2.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file AND2X2.cell ***
+
+.subckt AND2X2 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A 1 gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends AND2X2
+
diff --git a/cells/sp/AOI21X1.sp b/cells/sp/AOI21X1.sp
new file mode 100644
index 0000000..fbaf6e3
--- /dev/null
+++ b/cells/sp/AOI21X1.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file AOI21X1.cell ***
+
+.subckt AOI21X1 vdd gnd C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y C 1 vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 Y B 2 gnd nmos w=0.420u l=0.150u
+M5 Y C gnd gnd nmos w=0.420u l=0.150u
+.ends AOI21X1
+
diff --git a/cells/sp/AOI22X1.sp b/cells/sp/AOI22X1.sp
new file mode 100644
index 0000000..540c247
--- /dev/null
+++ b/cells/sp/AOI22X1.sp
@@ -0,0 +1,13 @@
+*** Spice netlist generated by cell2spice.pl from cell file AOI22X1.cell ***
+
+.subckt AOI22X1 vdd gnd D C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y D 1 vdd pmos w=0.840u l=0.150u
+M3 1 C Y vdd pmos w=0.840u l=0.150u
+M4 2 A gnd gnd nmos w=0.420u l=0.150u
+M5 Y B 2 gnd nmos w=0.420u l=0.150u
+M6 3 D Y gnd nmos w=0.420u l=0.150u
+M7 3 C gnd gnd nmos w=0.420u l=0.150u
+.ends AOI22X1
+
diff --git a/cells/sp/BUFX2.sp b/cells/sp/BUFX2.sp
new file mode 100644
index 0000000..0e94efb
--- /dev/null
+++ b/cells/sp/BUFX2.sp
@@ -0,0 +1,9 @@
+*** Spice netlist generated by cell2spice.pl from cell file BUFX2.cell ***
+
+.subckt BUFX2 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M2 1 A gnd gnd nmos w=0.420u l=0.150u
+M3 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends BUFX2
+
diff --git a/cells/sp/HAX1.sp b/cells/sp/HAX1.sp
new file mode 100644
index 0000000..025f0ba
--- /dev/null
+++ b/cells/sp/HAX1.sp
@@ -0,0 +1,19 @@
+*** Spice netlist generated by cell2spice.pl from cell file HAX1.cell ***
+
+.subckt HAX1 vdd gnd B A YS YC
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 YC 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 1 vdd vdd pmos w=0.840u l=0.150u
+M4 3 B 2 vdd pmos w=0.840u l=0.150u
+M5 3 A vdd vdd pmos w=0.840u l=0.150u
+M6 YS 2 vdd vdd pmos w=0.840u l=0.150u
+M7 4 A gnd gnd nmos w=0.420u l=0.150u
+M8 1 B 4 gnd nmos w=0.420u l=0.150u
+M9 YC 1 gnd gnd nmos w=0.420u l=0.150u
+M10 5 1 gnd gnd nmos w=0.420u l=0.150u
+M11 2 B 5 gnd nmos w=0.420u l=0.150u
+M12 5 A 2 gnd nmos w=0.420u l=0.150u
+M13 YS 2 gnd gnd nmos w=0.420u l=0.150u
+.ends HAX1
+
diff --git a/cells/sp/INV.sp b/cells/sp/INV.sp
new file mode 100644
index 0000000..77e56d3
--- /dev/null
+++ b/cells/sp/INV.sp
@@ -0,0 +1,7 @@
+*** Spice netlist generated by cell2spice.pl from cell file INV.cell ***
+
+.subckt INV vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INV
+
diff --git a/cells/sp/INVX1.sp b/cells/sp/INVX1.sp
new file mode 100644
index 0000000..f555d89
--- /dev/null
+++ b/cells/sp/INVX1.sp
@@ -0,0 +1,7 @@
+*** Spice netlist generated by cell2spice.pl from cell file INVX1.cell ***
+
+.subckt INVX1 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX1
+
diff --git a/cells/sp/INVX2.sp b/cells/sp/INVX2.sp
new file mode 100644
index 0000000..b41a0f9
--- /dev/null
+++ b/cells/sp/INVX2.sp
@@ -0,0 +1,7 @@
+*** Spice netlist generated by cell2spice.pl from cell file INVX2.cell ***
+
+.subckt INVX2 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX2
+
diff --git a/cells/sp/INVX4.sp b/cells/sp/INVX4.sp
new file mode 100644
index 0000000..855e63e
--- /dev/null
+++ b/cells/sp/INVX4.sp
@@ -0,0 +1,9 @@
+*** Spice netlist generated by cell2spice.pl from cell file INVX4.cell ***
+
+.subckt INVX4 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A vdd vdd pmos w=0.840u l=0.150u
+M2 Y A gnd gnd nmos w=0.420u l=0.150u
+M3 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX4
+
diff --git a/cells/sp/INVX8.sp b/cells/sp/INVX8.sp
new file mode 100644
index 0000000..2831028
--- /dev/null
+++ b/cells/sp/INVX8.sp
@@ -0,0 +1,13 @@
+*** Spice netlist generated by cell2spice.pl from cell file INVX8.cell ***
+
+.subckt INVX8 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A vdd vdd pmos w=0.840u l=0.150u
+M2 Y A vdd vdd pmos w=0.840u l=0.150u
+M3 Y A vdd vdd pmos w=0.840u l=0.150u
+M4 Y A gnd gnd nmos w=0.420u l=0.150u
+M5 Y A gnd gnd nmos w=0.420u l=0.150u
+M6 Y A gnd gnd nmos w=0.420u l=0.150u
+M7 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX8
+
diff --git a/cells/sp/MUX2X1.sp b/cells/sp/MUX2X1.sp
new file mode 100644
index 0000000..6604a4b
--- /dev/null
+++ b/cells/sp/MUX2X1.sp
@@ -0,0 +1,15 @@
+*** Spice netlist generated by cell2spice.pl from cell file MUX2X1.cell ***
+
+.subckt MUX2X1 vdd gnd S B A Y
+M0 1 S vdd vdd pmos w=0.840u l=0.150u
+M1 2 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y S 2 vdd pmos w=0.840u l=0.150u
+M3 3 1 Y vdd pmos w=0.840u l=0.150u
+M4 3 A vdd vdd pmos w=0.840u l=0.150u
+M5 1 S gnd gnd nmos w=0.420u l=0.150u
+M6 4 B gnd gnd nmos w=0.420u l=0.150u
+M7 Y 1 4 gnd nmos w=0.420u l=0.150u
+M8 5 S Y gnd nmos w=0.420u l=0.150u
+M9 5 A gnd gnd nmos w=0.420u l=0.150u
+.ends MUX2X1
+
diff --git a/cells/sp/NAND2X1.sp b/cells/sp/NAND2X1.sp
new file mode 100644
index 0000000..644ff27
--- /dev/null
+++ b/cells/sp/NAND2X1.sp
@@ -0,0 +1,9 @@
+*** Spice netlist generated by cell2spice.pl from cell file NAND2X1.cell ***
+
+.subckt NAND2X1 vdd gnd B A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B vdd vdd pmos w=0.840u l=0.150u
+M2 1 A gnd gnd nmos w=0.420u l=0.150u
+M3 Y B 1 gnd nmos w=0.420u l=0.150u
+.ends NAND2X1
+
diff --git a/cells/sp/NAND3X1.sp b/cells/sp/NAND3X1.sp
new file mode 100644
index 0000000..5897d5c
--- /dev/null
+++ b/cells/sp/NAND3X1.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file NAND3X1.cell ***
+
+.subckt NAND3X1 vdd gnd C B A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B vdd vdd pmos w=0.840u l=0.150u
+M2 Y C vdd vdd pmos w=0.840u l=0.150u
+M3 1 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B 1 gnd nmos w=0.420u l=0.150u
+M5 Y C 2 gnd nmos w=0.420u l=0.150u
+.ends NAND3X1
+
diff --git a/cells/sp/NOR2X1.sp b/cells/sp/NOR2X1.sp
new file mode 100644
index 0000000..f4b92a9
--- /dev/null
+++ b/cells/sp/NOR2X1.sp
@@ -0,0 +1,9 @@
+*** Spice netlist generated by cell2spice.pl from cell file NOR2X1.cell ***
+
+.subckt NOR2X1 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B 1 vdd pmos w=0.840u l=0.150u
+M2 Y A gnd gnd nmos w=0.420u l=0.150u
+M3 Y B gnd gnd nmos w=0.420u l=0.150u
+.ends NOR2X1
+
diff --git a/cells/sp/OAI21X1.sp b/cells/sp/OAI21X1.sp
new file mode 100644
index 0000000..e003350
--- /dev/null
+++ b/cells/sp/OAI21X1.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file OAI21X1.cell ***
+
+.subckt OAI21X1 vdd gnd C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B 1 vdd pmos w=0.840u l=0.150u
+M2 Y C vdd vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y C 2 gnd nmos w=0.420u l=0.150u
+.ends OAI21X1
+
diff --git a/cells/sp/OAI22X1.sp b/cells/sp/OAI22X1.sp
new file mode 100644
index 0000000..4feb11e
--- /dev/null
+++ b/cells/sp/OAI22X1.sp
@@ -0,0 +1,13 @@
+*** Spice netlist generated by cell2spice.pl from cell file OAI22X1.cell ***
+
+.subckt OAI22X1 vdd gnd D C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B 1 vdd pmos w=0.840u l=0.150u
+M2 2 D Y vdd pmos w=0.840u l=0.150u
+M3 2 C vdd vdd pmos w=0.840u l=0.150u
+M4 3 A gnd gnd nmos w=0.420u l=0.150u
+M5 3 B gnd gnd nmos w=0.420u l=0.150u
+M6 Y D 3 gnd nmos w=0.420u l=0.150u
+M7 3 C Y gnd nmos w=0.420u l=0.150u
+.ends OAI22X1
+
diff --git a/cells/sp/OR2X1.sp b/cells/sp/OR2X1.sp
new file mode 100644
index 0000000..8096a42
--- /dev/null
+++ b/cells/sp/OR2X1.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file OR2X1.cell ***
+
+.subckt OR2X1 vdd gnd B A Y
+M0 1 A 2 vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 2 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 2 gnd gnd nmos w=0.420u l=0.150u
+.ends OR2X1
+
diff --git a/cells/sp/OR2X2.sp b/cells/sp/OR2X2.sp
new file mode 100644
index 0000000..691aa80
--- /dev/null
+++ b/cells/sp/OR2X2.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file OR2X2.cell ***
+
+.subckt OR2X2 vdd gnd B A Y
+M0 1 A 2 vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 2 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 2 gnd gnd nmos w=0.420u l=0.150u
+.ends OR2X2
+
diff --git a/cells/sp/XOR2X1.sp b/cells/sp/XOR2X1.sp
new file mode 100644
index 0000000..b33f108
--- /dev/null
+++ b/cells/sp/XOR2X1.sp
@@ -0,0 +1,17 @@
+*** Spice netlist generated by cell2spice.pl from cell file XOR2X1.cell ***
+
+.subckt XOR2X1 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 3 2 vdd vdd pmos w=0.840u l=0.150u
+M2 Y A 3 vdd pmos w=0.840u l=0.150u
+M3 4 1 Y vdd pmos w=0.840u l=0.150u
+M4 4 B vdd vdd pmos w=0.840u l=0.150u
+M5 2 B vdd vdd pmos w=0.840u l=0.150u
+M6 1 A gnd gnd nmos w=0.420u l=0.150u
+M7 5 2 gnd gnd nmos w=0.420u l=0.150u
+M8 Y 1 5 gnd nmos w=0.420u l=0.150u
+M9 6 A Y gnd nmos w=0.420u l=0.150u
+M10 6 B gnd gnd nmos w=0.420u l=0.150u
+M11 2 B gnd gnd nmos w=0.420u l=0.150u
+.ends XOR2X1
+
diff --git a/cells/sp/libresilicon.sp b/cells/sp/libresilicon.sp
new file mode 100644
index 0000000..5a9dc62
--- /dev/null
+++ b/cells/sp/libresilicon.sp
@@ -0,0 +1,777 @@
+*** Spice netlist generated by cell2spice.pl ***
+
+.subckt AND2X1 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A 1 gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends AND2X1
+
+.subckt AND2X2 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A 1 gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends AND2X2
+
+.subckt AOI21X1 vdd gnd C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y C 1 vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 Y B 2 gnd nmos w=0.420u l=0.150u
+M5 Y C gnd gnd nmos w=0.420u l=0.150u
+.ends AOI21X1
+
+.subckt AOI22X1 vdd gnd D C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y D 1 vdd pmos w=0.840u l=0.150u
+M3 1 C Y vdd pmos w=0.840u l=0.150u
+M4 2 A gnd gnd nmos w=0.420u l=0.150u
+M5 Y B 2 gnd nmos w=0.420u l=0.150u
+M6 3 D Y gnd nmos w=0.420u l=0.150u
+M7 3 C gnd gnd nmos w=0.420u l=0.150u
+.ends AOI22X1
+
+.subckt BUFX2 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M2 1 A gnd gnd nmos w=0.420u l=0.150u
+M3 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends BUFX2
+
+.subckt BUFX4 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M2 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M3 1 A gnd gnd nmos w=0.420u l=0.150u
+M4 Y 1 gnd gnd nmos w=0.420u l=0.150u
+M5 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends BUFX4
+
+.subckt CLKBUF1 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 A vdd vdd pmos w=0.840u l=0.150u
+M2 2 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 1 vdd vdd pmos w=0.840u l=0.150u
+M4 3 2 vdd vdd pmos w=0.840u l=0.150u
+M5 3 2 vdd vdd pmos w=0.840u l=0.150u
+M6 Y 3 vdd vdd pmos w=0.840u l=0.150u
+M7 Y 3 vdd vdd pmos w=0.840u l=0.150u
+M8 1 A gnd gnd nmos w=0.420u l=0.150u
+M9 1 A gnd gnd nmos w=0.420u l=0.150u
+M10 2 1 gnd gnd nmos w=0.420u l=0.150u
+M11 2 1 gnd gnd nmos w=0.420u l=0.150u
+M12 3 2 gnd gnd nmos w=0.420u l=0.150u
+M13 3 2 gnd gnd nmos w=0.420u l=0.150u
+M14 Y 3 gnd gnd nmos w=0.420u l=0.150u
+M15 Y 3 gnd gnd nmos w=0.420u l=0.150u
+.ends CLKBUF1
+
+.subckt CLKBUF2 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 A vdd vdd pmos w=0.840u l=0.150u
+M2 2 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 1 vdd vdd pmos w=0.840u l=0.150u
+M4 3 2 vdd vdd pmos w=0.840u l=0.150u
+M5 3 2 vdd vdd pmos w=0.840u l=0.150u
+M6 4 3 vdd vdd pmos w=0.840u l=0.150u
+M7 4 3 vdd vdd pmos w=0.840u l=0.150u
+M8 5 4 vdd vdd pmos w=0.840u l=0.150u
+M9 5 4 vdd vdd pmos w=0.840u l=0.150u
+M10 Y 5 vdd vdd pmos w=0.840u l=0.150u
+M11 Y 5 vdd vdd pmos w=0.840u l=0.150u
+M12 1 A gnd gnd nmos w=0.420u l=0.150u
+M13 1 A gnd gnd nmos w=0.420u l=0.150u
+M14 2 1 gnd gnd nmos w=0.420u l=0.150u
+M15 2 1 gnd gnd nmos w=0.420u l=0.150u
+M16 3 2 gnd gnd nmos w=0.420u l=0.150u
+M17 3 2 gnd gnd nmos w=0.420u l=0.150u
+M18 4 3 gnd gnd nmos w=0.420u l=0.150u
+M19 4 3 gnd gnd nmos w=0.420u l=0.150u
+M20 5 4 gnd gnd nmos w=0.420u l=0.150u
+M21 5 4 gnd gnd nmos w=0.420u l=0.150u
+M22 Y 5 gnd gnd nmos w=0.420u l=0.150u
+M23 Y 5 gnd gnd nmos w=0.420u l=0.150u
+.ends CLKBUF2
+
+.subckt CLKBUF3 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 A vdd vdd pmos w=0.840u l=0.150u
+M2 2 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 1 vdd vdd pmos w=0.840u l=0.150u
+M4 3 2 vdd vdd pmos w=0.840u l=0.150u
+M5 3 2 vdd vdd pmos w=0.840u l=0.150u
+M6 4 3 vdd vdd pmos w=0.840u l=0.150u
+M7 4 3 vdd vdd pmos w=0.840u l=0.150u
+M8 5 4 vdd vdd pmos w=0.840u l=0.150u
+M9 5 4 vdd vdd pmos w=0.840u l=0.150u
+M10 6 5 vdd vdd pmos w=0.840u l=0.150u
+M11 6 5 vdd vdd pmos w=0.840u l=0.150u
+M12 7 6 vdd vdd pmos w=0.840u l=0.150u
+M13 7 6 vdd vdd pmos w=0.840u l=0.150u
+M14 Y 7 vdd vdd pmos w=0.840u l=0.150u
+M15 Y 7 vdd vdd pmos w=0.840u l=0.150u
+M16 1 A gnd gnd nmos w=0.420u l=0.150u
+M17 1 A gnd gnd nmos w=0.420u l=0.150u
+M18 2 1 gnd gnd nmos w=0.420u l=0.150u
+M19 2 1 gnd gnd nmos w=0.420u l=0.150u
+M20 3 2 gnd gnd nmos w=0.420u l=0.150u
+M21 3 2 gnd gnd nmos w=0.420u l=0.150u
+M22 4 3 gnd gnd nmos w=0.420u l=0.150u
+M23 4 3 gnd gnd nmos w=0.420u l=0.150u
+M24 5 4 gnd gnd nmos w=0.420u l=0.150u
+M25 5 4 gnd gnd nmos w=0.420u l=0.150u
+M26 6 5 gnd gnd nmos w=0.420u l=0.150u
+M27 6 5 gnd gnd nmos w=0.420u l=0.150u
+M28 7 6 gnd gnd nmos w=0.420u l=0.150u
+M29 7 6 gnd gnd nmos w=0.420u l=0.150u
+M30 Y 7 gnd gnd nmos w=0.420u l=0.150u
+M31 Y 7 gnd gnd nmos w=0.420u l=0.150u
+.ends CLKBUF3
+
+.subckt DFFNEGX1 vdd gnd D CLK Q
+M0 1 CLK vdd vdd pmos w=0.840u l=0.150u
+M1 2 D vdd vdd pmos w=0.840u l=0.150u
+M2 3 1 2 vdd pmos w=0.840u l=0.150u
+M3 4 CLK 3 vdd pmos w=0.840u l=0.150u
+M4 4 5 vdd vdd pmos w=0.840u l=0.150u
+M5 5 3 vdd vdd pmos w=0.840u l=0.150u
+M6 6 5 vdd vdd pmos w=0.840u l=0.150u
+M7 7 CLK 6 vdd pmos w=0.840u l=0.150u
+M8 8 1 7 vdd pmos w=0.840u l=0.150u
+M9 8 Q vdd vdd pmos w=0.840u l=0.150u
+M10 1 CLK gnd gnd nmos w=0.420u l=0.150u
+M11 Q 7 vdd vdd pmos w=0.840u l=0.150u
+M12 9 D gnd gnd nmos w=0.420u l=0.150u
+M13 3 CLK 9 gnd nmos w=0.420u l=0.150u
+M14 10 1 3 gnd nmos w=0.420u l=0.150u
+M15 10 5 gnd gnd nmos w=0.420u l=0.150u
+M16 5 3 gnd gnd nmos w=0.420u l=0.150u
+M17 11 5 gnd gnd nmos w=0.420u l=0.150u
+M18 7 1 11 gnd nmos w=0.420u l=0.150u
+M19 12 CLK 7 gnd nmos w=0.420u l=0.150u
+M20 12 Q gnd gnd nmos w=0.420u l=0.150u
+M21 Q 7 gnd gnd nmos w=0.420u l=0.150u
+.ends DFFNEGX1
+
+.subckt DFFPOSX1 vdd gnd D CLK Q
+M0 1 CLK vdd vdd pmos w=0.840u l=0.150u
+M1 2 D vdd vdd pmos w=0.840u l=0.150u
+M2 3 CLK 2 vdd pmos w=0.840u l=0.150u
+M3 4 1 3 vdd pmos w=0.840u l=0.150u
+M4 4 5 vdd vdd pmos w=0.840u l=0.150u
+M5 5 3 vdd vdd pmos w=0.840u l=0.150u
+M6 6 5 vdd vdd pmos w=0.840u l=0.150u
+M7 7 1 6 vdd pmos w=0.840u l=0.150u
+M8 8 CLK 7 vdd pmos w=0.840u l=0.150u
+M9 8 Q vdd vdd pmos w=0.840u l=0.150u
+M10 1 CLK gnd gnd nmos w=0.420u l=0.150u
+M11 Q 7 vdd vdd pmos w=0.840u l=0.150u
+M12 9 D gnd gnd nmos w=0.420u l=0.150u
+M13 3 1 9 gnd nmos w=0.420u l=0.150u
+M14 10 CLK 3 gnd nmos w=0.420u l=0.150u
+M15 10 5 gnd gnd nmos w=0.420u l=0.150u
+M16 5 3 gnd gnd nmos w=0.420u l=0.150u
+M17 11 5 gnd gnd nmos w=0.420u l=0.150u
+M18 7 CLK 11 gnd nmos w=0.420u l=0.150u
+M19 12 1 7 gnd nmos w=0.420u l=0.150u
+M20 12 Q gnd gnd nmos w=0.420u l=0.150u
+M21 Q 7 gnd gnd nmos w=0.420u l=0.150u
+.ends DFFPOSX1
+
+.subckt DFFSR vdd gnd S R D CLK Q
+M0 1 R vdd vdd pmos w=0.840u l=0.150u
+M1 1 2 vdd vdd pmos w=0.840u l=0.150u
+M2 2 3 vdd vdd pmos w=0.840u l=0.150u
+M3 2 S vdd vdd pmos w=0.840u l=0.150u
+M4 3 4 1 vdd pmos w=0.840u l=0.150u
+M5 6 5 3 vdd pmos w=0.840u l=0.150u
+M6 6 D vdd vdd pmos w=0.840u l=0.150u
+M7 5 4 vdd vdd pmos w=0.840u l=0.150u
+M8 4 CLK vdd vdd pmos w=0.840u l=0.150u
+M9 7 4 2 vdd pmos w=0.840u l=0.150u
+M10 8 5 7 vdd pmos w=0.840u l=0.150u
+M11 9 7 vdd vdd pmos w=0.840u l=0.150u
+M12 9 R vdd vdd pmos w=0.840u l=0.150u
+M13 8 9 vdd vdd pmos w=0.840u l=0.150u
+M14 8 S vdd vdd pmos w=0.840u l=0.150u
+M15 Q 9 vdd vdd pmos w=0.840u l=0.150u
+M16 10 R 1 gnd nmos w=0.420u l=0.150u
+M17 10 2 gnd gnd nmos w=0.420u l=0.150u
+M18 11 3 gnd gnd nmos w=0.420u l=0.150u
+M19 2 S 11 gnd nmos w=0.420u l=0.150u
+M20 3 5 1 gnd nmos w=0.420u l=0.150u
+M21 6 4 3 gnd nmos w=0.420u l=0.150u
+M22 6 D gnd gnd nmos w=0.420u l=0.150u
+M23 5 4 gnd gnd nmos w=0.420u l=0.150u
+M24 4 CLK gnd gnd nmos w=0.420u l=0.150u
+M25 7 5 2 gnd nmos w=0.420u l=0.150u
+M26 8 4 7 gnd nmos w=0.420u l=0.150u
+M27 12 7 9 gnd nmos w=0.420u l=0.150u
+M28 12 R gnd gnd nmos w=0.420u l=0.150u
+M29 13 9 gnd gnd nmos w=0.420u l=0.150u
+M30 8 S 13 gnd nmos w=0.420u l=0.150u
+M31 Q 9 gnd gnd nmos w=0.420u l=0.150u
+.ends DFFSR
+
+.subckt FAX1 vdd gnd C B A YS YC
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 2 C 1 vdd pmos w=0.840u l=0.150u
+M3 3 B 2 vdd pmos w=0.840u l=0.150u
+M4 3 A vdd vdd pmos w=0.840u l=0.150u
+M5 4 A vdd vdd pmos w=0.840u l=0.150u
+M6 4 B vdd vdd pmos w=0.840u l=0.150u
+M7 4 C vdd vdd pmos w=0.840u l=0.150u
+M8 5 2 4 vdd pmos w=0.840u l=0.150u
+M9 6 C 5 vdd pmos w=0.840u l=0.150u
+M10 7 B 6 vdd pmos w=0.840u l=0.150u
+M11 7 A vdd vdd pmos w=0.840u l=0.150u
+M12 YS 5 vdd vdd pmos w=0.840u l=0.150u
+M13 YC 2 vdd vdd pmos w=0.840u l=0.150u
+M14 8 A gnd gnd nmos w=0.420u l=0.150u
+M15 8 B gnd gnd nmos w=0.420u l=0.150u
+M16 2 C 8 gnd nmos w=0.420u l=0.150u
+M17 9 B 2 gnd nmos w=0.420u l=0.150u
+M18 9 A gnd gnd nmos w=0.420u l=0.150u
+M19 10 A gnd gnd nmos w=0.420u l=0.150u
+M20 10 B gnd gnd nmos w=0.420u l=0.150u
+M21 10 C gnd gnd nmos w=0.420u l=0.150u
+M22 5 2 10 gnd nmos w=0.420u l=0.150u
+M23 11 C 5 gnd nmos w=0.420u l=0.150u
+M24 12 B 11 gnd nmos w=0.420u l=0.150u
+M25 12 A gnd gnd nmos w=0.420u l=0.150u
+M26 YS 5 gnd gnd nmos w=0.420u l=0.150u
+M27 YC 2 gnd gnd nmos w=0.420u l=0.150u
+.ends FAX1
+
+.subckt HAX1 vdd gnd B A YS YC
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 YC 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 1 vdd vdd pmos w=0.840u l=0.150u
+M4 3 B 2 vdd pmos w=0.840u l=0.150u
+M5 3 A vdd vdd pmos w=0.840u l=0.150u
+M6 YS 2 vdd vdd pmos w=0.840u l=0.150u
+M7 4 A gnd gnd nmos w=0.420u l=0.150u
+M8 1 B 4 gnd nmos w=0.420u l=0.150u
+M9 YC 1 gnd gnd nmos w=0.420u l=0.150u
+M10 5 1 gnd gnd nmos w=0.420u l=0.150u
+M11 2 B 5 gnd nmos w=0.420u l=0.150u
+M12 5 A 2 gnd nmos w=0.420u l=0.150u
+M13 YS 2 gnd gnd nmos w=0.420u l=0.150u
+.ends HAX1
+
+.subckt INV vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INV
+
+.subckt INVX1 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX1
+
+.subckt INVX2 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX2
+
+.subckt INVX4 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A vdd vdd pmos w=0.840u l=0.150u
+M2 Y A gnd gnd nmos w=0.420u l=0.150u
+M3 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX4
+
+.subckt INVX8 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A vdd vdd pmos w=0.840u l=0.150u
+M2 Y A vdd vdd pmos w=0.840u l=0.150u
+M3 Y A vdd vdd pmos w=0.840u l=0.150u
+M4 Y A gnd gnd nmos w=0.420u l=0.150u
+M5 Y A gnd gnd nmos w=0.420u l=0.150u
+M6 Y A gnd gnd nmos w=0.420u l=0.150u
+M7 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX8
+
+.subckt LATCH vdd gnd D CLK Q
+M0 1 CLK vdd vdd pmos w=0.840u l=0.150u
+M1 2 D vdd vdd pmos w=0.840u l=0.150u
+M2 3 1 2 vdd pmos w=0.840u l=0.150u
+M3 4 CLK 3 vdd pmos w=0.840u l=0.150u
+M4 4 Q vdd vdd pmos w=0.840u l=0.150u
+M5 1 CLK gnd gnd nmos w=0.420u l=0.150u
+M6 Q 3 vdd vdd pmos w=0.840u l=0.150u
+M7 5 D gnd gnd nmos w=0.420u l=0.150u
+M8 3 CLK 5 gnd nmos w=0.420u l=0.150u
+M9 6 1 3 gnd nmos w=0.420u l=0.150u
+M10 6 Q gnd gnd nmos w=0.420u l=0.150u
+M11 Q 3 gnd gnd nmos w=0.420u l=0.150u
+.ends LATCH
+
+.subckt LOFTY vdd gnd asel_p asel_n bsel_p bsel_n muxsel_p muxsel_n usexor_p usexor_n usemux_p usemux_n q
+M0 q usemux_p N0 gnd nmos w=0.420u l=0.150u
+M1 q usemux_n N1 gnd nmos w=0.420u l=0.150u
+M2 N0 asel_p N00 gnd nmos w=0.420u l=0.150u
+M3 N0 asel_n N01 gnd nmos w=0.420u l=0.150u
+M4 N00 usexor_p gnd gnd nmos w=0.420u l=0.150u
+M5 N00 usexor_n N001 gnd nmos w=0.420u l=0.150u
+M6 N001 bsel_p gnd gnd nmos w=0.420u l=0.150u
+M7 N011 bsel_n gnd gnd nmos w=0.420u l=0.150u
+M8 N01 usexor_p N001 gnd nmos w=0.420u l=0.150u
+M9 N01 usexor_n N011 gnd nmos w=0.420u l=0.150u
+M10 N1 muxsel_n N001 gnd nmos w=0.420u l=0.150u
+M11 N1 muxsel_p N10 gnd nmos w=0.420u l=0.150u
+M12 N10 asel_p gnd gnd nmos w=0.420u l=0.150u
+M13 P0 usemux_n q vdd pmos w=0.840u l=0.150u
+M14 P1 usemux_p q vdd pmos w=0.840u l=0.150u
+M15 P00 asel_n P0 vdd pmos w=0.840u l=0.150u
+M16 P01 asel_p P0 vdd pmos w=0.840u l=0.150u
+M17 P001 usexor_p P00 vdd pmos w=0.840u l=0.150u
+M18 vcc bsel_p P001 vdd pmos w=0.840u l=0.150u
+M19 P001 usexor_n P01 vdd pmos w=0.840u l=0.150u
+M20 P011 usexor_p P01 vdd pmos w=0.840u l=0.150u
+M21 vcc bsel_n P011 vdd pmos w=0.840u l=0.150u
+M22 P001 muxsel_p P1 vdd pmos w=0.840u l=0.150u
+M23 P10 muxsel_n P1 vdd pmos w=0.840u l=0.150u
+M24 vcc asel_p P10 vdd pmos w=0.840u l=0.150u
+.ends LOFTY
+
+.subckt LOFTY2 vdd gnd usemux_p muxsel_p asel_p usexor_p bsel_p usemux_n muxsel_n asel_n usexor_n bsel_n q
+M0 usemux_n usemux_p vdd vdd pmos w=0.840u l=0.150u
+M1 usemux_n usemux_p gnd gnd nmos w=0.420u l=0.150u
+M2 muxsel_n muxsel_p vdd vdd pmos w=0.840u l=0.150u
+M3 muxsel_n muxsel_p gnd gnd nmos w=0.420u l=0.150u
+M4 asel_n asel_p vdd vdd pmos w=0.840u l=0.150u
+M5 asel_n asel_p gnd gnd nmos w=0.420u l=0.150u
+M6 usexor_n usexor_p vdd vdd pmos w=0.840u l=0.150u
+M7 usexor_n usexor_p gnd gnd nmos w=0.420u l=0.150u
+M8 bsel_n bsel_p vdd vdd pmos w=0.840u l=0.150u
+M9 bsel_n bsel_p gnd gnd nmos w=0.420u l=0.150u
+M10 q usemux_n usemux0n gnd nmos w=0.420u l=0.150u
+M11 usemux0p usemux_p q vdd pmos w=0.840u l=0.150u
+M12 q usemux_p usemux1n gnd nmos w=0.420u l=0.150u
+M13 usemux1p usemux_n q vdd pmos w=0.840u l=0.150u
+M14 usemux1n muxsel_p usemux1muxsel1n gnd nmos w=0.420u l=0.150u
+M15 usemux1muxsel1p muxsel_n usemux1p vdd pmos w=0.840u l=0.150u
+M16 usemux1n muxsel_n usemux1muxsel0n gnd nmos w=0.420u l=0.150u
+M17 usemux1muxsel0p muxsel_p usemux1p vdd pmos w=0.840u l=0.150u
+M18 usemux1muxsel0n asel_n gnd gnd nmos w=0.420u l=0.150u
+M19 vdd asel_n usemux1muxsel0p vdd pmos w=0.840u l=0.150u
+M20 usemux1muxsel1n bsel_n gnd gnd nmos w=0.420u l=0.150u
+M21 vdd bsel_n usemux1muxsel1p vdd pmos w=0.840u l=0.150u
+M22 usemux0n asel_n usemux0asel0n gnd nmos w=0.420u l=0.150u
+M23 usemux0asel0p asel_p usemux0p vdd pmos w=0.840u l=0.150u
+M24 usemux0n asel_p usemux0asel1n gnd nmos w=0.420u l=0.150u
+M25 usemux0asel1p asel_n usemux0p vdd pmos w=0.840u l=0.150u
+M26 usemux0asel1n usexor_n usemux1muxsel1n gnd nmos w=0.420u l=0.150u
+M27 usemux1muxsel1p usexor_p usemux0asel1p vdd pmos w=0.840u l=0.150u
+M28 usemux0asel1n usexor_p usemux1muxsel1usexor1n gnd nmos w=0.420u l=0.150u
+M29 usemux1muxsel1usexor1p usexor_n usemux0asel1p vdd pmos w=0.840u l=0.150u
+M30 usemux1muxsel1usexor1n bsel_p gnd gnd nmos w=0.420u l=0.150u
+M31 vdd bsel_p usemux1muxsel1usexor1p vdd pmos w=0.840u l=0.150u
+M32 usemux0asel0n usexor_n gnd gnd nmos w=0.420u l=0.150u
+M33 usemux0asel0n usexor_p usemux1muxsel1n gnd nmos w=0.420u l=0.150u
+M34 usemux1muxsel1p usexor_n usemux0asel0p vdd pmos w=0.840u l=0.150u
+.ends LOFTY2
+
+.subckt MUX2X1 vdd gnd S B A Y
+M0 1 S vdd vdd pmos w=0.840u l=0.150u
+M1 2 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y S 2 vdd pmos w=0.840u l=0.150u
+M3 3 1 Y vdd pmos w=0.840u l=0.150u
+M4 3 A vdd vdd pmos w=0.840u l=0.150u
+M5 1 S gnd gnd nmos w=0.420u l=0.150u
+M6 4 B gnd gnd nmos w=0.420u l=0.150u
+M7 Y 1 4 gnd nmos w=0.420u l=0.150u
+M8 5 S Y gnd nmos w=0.420u l=0.150u
+M9 5 A gnd gnd nmos w=0.420u l=0.150u
+.ends MUX2X1
+
+.subckt NAND2X1 vdd gnd B A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B vdd vdd pmos w=0.840u l=0.150u
+M2 1 A gnd gnd nmos w=0.420u l=0.150u
+M3 Y B 1 gnd nmos w=0.420u l=0.150u
+.ends NAND2X1
+
+.subckt NAND3X1 vdd gnd C B A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B vdd vdd pmos w=0.840u l=0.150u
+M2 Y C vdd vdd pmos w=0.840u l=0.150u
+M3 1 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B 1 gnd nmos w=0.420u l=0.150u
+M5 Y C 2 gnd nmos w=0.420u l=0.150u
+.ends NAND3X1
+
+.subckt NOR2X1 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B 1 vdd pmos w=0.840u l=0.150u
+M2 Y A gnd gnd nmos w=0.420u l=0.150u
+M3 Y B gnd gnd nmos w=0.420u l=0.150u
+.ends NOR2X1
+
+.subckt NOR3X1 vdd gnd C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 A vdd vdd pmos w=0.840u l=0.150u
+M2 2 B 1 vdd pmos w=0.840u l=0.150u
+M3 1 B 2 vdd pmos w=0.840u l=0.150u
+M4 Y C 2 vdd pmos w=0.840u l=0.150u
+M5 2 C Y vdd pmos w=0.840u l=0.150u
+M6 Y A gnd gnd nmos w=0.420u l=0.150u
+M7 Y B gnd gnd nmos w=0.420u l=0.150u
+M8 Y C gnd gnd nmos w=0.420u l=0.150u
+.ends NOR3X1
+
+.subckt OAI21X1 vdd gnd C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B 1 vdd pmos w=0.840u l=0.150u
+M2 Y C vdd vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y C 2 gnd nmos w=0.420u l=0.150u
+.ends OAI21X1
+
+.subckt OAI22X1 vdd gnd D C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y B 1 vdd pmos w=0.840u l=0.150u
+M2 2 D Y vdd pmos w=0.840u l=0.150u
+M3 2 C vdd vdd pmos w=0.840u l=0.150u
+M4 3 A gnd gnd nmos w=0.420u l=0.150u
+M5 3 B gnd gnd nmos w=0.420u l=0.150u
+M6 Y D 3 gnd nmos w=0.420u l=0.150u
+M7 3 C Y gnd nmos w=0.420u l=0.150u
+.ends OAI22X1
+
+.subckt OR2X1 vdd gnd B A Y
+M0 1 A 2 vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 2 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 2 gnd gnd nmos w=0.420u l=0.150u
+.ends OR2X1
+
+.subckt OR2X2 vdd gnd B A Y
+M0 1 A 2 vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y 2 vdd vdd pmos w=0.840u l=0.150u
+M3 2 A gnd gnd nmos w=0.420u l=0.150u
+M4 2 B gnd gnd nmos w=0.420u l=0.150u
+M5 Y 2 gnd gnd nmos w=0.420u l=0.150u
+.ends OR2X2
+
+.subckt PADINC vdd gnd DI YPAD
+M0 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M1 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M2 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M3 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M4 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M5 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M6 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M7 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M8 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M9 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M10 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M11 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M12 2 gnd2 gnd gnd nmos w=0.420u l=0.150u
+M13 3 2 gnd gnd nmos w=0.420u l=0.150u
+M14 4 gnd2 gnd gnd nmos w=0.420u l=0.150u
+M15 4 gnd2 gnd gnd nmos w=0.420u l=0.150u
+M16 4 gnd2 gnd gnd nmos w=0.420u l=0.150u
+M17 4 gnd2 gnd gnd nmos w=0.420u l=0.150u
+M18 4 gnd2 gnd gnd nmos w=0.420u l=0.150u
+M19 4 2 gnd gnd nmos w=0.420u l=0.150u
+M20 4 2 gnd gnd nmos w=0.420u l=0.150u
+M21 4 2 gnd gnd nmos w=0.420u l=0.150u
+M22 4 2 gnd gnd nmos w=0.420u l=0.150u
+M23 4 2 gnd gnd nmos w=0.420u l=0.150u
+M24 1 3 4 gnd nmos w=0.420u l=0.150u
+M25 4 3 1 gnd nmos w=0.420u l=0.150u
+M26 1 3 4 gnd nmos w=0.420u l=0.150u
+M27 4 3 1 gnd nmos w=0.420u l=0.150u
+M28 6 5 gnd gnd nmos w=0.420u l=0.150u
+M29 6 5 gnd gnd nmos w=0.420u l=0.150u
+M30 6 5 gnd gnd nmos w=0.420u l=0.150u
+M31 6 5 gnd gnd nmos w=0.420u l=0.150u
+M32 6 5 gnd gnd nmos w=0.420u l=0.150u
+M33 6 5 gnd gnd nmos w=0.420u l=0.150u
+M34 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M35 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M36 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M37 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M38 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M39 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M40 2 gnd2 vdd vdd pmos w=0.840u l=0.150u
+M41 3 2 vdd vdd pmos w=0.840u l=0.150u
+M42 1 gnd2 vdd vdd pmos w=0.840u l=0.150u
+M43 1 gnd2 vdd vdd pmos w=0.840u l=0.150u
+M44 1 gnd2 vdd vdd pmos w=0.840u l=0.150u
+M45 1 gnd2 vdd vdd pmos w=0.840u l=0.150u
+M46 1 gnd2 vdd vdd pmos w=0.840u l=0.150u
+M47 1 3 vdd vdd pmos w=0.840u l=0.150u
+M48 1 3 vdd vdd pmos w=0.840u l=0.150u
+M49 1 3 vdd vdd pmos w=0.840u l=0.150u
+M50 1 3 vdd vdd pmos w=0.840u l=0.150u
+M51 1 3 vdd vdd pmos w=0.840u l=0.150u
+M52 4 2 1 vdd pmos w=0.840u l=0.150u
+M53 1 2 4 vdd pmos w=0.840u l=0.150u
+M54 4 2 1 vdd pmos w=0.840u l=0.150u
+M55 1 2 4 vdd pmos w=0.840u l=0.150u
+M56 6 5 vdd vdd pmos w=0.840u l=0.150u
+M57 6 5 vdd vdd pmos w=0.840u l=0.150u
+M58 6 5 vdd vdd pmos w=0.840u l=0.150u
+M59 6 5 vdd vdd pmos w=0.840u l=0.150u
+M60 6 5 vdd vdd pmos w=0.840u l=0.150u
+M61 6 5 vdd vdd pmos w=0.840u l=0.150u
+M62 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M63 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M64 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M65 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M66 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M67 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M68 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M69 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M70 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M71 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M72 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M73 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M74 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M75 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M76 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M77 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M78 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M79 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+R80 YPAD 5 100
+R81 5 YPAD 100
+.ends PADINC
+
+.subckt PADINOUT vdd gnd OEN DI YPAD DO
+M0 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M1 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M2 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M3 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M4 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M5 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M6 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M7 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M8 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M9 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M10 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M11 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M12 2 OEN gnd gnd nmos w=0.420u l=0.150u
+M13 3 2 gnd gnd nmos w=0.420u l=0.150u
+M14 4 DO gnd gnd nmos w=0.420u l=0.150u
+M15 4 DO gnd gnd nmos w=0.420u l=0.150u
+M16 4 DO gnd gnd nmos w=0.420u l=0.150u
+M17 4 DO gnd gnd nmos w=0.420u l=0.150u
+M18 4 DO gnd gnd nmos w=0.420u l=0.150u
+M19 4 2 gnd gnd nmos w=0.420u l=0.150u
+M20 4 2 gnd gnd nmos w=0.420u l=0.150u
+M21 4 2 gnd gnd nmos w=0.420u l=0.150u
+M22 4 2 gnd gnd nmos w=0.420u l=0.150u
+M23 4 2 gnd gnd nmos w=0.420u l=0.150u
+M24 1 3 4 gnd nmos w=0.420u l=0.150u
+M25 4 3 1 gnd nmos w=0.420u l=0.150u
+M26 1 3 4 gnd nmos w=0.420u l=0.150u
+M27 4 3 1 gnd nmos w=0.420u l=0.150u
+M28 6 5 gnd gnd nmos w=0.420u l=0.150u
+M29 6 5 gnd gnd nmos w=0.420u l=0.150u
+M30 6 5 gnd gnd nmos w=0.420u l=0.150u
+M31 6 5 gnd gnd nmos w=0.420u l=0.150u
+M32 6 5 gnd gnd nmos w=0.420u l=0.150u
+M33 6 5 gnd gnd nmos w=0.420u l=0.150u
+M34 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M35 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M36 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M37 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M38 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M39 DI 6 gnd gnd nmos w=0.420u l=0.150u
+M40 2 OEN vdd vdd pmos w=0.840u l=0.150u
+M41 3 2 vdd vdd pmos w=0.840u l=0.150u
+M42 1 DO vdd vdd pmos w=0.840u l=0.150u
+M43 1 DO vdd vdd pmos w=0.840u l=0.150u
+M44 1 DO vdd vdd pmos w=0.840u l=0.150u
+M45 1 DO vdd vdd pmos w=0.840u l=0.150u
+M46 1 DO vdd vdd pmos w=0.840u l=0.150u
+M47 1 3 vdd vdd pmos w=0.840u l=0.150u
+M48 1 3 vdd vdd pmos w=0.840u l=0.150u
+M49 1 3 vdd vdd pmos w=0.840u l=0.150u
+M50 1 3 vdd vdd pmos w=0.840u l=0.150u
+M51 1 3 vdd vdd pmos w=0.840u l=0.150u
+M52 4 2 1 vdd pmos w=0.840u l=0.150u
+M53 1 2 4 vdd pmos w=0.840u l=0.150u
+M54 4 2 1 vdd pmos w=0.840u l=0.150u
+M55 1 2 4 vdd pmos w=0.840u l=0.150u
+M56 6 5 vdd vdd pmos w=0.840u l=0.150u
+M57 6 5 vdd vdd pmos w=0.840u l=0.150u
+M58 6 5 vdd vdd pmos w=0.840u l=0.150u
+M59 6 5 vdd vdd pmos w=0.840u l=0.150u
+M60 6 5 vdd vdd pmos w=0.840u l=0.150u
+M61 6 5 vdd vdd pmos w=0.840u l=0.150u
+M62 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M63 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M64 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M65 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M66 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M67 DI 6 vdd vdd pmos w=0.840u l=0.150u
+M68 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M69 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M70 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M71 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M72 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M73 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M74 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M75 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M76 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M77 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M78 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M79 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+R80 YPAD 5 100
+R81 5 YPAD 100
+.ends PADINOUT
+
+.subckt PADOUT vdd gnd YPAD DO
+M0 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M1 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M2 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M3 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M4 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M5 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M6 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M7 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M8 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M9 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M10 vdd2 1 YPAD vdd pmos w=0.840u l=0.150u
+M11 YPAD 1 vdd2 vdd pmos w=0.840u l=0.150u
+M12 2 vdd gnd gnd nmos w=0.420u l=0.150u
+M13 3 2 gnd gnd nmos w=0.420u l=0.150u
+M14 4 DO gnd gnd nmos w=0.420u l=0.150u
+M15 4 DO gnd gnd nmos w=0.420u l=0.150u
+M16 4 DO gnd gnd nmos w=0.420u l=0.150u
+M17 4 DO gnd gnd nmos w=0.420u l=0.150u
+M18 4 DO gnd gnd nmos w=0.420u l=0.150u
+M19 4 2 gnd gnd nmos w=0.420u l=0.150u
+M20 4 2 gnd gnd nmos w=0.420u l=0.150u
+M21 4 2 gnd gnd nmos w=0.420u l=0.150u
+M22 4 2 gnd gnd nmos w=0.420u l=0.150u
+M23 4 2 gnd gnd nmos w=0.420u l=0.150u
+M24 1 3 4 gnd nmos w=0.420u l=0.150u
+M25 4 3 1 gnd nmos w=0.420u l=0.150u
+M26 1 3 4 gnd nmos w=0.420u l=0.150u
+M27 4 3 1 gnd nmos w=0.420u l=0.150u
+M28 6 5 gnd gnd nmos w=0.420u l=0.150u
+M29 6 5 gnd gnd nmos w=0.420u l=0.150u
+M30 6 5 gnd gnd nmos w=0.420u l=0.150u
+M31 6 5 gnd gnd nmos w=0.420u l=0.150u
+M32 6 5 gnd gnd nmos w=0.420u l=0.150u
+M33 6 5 gnd gnd nmos w=0.420u l=0.150u
+M34 7 6 gnd gnd nmos w=0.420u l=0.150u
+M35 7 6 gnd gnd nmos w=0.420u l=0.150u
+M36 7 6 gnd gnd nmos w=0.420u l=0.150u
+M37 7 6 gnd gnd nmos w=0.420u l=0.150u
+M38 7 6 gnd gnd nmos w=0.420u l=0.150u
+M39 7 6 gnd gnd nmos w=0.420u l=0.150u
+M40 2 vdd vdd vdd pmos w=0.840u l=0.150u
+M41 3 2 vdd vdd pmos w=0.840u l=0.150u
+M42 1 DO vdd vdd pmos w=0.840u l=0.150u
+M43 1 DO vdd vdd pmos w=0.840u l=0.150u
+M44 1 DO vdd vdd pmos w=0.840u l=0.150u
+M45 1 DO vdd vdd pmos w=0.840u l=0.150u
+M46 1 DO vdd vdd pmos w=0.840u l=0.150u
+M47 1 3 vdd vdd pmos w=0.840u l=0.150u
+M48 1 3 vdd vdd pmos w=0.840u l=0.150u
+M49 1 3 vdd vdd pmos w=0.840u l=0.150u
+M50 1 3 vdd vdd pmos w=0.840u l=0.150u
+M51 1 3 vdd vdd pmos w=0.840u l=0.150u
+M52 4 2 1 vdd pmos w=0.840u l=0.150u
+M53 1 2 4 vdd pmos w=0.840u l=0.150u
+M54 4 2 1 vdd pmos w=0.840u l=0.150u
+M55 1 2 4 vdd pmos w=0.840u l=0.150u
+M56 6 5 vdd vdd pmos w=0.840u l=0.150u
+M57 6 5 vdd vdd pmos w=0.840u l=0.150u
+M58 6 5 vdd vdd pmos w=0.840u l=0.150u
+M59 6 5 vdd vdd pmos w=0.840u l=0.150u
+M60 6 5 vdd vdd pmos w=0.840u l=0.150u
+M61 6 5 vdd vdd pmos w=0.840u l=0.150u
+M62 7 6 vdd vdd pmos w=0.840u l=0.150u
+M63 7 6 vdd vdd pmos w=0.840u l=0.150u
+M64 7 6 vdd vdd pmos w=0.840u l=0.150u
+M65 7 6 vdd vdd pmos w=0.840u l=0.150u
+M66 7 6 vdd vdd pmos w=0.840u l=0.150u
+M67 7 6 vdd vdd pmos w=0.840u l=0.150u
+M68 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M69 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M70 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M71 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M72 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M73 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M74 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M75 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M76 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M77 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+M78 gnd2 4 YPAD gnd nmos w=0.420u l=0.150u
+M79 YPAD 4 gnd2 gnd nmos w=0.420u l=0.150u
+R80 YPAD 5 100
+R81 5 YPAD 100
+.ends PADOUT
+
+.subckt TBUFX1 vdd gnd EN A Y
+M0 1 EN vdd vdd pmos w=0.840u l=0.150u
+M1 2 1 Y vdd pmos w=0.840u l=0.150u
+M2 2 A vdd vdd pmos w=0.840u l=0.150u
+M3 1 EN gnd gnd nmos w=0.420u l=0.150u
+M4 3 EN Y gnd nmos w=0.420u l=0.150u
+M5 3 A gnd gnd nmos w=0.420u l=0.150u
+.ends TBUFX1
+
+.subckt TBUFX2 vdd gnd EN A Y
+M0 1 EN vdd vdd pmos w=0.840u l=0.150u
+M1 Y 1 2 vdd pmos w=0.840u l=0.150u
+M2 2 1 Y vdd pmos w=0.840u l=0.150u
+M3 2 A vdd vdd pmos w=0.840u l=0.150u
+M4 2 A vdd vdd pmos w=0.840u l=0.150u
+M5 1 EN gnd gnd nmos w=0.420u l=0.150u
+M6 Y EN 3 gnd nmos w=0.420u l=0.150u
+M7 3 EN Y gnd nmos w=0.420u l=0.150u
+M8 3 A gnd gnd nmos w=0.420u l=0.150u
+M9 3 A gnd gnd nmos w=0.420u l=0.150u
+.ends TBUFX2
+
+.subckt XNOR2X1 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 3 2 vdd vdd pmos w=0.840u l=0.150u
+M2 Y 1 3 vdd pmos w=0.840u l=0.150u
+M3 4 A Y vdd pmos w=0.840u l=0.150u
+M4 4 B vdd vdd pmos w=0.840u l=0.150u
+M5 2 B vdd vdd pmos w=0.840u l=0.150u
+M6 1 A gnd gnd nmos w=0.420u l=0.150u
+M7 5 2 gnd gnd nmos w=0.420u l=0.150u
+M8 Y A 5 gnd nmos w=0.420u l=0.150u
+M9 6 1 Y gnd nmos w=0.420u l=0.150u
+M10 6 B gnd gnd nmos w=0.420u l=0.150u
+M11 2 B gnd gnd nmos w=0.420u l=0.150u
+.ends XNOR2X1
+
+.subckt XOR2X1 vdd gnd B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 3 2 vdd vdd pmos w=0.840u l=0.150u
+M2 Y A 3 vdd pmos w=0.840u l=0.150u
+M3 4 1 Y vdd pmos w=0.840u l=0.150u
+M4 4 B vdd vdd pmos w=0.840u l=0.150u
+M5 2 B vdd vdd pmos w=0.840u l=0.150u
+M6 1 A gnd gnd nmos w=0.420u l=0.150u
+M7 5 2 gnd gnd nmos w=0.420u l=0.150u
+M8 Y 1 5 gnd nmos w=0.420u l=0.150u
+M9 6 A Y gnd nmos w=0.420u l=0.150u
+M10 6 B gnd gnd nmos w=0.420u l=0.150u
+M11 2 B gnd gnd nmos w=0.420u l=0.150u
+.ends XOR2X1
+