caravel_fix
diff --git a/signoff/caravel_fix_xor.out b/signoff/caravel_fix_xor.out
index 2acce76..ed7d5dd 100644
--- a/signoff/caravel_fix_xor.out
+++ b/signoff/caravel_fix_xor.out
@@ -36,9 +36,9 @@
 Elapsed: 0.000s
 --- Running XOR for 112/4 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
 Elapsed: 0.000s
 XOR differences: 0
@@ -50,10 +50,10 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 45.380s
+Elapsed: 44.700s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 125/20 ---
 "_input" in: xor.drc:38
 Elapsed: 0.010s
@@ -68,7 +68,7 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "^" in: xor.drc:38
 Elapsed: 0.110s
 XOR differences: 0
@@ -83,34 +83,34 @@
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 21/0 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"^" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
 --- Running XOR for 22/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 22/21 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 1.570s
+Elapsed: 1.580s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
@@ -120,20 +120,20 @@
 "_input" in: xor.drc:38
 Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 0.550s
+Elapsed: 0.530s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 22/24 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "_input" in: xor.drc:38
 Elapsed: 0.010s
 "^" in: xor.drc:38
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 23/0 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
@@ -146,41 +146,41 @@
 Elapsed: 0.000s
 --- Running XOR for 23/28 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
 Elapsed: 1.500s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 235/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "_input" in: xor.drc:38
 Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 0.950s
+Elapsed: 0.930s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 235/4 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 13.260s
+Elapsed: 13.200s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 236/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 38.090s
+Elapsed: 37.800s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
@@ -188,9 +188,9 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"^" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
@@ -216,11 +216,11 @@
 Elapsed: 0.000s
 --- Running XOR for 28/28 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 8.140s
+Elapsed: 8.200s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
@@ -228,49 +228,49 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"^" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 32/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 33/42 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 8.330s
+Elapsed: 8.450s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 33/43 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 8.340s
+Elapsed: 8.370s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 34/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
-"^" in: xor.drc:38
+"_input" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
@@ -280,10 +280,10 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 41.250s
+Elapsed: 41.540s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 35/0 ---
 "_input" in: xor.drc:38
 Elapsed: 0.010s
@@ -303,22 +303,22 @@
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 36/28 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 46.650s
+Elapsed: 47.150s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 37/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
 "^" in: xor.drc:38
 Elapsed: 0.010s
 XOR differences: 0
@@ -328,22 +328,22 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "^" in: xor.drc:38
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 40/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 41/0 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
@@ -353,14 +353,14 @@
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 41/28 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 69.060s
+Elapsed: 69.650s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
@@ -376,21 +376,21 @@
 Elapsed: 0.000s
 --- Running XOR for 44/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 46/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
@@ -400,17 +400,17 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 49/0 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"^" in: xor.drc:38
 Elapsed: 0.010s
+"^" in: xor.drc:38
+Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
@@ -428,19 +428,19 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"^" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
 --- Running XOR for 51/28 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 38.500s
+Elapsed: 38.810s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
@@ -456,121 +456,121 @@
 Elapsed: 0.000s
 --- Running XOR for 56/28 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 4.440s
+Elapsed: 4.450s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 58/0 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
-"^" in: xor.drc:38
+"_input" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 59/0 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"^" in: xor.drc:38
 Elapsed: 0.010s
+"^" in: xor.drc:38
+Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
 --- Running XOR for 59/28 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 1.080s
+Elapsed: 1.070s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 61/20 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
-"^" in: xor.drc:38
+"_input" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
 --- Running XOR for 62/24 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
-"^" in: xor.drc:38
+"_input" in: xor.drc:38
 Elapsed: 0.010s
+"^" in: xor.drc:38
+Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
 --- Running XOR for 64/16 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 46.460s
+Elapsed: 45.610s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 64/18 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 0.020s
+Elapsed: 0.030s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 64/20 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 98.320s
+Elapsed: 96.740s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 64/5 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "_input" in: xor.drc:38
 Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 15.170s
+Elapsed: 14.450s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 64/59 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 15.280s
+Elapsed: 14.610s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 65/13 ---
 "_input" in: xor.drc:38
 Elapsed: 0.010s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 0.130s
+Elapsed: 0.010s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.000s
@@ -583,7 +583,7 @@
 Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 65/16 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
@@ -600,7 +600,7 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 86.470s
+Elapsed: 84.870s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
@@ -610,25 +610,25 @@
 "_input" in: xor.drc:38
 Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 7.440s
+Elapsed: 7.240s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 66/13 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
 Elapsed: 0.040s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 66/14 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 "^" in: xor.drc:38
 Elapsed: 0.030s
 XOR differences: 0
@@ -640,34 +640,90 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 5.160s
+Elapsed: 5.120s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 --- Running XOR for 66/16 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
 "^" in: xor.drc:38
 Elapsed: 0.210s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 66/20 ---
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "_input" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 293.270s
+Elapsed: 288.320s
 XOR differences: 0
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 66/44 ---
 "_input" in: xor.drc:38
+Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
+"^" in: xor.drc:38
+Elapsed: 502.120s
+XOR differences: 0
+"_output" in: xor.drc:41
+Elapsed: 0.010s
+--- Running XOR for 66/83 ---
+"_input" in: xor.drc:38
 Elapsed: 0.010s
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-/usr/bin/xvfb-run: line 181: 26383 Killed                  DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
+Elapsed: 0.310s
+XOR differences: 0
+"_output" in: xor.drc:41
+Elapsed: 0.010s
+--- Running XOR for 66/9 ---
+"_input" in: xor.drc:38
+Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
+XOR differences: 0
+"_output" in: xor.drc:41
+Elapsed: 0.000s
+--- Running XOR for 67/15 ---
+"_input" in: xor.drc:38
+Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
+XOR differences: 0
+"_output" in: xor.drc:41
+Elapsed: 0.000s
+--- Running XOR for 67/16 ---
+"_input" in: xor.drc:38
+Elapsed: 0.010s
+"_input" in: xor.drc:38
+Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 68.300s
+XOR differences: 0
+"_output" in: xor.drc:41
+Elapsed: 0.010s
+--- Running XOR for 67/20 ---
+"_input" in: xor.drc:38
+Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
+"^" in: xor.drc:38
+ERROR: In /mnt/share/open_mpw/sak/klayout/xor.drc: std::bad_alloc in Region::^
+Writing layout file: ./gds/caravel_00010024_fix_xor.gds ..
+ERROR: std::bad_alloc in Region::^ in MacroInterpreter::execute
+  /mnt/share/open_mpw/sak/klayout/xor.drc:38:in `execute_drc'
+  /mnt/share/open_mpw/sak/klayout/xor.drc:35:in `each'
+  /mnt/share/open_mpw/sak/klayout/xor.drc:35:in `execute_drc'
+  :/built-in-macros/drc_interpreters.lym:92:in `execute'