Corrected all of the contact and via drawing routines to get the
proper overlap of each layer.
diff --git a/sky130/magic/sky130.tcl b/sky130/magic/sky130.tcl
index 451c9db..c09ad4a 100644
--- a/sky130/magic/sky130.tcl
+++ b/sky130/magic/sky130.tcl
@@ -299,17 +299,19 @@
       return
    }
    suspendall
+   pushbox
    paint via2
    box grow n 0.05um
    box grow s 0.05um
    paint m2
-   box grow n -0.05um
-   box grow s -0.05um
+   popbox
+   pushbox
+   box grow n 0.025um
+   box grow s 0.025um
    box grow e 0.05um
    box grow w 0.05um
    paint m3
-   box grow e -0.05um
-   box grow w -0.05um
+   popbox
    resumeall
 }
 
@@ -326,17 +328,19 @@
       return
    }
    suspendall
+   pushbox
    paint via3
-   box grow n 0.05um
-   box grow s 0.05um
+   box grow n 0.005um
+   box grow s 0.005um
+   box grow e 0.005um
+   box grow w 0.005um
    paint m4
-   box grow n -0.05um
-   box grow s -0.05um
+   popbox
+   pushbox
    box grow e 0.05um
    box grow w 0.05um
    paint m3
-   box grow e -0.05um
-   box grow w -0.05um
+   popbox
    resumeall
 }
 
@@ -353,16 +357,13 @@
    }
    suspendall
    paint via4
-   box grow n 0.05um
-   box grow s 0.05um
+   pushbox
+   box grow n 0.12um
+   box grow s 0.12um
+   box grow e 0.12um
+   box grow w 0.12um
    paint m5
-   box grow n -0.05um
-   box grow s -0.05um
-   box grow e 0.05um
-   box grow w 0.05um
-   paint m4
-   box grow e -0.05um
-   box grow w -0.05um
+   popbox
    resumeall
 }
 #endif (METAL5)
@@ -379,10 +380,23 @@
       return
    }
    suspendall
-   paint nsc
-   box grow c 0.1um
-   paint nsd
-   box grow c -0.1um
+   paint psc
+   pushbox
+   if {$w > $h} {
+      box grow e 0.08um
+      box grow w 0.08um
+      paint li
+      box grow e 0.04um
+      box grow w 0.04um
+   } else {
+      box grow n 0.08um
+      box grow s 0.08um
+      paint li
+      box grow n 0.04um
+      box grow s 0.04um
+   }
+   paint psd
+   popbox
    resumeall
 }
 
@@ -400,10 +414,23 @@
       return
    }
    suspendall
-   paint mvnsc
-   box grow c 0.1um
-   paint mvnsd
-   box grow c -0.1um
+   paint mvpsc
+   pushbox
+   if {$w > $h} {
+      box grow e 0.08um
+      box grow w 0.08um
+      paint li
+      box grow e 0.04um
+      box grow w 0.04um
+   } else {
+      box grow n 0.08um
+      box grow s 0.08um
+      paint li
+      box grow n 0.04um
+      box grow s 0.04um
+   }
+   paint mvpsd
+   popbox
    resumeall
 }