diff --git a/common/preproc.py b/common/preproc.py
index 9612921..15f0ecf 100755
--- a/common/preproc.py
+++ b/common/preproc.py
@@ -164,7 +164,7 @@
             newkeys.append(keyword)
     return newkeys
 
-def runpp(keys, keyrex, defines, ccomm, incdirs, inputfile, ofile):
+def runpp(keys, keyrex, defines, ccomm, utf, incdirs, inputfile, ofile):
 
     includerex = re.compile('^[ \t]*#include[ \t]+"*([^ \t\n\r"]+)')
     definerex = re.compile('^[ \t]*#define[ \t]+([^ \t]+)[ \t]+(.+)')
@@ -196,7 +196,10 @@
 
     ifile = False
     try:
-        ifile = open(inputfile, 'r')
+        if not utf:
+            ifile = open(inputfile, 'r')
+        else:
+            ifile = open(inputfile, 'r', encoding='utf-8', errors='replace')
     except FileNotFoundError:
         for dir in incdirs:
             try:
@@ -488,7 +491,10 @@
                 break
                 
         # Output the line
-        print(line, file=ofile, end='')
+        if not utf:
+            print(line, file=ofile, end='')
+        else:
+            ofile.write(line.encode('utf-8'))
 
     if ifblock != -1 or ifstack != []:
         print("Error:  input file ended with an unterminated #if block.", file=sys.stderr)
@@ -535,6 +541,7 @@
     incdirs = []
     ccomm = False
     quiet = False
+    utf = False
     for item in options:
         result = item.split('=')
         if result[0] == '-help':
@@ -544,6 +551,8 @@
             ccomm = True
         elif result[0] == '-quiet':
             quiet = True
+        elif result[0] == '-utf8':
+            utf = True
         elif result[0][0:2] == '-I':
             incdirs.append(result[0][2:])
         elif result[0][0:2] == '-D':
@@ -557,7 +566,7 @@
             keys.append(keyword)
             keys = sortkeys(keys)
         else:
-            print('Bad option ' + item + ', options are -help, -quiet, -ccomm, -D<def> -I<dir>\n')
+            print('Bad option ' + item + ', options are -help, -quiet, -ccomm, -utf8, -D<def> -I<dir>\n')
             sys.exit(1)
 
     if not os.path.isfile(inputfile):
@@ -567,7 +576,10 @@
             sys.exit(0)
 
     if outputfile:
-        ofile = open(outputfile, 'w')
+        if not utf:
+            ofile = open(outputfile, 'w')
+        else:
+            ofile = open(outputfile, 'wb')
     else:
         ofile = sys.stdout
 
@@ -581,7 +593,7 @@
 
     keys = sortkeys(keys)
 
-    runpp(keys, keyrex, defines, ccomm, incdirs, inputfile, ofile)
+    runpp(keys, keyrex, defines, ccomm, utf, incdirs, inputfile, ofile)
     if ofile != sys.stdout:
         ofile.close()
 
diff --git a/common/staging_install.py b/common/staging_install.py
index 7f4f15e..ac977f7 100755
--- a/common/staging_install.py
+++ b/common/staging_install.py
@@ -117,9 +117,9 @@
         elif os.path.isdir(filepath):
             total += filter_recursive(filepath, stagingdir, finaldir)
         else:
-            with open(filepath, 'r') as ifile:
+            with open(filepath, 'r', encoding='utf-8', errors='replace') as ifile:
                 try:
-                    flines = ifile.read().splitlines()
+                    flines = ifile.readlines()
                 except UnicodeDecodeError:
                     print('Failure to read file ' + filepath + '; non-ASCII content.')
                     continue
@@ -128,11 +128,11 @@
             makeuserwritable(filepath)
 
             modified = False
-            with open(filepath, 'w') as ofile:
+            with open(filepath, 'wb') as ofile:
                 for line in flines:
                     newline = line.replace(stagingdir, finaldir)
                     newline = newline.replace(stagingparent, localparent)
-                    print(newline, file=ofile)
+                    ofile.write(newline.encode('utf-8'))
                     if newline != line:
                         modified = True
 
diff --git a/scripts/configure b/scripts/configure
index 45ef4e1..5ccc6d5 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -637,7 +637,6 @@
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -719,7 +718,6 @@
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -972,15 +970,6 @@
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1118,7 +1107,7 @@
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1271,7 +1260,6 @@
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1841,7 +1829,7 @@
   $as_echo_n "(cached) " >&6
 else
 
-	for am_cv_pathless_PYTHON in python python2 python3  python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3  python3.2 python3.1 python3.0  python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1  python2.0 none; do
+	for am_cv_pathless_PYTHON in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
 	  test "$am_cv_pathless_PYTHON" = none && break
 	  prog="import sys
 # split strings by '.' and convert to numeric.  Append some zeros
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index c7b24b3..f4e7bb3 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -732,9 +732,12 @@
 	mkdir -p ${KLAYOUT_STAGING_A}
 	rm -f ${KLAYOUT_STAGING_A}/${SKY130A}.lyp
 	rm -f ${KLAYOUT_STAGING_A}/${SKY130A}.lyt
-	${CPP} ${SKY130A_DEFS} klayout/${TECH}.lyp ${KLAYOUT_STAGING_A}/${SKY130A}.lyp
-	${CPP} ${SKY130A_DEFS} klayout/${TECH}.lyt ${KLAYOUT_STAGING_A}/${SKY130A}.lyt
-	cp klayout/${TECH}.lydrc ${KLAYOUT_STAGING_A}/${SKY130A}.lydrc
+	${CPP} -utf8 ${SKY130A_DEFS} klayout/${TECH}.lyp \
+		${KLAYOUT_STAGING_A}/${SKY130A}.lyp
+	${CPP} -utf8 ${SKY130A_DEFS} klayout/${TECH}.lyt \
+		${KLAYOUT_STAGING_A}/${SKY130A}.lyt
+	${CPP} -utf8 ${SKY130A_DEFS} klayout/${TECH}.lydrc \
+		${KLAYOUT_STAGING_A}/${SKY130A}.lydrc
 	#./custom/scripts/gen_run_drc.py -l ${KLAYOUT_STAGING_A}/${SKY130A}.lydrc \
 	#	-o ${KLAYOUT_STAGING_A}/${SKY130A}.drc
 
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index 7289548..74c730b 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -661,10 +661,31 @@
   compose  pfet  poly  pdiff
   compose  var   poly  nsd
 
+  decompose npass   poly ndiff
+  decompose npd     poly ndiff
+  decompose scnfet  poly ndiff
+  decompose nfetlvt poly ndiff
+  decompose nsonos  poly ndiff
+
+  decompose ppu       poly pdiff
+  decompose scpfet    poly pdiff
+  decompose scpfethvt poly pdiff
+  decompose pfethvt   poly pdiff
+  decompose pfetlvt   poly pdiff
+  decompose pfetmvt   poly pdiff
+  decompose corenvar  poly nsd
+  decompose corepvar  poly psd
+  decompose varhvt    poly nsd
+
   compose  mvnfet  poly  mvndiff
   compose  mvpfet  poly  mvpdiff
   compose  mvvar   poly  mvnsd
 
+  decompose nnfet     poly mvndiff
+  decompose mvnfetesd poly mvndiff
+  decompose mvnnfet   poly mvndiff
+  decompose mvpfetesd poly mvpdiff
+
   paint	 obsmcon locali	 via1
   paint	 obsmcon obsm1	 obsli,obsm1
   
@@ -698,6 +719,10 @@
   paint  coreli  psc    psc
   paint  coreli  viali  viali
 
+#ifdef RERAM
+  paint  reram  metal2  reram
+#endif (RERAM)
+
 #ifdef METAL5
   paint  m4      obsm4  m4
   paint  m5      obsm5  m5
@@ -1235,6 +1260,18 @@
  	squares-grid 55 150 170
  	calma 	68 44
 
+#ifdef RERAM
+#undef RERAM
+ layer VIA1 	reram
+ 	squares-grid 55 150 170
+ 	calma 	68 44
+
+ layer RERAM	reram
+ 	squares-grid 55 230 230
+	calma	201 20
+#define RERAM
+#endif (RERAM)
+
 #----------------------------------------------------------------
 # MET2
 #----------------------------------------------------------------
@@ -1264,14 +1301,6 @@
  	squares-grid 40 200 200
  	calma 	69 44
 
-#ifdef RERAM
-#undef RERAM
- layer RERAM	reram
- 	squares-grid 55 230 230
-	calma	201 20
-#define RERAM
-#endif (RERAM)
-
 #----------------------------------------------------------------
 # MET3
 #----------------------------------------------------------------
@@ -4568,7 +4597,7 @@
 # ReRAM
 #--------------------------------------------------
 
- width reram 340 "ReRAM width < %d (rr1.1)"
+ width reram 260 "ReRAM width < %d (rr1.1)"
  spacing reram reram 55 touching_illegal "ReRAM spacing < %d (rr1.2)"
  surround reram *m1,rm1 30 directional \
 	"Metal1 overlap of ReRAM < %d in one direction (via.5a - via.4a)"
