diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..38d0f2e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+*.swp
+*.vvp
+*.vcd
+*.raw
+__pycache__
+**/.DS_Store
+**/.Trashes/
+
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..02000c3
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,81 @@
+#---------------------------------------------------
+# Makefile for efabless project open_pdks
+# Tim Edwards, 11/21/2016
+# Updated 10/19/2018 for use independently of the
+# efabless /ef/ tree filesystem setup.
+# Updated 5/5/2020 for use with the 2-stage install
+#---------------------------------------------------
+#
+# Typical usage:
+#
+# make
+# 	generates the tech files from source masters.
+#
+# make install-local
+#
+# 	installs the tech files locally.
+#
+# make install-dist
+#
+# 	installs the tech files in the git project
+# 	that is used for distribution of software
+# 	across the system.
+#
+# make clean
+#
+# 	clean up all files generated by 'make'
+# 
+#---------------------------------------------------
+#
+# The following definitions are tied to the contents
+# of this repository and should not be changed.
+
+TECHS       = sky130
+
+#---------------------------------------------------
+
+all:	${TECHS}
+	for tech in ${TECHS}; do \
+		${MAKE} tech_$$tech; done
+
+#---------------------------------------------------
+
+tech_sky130:
+	(cd sky130 && ${MAKE} all)
+
+#---------------------------------------------------
+
+install-sky130-local:	sky130
+	(cd sky130 && ${MAKE} install-local)
+
+install-sky130-dist:	sky130
+	(cd sky130 && ${MAKE} install-dist)
+
+clean-sky130:
+	(cd sky130 && ${MAKE} clean)
+
+veryclean-sky130:
+	(cd sky130 && ${MAKE} veryclean)
+
+#---------------------------------------------------
+
+install:
+	${MAKE} install-local
+
+install-local:	${TECHS}	
+	for tech in ${TECHS}; do \
+		${MAKE} install-$${tech}-local; done
+
+install-dist:	${TECHS}
+	for tech in ${TECHS}; do \
+		${MAKE} install-$${tech}-dist; done
+
+#---------------------------------------------------
+
+clean:
+	for tech in ${TECHS}; do \
+		${MAKE} clean-$${tech}; done
+
+veryclean:
+	for tech in ${TECHS}; do \
+		${MAKE} veryclean-$${tech}; done
diff --git a/README b/README
new file mode 100644
index 0000000..24fc238
--- /dev/null
+++ b/README
@@ -0,0 +1,574 @@
+open_pdks : A system for installing silicon foundry PDKs for open-source EDA tools
+(also maybe works for installing commercial tools)
+
+----------------------------------------------------------------------------------
+
+Written by Tim Edwards 2019 / 2020 for efabless (efabless.com)
+and Open Circuit Design (opencircuitdesign.com)
+
+----------------------------------------------------------------------------------
+
+Introduction:
+
+    Silicon foundry PDKs are notoriously non-standard, and files obtained
+    from the foundry may end up in any possibly configuration of files and
+    folders.  In addition, silicon foundries are notorious among open source
+    EDA tool enthusiasts for supplying user setups for commercial EDA tools
+    and all but ignoring open source EDA tools.  Open_pdks aims to mitigate
+    the problem by defining a standard layout of files and directories for
+    known open standard formats (e.g., SPICE, verilog, liberty, LEF, etc.)
+    and for various open source EDA tools (e.g., magic, netgen, OpenROAD,
+    klayout) using a Makefile system and a number of conversion scripts to
+    ensure that for any process, all files needed by all EDA tools can be
+    found in predictable locations.
+
+    The scripts aim to be as general-purpose as possible to allow easy
+    adaptation to new tools, formats, and foundries.  Where foundry data
+    is intractably unusable, custom install files can be added to overwrite
+    or annotate vendor data as needed.
+
+    Each foundry process is a subdirectory of the open_pdks top level and
+    has its own Makefile.  The typical install process is to cd to the
+    foundry top level and run "make" (see below for details).
+    
+    The general file structure created by open_pdks is as follows:
+
+	<foundry_root>/
+	    <name_of_pdk_variant_1>/
+	    <name_of_pdk_variant_2>/
+	    ...
+	    <name_of_pdk_variant_x>/
+		libs.tech/
+		    <name_of_EDA_tool_1>/
+		    <name_of_EDA_tool_2>/
+		    ...
+		    <name_of_EDA_tool_x>/
+			<EDA_tool_setup_files>
+		libs.ref
+		    <name_of_IP_library_1>/
+		    <name_of_IP_library_2>/
+		    ...
+		    <name_of_IP_library_x>/
+			<name_of_file_format_1>
+			<name_of_file_format_2>
+			...
+			<name_of_file_format_x>
+			    <vendor_files>
+			
+    Note that this format is very general and does not constrain the
+    EDA tools supported or file formats supported, so long as there
+    are scripts in the system to provide that support.  It is intended
+    that open_pdks can be extended as needed to support new tools or
+    new file formats.
+
+    Current EDA tools supported in this version of open_pdks:
+	Tool	    Directory name
+	--------------------------
+	ngspice	    ngspice
+	magic	    magic
+	netgen	    netgen
+	klayout	    klayout
+	qflow	    qflow
+	openlane    openlane
+		
+    Current IP library file formats supported in this version of open_pdks*:
+	Format	    Directory name
+	--------------------------
+	CDL	    cdl
+	SPICE	    spice
+	magic	    mag, maglef
+	LEF	    lef, techlef
+	GDS	    gds
+	verilog	    verilog
+	liberty	    lib
+	PDF**	    doc
+
+	(* "Supported" meaning expected/handled by conversion scripts;
+	   as noted, the install is very general purpose and any name
+	   can be used as a target for any vendor or custom files.)
+	(** or HTML or any valid document format, plus supporting files.)
+
+How to use open_pdks:
+
+    There are a seriously limited number of open foundry PDKs.  Those that
+    are known (SkyWater, MOSIS SCMOS) are included in the repository.  In
+    other cases (X-Fab XH035, XH018) it is possible to get an extension to
+    open_pdks from a known trusted source through NDA verification with
+    the foundry.  In all other cases, foundries should be berated until
+    they agree to support the open_pdks format.
+
+    Open_pdks does not attempt to keep any foundry data to the extent
+    possible.  Instead, it adapts to the file structure available from
+    whatever system each foundry uses for downloads.  Each foundry
+    directory should contain a README file that details how to obtain
+    downloads from the foundry, and what files need to be downloaded.
+    Since the download methods vary wildly, it is up to the user to obtain
+    the foundry data as instructed.  The Makefile in the open_pdks foundry
+    directory then needs to be edited to set the correct path to the
+    foundry source data.
+
+    The installation is a bootstrapping process, so needs to be done in
+    stages.  The first stage installs setup files for all the EDA tools.
+    The second stage installs IP libraries (e.g., standard cells, padframe
+    I/O, analog circuits) and depends heavily on the use of the open EDA
+    tools themselves to fill in any missing file formats.  Therefore the
+    tool setup files need to be installed first, and then the IP libraries.
+    If using a distributed install (see below), then the tool setup files
+    need to be installed and distributed (relocated to the final run-time
+    location) before the IP libraries are installed.
+
+    There are two distinct install types supported by open_pdks:
+
+    (1) Local install:  Use a local install when the EDA tools will be run
+    on a single host, and all the PDK data are on the same host.
+
+    The local install sequence is:
+
+	make				Generate local staging area
+	make install-local		Migrate to install directory
+
+    (2) Distributed install:  Use the distributed install when the PDK
+    will be run from multiple hosts, but will be installed into a
+    different location such as a git repo which is then distributed to
+    all hosts, and may not itself reside in the same root directory tree.
+
+    The distributed install sequence is:
+
+	make				Generate local staging area
+	make install-dist		Migrate to distribution directory
+
+    Note that local installs may opt to make symbolic links back to the
+    foundry sources, where possible (see options for foundry_install.py,
+    below).  Distributed installs and local installs may also make
+    symbolic links from any PDK variant back to a "master" PDK variant,
+    where possible (that is, where the files are the same).  For example,
+    a standard cell library will probably be compatible with all metal
+    back-end stacks, and so only one copy of all the library files is
+    needed in one of the PDK variants.  For the other PDK variants, the
+    same files are all symbolic links to the files in the first PDK
+    variant.  But an I/O library would have different layouts for different
+    metal back-end stacks, so layout-dependent files like GDS would be
+    different for each PDK, but layout-independent files like verilog
+    might be symbolic links to files in the first PDK.
+
+Prerequisites:
+
+    The following tools/software stacks are needed to run open_pdks:
+
+	python3
+
+	magic	opencircuitdesign.com/magic or github.com/RTimothyEdwards
+
+		assumed to be installed and discoverable in the standard
+		search path as defined by the shell (version 8.2+ required)
+
+How to make or update an open PDK:
+
+    The backbone of the open_pdks system is a set of scripts found in the
+    common/ subdirectory.  The two main scripts are "preproc.py" and
+    "foundry_install.py", with a host of supporting scripts.
+
+    Creating a new PDK starts with generating a Makefile, which can be
+    done by copying a Makefile from an existing project.  The first thing
+    to do is to define the number of PDK variants (usually based on back-end
+    metal stacks available, but can also include front-end options, especially
+    if they are mutually exclusive rather than simply additional masks).
+    Then create the make and make-install targets for local and distributed
+    install, including install (plain), install-vendor, and install-custom.
+    Define the default source and target paths.
+
+    (Needed:  A "make makefile" script that generates the "local" and "dist"
+    automatically, and potentially can also make all the different PDK
+    targets automatically, from a much shorter and simpler master Makefile.)
+
+    Create the basic scripts for tools.  Since foundries do not support open
+    EDA tools, it is inevitable that these files need to be created by hand
+    unless there is an option to import other formats.  Because Magic is used
+    heavily by open_pdks to create missing file formats from other existing
+    file formats, a Magic techfile is critical.  Each of the basic scripts
+    will contain #ifdef ... #endif and similar conditionals to allow the
+    script to be parsed for each target PDK variant.  Each of these scripts
+    is passed through common/preproc.py to handle the conditionals.  Of course,
+    it is possible to make a separate file for each PDK variant as long as the
+    Makefile handles them properly, but use of the preproc.py script allows
+    all the PDK variants to be handled in the same way, simplifying the Makefile.
+
+    --------------------------------------------------------------------------
+    preproc.py Usage:
+
+        preproc.py input_file [output_file] [-D<variable> ...]
+ 
+	  Where <variable> may be a keyword or a key=value pair
+ 
+	  Syntax:  Basically like cpp.  However, this preprocessor handles
+	  only a limited set of keywords, so it does not otherwise mangle
+	  the file in the belief that it must be C code.  Handling of boolean
+	  relations is important, so these are thoroughly defined (see below)
+ 
+	        #if defined(<variable>) [...]
+	        #ifdef <variable>
+	        #ifndef <variable>
+	        #elseif <variable>
+	        #else
+	        #endif
+ 
+	        #define <variable> [...]
+	        #undef <variable>
+ 
+	        #include <filename>
+ 
+	  <variable> may be
+	        <keyword>
+	        <keyword>=<value>
+ 
+	        <keyword> without '=' is effectively the same as <keyword>=1
+	        Lack of a keyword is equivalent to <keyword>=0, in a conditional.
+ 
+	  Boolean operators (in order of precedence):
+	        !       NOT
+	        &&      AND
+	        ||      OR
+ 
+	  Comments:
+	        Most comments (C-like or Tcl-like) are output as-is.  A
+	        line beginning with "###" is treated as a preprocessor
+	        comment and is not copied to the output.
+ 
+	  Examples;
+	        #if defined(X) || defined(Y)
+	        #else
+	        #if defined(Z)
+	        #endif
+
+    --------------------------------------------------------------------------
+
+    The script common/foundry_install.py handles all the IP library processing
+    and installation.  It generates the local directory structure and populates
+    the directories with foundry vendor data, and filters or otherwise uses
+    open EDA tools to generate missing standard file formats or create file
+    formats needed by the open EDA tools.
+
+    foundry_install.py Usage:
+
+	foundry_install.py [option [option_arguments]] ...
+
+	All options begin with "-" and may be followed by one or more
+	arguments (that do not begin with "-").  The foundry_install.py
+	script may be called multiple times, although it is best to
+	group together all files for the installation of an IP library,
+	since the options given will be used to determine what files are
+	missing and need to be generated.
+
+	Global options:
+	    -link_from <type>  
+			    Make symbolic links to vendor files from target
+			    Types are: "none", "source", or a PDK name.
+			    Default "none" (copy all files from source)
+	    -source <path>
+			    Path to source data top level directory
+	    -target <path>
+			    Path to target top level directory
+	    -local <path>
+			    For distributed installs, this is the local
+	                    path to target top level directory.
+
+	    -library <type> <name>
+			    The install target is an IP library with
+			    name <name>.
+	    -ef_format
+			    Use the original efabless format for file
+			    installs.  This has several differences from
+			    then no-efabless install.  The most important
+			    is that the order of directories for IP libraries
+			    is <file_format>/<library_name> instead of
+			    <library_name>/<file_format>.  As the efabless
+			    platform migrates to the open_pdks developing
+			    standard, this use should eventually be
+			    deprecated.  In open_pdks, the option is set
+			    from the EF_FORMAT variable setting in the Makefile.
+
+	 All other options represent installation into specific directories.
+	 The primary rule is that if foundry_install.py is passed an option
+	 "-library" (see syntax below), then all other non-global options
+	 represent subdirectories of the IP library, given the same name as
+	 the option word following the "-".  If the foundry_install.py command
+	 line does not have an option "-library", then all non-global options
+	 represent per-EDA tool subdirectories, where the name of the subdirectory
+	 is the same as the option word following the "-".
+
+	 Each tool install option has the syntax:
+
+		-<tool_name> <path> [<option_arguments>]
+
+	 Each IP library install option has the syntax:
+
+		-<file_format_name> <path> [<option_arguments>]
+	
+	 The <path> is a directory path that is relative to the path prefix
+	 given by the -source option.  The path may be wildcarded with the
+	 escape string "%l", which is replaced by the name of the library,
+	 and for simplicity with versioning, "%v" will be interpreted to
+	 match any versioning string in the form "major[.minor[.rev]]".
+	 Note that only the numerical part of a versioning string is
+	 represented, so, for example, to match "/V1.1.0/" the <path> should
+	 use "/V%v/".  In the unlikely event of a percent character in the
+	 path, use the escape string "%%".
+
+	 "*" has the usual meaning of matching any characters in a name (see
+	 python glob.glob() command for reference).  However, for backwards
+	 compatibility with earlier versions of open_pdks, the library name
+         in the path may also be wildcarded with "*" in the specific text
+	 "/*/".
+
+	 Library name wildcarding in either form is only valid if "-library"
+	 is given as an an option.
+
+	 (Note that the INSTALL variable in the Makefile starts with "set -f"
+	 to suppress the OS from doing wildcard substitution;  otherwise the
+	 wildcards in the install options will get expanded by the OS before
+	 being passed to the install script.)
+
+	 Library option:
+	
+	       -library <type> <name> [<target>]
+	
+	    <type> may be one of the following:
+
+		digital		Digital standard cells
+		primitive	Primitive devices
+		general		All others
+
+		Analog and I/O libraries fall under the category "general".
+
+	    <name> is the vendor name of the library.
+
+	    [<target>] is the (optional) local name of the library.  If omitted,
+	    then the vendor name is used for the target (there is no particular
+	    reason to specify a different local name for a library).
+
+	 Any number of libraries may be supported, and one "-library" option
+	 may be provided for each supported library.  The use of multiple
+	 libraries for a single run of foundry_install.py only works if the
+	 formats (gds, cdl, lef, etc.) happen to all work with the same wildcards.
+	 But it is generally most common to declare only one library name per
+	 call to foundry_install.py.
+	
+	 Common foundry_install.py options when used with "-library":
+	
+	       -techlef <path> [option_arguments]   Technology LEF file
+	       -doc <path> [option_arguments]	    library documentation
+	       -lef <path> [option_arguments]	    LEF file
+	       -spice <path> [option_arguments]	    SPICE netlists
+	       -cdl <path> [option_arguments]	    CDL netlists
+	       -lib <path> [option_arguments]	    Liberty timing files
+	       -gds <path> [option_arguments]	    GDS layout data
+	       -verilog <path> [option_arguments]   Verilog models
+
+	 Any name can be used after the "-" and the installation of files
+	 will be made into a directory of that name, which will be created
+	 if it does not exist.  The names used above are preferred, for
+	 the sake of compatibility between EDA tools.
+
+	 Of special note is "techlef", as technology LEF files are often
+	 associated with a PDK and not an IP library.  In this system,
+	 the technology LEF file should be associated with each standard
+	 cell library for which it is intended.
+
+	 [option_arguments] may be one of the following:
+
+	       up  <number>
+		    Any tool option can use this argument to indicate that
+		    the source hierarchy should be copied entirely, starting
+		    from <number> levels above the files indicated by <path>.
+		    For example, if liberty files are kept in multiple
+		    directories according to voltage level, then
+	
+			-liberty x/y/z/PVT_*/*.lib
+	
+		    would install all .lib files directly into
+		    libs.ref/<libname>/liberty/*.lib while
+	
+			-liberty x/y/z/PVT_*/*.lib up 1
+	
+		    would install all .lib files into
+		    libs.ref/liberty/<libname>/PVT_*/*.lib.
+	
+	       nospec
+	            Remove timing specification before installing (used with
+		    verilog files only;  could be extended to liberty files).
+
+	       compile
+	            Create a single library from all components.  Used when a
+		    foundry library has inconveniently split an IP library
+		    (LEF, CDL, verilog, etc.) into individual files.
+
+	       compile-only
+		    Same as argument "compile", except that the individual
+		    files are not copied to the target;  only the compiled
+		    library is created.
+
+	       stub
+	            Remove contents of subcircuits from CDL and SPICE netlist,
+		    or verilog files.  This is useful to LVS and other tools
+		    to know the order of pins in a circuit (for CDL or SPICE),
+		    or simply to ignore the contents of the file (any format)
+		    so that the circuit in question is treated as a "black box".
+
+	       priv
+	            Mark the contents being installed as privleged, and put
+		    them in a separate root directory libs.priv where they
+		    can be given additional read/write restrictions.
+
+	       rename <file_name>
+		    Rename the file being copied to the name of the argument.
+		    This can be used to copy one file into multiple destination
+		    libraries and give each copy a name related to the
+		    destination library.
+
+	       filter <script_file_path>
+		    Process all files through the script <script_file_path>,
+		    which is given as a relative path to the directory
+		    containing the Makefile.  The filter script traditionally
+		    is put in local subdirectory custom/scripts/.  The filter
+		    script should be written to take a single argument, which
+		    is the path to a file, and process that file, and overwrite
+		    the file with the result.  Commonly used filters are found
+		    in the common/ directory.  See common/fixspice.py for an
+		    example.
+
+	       noclobber
+		    Mainly diagnostic.  When specified, any temporary files
+		    used during installation will be retained instead of
+		    deleted after use.  This includes, for example, scripts
+		    passed to magic for running extraction or file format
+		    generation.  It is useful when debugging problems with
+		    the install.
+
+	       anno
+		    Currently only supported for LEF files.  This argument
+		    indicates that the vendor LEF files should be used only
+		    for annotating GDS input with port location information,
+		    but the LEF files themselves should not be installed.
+
+    File conversions handled by foundry_install.py:
+
+	The following file format conversions can be done automatically by
+	foundry_install.py:
+
+	    CDL to SPICE:  A CDL netlist or library can be converted to a
+			   general-purpose SPICE netlist that can be read
+			   by any tool that can read Berkeley SPICE 3f5
+			   syntax.
+
+	    GDS to LEF:	   An abstract view can be generated from a full
+			   layout view using Magic.
+
+	    GDS to SPICE:  In the absence of any netlist, Magic will
+			   extract a SPICE netlist from a full layout.
+
+	    SPICE (any) to SPICE (ngspice):  The fixspice.py script will
+			   attempt to convert any SPICE model file,
+			   cell library, or netlist to a form that is
+			   compatible with ngspice version 30.
+
+    open_pdks additional Makefile notes:
+
+	The "make install-local" ("make install-dist") step is generally
+	broken into individual make sections, one for each tool (e.g.,
+	magic, netgen, klayout).  There is an additional section called
+	"general" which installs a ".config" directory at the PDK top
+	level, containing a file "nodeinfo.json" which has general
+	information about the PDK that may be used by any tool that
+	understands the key:value pairs used in the JSON file.  Keys used
+	are as follows:
+
+		foundry :	Short name of the foundry, equal to the foundry
+				directory root, above the PDK variants.
+		foundry-name :  Long name of the foundry.
+		node :		The name of the PDK variant
+		feature-size :  The foundry process feature size (e.g., 130nm)
+		status :	"active" or "inactive".  May be used by tools
+				to present or hide specific PDK variants.
+		description :	Long text description of the process variant
+				(e.g., 6-metal stack + MiM caps)
+		options :	List of options, corresponding to the definitions
+				used in the Makefile and passed to preproc.py.
+		stdcells :	List of standard cell libraries available for this
+				PDK variant.
+		iocells :	List of I/O pad cell libraries available for this
+				PDK variant.
+
+	Note that the JSON file is, like other EDA tool setup files, usually a
+	master file that is parsed by preproc.py;  therefore when specifying
+	"options", use #undef before specifying each option name so that the
+	option name itself is ignored by the pre-processor.
+	
+
+Goals of the open_pdks project:
+
+    The intended goal of open_pdks is to be able to support as many open source
+    EDA tools as practical, and to be able to generate all needed files for
+    those tools from any sufficiently complete set of vendor files.
+
+    A number of file converions are not available but would be useful to have:
+
+	    SPICE to liberty:   Create timing files by running simulations
+				on SPICE netlists using ngspice.
+
+	    liberty to verilog: Use the function statements in liberty
+				format to create verilog primitives.  Maybe
+				use liberty timing information to generate
+				LEF specify sections.
+
+	    verilog to liberty: Reverse of the above.  Use verilog logic
+				tables and specify sections to generate liberty
+				functions and timing tables.
+
+    File formats that need to be supported:
+
+	    Schematic and symbol:  There are few standards, so either everyone
+				needs to agree on a good format to use, or there
+				needs to be a lot of scripts to do conversions
+				between formats.  Open EDA tools that could be
+				supported include:
+
+				electric, xcircuit, kicad, sue2
+
+    Other open source EDA tools that need to be supported:
+
+	    OpenROAD
+	    Coriolis2
+	    (add more here. . .)
+
+    Commercial EDA tools can potentially be supported under this same system,
+    provided sufficient compatibility with the file system structure.
+
+    Other scripts needed:
+
+	    Project setup script:  It would be useful to define a "standard
+	    project file structure" that is similar to the standard PDK file
+	    structure defined in open_pdks.  The preferred project setup
+	    based on the efabless model is:
+
+		<project_name>
+		    .config/
+			techdir (symbolic link to open_pdks PDK)
+		    project.json    (information file for tools)
+		    <tool_name>	    (magic, qflow, ngspice, etc.) or
+		    <format_name>   (spice, gds, verilog, etc.)
+
+	    In general, <tool_name> directories are intended to be workspaces
+	    for specific EDA tools (and may have their own nested hierarchies;
+	    e.g., qflow/<digital_block>/source,synthesis,layout) while
+	    <format_name> is a place to keep (final) files of a specific format,
+	    with the intention that any project can easily be made into an
+	    IP library and folded into the open_pdks scheme with little effort.
+
+	    The project.json file contains project information that can be used
+	    by a script to build a setup for any EDA tool.  One goal of the
+	    project.json file is to define "datasheet" (documented elsewhere)
+	    that can be used to drive characterization simulations and create
+	    a datasheet for the project.  Field "ip-name" of "datasheet" is
+	    the canonical name of the project, which can be distinguished from
+	    the project directory top-level name, such that the project can be
+	    moved or copied without affecting the tool flows.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..12651e0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,37 @@
+Open-PDKs (open_pdks)
+-----------------------------------------
+
+Summary:
+
+Automatic setup of PDKs for open-source tools from foundry sources.
+
+Builds out and populates a new set of directories and subdirectories in
+the efabless format, with the efabless name for the PDK at the top,
+followed by categories "libs.ref" (IP) and "libs.tech" (EDA tool setup),
+each with subcategories corresponding to layout, abstract views,
+netlists, etc. for the IP;  and magic, netgen, qflow, etc., for the
+EDA tool setup.
+
+The populated PDK directories can contain either copies of files from
+the foundry sources, links to the foundry sources, or links back to
+another PDK.
+
+Generates magic layout views for all vendor IP for which either a GDS
+view or a LEF view exists.  Annotates the views as needed to handle
+ports, bounding boxes, etc.
+
+-----------------------------------------
+
+This distribution contains sources for building out the SkyWater s8
+130nm process.  Sources for the foundry process data must be obtained
+separately.  Read the README file in subdirectory s8/ for instructions
+on obtaining and building the SkyWater s8 PDK.
+
+-----------------------------------------
+
+Instructions:
+
+There is a top-level Makefile but generally it is recommended to cd
+to the directory for the target foundry process and follow the instructions
+in the README file there.
+
diff --git a/common/README b/common/README
new file mode 100644
index 0000000..decfec1
--- /dev/null
+++ b/common/README
@@ -0,0 +1,584 @@
+open_pdks : A system for installing silicon foundry PDKs for open-source EDA tools
+(also maybe works for installing commercial tools)
+
+----------------------------------------------------------------------------------
+
+Written by Tim Edwards 2019 / 2020 for efabless (efabless.com)
+and Open Circuit Design (opencircuitdesign.com)
+
+----------------------------------------------------------------------------------
+
+Introduction:
+
+    Silicon foundry PDKs are notoriously non-standard, and files obtained
+    from the foundry may end up in any possibly configuration of files and
+    folders.  In addition, silicon foundries are notorious among open source
+    EDA tool enthusiasts for supplying user setups for commercial EDA tools
+    and all but ignoring open source EDA tools.  Open_pdks aims to mitigate
+    the problem by defining a standard layout of files and directories for
+    known open standard formats (e.g., SPICE, verilog, liberty, LEF, etc.)
+    and for various open source EDA tools (e.g., magic, netgen, OpenROAD,
+    klayout) using a Makefile system and a number of conversion scripts to
+    ensure that for any process, all files needed by all EDA tools can be
+    found in predictable locations.
+
+    The scripts aim to be as general-purpose as possible to allow easy
+    adaptation to new tools, formats, and foundries.  Where foundry data
+    is intractably unusable, custom install files can be added to overwrite
+    or annotate vendor data as needed.
+
+    Each foundry process is a subdirectory of the open_pdks top level and
+    has its own Makefile.  The typical install process is to cd to the
+    foundry top level and run "make" (see below for details).
+    
+    The general file structure created by open_pdks is as follows:
+
+	<foundry_root>/
+	    <name_of_pdk_variant_1>/
+	    <name_of_pdk_variant_2>/
+	    ...
+	    <name_of_pdk_variant_x>/
+		libs.tech/
+		    <name_of_EDA_tool_1>/
+		    <name_of_EDA_tool_2>/
+		    ...
+		    <name_of_EDA_tool_x>/
+			<EDA_tool_setup_files>
+		libs.ref
+		    <name_of_IP_library_1>/
+		    <name_of_IP_library_2>/
+		    ...
+		    <name_of_IP_library_x>/
+			<name_of_file_format_1>
+			<name_of_file_format_2>
+			...
+			<name_of_file_format_x>
+			    <vendor_files>
+			
+    Note that this format is very general and does not constrain the
+    EDA tools supported or file formats supported, so long as there
+    are scripts in the system to provide that support.  It is intended
+    that open_pdks can be extended as needed to support new tools or
+    new file formats.
+
+    Current EDA tools supported in this version of open_pdks:
+	Tool	    Directory name
+	--------------------------
+	ngspice	    ngspice
+	magic	    magic
+	netgen	    netgen
+	klayout	    klayout
+	qflow	    qflow
+	openlane    openlane
+		
+    Current IP library file formats supported in this version of open_pdks*:
+	Format	    Directory name
+	--------------------------
+	CDL	    cdl
+	SPICE	    spice
+	magic	    mag, maglef
+	LEF	    lef
+	GDS	    gds
+	verilog	    verilog
+	liberty	    lib
+	PDF**	    doc
+
+	(* "Supported" meaning expected/handled by conversion scripts;
+	   as noted, the install is very general purpose and any name
+	   can be used as a target for any vendor or custom files.)
+	(** or HTML or any valid document format, plus supporting files.)
+
+How to use open_pdks:
+
+    There are a seriously limited number of open foundry PDKs.  Those that
+    are known (SkyWater, MOSIS SCMOS) are included in the repository.  In
+    other cases (X-Fab XH035, XH018) it is possible to get an extension to
+    open_pdks from a known trusted source through NDA verification with
+    the foundry.  In all other cases, foundries should be berated until
+    they agree to support the open_pdks format.
+
+    Open_pdks does not attempt to keep any foundry data to the extent
+    possible.  Instead, it adapts to the file structure available from
+    whatever system each foundry uses for downloads.  Each foundry
+    directory should contain a README file that details how to obtain
+    downloads from the foundry, and what files need to be downloaded.
+    Since the download methods vary wildly, it is up to the user to obtain
+    the foundry data as instructed.  The Makefile in the open_pdks foundry
+    directory then needs to be edited to set the correct path to the
+    foundry source data.
+
+    The installation is a bootstrapping process, so needs to be done in
+    stages.  The first stage installs setup files for all the EDA tools.
+    The second stage installs IP libraries (e.g., standard cells, padframe
+    I/O, analog circuits) and depends heavily on the use of the open EDA
+    tools themselves to fill in any missing file formats.  Therefore the
+    tool setup files need to be installed first, and then the IP libraries.
+    If using a distributed install (see below), then the tool setup files
+    need to be installed and distributed (relocated to the final run-time
+    location) before the IP libraries are installed.
+
+    There are two distinct install types supported by open_pdks:
+
+    (1) Local install:  Use a local install when the EDA tools will be run
+    on a single host, and all the PDK data are on the same host.
+
+    The local install sequence is:
+
+	make
+	make install-local		Install EDA tool setup
+	make install-vendor-local	Install IP libraries
+
+    (2) Distributed install:  Use the distributed install when the PDK
+    will be run from multiple hosts, but will be installed into a
+    different location such as a git repo which is then distributed to
+    all hosts, and may not itself reside in the same root directory tree.
+
+    The distributed install sequence is:
+
+	make
+	make install-dist		Install EDA tool setup
+	make install-vendor-dist	Install IP libraries
+
+    Note that local installs may opt to make symbolic links back to the
+    foundry sources, where possible (see options for foundry_install.py,
+    below).  Distributed installs and local installs may also make
+    symbolic links from any PDK variant back to a "master" PDK variant,
+    where possible (that is, where the files are the same).  For example,
+    a standard cell library will probably be compatible with all metal
+    back-end stacks, and so only one copy of all the library files is
+    needed in one of the PDK variants.  For the other PDK variants, the
+    same files are all symbolic links to the files in the first PDK
+    variant.  But an I/O library would have different layouts for different
+    metal back-end stacks, so layout-dependent files like GDS would be
+    different for each PDK, but layout-independent files like verilog
+    might be symbolic links to files in the first PDK.
+
+Prerequisites:
+
+    The following tools/software stacks are needed to run open_pdks:
+
+	python3
+
+	magic	opencircuitdesign.com/magic or github.com/RTimothyEdwards
+
+		assumed to be installed and discoverable in the standard
+		search path as defined by the shell (version 8.2+ required)
+
+How to make or update an open PDK:
+
+    The backbone of the open_pdks system is a set of scripts found in the
+    common/ subdirectory.  The two main scripts are "preproc.py" and
+    "foundry_install.py", with a host of supporting scripts.
+
+    Creating a new PDK starts with generating a Makefile, which can be
+    done by copying a Makefile from an existing project.  The first thing
+    to do is to define the number of PDK variants (usually based on back-end
+    metal stacks available, but can also include front-end options, especially
+    if they are mutually exclusive rather than simply additional masks).
+    Then create the make and make-install targets for local and distributed
+    install, including install (plain), install-vendor, and install-custom.
+    Define the default source and target paths.
+
+    (Needed:  A "make makefile" script that generates the "local" and "dist"
+    automatically, and potentially can also make all the different PDK
+    targets automatically, from a much shorter and simpler master Makefile.)
+
+    Create the basic scripts for tools.  Since foundries do not support open
+    EDA tools, it is inevitable that these files need to be created by hand
+    unless there is an option to import other formats.  Because Magic is used
+    heavily by open_pdks to create missing file formats from other existing
+    file formats, a Magic techfile is critical.  Each of the basic scripts
+    will contain #ifdef ... #endif and similar conditionals to allow the
+    script to be parsed for each target PDK variant.  Each of these scripts
+    is passed through common/preproc.py to handle the conditionals.  Of course,
+    it is possible to make a separate file for each PDK variant as long as the
+    Makefile handles them properly, but use of the preproc.py script allows
+    all the PDK variants to be handled in the same way, simplifying the Makefile.
+
+    --------------------------------------------------------------------------
+    preproc.py Usage:
+
+        preproc.py input_file [output_file] [-D<variable> ...]
+ 
+	  Where <variable> may be a keyword or a key=value pair
+ 
+	  Syntax:  Basically like cpp.  However, this preprocessor handles
+	  only a limited set of keywords, so it does not otherwise mangle
+	  the file in the belief that it must be C code.  Handling of boolean
+	  relations is important, so these are thoroughly defined (see below)
+ 
+	        #if defined(<variable>) [...]
+	        #ifdef <variable>
+	        #ifndef <variable>
+	        #elseif <variable>
+	        #else
+	        #endif
+ 
+	        #define <variable> [...]
+	        #undef <variable>
+ 
+	        #include <filename>
+ 
+	  <variable> may be
+	        <keyword>
+	        <keyword>=<value>
+ 
+	        <keyword> without '=' is effectively the same as <keyword>=1
+	        Lack of a keyword is equivalent to <keyword>=0, in a conditional.
+ 
+	  Boolean operators (in order of precedence):
+	        !       NOT
+	        &&      AND
+	        ||      OR
+ 
+	  Comments:
+	        Most comments (C-like or Tcl-like) are output as-is.  A
+	        line beginning with "###" is treated as a preprocessor
+	        comment and is not copied to the output.
+ 
+	  Examples;
+	        #if defined(X) || defined(Y)
+	        #else
+	        #if defined(Z)
+	        #endif
+
+    --------------------------------------------------------------------------
+
+    The script common/foundry_install.py handles all the IP library processing
+    and installation.  It generates the local directory structure and populates
+    the directories with foundry vendor data, and filters or otherwise uses
+    open EDA tools to generate missing standard file formats or create file
+    formats needed by the open EDA tools.
+
+    foundry_install.py Usage:
+
+	foundry_install.py [option [option_arguments]] ...
+
+	All options begin with "-" and may be followed by one or more
+	arguments (that do not begin with "-").  The foundry_install.py
+	script may be called multiple times, although it is best to
+	group together all files for the installation of an IP library,
+	since the options given will be used to determine what files are
+	missing and need to be generated.
+
+	Global options:
+	    -link_from <type>  
+			    Make symbolic links to vendor files from target
+			    Types are: "none", "source", or a PDK name.
+			    Default "none" (copy all files from source)
+	    -source <path>
+			    Path to source data top level directory
+	    -target <path>
+			    Path to target top level directory
+	    -local <path>
+			    For distributed installs, this is the local
+	                    path to target top level directory.
+
+	    -library <type> <name>
+			    The install target is an IP library with
+			    name <name>.
+	    -ef_format
+			    Use the original efabless format for file
+			    installs.  This has several differences from
+			    then no-efabless install.  The most important
+			    is that the order of directories for IP libraries
+			    is <file_format>/<library_name> instead of
+			    <library_name>/<file_format>.  As the efabless
+			    platform migrates to the open_pdks developing
+			    standard, this use should eventually be
+			    deprecated.  In open_pdks, the option is set
+			    from the EF_FORMAT variable setting in the Makefile.
+
+	All other options represent installation into specific directories.
+	The primary rule is that if foundry_install.py is passed an option
+	"-library" (see syntax below), then all other non-global options
+	represent subdirectories of the IP library, given the same name as
+	the option word following the "-".  If the foundry_install.py command
+	line does not have an option "-library", then all non-global options
+	represent per-EDA tool subdirectories, where the name of the subdirectory
+	is the same as the option word following the "-".
+
+	Each tool install option has the syntax:
+
+		-<tool_name> <path> [<option_arguments>]
+
+	Each IP library install option has the syntax:
+
+		-<file_format_name> <path> [<option_arguments>]
+	
+	 The <path> is a directory path that is relative to the path prefix
+	 given by the -source option.  The path may be wildcarded with the
+	 character "*".  The specific text "/*/" is always replaced by the
+	 name of the IP library (if "-library" is an option).  Otherwise,
+	 "*" has the usual meaning of matching any characters in a name
+	 (see python glob.glob() command for reference).
+
+	 (Note that the INSTALL variable in the Makefile starts with "set -f"
+	 to suppress the OS from doing wildcard substitution;  otherwise the
+	 wildcards in the install options will get expanded by the OS before
+	 being passed to the install script.)
+
+	 In some cases, it may be required to process an option like "compile"
+	 (see below) on files already in the target path without adding any
+	 source files.  In that case, <path> may be any keyword that does not
+	 point to a valid directory;  "none" is a recommended choice.
+
+	 Library option:
+	
+	       -library <type> <name> [<target>]
+	
+	    <type> may be one of the following:
+
+		digital		Digital standard cells
+		primitive	Primitive devices
+		general		All others
+
+		Analog and I/O libraries fall under the category "general".
+
+	    <name> is the vendor name of the library.
+
+	    [<target>] is the (optional) local name of the library.  If omitted,
+	    then the vendor name is used for the target (there is no particular
+	    reason to specify a different local name for a library).
+
+	 Any number of libraries may be supported, and one "-library" option
+	 may be provided for each supported library.  The use of multiple
+	 libraries for a single run of foundry_install.py only works if the
+	 formats (gds, cdl, lef, etc.) happen to all work with the same wildcards.
+	 But it is generally most common to declare only one library name per
+	 call to foundry_install.py.
+	
+	 Common foundry_install.py options when used with "-library":
+	
+	       -techlef <path> [option_arguments]   Technology LEF file
+	       -doc <path> [option_arguments]	    library documentation
+	       -lef <path> [option_arguments]	    LEF file
+	       -spice <path> [option_arguments]	    SPICE netlists
+	       -cdl <path> [option_arguments]	    CDL netlists
+	       -lib <path> [option_arguments]	    Liberty timing files
+	       -gds <path> [option_arguments]	    GDS layout data
+	       -verilog <path> [option_arguments]   Verilog models
+
+	 Any name can be used after the "-" and the installation of files
+	 will be made into a directory of that name, which will be created
+	 if it does not exist.  The names used above are preferred, for
+	 the sake of compatibility between EDA tools.
+
+	 Of special note is "techlef", as technology LEF files are often
+	 associated with a PDK and not an IP library.  In this system,
+	 the technology LEF file should be associated with each standard
+	 cell library for which it is intended.
+
+	 [option_arguments] may be one of the following:
+
+	       up  <number>
+		    Any tool option can use this argument to indicate that
+		    the source hierarchy should be copied entirely, starting
+		    from <number> levels above the files indicated by <path>.
+		    For example, if liberty files are kept in multiple
+		    directories according to voltage level, then
+	
+			-liberty x/y/z/PVT_*/*.lib
+	
+		    would install all .lib files directly into
+		    libs.ref/<libname>/liberty/*.lib while
+	
+			-liberty x/y/z/PVT_*/*.lib up 1
+	
+		    would install all .lib files into
+		    libs.ref/liberty/<libname>/PVT_*/*.lib.
+	
+	       nospec
+	            Remove timing specification before installing (used with
+		    verilog files only;  could be extended to liberty files).
+
+	       compile
+	            Create a single library from all components.  Used when a
+		    foundry library has inconveniently split an IP library
+		    (LEF, CDL, verilog, etc.) into individual files.
+
+	       compile-only
+		    Same as argument "compile", except that the individual
+		    files are not copied to the target;  only the compiled
+		    library is created.
+
+	       stub
+	            Remove contents of subcircuits from CDL and SPICE netlist,
+		    or verilog files.  This is useful to LVS and other tools
+		    to know the order of pins in a circuit (for CDL or SPICE),
+		    or simply to ignore the contents of the file (any format)
+		    so that the circuit in question is treated as a "black box".
+
+	       priv
+	            Mark the contents being installed as privleged, and put
+		    them in a separate root directory libs.priv where they
+		    can be given additional read/write restrictions.
+
+	       filter <script_file_path>
+		    Process all files through the script <script_file_path>,
+		    which is given as a relative path to the directory
+		    containing the Makefile.  The filter script traditionally
+		    is put in local subdirectory custom/scripts/.  The filter
+		    script should be written to take a single argument, which
+		    is the path to a file, and process that file, and overwrite
+		    the file with the result.  Commonly used filters are found
+		    in the common/ directory.  See common/fixspice.py for an
+		    example.
+
+	       noclobber
+		    Mainly diagnostic.  When specified, any temporary files
+		    used during installation will be retained instead of
+		    deleted after use.  This includes, for example, scripts
+		    passed to magic for running extraction or file format
+		    generation.  It is useful when debugging problems with
+		    the install.
+
+	       anno
+		    Currently only supported for LEF files.  This argument
+		    indicates that the vendor LEF files should be used only
+		    for annotating GDS input with port location information,
+		    but the LEF files themselves should not be installed.
+
+	       noconvert
+		    Install files from source to target, but do not perform
+		    any additional conversions (such as CDL to SPICE, or
+		    GDS or LEF to magic).
+
+	       ignore=<keyword>[,...]
+		    Specifically for CDL and SPICE netlists, ignore any
+		    parameter found matching <keyword>
+
+	       rename=<new-name>
+		    For single files copied from source to target, the
+		    target file should be named <new-name> and not be
+		    given the same name as the source file.  When used
+		    with the "compile" or "compile-only" options, then
+		    the compiled file gets the name <new-name> rather
+		    than taking the name of the library.
+
+	       exclude=<file>[,...]
+		    When using "compile" or "compile-only", exclude any
+		    file in the target directory matching the name <file>.
+
+    File conversions handled by foundry_install.py:
+
+	The following file format conversions can be done automatically by
+	foundry_install.py:
+
+	    CDL to SPICE:  A CDL netlist or library can be converted to a
+			   general-purpose SPICE netlist that can be read
+			   by any tool that can read Berkeley SPICE 3f5
+			   syntax.
+
+	    GDS to LEF:	   An abstract view can be generated from a full
+			   layout view using Magic.
+
+	    GDS to SPICE:  In the absence of any netlist, Magic will
+			   extract a SPICE netlist from a full layout.
+
+	    SPICE (any) to SPICE (ngspice):  The fixspice.py script will
+			   attempt to convert any SPICE model file,
+			   cell library, or netlist to a form that is
+			   compatible with ngspice version 30.
+
+    open_pdks additional Makefile notes:
+
+	The "make install-local" ("make install-dist") step is generally
+	broken into individual make sections, one for each tool (e.g.,
+	magic, netgen, klayout).  There is an additional section called
+	"general" which installs a ".config" directory at the PDK top
+	level, containing a file "nodeinfo.json" which has general
+	information about the PDK that may be used by any tool that
+	understands the key:value pairs used in the JSON file.  Keys used
+	are as follows:
+
+		foundry :	Short name of the foundry, equal to the foundry
+				directory root, above the PDK variants.
+		foundry-name :  Long name of the foundry.
+		node :		The name of the PDK variant
+		feature-size :  The foundry process feature size (e.g., 130nm)
+		status :	"active" or "inactive".  May be used by tools
+				to present or hide specific PDK variants.
+		description :	Long text description of the process variant
+				(e.g., 6-metal stack + MiM caps)
+		options :	List of options, corresponding to the definitions
+				used in the Makefile and passed to preproc.py.
+		stdcells :	List of standard cell libraries available for this
+				PDK variant.
+		iocells :	List of I/O pad cell libraries available for this
+				PDK variant.
+
+	Note that the JSON file is, like other EDA tool setup files, usually a
+	master file that is parsed by preproc.py;  therefore when specifying
+	"options", use #undef before specifying each option name so that the
+	option name itself is ignored by the pre-processor.
+	
+
+Goals of the open_pdks project:
+
+    The intended goal of open_pdks is to be able to support as many open source
+    EDA tools as practical, and to be able to generate all needed files for
+    those tools from any sufficiently complete set of vendor files.
+
+    A number of file converions are not available but would be useful to have:
+
+	    SPICE to liberty:   Create timing files by running simulations
+				on SPICE netlists using ngspice.
+
+	    liberty to verilog: Use the function statements in liberty
+				format to create verilog primitives.  Maybe
+				use liberty timing information to generate
+				LEF specify sections.
+
+	    verilog to liberty: Reverse of the above.  Use verilog logic
+				tables and specify sections to generate liberty
+				functions and timing tables.
+
+    File formats that need to be supported:
+
+	    Schematic and symbol:  There are few standards, so either everyone
+				needs to agree on a good format to use, or there
+				needs to be a lot of scripts to do conversions
+				between formats.  Open EDA tools that could be
+				supported include:
+
+				electric, xcircuit, kicad, sue2
+
+    Other open source EDA tools that need to be supported:
+
+	    OpenROAD
+	    Coriolis2
+	    (add more here. . .)
+
+    Commercial EDA tools can potentially be supported under this same system,
+    provided sufficient compatibility with the file system structure.
+
+    Other scripts needed:
+
+	    Project setup script:  It would be useful to define a "standard
+	    project file structure" that is similar to the standard PDK file
+	    structure defined in open_pdks.  The preferred project setup
+	    based on the efabless model is:
+
+		<project_name>
+		    .config/
+			techdir (symbolic link to open_pdks PDK)
+		    project.json    (information file for tools)
+		    <tool_name>	    (magic, qflow, ngspice, etc.) or
+		    <format_name>   (spice, gds, verilog, etc.)
+
+	    In general, <tool_name> directories are intended to be workspaces
+	    for specific EDA tools (and may have their own nested hierarchies;
+	    e.g., qflow/<digital_block>/source,synthesis,layout) while
+	    <format_name> is a place to keep (final) files of a specific format,
+	    with the intention that any project can easily be made into an
+	    IP library and folded into the open_pdks scheme with little effort.
+
+	    The project.json file contains project information that can be used
+	    by a script to build a setup for any EDA tool.  One goal of the
+	    project.json file is to define "datasheet" (documented elsewhere)
+	    that can be used to drive characterization simulations and create
+	    a datasheet for the project.  Field "ip-name" of "datasheet" is
+	    the canonical name of the project, which can be distinguished from
+	    the project directory top-level name, such that the project can be
+	    moved or copied without affecting the tool flows.
diff --git a/common/cdl2spi.py b/common/cdl2spi.py
new file mode 100755
index 0000000..02e3bb7
--- /dev/null
+++ b/common/cdl2spi.py
@@ -0,0 +1,969 @@
+#!/usr/bin/env python3
+"""
+cdl2spi.py : netlist processor
+Copyright (c) 2016, 2020 efabless Corporation.
+All rights reserved.
+
+usage: cdl2spi.py <inCDLfile> [<outSPCfile>] [options...]
+Writes to .spi to outSPCfile, or stdout if no output argument given. Sets exit
+status if there were non-zero errors.  Most errors/warnings are annotated in-line
+in the stdout each before the relevant line.
+"""
+
+import sys, getopt
+import os
+import re
+import textwrap
+
+# Convert linear scale to area scale suffix 
+# (e.g., if linear scale is 1e-6 ('u') then area scales as 1e-12 ('p'))
+
+def getAreaScale(dscale):
+    ascale = ''
+    if dscale == 'm':
+        ascale = 'u'
+    elif dscale == 'u':
+        ascale = 'p'
+    elif dscale == 'n':
+        ascale = 'a'
+    return ascale
+
+# Check nm (instanceName) in the context of sub (subckt): is it used yet?
+# If not used yet, mark it used, and return as-is.
+# Else generate a unique suffixed version, and mark it used, return it.
+# If 1M suffixes don't generate a unique name, throw exception.
+#   hasInm : global hash, key of hash is (subckt, iname)
+
+hasInm = {}
+def uniqInm(sub, nm):
+    subl=sub.lower()
+    nml=nm.lower()
+    if not (subl, nml) in hasInm:
+        hasInm[ (subl, nml) ] = 1
+        return nm
+    for i in range(1000000):
+        nm2 = nm + "_q" + str(i)
+        nm2l = nm2.lower()
+        if not (subl, nm2l) in hasInm:
+            hasInm[ (subl, nm2l) ] = 1
+            return nm2
+    # not caught anywhere, and gives (intended) non-zero exit status
+    raise AssertionError("uniqInm: range overflow for (%s,%s)" % (sub, nm))
+
+# Map illegal characters in an nm (instanceName) in context of sub (subckt).
+# For ngspice, '/' is illegal in instanceNames. Replace it with '|', BUT
+# then make sure the new name is still unique: does not collide with a name
+# used so far or another already derived unique name.
+
+inmBadChars='/'
+inmRplChars='|'
+inmBadCharREX=re.compile( "["+ inmBadChars+"]" )
+
+def mapInm(sub, nm):
+    nm2 = inmBadCharREX.sub(inmRplChars, nm)
+    return uniqInm(sub, nm2)
+
+# Process subckt line (array of tokens). Return new array of tokens.
+# There might be a ' /' in the line that needs to be deleted. It may be standalone ' / ', or
+# butting against the next token. It may be before all pins, after all pins, or between pins.
+# Do not touch / in a parameter assignment expression.
+# Do not touch / embedded in a pinName.
+# May touch / butting front of very first parameter assignment expression.
+# .subckt NM / p1 p2 p3 x=y g=h
+# .subckt NM /p1 p2 p3 x=y g=h
+# .subckt NM p1 p2 / p3 x=y g=h
+# .subckt NM p1 p2 /p3 x=y g=h
+# .subckt NM p1 p2 p3 / x=y g=h
+# .subckt NM p1 p2 p3 /x=y g=h
+# .subckt NM p1 p2 p3 x=y g=(a/b)     (don't touch this /)
+# .subckt NM p1 p2/3/4 p3 x=y g=(a/b) (don't touch these /)
+
+def mapSubcktDef(tok):
+    # find index of one-past first token (beyond ".subckt NM") containing an =, if any
+    param0 = len(tok)
+    for i in range(2, len(tok)):
+        if '=' in tok[i]:
+            param0 = i+1
+            break
+    # find first token before or including that 1st-param, starting with /:
+    #   strip the slash.
+    for i in range(2, param0):
+        if tok[i][0] == '/':
+            tok[i] = tok[i][1:]
+            if tok[i] == "":
+                del tok[i]
+            break
+    return tok
+
+def test_mapSubcktInst1():
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 p3".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc / p1 p2 p3".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc /p1 p2 p3".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 /p3".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 / p3".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 p3 x=4 /y=5".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 p3 x=4/2 y=5".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 p3 / x=4/2 y=5".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 p3 x=4/2 /y=5".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1 p2 p3 /x=4/2 y=5".split())))
+    print( " ".join(mapSubcktDef( ".subckt abc p1/2/3 p2 p3 /x=4/2 y=5".split())))
+
+# Process subckt instance line (array of tokens). Return new array of tokens.
+# (This function does not map possible illegal-chars in instanceName).
+# There might be a ' /' in the line that needs to be deleted. It may be standalone ' / ', or
+# butting against the next token. It can only be after pins, before or butting subcktName.
+#
+# Do not touch / in, butting, or after 1st parameter assignment expression.
+# Do not touch / embedded in a netName.
+# Do not touch / embedded in instanceName (they are handled separately elsewhere).
+# xa/b/c p1 p2 p3 / NM x=y g=h
+# xa/b/c p1 p2 p3 /NM x=y g=h
+# xabc p1 p2/3/4 p3 /NM x=(a/b) g=h
+# xabc p1 p2/3/4 p3 / NM x=(a/b) g=h
+# xabc p1 p2/3/4 p3 NM x=(a/b) / g=h    (don't touch; perhaps needs to be an error trapped somewhere)
+# xabc p1 p2/3/4 p3 NM / x=(a/b) g=h    (don't touch; perhaps needs to be an error trapped somewhere)
+# xa/b/c p1 p2/3/4 p3 NM x=(a/b) g=h    (don't touch these /)
+
+def mapSubcktInst(tok):
+    # find index of first token (beyond "x<iname>") containing an =, if any
+    param0 = tlen = len(tok)
+    for i in range(1, tlen):
+        if '=' in tok[i]:
+            param0 = i
+            break
+    # Determine modelName index. Either just prior to 1st-param (if any) else last token.
+    modndx = tlen - 1
+    if param0 < tlen:
+        modndx = param0 - 1;
+    # If modndx now points to a standalone /, that can't be (would yield missing/empty modelName).
+    # Actual modelName must be before it. We need to check, possibly strip / on/before actual modelName.
+    # (Even though standlone / after model are most likely an independent error: we don't touch 'em).
+    while modndx > 1 and tok[modndx] == "/":
+        modndx-=1
+    # Check for standalone / before modelName. Else for modelName starting with /.
+    slashndx = modndx - 1
+    if slashndx > 0 and tok[slashndx] == "/":
+        del tok[slashndx]
+    else:
+        if modndx > 0 and tok[modndx].startswith("/"):
+            tok[modndx] = tok[modndx][1:]
+    return tok
+
+def test_mapSubcktInst2():
+    print( " ".join(mapSubcktInst( "xa/b/c p1 p2 p3 / NM x=y g=h".split())))
+    print( " ".join(mapSubcktInst( "xa/b/c p1 p2 p3 /NM x=y g=h".split())))
+    print( " ".join(mapSubcktInst( "xabc p1 p2/3/4 p3 /NM x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xabc p1 p2/3/4 p3 / NM x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xabc p1 p2/3/4 p3 NM x=(a/b) / g=h".split())))
+    print( " ".join(mapSubcktInst( "xabc p1 p2/3/4 p3 NM / x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xabc p1 p2/3/4 p3 /NM / x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xabc p1 p2/3/4 p3 / NM / x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xa/b/c p1 p2/3/4 p3 NM x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xa/b/c NM x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xa/b/c / NM x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xa/b/c /NM x=(a/b) g=h".split())))
+    print( " ".join(mapSubcktInst( "xa/b/c /NM".split())))
+
+# Primitives with M=<n> need to add additional par1=<n>.
+# Process token list, return new token list.
+# note: line at this point may be like: m... p1 p2 p3 p4 NMOS M=1 $blah W=... L=...
+# meaning M=1 is not necessarily in a block of all parameter-assignments at EOL.
+# But by processing the line from end backwards, we pick up LAST M= if there are
+# multiple (which condition really should  get flagged as an error).
+# And M= is more likely towards end of the line than front of line (thus faster).
+# If "M=" with no value, do nothing (should also be a flagged error).
+
+def mapMfactor(tok, options={}):
+    # find index of M=* if any, starting from end.
+    # "addinm" is an additional parameter that takes the same argument as M
+    addinm = options['addinm'] if 'addinm' in options else []
+    mndx = 0
+    val = ""
+    for i in range(len(tok)-1, 0, -1):
+        if tok[i].lower().startswith("m="):
+            mndx = i
+            break
+    if mndx > 0:
+        val = tok[i][2:]
+    if val != "":
+        for p in addinm:
+            tok += [ addinm + val]
+    return tok
+
+def test_mapMfactor():
+    print( " ".join(mapMfactor( "m1 p1 p2 p3 p4 NM M=joe".split())))
+    print( " ".join(mapMfactor( "m1 p1 p2 p3 p4 NM M= $SUB=agnd".split())))
+    print( " ".join(mapMfactor( "m1 p1 p2 p3 p4 NM M=2 $SUB=agnd WM=4".split())))
+    print( " ".join(mapMfactor( "m1 p1 p2 p3 p4 NM".split())))
+
+# From $nm=... strip the $. Preserve order on the line. No attempt to
+# detect any resultant collisions. "W=5 $W=10" becomes "W=5 W=10".
+# Don't touch $SUB=... or $[...] or $.model=... or $blah (no assigment).
+
+def mapCDLparam(tok):
+    for i in range(1, len(tok)):
+        if not tok[i].startswith("$"):
+            continue
+        eqi = tok[i].find("=")
+        if eqi > 1:
+            pnm = tok[i][1:eqi]
+            pnml = pnm.lower()
+            if pnml in ("sub",".model"):
+                continue
+            tok[i] = tok[i][1:]
+    return tok
+
+def test_CDLparam():
+    print( " ".join(mapCDLparam( "m1 p1 p2 p3 p4 NM M=joe".split())))
+    print( " ".join(mapCDLparam( "m1 p1 p2 p3 p4 NM M= $SUB=agnd $.model=NM3 $LDD".split())))
+    print( " ".join(mapCDLparam( "m1 p1 p2 p3 p4 NM M= $SUB=agnd $[NM3]".split())))
+    print( " ".join(mapCDLparam( "m1 p1 p2 p3 p4 NM M=joe $X=y".split())))
+    print( " ".join(mapCDLparam( "m1 p1 p2 p3 p4 NM M= $SUB=agnd $.model=NM3 $Z=4 $Z=5".split())))
+    print( " ".join(mapCDLparam( "m1 p1 p2 p3 p4 NM M= W=1 $W=2 W=3 $SUB=agnd $[NM3]".split())))
+
+# Extract $SUB=<tname>. and $[mnm] (or $.model=<mnm>) from tokens.
+# Return array of three items: [ <tname>, <mnm>, tok ] where tok is remainder.
+# Absent $SUB= or model directives give "".
+# Since we delete tokens, process tokens in reverse order.
+
+def mapCDLtermModel(tok):
+    cdlTerm=""
+    cdlModel=""
+    for i in range(len(tok)-1, 0, -1):
+        if not tok[i].startswith("$"):
+            continue
+        tokl = tok[i].lower()
+        if tokl.startswith("$sub="):
+            if cdlTerm == "":
+                cdlTerm = tok[i][5:]
+            del tok[i]
+            continue
+        if tokl.startswith("$.model="):
+            if cdlModel == "":
+                cdlModel = tok[i][8:]
+            del tok[i]
+            continue
+        if tokl.startswith("$[") and tokl.endswith("]"):
+            if cdlModel == "":
+                cdlModel = tok[i][2:-1]
+            del tok[i]
+            continue
+    return [ cdlTerm, cdlModel, tok ]
+
+def test_CDLtermModel():
+    print( mapCDLtermModel( "m1 p1 p2 p3 p4 NM M=joe".split()))
+    print( mapCDLtermModel( "m1 p1 p2 p3 p4 NM $SUB=agnd".split()))
+    print( mapCDLtermModel( "m1 p1 p2 p3 p4 NM $SUB= $[PMOS] M=joe".split()))
+    print( mapCDLtermModel( "m1 p1 p2 p3 p4 NM $sUb=vssa $.MoDeL=PM4 M=joe".split()))
+
+# Determine if a single word looks like a plain numeric spice value.
+# It means a real-number with optional scale suffix, and optional unit suffix.
+# Only unit-suffix we support is m (meters) (because CDL-std describes it).
+# Only scale factors supported are: t,g,meg,k,mil,m,u,n,p,f
+# This does not arithmetically compute anything.
+# Just returns True or False.
+# 220p 10nm -40g 2milm .34e+3 3.1e-4 .34e+3pm 3.1e-4meg
+# (Arguable we should strip a unit-suffix)?
+# def isPlainNumeric(word):
+
+# Segregate any remaining $* items from input tokens.
+# Return [ assignments, directives, remaining ] where each are lists.
+# Those that look like assigments $nm=... are separated from $blah.
+
+def mapDiscard(tok):
+    tlen = len(tok)
+    assign=[]
+    directive=[]
+    for i in range(len(tok)-1, 0, -1):
+        if not tok[i].startswith("$"):
+            continue
+        if "=" in tok[i]:
+            assign += [ tok[i] ]
+            del tok[i]
+            continue
+        directive += [ tok[i] ]
+        del tok[i]
+    return [ assign, directive, tok ]
+
+def test_mapDiscard():
+    print( mapDiscard( "m1 p1 p2 p3 p4 NM $X=4 $LDD M=joe $SUB=agnd ".split()))
+    print( mapDiscard( "m1 p1 p2 p3 p4 NM $X $LDD M=joe $SUB=agnd ".split()))
+    print( mapDiscard( "m1 p1 p2 p3 p4 NM M=joe SUB=agnd ".split()))
+
+# From a token-slice, partition into assignments and non-assignments.
+# Return [ assigns, nonAssigns] where each are lists.
+
+def mapPartAssign(tok):
+    tlen = len(tok)
+    assign=[]
+    nona=[]
+    for i in range(len(tok)):
+        if "=" in tok[i]:
+            assign += [ tok[i] ]
+            continue
+        nona += [ tok[i] ]
+    return [ assign, nona ]
+
+def test_mapPartAssign():
+    print( mapPartAssign( "NM X=4 220nm -1.2e-5g LDD M=joe".split()))
+    print( mapPartAssign( "X=4 M=joe".split()))
+    print( mapPartAssign( "NM 220nm -1.2e-5g LDD".split()))
+    print( mapPartAssign( "".split()))
+
+# Find an assignment to nm in the token list (nm=val).
+# Return [val, tok]. If edit is True, the nm=val is removed from return tok.
+# If multiple nm=... the last one is used. If del is True, all nm=... are removed.
+
+def mapLookup(tok, nm, edit):
+    tlen = len(tok)
+    val=""
+    nmeq = nm.lower() + "="
+    nmeqlen = len(nmeq)
+    for i in range(len(tok)-1, 0, -1):
+        if not tok[i].lower().startswith(nmeq):
+            continue
+        if val == "":
+            val = tok[i][nmeqlen:]
+        if edit:
+            del tok[i]
+    return [ val, tok ]
+
+def test_mapLookup():
+    print( mapLookup( "cnm t1 t2 area=220p PERimeter=100u M=joe par1=1".split(), "periMETER", True))
+    print( mapLookup( "m1 p1 p2 p3 p4 NM $X=4 $LDD M=joe $SUB=agnd ".split(), "x", True))
+    print( mapLookup( "m1 p1 p2 p3 p4 NM X=4 $LDD M=joe $SUB=agnd ".split(), "x", True))
+    print( mapLookup( "m1 p1 p2 p3 p4 NM x=4 $LDD M=joe $SUB=agnd ".split(), "x", True))
+    print( mapLookup( "m1 p1 p2 p3 p4 NM x=4 X=5 xy=6 $LDD M=joe $SUB=agnd ".split(), "x", True))
+    print( mapLookup( "m1 p1 p2 p3 p4 NM x=4 X=5 xy=6 $LDD M=joe $SUB=agnd ".split(), "x", False))
+
+# Format a diode. cdlTerm and cdlModel are passed in but ignored/unused.
+# Processes tok and returns a final token list to be output.
+# If after "dnm t1 t2 modelName ", there are plain numerics (index 4,5), take them as area and peri,
+# (override other area= peri= parameters), format them as area=... peri=...
+# (Caller already error checked the 1st minimum FOUR fields are there).
+
+def mapDiode(cdlTerm, cdlModel, tok, options={}):
+    ignore = options['ignore'] if 'ignore' in options else []
+    # strip remaining $* directives
+    [ ign, ign, tok ] = mapDiscard(tok)
+    # Find explicit area= peri=, remove from tok.
+    [area,  tok] = mapLookup(tok, "area",  True)
+    [peri, tok] = mapLookup(tok, "peri", True)
+    for p in ignore:
+        [ign, tok] = mapLookup(tok, p, True)
+    # For just token-slice after modelName, partition into assignments and non-assigns.
+    [assign, nona] = mapPartAssign(tok[4:])
+    tok = tok[0:4]
+    # TODO: If we have more than two non-assignments it should be an error?
+    # Override area/peri with 1st/2nd non-assigment values.
+    if len(nona) > 0:
+        area = nona.pop(0)
+    if len(nona) > 0:
+        peri = nona.pop(0)
+    if area != "":
+        tok += [ "area=" + area ]
+    if peri != "":
+        tok += [ "peri=" + peri ]
+    tok += nona
+    tok += assign
+    return tok
+
+def test_mapDiode():
+    print( mapDiode( "", "", "dnm t1 t2 DN 220p 100u M=joe par1=1".split()))
+    print( mapDiode( "", "", "dnm t1 t2 DN peri=100u area=220p M=joe par1=1".split()))
+    print( mapDiode( "", "", "dnm t1 t2 DN  M=joe par1=1".split()))
+
+# Format a mosfet. cdlTerm and cdlModel are passed in but ignored/unused.
+# Processes tok and returns a final token list to be output.
+# If after "mnm t1 t2 t3 t4 modelName ", there are plain numerics (index 6,7), take them as W and L,
+# (override other W= L= parameters), format them as W=... L=...
+# (Caller already error checked the 1st minimum SIX fields are there).
+
+def mapMos(cdlTerm, cdlModel, tok, options={}):
+    ignore = options['ignore'] if 'ignore' in options else []
+    # strip remaining $* directives
+    [ ign, ign, tok ] = mapDiscard(tok)
+    # Find explicit W= L=, remove from tok.
+    [w, tok] = mapLookup(tok, "w",  True)
+    [l, tok] = mapLookup(tok, "l", True)
+    for p in ignore:
+        [ign, tok] = mapLookup(tok, p, True)
+    # For scaling, find AS, PS, AD, PD, SA, SB, SC, and SD
+    [sarea, tok] = mapLookup(tok, "as",  True)
+    [darea, tok] = mapLookup(tok, "ad",  True)
+    [sperim, tok] = mapLookup(tok, "ps",  True)
+    [dperim, tok] = mapLookup(tok, "pd",  True)
+    [sa, tok] = mapLookup(tok, "sa",  True)
+    [sb, tok] = mapLookup(tok, "sb",  True)
+    [sd, tok] = mapLookup(tok, "sd",  True)
+
+    dscale = options['dscale'] if 'dscale' in options else ''
+    ascale = getAreaScale(dscale)
+
+    # For just token-slice after modelName, partition into assignments and non-assigns.
+    [assign, nona] = mapPartAssign(tok[6:])
+    tok = tok[0:6]
+    # TODO: If we have more than two non-assignments it should be an error?
+    # Override W/L with 1st/2nd non-assigment values.
+    if len(nona) > 0:
+        w = nona.pop(0)
+    if len(nona) > 0:
+        l = nona.pop(0)
+    if w != "":
+        tok += ["W=" + w + dscale]
+    if l != "":
+        tok += ["L=" + l + dscale]
+    if darea != "":
+        tok += ["AD=" + darea + ascale]
+    if sarea != "":
+        tok += ["AS=" + sarea + ascale]
+    if dperim != "":
+        tok += ["PD=" + dperim + dscale]
+    if sperim != "":
+        tok += ["PS=" + sperim + dscale]
+    if sa != "":
+        tok += ["SA=" + sa + dscale]
+    if sb != "":
+        tok += ["SB=" + sb + dscale]
+    if sd != "":
+        tok += ["SD=" + sd + dscale]
+    tok += nona
+    tok += assign
+    return tok
+
+def test_mapMos():
+    print( mapMos( "", "", "mnm t1 t2 t3 t4 NM 220p 100u M=joe par1=1".split()))
+    print( mapMos( "", "", "mnm t1 t2 t3 t4 NM L=100u W=220p M=joe par1=1".split()))
+    print( mapMos( "", "", "mnm t1 t2 t3 t4 PM M=joe par1=1".split()))
+
+# Format a cap.
+# Processes tok and returns a final token list to be output.
+# Optional cdlTerm adds a 3rd terminal.
+# If after "cnm t1 t2 ", there is plain numeric or C=numeric they are DISCARDED.
+# area/peri/perimeter assignments are respected. Both peri/perimeter assign to perm=
+# in the output. No perimeter= appears in the output.
+# (Caller already error checked the 1st minimum 3 fields are there; plus cdlModel is non-null).
+
+def mapCap(cdlTerm, cdlModel, tok, options={}):
+    ignore = options['ignore'] if 'ignore' in options else []
+    # strip remaining $* directives
+    [ ign, ign, tok ] = mapDiscard(tok)
+    # Find explicit area= peri= perimeter=, remove from tok. peri overwrites perimeter,
+    # both assign to perim. Lookup/discard a C=.
+    [area,  tok] = mapLookup(tok, "area",  True)
+    [perim,  tok] = mapLookup(tok, "perimeter", True)
+    [length,  tok] = mapLookup(tok, "l",  True)
+    [width,  tok] = mapLookup(tok, "w",  True)
+    [peri, tok] = mapLookup(tok, "peri", True)
+    if peri == "":
+        peri = perim
+    [ign, tok] = mapLookup(tok, "c", True)
+    for p in ignore:
+        [ign, tok] = mapLookup(tok, p, True)
+    # For just token-slice after modelName, partition into assignments and non-assigns.
+    # We ignore the nonassignments. Need remaining assignments for M= par1=.
+    [assign, nona] = mapPartAssign(tok[3:])
+    dscale = options['dscale'] if 'dscale' in options else ''
+    ascale = getAreaScale(dscale)
+    tok = tok[0:3]
+    if cdlTerm != "":
+        tok += [ cdlTerm ]
+    if cdlModel != "":
+        tok += [ cdlModel ]
+    if area != "":
+        tok += [ "area=" + area + ascale]
+    if peri != "":
+        tok += [ "peri=" + peri + dscale]
+    if length != "":
+        tok += [ "L=" + length + dscale]
+    if width != "":
+        tok += [ "W=" + width + dscale]
+    tok += assign
+    return tok
+
+def test_mapCap():
+    print( mapCap( "", "CPP", "cnm t1 t2 area=220p peri=100u M=joe par1=1".split()))
+    print( mapCap( "", "CPP", "cnm t1 t2 area=220p perimeter=100u M=joe par1=1".split()))
+    print( mapCap( "", "CPP", "cnm t1 t2 area=220p peri=199u perimeter=100u M=joe par1=1".split()))
+    print( mapCap( "", "CPP", "cnm t1 t2 M=joe par1=1".split()))
+    print( mapCap( "", "CPP", "cnm t1 t2 C=444 area=220p peri=199u perimeter=100u M=joe par1=1".split()))
+    print( mapCap( "", "CPP", "cnm t1 t2 444 M=joe par1=1".split()))
+    print( mapCap( "agnd", "CPP2", "cnm t1 t2 $LDD 220p M=joe par1=1".split()))
+
+# Format a res.
+# Processes tok and returns a final token list to be output.
+# Optional cdlTerm adds a 3rd terminal.
+# If after "rnm t1 t2 ", there is plain numeric or R=numeric they are DISCARDED.
+# W/L assignments are respected.
+# (Caller already error checked the 1st minimum 3 fields are there; plus cdlModel is non-null).
+
+def mapRes(cdlTerm, cdlModel, tok, options={}):
+    dscale = options['dscale'] if 'dscale' in options else ''
+    ignore = options['ignore'] if 'ignore' in options else []
+    # strip remaining $* directives
+    [ ign, ign, tok ] = mapDiscard(tok)
+    # Find explicit w/l, remove from tok.
+    # Lookup/discard a R=.
+    [w,  tok] = mapLookup(tok, "w",  True)
+    [l,  tok] = mapLookup(tok, "l", True)
+    [r, tok] = mapLookup(tok, "r", True)
+    for p in ignore:
+        [ign, tok] = mapLookup(tok, p, True)
+    # For just token-slice after modelName, partition into assignments and non-assigns.
+    # We ignore the nonassignments. Need remaining assignments for M= par1=.
+    [assign, nona] = mapPartAssign(tok[3:])
+    if len(nona) > 0:
+        r = nona.pop(0)
+    tok = tok[0:3]
+    if cdlTerm != "":
+        tok += [ cdlTerm ]
+    if cdlModel != "":
+        tok += [ cdlModel ]
+    if w != "":
+        tok += [ "W=" + w + dscale]
+    if l != "":
+        tok += [ "L=" + l + dscale]
+    # Convert name "short" to zero resistance
+    if r == "short":
+        tok += [ "0" ]
+    tok += assign
+    return tok
+
+def test_mapRes():
+    print( mapRes( "", "RPP1", "rnm t1 t2 w=2 L=1 M=joe par1=1".split()))
+    print( mapRes( "", "RPP1", "rnm t1 t2 444 w=2 L=1 M=joe par1=1".split()))
+    print( mapRes( "", "RPP1", "rnm t1 t2 R=444 w=2 L=1 M=joe par1=1".split()))
+    print( mapRes( "", "R2", "rnm t1 t2 L=2 W=10 M=joe par1=1".split()))
+    print( mapRes( "", "RM2", "rnm t1 t2 area=220p perim=199u perimeter=100u M=joe par1=1".split()))
+    print( mapRes( "", "RM2", "rnm t1 t2 M=joe par1=1".split()))
+    print( mapRes( "agnd", "RM3", "rnm t1 t2 $LDD 220p M=joe par1=1".split()))
+    print( mapRes( "agnd", "RM3", "rnm t1 t2 $LDD 220p L=4 W=12 M=joe par1=1".split()))
+
+# Format a bipolar. cdlTerm is optional. cdlModel is ignored.
+# Processes tok and returns a final token list to be output.
+# Optional cdlTerm adds an optional 4th terminal.
+# If after "qnm t1 t2 t3 model", there are plain numeric (not x=y) they are DISCARDED.
+# (Caller already error checked the 1st minimum 5 fields are there; plus cdlModel is null).
+
+def mapBipolar(cdlTerm, cdlModel, tok, options={}):
+    # strip remaining $* directives
+    ignore = options['ignore'] if 'ignore' in options else []
+    [ ign, ign, tok ] = mapDiscard(tok)
+    for p in ignore:
+        [ign, tok] = mapLookup(tok, p, True)
+    # For just token-slice after modelName, partition into assignments and non-assigns.
+    # We ignore the nonassignments. Need remaining assignments for M= par1=.
+    [assign, nona] = mapPartAssign(tok[5:])
+    # Start with "qnm t1 t2 t3". Insert optional 4th term. Then insert modelName.
+    model = tok[4]
+    tok = tok[0:4]
+    if cdlTerm != "":
+        tok += [ cdlTerm ]
+    tok += [ model ]
+    tok += assign
+    return tok
+
+def test_mapBipolar():
+    print( mapBipolar( "", "any", "qnm t1 t2 t3 QP1 M=joe par1=1".split()))
+    print( mapBipolar( "", "", "qnm t1 t2 t3 QP2 M=joe par1=1".split()))
+    print( mapBipolar( "", "", "qnm t1 t2 t3 QP2 $EA=12 M=joe par1=1".split()))
+    print( mapBipolar( "", "", "qnm t1 t2 t3 QP3 M=joe EA=14 par1=1".split()))
+    print( mapBipolar( "agnd", "", "qnm t1 t2 t3 QP4 $LDD 220p M=joe par1=1".split()))
+    print( mapBipolar( "agnd", "any", "qnm t1 t2 t3 QP4 $LDD 220p L=4 W=12 M=joe par1=1".split()))
+
+#------------------------------------------------------------------------
+# Main routine to do the conversion from CDL format to SPICE format
+#------------------------------------------------------------------------
+
+def cdl2spice(fnmIn, fnmOut, options):
+
+    err = 0
+    warn = 0
+
+    # Open and read input file
+
+    try:
+        with open(fnmIn, 'r') as inFile:
+            cdltext = inFile.read()
+            # Unwrap continuation lines
+            lines = cdltext.replace('\n+', ' ').splitlines()
+    except:
+        print('cdl2spi.py: failed to open ' + fnmIn + ' for reading.', file=sys.stderr)
+        return 1
+
+    # Loop over original CDL:
+    #   record existing instanceNames (in subckt-context), for efficient membership
+    #   tests later.  Track the subckt-context, instanceNames only need to be unique
+    #   within current subckt.
+
+    sub = ""
+    for i in lines:
+        if i == "":
+            continue
+        tok = i.split()
+        tlen = len(tok)
+        if tlen == 0:
+            continue
+        t0 = tok[0].lower()
+        if t0 == '.subckt' and tlen > 1:
+            sub = tok[1].lower()
+            continue
+        if t0 == '.ends':
+            sub = ""
+            continue
+        c0 = tok[0][0].lower()
+        if c0 in '.*':
+            continue
+        # this will ignore primitive-devices (jfet) we don't support.
+        # TODO: flag them somewhere else as an ERROR.
+        if not c0 in primch2:
+            continue
+        # a primitive-device or subckt-instance we care about and support
+        # For subckt-instances record the instanceName MINUS lead x.
+        nm = tok[0]
+        if c0 == 'x':
+            nm = nm[1:]
+        hasInm[ (sub, nm) ] = 1
+
+
+    # loop over original CDL: do conversions.
+    # Track the subckt-context while we go; instanceNames only need to be unique
+    # within current subckt.
+
+    sub = ""
+    tmp = []
+    for i in lines:
+        tok = i.split()
+        tlen = len(tok)
+        # AS-IS: empty line or all (preserved) whitespace
+        if tlen == 0:
+            tmp += [ i ]
+            continue
+
+        # get 1st-token original, as lowercase, and 1st-char of 1st-token lowercase.
+        T0 = tok[0]
+        t0 = T0.lower()
+        c0 = t0[0]
+
+        # AS-IS: comment
+        if c0 == '*':
+            tmp += [i]
+            continue
+
+        # AS-IS: .ends; update subckt-context to outside-of-a-subckt
+        if t0 == '.ends':
+            sub = ""
+            tmp += [i]
+            continue
+
+        # change .param to a comment, output it
+        if t0 == '.param':
+            tmp += ["*"+i]
+            continue
+
+        # track .subckt context; process / in .subckt line, and output it.
+        if t0 == '.subckt':
+            if tlen < 2:
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Missing subckt name:"
+                tmp += [ msg, i ]
+                continue
+            T1 = tok[1]
+            sub = T1.lower()
+            tok = mapSubcktDef(tok)
+            tmp += [ " ".join(tok) ]
+            continue
+
+        # subckt instance line. Process /, map instanceName (exclude x), and output it.
+        if c0 == 'x':
+            nm = T0[1:]
+            if nm == "":
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Missing subckt instance name:"
+                tmp += [ msg, i ]
+                continue
+            inm = mapInm(sub, nm)
+            tok[0] = T0[0] + inm
+            tok = mapSubcktInst(tok)
+            tmp += [ " ".join(tok) ]
+            continue
+
+        # all primitives: need instanceName mapped, including 1st char in name.
+        # all primitives: need M=n copied to an added par1=n
+        # all primitives: Except for $SUB=... $[...] strip $ from $nm=... parameters.
+        # all primitives: Isolate $SUB and $[...] for further processing (in
+        # primitive-specific sections).
+
+        cdlTerm=""
+        cdlModel=""
+        if c0 in primch:
+            nm = T0[1:]
+            if nm == "":
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Missing primitive instance name:"
+                tmp += [ msg, i ]
+                continue
+            nm = T0
+            nm = mapInm(sub, nm)
+            tok[0] = nm
+            tok = mapMfactor(tok, options)
+            tok = mapCDLparam(tok)
+            [cdlTerm, cdlModel, tok] = mapCDLtermModel(tok)
+
+        # diode formats:
+        #   dname t1 t2 model <numericA> <numericP> m=...
+        # l:dname t1 t2 model {<numericA>} {<numericP>} {m=...} {$SUB=...}
+        # out format:
+        #   Xdname t1 t2 model area=<numericA> peri=<numericP> m=... par1=...
+        # We flag $SUB=... : because so far (for XFAB) we CHOOSE not to support three
+        # terminal diodes.
+        # CDL-std does not define $[...] as available for diodes, so we silently ignore
+        # it.
+        # Always 2 terminals and a modelName. 
+        # We already have peri=... and area=... and have ambiguity with plain numerics.
+        # TODO: generate a warning in case of ambiguity, but prefer plain numerics
+        # (with nm= added).
+
+        if c0 == "d":
+            tlen = len(tok)
+            if tlen < 4:
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Diode does not have minimum two terminals and model:"
+                tmp += [ msg, i ]
+                continue
+            if cdlTerm != "":
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Diode does not support $SUB=...:"
+                tmp += [ msg, i ]
+                continue
+            tok = mapDiode(cdlTerm, cdlModel, tok, options)
+            # add X to tok0.
+            if options['subckt']:
+                tok[0] = "X" + tok[0]
+            tmp += [ " ".join(tok) ]
+            continue
+
+        # mosfet formats:
+        #   mname t1 t2 t3 t4 model W=... L=... m=...
+        # l:mname t1 t2 t3 t4 model {W=... L=...} {m=...} {$NONSWAP} {$LDD[type]}
+        # l:mname t1 t2 t3 t4 model <width> <length> {m=...} {$NONSWAP} {$LDD[type]}
+        # output format:
+        #   Xmname t1 t2 t3 t4 model W=... L=... m=... par1=...
+        # Fixed 4 terminals and a modelName.
+        # May already have W= L= and ambiguity with plain numerics.
+        # TODO: generate a warning in case of ambiguity, but prefer plain numerics
+        # (with nm= added).
+        if c0 == "m":
+            tlen = len(tok)
+            if tlen < 6:
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Mosfet does not have minimum four terminals and model:"
+                tmp += [ msg, i ]
+                continue
+            if cdlTerm != "":
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Mosfet does not support $SUB=...:"
+                tmp += [ msg, i ]
+                continue
+            tok = mapMos(cdlTerm, cdlModel, tok, options)
+            # add X to tok0.
+            if options['subckt']:
+                tok[0] = "X" + tok[0]
+            tmp += [ " ".join(tok) ]
+            continue
+
+        # cap formats:
+        #  cname t1 t2   <numeric0> $[model] $SUB=t3 m=...
+        #  cname t1 t2   <numeric0> $[model] m=...
+        #? cname t1 t2 C=<numeric0> $[model] $SUB=t3 m=...
+        #? cname t1 t2   <numeric0> $[model] $SUB=t3 area=<numericA> perimeter=<numericP> m=...
+        #? cname t1 t2   <numeric0> $[model] $SUB=t3 area=<numericA> peri=<numericP> m=...
+        #l:cname t1 t2  {<numeric0>} {$[model]} {$SUB=t3} {m=...}
+        # out formats:
+        #  Xcname t1 t2    model area=<numericA> peri=<numericP> m=... par1=...
+        #  Xcname t1 t2 t3 model area=<numericA> peri=<numericP> m=... par1=...
+        # We require inm, two terminals. Require $[model]. Optional 3rd-term $SUB=...
+        # If both peri and perimeter, peri overrides.
+        # Both area/peri are optional. The optional [C=]numeric0 is discarded always.
+
+        if c0 == "c":
+            tlen = len(tok)
+            if tlen < 3:
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Cap does not have minimum two terminals:"
+                tmp += [ msg, i ]
+                continue
+            if cdlModel == "":
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Cap missing required $[<model>] directive:"
+                tmp += [ msg, i ]
+                continue
+            tok = mapCap(cdlTerm, cdlModel, tok, options)
+            # add X to tok0.
+            if options['subckt']:
+                tok[0] = "X" + tok[0]
+            tmp += [ " ".join(tok) ]
+            continue
+
+        # res formats:
+        #   rname n1 n2   <numeric> $SUB=t3 $[model] $w=... $l=... m=...
+        # c:rname n1 n2 R=<numeric> $[model] w=... l=... m=... $SUB=t3 
+        # l:rname n1 n2   {<numeric>} {$SUB=t3} {$[model]} {$w=...} {$l=...} {m=...}
+        #  (all after n1,n2 optional)
+        #    We require $[model]. And add 3rd term IFF $SUB=.
+        # out format:
+        #   Xrname n1 n2 t3 model w=... l=... m=... par1=...
+        if c0 == "r":
+            tlen = len(tok)
+            if tlen < 3:
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Res does not have minimum two terminals:"
+                tmp += [ msg, i ]
+                continue
+            if cdlModel == "":
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Res missing required $[<model>] directive:"
+                tmp += [ msg, i ]
+                continue
+            tok = mapRes(cdlTerm, cdlModel, tok, options)
+            # add X to tok0.
+            if options['subckt']:
+                tok[0] = "X" + tok[0]
+            tmp += [ " ".join(tok) ]
+            continue
+
+        # bipolar formats:
+        #   qname n1 n2 n3 model <numeric> M=... $EA=...
+        #   qname n1 n2 n3 model $EA=... <numeric> M=... 
+        #   qname n1 n2 n3 model {$EA=...} {$W=...} {$L=...} {$SUB=...} {M=...}
+        # No: l:qname n1 n2 n3 {nsub} model {$EA=...} {$W=...} {$L=...} {$SUB=...} {M=...}
+        #   CDL-std adds {nsub} way to add substrate before model: We don't support it.
+        #   Add 3rd term IFF $SUB=. We propagate optional W/L (or derived from $W/$L).
+        #   EA is emitterSize; not supported by XFAB: deleted.
+        #   We require 3-terminals and model. It is an error to specify $[model].
+        #
+        # out format:
+        #   Xqname n1 n2 n3 model M=... par1=...
+        if c0 == "q":
+            tlen = len(tok)
+            if tlen < 5:
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Bipolar does not have minimum three terminals and a model:"
+                tmp += [ msg, i ]
+                continue
+            if cdlModel != "":
+                err+=1
+                msg = "*cdl2spi.py: ERROR: Bipolar does not support $[<model>] directive:"
+                tmp += [ msg, i ]
+                continue
+            tok = mapBipolar(cdlTerm, cdlModel, tok, options)
+            # add X to tok0.
+            if options['subckt']:
+                tok[0] = "X" + tok[0]
+            tmp += [ " ".join(tok) ]
+            continue
+
+        # Anything else. What to do, preserve AS-IS with warning, or 
+        # flag them as ERRORs?
+        tmp += [ "*cdl2spi.py: ERROR: unrecognized line:", i ]
+        err+=1
+        # tmp += [ "*cdl2spi.py: WARNING: unrecognized line:", " ".join(tok) ]
+        # tmp += [ "*cdl2spi.py: WARNING: unrecognized line:", i ]
+        # warn+=1
+
+    # Re-wrap continuation lines at 80 characters
+    lines = []
+    for line in tmp:
+        lines.append('\n+ '.join(textwrap.wrap(line, 80)))
+
+    # Write output
+
+    if fnmOut == sys.stdout:
+        for i in lines:
+            print(i)
+    else:
+        try:
+            with open(fnmOut, 'w') as outFile:
+                for i in lines:
+                    print(i, file=outFile)
+        except:
+            print('cdl2spi.py: failed to open ' + fnmOut + ' for writing.', file=sys.stderr)
+            return 1
+
+    # exit status: indicates if there were errors.
+    print( "*cdl2spi.py: %d errors, %d warnings" % (err, warn))
+    return err
+
+if __name__ == '__main__':
+
+    options = {}
+
+    # Set option defaults
+    options['debug'] = False
+    options['subckt'] = False
+    options['dscale'] = ''
+    options['addinm'] = []
+    options['ignore'] = []
+
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            thisopt = item.split('=')
+            optname = thisopt[0][1:]
+            optval = '='.join(thisopt[1:])
+            if not optname in options:
+                print('Unknown option -' + optname + '; ignoring.')
+            else:
+                lastoptval = options[optname]
+                if len(thisopt) == 1:
+                    options[optname] = True
+                elif lastoptval == '':
+                    options[optname] = optval
+                else:
+                    options[optname].append(optval)
+        else:
+            arguments.append(item)
+
+    # Supported primitive devices (FET, diode, resistor, capacitor, bipolar)
+    primch  = 'mdrcq'
+    primch2 = 'mdrcqx'
+
+    if len(arguments) > 0:
+        fnmIn = arguments[0]
+
+    if len(arguments) > 1:
+        fnmOut = arguments[1]
+    else:
+        fnmOut = sys.stdout
+
+    if options['debug']:
+        test_mapSubcktInst1()
+        test_mapSubcktInst2()
+        test_mapMfactor()
+        test_CDLparam()
+        test_CDLtermModel()
+        test_mapDiscard()
+        test_mapPartAssign()
+        test_mapLookup()
+        test_mapDiode()
+        test_mapMos()
+        test_mapCap()
+        test_mapRes()
+        test_mapBipolar()
+
+    elif len(arguments) > 2 or len(arguments) < 1 :
+        print('Usage: cdl2spi.py <cdlFileName> [<spiFileName>]')
+        print('   Options:' )
+        print('       -debug              run debug tests')
+        print('       -dscale=<suffix>    rescale lengths with <suffix>')
+        print('       -addinm=<param>     add multiplier parameter <param>')
+        print('       -ignore=<param>     ignore parameter <param>')
+        print('       -subckt             convert primitive devices to subcircuits')
+        sys.exit(1)
+
+    else:
+        if options['debug'] == True:
+            print('Diagnostic:  options = ' + str(options))
+        result = cdl2spice(fnmIn, fnmOut, options)
+        sys.exit(result)
+
diff --git a/common/change_gds_date.py b/common/change_gds_date.py
new file mode 100755
index 0000000..0aa0056
--- /dev/null
+++ b/common/change_gds_date.py
@@ -0,0 +1,142 @@
+#!/bin/env python3
+# Script to read a GDS file, modify the timestamp(s), and rewrite the GDS file.
+
+import os
+import sys
+import datetime
+
+def usage():
+    print('change_gds_date.py <create_stamp> <mod_stamp> <path_to_gds_in> [<path_to_gds_out>]')
+
+if __name__ == '__main__':
+    debug = False
+
+    if len(sys.argv) == 1:
+        print("No options given to change_gds_date.py.")
+        usage()
+        sys.exit(0)
+
+    optionlist = []
+    arguments = []
+
+    for option in sys.argv[1:]:
+        if option.find('-', 0) == 0:
+            optionlist.append(option)
+        else:
+            arguments.append(option)
+
+    if len(arguments) < 3 or len(arguments) > 4:
+        print("Wrong number of arguments given to change_gds_date.py.")
+        usage()
+        sys.exit(0)
+
+    if '-debug' in optionlist:
+        debug = True
+
+    createstamp = arguments[0]
+    modstamp = arguments[1]
+    source = arguments[2]
+
+    # If modstamp is zero or negative, then set the modification timestamp
+    # to be the same as the creation timestamp.
+    try:
+        if int(modstamp) <= 0:
+            modstamp = createstamp
+    except:
+        pass
+
+    # If only three arguments are provided, then overwrite the source file.
+    if len(arguments) == 4:
+        dest = arguments[3]
+    else:
+        dest = arguments[2]
+
+    sourcedir = os.path.split(source)[0]
+    gdsinfile = os.path.split(source)[1]
+
+    destdir = os.path.split(dest)[0]
+    gdsoutfile = os.path.split(dest)[1]
+
+    with open(source, 'rb') as ifile:
+        gdsdata = ifile.read()
+
+    # Generate 12-byte modification timestamp data from date.
+    try:
+        modtime = datetime.datetime.fromtimestamp(int(modstamp))
+    except:
+        modtime = datetime.datetime.strptime(modstamp, "%m/%d/%Y %H:%M:%S")
+
+    modyear = modtime.year - 1900
+
+    year = modyear.to_bytes(2, byteorder='big')
+    month = modtime.month.to_bytes(2, byteorder='big')
+    day = modtime.day.to_bytes(2, byteorder='big')
+    hour = modtime.hour.to_bytes(2, byteorder='big')
+    minute = modtime.minute.to_bytes(2, byteorder='big')
+    second = modtime.second.to_bytes(2, byteorder='big')
+
+    gdsmodstamp = year + month + day + hour + minute + second
+
+    # Generate 12-byte creation timestamp data from date.
+    try:
+        createtime = datetime.datetime.fromtimestamp(int(createstamp))
+    except:
+        createtime = datetime.datetime.strptime(createstamp, "%m/%d/%Y %H:%M:%S")
+
+    createyear = createtime.year - 1900
+
+    year = createyear.to_bytes(2, byteorder='big')
+    month = createtime.month.to_bytes(2, byteorder='big')
+    day = createtime.day.to_bytes(2, byteorder='big')
+    hour = createtime.hour.to_bytes(2, byteorder='big')
+    minute = createtime.minute.to_bytes(2, byteorder='big')
+    second = createtime.second.to_bytes(2, byteorder='big')
+
+    gdscreatestamp = year + month + day + hour + minute + second
+
+    # To be done:  Allow the user to select which datestamps to change
+    # (library or structure).  Otherwise, apply the same datestamps to both.
+
+    recordtypes = ['beginstr', 'beginlib']
+    recordfilter = [5, 1]
+
+    datalen = len(gdsdata)
+    dataptr = 0
+    while dataptr < datalen:
+        # Read stream records up to any string, then search for search text.
+        bheader = gdsdata[dataptr:dataptr + 2]
+        reclen = int.from_bytes(bheader, 'big')
+        if reclen == 0:
+            print('Error: found zero-length record at position ' + str(dataptr))
+            break
+
+        rectype = gdsdata[dataptr + 2]
+        datatype = gdsdata[dataptr + 3]
+
+        brectype = rectype.to_bytes(1, byteorder='big')
+        bdatatype = datatype.to_bytes(1, byteorder='big')
+
+        if rectype in recordfilter:
+            # Datatype should be 2
+            if datatype != 2:
+                print('Error:  Header data type is not 2-byte integer!')
+            if reclen != 28:
+                print('Error:  Header record length is not 28!')
+            if debug:
+                print('Record type = ' + str(rectype) + ' data type = ' + str(datatype) + ' length = ' + str(reclen))
+
+            before = gdsdata[0:dataptr]
+            after = gdsdata[dataptr + reclen:]
+
+            # Assemble the new record
+            newrecord = bheader + brectype + bdatatype + gdscreatestamp + gdsmodstamp
+            # Reassemble the GDS data around the new record
+            gdsdata = before + newrecord + after
+
+        # Advance the pointer past the data
+        dataptr += reclen
+
+    with open(dest, 'wb') as ofile:
+        ofile.write(gdsdata)
+
+    exit(0)
diff --git a/common/change_gds_string.py b/common/change_gds_string.py
new file mode 100755
index 0000000..b8a0321
--- /dev/null
+++ b/common/change_gds_string.py
@@ -0,0 +1,127 @@
+#!/bin/env python3
+# Script to read a GDS file, modify the given string, and rewrite the GDS file.
+# The string may be a substring;  the GDS file will be parsed completely for
+# library name, structure name, instance name, and other strings, and the
+# replacement made everywhere it occurs, finding the bounds of the entire
+# string around the search text, and adjusting the record bounds accordingly.
+
+import os
+import sys
+
+def usage():
+    print('change_gds_string.py <old_string> <new_string> <path_to_gds_in> [<path_to_gds_out>]')
+
+if __name__ == '__main__':
+    debug = False
+
+    if len(sys.argv) == 1:
+        print("No options given to change_gds_string.py.")
+        usage()
+        sys.exit(0)
+
+    optionlist = []
+    arguments = []
+
+    for option in sys.argv[1:]:
+        if option.find('-', 0) == 0:
+            optionlist.append(option)
+        else:
+            arguments.append(option)
+
+    if len(arguments) < 3 or len(arguments) > 4:
+        print("Wrong number of arguments given to change_gds_string.py.")
+        usage()
+        sys.exit(0)
+
+    if '-debug' in optionlist:
+        debug = True
+
+    oldstring = arguments[0]
+    newstring = arguments[1]
+    source = arguments[2]
+
+    # If only three arguments are provided, then overwrite the source file.
+    if len(arguments) == 4:
+        dest = arguments[3]
+    else:
+        dest = arguments[2]
+
+    sourcedir = os.path.split(source)[0]
+    gdsinfile = os.path.split(source)[1]
+
+    destdir = os.path.split(dest)[0]
+    gdsoutfile = os.path.split(dest)[1]
+
+    with open(source, 'rb') as ifile:
+        gdsdata = ifile.read()
+
+    # To be done:  Allow the user to select a specific record type or types
+    # in which to restrict the string substitution.  If no restrictions are
+    # specified, then substitue in library name, structure name, and strings.
+
+    recordtypes = ['libname', 'strname', 'sname', 'string']
+    recordfilter = [2, 6, 18, 25]
+    bsearch = bytes(oldstring, 'ascii')
+    brep = bytes(newstring, 'ascii')
+
+    datalen = len(gdsdata)
+    if debug:
+        print('Original data length = ' + str(datalen))
+    dataptr = 0
+    while dataptr < datalen:
+        # Read stream records up to any string, then search for search text.
+        bheader = gdsdata[dataptr:dataptr + 2]
+        reclen = int.from_bytes(bheader, 'big')
+        newlen = reclen
+        if newlen == 0:
+            print('Error: found zero-length record at position ' + str(dataptr))
+            break
+
+        rectype = gdsdata[dataptr + 2]
+        datatype = gdsdata[dataptr + 3]
+
+        if rectype in recordfilter:
+            # Datatype 6 is STRING
+            if datatype == 6:
+                if debug:
+                    print('Record type = ' + str(rectype) + ' data type = ' + str(datatype) + ' length = ' + str(reclen))
+
+                bstring = gdsdata[dataptr + 4: dataptr + reclen]
+                repstring = bstring.replace(bsearch, brep)
+                if repstring != bstring:
+                    before = gdsdata[0:dataptr]
+                    after = gdsdata[dataptr + reclen:]
+                    newlen = len(repstring) + 4
+                    # Record sizes must be even
+                    if newlen % 2 != 0:
+                        # Was original string padded with null byte?  If so,
+                        # remove the null byte and reduce newlen.  Otherwise,
+                        # add a null byte and increase newlen.
+                        if bstring[-1] == 0:
+                            repstring = repstring[0:-1]
+                            newlen -= 1
+                        else:
+                            repstring += b'\x00'
+                            newlen += 1
+                            
+                    bnewlen = newlen.to_bytes(2, byteorder='big')
+                    brectype = rectype.to_bytes(1, byteorder='big')
+                    bdatatype = datatype.to_bytes(1, byteorder='big')
+
+                    # Assemble the new record
+                    newrecord = bnewlen + brectype + bdatatype + repstring
+                    # Reassemble the GDS data around the new record
+                    gdsdata = before + newrecord[0:newlen] + after
+                    # Adjust the data end location
+                    datalen += (newlen - reclen)
+
+                    if debug:
+                        print('Replaced ' + str(bstring) + ' with ' + str(repstring)) 
+
+        # Advance the pointer past the data
+        dataptr += newlen
+
+    with open(dest, 'wb') as ofile:
+        ofile.write(gdsdata)
+
+    exit(0)
diff --git a/common/changepath.py b/common/changepath.py
new file mode 100755
index 0000000..3ebd38c
--- /dev/null
+++ b/common/changepath.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python3
+#
+# changepath.py:  Look up all .mag files in maglef paths from the root
+# PDK directory given as the first argument, and replace them with the
+# path that is given as the second argument.
+#
+# The purpose of this script is to prepare a technology for relocation.
+# This script may be expanded to take care of all relocation issues.
+# For now, only the property "GDS_FILE" in each .mag file is modified.
+#
+# Usage, e.g.:
+#
+# changepath.py /home/tim/projects/efabless/tech/XFAB/EFXH035B/libs.ref/mag/D_CELLS /ef/tech/XFAB/EFXH035B/libs.ref/mag/D_CELLS
+
+import os
+import re
+import sys
+import glob
+
+def usage():
+    print("changepath.py <orig_path_to_dir> <target_path_to_dir>")
+    return 0
+
+if __name__ == '__main__':
+
+    if len(sys.argv) == 1:
+        usage()
+        sys.exit(0)
+
+    optionlist = []
+    arguments = []
+
+    for option in sys.argv[1:]:
+        if option.find('-', 0) == 0:
+            optionlist.append(option)
+        else:
+            arguments.append(option)
+
+    if len(arguments) != 2:
+        print("Wrong number of arguments given to changepath.py.")
+        usage()
+        sys.exit(0)
+
+    source = arguments[0]
+    target = arguments[1]
+
+    gdssource = source.replace('/mag/', '/gds/')
+    gdssource = gdssource.replace('/maglef/', '/gds/')
+    gdstarget = target.replace('/mag/', '/gds/')
+    gdstarget = gdstarget.replace('/maglef/', '/gds/')
+
+    magpath = source + '/*.mag'
+    sourcefiles = glob.glob(magpath)
+
+    if len(sourcefiles) == 0:
+        print("Warning:  No files were found in the path " + magpath + ".")
+
+    for file in sourcefiles:
+        # print("Converting file " + file)
+        with open(file, 'r') as ifile:
+            magtext = ifile.read().splitlines() 
+
+        proprex = re.compile('string[ \t]+GDS_FILE[ \t]+([^ \t]+)')
+        with open(file, 'w') as ofile:
+            for line in magtext:
+                pmatch = proprex.match(line)
+                if pmatch:
+                    filepath = pmatch.group(1)
+                    if filepath.startswith(gdssource):
+                        print('string GDS_FILE ' + filepath.replace(gdssource, gdstarget), file=ofile)
+                    else:
+                        print(line, file=ofile)
+                else:
+                    print(line, file=ofile)
+
diff --git a/common/changetech.sh b/common/changetech.sh
new file mode 100755
index 0000000..383aac6
--- /dev/null
+++ b/common/changetech.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+#
+# Example file converts the techname in all magic database files.
+
+for i in `ls *.mag` ; do
+    /ef/efabless/bin/preproc.py -DEFXH035A=EFXH035B $i > tmp.out
+    mv tmp.out $i ;
+done
+
diff --git a/common/compare_dirs.py b/common/compare_dirs.py
new file mode 100755
index 0000000..21f8dc6
--- /dev/null
+++ b/common/compare_dirs.py
@@ -0,0 +1,439 @@
+#!/usr/bin/env python3
+#
+# compare_dirs.py <path>
+#
+#
+# Compare the format subdirectories of <path> and report on which files do not appear
+# in all of them.  If a directory has no files in it, then it is ignored.
+#
+# NOTE:  This script was not designed for files in the "ef_format" file structure.
+
+import os
+import sys
+
+def compare_dirs(path, styles, formats, debug):
+    do_cdl = True if 'cdl' in formats else False
+    do_gds = True if 'gds' in formats else False
+    do_lef = True if 'lef' in formats else False
+    do_mag = True if 'mag' in formats else False
+    do_maglef = True if 'maglef' in formats else False
+    do_verilog = True if 'verilog' in formats else False
+
+    try:
+         d1 = os.listdir(path + '/cdl')
+    except:
+         d1 = []
+    d1e = list(item for item in d1 if os.path.splitext(item)[1] == '.cdl')
+    d1r = list(os.path.splitext(item)[0] for item in d1e)
+    try:
+        d2 = os.listdir(path + '/gds')
+    except:
+        d2 = []
+    d2e = list(item for item in d2 if os.path.splitext(item)[1] == '.gds')
+    d2r = list(os.path.splitext(item)[0] for item in d2e)
+    try:
+        d3 = os.listdir(path + '/lef')
+    except:
+        d3 = []
+    d3e = list(item for item in d3 if os.path.splitext(item)[1] == '.lef')
+    d3r = list(os.path.splitext(item)[0] for item in d3e)
+    try:
+        d4 = os.listdir(path + '/mag')
+    except:
+        d4 = []
+    d4e = list(item for item in d4 if os.path.splitext(item)[1] == '.mag')
+    d4r = list(os.path.splitext(item)[0] for item in d4e)
+    try:
+        d5 = os.listdir(path + '/maglef')
+    except:
+        d5 = []
+    d5e = list(item for item in d5 if os.path.splitext(item)[1] == '.mag')
+    d5r = list(os.path.splitext(item)[0] for item in d5e)
+    try:
+        d6 = os.listdir(path + '/verilog')
+    except:
+        d6 = []
+    d6e = list(item for item in d6 if os.path.splitext(item)[1] == '.v')
+    d6r = list(os.path.splitext(os.path.splitext(item)[0])[0] for item in d6e)
+ 
+    d1r.sort()
+    d2r.sort()
+    d3r.sort()
+    d4r.sort()
+    d5r.sort()
+    d6r.sort()
+
+    d1_2 = list(item for item in d1r if item not in d2r)
+    d1_3 = list(item for item in d1r if item not in d3r)
+    d1_4 = list(item for item in d1r if item not in d4r)
+    d1_5 = list(item for item in d1r if item not in d5r)
+    d1_6 = list(item for item in d1r if item not in d6r)
+
+    d2_1 = list(item for item in d2r if item not in d1r)
+    d2_3 = list(item for item in d2r if item not in d3r)
+    d2_4 = list(item for item in d2r if item not in d4r)
+    d2_5 = list(item for item in d2r if item not in d5r)
+    d2_6 = list(item for item in d2r if item not in d6r)
+
+    d3_1 = list(item for item in d3r if item not in d1r)
+    d3_2 = list(item for item in d3r if item not in d2r)
+    d3_4 = list(item for item in d3r if item not in d4r)
+    d3_5 = list(item for item in d3r if item not in d5r)
+    d3_6 = list(item for item in d3r if item not in d6r)
+
+    d4_1 = list(item for item in d4r if item not in d1r)
+    d4_2 = list(item for item in d4r if item not in d2r)
+    d4_3 = list(item for item in d4r if item not in d3r)
+    d4_5 = list(item for item in d4r if item not in d5r)
+    d4_6 = list(item for item in d4r if item not in d6r)
+
+    d5_1 = list(item for item in d5r if item not in d1r)
+    d5_2 = list(item for item in d5r if item not in d2r)
+    d5_3 = list(item for item in d5r if item not in d3r)
+    d5_4 = list(item for item in d5r if item not in d4r)
+    d5_6 = list(item for item in d5r if item not in d6r)
+
+    d6_1 = list(item for item in d6r if item not in d1r)
+    d6_2 = list(item for item in d6r if item not in d2r)
+    d6_3 = list(item for item in d6r if item not in d3r)
+    d6_4 = list(item for item in d6r if item not in d4r)
+    d6_5 = list(item for item in d6r if item not in d5r)
+
+    d_complete = []
+    if do_cdl:
+        d_complete.extend(list(item for item in d1r if item not in d_complete))
+    if do_gds:
+        d_complete.extend(list(item for item in d2r if item not in d_complete))
+    if do_lef:
+        d_complete.extend(list(item for item in d3r if item not in d_complete))
+    if do_mag:
+        d_complete.extend(list(item for item in d4r if item not in d_complete))
+    if do_maglef:
+        d_complete.extend(list(item for item in d5r if item not in d_complete))
+    if do_verilog:
+        d_complete.extend(list(item for item in d6r if item not in d_complete))
+
+    d_all = d_complete
+    if do_cdl:
+        d_all = list(item for item in d_all if item in d1r)
+    if do_gds:
+        d_all = list(item for item in d_all if item in d2r)
+    if do_lef:
+        d_all = list(item for item in d_all if item in d3r)
+    if do_mag:
+        d_all = list(item for item in d_all if item in d4r)
+    if do_maglef:
+        d_all = list(item for item in d_all if item in d5r)
+    if do_verilog:
+        d_all = list(item for item in d_all if item in d6r)
+
+    d_notall = list(item for item in d_complete if item not in d_all)
+
+    d_all.sort()
+    d_complete.sort()
+    d_notall.sort()
+    
+    if debug:
+        print('Selected styles option: ' + ','.join(styles))
+        print('Selected formats option: ' + ','.join(formats))
+        print('\nd_complete = ' + ','.join(d_complete))
+        print('\nd_notall = ' + ','.join(d_notall) + '\n')
+
+    print('Library file type cross-correlation:' + '\n')
+
+    if 'allgood' in styles:
+        print('Cells appearing in all libraries:')
+        for cell in d_all.sort():
+           print(cell)
+
+    if 'cross' in styles:
+        # Print which cells appear in one format but not in another, for all format pairs
+        if do_cdl:
+            print('')
+            if do_gds and len(d1_2) > 0:
+                print('Cells appearing in cdl/ but not in gds/:')
+                for cell in d1_2:
+                    print(cell)
+            if do_lef and len(d1_3) > 0:
+                print('Cells appearing in cdl/ but not in lef/:')
+                for cell in d1_3:
+                    print(cell)
+            if do_mag and len(d1_4) > 0:
+                print('Cells appearing in cdl/ but not in mag/:')
+                for cell in d1_4:
+                    print(cell)
+            if do_maglef and len(d1_5) > 0:
+                print('Cells appearing in cdl/ but not in maglef/:')
+                for cell in d1_5:
+                    print(cell)
+            if do_verilog and len(d1_6) > 0:
+                print('Cells appearing in cdl/ but not in verilog/:')
+                for cell in d1_6:
+                    print(cell)
+
+        if do_gds:
+            print('')
+            if do_cdl and len(d2_1) > 0:
+                print('Cells appearing in gds/ but not in cdl/:')
+                for cell in d2_1:
+                    print(cell)
+            if do_lef and len(d2_3) > 0:
+                print('Cells appearing in gds/ but not in lef/:')
+                for cell in d2_3:
+                    print(cell)
+            if do_mag and len(d2_4) > 0:
+                print('Cells appearing in gds/ but not in mag/:')
+                for cell in d2_4:
+                    print(cell)
+            if do_maglef and len(d2_5) > 0:
+                print('Cells appearing in gds/ but not in maglef/:')
+                for cell in d2_5:
+                    print(cell)
+            if do_verilog and len(d2_6) > 0:
+                print('Cells appearing in gds/ but not in verilog/:')
+                for cell in d2_6:
+                    print(cell)
+
+        if do_lef:
+            print('')
+            if do_cdl and len(d3_1) > 0:
+                print('Cells appearing in lef/ but not in cdl/:')
+                for cell in d3_1:
+                    print(cell)
+            if do_gds and len(d3_2) > 0:
+                print('Cells appearing in lef/ but not in gds/:')
+                for cell in d3_2:
+                    print(cell)
+            if do_mag and len(d3_4) > 0:
+                print('Cells appearing in lef/ but not in mag/:')
+                for cell in d3_4:
+                    print(cell)
+            if do_maglef and len(d3_5) > 0:
+                print('Cells appearing in lef/ but not in maglef/:')
+                for cell in d3_5:
+                    print(cell)
+            if do_verilog and len(d3_6) > 0:
+                print('Cells appearing in lef/ but not in verilog/:')
+                for cell in d3_6:
+                    print(cell)
+
+        if do_mag:
+            print('')
+            if do_cdl and len(d4_1) > 0:
+                print('Cells appearing in mag/ but not in cdl/:')
+                for cell in d4_1:
+                    print(cell)
+            if do_gds and len(d4_2) > 0:
+                print('Cells appearing in mag/ but not in gds/:')
+                for cell in d4_2:
+                    print(cell)
+            if do_lef and len(d4_3) > 0:
+                print('Cells appearing in mag/ but not in lef/:')
+                for cell in d4_3:
+                    print(cell)
+            if do_maglef and len(d4_5) > 0:
+                print('Cells appearing in mag/ but not in maglef/:')
+                for cell in d4_5:
+                    print(cell)
+            if do_verilog and len(d4_6) > 0:
+                print('Cells appearing in mag/ but not in verilog/:')
+                for cell in d4_6:
+                    print(cell)
+
+        if do_maglef:
+            print('')
+            if do_cdl and len(d5_1) > 0:
+                print('Cells appearing in maglef/ but not in cdl/:')
+                for cell in d5_1:
+                    print(cell)
+            if do_gds and len(d5_2) > 0:
+                print('Cells appearing in maglef/ but not in gds/:')
+                for cell in d5_2:
+                    print(cell)
+            if do_lef and len(d5_3) > 0:
+                print('Cells appearing in maglef/ but not in lef/:')
+                for cell in d5_3:
+                    print(cell)
+            if do_mag and len(d5_4) > 0:
+                print('Cells appearing in maglef/ but not in mag/:')
+                for cell in d5_4:
+                    print(cell)
+            if do_verilog and len(d5_6) > 0:
+                print('Cells appearing in maglef/ but not in verilog/:')
+                for cell in d5_6:
+                    print(cell)
+        
+        if do_verilog:
+            print('')
+            if do_cdl and len(d6_1) > 0:
+                print('Cells appearing in verilog/ but not in cdl/:')
+                for cell in d6_1:
+                    print(cell)
+            if do_gds and len(d6_2) > 0:
+                print('Cells appearing in verilog/ but not in gds/:')
+                for cell in d6_2:
+                    print(cell)
+            if do_lef and len(d6_3) > 0:
+                print('Cells appearing in verilog/ but not in lef/:')
+                for cell in d6_3:
+                    print(cell)
+            if do_mag and len(d6_4) > 0:
+                print('Cells appearing in verilog/ but not in mag/:')
+                for cell in d6_4:
+                    print(cell)
+            if do_maglef and len(d6_5) > 0:
+                print('Cells appearing in verilog/ but not in maglef/:')
+                for cell in d6_5:
+                    print(cell)
+
+    if 'cell' in styles:
+        # Print one cell per row, with list of formats per cell
+        for cell in d_complete:
+            informats = []
+            if do_cdl and cell in d1r:
+                informats.append('CDL')
+            if do_gds and cell in d2r:
+                informats.append('GDS')
+            if do_lef and cell in d3r:
+                informats.append('LEF')
+            if do_mag and cell in d4r:
+                informats.append('mag')
+            if do_maglef and cell in d5r:
+                informats.append('maglef')
+            if do_verilog and cell in d6r:
+                informats.append('verilog')
+            print(cell + ': ' + ','.join(informats))
+
+    if 'notcell' in styles:
+        # Print one cell per row, with list of missing formats per cell
+        for cell in d_complete:
+            informats = []
+            if do_cdl and cell not in d1r:
+                informats.append('CDL')
+            if do_gds and cell not in d2r:
+                informats.append('GDS')
+            if do_lef and cell not in d3r:
+                informats.append('LEF')
+            if do_mag and cell not in d4r:
+                informats.append('mag')
+            if do_maglef and cell not in d5r:
+                informats.append('maglef')
+            if do_verilog and cell not in d6r:
+                informats.append('verilog')
+            print(cell + ': ' + ','.join(informats))
+
+    if 'table' in styles:
+        cellnamelen = 0
+        for cell in d_complete:
+            if len(cell) > cellnamelen:
+                cellnamelen = len(cell)
+
+        # Print one cell per row, with list of formats per cell in tabular form
+        outline = 'cell'
+        outline += ' ' * (cellnamelen - 5)
+        fmtspc = 0
+        if do_cdl:
+            outline += ' CDL'
+            fmtspc += 4
+        if do_gds:
+            outline += ' GDS'
+            fmtspc += 4
+        if do_lef:
+            outline += ' LEF'
+            fmtspc += 4
+        if do_mag:
+            outline += ' mag'
+            fmtspc += 4
+        if do_maglef:
+            outline += ' maglef'
+            fmtspc += 7
+        if do_verilog:
+            outline += ' verilog'
+            fmtspc += 8
+        print(outline)
+        print('-' * (cellnamelen + fmtspc))
+        for cell in d_complete:
+            informats = []
+            outline = cell
+            outline += ' ' * (cellnamelen - len(cell))
+            if do_cdl:
+                if cell in d1r:
+                    outline += ' X  '
+                else:
+                    outline += '    '
+            if do_gds:
+                if cell in d2r:
+                    outline += ' X  '
+                else:
+                    outline += '    '
+            if do_lef:
+                if cell in d3r:
+                    outline += ' X  '
+                else:
+                    outline += '    '
+            if do_mag:
+                if cell in d4r:
+                    outline += ' X  '
+                else:
+                    outline += '    '
+            if do_maglef:
+                if cell in d5r:
+                    outline += ' X     '
+                else:
+                    outline += '       '
+            if do_verilog:
+                if cell in d6r:
+                    outline += ' X'
+                else:
+                    outline += '  '
+            print(outline)
+        print('-' * (cellnamelen + fmtspc))
+
+def usage():
+    print('compare_dirs.py <path_to_dir> [-styles=<style_list>] [-debug] [-formats=<format_list>|"all"]')
+    print('    <format_list>:  Comma-separated list of one or more of the following formats:')
+    print('             cdl, gds, lef, verilog, mag, maglef')
+    print('    <style_list>: Comma-separated list of one or more of the following styles:')
+    print('             allgood, cross, cell, notcell, table')
+    return 0
+
+if __name__ == '__main__':
+
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    if len(arguments) < 1:
+        print("Not enough options given to compare_dirs.py.")
+        usage()
+        sys.exit(0)
+
+    debug = True if '-debug' in options else False
+
+    allformats = ['cdl', 'gds', 'lef', 'mag', 'maglef', 'verilog']
+    allstyles = ['allgood', 'cross', 'cell', 'notcell', 'table']
+
+    formats = allformats
+    styles = ['table']
+
+    for option in options:
+        if '=' in option:
+            optpair = option.split('=')
+            if optpair[0] == '-styles' or optpair[0] == '-style':
+                if optpair[1] == 'all':
+                    styles = allstyles
+                else:
+                    styles = optpair[1].split(',')
+            elif optpair[0] == '-formats' or optpair[0] == '-format':
+                if optpair[1] == 'all':
+                    formats = allformats
+                else:
+                    formats = optpair[1].split(',')
+
+    path = arguments[0]
+    compare_dirs(path, styles, formats, debug)
+    sys.exit(0)
diff --git a/common/consoletext.py b/common/consoletext.py
new file mode 100755
index 0000000..03276fb
--- /dev/null
+++ b/common/consoletext.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python3
+#
+#--------------------------------------------------------
+"""
+  consoletext --- extends tkinter class Text
+  with stdout and stderr redirection.
+"""
+#--------------------------------------------------------
+# Written by Tim Edwards
+# efabless, inc.
+# September 11, 2016
+# Version 0.1
+#--------------------------------------------------------
+
+import sys
+import tkinter
+
+class ConsoleText(tkinter.Text):
+    linelimit = 500
+    class IORedirector(object):
+        '''A general class for redirecting I/O to this Text widget.'''
+        def __init__(self,text_area):
+            self.text_area = text_area
+
+    class StdoutRedirector(IORedirector):
+        '''A class for redirecting stdout to this Text widget.'''
+        def write(self,str):
+            self.text_area.write(str,False)
+
+    class StderrRedirector(IORedirector):
+        '''A class for redirecting stderr to this Text widget.'''
+        def write(self,str):
+            self.text_area.write(str,True)
+
+    def __init__(self, master=None, cnf={}, **kw):
+        '''See the __init__ for Tkinter.Text.'''
+
+        tkinter.Text.__init__(self, master, cnf, **kw)
+
+        self.tag_configure('stdout',background='white',foreground='black')
+        self.tag_configure('stderr',background='white',foreground='red')
+        # None of these works!  Cannot change selected text background!
+        self.config(selectbackground='blue', selectforeground='white')
+        self.tag_configure('sel',background='blue',foreground='white')
+
+    def write(self, val, is_stderr=False):
+        lines = int(self.index('end-1c').split('.')[0])
+        if lines > self.linelimit:
+            self.delete('1.0', str(lines - self.linelimit) + '.0')
+        self.insert('end',val,'stderr' if is_stderr else 'stdout')
+        self.see('end')
+
+    def limit(self, val):
+        self.linelimit = val
diff --git a/common/fixspice.py b/common/fixspice.py
new file mode 100755
index 0000000..a12ae42
--- /dev/null
+++ b/common/fixspice.py
@@ -0,0 +1,348 @@
+#!/bin/env python3
+#
+# fixspice ---
+#
+# This script fixes problems in SPICE models to make them ngspice-compatible.
+# The methods searched and corrected in this file correspond to ngspice
+# version 30.
+#
+# This script is a filter to be run by setting the name of this script as
+# the value to "filter=" for the model install in the PDK Makefile in
+# open_pdks.
+#
+# This script converted from the bash script by Risto Bell, with improvements.
+#
+# This script is minimally invasive to the original SPICE file, making changes
+# while preserving comments and line continuations.  In order to properly parse
+# the file, comments and line continuations are recorded and removed from the
+# file contents, then inserted again before the modified file is written.
+
+import re
+import os
+import sys
+import textwrap
+
+def filter(inname, outname, debug=False):
+    notparsed = []
+
+    # Read input.  Note that splitlines() performs the additional fix of
+    # correcting carriage-return linefeed (CRLF) line endings.
+    try:
+        with open(inname, 'r') as inFile:
+            spitext = inFile.read()
+    except:
+        print('fixspice.py: failed to open ' + inname + ' for reading.', file=sys.stderr)
+        return 1
+    else:
+        if debug:
+            print('Fixing ngspice incompatibilities in file ' + inname + '.')
+
+    # Due to the complexity of comment lines embedded within continuation lines,
+    # the result needs to be processed line by line.  Blank lines and comment
+    # lines are removed from the text, replaced with tab characters, and collected
+    # in a separate array.  Then the continuation lines are unfolded, and each
+    # line processed.  Then it is all put back together at the end.
+
+    # First replace all tabs with spaces so we can use tabs as markers.
+    spitext = spitext.replace('\t', '    ')
+
+    # Now do an initial line split
+    spilines = spitext.splitlines()
+
+    # Search lines for comments and blank lines and replace them with tabs
+    # Replace continuation lines with tabs and preserve the position.
+    spitext = ''
+    for line in spilines:
+        if len(line) == 0:
+            notparsed.append('\n')
+            spitext += '\t '
+        elif line[0] == '*':
+            notparsed.append('\n' + line)
+            spitext += '\t '
+        elif line[0] == '+':
+            notparsed.append('\n+')
+            spitext += '\t ' + line[1:]
+        else:
+            spitext += '\n' + line
+
+    # Now split back into an array of lines
+    spilines = spitext.splitlines()
+
+    # Process input with regexp
+
+    fixedlines = []
+    modified = False
+
+    # Regular expression to find 'agauss(a,b,c)' lines and record a, b, and c
+    grex = re.compile('[^{]agauss\(([^,]*),([^,]*),([^)]*)\)', re.IGNORECASE)
+
+    # Regular expression to determine if the line is a .PARAM card    
+    paramrex = re.compile('^\.param', re.IGNORECASE)
+    # Regular expression to determine if the line is a .MODEL card    
+    modelrex = re.compile('^\.model', re.IGNORECASE)
+    # Regular expression to detect a .SUBCKT card
+    subcktrex = re.compile('^\.subckt', re.IGNORECASE)
+
+    for line in spilines:
+        devtype = line[0].upper() if len(line) > 0 else 0
+
+        # NOTE:  All filter functions below take variable fixedline, alter it, then
+        # set fixedline to the altered text for the next filter function.
+
+        fixedline = line
+
+        # Fix: Wrap "agauss(...)" in brackets and remove single quotes around expressions
+        # Example:
+        #    before: + SD_DN_CJ=agauss(7.900e-04,'1.580e-05*__LOT__',1)   dn_cj=SD_DN_CJ"
+        #    after:  + SD_DN_CJ={agauss(7.900e-04,1.580e-05*__LOT__,1)}   dn_cj=SD_DN_CJ"
+
+        # for gmatch in grex.finditer(fixedline):
+        while True:
+            gmatch = grex.search(fixedline)
+            if gmatch:
+                fixpart1 = gmatch.group(1).strip("'")
+                fixpart2 = gmatch.group(2).strip("'")
+                fixpart3 = gmatch.group(3).strip("'")
+                fixedline = fixedline[0:gmatch.span(0)[0] + 1] + '{agauss(' + fixpart1 + ',' + fixpart2 + ',' + fixpart3 + ')}' + fixedline[gmatch.span(0)[1]:]
+                if debug:
+                    print('Fixed agauss() call.')
+            else:
+                break
+
+        # Fix: Check for "dtemp=dtemp" and remove unless in a .param line
+        pmatch = paramrex.search(fixedline)
+        if not pmatch:
+            altered = re.sub(' dtemp=dtemp', ' ', fixedline, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Removed dtemp=dtemp from instance call')
+
+        # Fixes related to .MODEL cards:
+
+        mmatch = modelrex.search(fixedline)
+        if mmatch:
+
+            modeltype = fixedline.split()[2].lower()
+
+            if modeltype == 'nmos' or modeltype == 'pmos':
+
+                # Fixes related specifically to MOS models:
+
+                # Fix: Look for hspver=98.2 in FET model
+                altered = re.sub(' hspver[ ]*=[ ]*98\.2', ' ', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed hspver=98.2 from ' + modeltype + ' model')
+
+                # Fix:  Change level 53 FETs to level 49
+                altered = re.sub(' (level[ ]*=[ ]*)53', ' \g<1>49', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Changed level 53 ' + modeltype + ' to level 49')
+
+                # Fix: Look for version=4.3 or 4.5 FETs, change to 4.8.0 per recommendations
+                altered = re.sub(' (version[ ]*=[ ]*)4\.[35]', ' \g<1>4.8.0',
+					fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Changed version 4.3/4.5 ' + modeltype + ' to version 4.8.0')
+    
+                # Fix: Look for mulu0= (NOTE:  Might be supported for bsim4?)
+                altered = re.sub('mulu0[ ]*=[ ]*[0-9.e+-]*', '', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed mulu0= from ' + modeltype + ' model')
+
+                # Fix: Look for apwarn=
+                altered = re.sub(' apwarn[ ]*=[ ]*[0-9.e+-]*', ' ', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed apwarn= from ' + modeltype + ' model')
+
+                # Fix: Look for lmlt=
+                altered = re.sub(' lmlt[ ]*=[ ]*[0-9.e+-]*', ' ', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed lmlt= from ' + modeltype + ' model')
+
+                # Fix: Look for nf=
+                altered = re.sub(' nf[ ]*=[ ]*[0-9.e+-]*', ' ', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed nf= from ' + modeltype + ' model')
+
+                # Fix: Look for sa/b/c/d/=
+                altered = re.sub(' s[abcd][ ]*=[ ]*[0-9.e+-]*', ' ', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed s[abcd]= from ' + modeltype + ' model')
+
+                # Fix: Look for binflag= in MOS .MODEL
+                altered = re.sub(' binflag[ ]*=[ ]*[0-9.e+-]*', ' ', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed binflag= from ' + modeltype + ' model')
+
+                # Fix: Look for wref, lref= in MOS .MODEL (note:  could be found in other models?)
+                altered = re.sub(' [wl]ref[ ]*=[ ]*[0-9.e+-]*', ' ', fixedline, flags=re.IGNORECASE)
+                if altered != fixedline:
+                    fixedline = altered
+                    if debug:
+                        print('Removed lref= from MOS .MODEL')
+
+            # TREF is a known issue for (apparently?) all device types
+            # Fix: Look for tref= in .MODEL
+            altered = re.sub(' tref[ ]*=[ ]*[0-9.e+-]*', ' ', fixedline, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Removed tref= from ' + modeltype + ' model')
+
+            # Fix: Look for double-dot model binning and replace with single dot
+            altered = re.sub('\.\.([0-9]+)', '.\g<1>', fixedline, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Collapsed double-dot model binning.')
+
+        # Various deleted parameters above may appear in instances, so those must be
+        # caught as well.  Need to catch expressions and variables in addition to the
+        # usual numeric assignments.
+
+        if devtype == 'M':
+            altered = re.sub(' nf=[^ \'\t]+', ' ', fixedline, flags=re.IGNORECASE)
+            altered = re.sub(' nf=\'[^\'\t]+\'', ' ', altered, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Removed nf= from MOSFET device instance')
+
+            altered = re.sub(' mulu0=[^ \'\t]+', ' ', fixedline, flags=re.IGNORECASE)
+            altered = re.sub(' mulu0=\'[^\'\t]+\'', ' ', altered, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Removed mulu0= from MOSFET device instance')
+
+            altered = re.sub(' s[abcd]=[^ \'\t]+', ' ', fixedline, flags=re.IGNORECASE)
+            altered = re.sub(' s[abcd]=\'[^\'\t]+\'', ' ', altered, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Removed s[abcd]= from MOSFET device instance')
+
+        # Remove tref= from all device type instances
+        altered = re.sub(' tref=[^ \'\t]+', ' ', fixedline, flags=re.IGNORECASE)
+        altered = re.sub(' tref=\'[^\'\t]+\'', ' ', altered, flags=re.IGNORECASE)
+        if altered != fixedline:
+            fixedline = altered
+            if debug:
+                print('Removed tref= from device instance')
+
+        # Check for use of ".subckt ...  <name>=l" (or <name>=w) with no antecedent
+        # for 'w' or 'l'.  It is the responsibility of the technology file for extraction
+        # to produce the correct name to pass to the subcircuit for length or width.
+
+        smatch = subcktrex.match(fixedline)
+        if smatch:
+            altered = fixedline
+            if fixedline.lower().endswith('=l'):
+                if ' l=' not in fixedline.lower():
+                    altered=re.sub( '=l$', '=0', fixedline, flags=re.IGNORECASE)
+            elif '=l ' in fixedline.lower():
+                if ' l=' not in fixedline.lower():
+                    altered=re.sub( '=l ', '=0 ', altered, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Replaced use of "l" with no definition in .subckt line')
+
+            altered = fixedline
+            if fixedline.lower().endswith('=w'):
+                if ' w=' not in fixedline.lower():
+                    altered=re.sub( '=w$', '=0', fixedline, flags=re.IGNORECASE)
+            elif '=w ' in fixedline.lower():
+                if ' w=' not in fixedline.lower():
+                    altered=re.sub( '=w ', '=0 ', altered, flags=re.IGNORECASE)
+            if altered != fixedline:
+                fixedline = altered
+                if debug:
+                    print('Replaced use of "w" with no definition in .subckt line')
+
+        fixedlines.append(fixedline)
+        if fixedline != line:
+            modified = True
+
+    # Reinsert embedded comments and continuation lines
+    if debug:
+        print('Reconstructing output')
+    olines = []
+    for line in fixedlines:
+        while '\t ' in line:
+            line = line.replace('\t ', notparsed.pop(0), 1)
+        olines.append(line)
+
+    fixedlines = '\n'.join(olines).strip()
+    olines = fixedlines.splitlines()
+
+    # Write output
+    if debug:
+        print('Writing output')
+    if outname == None:
+        for line in olines:
+            print(line)
+    else:
+        # If the output is a symbolic link but no modifications have been made,
+        # then leave it alone.  If it was modified, then remove the symbolic
+        # link before writing.
+        if os.path.islink(outname):
+            if not modified:
+                return 0
+            else:
+                os.unlink(outname)
+        try:
+            with open(outname, 'w') as outFile:
+                for line in olines:
+                    print(line, file=outFile)
+        except:
+            print('fixspice.py: failed to open ' + outname + ' for writing.', file=sys.stderr)
+            return 1
+
+
+if __name__ == '__main__':
+
+    # This script expects to get one or two arguments.  One argument is
+    # mandatory and is the input file.  The other argument is optional and
+    # is the output file.  The output file and input file may be the same
+    # name, in which case the original input is overwritten.
+
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item[1:])
+        else:
+            arguments.append(item)
+
+    if len(arguments) > 0:
+        infilename = arguments[0]
+
+    if len(arguments) > 1:
+        outfilename = arguments[1]
+    else:
+        outfilename = None
+
+    debug = True if 'debug' in options else False
+
+    result = filter(infilename, outfilename, debug)
+    sys.exit(result)
diff --git a/common/foundry_install.py b/common/foundry_install.py
new file mode 100755
index 0000000..2067663
--- /dev/null
+++ b/common/foundry_install.py
@@ -0,0 +1,2376 @@
+#!/usr/bin/env python3
+#
+# foundry_install.py
+#
+# This file generates the local directory structure and populates the
+# directories with foundry vendor data.  The local directory (target)
+# should be a staging area, not a place where files are kept permanently.
+#
+# Options:
+#    -ef_format		Use efabless naming (libs.ref/techLEF),
+#			otherwise use generic naming (libs.tech/lef)
+#    -clean		Clear out and remove target directory before starting
+#    -source <path>	Path to source data top level directory
+#    -target <path>	Path to target (staging) top level directory
+#
+# All other options represent paths to vendor files.  They may all be
+# wildcarded with "*", or with specific escapes like "%l" for library
+# name or "%v" for version number (see below for a complete list of escape
+# sequences).
+#
+# Note only one of "-spice" or "-cdl" need be specified.  Since the
+# open source tools use ngspice, CDL files are converted to ngspice
+# syntax when needed.
+#
+#	-techlef <path>	Path to technology LEF file
+#	-doc <path>	Path to technology documentation
+#	-lef <path>	Path to LEF file
+#	-spice <path>	Path to SPICE netlists
+#	-cdl <path>	Path to CDL netlists
+#	-models <path>	Path to SPICE (primitive device) models
+#	-liberty <path>	Path to Liberty timing files
+#	-gds <path>	Path to GDS data
+#	-verilog <path>	Path to verilog models
+#
+#	-library <type> <name> [<target>]	See below
+#
+# For the "-library" option, any number of libraries may be supported, and
+# one "-library" option should be provided for each supported library.
+# <type> is one of:  "digital", "primitive", or "general".  Analog and I/O
+# libraries fall under the category "general", as they are all treated the
+# same way.  <name> is the vendor name of the library.  [<target>] is the
+# (optional) local name of the library.  If omitted, then the vendor name
+# is used for the target (there is no particular reason to specify a
+# different local name for a library).
+#
+# In special cases using options (see below), path may be "-", indicating
+# that there are no source files, but only to run compilations or conversions
+# on the files in the target directory.
+#
+# All options "-lef", "-spice", etc., can take the additional arguments
+# 	up  <number>
+#
+# to indicate that the source hierarchy should be copied from <number>
+# levels above the files.  For example, if liberty files are kept in
+# multiple directories according to voltage level, then
+#
+# 	-liberty x/y/z/PVT_*/*.lib
+#
+# would install all .lib files directly into libs.ref/<libname>/liberty/*.lib
+# (if "-ef_format" option specified, then: libs.ref/<libname>/liberty/*.lib)
+# while
+#
+# 	-liberty x/y/z/PVT_*/*.lib up 1
+#
+# would install all .lib files into libs.ref/liberty/<libname>/PVT_*/*.lib
+# (if "-ef_format" option specified, then: libs.ref/<libname>/liberty/PVT_*/*.lib)
+#
+# Please note that the INSTALL variable in the Makefile starts with "set -f"
+# to suppress the OS from doing wildcard substitution;  otherwise the
+# wildcards in the install options will get expanded by the OS before
+# being passed to the install script.
+#
+# Other library-specific arguments are:
+#
+#	nospec	:  Remove timing specification before installing
+#		    (used with verilog files;  needs to be extended to
+#		    liberty files)
+#	compile :  Create a single library from all components.  Used
+#		    when a foundry library has inconveniently split
+#		    an IP library (LEF, CDL, verilog, etc.) into
+#		    individual files.
+#	stub :	   Remove contents of subcircuits from CDL or SPICE
+#		    netlist files.
+#
+#	priv :	   Mark the contents being installed as privleged, and
+#		    put them in a separate root directory libs.priv
+#		    where they can be given additional read/write
+#		    restrictions.
+#
+#	exclude :  Followed by "=" and a comma-separated list of names.
+#		    exclude these files/modules/subcircuits.  Names may
+#		    also be wildcarded in "glob" format.
+#
+#	rename :   Followed by "=" and an alternative name.  For any
+#		    file that is a single entry, change the name of
+#		    the file in the target directory to this (To-do:
+#		    take regexps for multiple files).  When used with
+#		    "compile" or "compile-only", this refers to the
+# 		    name of the target compiled file.
+#
+#	noconvert : Install only; do not attempt to convert to other
+#		    formats (applies only to GDS, CDL, and LEF).
+#
+# NOTE:  This script can be called once for all libraries if all file
+# types (gds, cdl, lef, etc.) happen to all work with the same wildcards.
+# However, it is more likely that it will be called several times for the
+# same PDK, once to install I/O cells, once to install digital, and so
+# forth, as made possible by the wild-carding.
+
+import re
+import os
+import sys
+import glob
+import stat
+import shutil
+import fnmatch
+import subprocess
+
+def usage():
+    print("foundry_install.py [options...]")
+    print("   -copy             Copy files from source to target (default)")
+    print("   -ef_format        Use efabless naming conventions for local directories")
+    print("")
+    print("   -source <path>    Path to top of source directory tree")
+    print("   -target <path>    Path to top of target directory tree")
+    print("")
+    print("   -techlef <path>   Path to technology LEF file")
+    print("   -doc <path>       Path to technology documentation")
+    print("   -lef <path>       Path to LEF file")
+    print("   -spice <path>     Path to SPICE netlists")
+    print("   -cdl <path>       Path to CDL netlists")
+    print("   -models <path>    Path to SPICE (primitive device) models")
+    print("   -lib <path>       Path to Liberty timing files")
+    print("   -liberty <path>       Path to Liberty timing files")
+    print("   -gds <path>       Path to GDS data")
+    print("   -verilog <path>   Path to verilog models")
+    print("   -library <type> <name> [<target>]	 See below")
+    print("")
+    print(" All <path> names may be wild-carded with '*' ('glob'-style wild-cards)")
+    print("")
+    print(" All options with <path> other than source and target may take the additional")
+    print(" arguments 'up <number>', where <number> indicates the number of levels of")
+    print(" hierarchy of the source path to include when copying to the target.")
+    print("")
+    print(" Library <type> may be one of:")
+    print("    digital		Digital standard cell library")
+    print("    primitive	Primitive device library")
+    print("    general		All other library types (I/O, analog, etc.)")
+    print("")
+    print(" If <target> is unspecified then <name> is used for the target.")
+
+# Return a list of files after glob-style substituting into pathname.  This
+# mostly relies on glob.glob(), but uses the additional substitutions with
+# escape strings:
+#
+#   %v :  Match a version number in the form "major[.minor[.rev]]"
+#   %l :  substitute the library name
+#   %% :  substitute the percent character verbatim
+
+from distutils.version import LooseVersion
+
+#----------------------------------------------------------------------------
+#----------------------------------------------------------------------------
+
+def makeuserwritable(filepath):
+    if os.path.exists(filepath):
+        st = os.stat(filepath)
+        os.chmod(filepath, st.st_mode | stat.S_IWUSR)
+
+#----------------------------------------------------------------------------
+#----------------------------------------------------------------------------
+
+def substitute(pathname, library):
+    if library:
+        # Do %l substitution
+        newpathname = re.sub('%l', library, pathname)
+    else:
+        newpathname = pathname
+
+    if '%v' in newpathname:
+        vglob = re.sub('%v.*', '*', newpathname)
+        vlibs = glob.glob(vglob)
+        try:
+            vstr = vlibs[0][len(vglob)-1:]
+        except IndexError:
+            pass
+        else:
+            for vlib in vlibs[1:]:
+                vtest = vlib[len(vglob)-1:]
+                if LooseVersion(vtest) > LooseVersion(vstr):
+                    vstr = vtest
+            newpathname = re.sub('%v', vstr, newpathname)
+
+    if '%%' in newpathname:
+        newpathname = re.sub('%%', '%', newpathname)
+
+    return newpathname
+
+#----------------------------------------------------------------------------
+#----------------------------------------------------------------------------
+
+def get_gds_properties(magfile):
+    proprex = re.compile('^[ \t]*string[ \t]+(GDS_[^ \t]+)[ \t]+([^ \t]+)$')
+    proplines = []
+    if os.path.isfile(magfile):
+        with open(magfile, 'r') as ifile:
+            magtext = ifile.read().splitlines()
+            for line in magtext:
+                lmatch = proprex.match(line)
+                if lmatch:
+                    propline = lmatch.group(1) + ' ' + lmatch.group(2)
+                    proplines.append(propline)
+    return proplines
+
+#----------------------------------------------------------------------------
+# Read subcircuit ports from a CDL file, given a subcircuit name that should
+# appear in the file as a subcircuit entry, and return a dictionary of ports
+# and their indexes in the subcircuit line.
+#----------------------------------------------------------------------------
+
+def get_subckt_ports(cdlfile, subname):
+    portdict = {}
+    pidx = 1
+    portrex = re.compile('^\.subckt[ \t]+([^ \t]+)[ \t]+(.*)$', flags=re.IGNORECASE)
+    with open(cdlfile, 'r') as ifile:
+        cdltext = ifile.read()
+        cdllines = cdltext.replace('\n+', ' ').splitlines()
+        for line in cdllines:
+            lmatch = portrex.match(line)
+            if lmatch:
+                if lmatch.group(1).lower() == subname.lower():
+                    ports = lmatch.group(2).split()
+                    for port in ports:
+                        portdict[port.lower()] = pidx
+                        pidx += 1
+                    break
+    return portdict
+
+#----------------------------------------------------------------------------
+# Filter a verilog file to remove any backslash continuation lines, which
+# iverilog does not parse.  If targetroot is a directory, then find and
+# process all files in the path of targetroot.  If any file to be processed
+# is unmodified (has no backslash continuation lines), then ignore it.  If
+# any file is a symbolic link and gets modified, then remove the symbolic
+# link before overwriting with the modified file.
+#----------------------------------------------------------------------------
+
+def vfilefilter(vfile):
+    modified = False
+    with open(vfile, 'r') as ifile:
+        vtext = ifile.read()
+
+    # Remove backslash-followed-by-newline and absorb initial whitespace.  It
+    # is unclear what initial whitespace means in this context, as the use-
+    # case that has been seen seems to work under the assumption that leading
+    # whitespace is ignored up to the amount used by the last indentation.
+
+    vlines = re.sub('\\\\\n[ \t]*', '', vtext)
+
+    if vlines != vtext:
+        # File contents have been modified, so if this file was a symbolic
+        # link, then remove it.  Otherwise, overwrite the file with the
+        # modified contents.
+        if os.path.islink(vfile):
+            os.unlink(vfile)
+        with open(vfile, 'w') as ofile:
+            ofile.write(vlines)
+
+#----------------------------------------------------------------------------
+# Run a filter on verilog files that cleans up known syntax issues.
+# This is embedded in the foundry_install script and is not a custom
+# filter largely because the issue is in the tool, not the PDK.
+#----------------------------------------------------------------------------
+
+def vfilter(targetroot):
+    if os.path.isfile(targetroot):
+        vfilefilter(targetroot)
+    else:
+        vlist = glob.glob(targetroot + '/*')
+        for vfile in vlist:
+            if os.path.isfile(vfile):
+                vfilefilter(vfile)
+
+#----------------------------------------------------------------------------
+# For issues that are PDK-specific, a script can be written and put in
+# the PDK's custom/scripts/ directory, and passed to the foundry_install
+# script using the "filter" option.
+#----------------------------------------------------------------------------
+
+def tfilter(targetroot, filterscript, outfile=[]):
+    filterroot = os.path.split(filterscript)[1]
+    if os.path.isfile(targetroot):
+        print('   Filtering file ' + targetroot + ' with ' + filterroot)
+        sys.stdout.flush()
+        if not outfile:
+            outfile = targetroot
+        else:
+            # Make sure this file is writable (as the original may not be)
+            makeuserwritable(outfile)
+
+        fproc = subprocess.run([filterscript, targetroot, outfile],
+			stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, universal_newlines = True)
+        if fproc.stdout:
+            for line in fproc.stdout.splitlines():
+                print(line)
+        if fproc.stderr:
+            print('Error message output from filter script:')
+            for line in fproc.stderr.splitlines():
+                print(line)
+
+    else:
+        tlist = glob.glob(targetroot + '/*')
+        for tfile in tlist:
+            if os.path.isfile(tfile):
+                print('   Filtering file ' + tfile + ' with ' + filterroot)
+                sys.stdout.flush()
+                fproc = subprocess.run([filterscript, tfile, tfile],
+			stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, universal_newlines = True)
+                if fproc.stdout:
+                    for line in fproc.stdout.splitlines():
+                        print(line)
+                if fproc.stderr:
+                    print('Error message output from filter script:')
+                    for line in fproc.stderr.splitlines():
+                        print(line)
+
+#----------------------------------------------------------------------------
+# Given a destination directory holding individual verilog files of a number
+# of modules, create a single verilog library file named <alllibname> and place
+# it in the same directory.  This is done for the option "compile" if specified
+# for the "-verilog" install.
+#----------------------------------------------------------------------------
+
+def create_verilog_library(destlibdir, destlib, do_compile_only, do_stub, excludelist):
+
+    alllibname = destlibdir + '/' + destlib + '.v'
+    if os.path.isfile(alllibname):
+        os.remove(alllibname)
+
+    print('Diagnostic:  Creating consolidated verilog library ' + destlib + '.v')
+    vlist = glob.glob(destlibdir + '/*.v')
+    if alllibname in vlist:
+        vlist.remove(alllibname)
+
+    # Create exclude list with glob-style matching using fnmatch
+    if len(vlist) > 0:
+        vlistnames = list(os.path.split(item)[1] for item in vlist)
+        notvlist = []
+        for exclude in excludelist:
+            notvlist.extend(fnmatch.filter(vlistnames, exclude))
+
+        # Apply exclude list
+        if len(notvlist) > 0:
+            for file in vlist[:]:
+                if os.path.split(file)[1] in notvlist:
+                    vlist.remove(file)
+
+    if len(vlist) > 1:
+        print('New file is:  ' + alllibname)
+        with open(alllibname, 'w') as ofile:
+            allmodules = []
+            for vfile in vlist:
+                with open(vfile, 'r') as ifile:
+                    # print('Adding ' + vfile + ' to library.')
+                    vtext = ifile.read()
+                    modules = re.findall(r'[ \t\n]module[ \t]+([^ \t\n\(]+)', vtext)
+                    mseen = list(item for item in modules if item in allmodules)
+                    allmodules.extend(list(item for item in modules if item not in allmodules))
+                    vfilter = remove_redundant_modules(vtext, allmodules, mseen)
+                    # NOTE:  The following workaround resolves an issue with iverilog,
+                    # which does not properly parse specify timing paths that are not in
+                    # parentheses.  Easy to work around
+                    vlines = re.sub(r'\)[ \t]*=[ \t]*([01]:[01]:[01])[ \t]*;', r') = ( \1 ) ;', vfilter)
+                    print(vlines, file=ofile)
+                print('\n//--------EOF---------\n', file=ofile)
+
+        if do_compile_only == True:
+            print('Compile-only:  Removing individual verilog files')
+            for vfile in vlist:
+                if os.path.isfile(vfile):
+                    os.remove(vfile)
+                elif os.path.islink(vfile):
+                    os.unlink(vfile)
+    else:
+        print('Only one file (' + str(vlist) + ');  ignoring "compile" option.')
+
+#----------------------------------------------------------------------------
+# Remove redundant module entries from a verilog file.  "m2list" is a list of
+# module names gleaned from all previously read files using re.findall().
+# "mlist" is a list of all module names including those in "ntext".
+# The reason for doing this is that some verilog files may includes modules used
+# by all the files, and if included more than once, then iverilog complains.
+#----------------------------------------------------------------------------
+
+def remove_redundant_modules(ntext, mlist, m2list):
+    updated = ntext
+    for module in mlist:
+        # Determine the number of times the module appears in the text
+        if module in m2list:
+            # This module seen before outside of ntext, so remove all occurrances in ntext
+            new = re.sub(r'[ \t\n]+module[ \t]+' + module + '[ \t\n\(]+.*[ \t\n]endmodule', '\n', updated, flags=re.DOTALL)
+            updated = new
+
+        else:
+            n = len(re.findall(r'[ \t\n]module[ \t]+' + module + '[ \t\n\(]+.*[ \t\n]endmodule', updated, flags=re.DOTALL))
+            # This module defined more than once inside ntext, so remove all but one
+            # Optimization:  Just keep original text if n < 2
+            if n < 2:
+                continue
+
+            # Remove all but one
+            updated = re.sub(r'[ \t\n]+module[ \t]+' + module + '[ \t\n]+.*[ \t\n]endmodule', '\n', n - 1, updated, flags=re.IGNORECASE | re.DOTALL)
+    return updated
+
+#----------------------------------------------------------------------------
+# Given a destination directory holding individual LEF files of a number
+# of cells, create a single LEF library file named <alllibname> and place
+# it in the same directory.  This is done for the option "compile" if specified
+# for the "-lef" install.
+#----------------------------------------------------------------------------
+
+def create_lef_library(destlibdir, destlib, do_compile_only, excludelist):
+
+    alllibname = destlibdir + '/' + destlib + '.lef'
+    if os.path.isfile(alllibname):
+        os.remove(alllibname)
+
+    print('Diagnostic:  Creating consolidated LEF library ' + destlib + '.lef')
+    llist = glob.glob(destlibdir + '/*.lef')
+    if alllibname in llist:
+        llist.remove(alllibname)
+
+    # Create exclude list with glob-style matching using fnmatch
+    if len(llist) > 0:
+        llistnames = list(os.path.split(item)[1] for item in llist)
+        notllist = []
+        for exclude in excludelist:
+            notllist.extend(fnmatch.filter(llistnames, exclude))
+
+        # Apply exclude list
+        if len(notllist) > 0:
+            for file in llist[:]:
+                if os.path.split(file)[1] in notllist:
+                    llist.remove(file)
+
+    if len(llist) > 1:
+        print('New file is:  ' + alllibname)
+        with open(alllibname, 'w') as ofile:
+            headerdone = False
+            for lfile in llist:
+                with open(lfile, 'r') as ifile:
+                    # print('Adding ' + lfile + ' to library.')
+                    ltext = ifile.read()
+                    llines = ltext.splitlines()
+                    headerseen = False
+                    for lline in llines:
+                        if headerdone:
+                            if not headerseen:
+                                if not lline.startswith('MACRO'):
+                                    continue
+                                else:
+                                    headerseen = True
+                        print(lline, file=ofile)
+                    headerdone = True
+                print('#--------EOF---------\n', file=ofile)
+
+        if do_compile_only == True:
+            print('Compile-only:  Removing individual LEF files')
+            for lfile in llist:
+                if os.path.isfile(lfile):
+                    os.remove(lfile)
+            if newname:
+                if os.path.isfile(newname):
+                    os.remove(newname)
+    else:
+        print('Only one file (' + str(llist) + ');  ignoring "compile" option.')
+
+#----------------------------------------------------------------------------
+# Given a destination directory holding individual liberty files of a number
+# of cells, create a single liberty library file named <alllibname> and place
+# it in the same directory.  This is done for the option "compile" if specified
+# for the "-lib" install.
+#----------------------------------------------------------------------------
+
+# Warning:  This script is unfinished.  Needs to parse the library header
+# in each cell and generate a new library header combining the contents of
+# all cell headers.  Also:  The library name in the header needs to be
+# changed to the full library name.  Also:  There is no mechanism for
+# collecting all files belonging to a single process corner/temperature/
+# voltage.
+
+def create_lib_library(destlibdir, destlib, do_compile_only, excludelist):
+
+    alllibname = destlibdir + '/' + destlib + '.lib'
+    if os.path.isfile(alllibname):
+        os.remove(alllibname)
+
+    print('Diagnostic:  Creating consolidated liberty library ' + destlib + '.lib')
+
+    # Create exclude list with glob-style matching using fnmatch
+    if len(llist) > 0:
+        llistnames = list(os.path.split(item)[1] for item in llist)
+        notllist = []
+        for exclude in excludelist:
+            notllist.extend(fnmatch.filter(llistnames, exclude))
+
+        # Apply exclude list
+        if len(notllist) > 0:
+            for file in llist[:]:
+                if os.path.split(file)[1] in notllist:
+                    llist.remove(file)
+
+    if len(llist) > 1:
+        print('New file is:  ' + alllibname)
+        with open(alllibname, 'w') as ofile:
+            headerdone = False
+            for lfile in llist:
+                with open(lfile, 'r') as ifile:
+                    # print('Adding ' + lfile + ' to library.')
+                    ltext = ifile.read()
+                    llines = ltext.splitlines()
+                    headerseen = False
+                    for lline in llines:
+                        if headerdone:
+                            if not headerseen:
+                                if not lline.split()[0] == 'cell':
+                                    continue
+                                else:
+                                    headerseen = True
+                        print(lline, file=ofile)
+                    headerdone = True
+                print('/*--------EOF---------*/\n', file=ofile)
+
+        if do_compile_only == True:
+            print('Compile-only:  Removing individual LEF files')
+            for lfile in llist:
+                if os.path.isfile(lfile):
+                    os.remove(lfile)
+            if newname:
+                if os.path.isfile(newname):
+                    os.remove(newname)
+    else:
+        print('Only one file (' + str(llist) + ');  ignoring "compile" option.')
+
+#----------------------------------------------------------------------------
+# Given a destination directory holding individual GDS files of a number
+# of cells, create a single GDL library file named <alllibname> and place
+# it in the same directory.  This is done for the option "compile" if specified
+# for the "-gds" install.
+#----------------------------------------------------------------------------
+
+def create_gds_library(destlibdir, destlib, startup_script, do_compile_only, excludelist):
+
+    alllibname = destlibdir + '/' + destlib + '.gds'
+    if os.path.isfile(alllibname):
+        os.remove(alllibname)
+
+    print('Diagnostic:  Creating consolidated GDS library ' + destlib + '.gds')
+    glist = glob.glob(destlibdir + '/*.gds')
+    glist.extend(glob.glob(destlibdir + '/*.gdsii'))
+    glist.extend(glob.glob(destlibdir + '/*.gds2'))
+    if alllibname in glist:
+        glist.remove(alllibname)
+
+    # Create exclude list with glob-style matching using fnmatch
+    if len(glist) > 0:
+        glistnames = list(os.path.split(item)[1] for item in glist)
+        notglist = []
+        for exclude in excludelist:
+            notglist.extend(fnmatch.filter(glistnames, exclude))
+
+        # Apply exclude list
+        if len(notglist) > 0:
+            for file in glist[:]:
+                if os.path.split(file)[1] in notglist:
+                    glist.remove(file)
+
+    if len(glist) > 1:
+        print('New file is:  ' + alllibname)
+
+        if os.path.isfile(startup_script):
+            # If the symbolic link exists, remove it.
+            if os.path.isfile(destlibdir + '/.magicrc'):
+                os.remove(destlibdir + '/.magicrc')
+            os.symlink(startup_script, destlibdir + '/.magicrc')
+
+        # A GDS library is binary and requires handling in Magic
+        print('Creating magic generation script to generate GDS library.') 
+        with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
+            print('#!/usr/bin/env wish', file=ofile)
+            print('#--------------------------------------------', file=ofile)
+            print('# Script to generate .gds library from files   ', file=ofile)
+            print('#--------------------------------------------', file=ofile)
+            print('drc off', file=ofile)
+            print('gds readonly true', file=ofile)
+            print('gds flatten true', file=ofile)
+            print('gds rescale false', file=ofile)
+            print('tech unlock *', file=ofile)
+
+            for gdsfile in glist:
+                print('gds read ' + gdsfile, file=ofile)
+
+            print('puts stdout "Creating cell ' + destlib + '"', file=ofile)
+            print('load ' + destlib, file=ofile)
+            print('puts stdout "Adding cells to library"', file=ofile)
+            print('box values 0 0 0 0', file=ofile)
+            for gdsfile in glist:
+                gdsroot = os.path.split(gdsfile)[1]
+                gdsname = os.path.splitext(gdsroot)[0]
+                print('getcell ' + gdsname, file=ofile)
+                # Could properly make space for the cell here. . . 
+                print('box move e 200', file=ofile)
+                                
+            print('puts stdout "Writing GDS file ' + destlib + '"', file=ofile)
+            print('gds write ' + destlib, file=ofile)
+            print('puts stdout "Done."', file=ofile)
+            print('quit -noprompt', file=ofile)
+
+        # Run magic to read in the individual GDS files and
+        # write out the consolidated GDS library
+
+        print('Running magic to create GDS library.')
+        sys.stdout.flush()
+
+        mproc = subprocess.run(['magic', '-dnull', '-noconsole',
+			destlibdir + '/generate_magic.tcl'],
+			stdin = subprocess.DEVNULL,
+			stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, cwd = destlibdir,
+			universal_newlines = True)
+
+        if mproc.stdout:
+            for line in mproc.stdout.splitlines():
+                print(line)
+        if mproc.stderr:
+            print('Error message output from magic:')
+            for line in mproc.stderr.splitlines():
+                print(line)
+        if mproc.returncode != 0:
+            print('ERROR:  Magic exited with status ' + str(mproc.returncode))
+        if do_compile_only == True:
+            print('Compile-only:  Removing individual GDS files')
+            for gfile in glist:
+                if os.path.isfile(gfile):
+                    os.remove(gfile)
+            if newname:
+                if os.path.isfile(newname):
+                    os.remove(newname)
+    else:
+        print('Only one file (' + str(glist) + ');  ignoring "compile" option.')
+
+#----------------------------------------------------------------------------
+# Given a destination directory holding individual SPICE netlists of a number
+# of cells, create a single SPICE library file named <alllibname> and place
+# it in the same directory.  This is done for the option "compile" if specified
+# for the "-spice" install.
+#----------------------------------------------------------------------------
+
+def create_spice_library(destlibdir, destlib, spiext, do_compile_only, do_stub, excludelist):
+
+    fformat = 'CDL' if spiext == '.cdl' else 'SPICE'
+
+    allstubname = destlibdir + '/stub' + spiext
+    alllibname = destlibdir + '/' + destlib + spiext
+    if do_stub:
+        outputname = allstubname
+    else:
+        outputname = alllibname
+
+    print('Diagnostic:  Creating consolidated ' + fformat + ' library ' + outputname)
+
+    if os.path.isfile(outputname):
+        os.remove(outputname)
+
+    if fformat == 'CDL':
+        slist = glob.glob(destlibdir + '/*.cdl')
+    else:
+        # Sadly, there is no consensus on what a SPICE file extension should be.
+        slist = glob.glob(destlibdir + '/*.spc')
+        slist.extend(glob.glob(destlibdir + '/*.spice'))
+        slist.extend(glob.glob(destlibdir + '/*.spi'))
+        slist.extend(glob.glob(destlibdir + '/*.ckt'))
+
+    if alllibname in slist:
+        slist.remove(alllibname)
+
+    if allstubname in slist:
+        slist.remove(allstubname)
+
+    # Create exclude list with glob-style matching using fnmatch
+    if len(slist) > 0:
+        slistnames = list(os.path.split(item)[1] for item in slist)
+        notslist = []
+        for exclude in excludelist:
+            notslist.extend(fnmatch.filter(slistnames, exclude))
+
+        # Apply exclude list
+        if len(notslist) > 0:
+            for file in slist[:]:
+                if os.path.split(file)[1] in notslist:
+                    slist.remove(file)
+
+    if len(slist) > 1:
+        with open(outputname, 'w') as ofile:
+            allsubckts = []
+            for sfile in slist:
+                with open(sfile, 'r') as ifile:
+                    # print('Adding ' + sfile + ' to library.')
+                    stext = ifile.read()
+                    subckts = re.findall(r'\.subckt[ \t]+([^ \t\n]+)', stext, flags=re.IGNORECASE)
+                    sseen = list(item for item in subckts if item in allsubckts)
+                    allsubckts.extend(list(item for item in subckts if item not in allsubckts))
+                    sfilter = remove_redundant_subckts(stext, allsubckts, sseen)
+                    print(sfilter, file=ofile)
+                print('\n******* EOF\n', file=ofile)
+
+        if do_compile_only == True:
+            print('Compile-only:  Removing individual SPICE files')
+            for sfile in slist:
+                if os.path.isfile(sfile):
+                    os.remove(sfile)
+                elif os.path.islink(sfile):
+                    os.unlink(sfile)
+    else:
+        print('Only one file (' + str(slist) + ');  ignoring "compile" option.')
+
+#----------------------------------------------------------------------------
+# Remove redundant subcircuit entries from a SPICE or CDL netlist file.  "sseen"
+# is a list of subcircuit names gleaned from all previously read files using
+# re.findall(). "slist" is a list of subcircuits including those in "ntext".
+# If a subcircuit is defined outside of "ntext", then remove all occurrences in
+# "ntext".  Otherwise, if a subcircuit is defined more than once in "ntext",
+# remove all but one copy.  The reason for doing this is that some netlists will
+# include primitive device definitions used by all the standard cell subcircuits.
+#
+# It may be necessary to remove redundant .include statements and redundant .model
+# and/or .option statements as well.
+#----------------------------------------------------------------------------
+
+def remove_redundant_subckts(ntext, slist, sseen):
+    updated = ntext
+    for subckt in slist:
+        if subckt in sseen:
+            # Remove all occurrences of subckt
+            updated = re.sub(r'\n\.subckt[ \t]+' + subckt + '[ \t\n]+.*\n\.ends[ \t\n]+', '\n', updated, flags=re.IGNORECASE | re.DOTALL)
+
+        else:
+            # Determine the number of times the subcircuit appears in the text
+            n = len(re.findall(r'\n\.subckt[ \t]+' + subckt + '[ \t\n]+.*\n\.ends[ \t\n]+', updated, flags=re.IGNORECASE | re.DOTALL))
+            # Optimization:  Just keep original text if n < 2
+            if n < 2:
+                continue
+
+            # Remove all but one
+            updated = re.sub(r'\n\.subckt[ \t]+' + subckt + '[ \t\n]+.*\n\.ends[ \t\n]+', '\n', n - 1, updated, flags=re.IGNORECASE | re.DOTALL)
+    return updated
+
+#----------------------------------------------------------------------------
+# This is the main entry point for the foundry install script.
+#----------------------------------------------------------------------------
+
+if __name__ == '__main__':
+
+    if len(sys.argv) == 1:
+        print("No options given to foundry_install.py.")
+        usage()
+        sys.exit(0)
+    
+    optionlist = []
+    newopt = []
+
+    sourcedir = None
+    targetdir = None
+
+    ef_format = False
+    do_clean = False
+
+    have_lef = False
+    have_techlef = False
+    have_lefanno = False
+    have_gds = False
+    have_spice = False
+    have_cdl = False
+    have_verilog = False
+    have_lib = False
+
+    # Break arguments into groups where the first word begins with "-".
+    # All following words not beginning with "-" are appended to the
+    # same list (optionlist).  Then each optionlist is processed.
+    # Note that the first entry in optionlist has the '-' removed.
+
+    for option in sys.argv[1:]:
+        if option.find('-', 0) == 0:
+            if newopt != []:
+                optionlist.append(newopt)
+                newopt = []
+            newopt.append(option[1:])
+        else:
+            newopt.append(option)
+
+    if newopt != []:
+        optionlist.append(newopt)
+
+    # Pull library names from optionlist
+    libraries = []
+    for option in optionlist[:]:
+        if option[0] == 'library':
+            optionlist.remove(option)
+            libraries.append(option[1:]) 
+
+    # Check for option "ef_format" or "std_format" or "clean"
+    for option in optionlist[:]:
+        if option[0] == 'ef_naming' or option[0] == 'ef_names' or option[0] == 'ef_format':
+            optionlist.remove(option)
+            ef_format = True
+        elif option[0] == 'std_naming' or option[0] == 'std_names' or option[0] == 'std_format':
+            optionlist.remove(option)
+            ef_format = False
+        elif option[0] == 'clean':
+            do_clean = True
+
+    # Check for options "source" and "target"
+    for option in optionlist[:]:
+        if option[0] == 'source':
+            optionlist.remove(option)
+            sourcedir = option[1]
+        elif option[0] == 'target':
+            optionlist.remove(option)
+            targetdir = option[1]
+
+    if not targetdir:
+        print("No target directory specified.  Exiting.")
+        sys.exit(1)
+
+    # Take the target PDK name from the target path last component
+    pdkname = os.path.split(targetdir)[1]
+
+    # If targetdir (the staging area) exists, make sure it's empty.
+
+    if os.path.isdir(targetdir):
+        # Error if targetdir exists but is not writeable
+        if not os.access(targetdir, os.W_OK):
+            print("Target installation directory " + targetdir + " is not writable.")
+            sys.exit(1)
+
+        # Clear out the staging directory if specified
+        if do_clean:
+            shutil.rmtree(targetdir)
+    elif os.path.exists(targetdir):
+        print("Target installation directory " + targetdir + " is not a directory.")
+        sys.exit(1)
+
+    # Error if no source or dest specified unless "-clean" was specified
+    if not sourcedir:
+        if do_clean:
+            print("Done removing staging area.")
+            sys.exit(0)
+        else:
+            print("No source directory specified.  Exiting.")
+            sys.exit(1)
+
+    # Create the target directory
+    os.makedirs(targetdir, exist_ok=True)
+
+    #----------------------------------------------------------------
+    # Installation part 1:  Install files into the staging directory
+    #----------------------------------------------------------------
+
+    # Diagnostic
+    print("Installing in target (staging) directory " + targetdir)
+
+    # Create the top-level directories
+
+    os.makedirs(targetdir + '/libs.tech', exist_ok=True)
+    os.makedirs(targetdir + '/libs.ref', exist_ok=True)
+
+    # Path to magic techfile depends on ef_format
+
+    if ef_format == True:
+        mag_current = '/libs.tech/magic/current/'
+    else:
+        mag_current = '/libs.tech/magic/'
+
+    # Check for magic version and set flag if it does not exist or if
+    # it has the wrong version.
+    have_mag_8_2 = False
+    try:
+        mproc = subprocess.run(['magic', '--version'],
+		stdout = subprocess.PIPE,
+		stderr = subprocess.PIPE,
+		universal_newlines = True)
+        if mproc.stdout:
+            mag_version = mproc.stdout.splitlines()[0]
+            mag_version_info = mag_version.split('.')
+            try:
+                if int(mag_version_info[0]) > 8:
+                    have_mag_8_2 = True
+                elif int(mag_version_info[0]) == 8:
+                    if int(mag_version_info[1]) >= 2:
+                        have_mag_8_2 = True
+                        print('Magic version 8.2 available on the system.')
+            except ValueError:
+                print('Error: "magic --version" did not return valid version number.')
+    except FileNotFoundError:
+        print('Error: Failed to find executable for magic in standard search path.')
+
+    if not have_mag_8_2:
+        print('WARNING:  Magic version 8.2 cannot be executed from the standard executable search path.')
+        print('Please install or correct the search path.')
+        print('Magic database files will not be created, and other missing file formats may not be generated.')
+
+    # Populate any targets that do not specify a library, or where the library is
+    # specified as "primitive".  
+
+    # Populate the techLEF and SPICE models, if specified.  Also, this section can add
+    # to any directory in libs.tech/ as given by the option;  e.g., "-ngspice" will
+    # install into libs.tech/ngspice/.
+
+    if libraries == [] or 'primitive' in libraries[0]:
+
+        for option in optionlist[:]:
+
+            # Legacy behavior is to put libs.tech models and techLEF files in
+            # the same grouping as files for the primdev library (which go in
+            # libs.ref).  Current behavior is to put all libs.tech files in
+            # a grouping with no library, with unrestricted ability to write
+            # into any subdirectory of libs.tech/.  Therefore, need to restrict
+            # legacy use to just 'techlef' and 'models'.
+
+            if len(libraries) > 0 and 'primitive' in libraries[0]:
+                if option[0] != 'techlef' and option[0] != 'techLEF' and option[0] != 'models':
+                    continue
+  
+            # Normally technology LEF files are associated with IP libraries.
+            # However, if no library is specified or the library is 'primitive'
+            # (legacy behavior), then put in the techLEF directory with no subdirectory.
+
+            filter_scripts = []
+            if option[0] == 'techlef' or option[0] == 'techLEF':
+                for item in option:
+                    if item.split('=')[0] == 'filter':
+                        filter_scripts.append(item.split('=')[1])
+                        break
+
+                if ef_format:
+                    techlefdir = targetdir + '/libs.ref/' + 'techLEF'
+                else:
+                    techlefdir = targetdir + '/libs.tech/lef'
+
+                os.makedirs(techlefdir, exist_ok=True)
+                # All techlef files should be copied, so use "glob" on the wildcards
+                techlist = glob.glob(substitute(sourcedir + '/' + option[1], None))
+
+                for lefname in techlist:
+                    leffile = os.path.split(lefname)[1]
+                    targname = techlefdir + '/' + leffile
+
+                    if os.path.isfile(lefname):
+                        shutil.copy(lefname, targname)
+                    else:
+                        shutil.copytree(lefname, targname)
+
+                    for filter_script in filter_scripts:
+                        # Apply filter script to all files in the target directory
+                        tfilter(targname, filter_script)
+
+                optionlist.remove(option)
+
+            # All remaining options will refer to specific tools (e.g., -ngspice, -magic)
+            # although generic names (.e.g, -models) are acceptable if the tools know
+            # where to find the files.  Currently, most tools have their own formats
+            # and standards for setup, and so generally each install directory will be
+            # unique to one EDA tool.
+
+            else:
+                filter_scripts = []
+                for item in option:
+                    if item.split('=')[0] == 'filter':
+                        filter_scripts.append(item.split('=')[1])
+                        break
+
+                print('Diagnostic:  installing ' + option[0] + '.')
+                tooldir = targetdir + '/libs.tech/' + option[0]
+                os.makedirs(tooldir, exist_ok=True)
+
+                # All files should be linked or copied, so use "glob" on
+                # the wildcards.  Copy each file and recursively copy each
+                # directory.
+                toollist = glob.glob(substitute(sourcedir + '/' + option[1], None))
+
+                for toolname in toollist:
+                    toolfile = os.path.split(toolname)[1]
+                    targname = tooldir + '/' + toolfile
+
+                    if os.path.isdir(toolname):
+                        # Remove any existing directory, and its contents
+                        if os.path.isdir(targname):
+                            shutil.rmtree(targname)
+                        os.makedirs(targname)
+    
+                        # Recursively find and copy or link the whole directory
+                        # tree from this point.
+
+                        alltoollist = glob.glob(toolname + '/**', recursive=True)
+                        commonpart = os.path.commonpath(alltoollist)
+                        for subtoolname in alltoollist:
+                            if os.path.isdir(subtoolname):
+                                continue
+                            # Get the path part that is not common between toollist and
+                            # alltoollist.
+                            subpart = os.path.relpath(subtoolname, commonpart)
+                            subtargname = targname + '/' + subpart
+                            os.makedirs(os.path.split(subtargname)[0], exist_ok=True)
+
+                            if os.path.isfile(subtoolname):
+                                shutil.copy(subtoolname, subtargname)
+                            else:
+                                shutil.copytree(subtoolname, subtargname)
+
+                            for filter_script in filter_scripts:
+                                # Apply filter script to all files in the target directory
+                                tfilter(subtargname, filter_script)
+
+                    else:
+                        # Remove any existing file
+                        if os.path.isfile(targname):
+                            os.remove(targname)
+                        elif os.path.isdir(targname):
+                            shutil.rmtree(targname)
+
+                        if os.path.isfile(toolname):
+                            shutil.copy(toolname, targname)
+                        else:
+                            shutil.copytree(toolname, targname)
+
+                        for filter_script in filter_scripts:
+                            # Apply filter script to all files in the target directory
+                            tfilter(targname, filter_script)
+
+                optionlist.remove(option)
+
+    # Do an initial pass through all of the options and determine what is being
+    # installed, so that we know in advance which file formats are missing and
+    # need to be generated.
+
+    for option in optionlist[:]:
+        if option[0] == 'lef':
+            have_lef = True
+        if option[0] == 'techlef' or option[0] == 'techLEF':
+            have_techlef = True
+        elif option[0] == 'gds':
+            have_gds = True
+        elif option[0] == 'spice' or option[0] == 'spi':
+            have_spice = True
+        elif option[0] == 'cdl':
+            have_cdl = True
+        elif option[0] == 'verilog':
+            have_verilog = True
+        elif option[0] == 'lib' or option[0] == 'liberty':
+            have_lib = True
+
+    # The remaining options in optionlist should all be types like 'lef' or 'liberty'
+    # and there should be a corresponding library list specified by '-library'
+
+    for option in optionlist[:]:
+
+        # Ignore if no library list---should have been taken care of above.
+        if libraries == []:
+            break
+
+        # Diagnostic
+        print("Install option: " + str(option[0]))
+
+        # For ef_format:  always make techlef -> techLEF and spice -> spi
+
+        if ef_format:
+            if option[0] == 'techlef':
+                option[0] = 'techLEF'
+            elif option[0] == 'spice':
+                option[0] = 'spi'
+
+            destdir = targetdir + '/libs.ref/' + option[0]
+            os.makedirs(destdir, exist_ok=True)
+
+        # If the option is followed by the keyword "up" and a number, then
+        # the source should be copied (or linked) from <number> levels up
+        # in the hierarchy (see below).
+
+        if 'up' in option:
+            uparg = option.index('up') 
+            try:
+                hier_up = int(option[uparg + 1])
+            except:
+                print("Non-numeric option to 'up': " + option[uparg + 1])
+                print("Ignoring 'up' option.")
+                hier_up = 0
+        else:
+            hier_up = 0
+
+        filter_scripts = []
+        for item in option:
+            if item.split('=')[0] == 'filter':
+                filter_scripts.append(item.split('=')[1])
+                break
+
+        # Option 'stub' applies to netlists ('cdl' or 'spice') and generates
+        # a file with only stub entries.
+        do_stub = 'stub' in option
+
+        # Option 'compile' is a standalone keyword ('comp' may be used).
+        do_compile = 'compile' in option or 'comp' in option
+        do_compile_only = 'compile-only' in option or 'comp-only' in option
+ 
+        # Option 'nospecify' is a standalone keyword ('nospec' may be used).
+        do_remove_spec = 'nospecify' in option or 'nospec' in option
+
+        # Option 'exclude' has an argument
+        try:
+            excludelist = list(item.split('=')[1].split(',') for item in option if item.startswith('excl'))[0]
+        except IndexError:
+            excludelist = []
+        else:
+            print('Excluding files: ' + (',').join(excludelist))
+
+        # Option 'rename' has an argument
+        try:
+            newname = list(item.split('=')[1] for item in option if item.startswith('rename'))[0]
+        except IndexError:
+            newname = None
+        else:
+            print('Renaming file to: ' + newname)
+
+        # 'anno' may be specified for LEF, in which case the LEF is used only
+        # to annotate GDS and is not itself installed;  this allows LEF to
+        # be generated from Magic and avoids quirky use of obstruction layers.
+        have_lefanno = True if 'annotate' in option or 'anno' in option else False
+        if have_lefanno: 
+            if option[0] != 'lef':
+                print("Warning: 'annotate' option specified outside of -lef.  Ignoring.")
+            else:
+                # Mark as NOT having LEF since we want to use it only for annotation.
+                have_lef = False
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+
+            if ef_format:
+                destlibdir = destdir + '/' + destlib
+            else:
+                destdir = targetdir + '/libs.ref/' + destlib + '/' + option[0]
+                destlibdir = destdir
+
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # Populate the library subdirectory
+            # Parse the option and replace each '/*/' with the library name,
+            # and check if it is a valid directory name.  Then glob the
+            # resulting option name.  Warning:  This assumes that all
+            # occurences of the text '/*/' match a library name.  It should
+            # be possible to wild-card the directory name in such a way that
+            # this is always true.
+
+            testpath = substitute(sourcedir + '/' + option[1], library[1])
+            liblist = glob.glob(testpath)
+
+            # Create a file "sources.txt" (or append to it if it exists)
+            # and add the source directory name so that the staging install
+            # script can know where the files came from.
+
+            with open(destlibdir + '/sources.txt', 'a') as ofile:
+                print(testpath, file=ofile)
+
+            # Create exclude list with glob-style matching using fnmatch
+            if len(liblist) > 0:
+                liblistnames = list(os.path.split(item)[1] for item in liblist)
+                notliblist = []
+                for exclude in excludelist:
+                    notliblist.extend(fnmatch.filter(liblistnames, exclude))
+
+                # Apply exclude list
+                if len(notliblist) > 0:
+                    for file in liblist[:]:
+                        if os.path.split(file)[1] in notliblist:
+                            liblist.remove(file)
+
+                if len(excludelist) > 0 and len(notliblist) == 0:
+                    print('Warning:  Nothing from the exclude list found in sources.')
+                    print('excludelist = ' + str(excludelist))
+                    print('destlibdir = ' + destlibdir)
+
+            # Diagnostic
+            print('Collecting files from ' + testpath)
+            print('Files to install:')
+            if len(liblist) < 10:
+                for item in liblist:
+                    print('   ' + item)
+            else:
+                for item in liblist[0:4]:
+                    print('   ' + item)
+                print('   .')
+                print('   .')
+                print('   .')
+                for item in liblist[-6:-1]:
+                    print('   ' + item)
+                print('(' + str(len(liblist)) + ' files total)')
+
+            for libname in liblist:
+                # Note that there may be a hierarchy to the files in option[1],
+                # say for liberty timing files under different conditions, so
+                # make sure directories have been created as needed.
+
+                libfile = os.path.split(libname)[1]
+                libfilepath = os.path.split(libname)[0]
+                destpathcomp = []
+                for i in range(hier_up):
+                    destpathcomp.append('/' + os.path.split(libfilepath)[1])
+                    libfilepath = os.path.split(libfilepath)[0]
+                destpathcomp.reverse()
+                destpath = ''.join(destpathcomp)
+
+                if newname:
+                    if len(liblist) == 1:
+                        destfile = newname
+                    else:
+                        if not do_compile and not do_compile_only:
+                            print('Error:  rename specified but more than one file found!')
+                        destfile = libfile
+                else:
+                    destfile = libfile
+
+                targname = destlibdir + destpath + '/' + destfile
+
+                # NOTE:  When using "up" with link_from, could just make
+                # destpath itself a symbolic link;  this way is more flexible
+                # but adds one symbolic link per file.
+
+                if destpath != '':
+                    if not os.path.isdir(destlibdir + destpath):
+                        os.makedirs(destlibdir + destpath, exist_ok=True)
+
+                # Remove any existing file
+                if os.path.isfile(targname):
+                    os.remove(targname)
+                elif os.path.isdir(targname):
+                    shutil.rmtree(targname)
+
+                # NOTE:  Diagnostic, probably much too much output.
+                print('   Install:' + libname + ' to ' + targname)
+                if os.path.isfile(libname):
+                    shutil.copy(libname, targname)
+                else:
+                    shutil.copytree(libname, targname)
+
+                # File filtering options:  Two options 'stub' and 'nospec' are
+                # handled by scripts in ../common/.  Custom filters can also be
+                # specified.
+
+                local_filter_scripts = filter_scripts[:]
+
+                if option[0] == 'verilog':
+                    # Internally handle syntactical issues with verilog and iverilog
+                    vfilter(targname)
+
+                    if do_remove_spec:
+                        scriptdir = os.path.split(os.getcwd())[0] + '/common'
+                        local_filter_scripts.append(scriptdir + '/remove_specify.py')
+
+                elif option[0] == 'cdl' or option[0] == 'spi' or option[0] == 'spice':
+                    if do_stub:
+                        scriptdir = os.path.split(os.getcwd())[0] + '/common'
+                        local_filter_scripts.append(scriptdir + '/makestub.py')
+
+                for filter_script in local_filter_scripts:
+                    # Apply filter script to all files in the target directory
+                    tfilter(targname, filter_script)
+
+            if do_compile == True or do_compile_only == True:
+                # NOTE:  The purpose of "rename" is to put a destlib-named
+                # library elsewhere so that it can be merged with another
+                # library into a compiled <destlib>.<ext>
+
+                compname = destlib
+                    
+                # To do:  Make this compatible with linking from another PDK.
+
+                if option[0] == 'verilog':
+                    # If there is not a single file with all verilog cells in it,
+                    # then compile one, because one does not want to have to have
+                    # an include line for every single cell used in a design.
+
+                    create_verilog_library(destlibdir, compname, do_compile_only, do_stub, excludelist)
+
+                elif option[0] == 'gds' and have_mag_8_2:
+                    # If there is not a single file with all GDS cells in it,
+                    # then compile one.
+
+                    # Link to the PDK magic startup file from the target directory
+                    startup_script = targetdir + mag_current + pdkname + '-F.magicrc'
+                    if not os.path.isfile(startup_script):
+                        startup_script = targetdir + mag_current + pdkname + '.magicrc'
+                    create_gds_library(destlibdir, compname, startup_script, do_compile_only, excludelist)
+
+                elif option[0] == 'liberty' or option[0] == 'lib':
+                    # If there is not a single file with all liberty cells in it,
+                    # then compile one, because one does not want to have to have
+                    # an include line for every single cell used in a design.
+
+                    create_lib_library(destlibdir, compname, do_compile_only, excludelist)
+
+                elif option[0] == 'spice' or option[0] == 'spi':
+                    # If there is not a single file with all SPICE subcircuits in it,
+                    # then compile one, because one does not want to have to have
+                    # an include line for every single cell used in a design.
+
+                    spiext = '.spice' if not ef_format else '.spi'
+                    create_spice_library(destlibdir, compname, spiext, do_compile_only, do_stub, excludelist)
+                    if do_compile_only == True:
+                        if newname:
+                            if os.path.isfile(newname):
+                                os.remove(newname)
+
+                elif option[0] == 'cdl':
+                    # If there is not a single file with all CDL subcircuits in it,
+                    # then compile one, because one does not want to have to have
+                    # an include line for every single cell used in a design.
+
+                    create_spice_library(destlibdir, compname, '.cdl', do_compile_only, do_stub, excludelist)
+                    if do_compile_only == True:
+                        if newname:
+                            if os.path.isfile(newname):
+                                os.remove(newname)
+
+                elif option[0] == 'lef':
+                    # If there is not a single file with all LEF cells in it,
+                    # then compile one, because one does not want to have to have
+                    # an include line for every single cell used in a design.
+
+                    create_lef_library(destlibdir, compname, do_compile_only, excludelist)
+
+        # Find any libraries/options marked as "privileged" (or "private") and
+        # move the files from libs.tech or libs.ref to libs.priv, leaving a
+        # symbolic link in the original location.  Do this during the initial
+        # install so that options following in the list can add files to the
+        # non-privileged equivalent directory path.
+
+        if 'priv' in option or 'privileged' in option or 'private' in option:
+
+            # Diagnostic
+            print("Install option: " + str(option[0]))
+
+            if ef_format == True:
+                os.makedirs(targetdir + '/libs.priv', exist_ok=True)
+
+            for library in libraries:
+                if len(library) == 3:
+                    destlib = library[2]
+                else:
+                    destlib = library[1]
+
+                if ef_format:
+                    srclibdir = targetdir + '/libs.ref/' + option[0] + '/' + destlib
+                    destlibdir = targetdir + '/libs.priv/' + option[0] + '/' + destlib
+                else:
+                    srclibdir = targetdir + '/libs.ref/' + destlib + '/' + option[0]
+                    destlibdir = targetdir + '/libs.priv/' + destlib + '/' + option[0]
+
+                if not os.path.exists(destlibdir):
+                    os.makedirs(destlibdir)
+
+                print('Moving files in ' + srclibdir + ' to privileged space.')
+                filelist = os.listdir(srclibdir)
+                for file in filelist:
+                    srcfile = srclibdir + '/' + file
+                    destfile = destlibdir + '/' + file
+                    if os.path.isfile(destfile):
+                        os.remove(destfile)
+                    elif os.path.isdir(destfile):
+                        shutil.rmtree(destfile)
+
+                    if os.path.isfile(srcfile):
+                        shutil.copy(srcfile, destfile)
+                        os.remove(srcfile)
+                    else:
+                        shutil.copytree(srcfile, destfile)
+                        shutil.rmtree(srcfile)
+
+    print("Completed installation of vendor files.")
+
+    #----------------------------------------------------------------
+    # Installation part 2:  Generate derived file formats
+    #----------------------------------------------------------------
+
+    # Now for the harder part.  If GDS and/or LEF databases were specified,
+    # then migrate them to magic (.mag files in layout/ or abstract/).
+
+    ignorelist = []
+    do_cdl_scaleu  = False
+    no_cdl_convert = False
+    no_gds_convert = False
+    no_lef_convert = False
+    cdl_compile_only = False
+
+    cdl_exclude = []
+    lef_exclude = []
+    gds_exclude = []
+    spice_exclude = []
+    verilog_exclude = []
+
+    cdl_reflib = '/libs.ref/'
+    gds_reflib = '/libs.ref/'
+    lef_reflib = '/libs.ref/'
+
+    for option in optionlist[:]:
+        if option[0] == 'cdl':
+            # Option 'scaleu' is a standalone keyword
+            do_cdl_scaleu = 'scaleu' in option
+
+            # Option 'ignore' has arguments after '='
+            for item in option:
+                if item.split('=')[0] == 'ignore':
+                    ignorelist = item.split('=')[1].split(',')
+
+	# Option 'noconvert' is a standalone keyword.
+        if 'noconvert' in option:
+            if option[0] == 'cdl':
+                no_cdl_convert = True
+            elif option[0] == 'gds':
+                no_gds_convert = True
+            elif option[0] == 'lef':
+                no_lef_convert = True
+
+        # Option 'privileged' is a standalone keyword.
+        if 'priv' in option or 'privileged' in option or 'private' in option:
+            if option[0] == 'cdl':
+                cdl_reflib = '/libs.priv/'
+            elif option[0] == 'gds':
+                gds_reflib = '/libs.priv/'
+            elif option[0] == 'lef':
+                lef_reflib = '/libs.priv/'
+
+        # If CDL is marked 'compile-only' then CDL should only convert the
+        # compiled file to SPICE if conversion is needed.
+        if 'compile-only' in option:
+            if option[0] == 'cdl':
+                cdl_compile_only = True
+
+        # Find exclude list for any option
+        for item in option:
+            if item.split('=')[0] == 'exclude':
+                exclude_list = item.split('=')[1].split(',')
+                if option[0] == 'cdl':
+                    cdl_exclude = exclude_list
+                elif option[0] == 'lef':
+                    lef_exclude = exclude_list
+                elif option[0] == 'gds':
+                    gds_exclude = exclude_list
+                elif option[0] == 'spi' or option[0] == 'spice':
+                    spice_exclude = exclude_list
+                elif option[0] == 'verilog':
+                    verilog_exclude = exclude_list
+ 
+    devlist = []
+    pdklibrary = None
+
+    if have_gds and not no_gds_convert:
+        print("Migrating GDS files to layout.")
+
+        if ef_format:
+            destdir = targetdir + gds_reflib + 'mag'
+            srcdir = targetdir + gds_reflib + 'gds'
+            vdir = targetdir + '/libs.ref/' + 'verilog'
+            cdir = targetdir + cdl_reflib + 'cdl'
+            sdir = targetdir + cdl_reflib + 'spi'
+
+            os.makedirs(destdir, exist_ok=True)
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+
+            if ef_format:
+                destlibdir = destdir + '/' + destlib
+                srclibdir = srcdir + '/' + destlib
+                vlibdir = vdir + '/' + destlib
+                clibdir = cdir + '/' + destlib
+                slibdir = sdir + '/' + destlib
+            else:
+                destdir = targetdir + gds_reflib + destlib + '/mag'
+                srcdir = targetdir + gds_reflib + destlib + '/gds'
+                vdir = targetdir + '/libs.ref/' + destlib + '/verilog'
+                cdir = targetdir + cdl_reflib + destlib + '/cdl'
+                sdir = targetdir + cdl_reflib + destlib + '/spice'
+                destlibdir = destdir
+                srclibdir = srcdir
+                vlibdir = vdir
+                clibdir = cdir
+                slibdir = sdir
+
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # For primitive devices, check the PDK script and find the name
+            # of the library and get a list of supported devices.
+
+            if library[0] == 'primitive':
+                pdkscript = targetdir + mag_current + pdkname + '.tcl'
+                print('Searching for supported devices in PDK script ' + pdkscript + '.')
+
+                if os.path.isfile(pdkscript):
+                    librex = re.compile('^[ \t]*set[ \t]+PDKNAMESPACE[ \t]+([^ \t]+)$')
+                    devrex = re.compile('^[ \t]*proc[ \t]+([^ :\t]+)::([^ \t_]+)_defaults')
+                    fixrex = re.compile('^[ \t]*return[ \t]+\[([^ :\t]+)::fixed_draw[ \t]+([^ \t]+)[ \t]+')
+                    devlist = []
+                    fixedlist = []
+                    with open(pdkscript, 'r') as ifile:
+                        scripttext = ifile.read().splitlines()
+                        for line in scripttext:
+                            lmatch = librex.match(line)
+                            if lmatch:
+                                pdklibrary = lmatch.group(1)
+                            dmatch = devrex.match(line)
+                            if dmatch:
+                                if dmatch.group(1) == pdklibrary:
+                                    devlist.append(dmatch.group(2))
+                            fmatch = fixrex.match(line)
+                            if fmatch:
+                                if fmatch.group(1) == pdklibrary:
+                                    fixedlist.append(fmatch.group(2))
+
+                # Diagnostic
+                print("PDK library is " + str(pdklibrary))
+
+            # Link to the PDK magic startup file from the target directory
+            # If there is no -F version then look for one without -F (open source PDK)
+            startup_script = targetdir + mag_current + pdkname + '-F.magicrc'
+            if not os.path.isfile(startup_script):
+                startup_script = targetdir + mag_current + pdkname + '.magicrc'
+
+            if have_mag_8_2 and os.path.isfile(startup_script):
+                # If the symbolic link exists, remove it.
+                if os.path.isfile(destlibdir + '/.magicrc'):
+                    os.remove(destlibdir + '/.magicrc')
+                os.symlink(startup_script, destlibdir + '/.magicrc')
+ 
+                # Find GDS file names in the source
+                print('Getting GDS file list from ' + srclibdir + '.')
+                gdsfilesraw = os.listdir(srclibdir)
+                gdsfiles = []
+                for gdsfile in gdsfilesraw:
+                    gdsext = os.path.splitext(gdsfile)[1].lower()
+                    if gdsext == '.gds' or gdsext == '.gdsii' or gdsext == '.gds2':
+                        gdsfiles.append(gdsfile)
+
+                # Create exclude list with glob-style matching using fnmatch
+                if len(gdsfiles) > 0:
+                    gdsnames = list(os.path.split(item)[1] for item in gdsfiles)
+                    notgdsnames = []
+                    for exclude in gds_exclude:
+                        notgdsnames.extend(fnmatch.filter(gdsnames, exclude))
+
+                    # Apply exclude list
+                    if len(notgdsnames) > 0:
+                        for file in gdsfiles[:]:
+                            if os.path.split(file)[1] in notgdsnames:
+                                gdsfiles.remove(file)
+
+                # Generate a script called "generate_magic.tcl" and leave it in
+                # the target directory.  Use it as input to magic to create the
+                # .mag files from the database.
+
+                print('Creating magic generation script to generate magic database files.') 
+
+                with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
+                    print('#!/usr/bin/env wish', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('# Script to generate .mag files from .gds    ', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('gds readonly true', file=ofile)
+                    print('gds flatten true', file=ofile)
+                    print('gds rescale false', file=ofile)
+                    print('tech unlock *', file=ofile)
+
+                    for gdsfile in gdsfiles:
+                        # Note:  DO NOT use a relative path here.
+                        print('gds read ' + srclibdir + '/' + gdsfile, file=ofile)
+
+                    # Make sure properties include the Tcl generated cell
+                    # information from the PDK script
+
+                    if pdklibrary:
+                        tclfixedlist = '{' + ' '.join(fixedlist) + '}'
+                        print('set devlist ' + tclfixedlist, file=ofile)
+                        print('set topcell [lindex [cellname list top] 0]',
+				    file=ofile)
+
+                        print('foreach cellname $devlist {', file=ofile)
+                        print('    load $cellname', file=ofile)
+                        print('    property gencell $cellname', file=ofile)
+                        print('    property parameter m=1', file=ofile)
+                        print('    property library ' + pdklibrary, file=ofile)
+                        print('}', file=ofile)
+                        print('load $topcell', file=ofile)
+
+                    print('cellname delete \(UNNAMED\)', file=ofile)
+                    print('writeall force', file=ofile)
+
+                    leffiles = []
+                    lefmacros = []
+                    if have_lefanno:
+                        # Find LEF file names in the source
+                        if ef_format:
+                            lefsrcdir = targetdir + lef_reflib + 'lefanno'
+                            lefsrclibdir = lefsrcdir + '/' + destlib
+                        else:
+                            lefsrcdir = targetdir + lef_reflib + destlib + '/lefanno'
+                            lefsrclibdir = lefsrcdir
+
+                        leffiles = os.listdir(lefsrclibdir)
+                        leffiles = list(item for item in leffiles if os.path.splitext(item)[1] == '.lef')
+                        # Get list of abstract views to make from LEF macros
+                        for leffile in leffiles:
+                            with open(leffile, 'r') as ifile:
+                                ltext = ifile.read()
+                                llines = ltext.splitlines()
+                                for lline in llines:
+                                    ltok = re.split(' |\t|\(', lline)
+                                    if ltok[0] == 'MACRO':
+                                        lefmacros.append(ltok[1])
+
+                        # Create exclude list with glob-style matching using fnmatch
+                        if len(lefmacros) > 0:
+                            lefnames = list(os.path.split(item)[1] for item in lefmacros)
+                            notlefnames = []
+                            for exclude in lef_exclude:
+                                notlefnames.extend(fnmatch.filter(lefnames, exclude))
+
+                            # Apply exclude list
+                            if len(notlefnames) > 0:
+                                for file in lefmacros[:]:
+                                    if os.path.split(file)[1] in notlefnames:
+                                        lefmacros.remove(file)
+
+                    elif have_verilog and os.path.isdir(vlibdir):
+                        # Get list of abstract views to make from verilog modules
+                        vfiles = os.listdir(vlibdir)
+                        vfiles = list(item for item in vfiles if os.path.splitext(item)[1] == '.v')
+                        for vfile in vfiles:
+                            with open(vlibdir + '/' + vfile, 'r') as ifile:
+                                vtext = ifile.read()
+                                vlines = vtext.splitlines()
+                                for vline in vlines:
+                                    vtok = re.split(' |\t|\(', vline)
+                                    try:
+                                        if vtok[0] == 'module':
+                                            if vtok[1] not in lefmacros:
+                                                lefmacros.append(vtok[1])
+                                    except:
+                                        pass
+
+                        # Create exclude list with glob-style matching using fnmatch
+                        if len(lefmacros) > 0:
+                            lefnames = list(os.path.split(item)[1] for item in lefmacros)
+                            notlefnames = []
+                            for exclude in verilog_exclude:
+                                notlefnames.extend(fnmatch.filter(lefnames, exclude))
+
+                            # Apply exclude list
+                            if len(notlefnames) > 0:
+                                for file in lefmacros[:]:
+                                    if os.path.split(file)[1] in notlefnames:
+                                        lefmacros.remove(file)
+
+                    elif have_cdl and os.path.isdir(clibdir):
+                        # Get list of abstract views to make from CDL subcircuits
+                        cfiles = os.listdir(clibdir)
+                        cfiles = list(item for item in cfiles if os.path.splitext(item)[1] == '.cdl')
+                        for cfile in cfiles:
+                            with open(clibdir + '/' + cfile, 'r') as ifile:
+                                ctext = ifile.read()
+                                clines = ctext.splitlines()
+                                for cline in clines:
+                                    ctok = cline.split()
+                                    try:
+                                        if ctok[0].lower() == '.subckt':
+                                            if ctok[1] not in lefmacros:
+                                                lefmacros.append(ctok[1])
+                                    except:
+                                        pass
+
+                        # Create exclude list with glob-style matching using fnmatch
+                        if len(lefmacros) > 0:
+                            lefnames = list(os.path.split(item)[1] for item in lefmacros)
+                            notlefnames = []
+                            for exclude in cdl_exclude:
+                                notlefnames.extend(fnmatch.filter(lefnames, exclude))
+
+                            # Apply exclude list
+                            if len(notlefnames) > 0:
+                                for file in lefmacros[:]:
+                                    if os.path.split(file)[1] in notlefnames:
+                                        lefmacros.remove(file)
+
+                    elif have_spice and os.path.isdir(slibdir):
+                        # Get list of abstract views to make from SPICE subcircuits
+                        sfiles = os.listdir(slibdir)
+                        sfiles = list(item for item in sfiles)
+                        for sfile in sfiles:
+                            with open(slibdir + '/' + sfile, 'r') as ifile:
+                                stext = ifile.read()
+                                slines = stext.splitlines()
+                                for sline in slines:
+                                    stok = sline.split()
+                                    try:
+                                        if stok[0].lower() == '.subckt':
+                                            if stok[1] not in lefmacros:
+                                                lefmacros.append(stok[1])
+                                    except:
+                                        pass
+
+                        # Create exclude list with glob-style matching using fnmatch
+                        if len(lefmacros) > 0:
+                            lefnames = list(os.path.split(item)[1] for item in lefmacros)
+                            notlefnames = []
+                            for exclude in spice_exclude:
+                                notlefnames.extend(fnmatch.filter(lefnames, exclude))
+
+                            # Apply exclude list
+                            if len(notlefnames) > 0:
+                                for file in lefmacros[:]:
+                                    if os.path.split(file)[1] in notlefnames:
+                                        lefmacros.remove(file)
+
+                    if not lefmacros:
+                        print('No source for abstract views:  Abstract views not made.')
+                    elif not have_lef:
+                        # This library has a GDS database but no LEF database.  Use
+                        # magic to create abstract views of the GDS cells.  If
+                        # option "annotate" is given, then read the LEF file after
+                        # loading the database file to annotate the cell with
+                        # information from the LEF file.  This usually indicates
+                        # that the LEF file has some weird definition of obstruction
+                        # layers and we want to normalize them by using magic's LEF
+                        # write procedure, but we still need the pin use and class
+                        # information from the LEF file, and maybe the bounding box.
+
+                        for leffile in leffiles:
+                            if have_lefanno:
+                                print('lef read ' + lefsrclibdir + '/' + leffile, file=ofile)
+                        for lefmacro in lefmacros:
+                            print('if {[cellname list exists ' + lefmacro + '] != 0} {', file=ofile)
+                            print('   load ' + lefmacro, file=ofile)
+                            print('   lef write ' + lefmacro + ' -hide', file=ofile)
+                            print('}', file=ofile)
+                    print('puts stdout "Done."', file=ofile)
+                    print('quit -noprompt', file=ofile)
+
+                print('Running magic to create magic database files.')
+                sys.stdout.flush()
+
+                # Run magic to read in the GDS file and write out magic databases.
+                with open(destlibdir + '/generate_magic.tcl', 'r') as ifile:
+                    mproc = subprocess.run(['magic', '-dnull', '-noconsole'],
+				stdin = ifile, stdout = subprocess.PIPE,
+				stderr = subprocess.PIPE, cwd = destlibdir,
+				universal_newlines = True)
+                    if mproc.stdout:
+                        for line in mproc.stdout.splitlines():
+                            print(line)
+                    if mproc.stderr:
+                        print('Error message output from magic:')
+                        for line in mproc.stderr.splitlines():
+                            print(line)
+                    if mproc.returncode != 0:
+                        print('ERROR:  Magic exited with status ' + str(mproc.returncode))
+
+                if not have_lef:
+                    print('No LEF file install;  need to generate LEF.')
+                    # Remove the lefanno/ target and its contents.
+                    if have_lefanno:
+                        if ef_format:
+                            lefannosrcdir = targetdir + lef_reflib + 'lefanno'
+                        else:
+                            lefannosrcdir = targetdir + lef_reflib + destlib + '/lefanno'
+                        if os.path.isdir(lefannosrcdir):
+                            shutil.rmtree(lefannosrcdir)
+
+                    if ef_format:
+                        destlefdir = targetdir + lef_reflib + 'lef'
+                        destleflibdir = destlefdir + '/' + destlib
+                    else:
+                        destlefdir = targetdir + lef_reflib + destlib + '/lef'
+                        destleflibdir = destlefdir
+
+                    os.makedirs(destleflibdir, exist_ok=True)
+                    leflist = os.listdir(destlibdir)
+                    leflist = list(item for item in leflist if os.path.splitext(item)[1] == '.lef')
+
+                    # All macros will go into one file
+                    destleflib = destleflibdir + '/' + destlib + '.lef'
+                    # Remove any existing library file from the target directory
+                    if os.path.isfile(destleflib):
+                        print('Removing existing library ' + destleflib)
+                        os.remove(destleflib)
+
+                    first = True
+                    with open(destleflib, 'w') as ofile:
+                        for leffile in leflist:
+                            # Remove any existing single file from the target directory
+                            if os.path.isfile(destleflibdir + '/' + leffile):
+                                print('Removing ' + destleflibdir + '/' + leffile)
+                                os.remove(destleflibdir + '/' + leffile)
+
+                            # Append contents
+                            sourcelef =  destlibdir + '/' + leffile
+                            with open(sourcelef, 'r') as ifile:
+                                leflines = ifile.read().splitlines()
+                                if not first:
+                                    # Remove header from all but the first file
+                                    leflines = leflines[8:]
+                                else:
+                                    first = False
+
+                            for line in leflines:
+                                print(line, file=ofile)
+
+                            # Remove file from the source directory
+                            print('Removing source file ' + sourcelef)
+                            os.remove(sourcelef)
+
+                    # Set have_lef now that LEF files were made, so they
+                    # can be used to generate the maglef/ databases.
+                    have_lef = True
+
+            elif not have_mag_8_2:
+                print('The installer is not able to run magic.')
+            else:
+                print("Master PDK magic startup file not found.  Did you install")
+                print("PDK tech files before PDK vendor files?")
+
+    if have_lef and not no_lef_convert:
+        print("Migrating LEF files to layout.")
+        if ef_format:
+            destdir = targetdir + '/libs.ref/' + 'maglef'
+            srcdir = targetdir + lef_reflib + 'lef'
+            magdir = targetdir + gds_reflib + 'mag'
+            cdldir = targetdir + cdl_reflib + 'cdl'
+            os.makedirs(destdir, exist_ok=True)
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+
+            if ef_format:
+                destlibdir = destdir + '/' + destlib
+                srclibdir = srcdir + '/' + destlib
+                maglibdir = magdir + '/' + destlib
+                cdllibdir = cdldir + '/' + destlib
+            else:
+                destdir = targetdir + '/libs.ref/' + destlib + '/maglef'
+                srcdir = targetdir + lef_reflib + destlib + '/lef'
+                magdir = targetdir + gds_reflib + destlib + '/mag'
+                cdldir = targetdir + cdl_reflib + destlib + '/cdl'
+
+                destlibdir = destdir
+                srclibdir = srcdir
+                maglibdir = magdir
+                cdllibdir = cdldir
+
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # Link to the PDK magic startup file from the target directory
+            startup_script = targetdir + mag_current + pdkname + '-F.magicrc'
+            if not os.path.isfile(startup_script):
+                startup_script = targetdir + mag_current + pdkname + '.magicrc'
+
+            if have_mag_8_2 and os.path.isfile(startup_script):
+                # If the symbolic link exists, remove it.
+                if os.path.isfile(destlibdir + '/.magicrc'):
+                    os.remove(destlibdir + '/.magicrc')
+                os.symlink(startup_script, destlibdir + '/.magicrc')
+ 
+                # Find LEF file names in the source
+                leffiles = os.listdir(srclibdir)
+                leffiles = list(item for item in leffiles if os.path.splitext(item)[1].lower() == '.lef')
+
+                # Get list of abstract views to make from LEF macros
+                lefmacros = []
+                err_no_macros = False
+                for leffile in leffiles:
+                    with open(srclibdir + '/' + leffile, 'r') as ifile:
+                        ltext = ifile.read()
+                        llines = ltext.splitlines()
+                        for lline in llines:
+                            ltok = re.split(' |\t|\(', lline)
+                            if ltok[0] == 'MACRO':
+                                lefmacros.append(ltok[1])
+
+                # Create exclude list with glob-style matching using fnmatch
+                if len(lefmacros) > 0:
+                    lefnames = list(os.path.split(item)[1] for item in lefmacros)
+                    notlefnames = []
+                    for exclude in lef_exclude:
+                        notlefnames.extend(fnmatch.filter(lefnames, exclude))
+
+                    # Apply exclude list
+                    if len(notlefnames) > 0:
+                        for file in lefmacros[:]:
+                            if os.path.split(file)[1] in notlefnames:
+                                lefmacros.remove(file)
+
+                if len(leffiles) == 0:
+                    print('Warning:  No LEF files found in ' + srclibdir)
+                    continue
+
+                print('Generating conversion script to create magic databases from LEF')
+
+                # Generate a script called "generate_magic.tcl" and leave it in
+                # the target directory.  Use it as input to magic to create the
+                # .mag files from the database.
+
+                with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
+                    print('#!/usr/bin/env wish', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('# Script to generate .mag files from .lef    ', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('tech unlock *', file=ofile)
+
+                    # If there are devices in the LEF file that come from the
+                    # PDK library, then copy this list into the script.
+
+                    if pdklibrary:
+                        shortdevlist = []
+                        for macro in lefmacros:
+                            if macro in devlist:
+                                shortdevlist.append(macro)
+
+                        tcldevlist = '{' + ' '.join(shortdevlist) + '}'
+                        print('set devlist ' + tcldevlist, file=ofile)
+
+                    for leffile in leffiles:
+                        print('lef read ' + srclibdir + '/' + leffile, file=ofile)
+
+                    for lefmacro in lefmacros:
+
+                        # To be completed:  Parse SPICE file for port order, make
+                        # sure ports are present and ordered.
+
+                        if pdklibrary and lefmacro in shortdevlist:
+                            print('set cellname ' + lefmacro, file=ofile)
+                            print('if {[lsearch $devlist $cellname] >= 0} {',
+					file=ofile)
+                            print('    load $cellname', file=ofile)
+                            print('    property gencell $cellname', file=ofile)
+                            print('    property parameter m=1', file=ofile)
+                            print('    property library ' + pdklibrary, file=ofile)
+                            print('}', file=ofile)
+
+                    # Load one of the LEF files so that the default (UNNAMED) cell
+                    # is not loaded, then delete (UNNAMED) so it doesn't generate
+                    # an error message.
+                    if len(lefmacros) > 0:
+                        print('load ' + lefmacros[0], file=ofile)
+                        print('cellname delete \(UNNAMED\)', file=ofile)
+                    else:
+                        err_no_macros = True
+                    print('writeall force', file=ofile)
+                    print('puts stdout "Done."', file=ofile)
+                    print('quit -noprompt', file=ofile)
+
+                if err_no_macros == True:
+                    print('Warning:  No LEF macros were defined.')
+
+                print('Running magic to create magic databases from LEF')
+                sys.stdout.flush()
+
+                # Run magic to read in the LEF file and write out magic databases.
+                with open(destlibdir + '/generate_magic.tcl', 'r') as ifile:
+                    mproc = subprocess.run(['magic', '-dnull', '-noconsole'],
+				stdin = ifile, stdout = subprocess.PIPE,
+				stderr = subprocess.PIPE, cwd = destlibdir,
+				universal_newlines = True)
+                    if mproc.stdout:
+                        for line in mproc.stdout.splitlines():
+                            print(line)
+                    if mproc.stderr:
+                        print('Error message output from magic:')
+                        for line in mproc.stderr.splitlines():
+                            print(line)
+                    if mproc.returncode != 0:
+                        print('ERROR:  Magic exited with status ' + str(mproc.returncode))
+
+
+                # Now list all the .mag files generated, and for each, read the
+                # corresponding file from the mag/ directory, pull the GDS file
+                # properties, and add those properties to the maglef view.  Also
+                # read the CDL (or SPICE) netlist, read the ports, and rewrite
+                # the port order in the mag and maglef file accordingly.
+
+                # Diagnostic
+                print('Annotating files in ' + destlibdir)
+                sys.stdout.flush()
+                magfiles = os.listdir(destlibdir)
+                magfiles = list(item for item in magfiles if os.path.splitext(item)[1] == '.mag')
+                for magroot in magfiles:
+                    magname = os.path.splitext(magroot)[0]
+                    magfile = maglibdir + '/' + magroot
+                    magleffile = destlibdir + '/' + magroot
+                    prop_lines = get_gds_properties(magfile)
+
+                    # Make sure properties include the Tcl generated cell
+                    # information from the PDK script
+
+                    prop_gencell = []
+                    if pdklibrary:
+                        if magname in fixedlist:
+                            prop_gencell.append('gencell ' + magname)
+                            prop_gencell.append('library ' + pdklibrary)
+                            prop_gencell.append('parameter m=1')
+
+                    nprops = len(prop_lines) + len(prop_gencell)
+
+                    cdlfile = cdllibdir + '/' + magname + '.cdl'
+                    if os.path.exists(cdlfile):
+                        cdlfiles = [cdlfile]
+                    else:
+                        # Assume there is at least one file with all cell subcircuits
+                        # in it.
+                        try:
+                            cdlfiles = glob.glob(cdllibdir + '/*.cdl')
+                        except:
+                            pass
+                    if len(cdlfiles) > 0:
+                        for cdlfile in cdlfiles:
+                            port_dict = get_subckt_ports(cdlfile, magname)
+                            if port_dict != {}:
+                                break
+                    else:
+                        port_dict = {}
+
+                    if port_dict == {}:
+                        print('No CDL file contains ' + destlib + ' device ' + magname)
+                        cdlfile = None
+                        # To be done:  If destlib is 'primitive', then look in
+                        # SPICE models for port order.
+                        if destlib == 'primitive':
+                            print('Fix me:  Need to look in SPICE models!')
+
+                    proprex = re.compile('<< properties >>')
+                    endrex = re.compile('<< end >>')
+                    rlabrex = re.compile('rlabel[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+([^ \t]+)')
+                    flabrex = re.compile('flabel[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+([^ \t]+)')
+                    portrex = re.compile('port[ \t]+([^ \t]+)[ \t]+(.*)')
+                    gcellrex = re.compile('string gencell')
+                    portnum = -1
+
+                    with open(magleffile, 'r') as ifile:
+                        magtext = ifile.read().splitlines()
+
+                    with open(magleffile, 'w') as ofile:
+                        has_props = False
+                        is_gencell = False
+                        for line in magtext:
+                            tmatch = portrex.match(line)
+                            if tmatch:
+                                if portnum >= 0:
+                                    line = 'port ' + str(portnum) + ' ' + tmatch.group(2)
+                                else:
+                                    line = 'port ' + tmatch.group(1) + ' ' + tmatch.group(2)
+                            ematch = endrex.match(line)
+                            if ematch and nprops > 0:
+                                if not has_props:
+                                    print('<< properties >>', file=ofile)
+                                if not is_gencell:
+                                    for prop in prop_gencell:
+                                        print('string ' + prop, file=ofile)
+                                for prop in prop_lines:
+                                    print('string ' + prop, file=ofile)
+
+                            print(line, file=ofile)
+                            pmatch = proprex.match(line)
+                            if pmatch:
+                                has_props = True
+
+                            gmatch = gcellrex.match(line)
+                            if gmatch:
+                                is_gencell = True
+
+                            lmatch = flabrex.match(line)
+                            if not lmatch:
+                                lmatch = rlabrex.match(line)
+                            if lmatch:
+                                labname = lmatch.group(1).lower()
+                                try:
+                                    portnum = port_dict[labname]
+                                except:
+                                    portnum = -1
+
+                    if os.path.exists(magfile):
+                        with open(magfile, 'r') as ifile:
+                            magtext = ifile.read().splitlines()
+
+                        with open(magfile, 'w') as ofile:
+                            for line in magtext:
+                                tmatch = portrex.match(line)
+                                if tmatch:
+                                    if portnum >= 0:
+                                        line = 'port ' + str(portnum) + ' ' + tmatch.group(2)
+                                    else:
+                                        line = 'port ' + tmatch.group(1) + ' ' + tmatch.group(2)
+                                ematch = endrex.match(line)
+                                print(line, file=ofile)
+                                lmatch = flabrex.match(line)
+                                if not lmatch:
+                                    lmatch = rlabrex.match(line)
+                                if lmatch:
+                                    labname = lmatch.group(1).lower()
+                                    try:
+                                        portnum = port_dict[labname]
+                                    except:
+                                        portnum = -1
+                    elif os.path.splitext(magfile)[1] == '.mag':
+                        # NOTE:  Possibly this means the GDS cell has a different name.
+                        print('Error: No file ' + magfile + '.  Why is it in maglef???')
+
+            elif not have_mag_8_2:
+                print('The installer is not able to run magic.')
+            else:
+                print("Master PDK magic startup file not found.  Did you install")
+                print("PDK tech files before PDK vendor files?")
+
+    # If SPICE or CDL databases were specified, then convert them to
+    # a form that can be used by ngspice, using the cdl2spi.py script 
+
+    if have_spice:
+        if ef_format:
+            if not os.path.isdir(targetdir + cdl_reflib + 'spi'):
+                os.makedirs(targetdir + cdl_reflib + 'spi', exist_ok=True)
+
+    elif have_cdl and not no_cdl_convert:
+        if ef_format:
+            if not os.path.isdir(targetdir + cdl_reflib + 'spi'):
+                os.makedirs(targetdir + cdl_reflib + 'spi', exist_ok=True)
+
+        print("Migrating CDL netlists to SPICE.")
+        sys.stdout.flush()
+
+        if ef_format:
+            destdir = targetdir + cdl_reflib + 'spi'
+            srcdir = targetdir + cdl_reflib + 'cdl'
+            os.makedirs(destdir, exist_ok=True)
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+
+            if ef_format:
+                destlibdir = destdir + '/' + destlib
+                srclibdir = srcdir + '/' + destlib
+            else:
+                destdir = targetdir + cdl_reflib + destlib + '/spice'
+                srcdir = targetdir + cdl_reflib + destlib + '/cdl'
+
+                destlibdir = destdir
+                srclibdir = srcdir
+
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # Find CDL file names in the source
+            # If CDL is marked compile-only then ONLY convert <distdir>.cdl
+            if cdl_compile_only:
+                alllibname = destlibdir + '/' + destlib + '.cdl'
+                if not os.path.exists(alllibname):
+                    cdl_compile_only = False
+                else:
+                    cdlfiles = [alllibname]
+
+            if not cdl_compile_only:
+                cdlfiles = os.listdir(srclibdir)
+                cdlfiles = list(item for item in cdlfiles if os.path.splitext(item)[1].lower() == '.cdl')
+
+            # The directory with scripts should be in ../common with respect
+            # to the Makefile that determines the cwd.
+            scriptdir = os.path.split(os.getcwd())[0] + '/common'
+
+            # Run cdl2spi.py script to read in the CDL file and write out SPICE
+            for cdlfile in cdlfiles:
+                if ef_format:
+                    spiname = os.path.splitext(cdlfile)[0] + '.spi'
+                else:
+                    spiname = os.path.splitext(cdlfile)[0] + '.spice'
+                procopts = [scriptdir + '/cdl2spi.py', srclibdir + '/' + cdlfile, destlibdir + '/' + spiname]
+                if do_cdl_scaleu:
+                    procopts.append('-dscale=u')
+                for item in ignorelist:
+                    procopts.append('-ignore=' + item)
+
+                print('Running (in ' + destlibdir + '): ' + ' '.join(procopts))
+                pproc = subprocess.run(procopts,
+			stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, cwd = destlibdir,
+			universal_newlines = True)
+                if pproc.stdout:
+                    for line in pproc.stdout.splitlines():
+                        print(line)
+                if pproc.stderr:
+                    print('Error message output from cdl2spi.py:')
+                    for line in pproc.stderr.splitlines():
+                        print(line)
+
+    elif have_gds and not no_gds_convert:
+        # If neither SPICE nor CDL formats is available in the source, then
+        # read GDS;  if the result has no ports, then read the corresponding
+        # LEF library to get port information.  Then write out a SPICE netlist
+        # for the whole library.  NOTE:  If there is no CDL or SPICE source,
+        # then the port numbering is arbitrary, and becomes whatever the
+        # output of this script makes it.
+
+        if ef_format:
+            destdir = targetdir + cdl_reflib + 'spi'
+            srcdir = targetdir + gds_reflib + 'gds'
+            lefdir = targetdir + lef_reflib + 'lef'
+            os.makedirs(destdir, exist_ok=True)
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+
+            if ef_format:
+                destlibdir = destdir + '/' + destlib
+                srclibdir = srcdir + '/' + destlib
+                leflibdir = lefdir + '/' + destlib
+            else:
+                destdir = targetdir + cdl_reflib + destlib + '/spice'
+                srcdir = targetdir + gds_reflib + destlib + '/gds'
+                lefdir = targetdir + lef_reflib + destlib + '/lef'
+
+                destlibdir = destdir
+                srclibdir = srcdir
+                leflibdir = lefdir
+
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # Link to the PDK magic startup file from the target directory
+            startup_script = targetdir + mag_current + pdkname + '-F.magicrc'
+            if not os.path.isfile(startup_script):
+                startup_script = targetdir + mag_current + pdkname + '.magicrc'
+            if os.path.isfile(startup_script):
+                # If the symbolic link exists, remove it.
+                if os.path.isfile(destlibdir + '/.magicrc'):
+                    os.remove(destlibdir + '/.magicrc')
+                os.symlink(startup_script, destlibdir + '/.magicrc')
+
+            # Get the consolidated GDS library file, or a list of all GDS files
+            # if there is no single consolidated library
+
+            allgdslibname = srclibdir + '/' + destlib + '.gds'
+            if not os.path.isfile(allgdslibname):
+                glist = glob.glob(srclibdir + '/*.gds')
+                glist.extend(glob.glob(srclibdir + '/*.gdsii'))
+                glist.extend(glob.glob(srclibdir + '/*.gds2'))
+
+            allleflibname = leflibdir + '/' + destlib + '.lef'
+            if not os.path.isfile(allleflibname):
+                llist = glob.glob(leflibdir + '/*.lef')
+
+            print('Creating magic generation script to generate SPICE library.') 
+            with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
+                print('#!/usr/bin/env wish', file=ofile)
+                print('#---------------------------------------------', file=ofile)
+                print('# Script to generate SPICE library from GDS   ', file=ofile)
+                print('#---------------------------------------------', file=ofile)
+                print('drc off', file=ofile)
+                print('gds readonly true', file=ofile)
+                print('gds flatten true', file=ofile)
+                print('gds rescale false', file=ofile)
+                print('tech unlock *', file=ofile)
+
+                if not os.path.isfile(allgdslibname):
+                    for gdsfile in glist:
+                        print('gds read ' + gdsfile, file=ofile)
+                else:
+                    print('gds read ' + allgdslibname, file=ofile)
+
+                if not os.path.isfile(allleflibname):
+                    # Annotate the cells with information from the LEF files
+                    for leffile in llist:
+                        print('lef read ' + leffile, file=ofile)
+                else:
+                    print('lef read ' + allleflibname, file=ofile)
+
+                # Load first file and remove the (UNNAMED) cell
+                if not os.path.isfile(allgdslibname):
+                    print('load ' + os.path.splitext(glist[0])[0], file=ofile)
+                else:
+                    gdslibroot = os.path.split(allgdslibname)[1]
+                    print('load ' + os.path.splitext(gdslibroot)[0], file=ofile)
+                print('cellname delete \(UNNAMED\)', file=ofile)
+
+                print('ext2spice lvs', file=ofile)
+
+                # NOTE:  Leaving "subcircuit top" as "auto" (default) can cause
+                # cells like decap that have no I/O to be output without a subcircuit
+                # wrapper.  Also note that if this happens, it is an indication that
+                # power supplies have not been labeled as ports, which is harder to
+                # handle and should be fixed in the source.
+                print('ext2spice subcircuit top on', file=ofile)
+
+                print('ext2spice cthresh 0.1', file=ofile)
+
+                if os.path.isfile(allgdslibname):
+                    print('select top cell', file=ofile)
+                    print('set glist [cellname list children]', file=ofile)
+                    print('foreach cell $glist {', file=ofile)
+                else:
+                    print('foreach cell [cellname list top] {', file=ofile)
+
+                print('    load $cell', file=ofile)
+                print('    puts stdout "Extracting cell $cell"', file=ofile)
+                print('    extract all', file=ofile)
+                print('    ext2spice', file=ofile)
+                print('}', file=ofile)
+                print('puts stdout "Done."', file=ofile)
+                print('quit -noprompt', file=ofile)
+
+            # Run magic to read in the individual GDS files and
+            # write out the consolidated GDS library
+
+            print('Running magic to create GDS library.')
+            sys.stdout.flush()
+
+            mproc = subprocess.run(['magic', '-dnull', '-noconsole',
+				destlibdir + '/generate_magic.tcl'],
+				stdin = subprocess.DEVNULL,
+				stdout = subprocess.PIPE,
+				stderr = subprocess.PIPE, cwd = destlibdir,
+				universal_newlines = True)
+            if mproc.stdout:
+                for line in mproc.stdout.splitlines():
+                    print(line)
+            if mproc.stderr:
+                print('Error message output from magic:')
+                for line in mproc.stderr.splitlines():
+                    print(line)
+            if mproc.returncode != 0:
+                print('ERROR:  Magic exited with status ' + str(mproc.returncode))
+
+            # Remove intermediate extraction files
+            extfiles = glob.glob(destlibdir + '/*.ext')
+            for extfile in extfiles:
+                os.remove(extfile)
+
+            # If the GDS file was a consolidated file of all cells, then
+            # create a similar SPICE library of all cells.
+
+            if os.path.isfile(allgdslibname):
+                spiext = '.spice' if not ef_format else '.spi'
+                create_spice_library(destlibdir, destlib, spiext, do_compile_only, do_stub, excludelist)
+
+    sys.exit(0)
diff --git a/common/insert_property.py b/common/insert_property.py
new file mode 100755
index 0000000..1ee5687
--- /dev/null
+++ b/common/insert_property.py
@@ -0,0 +1,133 @@
+#!/usr/bin/env python3
+#
+# insert_property.py:  For the given install path, library name, and cellname,
+# find the Magic layout of the cell, and add the specified property string.
+# If the property exists and is the same as specified, then it remains the
+# same.  If the property exists but has a different value, it is replaced.
+# The property is added to the layout in both the mag/ (full) and maglef/
+# (abstract) directories.  Option "-maglef" or "-mag" will restrict the
+# use to only the view indicated by the option.
+# 
+# e.g.:
+#
+# insert_property.py /home/tim/projects/efabless/tech/SkyWater/EFS8A \
+#	s8iom0 s8iom0s8_top_gpio "FIXED_BBOX 0 607 15000 40200"
+
+import os
+import re
+import sys
+
+def addprop(filename, propstring, noupdate):
+    with open(filename, 'r') as ifile:
+        magtext = ifile.read().splitlines() 
+
+    propname = propstring.split()[0]
+    proprex = re.compile('<< properties >>')
+    endrex = re.compile('<< end >>')
+
+    in_props = False
+    printed = False
+    done = False
+
+    with open(filename, 'w') as ofile:
+        for line in magtext:
+            pmatch = proprex.match(line)
+            if pmatch:
+                in_props = True
+            elif in_props:
+                linetok = line.split()
+                if linetok[0] == 'string':
+                    testname = linetok[1]
+                    testval = linetok[2]
+                    if testname == propname:
+                        if noupdate == False:
+                            print('string ' + propstring, file=ofile)
+                            printed = True
+                        done = True
+
+            ematch = endrex.match(line)
+            if ematch:
+                if in_props == False:
+                    print('<< properties >>', file=ofile)
+                if done == False:
+                    print('string ' + propstring, file=ofile)
+
+            if not printed:
+                print(line, file=ofile)
+            printed = False
+
+def usage():
+    print("insert_property.py <path_to_pdk> <libname> <cellname> <prop_string> [option]")
+    print("  options:")
+    print("   -mag      do only for the view in the mag/ directory")
+    print("   -maglef   do only for the view in the maglef/ directory")
+    print("   -noupdate do not replace the property if it already exists in the file")
+    return 0
+
+if __name__ == '__main__':
+
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    if len(arguments) < 4:
+        print("Not enough options given to insert_property.py.")
+        usage()
+        sys.exit(0)
+
+    source = arguments[0]
+    libname = arguments[1]
+    cellname = arguments[2]
+    propstring = arguments[3]
+
+    noupdate = True if '-noupdate' in options else False
+    fail = 0
+
+    efformat = True if '-ef_format' in options else False
+
+    domag = True
+    domaglef = True
+    if '-mag' in options and '-maglef' not in options:
+        domaglef = False
+    if '-maglef' in options and '-mag' not in options:
+        domag = False
+
+    if domag:
+        if efformat:
+            filename = source + '/libs.ref/mag/' + libname + '/' + cellname + '.mag'
+        else:
+            filename = source + '/libs.ref/' + libname + '/mag/' + cellname + '.mag'
+
+        if os.path.isfile(filename):
+            addprop(filename, propstring, noupdate)
+        else:
+            fail += 1
+    else:
+        fail += 1
+
+    if domaglef:
+        if efformat:
+            filename = source + '/libs.ref/maglef/' + libname + '/' + cellname + '.mag'
+        else:
+            filename = source + '/libs.ref/' + libname + '/maglef/' + cellname + '.mag'
+
+        if os.path.isfile(filename):
+            addprop(filename, propstring, noupdate)
+        else:
+            fail += 1
+    else:
+        fail += 1
+
+    if fail == 2:
+        print('Error:  No layout file in either mag/ or maglef/', file=sys.stderr)
+        if efformat:
+            print('(' + source + '/libs.ref/mag[lef]/' + libname +
+		    '/' + cellname + '.mag)', file=sys.stderr)
+        else:
+            print('(' + source + '/libs.ref/' + libname + '/mag[lef]/'
+		    + cellname + '.mag)', file=sys.stderr)
+
diff --git a/common/makestub.py b/common/makestub.py
new file mode 100755
index 0000000..a5334d7
--- /dev/null
+++ b/common/makestub.py
@@ -0,0 +1,122 @@
+#!/usr/bin/env python3
+#
+#-------------------------------------------------------------------
+#  makestub.py
+#
+# Read a CDL or SPICE netlist and remove all contents from subcircuits,
+# leaving only the .SUBCKT ... .ENDS wrapper.  Used as a filter, so it
+# replaces the original file with the modified one.  If the original
+# file is a symbolic link, then it is first unlinked and replaced with
+# the new contents.
+#
+# Use:
+#
+# 	makestub.py <path_to_netlist_file>
+#
+#-------------------------------------------------------------------
+
+import os
+import re
+import sys
+import stat
+import textwrap
+
+def makeuserwritable(filepath):
+    if os.path.exists(filepath):
+        st = os.stat(filepath)
+        os.chmod(filepath, st.st_mode | stat.S_IWUSR)
+
+def generate_stubs(netlist_path, output_path):
+    netlist_dir = os.path.split(netlist_path)[0]
+    netlist_filename = os.path.split(netlist_path)[1]
+    netlist_root = os.path.splitext(netlist_filename)[0]
+    netlist_ext = os.path.splitext(netlist_filename)[1]
+
+    if not os.path.exists(netlist_path):
+        print('Error:  Specified file "' + netlist_path + '" does not exist!')
+        return
+
+    if output_path == None:
+        output_path = netlist_path
+
+    with open(netlist_path, 'r') as ifile:
+        spicetext = ifile.read().splitlines()
+
+    # Remove blank lines and comment lines
+    spicelines = []
+    for line in spicetext:
+        if len(line) > 0:
+            if line[0] != '*':
+                spicelines.append(line)
+
+    # Remove line extensions
+    spicetext = '\n'.join(spicelines)
+    spicelines = spicetext.replace('\n+', ' ').splitlines()
+
+    # SPICE subcircuit definition:
+    subcrex = re.compile(r'[ \t]*\.subckt[ \t]+([^ \t]+)[ \t]+(.*)$', re.IGNORECASE)
+    endsrex = re.compile(r'[ \t]*\.ends[ \t]*', re.IGNORECASE)
+
+    spiceoutlines = []
+
+    insub = False
+    for line in spicelines:
+        if insub:
+            ematch = endsrex.match(line)
+            if ematch:
+                insub = False
+                spiceoutlines.append(line)
+        else:
+            smatch = subcrex.match(line)
+            if smatch:
+                insub = True
+                spiceoutlines.append('')
+                spiceoutlines.append('*----------------------------------------------')
+                spiceoutlines.append('* SPICE stub entry for ' + smatch.group(1) + '.')
+                spiceoutlines.append('*----------------------------------------------')
+                spiceoutlines.append('')
+            spiceoutlines.append(line)
+
+    if output_path == netlist_path:
+        if os.path.islink(netlist_path):
+            os.unlink(netlist_path)
+
+    # Re-wrap continuation lines at 100 characters
+    wrappedlines = []
+    for line in spiceoutlines:
+        wrappedlines.append('\n+ '.join(textwrap.wrap(line, 100)))
+
+    # Just in case the file in the source repo is not user-writable
+    if os.path.exists(output_path):
+        makeuserwritable(output_path)
+
+    with open(output_path, 'w') as ofile:
+        for line in wrappedlines:
+            print(line, file=ofile)
+
+# If called as main, run generate_stubs
+
+if __name__ == '__main__':
+
+    # Divide up command line into options and arguments
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    # Need one argument:  path to CDL or SPICE netlist
+    # If two arguments, then 2nd argument is the output file.
+
+    if len(arguments) == 2:
+        netlist_path = arguments[0]
+        output_path = arguments[1]
+        generate_stubs(netlist_path, output_path)
+    elif len(arguments) != 1:
+        print("Usage:  makestub.py <file_path> [<output_path>]")
+    elif len(arguments) == 1:
+        netlist_path = arguments[0]
+        generate_stubs(netlist_path, None)
+
diff --git a/common/orig/foundry_install.py b/common/orig/foundry_install.py
new file mode 100755
index 0000000..96caf14
--- /dev/null
+++ b/common/orig/foundry_install.py
@@ -0,0 +1,1175 @@
+#!/usr/bin/env python3
+#
+# foundry_install.py
+#
+# This file generates the local directory structure and populates the
+# directories with foundry vendor data.
+#
+# Options:
+#    -link_from <type>	Make symbolic links to vendor files from target
+#			Types are: "none", "source", or a PDK name.
+#			Default "none" (copy all files from source)
+#    -ef_names		Use efabless naming (libs.ref/techLEF),
+#			otherwise use generic naming (libs.tech/lef)
+#
+#    -source <path>	Path to source data top level directory
+#    -target <path>	Path to target top level directory
+#
+#
+# All other options represent paths to vendor files.  They may all be
+# wildcarded with "*" to represent, e.g., version number directories,
+# or names of supported libraries.  Where wildcards exist, if there is
+# more than one directory in the path, the value represented by "*"
+# will first be checked against library names.  If no library name is
+# found, then the wildcard value will be assumed to be numeric and
+# separated by either "." or "_" to represent major/minor/sub/...
+# revision numbers (alphanumeric).
+#
+# Note only one of "-spice" or "-cdl" need be specified.  Since the
+# open source tools use ngspice, CDL files are converted to ngspice
+# syntax when needed.
+#
+#	-techlef <path>	Path to technology LEF file
+#	-doc <path>	Path to technology documentation
+#	-lef <path>	Path to LEF file
+#	-lefanno <path>	Path to LEF file (for annotation only)
+#	-spice <path>	Path to SPICE netlists
+#	-cdl <path>	Path to CDL netlists
+#	-models <path>	Path to SPICE (primitive device) models
+#	-liberty <path>	Path to Liberty timing files
+#	-gds <path>	Path to GDS data
+#	-verilog <path>	Path to verilog models
+#
+#	-library <type> <name> [<target>]	See below
+#
+# For the "-library" option, any number of libraries may be supported, and
+# one "-library" option should be provided for each supported library.
+# <type> is one of:  "digital", "primitive", or "general".  Analog and I/O
+# libraries fall under the category "general", as they are all treated the
+# same way.  <name> is the vendor name of the library.  [<target>] is the
+# (optional) local name of the library.  If omitted, then the vendor name
+# is used for the target (there is no particular reason to specify a
+# different local name for a library).
+#
+# All options "-lef", "-spice", etc., can take the additional arguments
+# 	up  <number>
+#
+# to indicate that the source hierarchy should be copied from <number>
+# levels above the files.  For example, if liberty files are kept in
+# multiple directories according to voltage level, then
+#
+# 	-liberty x/y/z/PVT_*/*.lib
+#
+# would install all .lib files directly into libs.ref/lef/<libname>/*.lib
+# while
+#
+# 	-liberty x/y/z/PVT_*/*.lib up 1
+#
+# would install all .lib files into libs.ref/lef/PVT_*/<libname>/*.lib
+#
+# Other library-specific arguments are:
+#
+#	nospec	:  Remove timing specification before installing
+#		    (used with verilog files;  needs to be extended to
+#		    liberty files)
+#	compile :  Create a single library from all components.  Used
+#		    when a foundry library has inconveniently split
+#		    an IP library (LEF, CDL, verilog, etc.) into
+#		    individual files.
+#
+# NOTE:  This script can be called once for all libraries if all file
+# types (gds, cdl, lef, etc.) happen to all work with the same wildcards.
+# However, it is more likely that it will be called several times for the
+# same PDK, once to install I/O cells, once to install digital, and so
+# forth, as made possible by the wild-carding.
+
+import re
+import os
+import sys
+import glob
+import shutil
+import subprocess
+
+def usage():
+    print("foundry_install.py [options...]")
+    print("   -link_from <name> Make symbolic links from target to <name>")
+    print("                     where <name> can be 'source' or a PDK name.")
+    print("                     Default behavior is to copy all files.")
+    print("   -copy             Copy files from source to target (default)")
+    print("   -ef_names         Use efabless naming conventions for local directories")
+    print("")
+    print("   -source <path>    Path to top of source directory tree")
+    print("   -target <path>    Path to top of target directory tree")
+    print("")
+    print("   -techlef <path>   Path to technology LEF file")
+    print("   -doc <path>       Path to technology documentation")
+    print("   -lef <path>       Path to LEF file")
+    print("   -lefanno <path>   Path to LEF file (for annotation only)")
+    print("   -spice <path>     Path to SPICE netlists")
+    print("   -cdl <path>       Path to CDL netlists")
+    print("   -models <path>    Path to SPICE (primitive device) models")
+    print("   -lib <path>       Path to Liberty timing files")
+    print("   -liberty <path>       Path to Liberty timing files")
+    print("   -gds <path>       Path to GDS data")
+    print("   -verilog <path>   Path to verilog models")
+    print("   -library <type> <name> [<target>]	 See below")
+    print("")
+    print(" All <path> names may be wild-carded with '*' ('glob'-style wild-cards)")
+    print("")
+    print(" All options with <path> other than source and target may take the additional")
+    print(" arguments 'up <number>', where <number> indicates the number of levels of")
+    print(" hierarchy of the source path to include when copying to the target.")
+    print("")
+    print(" Library <type> may be one of:")
+    print("    digital		Digital standard cell library")
+    print("    primitive	Primitive device library")
+    print("    general		All other library types (I/O, analog, etc.)")
+    print("")
+    print(" If <target> is unspecified then <name> is used for the target.")
+
+def get_gds_properties(magfile):
+    proprex = re.compile('^[ \t]*string[ \t]+(GDS_[^ \t]+)[ \t]+([^ \t]+)$')
+    proplines = []
+    if os.path.isfile(magfile):
+        with open(magfile, 'r') as ifile:
+            magtext = ifile.read().splitlines()
+            for line in magtext:
+                lmatch = proprex.match(line)
+                if lmatch:
+                    propline = lmatch.group(1) + ' ' + lmatch.group(2)
+                    proplines.append(propline)
+    return proplines
+
+# Read subcircuit ports from a CDL file, given a subcircuit name that should
+# appear in the file as a subcircuit entry, and return a dictionary of ports
+# and their indexes in the subcircuit line.
+
+def get_subckt_ports(cdlfile, subname):
+    portdict = {}
+    pidx = 1
+    portrex = re.compile('^\.subckt[ \t]+([^ \t]+)[ \t]+(.*)$', re.IGNORECASE)
+    with open(cdlfile, 'r') as ifile:
+        cdltext = ifile.read()
+        cdllines = cdltext.replace('\n+', ' ').splitlines()
+        for line in cdllines:
+            lmatch = portrex.match(line)
+            if lmatch:
+                if lmatch.group(1).lower() == subname.lower():
+                    ports = lmatch.group(2).split()
+                    for port in ports:
+                        portdict[port.lower()] = pidx
+                        pidx += 1
+                    break
+    return portdict
+
+# Filter a verilog file to remove any backslash continuation lines, which
+# iverilog does not parse.  If targetroot is a directory, then find and
+# process all files in the path of targetroot.  If any file to be processed
+# is unmodified (has no backslash continuation lines), then ignore it.  If
+# any file is a symbolic link and gets modified, then remove the symbolic
+# link before overwriting with the modified file.
+#
+# If 'do_remove_spec' is True, then remove timing information from the file,
+# which is everything between the keywords "specify" and "endspecify".
+
+def vfilefilter(vfile, do_remove_spec):
+    modified = False
+    with open(vfile, 'r') as ifile:
+        vtext = ifile.read()
+
+    # Remove backslash-followed-by-newline and absorb initial whitespace.  It
+    # is unclear what initial whitespace means in this context, as the use-
+    # case that has been seen seems to work under the assumption that leading
+    # whitespace is ignored up to the amount used by the last indentation.
+
+    vlines = re.sub('\\\\\n[ \t]*', '', vtext)
+
+    if do_remove_spec:
+        specrex = re.compile('\n[ \t]*specify[ \t\n]+')
+        endspecrex = re.compile('\n[ \t]*endspecify')
+        smatch = specrex.search(vlines)
+        while smatch:
+            specstart = smatch.start()
+            specpos = smatch.end()
+            ematch = endspecrex.search(vlines[specpos:])
+            specend = ematch.end()
+            vtemp = vlines[0:specstart + 1] + vlines[specpos + specend + 1:]
+            vlines = vtemp
+            smatch = specrex.search(vlines)
+
+    if vlines != vtext:
+        # File contents have been modified, so if this file was a symbolic
+        # link, then remove it.  Otherwise, overwrite the file with the
+        # modified contents.
+        if os.path.islink(vfile):
+            os.unlink(vfile)
+        with open(vfile, 'w') as ofile:
+            ofile.write(vlines)
+
+# Run a filter on verilog files that cleans up known syntax issues.
+# This is embedded in the foundry_install script and is not a custom
+# filter largely because the issues are in the tool, not the PDK.
+
+def vfilter(targetroot, do_remove_spec):
+    if os.path.isfile(targetroot):
+        vfilefilter(targetroot, do_remove_spec)
+    else:
+        vlist = glob.glob(targetroot + '/*')
+        for vfile in vlist:
+            if os.path.isfile(vfile):
+                vfilefilter(vfile, do_remove_spec)
+
+# For issues that are PDK-specific, a script can be written and put in
+# the PDK's custom/scripts/ directory, and passed to the foundry_install
+# script using the "filter" option.
+
+def tfilter(targetroot, filterscript):
+    if os.path.isfile(targetroot):
+        print('   Filtering file ' + targetroot)
+        subprocess.run([filterscript, targetroot, targetroot],
+			stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, universal_newlines = True)
+    else:
+        tlist = glob.glob(targetroot + '/*')
+        for tfile in tlist:
+            if os.path.isfile(tfile):
+                print('   Filtering file ' + tfile)
+                subprocess.run([filterscript, tfile, tfile],
+			stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, universal_newlines = True)
+
+# This is the main entry point for the foundry install script.
+
+if __name__ == '__main__':
+
+    if len(sys.argv) == 1:
+        print("No options given to foundry_install.py.")
+        usage()
+        sys.exit(0)
+    
+    optionlist = []
+    newopt = []
+
+    sourcedir = None
+    targetdir = None
+    link_from = None
+
+    ef_names = False
+
+    have_lef = False
+    have_lefanno = False
+    have_gds = False
+    have_spice = False
+    have_cdl = False
+    ignorelist = []
+
+    do_install = True
+
+    # Break arguments into groups where the first word begins with "-".
+    # All following words not beginning with "-" are appended to the
+    # same list (optionlist).  Then each optionlist is processed.
+    # Note that the first entry in optionlist has the '-' removed.
+
+    for option in sys.argv[1:]:
+        if option.find('-', 0) == 0:
+            if newopt != []:
+                optionlist.append(newopt)
+                newopt = []
+            newopt.append(option[1:])
+        else:
+            newopt.append(option)
+
+    if newopt != []:
+        optionlist.append(newopt)
+
+    # Pull library names from optionlist
+    libraries = []
+    for option in optionlist[:]:
+        if option[0] == 'library':
+            optionlist.remove(option)
+            libraries.append(option[1:]) 
+
+    # Check for option "ef_names" or "std_names"
+    for option in optionlist[:]:
+        if option[0] == 'ef_naming' or option[0] == 'ef_names':
+            optionlist.remove(option)
+            ef_names = True
+        elif option[0] == 'std_naming' or option[0] == 'std_names':
+            optionlist.remove(option)
+            ef_names = False
+        elif option[0] == 'uninstall':
+            optionlist.remove(option)
+            do_install = False
+
+    # Check for options "link_from", "source", and "target"
+    link_name = None
+    for option in optionlist[:]:
+        if option[0] == 'link_from':
+            optionlist.remove(option)
+            if option[1].lower() == 'none':
+                link_from = None
+            elif option[1].lower() == 'source':
+                link_from = 'source'
+            else:
+                link_from = option[1]
+                link_name = os.path.split(link_from)[1]
+        elif option[0] == 'source':
+            optionlist.remove(option)
+            sourcedir = option[1]
+        elif option[0] == 'target':
+            optionlist.remove(option)
+            targetdir = option[1]
+
+    # Error if no source or dest specified
+    if not sourcedir:
+        print("No source directory specified.  Exiting.")
+        sys.exit(1)
+
+    if not targetdir:
+        print("No target directory specified.  Exiting.")
+        sys.exit(1)
+
+    # If link source is a PDK name, if it has no path, then pull the
+    # path from the target name.
+
+    if link_from:
+        if link_from != 'source':
+            if link_from.find('/', 0) < 0:
+                target_root = os.path.split(targetdir)[0]
+                link_from = target_root + '/' + link_from
+                link_name = link_from
+        else:
+            # If linking from source, convert the source path to an
+            # absolute pathname.
+            sourcedir = os.path.abspath(sourcedir)
+
+    # Take the target PDK name from the target path last component
+    pdkname = os.path.split(targetdir)[1]
+
+    # checkdir is the DIST target directory for the PDK pointed
+    # to by link_name.  Files must be found there before creating
+    # symbolic links to the (not yet existing) final install location.
+
+    if link_name:
+        checkdir = os.path.split(targetdir)[0] + '/' + link_name
+    else:
+        checkdir = ''
+
+    # Diagnostic
+    if do_install:
+        print("Installing in target directory " + targetdir)
+
+    # Create the top-level directories
+
+    os.makedirs(targetdir, exist_ok=True)
+    os.makedirs(targetdir + '/libs.ref', exist_ok=True)
+    os.makedirs(targetdir + '/libs.tech', exist_ok=True)
+
+    # Path to magic techfile depends on ef_names
+
+    if ef_names == True:
+        mag_current = '/libs.tech/magic/current/'
+    else:
+        mag_current = '/libs.tech/magic/'
+
+    # Populate the techLEF and SPICE models, if specified.
+
+    for option in optionlist[:]:
+        if option[0] == 'techlef':
+            filter_script = None
+            for item in option:
+                if item.split('=')[0] == 'filter':
+                    filter_script = item.split('=')[1]
+                    break
+
+            if ef_names == True:
+                techlefdir = targetdir + '/libs.ref/techLEF'
+                checklefdir = checkdir + '/libs.ref/techLEF'
+                if link_from:
+                    linklefdir = link_from + '/libs.ref/techLEF'
+                else:
+                    linklefdir = ''
+            else:
+                techlefdir = targetdir + '/libs.tech/lef'
+                checklefdir = checkdir + '/libs.tech/lef'
+                if link_from:
+                    linklefdir = link_from + '/libs.tech/lef'
+                else:
+                    linklefdir = ''
+            os.makedirs(techlefdir, exist_ok=True)
+            # All techlef files should be linked or copied, so use "glob"
+            # on the wildcards
+            techlist = glob.glob(sourcedir + '/' + option[1])
+
+            for lefname in techlist:
+                leffile = os.path.split(lefname)[1]
+                targname = techlefdir + '/' + leffile
+                checklefname = checklefdir + '/' + leffile
+                linklefname = linklefdir + '/' + leffile
+                # Remove any existing file(s)
+                if os.path.isfile(targname):
+                    os.remove(targname)
+                elif os.path.islink(targname):
+                    os.unlink(targname)
+                elif os.path.isdir(targname):
+                    shutil.rmtree(targname)
+
+                if do_install:
+                    if not link_from:
+                        if os.path.isfile(lefname):
+                            shutil.copy(lefname, targname)
+                        else:
+                            shutil.copytree(lefname, targname)
+                    elif link_from == 'source':
+                        os.symlink(lefname, targname)
+                    else:
+                        if os.path.exists(checklefname):
+                            os.symlink(linklefname, targname)
+                        elif os.path.isfile(lefname):
+                            shutil.copy(lefname, targname)
+                        else:
+                            shutil.copytree(lefname, targname)
+
+                    if filter_script:
+                        # Apply filter script to all files in the target directory
+                        tfilter(targname, filter_script)
+            optionlist.remove(option)
+
+        elif option[0] == 'models':
+            filter_script = None
+            for item in option:
+                if item.split('=')[0] == 'filter':
+                    filter_script = item.split('=')[1]
+                    break
+
+            print('Diagnostic:  installing models.')
+            modelsdir = targetdir + '/libs.tech/models'
+            checkmoddir = checkdir + '/libs.tech/models'
+            if link_from:
+                linkmoddir = link_from + '/libs.tech/models'
+            else:
+                linkmoddir = ''
+
+            os.makedirs(modelsdir, exist_ok=True)
+
+            # All model files should be linked or copied, so use "glob"
+            # on the wildcards.  Copy each file and recursively copy each
+            # directory.
+            modellist = glob.glob(sourcedir + '/' + option[1])
+
+            for modname in modellist:
+                modfile = os.path.split(modname)[1]
+                targname = modelsdir + '/' + modfile
+                checkmodname = checkmoddir + '/' + modfile
+                linkmodname = linkmoddir + '/' + modfile
+
+                if os.path.isdir(modname):
+                    # Remove any existing directory, and its contents
+                    if os.path.isdir(targname):
+                        shutil.rmtree(targname)
+                    os.makedirs(targname)
+
+                    # Recursively find and copy or link the whole directory
+                    # tree from this point.
+
+                    allmodlist = glob.glob(modname + '/**', recursive=True)
+                    commonpart = os.path.commonpath(allmodlist)
+                    for submodname in allmodlist:
+                        if os.path.isdir(submodname):
+                            continue
+                        # Get the path part that is not common between modlist and
+                        # allmodlist.
+                        subpart = os.path.relpath(submodname, commonpart)
+                        subtargname = targname + '/' + subpart
+                        os.makedirs(os.path.split(subtargname)[0], exist_ok=True)
+                        if do_install:
+                            if not link_from:
+                                if os.path.isfile(submodname):
+                                    shutil.copy(submodname, subtargname)
+                                else:
+                                    shutil.copytree(submodname, subtargname)
+                            elif link_from == 'source':
+                                os.symlink(submodname, subtargname)
+                            else:
+                                if os.path.exists(checkmodname):
+                                    os.symlink(linkmodname, subtargname)
+                                elif os.path.isfile(submodname):
+                                    shutil.copy(submodname, subtargname)
+                                else:
+                                    shutil.copytree(submodname, subtargname)
+                        
+                            if filter_script:
+                                # Apply filter script to all files in the target directory
+                                tfilter(targname, filter_script)
+
+                else:
+                    # Remove any existing file
+                    if os.path.isfile(targname):
+                        os.remove(targname)
+                    elif os.path.islink(targname):
+                        os.unlink(targname)
+                    elif os.path.isdir(targname):
+                        shutil.rmtree(targname)
+
+                    if do_install:
+                        if not link_from:
+                            if os.path.isfile(modname):
+                                shutil.copy(modname, targname)
+                            else:
+                                shutil.copytree(modname, targname)
+                        elif link_from == 'source':
+                            os.symlink(modname, targname)
+                        else:
+                            if os.path.isfile(checkmodname):
+                                os.symlink(linkmodname, targname)
+                            elif os.path.isfile(modname):
+                                shutil.copy(modname, targname)
+                            else:
+                                shutil.copytree(modname, targname)
+
+                        if filter_script:
+                            # Apply filter script to all files in the target directory
+                            tfilter(targname, filter_script)
+
+            optionlist.remove(option)
+
+    # The remaining options in optionlist should all be types like 'lef' or 'liberty'
+    for option in optionlist[:]:
+        # Diagnostic
+        if do_install:
+            print("Installing option: " + str(option[0]))
+        destdir = targetdir + '/libs.ref/' + option[0]
+        checklibdir = checkdir + '/libs.ref/' + option[0]
+        if link_from:
+            destlinkdir = link_from + '/libs.ref/' + option[0]
+        else:
+            destlinkdir = ''
+        os.makedirs(destdir, exist_ok=True)
+
+        # If the option is followed by the keyword "up" and a number, then
+        # the source should be copied (or linked) from <number> levels up
+        # in the hierarchy (see below).
+
+        if 'up' in option:
+            uparg = option.index('up') 
+            try:
+                hier_up = int(option[uparg + 1])
+            except:
+                print("Non-numeric option to 'up': " + option[uparg + 1])
+                print("Ignoring 'up' option.")
+                hier_up = 0
+        else:
+            hier_up = 0
+
+        filter_script = None
+        for item in option:
+            if item.split('=')[0] == 'filter':
+                filter_script = item.split('=')[1]
+                break
+
+        # Option 'compile' is a standalone keyword ('comp' may be used).
+        do_compile = 'compile' in option or 'comp' in option
+ 
+        # Option 'nospecify' is a standalone keyword ('nospec' may be used).
+        do_remove_spec = 'nospecify' in option or 'nospec' in option
+
+        # Check off things we need to do migration to magic database and
+        # abstact files.
+        if option[0] == 'lef':
+            have_lef = True
+        elif option[0] == 'gds':
+            have_gds = True
+        elif option[0] == 'lefanno':
+            have_lefanno = True
+        elif option[0] == 'spice':
+            have_spice = True
+        elif option[0] == 'cdl':
+            have_cdl = True
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+            destlibdir = destdir + '/' + destlib
+            destlinklibdir = destlinkdir + '/' + destlib
+            checksrclibdir = checklibdir + '/' + destlib
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # Populate the library subdirectory
+            # Parse the option and replace each '/*/' with the library name,
+            # and check if it is a valid directory name.  Then glob the
+            # resulting option name.  Warning:  This assumes that all
+            # occurences of the text '/*/' match a library name.  It should
+            # be possible to wild-card the directory name in such a way that
+            # this is always true.
+
+            testopt = re.sub('\/\*\/', '/' + library[1] + '/', option[1])
+
+            liblist = glob.glob(sourcedir + '/' + testopt)
+
+            # Diagnostic
+            print('Collecting files from ' + str(sourcedir + '/' + testopt))
+            print('Files to install:')
+            if len(liblist) < 10:
+                for item in liblist:
+                    print('   ' + item)
+            else:
+                for item in liblist[0:4]:
+                    print('   ' + item)
+                print('   .')
+                print('   .')
+                print('   .')
+                for item in liblist[-6:-1]:
+                    print('   ' + item)
+                print('(' + str(len(liblist)) + ' files total)')
+
+            for libname in liblist:
+                # Note that there may be a hierarchy to the files in option[1],
+                # say for liberty timing files under different conditions, so
+                # make sure directories have been created as needed.
+
+                libfile = os.path.split(libname)[1]
+                libfilepath = os.path.split(libname)[0]
+                destpathcomp = []
+                for i in range(hier_up):
+                    destpathcomp.append('/' + os.path.split(libfilepath)[1])
+                    libfilepath = os.path.split(libfilepath)[0]
+                destpathcomp.reverse()
+                destpath = ''.join(destpathcomp)
+
+                targname = destlibdir + destpath + '/' + libfile
+
+                # NOTE:  When using "up" with link_from, could just make
+                # destpath itself a symbolic link;  this way is more flexible
+                # but adds one symbolic link per file.
+
+                if destpath != '':
+                    if not os.path.isdir(destlibdir + destpath):
+                        os.makedirs(destlibdir + destpath, exist_ok=True)
+
+                # Both linklibname and checklibname need to contain any hierarchy
+                # implied by the "up" option.
+
+                linklibname = destlinklibdir + destpath + '/' + libfile
+                checklibname = checksrclibdir + destpath + '/' + libfile
+
+                # Remove any existing file
+                if os.path.isfile(targname):
+                    os.remove(targname)
+                elif os.path.islink(targname):
+                    os.unlink(targname)
+                elif os.path.isdir(targname):
+                    shutil.rmtree(targname)
+
+                if do_install:
+                    if not link_from:
+                        if os.path.isfile(libname):
+                            shutil.copy(libname, targname)
+                        else:
+                            shutil.copytree(libname, targname)
+                    elif link_from == 'source':
+                        os.symlink(libname, targname)
+                    else:
+                        if os.path.exists(checklibname):
+                            os.symlink(linklibname, targname)
+                        elif os.path.isfile(libname):
+                            shutil.copy(libname, targname)
+                        else:
+                            shutil.copytree(libname, targname)
+
+                    if option[0] == 'verilog':
+                        # Special handling of verilog files to make them
+                        # syntactically acceptable to iverilog.
+                        # NOTE:  Perhaps this should be recast as a custom filter?
+                        vfilter(targname, do_remove_spec)
+
+                    if filter_script:
+                        # Apply filter script to all files in the target directory
+                        tfilter(targname, filter_script)
+
+            if do_compile == True:
+                # To do:  Extend this option to include formats other than verilog.
+                # Also to do:  Make this compatible with linking from another PDK.
+
+                if option[0] == 'verilog':
+                    # If there is not a single file with all verilog cells in it,
+                    # then compile one, because one does not want to have to have
+                    # an include line for every single cell used in a design.
+
+                    alllibname = destlibdir + '/' + destlib + '.v'
+
+                    print('Diagnostic:  Creating consolidated verilog library ' + destlib + '.v')
+                    vlist = glob.glob(destlibdir + '/*.v')
+                    if alllibname in vlist:
+                        vlist.remove(alllibname)
+
+                    if len(vlist) > 1:
+                        print('New file is:  ' + alllibname)
+                        with open(alllibname, 'w') as ofile:
+                            for vfile in vlist:
+                                with open(vfile, 'r') as ifile:
+                                    # print('Adding ' + vfile + ' to library.')
+                                    vtext = ifile.read()
+                                    # NOTE:  The following workaround resolves an
+                                    # issue with iverilog, which does not properly
+                                    # parse specify timing paths that are not in
+                                    # parentheses.  Easy to work around
+                                    vlines = re.sub(r'\)[ \t]*=[ \t]*([01]:[01]:[01])[ \t]*;', r') = ( \1 ) ;', vtext)
+                                    print(vlines, file=ofile)
+                                print('\n//--------EOF---------\n', file=ofile)
+                    else:
+                        print('Only one file (' + str(vlist) + ');  ignoring "compile" option.')
+
+    print("Completed installation of vendor files.")
+
+    # Now for the harder part.  If GDS and/or LEF databases were specified,
+    # then migrate them to magic (.mag files in layout/ or abstract/).
+
+    ignore = []
+    do_cdl_scaleu = False
+    for option in optionlist[:]:
+        if option[0] == 'cdl':
+            # Option 'scaleu' is a standalone keyword
+            do_cdl_scaleu = 'scaleu' in option
+
+            # Option 'ignore' has arguments after '='
+            for item in option:
+                if item.split('=')[0] == 'ignore':
+                    ignorelist = item.split('=')[1].split(',')
+ 
+    devlist = []
+    pdklibrary = None
+
+    if have_gds:
+        print("Migrating GDS files to layout.")
+        destdir = targetdir + '/libs.ref/mag'
+        srcdir = targetdir + '/libs.ref/gds'
+        os.makedirs(destdir, exist_ok=True)
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+            destlibdir = destdir + '/' + destlib
+            srclibdir = srcdir + '/' + destlib
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # For primitive devices, check the PDK script and find the name
+            # of the library and get a list of supported devices.
+
+            if library[0] == 'primitive':
+                pdkscript = targetdir + mag_current + pdkname + '.tcl'
+                print('Searching for supported devices in PDK script ' + pdkscript + '.')
+
+                if os.path.isfile(pdkscript):
+                    librex = re.compile('^[ \t]*set[ \t]+PDKNAMESPACE[ \t]+([^ \t]+)$')
+                    devrex = re.compile('^[ \t]*proc[ \t]+([^ :\t]+)::([^ \t_]+)_defaults')
+                    fixrex = re.compile('^[ \t]*return[ \t]+\[([^ :\t]+)::fixed_draw[ \t]+([^ \t]+)[ \t]+')
+                    devlist = []
+                    fixedlist = []
+                    with open(pdkscript, 'r') as ifile:
+                        scripttext = ifile.read().splitlines()
+                        for line in scripttext:
+                            lmatch = librex.match(line)
+                            if lmatch:
+                                pdklibrary = lmatch.group(1)
+                            dmatch = devrex.match(line)
+                            if dmatch:
+                                if dmatch.group(1) == pdklibrary:
+                                    devlist.append(dmatch.group(2))
+                            fmatch = fixrex.match(line)
+                            if fmatch:
+                                if fmatch.group(1) == pdklibrary:
+                                    fixedlist.append(fmatch.group(2))
+
+                # Diagnostic
+                print("PDK library is " + str(pdklibrary))
+
+            # Link to the PDK magic startup file from the target directory
+            # If there is no -F version then look for one without -F (open source PDK)
+            startup_script = targetdir + mag_current + pdkname + '-F.magicrc'
+            if not os.path.isfile(startup_script):
+                startup_script = targetdir + mag_current + pdkname + '.magicrc'
+
+            if os.path.isfile(startup_script):
+                # If the symbolic link exists, remove it.
+                if os.path.isfile(destlibdir + '/.magicrc'):
+                    os.remove(destlibdir + '/.magicrc')
+                os.symlink(startup_script, destlibdir + '/.magicrc')
+ 
+                # Find GDS file names in the source
+                print('Getting GDS file list from ' + srclibdir + '.')
+                gdsfiles = os.listdir(srclibdir)
+
+                # Generate a script called "generate_magic.tcl" and leave it in
+                # the target directory.  Use it as input to magic to create the
+                # .mag files from the database.
+
+                print('Creating magic generation script.') 
+                with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
+                    print('#!/usr/bin/env wish', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('# Script to generate .mag files from .gds    ', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('gds readonly true', file=ofile)
+                    print('gds flatten true', file=ofile)
+                    # print('gds rescale false', file=ofile)
+                    print('tech unlock *', file=ofile)
+
+                    for gdsfile in gdsfiles:
+                        # Note:  DO NOT use a relative path here.
+                        # print('gds read ../../gds/' + destlib + '/' + gdsfile, file=ofile)
+                        print('gds read ' + srclibdir + '/' + gdsfile, file=ofile)
+
+                        # Make sure properties include the Tcl generated cell
+                        # information from the PDK script
+
+                        if pdklibrary:
+                            tclfixedlist = '{' + ' '.join(fixedlist) + '}'
+                            print('set devlist ' + tclfixedlist, file=ofile)
+                            print('set topcell [lindex [cellname list top] 0]',
+				    file=ofile)
+
+                            print('foreach cellname $devlist {', file=ofile)
+                            print('    load $cellname', file=ofile)
+                            print('    property gencell $cellname', file=ofile)
+                            print('    property parameter m=1', file=ofile)
+                            print('    property library ' + pdklibrary, file=ofile)
+                            print('}', file=ofile)
+                            print('load $topcell', file=ofile)
+
+                    print('writeall force', file=ofile)
+
+                    if have_lefanno:
+                        # Find LEF file names in the source
+                        lefsrcdir = targetdir + '/libs.ref/lefanno'
+                        lefsrclibdir = lefsrcdir + '/' + destlib
+                        leffiles = list(item for item in os.listdir(lefsrclibdir) if os.path.splitext(item)[1] == '.lef')
+
+                    if not have_lef:
+                        # This library has a GDS database but no LEF database.  Use
+                        # magic to create abstract views of the GDS cells.  If
+                        # option "-lefanno" is given, then read the LEF file after
+                        # loading the database file to annotate the cell with
+                        # information from the LEF file.  This usually indicates
+                        # that the LEF file has some weird definition of obstruction
+                        # layers and we want to normalize them by using magic's LEF
+                        # write procedure, but we still need the pin use and class
+                        # information from the LEF file, and maybe the bounding box.
+
+                        print('set maglist [glob *.mag]', file=ofile)
+                        print('foreach name $maglist {', file=ofile)
+                        print('   load [file root $name]', file=ofile)
+                        if have_lefanno:
+                            print('}', file=ofile)
+                            for leffile in leffiles:
+                                print('lef read ' + lefsrclibdir + '/' + leffile, file=ofile)
+                            print('foreach name $maglist {', file=ofile)
+                            print('   load [file root $name]', file=ofile)
+                        print('   lef write [file root $name]', file=ofile)
+                        print('}', file=ofile)
+                    print('quit -noprompt', file=ofile)
+
+                # Run magic to read in the GDS file and write out magic databases.
+                with open(destlibdir + '/generate_magic.tcl', 'r') as ifile:
+                    subprocess.run(['magic', '-dnull', '-noconsole'],
+				stdin = ifile, stdout = subprocess.PIPE,
+				stderr = subprocess.PIPE, cwd = destlibdir,
+				universal_newlines = True)
+
+                if not have_lef:
+                    # Remove the lefanno/ target and its contents.
+                    if have_lefanno:
+                        lefannosrcdir = targetdir + '/libs.ref/lefanno'
+                        if os.path.isdir(lefannosrcdir):
+                            shutil.rmtree(lefannosrcdir)
+
+                    destlefdir = targetdir + '/libs.ref/lef'
+                    destleflibdir = destlefdir + '/' + destlib
+                    os.makedirs(destleflibdir, exist_ok=True)
+                    leflist = list(item for item in os.listdir(destlibdir) if os.path.splitext(item)[1] == '.lef')
+
+                    # All macros will go into one file
+                    destleflib = destleflibdir + '/' + destlib + '.lef'
+                    # Remove any existing library file from the target directory
+                    if os.path.isfile(destleflib):
+                        os.remove(destleflib)
+
+                    first = True
+                    with open(destleflib, 'w') as ofile:
+                        for leffile in leflist:
+                            # Remove any existing single file from the target directory
+                            if os.path.isfile(destleflibdir + '/' + leffile):
+                                os.remove(destleflibdir + '/' + leffile)
+
+                            # Append contents
+                            sourcelef =  destlibdir + '/' + leffile
+                            with open(sourcelef, 'r') as ifile:
+                                leflines = ifile.read().splitlines()
+                                if not first:
+                                    # Remove header from all but the first file
+                                    leflines = leflines[8:]
+                                else:
+                                    first = False
+
+                            for line in leflines:
+                                print(line, file=ofile)
+
+                            # Remove file from the source directory
+                            os.remove(sourcelef)
+
+                    have_lef = True
+
+                # Remove the startup script and generation script
+                os.remove(destlibdir + '/.magicrc')
+                os.remove(destlibdir + '/generate_magic.tcl')
+            else:
+                print("Master PDK magic startup file not found.  Did you install")
+                print("PDK tech files before PDK vendor files?")
+
+    if have_lef:
+        print("Migrating LEF files to layout.")
+        destdir = targetdir + '/libs.ref/maglef'
+        srcdir = targetdir + '/libs.ref/lef'
+        magdir = targetdir + '/libs.ref/mag'
+        cdldir = targetdir + '/libs.ref/cdl'
+        os.makedirs(destdir, exist_ok=True)
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+            destlibdir = destdir + '/' + destlib
+            srclibdir = srcdir + '/' + destlib
+            maglibdir = magdir + '/' + destlib
+            cdllibdir = cdldir + '/' + destlib
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # Link to the PDK magic startup file from the target directory
+            startup_script = targetdir + mag_current + pdkname + '-F.magicrc'
+            if not os.path.isfile(startup_script):
+                startup_script = targetdir + mag_current + pdkname + '.magicrc'
+
+            if os.path.isfile(startup_script):
+                # If the symbolic link exists, remove it.
+                if os.path.isfile(destlibdir + '/.magicrc'):
+                    os.remove(destlibdir + '/.magicrc')
+                os.symlink(startup_script, destlibdir + '/.magicrc')
+ 
+                # Find LEF file names in the source
+                leffiles = os.listdir(srclibdir)
+
+                # Generate a script called "generate_magic.tcl" and leave it in
+                # the target directory.  Use it as input to magic to create the
+                # .mag files from the database.
+
+                with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
+                    print('#!/usr/bin/env wish', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('# Script to generate .mag files from .lef    ', file=ofile)
+                    print('#--------------------------------------------', file=ofile)
+                    print('tech unlock *', file=ofile)
+
+                    if pdklibrary:
+                        tcldevlist = '{' + ' '.join(devlist) + '}'
+                        print('set devlist ' + tcldevlist, file=ofile)
+
+                    for leffile in leffiles:
+
+                        # Okay to use a relative path here.
+                        # print('lef read ' + srclibdir + '/' + leffile', file=ofile)
+                        print('lef read ../../lef/' + destlib + '/' + leffile, file=ofile)
+
+                        # To be completed:  Parse SPICE file for port order, make
+                        # sure ports are present and ordered.
+
+                        if pdklibrary:
+                            print('set cellname [file root ' + leffile + ']', file=ofile)
+                            print('if {[lsearch $devlist $cellname] >= 0} {',
+					file=ofile)
+                            print('    load $cellname', file=ofile)
+                            print('    property gencell $cellname', file=ofile)
+                            print('    property parameter m=1', file=ofile)
+                            print('    property library ' + pdklibrary, file=ofile)
+                            print('}', file=ofile)
+
+                    print('writeall force', file=ofile)
+                    print('quit -noprompt', file=ofile)
+
+                # Run magic to read in the LEF file and write out magic databases.
+                with open(destlibdir + '/generate_magic.tcl', 'r') as ifile:
+                    subprocess.run(['magic', '-dnull', '-noconsole'],
+				stdin = ifile, stdout = subprocess.PIPE,
+				stderr = subprocess.PIPE, cwd = destlibdir,
+				universal_newlines = True)
+
+                # Now list all the .mag files generated, and for each, read the
+                # corresponding file from the mag/ directory, pull the GDS file
+                # properties, and add those properties to the maglef view.  Also
+                # read the CDL (or SPICE) netlist, read the ports, and rewrite
+                # the port order in the mag and maglef file accordingly.
+
+                # Diagnostic
+                print('Annotating files in ' + destlibdir)
+                magfiles = os.listdir(destlibdir)
+                for magroot in magfiles:
+                    magname = os.path.splitext(magroot)[0]
+                    magfile = maglibdir + '/' + magroot
+                    magleffile = destlibdir + '/' + magroot
+                    prop_lines = get_gds_properties(magfile)
+
+                    # Make sure properties include the Tcl generated cell
+                    # information from the PDK script
+
+                    if pdklibrary:
+                        if magname in fixedlist:
+                            prop_lines.append('string gencell ' + magname)
+                            prop_lines.append('string library ' + pdklibrary)
+                            prop_lines.append('string parameter m=1')
+
+                    cdlfile = cdllibdir + '/' + magname + '.cdl'
+                    if not os.path.exists(cdlfile):
+                        # Assume there is one file with all cell subcircuits in it.
+                        try:
+                            cdlfile = glob.glob(cdllibdir + '/*.cdl')[0]
+                        except:
+                            print('No CDL file for ' + destlib + ' device ' + magname)
+                            cdlfile = None
+                            # To be done:  If destlib is 'primitive', then look in
+                            # SPICE models for port order.
+                            if destlib == 'primitive':
+                                print('Fix me:  Need to look in SPICE models!')
+                    if cdlfile:
+                        port_dict = get_subckt_ports(cdlfile, magname)
+                    else:
+                        port_dict = {}
+
+                    proprex = re.compile('<< properties >>')
+                    endrex = re.compile('<< end >>')
+                    rlabrex = re.compile('rlabel[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+([^ \t]+)')
+                    flabrex = re.compile('flabel[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+([^ \t]+)')
+                    portrex = re.compile('port[ \t]+([^ \t])+[ \t]+(.*)')
+                    portnum = -1
+
+                    with open(magleffile, 'r') as ifile:
+                        magtext = ifile.read().splitlines()
+
+                    with open(magleffile, 'w') as ofile:
+                        for line in magtext:
+                            tmatch = portrex.match(line)
+                            if tmatch:
+                                if portnum >= 0:
+                                    line = 'port ' + str(portnum) + ' ' + tmatch.group(2)
+                                else:
+                                    line = 'port ' + tmatch.group(1) + ' ' + tmatch.group(2)
+                            ematch = endrex.match(line)
+                            if ematch and len(prop_lines) > 0:
+                                print('<< properties >>', file=ofile)
+                                for prop in prop_lines:
+                                    print('string ' + prop, file=ofile)
+
+                            print(line, file=ofile)
+                            pmatch = proprex.match(line)
+                            if pmatch:
+                                for prop in prop_lines:
+                                    print('string ' + prop, file=ofile)
+                                prop_lines = []
+
+                            lmatch = flabrex.match(line)
+                            if not lmatch:
+                                lmatch = rlabrex.match(line)
+                            if lmatch:
+                                labname = lmatch.group(1).lower()
+                                try:
+                                    portnum = port_dict[labname]
+                                except:
+                                    portnum = -1
+
+                    if os.path.exists(magfile):
+                        with open(magfile, 'r') as ifile:
+                            magtext = ifile.read().splitlines()
+
+                        with open(magfile, 'w') as ofile:
+                            for line in magtext:
+                                tmatch = portrex.match(line)
+                                if tmatch:
+                                    if portnum >= 0:
+                                        line = 'port ' + str(portnum) + ' ' + tmatch.group(2)
+                                    else:
+                                        line = 'port ' + tmatch.group(1) + ' ' + tmatch.group(2)
+                                ematch = endrex.match(line)
+                                print(line, file=ofile)
+                                lmatch = flabrex.match(line)
+                                if not lmatch:
+                                    lmatch = rlabrex.match(line)
+                                if lmatch:
+                                    labname = lmatch.group(1).lower()
+                                    try:
+                                        portnum = port_dict[labname]
+                                    except:
+                                        portnum = -1
+                    elif os.path.splitext(magfile)[1] == '.mag':
+                        # NOTE:  Probably this means the GDS cell has a different name.
+                        print('Error: No file ' + magfile + '.  Why is it in maglef???')
+
+                # Remove the startup script and generation script
+                os.remove(destlibdir + '/.magicrc')
+                os.remove(destlibdir + '/generate_magic.tcl')
+            else:
+                print("Master PDK magic startup file not found.  Did you install")
+                print("PDK tech files before PDK vendor files?")
+
+    # If SPICE or CDL databases were specified, then convert them to
+    # a form that can be used by ngspice, using the cdl2spi.py script 
+
+    if have_spice:
+        if not os.path.isdir(targetdir + '/libs.ref/spi'):
+            os.makedirs(targetdir + '/libs.ref/spi', exist_ok=True)
+
+    elif have_cdl:
+        if not os.path.isdir(targetdir + '/libs.ref/spi'):
+            os.makedirs(targetdir + '/libs.ref/spi', exist_ok=True)
+
+        print("Migrating CDL netlists to SPICE.")
+        destdir = targetdir + '/libs.ref/spi'
+        srcdir = targetdir + '/libs.ref/cdl'
+        os.makedirs(destdir, exist_ok=True)
+
+        # For each library, create the library subdirectory
+        for library in libraries:
+            if len(library) == 3:
+                destlib = library[2]
+            else:
+                destlib = library[1]
+            destlibdir = destdir + '/' + destlib
+            srclibdir = srcdir + '/' + destlib
+            os.makedirs(destlibdir, exist_ok=True)
+
+            # Find CDL file names in the source
+            cdlfiles = os.listdir(srclibdir)
+
+            # The directory with scripts should be in ../common with respect
+            # to the Makefile that determines the cwd.
+            scriptdir = os.path.split(os.getcwd())[0] + '/common/'
+
+            # Run cdl2spi.py script to read in the CDL file and write out SPICE
+            for cdlfile in cdlfiles:
+                spiname = os.path.splitext(cdlfile)[0] + '.spi'
+                procopts = [scriptdir + 'cdl2spi.py', srclibdir + '/' + cdlfile, destlibdir + '/' + spiname]
+                if do_cdl_scaleu:
+                    procopts.append('-dscale=u')
+                for item in ignorelist:
+                    procopts.append('-ignore=' + item)
+                print('Running (in ' + destlibdir + '): ' + ' '.join(procopts))
+                subprocess.run(procopts,
+			stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, cwd = destlibdir,
+			universal_newlines = True)
+
+    sys.exit(0)
diff --git a/common/padframe_generator.py b/common/padframe_generator.py
new file mode 120000
index 0000000..c87a0c5
--- /dev/null
+++ b/common/padframe_generator.py
@@ -0,0 +1 @@
+soc_floorplanner.py
\ No newline at end of file
diff --git a/common/pdk.bindkeys b/common/pdk.bindkeys
new file mode 100644
index 0000000..1b502db
--- /dev/null
+++ b/common/pdk.bindkeys
@@ -0,0 +1,186 @@
+#
+# Cadence-compatibility bindings except where marked.
+#
+macro f  "view"	     ;# zoom to fit window
+macro ^z "zoom 0.5"  ;# zoom in
+macro Z  "zoom 2"    ;# zoom out
+macro B  "popstack"  ;# up hierarchy
+macro X  {pushstack [cellname list self]}	;# down hierarchy
+macro x  "edit"		;# down hierarchy, edit-in-place
+macro b  "select top cell ; edit"  ;# up hierarchy from edit-in-place
+macro p  "tool wire; magic::trackwire %W pick"	;# path
+macro ^r "redraw"
+macro ^f "unexpand"
+macro F  "expand"
+macro ^a "select area"
+macro ^d "select clear"
+macro k  "magic::measure"
+macro K  "magic::unmeasure"
+macro i  "magic::promptload getcell"
+macro l  "magic::update_texthelper ; wm deiconify .texthelper ; raise .texthelper"
+macro O  "magic::clock"
+macro <del> "magic::delete"
+
+# Toolkit parameter dialog
+macro q "magic::gencell {} ; raise .params"
+#
+# The following should be already implemented as existing Magic bindings
+#
+macro u "undo"
+macro U "redo"
+macro m "move"
+macro c "copy"
+#
+# Compatibility with Electric;  Cadence bindings are on function keys and
+# do not work through the VNC.
+macro ^s "magic::promptsave magic"	;# save dialog menu
+
+#
+# Bertrand's bindings follow except where marked.
+#
+macro < sideways
+macro ^ upsidedown
+#
+# Set grid at 1 micron
+#
+macro 0  "grid on ; grid 1l"	;# Grid at 0.5um (1 lambda)
+# macro ^f "feedback clear"	;# conflicts with Cadence binding
+#
+# Paint/Erase macros 
+#
+macro 1 "paint m1"
+macro ! "erase m1"
+macro 2 "paint m2"
+macro @ "erase m2"
+macro 3 "paint m3"
+macro # "erase m3"
+#ifdef METAL4
+macro 4 "paint mtp"
+macro $ "erase mtp"
+#endif
+#ifdef METAL5
+macro 4 "paint m4"
+macro $ "erase m4"
+macro 5 "paint mtp"
+macro % "erase mtp"
+#endif
+#ifdef METAL6
+macro 4 "paint m4"
+macro $ "erase m4"
+macro 5 "paint m5"
+macro % "erase m5"
+macro 6 "paint mtp"
+macro ^ "erase mtp"
+#endif
+
+macro 7 "paint poly"
+# macro & "erase poly"
+# macro p "paint pdiff"
+macro n "paint ndiff"
+# macro l "erase labels"
+macro P "erase pdiff"
+macro N "erase ndiff"
+macro y "drc check; drc why"
+macro ? "select area; what"
+
+macro / "expand toggle"
+macro ^w "writeall force"
+macro ^e "edit"
+# macro ^x "quit"
+
+macro z "findbox zoom"
+# "f" conflicts with Cadence "full view", so use control-i to select cells.
+# macro f "select cell"
+macro ^i "select cell"
+
+# Leave keypad bindings as-is, further down.  However, keypad
+# keys generally don't translate through the VNC session, so
+# use the following arrow key bindings:
+#
+#                         no shift  shift
+# arrows only -> Pan       10%      100%
+# with alt    -> Move      1 lambda 1 grid
+# with ctrl   -> Stretch   1 lambda 1 grid
+# 
+# Pan 10 percent of the window size with arrows
+# macro XK_Left  "scroll l .1 w"
+# macro XK_Up    "scroll u .1 w"
+# macro XK_Right "scroll r .1 w"
+# macro XK_Down  "scroll d .1 w"
+
+# Pan 100 percent of the window size with arrows
+# macro Shift_XK_Left  "scroll l 1 w"
+# macro Shift_XK_Up    "scroll u 1 w"
+# macro Shift_XK_Right "scroll r 1 w"
+# macro Shift_XK_Down  "scroll d 1 w"
+
+# move 0.05um with arrows
+# macro Alt_XK_Left          "move l 1l"
+# macro Alt_XK_Right         "move r 1l"
+# macro Alt_XK_Up            "move u 1l"
+# macro Alt_XK_Down          "move d 1l"
+
+# move 1 grid unit with arrows
+# macro Alt_Shift_XK_Left  "move l 1g"
+# macro Alt_Shift_XK_Right "move r 1g"
+# macro Alt_Shift_XK_Up    "move u 1g"
+# macro Alt_Shift_XK_Down  "move d 1g"
+
+# stretch 0.05um with arrows
+# macro Control_XK_Left          "stretch l 1l"
+# macro Control_XK_Right         "stretch r 1l"
+# macro Control_XK_Up            "stretch u 1l"
+# macro Control_XK_Down          "stretch d 1l"
+
+# stretch 1 grid unit with arrows
+# macro Control_Shift_XK_Left  "stretch l 1g"
+# macro Control_Shift_XK_Right "stretch r 1g"
+# macro Control_Shift_XK_Up    "stretch u 1g"
+# macro Control_Shift_XK_Down  "stretch d 1g"
+
+# shift mouse wheel bindings for right-left shift
+macro Shift_XK_Pointer_Button4 "scroll r .05 w"
+macro Shift_XK_Pointer_Button5 "scroll l .05 w"
+
+# control mouse wheel bindings for zoom in/out
+macro Control_XK_Pointer_Button4 "zoom 0.70711"
+macro Control_XK_Pointer_Button5 "zoom 1.41421"
+
+# Bertrand's original arrow macros
+# move 1 grid unit with arrows
+macro XK_Left          "move l 1g"
+macro XK_Right         "move r 1g"
+macro XK_Up            "move u 1g"
+macro XK_Down          "move d 1g"
+
+# move 0.05um with arrows
+macro Control_XK_Left  "move l 1l"
+macro Control_XK_Right "move r 1l"
+macro Control_XK_Up    "move u 1l"
+macro Control_XK_Down  "move d 1l"
+
+# stretch 1 grid unit with arrows
+macro Shift_XK_Left          "stretch l 1g"
+macro Shift_XK_Right         "stretch r 1g"
+macro Shift_XK_Up            "stretch u 1g"
+macro Shift_XK_Down          "stretch d 1g"
+
+# stretch 0.05um with arrows
+macro Control_Shift_XK_Left  "stretch l 1l"
+macro Control_Shift_XK_Right "stretch r 1l"
+macro Control_Shift_XK_Up    "stretch u 1l"
+macro Control_Shift_XK_Down  "stretch d 1l"
+
+# Restore pan function on Alt-key
+# Pan 10 percent of the window size with arrows
+macro Alt_XK_Left  "scroll l .1 w"
+macro Alt_XK_Up    "scroll u .1 w"
+macro Alt_XK_Right "scroll r .1 w"
+macro Alt_XK_Down  "scroll d .1 w"
+
+# Pan 100 percent of the window size with arrows
+macro Alt_Shift_XK_Left  "scroll l 1 w"
+macro Alt_Shift_XK_Up    "scroll u 1 w"
+macro Alt_Shift_XK_Right "scroll r 1 w"
+macro Alt_Shift_XK_Down  "scroll d 1 w"
+
diff --git a/common/pdk.prm b/common/pdk.prm
new file mode 100644
index 0000000..719eb74
--- /dev/null
+++ b/common/pdk.prm
@@ -0,0 +1,26 @@
+; TODO: make changes to this file for TECHNAME?
+; configuration file for TECHNAME (left same as osu035, 0.35um process)
+; Note that these values are totally bogus!
+;
+
+lambda  0.01    ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga   .0115 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh  0.5  ; logic low threshold as a normalized voltage
+highthresh 0.5  ; logic high threshold as a normalized voltage
+
+cntpullup 0     ; irrelevant, cmos technology; no depletion transistors
+diffperim 0     ; don't include diffusion perimeters for sidewall cap.
+subparea 0      ; poly over transistor won't count as part pf bulk-poly cap.
+diffext  0      ; diffusion extension for each transistor
+
+resistance n-channel dynamic-low    2     0.4   1844.70
+resistance p-channel dynamic-high   6.2   0.4   1489.10
+resistance n-channel static         2     0.4   2203.94
+resistance p-channel static         6.2   0.4   1693.37
diff --git a/common/pdk.tcl b/common/pdk.tcl
new file mode 100644
index 0000000..04f32a6
--- /dev/null
+++ b/common/pdk.tcl
@@ -0,0 +1,274 @@
+#-------------------------------------------------------------------
+# General-purpose routines for the PDK script in all technologies
+#-------------------------------------------------------------------
+# 
+#----------------------------------------
+# Number Conversion Functions
+#----------------------------------------
+
+#---------------------
+# Microns to Lambda
+#---------------------
+proc magic::u2l {micron} {
+    set techlambda [magic::tech lambda]
+    set tech1 [lindex $techlambda 1]
+    set tech0 [lindex $techlambda 0]
+    set tscale [expr {$tech1 / $tech0}]
+    set lambdaout [expr {((int([magic::cif scale output] * 10000)) / 10000.0)}]
+    return [expr $micron / ($lambdaout*$tscale) ]
+}
+
+#---------------------
+# Lambda to Microns
+#---------------------
+proc magic::l2u {lambda} {
+    set techlambda [magic::tech lambda]
+    set tech1 [lindex $techlambda 1] ; set tech0 [lindex $techlambda 0]
+    set tscale [expr {$tech1 / $tech0}]
+    set lambdaout [expr {((int([magic::cif scale output] * 10000)) / 10000.0)}]
+    return [expr $lambda * $lambdaout * $tscale ]
+}
+
+#---------------------
+# Internal to Microns
+#---------------------
+proc magic::i2u { value } {
+    return [expr {((int([magic::cif scale output] * 10000)) / 10000.0) * $value}]
+}
+
+#---------------------
+# Microns to Internal
+#---------------------
+proc magic::u2i {value} {
+    return [expr {$value / ((int([magic::cif scale output] * 10000)) / 10000.0)}]
+}
+
+#---------------------
+# Float to Spice 
+#---------------------
+proc magic::float2spice {value} { 
+    if {$value >= 1.0e+6} { 
+	set exponent 1e+6
+	set unit "meg"
+    } elseif {$value >= 1.0e+3} { 
+	set exponent 1e+3
+	set unit "k"
+    } elseif { $value >= 1} { 
+	set exponent 1
+	set unit ""
+    } elseif {$value >= 1.0e-3} { 
+	set exponent 1e-3
+	set unit "m"
+    } elseif {$value >= 1.0e-6} { 
+	set exponent 1e-6
+	set unit "u"
+    } elseif {$value >= 1.0e-9} { 
+	set exponent 1e-9
+	set unit "n"
+    } elseif {$value >= 1.0e-12} { 
+	set exponent 1e-12
+	set unit "p"
+    } elseif {$value >= 1.0e-15} { 
+	set exponent 1e-15
+	set unit "f"
+    } else {
+	set exponent 1e-18
+	set unit "a"
+    }
+    set val [expr $value / $exponent]
+    set val [expr int($val * 1000) / 1000.0]
+    if {$val == 0} {set unit ""}
+    return $val$unit
+}
+
+#---------------------
+# Spice to Float
+#---------------------
+proc magic::spice2float {value {faultval 0.0}} { 
+    # Remove trailing units, at least for some common combinations
+    set value [string tolower $value]
+    set value [string map {um u nm n uF n nF n pF p aF a} $value]
+    set value [string map {meg "* 1.0e6" k "* 1.0e3" m "* 1.0e-3" u "* 1.0e-6" \
+		 n "* 1.0 e-9" p "* 1.0e-12" f "* 1.0e-15" a "* 1.0e-15"} $value]
+    if {[catch {set rval [expr $value]}]} {
+	puts stderr "Value is not numeric!"
+	set rval $faultval
+    }
+    return $rval
+}
+
+#---------------------
+# Numeric Precision
+#---------------------
+proc magic::3digitpastdecimal {value} {
+    set new [expr int([expr $value * 1000 + 0.5 ]) / 1000.0]
+    return $new
+}
+
+#-------------------------------------------------------------------
+# File Access Functions
+#-------------------------------------------------------------------
+
+#-------------------------------------------------------------------
+# Ensures that a cell name does not already exist, either in
+# memory or on disk. Modifies the name until it does.
+#-------------------------------------------------------------------
+proc magic:cellnameunique {cellname} {
+    set i 0
+    set newname $cellname
+    while {[cellname list exists $newname] != 0 || [magic::searchcellondisk $newname] != 0} {
+	incr i
+	set newname ${cellname}_$i
+    }
+    return $newname
+}
+
+#-------------------------------------------------------------------
+# Looks to see if a cell exists on disk
+#-------------------------------------------------------------------
+proc magic::searchcellondisk {name} {
+    set rlist {}
+    foreach dir [path search] {
+	set ftry [file join $dir ${name}.mag]
+	if [file exists $ftry] {
+	    return 1
+	}
+    }
+    return 0
+} 
+
+#-------------------------------------------------------------------
+# Checks to see if a cell already exists on disk or in memory
+#-------------------------------------------------------------------
+proc magic::iscellnameunique {cellname} {
+    if {[cellname list exists $cellname] == 0 && [magic::searchcellondisk $cellname] == 0} { 
+	return 1
+    } else {
+	return 0
+    }
+}
+
+#--------------------------------------------------------------
+# Procedure that checks the user's "ip" subdirectory on startup
+# and adds each one's maglef subdirectory to the path.
+#--------------------------------------------------------------
+
+proc magic::query_mylib_ip {} {
+    global TECHPATH
+    global env
+    if [catch {set home $env(SUDO_USER)}] {
+        set home $env(USER)
+    }
+    set homedir /home/${home}
+    set ip_dirs [glob -directory ${homedir}/design/ip *]
+    set proj_dir [pwd]
+    set config_dir .config
+    set info_dir ${proj_dir}/${config_dir}
+    if {![file exists ${info_dir}]} {
+	set config_dir .ef-config
+	set info_dir ${proj_dir}/${config_dir}
+    }
+
+    set info_file ${info_dir}/info
+    set depends [dict create]
+    if {![catch {open $info_file r} ifd]} {
+        set depsec false
+        while {[gets $ifd line] >= 0} {
+	    if {[string first dependencies: $line] >= 0} {
+	        set depsec true
+	    }
+	    if {$depsec} {
+		if {[string first version: $line] >= 0} {
+		    if {$ipname != ""} {
+			set ipvers [string trim [lindex [split $line] 1] ']
+			dict set depends $ipname $ipvers
+			set ipname ""
+		    } else {
+			puts stderr "Badly formatted info file in ${config_dir}!"
+		    }
+		} else {
+		    set ipname [string trim $line :]
+		}
+	    }
+	}
+    }
+
+    foreach dir $ip_dirs {
+	# Version handling:  version dependencies are found in
+	# ${config_dir}/info.  For all other IP, use the most recent
+	# version number.
+	set ipname [lindex [file split $dir] end]
+	if {![catch {set version [dict get $depends $ipname]}]} {
+	    if {[file isdirectory ${dir}/${version}/maglef]} {
+		addpath ${dir}/${version}/maglef
+		continue
+	    } else {
+		puts stderr "ERROR:  Dependency ${ipname} version ${version} does not exist"
+	    }
+	}
+
+	# Secondary directory is the version number.  Use the highest
+	# version available.
+
+	set sub_dirs {}
+        catch {set sub_dirs [glob -directory $dir *]}
+	set maxver 0.0
+	foreach subdir $sub_dirs {
+	    set vidx [string last / $subdir]
+	    incr vidx
+	    set version [string range $subdir $vidx end]
+	    if {$version > $maxver} {
+		set maxver $version
+	    }
+	}
+	if {[file exists ${dir}/${maxver}/maglef]} {
+	    # Compatibility rule:  foundry name must match.
+	    # Get foundry name from ${config_dir}/techdir symbolic link reference
+	    if {[file exists ${dir}/${maxver}/${config_dir}/techdir]} {
+		set technodedir [file link ${dir}/${maxver}/${config_dir}/techdir]
+		set nidx [string last / $technodedir]
+		set techdir [string range $technodedir 0 $nidx-1]
+		if {$techdir == $TECHPATH} {
+		    addpath ${dir}/${maxver}/maglef
+		}
+	    }
+	}
+    }
+}
+
+#--------------------------------------------------------------
+# Procedure that checks the user's design directory on startup
+# and adds each one's mag subdirectory to the path.
+#--------------------------------------------------------------
+
+proc magic::query_my_projects {} {
+    global TECHPATH
+    global env
+    if [catch {set home $env(SUDO_USER)}] {
+        set home $env(USER)
+    }
+    set homedir /home/${home}
+    set proj_dirs [glob -directory ${homedir}/design *]
+    foreach dir $proj_dirs {
+	# Compatibility rule:  foundry name must match.
+	# Get foundry name from ${config_dir}/techdir symbolic link reference
+	if {[file exists ${dir}/mag]} {
+	    set config_dir .config
+	    set tech_dir ${dir}/${config_dir}
+	    if {![file exists ${tech_dir}]} {
+		set config_dir .ef-config
+		set tech_dir ${dir}/${config_dir}
+	    }
+	    if {[file exists ${dir}/${config_dir}/techdir]} {
+		set technodedir [file link ${dir}/${config_dir}/techdir]
+		set nidx [string last / $technodedir]
+		set techdir [string range $technodedir 0 $nidx-1]
+		if {$techdir == $TECHPATH} {
+		    addpath ${dir}/mag
+		}
+	    }
+	}
+    }
+}
+
+#----------------------------------------------------------------
diff --git a/common/preproc.py b/common/preproc.py
new file mode 100755
index 0000000..1fca5be
--- /dev/null
+++ b/common/preproc.py
@@ -0,0 +1,576 @@
+#!/usr/bin/env python3
+#--------------------------------------------------------------------
+#
+# preproc.py
+#
+# General purpose macro preprocessor
+#
+#--------------------------------------------------------------------
+# Usage:
+#
+#	preproc.py input_file [output_file] [-D<variable> ...]
+#
+# Where <variable> may be a keyword or a key=value pair
+#
+# Syntax:  Basically like cpp.  However, this preprocessor handles
+# only a limited set of keywords, so it does not otherwise mangle
+# the file in the belief that it must be C code.  Handling of boolean
+# relations is important, so these are thoroughly defined (see below)
+#
+#	#if defined(<variable>) [...]
+#	#ifdef <variable>
+#	#ifndef <variable>
+#	#elseif <variable>
+#	#else
+#	#endif
+#
+#	#define <variable> [...]
+#	#define <variable>(<parameters>) [...]
+#	#undef <variable>
+#
+#	#include <filename>
+#
+# <variable> may be
+#	<keyword>
+#	<keyword>=<value>
+#
+#	<keyword> without '=' is effectively the same as <keyword>=1
+#	Lack of a keyword is equivalent to <keyword>=0, in a conditional.
+#
+# Boolean operators (in order of precedence):
+#	!	NOT
+#	&&	AND
+#	||	OR	
+#
+# Comments:
+#       Most comments (C-like or Tcl-like) are output as-is.  A
+#	line beginning with "###" is treated as a preprocessor
+#	comment and is not copied to the output.
+#
+# Examples;
+#	#if defined(X) || defined(Y)
+#	#else
+#	#if defined(Z)
+#	#endif
+#--------------------------------------------------------------------
+
+import re
+import sys
+
+def solve_statement(condition):
+
+    defrex = re.compile('defined[ \t]*\(([^\)]+)\)')
+    orrex = re.compile('(.+)\|\|(.+)')
+    andrex = re.compile('(.+)&&(.+)')
+    notrex = re.compile('!([^&\|]+)')
+    parenrex = re.compile('\(([^\)]+)\)')
+    leadspacerex = re.compile('^[ \t]+(.*)')
+    endspacerex = re.compile('(.*)[ \t]+$')
+
+    matchfound = True
+    while matchfound:
+        matchfound = False
+
+        # Search for defined(K) (K must be a single keyword)
+        # If the keyword was defined, then it should have been replaced by 1
+        lmatch = defrex.search(condition)
+        if lmatch:
+            key = lmatch.group(1)
+            if key == 1 or key == '1' or key == True:
+                repl = 1
+            else:
+                repl = 0
+
+            condition = defrex.sub(str(repl), condition)
+            matchfound = True
+
+        # Search for (X) recursively
+        lmatch = parenrex.search(condition)
+        if lmatch:
+            repl = solve_statement(lmatch.group(1))
+            condition = parenrex.sub(str(repl), condition)
+            matchfound = True
+
+        # Search for !X recursively
+        lmatch = notrex.search(condition)
+        if lmatch:
+            only = solve_statement(lmatch.group(1))
+            if only == '1':
+                repl = '0'
+            else:
+                repl = '1'
+            condition = notrex.sub(str(repl), condition)
+            matchfound = True
+
+        # Search for A&&B recursively
+        lmatch = andrex.search(condition)
+        if lmatch:
+            first = solve_statement(lmatch.group(1))
+            second = solve_statement(lmatch.group(2))
+            if first == '1' and second == '1':
+                repl = '1'
+            else:
+                repl = '0'
+            condition = andrex.sub(str(repl), condition)
+            matchfound = True
+
+        # Search for A||B recursively
+        lmatch = orrex.search(condition)
+        if lmatch:
+            first = solve_statement(lmatch.group(1))
+            second = solve_statement(lmatch.group(2))
+            if first == '1' or second == '1':
+                repl = '1'
+            else:
+                repl = '0'
+            condition = orrex.sub(str(repl), condition)
+            matchfound = True
+ 
+    # Remove whitespace
+    lmatch = leadspacerex.match(condition)
+    if lmatch:
+        condition = lmatch.group(1)
+    lmatch = endspacerex.match(condition)
+    if lmatch:
+        condition = lmatch.group(1)
+    
+    return condition
+
+def solve_condition(condition, keys, defines, keyrex):
+    # Do definition replacement on the conditional
+    for keyword in keys:
+        condition = keyrex[keyword].sub(defines[keyword], condition)
+
+    value = solve_statement(condition)
+    if value == '1':
+        return 1
+    else:
+        return 0
+
+def sortkeys(keys):
+    newkeys = []
+    for i in range(0, len(keys)):
+        keyword = keys[i]
+        found = False
+        for j in range(0, len(newkeys)):
+            inword = newkeys[j]
+            if inword in keyword:
+                # Insert keyword before inword
+                newkeys.insert(j, keyword)
+                found = True
+                break
+        if not found:
+            newkeys.append(keyword)
+    return newkeys
+
+def runpp(keys, keyrex, defines, ccomm, incdirs, inputfile, ofile):
+
+    includerex = re.compile('^[ \t]*#include[ \t]+"*([^ \t\n\r"]+)')
+    definerex = re.compile('^[ \t]*#define[ \t]+([^ \t]+)[ \t]+(.+)')
+    paramrex = re.compile('^([^\(]+)\(([^\)]+)\)')
+    defrex = re.compile('^[ \t]*#define[ \t]+([^ \t\n\r]+)')
+    undefrex = re.compile('^[ \t]*#undef[ \t]+([^ \t\n\r]+)')
+    ifdefrex = re.compile('^[ \t]*#ifdef[ \t]+(.+)')
+    ifndefrex = re.compile('^[ \t]*#ifndef[ \t]+(.+)')
+    ifrex = re.compile('^[ \t]*#if[ \t]+(.+)')
+    elseifrex = re.compile('^[ \t]*#elseif[ \t]+(.+)')
+    elserex = re.compile('^[ \t]*#else')
+    endifrex = re.compile('^[ \t]*#endif')
+    commentrex = re.compile('^###[^#]*$')
+    ccstartrex = re.compile('/\*')		# C-style comment start
+    ccendrex = re.compile('\*/')		# C-style comment end
+    contrex = re.compile('.*\\\\$')		# Backslash continuation line
+
+    badifrex = re.compile('^[ \t]*#if[ \t]*.*')
+    badelserex = re.compile('^[ \t]*#else[ \t]*.*')
+
+    # This code is not designed to operate on huge files.  Neither is it designed to be
+    # efficient.
+
+    # ifblock state:
+    # -1 : not in an if/else block
+    #  0 : no condition satisfied yet
+    #  1 : condition satisfied
+    #  2 : condition was handled, waiting for endif
+
+    ifile = False
+    try:
+        ifile = open(inputfile, 'r')
+    except FileNotFoundError:
+        for dir in incdirs:
+            try:
+                ifile = open(dir + '/' + inputfile, 'r')
+            except FileNotFoundError:
+                pass
+            else:
+                break
+
+    if not ifile:
+        print("Error:  Cannot open file " + inputfile + " for reading.\n", file=sys.stderr)
+        return
+
+    ccblock = -1
+    ifblock = -1
+    ifstack = []
+    lineno = 0
+
+    filetext = ifile.readlines()
+    lastline = []
+
+    for line in filetext:
+        lineno += 1
+
+        # C-style comments override everything else
+        if ccomm:
+            if ccblock == -1:
+                pmatch = ccstartrex.search(line)
+                if pmatch:
+                    ematch = ccendrex.search(line[pmatch.end(0):])
+                    if ematch:
+                        line = line[0:pmatch.start(0)] + line[pmatch.end(0) + ematch.end(0):]
+                    else:
+                        line = line[0:pmatch.start(0)]
+                        ccblock = 1
+            elif ccblock == 1:
+                ematch = ccendrex.search(line)
+                if ematch:
+                    line = line[ematch.end(0)+2:]
+                    ccblock = -1
+                else:
+                    continue
+
+        # Handle continuation detected in previous line
+        if lastline:
+            # Note:  Apparently there is a character retained after the backslash,
+            # so strip the last two characters from the line.
+            line = lastline[0:-2] + line
+            lastline = []
+
+        # Continuation lines have the next highest priority.  However, this
+        # script will attempt to keep continuation lines in the body of the
+        # text and only collapse lines where continuation lines occur in
+        # a preprocessor statement.
+
+        cmatch = contrex.match(line)
+
+        # Ignore lines beginning with "###"
+        pmatch = commentrex.match(line)
+        if pmatch:
+            continue
+
+        # Handle ifdef
+        pmatch = ifdefrex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            if ifblock != -1:
+                ifstack.append(ifblock)
+                
+            if ifblock == 1 or ifblock == -1:
+                condition = pmatch.group(1)
+                ifblock = solve_condition(condition, keys, defines, keyrex)
+            else:
+                ifblock = 2
+            continue
+
+        # Handle ifndef
+        pmatch = ifndefrex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            if ifblock != -1:
+                ifstack.append(ifblock)
+                
+            if ifblock == 1 or ifblock == -1:
+                condition = pmatch.group(1)
+                ifblock = solve_condition(condition, keys, defines, keyrex)
+                ifblock = 1 if ifblock == 0 else 0
+            else:
+                ifblock = 2
+            continue
+
+        # Handle if
+        pmatch = ifrex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            if ifblock != -1:
+                ifstack.append(ifblock)
+
+            if ifblock == 1 or ifblock == -1:
+                condition = pmatch.group(1)
+                ifblock = solve_condition(condition, keys, defines, keyrex)
+            else:
+                ifblock = 2
+            continue
+
+        # Handle elseif
+        pmatch = elseifrex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            if ifblock == -1:
+               print("Error: #elseif without preceding #if at line " + str(lineno) + ".", file=sys.stderr)
+               ifblock = 0
+
+            if ifblock == 1:
+                ifblock = 2
+            elif ifblock != 2:
+                condition = pmatch.group(1)
+                ifblock = solve_condition(condition, keys, defines, keyrex)
+            continue
+
+        # Handle else
+        pmatch = elserex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            if ifblock == -1:
+               print("Error: #else without preceding #if at line " + str(lineno) + ".", file=sys.stderr)
+               ifblock = 0
+
+            if ifblock == 1:
+                ifblock = 2
+            elif ifblock == 0:
+                ifblock = 1
+            continue
+
+        # Handle endif
+        pmatch = endifrex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            if ifblock == -1:
+                print("Error:  #endif outside of #if block at line " + str(lineno) + " (ignored)", file=sys.stderr)
+            elif ifstack:
+                ifblock = ifstack.pop()
+            else:
+                ifblock = -1
+            continue
+                 
+        # Check for 'if' or 'else' that were not properly formed
+        pmatch = badifrex.match(line)
+        if pmatch:
+            print("Error:  Badly formed #if statement at line " + str(lineno) + " (ignored)", file=sys.stderr)
+            if ifblock != -1:
+                ifstack.append(ifblock)
+
+            if ifblock == 1 or ifblock == -1:
+                ifblock = 0
+            else:
+                ifblock = 2
+            continue
+
+        pmatch = badelserex.match(line)
+        if pmatch:
+            print("Error:  Badly formed #else statement at line " + str(lineno) + " (ignored)", file=sys.stderr)
+            ifblock = 2
+            continue
+
+        # Ignore all lines that are not satisfied by a conditional
+        if ifblock == 0 or ifblock == 2:
+            continue
+
+        # Handle include.  Note that this code does not expect or
+        # handle 'if' blocks that cross file boundaries.
+        pmatch = includerex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            inclfile = pmatch.group(1)
+            runpp(keys, keyrex, defines, ccomm, incdirs, inclfile, ofile)
+            continue
+
+        # Handle define (with value)
+        pmatch = definerex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            condition = pmatch.group(1)
+
+            # Additional handling of definition w/parameters: #define X(a,b,c) ..."
+            rmatch = paramrex.match(condition) 
+            if rmatch:
+                # 'condition' as a key into keyrex only needs to be unique.
+                # Use the definition word without everything in parentheses
+                condition = rmatch.group(1)
+
+                # 'pcondition' is the actual search regexp and must capture all
+                # the parameters individually for substitution
+
+                parameters = rmatch.group(2).split(',')
+
+                # Generate the regexp string to match comma-separate values
+                # Note that this is based on the cpp preprocessor, which
+                # apparently allows commas in arguments if surrounded by
+                # parentheses;  e.g., "def(a, b, (c1,c2))".  This is NOT
+                # handled.
+
+                pcondition = condition + '\('
+                for param in parameters[0:-1]:
+                    pcondition += '(.*),'
+                pcondition += '(.*)\)'
+
+                # Generate the substitution string with group substitutions
+                pvalue = pmatch.group(2)
+                idx = 1
+                for param in parameters:
+                    pvalue = pvalue.replace(param, '\g<' + str(idx) + '>')
+                    idx = idx + 1
+
+                defines[condition] = pvalue
+                keyrex[condition] = re.compile(pcondition)
+            else:
+                parameters = []
+                value = pmatch.group(2)
+                # Note:  Need to check for infinite recursion here, but it's tricky.
+                defines[condition] = value
+                keyrex[condition] = re.compile(condition)
+
+            if condition not in keys:
+                # Parameterized keys go to the front of the list
+                if parameters:
+                    keys.insert(0, condition)
+                else:
+                    keys.append(condition)
+                keys = sortkeys(keys)
+            continue
+
+        # Handle define (simple case, no value)
+        pmatch = defrex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            condition = pmatch.group(1)
+            defines[condition] = '1'
+            keyrex[condition] = re.compile(condition)
+            if condition not in keys:
+                keys.append(condition)
+                keys = sortkeys(keys)
+            continue
+
+        # Handle undef
+        pmatch = undefrex.match(line)
+        if pmatch:
+            if cmatch:
+                lastline = line
+                continue
+            condition = pmatch.group(1)
+            if condition in keys:
+                defines.pop(condition)
+                keyrex.pop(condition)
+                keys.remove(condition)
+            continue
+
+        # Now do definition replacement on what's left (if anything)
+        # This must be done repeatedly from the top until there are no
+        # more substitutions to make.
+
+        while True:
+            origline = line
+            for keyword in keys:
+                newline = keyrex[keyword].sub(defines[keyword], line)
+                if newline != line:
+                    line = newline
+                    break
+                    
+            if line == origline:
+                break
+                
+        # Output the line
+        print(line, file=ofile, end='')
+
+    if ifblock != -1 or ifstack != []:
+        print("Error:  input file ended with an unterminated #if block.", file=sys.stderr)
+
+    if ifile != sys.stdin:
+        ifile.close()
+    return
+
+def printusage(progname):
+    print('Usage: ' + progname + ' input_file [output_file] [-options]')
+    print('   Options are:')
+    print('      -help         Print this help text.')
+    print('      -ccomm        Remove C comments in /* ... */ delimiters.')
+    print('      -D<def>       Define word <def> and set its value to 1.')
+    print('      -D<def>=<val> Define word <def> and set its value to <val>.')
+    print('      -I<dir>       Add <dir> to search path for input files.')
+    return
+
+if __name__ == '__main__':
+
+   # Parse command line for options and arguments
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    if len(arguments) > 0:
+        inputfile = arguments[0]
+        if len(arguments) > 1:
+            outputfile = arguments[1]
+        else:
+            outputfile = []
+    else:
+        printusage(sys.argv[0])
+        sys.exit(0)
+
+    defines = {}
+    keyrex = {}
+    keys = []
+    incdirs = []
+    ccomm = False
+    for item in options:
+        result = item.split('=')
+        if result[0] == '-help':
+            printusage(sys.argv[0])
+            sys.exit(0)
+        elif result[0] == '-ccomm':
+            ccomm = True
+        elif result[0][0:2] == '-I':
+            incdirs.append(result[0][2:])
+        elif result[0][0:2] == '-D':
+            keyword = result[0][2:]
+            try:
+                value = result[1]
+            except:
+                value = '1'
+            defines[keyword] = value
+            keyrex[keyword] = re.compile(keyword)
+            keys.append(keyword)
+            keys = sortkeys(keys)
+        else:
+            print('Bad option ' + item + ', options are -help, -ccomm, -D<def> -I<dir>\n')
+            sys.exit(1)
+
+    if outputfile:
+        ofile = open(outputfile, 'w')
+    else:
+        ofile = sys.stdout
+
+    if not ofile:
+        print("Error:  Cannot open file " + output_file + " for writing.")
+        sys.exit(1)
+
+    # Sort keys so that if any definition contains another definition, the
+    # subset word is handled last;  otherwise the subset word will get
+    # substituted, screwing up the definition names in which it occurs.
+
+    keys = sortkeys(keys)
+
+    runpp(keys, keyrex, defines, ccomm, incdirs, inputfile, ofile)
+    if ofile != sys.stdout:
+        ofile.close()
+    sys.exit(0)
diff --git a/common/remove_specify.py b/common/remove_specify.py
new file mode 100755
index 0000000..746a06f
--- /dev/null
+++ b/common/remove_specify.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python3
+#
+# Remove timing information from a verilog file, which is everything between
+# the keywords "specify" and "endspecify".
+#
+# Filter a verilog file to remove any backslash continuation lines, which
+# iverilog does not parse.  If targetroot is a directory, then find and
+# process all files in the path of targetroot.  If any file to be processed
+# is unmodified (has no backslash continuation lines), then ignore it.  If
+# any file is a symbolic link and gets modified, then remove the symbolic
+# link before overwriting with the modified file.
+#
+
+import stat
+import sys
+import os
+import re
+
+def makeuserwritable(filepath):
+    if os.path.exists(filepath):
+        st = os.stat(filepath)
+        os.chmod(filepath, st.st_mode | stat.S_IWUSR)
+
+def remove_specify(vfile, outfile):
+    modified = False
+    with open(vfile, 'r') as ifile:
+        vtext = ifile.read()
+
+    if outfile == None:
+        outfile = vfile
+
+    # Remove backslash-followed-by-newline and absorb initial whitespace.  It
+    # is unclear what initial whitespace means in this context, as the use-
+    # case that has been seen seems to work under the assumption that leading
+    # whitespace is ignored up to the amount used by the last indentation.
+
+    vlines = re.sub('\\\\\n[ \t]*', '', vtext)
+
+    specrex = re.compile('\n[ \t]*specify[ \t\n]+')
+    endspecrex = re.compile('\n[ \t]*endspecify')
+    smatch = specrex.search(vlines)
+    while smatch:
+        specstart = smatch.start()
+        specpos = smatch.end()
+        ematch = endspecrex.search(vlines[specpos:])
+        specend = ematch.end()
+        vtemp = vlines[0:specstart + 1] + vlines[specpos + specend + 1:]
+        vlines = vtemp
+        smatch = specrex.search(vlines)
+
+    if vlines != vtext:
+        # File contents have been modified, so if this file was a symbolic
+        # link, then remove it.  Otherwise, overwrite the file with the
+        # modified contents.
+        if outfile == vfile:
+            if os.path.islink(vfile):
+                os.unlink(vfile)
+        if os.path.exists(outfile):
+            makeuserwritable(outfile)
+        with open(outfile, 'w') as ofile:
+            ofile.write(vlines)
+
+    elif outfile != vfile:
+        if os.path.exists(outfile):
+            makeuserwritable(outfile)
+        with open(outfile, 'w') as ofile:
+            ofile.write(vlines)
+
+# If called as main, run remove_specify
+
+if __name__ == '__main__':
+
+    # Divide up command line into options and arguments
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    # Need one argument:  path to verilog netlist
+    # If two arguments, then 2nd argument is the output file.
+
+    if len(arguments) == 2:
+        netlist_path = arguments[0]
+        output_path = arguments[1]
+        remove_specify(netlist_path, output_path)
+    elif len(arguments) != 1:
+        print("Usage:  remove_spcify.py <file_path> [<output_path>]")
+    elif len(arguments) == 1:
+        netlist_path = arguments[0]
+        remove_specify(netlist_path, None)
+
diff --git a/common/soc_floorplanner.py b/common/soc_floorplanner.py
new file mode 100755
index 0000000..959a623
--- /dev/null
+++ b/common/soc_floorplanner.py
@@ -0,0 +1,2619 @@
+#!/usr/bin/env python3
+#
+#--------------------------------------------------------
+# Padframe Editor and Core Floorplanner
+#
+#--------------------------------------------------------
+# Written by Tim Edwards
+# efabless, inc.
+# April 24, 2019
+# Version 0.5
+# Based on https://github.com/YosysHQ/padring (requirement)
+# Update: May 9, 2019 to add console message window
+# Update: May 10, 2019 to incorporate core floorplanning
+# Update: Jan 31, 2020 to allow batch operation
+#--------------------------------------------------------
+
+import os
+import re
+import sys
+import glob
+import json
+import math
+import shutil
+import signal
+import select
+import subprocess
+import faulthandler
+
+import tkinter
+from tkinter import ttk
+from tkinter import filedialog
+import tksimpledialog
+from consoletext import ConsoleText
+
+# User preferences file (if it exists)
+prefsfile = '~/design/.profile/prefs.json'
+
+#------------------------------------------------------
+# Dialog for entering a pad
+#------------------------------------------------------
+
+class PadNameDialog(tksimpledialog.Dialog):
+    def body(self, master, warning=None, seed=None):
+        if warning:
+            ttk.Label(master, text=warning).grid(row = 0, columnspan = 2, sticky = 'wns')
+        ttk.Label(master, text="Enter new group name:").grid(row = 1, column = 0, sticky = 'wns')
+        self.nentry = ttk.Entry(master)
+        self.nentry.grid(row = 1, column = 1, sticky = 'ewns')
+        if seed:
+            self.nentry.insert(0, seed)
+        return self.nentry # initial focus
+
+    def apply(self):
+        return self.nentry.get()
+
+#------------------------------------------------------
+# Dialog for entering core dimensions
+#------------------------------------------------------
+
+class CoreSizeDialog(tksimpledialog.Dialog):
+    def body(self, master, warning="Chip core dimensions", seed=None):
+        if warning:
+            ttk.Label(master, text=warning).grid(row = 0, columnspan = 2, sticky = 'wns')
+        ttk.Label(master, text="Enter core width x height (microns):").grid(row = 1, column = 0, sticky = 'wns')
+        self.nentry = ttk.Entry(master)
+        self.nentry.grid(row = 1, column = 1, sticky = 'ewns')
+
+
+        if seed:
+            self.nentry.insert(0, seed)
+        return self.nentry # initial focus
+
+    def apply(self):
+        return self.nentry.get()
+
+#------------------------------------------------
+# SoC Floorplanner and Padframe Generator GUI
+#------------------------------------------------
+
+class SoCFloorplanner(ttk.Frame):
+    """Open Galaxy Pad Frame Generator."""
+
+    def __init__(self, parent = None, *args, **kwargs):
+        '''See the __init__ for Tkinter.Toplevel.'''
+        ttk.Frame.__init__(self, parent, *args[1:], **kwargs)
+        self.root = parent
+        self.init_data()
+        if args[0] == True:
+            self.do_gui = True
+            self.init_gui()
+        else:
+            self.do_gui = False
+            self.use_console = False
+
+    def on_quit(self):
+        """Exits program."""
+        quit()
+
+    def init_gui(self):
+        """Builds GUI."""
+        global prefsfile
+
+        message = []
+        fontsize = 11
+
+        # Read user preferences file, get default font size from it.
+        prefspath = os.path.expanduser(prefsfile)
+        if os.path.exists(prefspath):
+            with open(prefspath, 'r') as f:
+                self.prefs = json.load(f)
+            if 'fontsize' in self.prefs:
+                fontsize = self.prefs['fontsize']
+        else:
+            self.prefs = {}
+
+        s = ttk.Style()
+
+        available_themes = s.theme_names()
+        s.theme_use(available_themes[0])
+
+        s.configure('normal.TButton', font=('Helvetica', fontsize), border = 3, relief = 'raised')
+        s.configure('title.TLabel', font=('Helvetica', fontsize, 'bold italic'),
+                        foreground = 'brown', anchor = 'center')
+        s.configure('blue.TLabel', font=('Helvetica', fontsize), foreground = 'blue')
+        s.configure('normal.TLabel', font=('Helvetica', fontsize))
+        s.configure('normal.TCheckbutton', font=('Helvetica', fontsize))
+        s.configure('normal.TMenubutton', font=('Helvetica', fontsize))
+        s.configure('normal.TEntry', font=('Helvetica', fontsize), background='white')
+        s.configure('pad.TLabel', font=('Helvetica', fontsize), foreground = 'blue', relief = 'flat')
+        s.configure('select.TLabel', font=('Helvetica', fontsize, 'bold'), foreground = 'white',
+			background = 'blue', relief = 'flat')
+ 
+        # parent.withdraw()
+        self.root.title('Padframe Generator and Core Floorplanner')
+        self.root.option_add('*tearOff', 'FALSE')
+        self.pack(side = 'top', fill = 'both', expand = 'true')
+        self.root.protocol("WM_DELETE_WINDOW", self.on_quit)
+
+        pane = tkinter.PanedWindow(self, orient = 'vertical', sashrelief = 'groove',
+			sashwidth = 6)
+        pane.pack(side = 'top', fill = 'both', expand = 'true')
+
+        self.toppane = ttk.Frame(pane)
+        self.botpane = ttk.Frame(pane)
+
+        self.toppane.columnconfigure(0, weight = 1)
+        self.toppane.rowconfigure(0, weight = 1)
+        self.botpane.columnconfigure(0, weight = 1)
+        self.botpane.rowconfigure(0, weight = 1)
+
+        # Scrolled frame using canvas widget
+        self.pframe = tkinter.Frame(self.toppane)
+        self.pframe.grid(row = 0, column = 0, sticky = 'news')
+        self.pframe.rowconfigure(0, weight = 1)
+        self.pframe.columnconfigure(0, weight = 1)
+
+        # Add column on the left, listing all groups and the pads they belong to.
+        # This starts as just a frame to be filled.  Use a canvas to create a
+        # scrolled frame.
+
+        # The primary frame holds the canvas
+        self.canvas = tkinter.Canvas(self.pframe, background = "white")
+        self.canvas.grid(row = 0, column = 0, sticky = 'news')
+
+        # Add Y scrollbar to pad list window
+        xscrollbar = ttk.Scrollbar(self.pframe, orient = 'horizontal')
+        xscrollbar.grid(row = 1, column = 0, sticky = 'news')
+        yscrollbar = ttk.Scrollbar(self.pframe, orient = 'vertical')
+        yscrollbar.grid(row = 0, column = 1, sticky = 'news')
+
+        self.canvas.config(xscrollcommand = xscrollbar.set)
+        xscrollbar.config(command = self.canvas.xview)
+        self.canvas.config(yscrollcommand = yscrollbar.set)
+        yscrollbar.config(command = self.canvas.yview)
+
+        self.canvas.bind("<Button-4>", self.on_scrollwheel)
+        self.canvas.bind("<Button-5>", self.on_scrollwheel)
+
+        # Configure callback
+        self.canvas.bind("<Configure>", self.frame_configure)
+
+        # Add a text window to capture output.  Redirect print statements to it.
+        self.console = ttk.Frame(self.botpane)
+        self.console.grid(column = 0, row = 0, sticky = "news")
+        self.text_box = ConsoleText(self.console, wrap='word', height = 4)
+        self.text_box.pack(side='left', fill='both', expand='true')
+        console_scrollbar = ttk.Scrollbar(self.console)
+        console_scrollbar.pack(side='right', fill='y')
+        # Attach console to scrollbar
+        self.text_box.config(yscrollcommand = console_scrollbar.set)
+        console_scrollbar.config(command = self.text_box.yview)
+
+        # Add the bottom bar with buttons
+        self.bbar = ttk.Frame(self.botpane)
+        self.bbar.grid(column = 0, row = 1, sticky = "news")
+
+        self.bbar.import_button = ttk.Button(self.bbar, text='Import',
+		command=self.vlogimport, style='normal.TButton')
+        self.bbar.import_button.grid(column=0, row=0, padx = 5)
+
+        self.bbar.generate_button = ttk.Button(self.bbar, text='Generate',
+		command=self.generate, style='normal.TButton')
+        self.bbar.generate_button.grid(column=1, row=0, padx = 5)
+
+        self.bbar.save_button = ttk.Button(self.bbar, text='Save',
+		command=self.save, style='normal.TButton')
+        self.bbar.save_button.grid(column=2, row=0, padx = 5)
+
+        self.bbar.cancel_button = ttk.Button(self.bbar, text='Quit',
+		command=self.on_quit, style='normal.TButton')
+        self.bbar.cancel_button.grid(column=3, row=0, padx = 5)
+
+        pane.add(self.toppane)
+        pane.add(self.botpane)
+        pane.paneconfig(self.toppane, stretch='first')
+
+    def init_data(self):
+
+        self.vlogpads = []
+        self.corecells = []
+        self.Npads = []
+        self.Spads = []
+        self.Epads = []
+        self.Wpads = []
+        self.NEpad = []
+        self.NWpad = []
+        self.SEpad = []
+        self.SWpad = []
+        self.coregroup = []
+
+        self.celldefs = []
+        self.coredefs = []
+        self.selected = []
+        self.ioleflibs = []
+        self.llx = 0
+        self.lly = 0
+        self.urx = 0
+        self.ury = 0
+
+        self.event_data = {}
+        self.event_data['x0'] = 0
+        self.event_data['y0'] = 0
+        self.event_data['x'] = 0
+        self.event_data['y'] = 0
+        self.event_data['tag'] = None
+        self.scale = 1.0
+        self.margin = 10
+        self.pad_rotation = 0
+
+        self.init_messages = []
+        self.stdout = None
+        self.stderr = None
+
+        self.keep_cfg = False
+        self.ef_format = False
+        self.use_console = False
+
+    def init_padframe(self):
+        self.set_project()
+        self.vlogimport()
+        self.readplacement(precheck=True)
+        self.resolve()
+        self.generate(0)
+
+    # Local routines for handling printing to the text console
+
+    def print(self, message, file=None, end='\n', flush=True):
+        if not file:
+            if not self.use_console:
+                file = sys.stdout
+            else:
+                file = ConsoleText.StdoutRedirector(self.text_box)
+        if self.stdout:
+            print(message, file=file, end=end)
+            if flush:
+                self.stdout.flush()
+                self.update_idletasks()
+        else:
+            self.init_messages.append(message)
+
+    def text_to_console(self):
+        # Redirect stdout and stderr to the console as the last thing to do. . .
+        # Otherwise errors in the GUI get sucked into the void.
+
+        self.stdout = sys.stdout
+        self.stderr = sys.stderr
+        if self.use_console:
+            sys.stdout = ConsoleText.StdoutRedirector(self.text_box)
+            sys.stderr = ConsoleText.StderrRedirector(self.text_box)
+
+        if len(self.init_messages) > 0:
+            for message in self.init_messages:
+                self.print(message)
+            self.init_messages = []
+
+    # Set the project name(s).  This is the name of the top-level verilog.
+    # The standard protocol is that the project directory contains a file
+    # project.json that defines a name 'ip-name' that is the same as the
+    # layout name, the verilog module name, etc.  
+
+    def set_project(self):
+        # Check pwd
+        pwdname = self.projectpath if self.projectpath else os.getcwd()
+        
+        subdir = os.path.split(pwdname)[1]
+        if subdir == 'mag' or subdir == 'verilog':
+            projectpath = os.path.split(pwdname)[0]
+        else:
+            projectpath = pwdname
+
+        projectroot = os.path.split(projectpath)[0]
+        projectdirname = os.path.split(projectpath)[1]
+
+        # Check for efabless format.  This is probably more complicated than
+        # it deserves to be.  Option -ef_format is the best way to specify
+        # efabless format.  However, if it is not specified, then check the
+        # technology PDK directory and the project directory for the tell-tale
+        # ".ef-config" (efabless format) directory vs. ".config" (not efabless
+        # format).
+
+        if not self.ef_format:
+            if os.path.exists(projectpath + '/.ef-config'):
+                self.ef_format = True
+            elif self.techpath:
+                if os.path.exists(self.techpath + '/.ef-config'):
+                    self.ef_format = True
+        else:
+            # Do a quick consistency check.  Honor the -ef_format option but warn if
+            # there is an apparent inconsistency.
+            if os.path.exists(projectpath + '/.config'):
+                self.print('Warning:  -ef_format used in apparently non-efabless setup.')
+            elif self.techpath:
+                if os.path.exists(self.techpath + '/.config'):
+                    self.print('Warning:  -ef_format used in apparently non-efabless setup.')
+
+        # Check for project.json
+
+        jsonname = None
+        if os.path.isfile(projectpath + '/project.json'):
+            jsonname = projectpath + '/project.json'
+        elif os.path.isfile(projectroot + '/' + projectdirname + '.json'):
+            jsonname = projectroot + '/' + projectdirname + '.json'
+        if os.path.isfile(projectroot + '/project.json'):
+            # Just in case this was started from some other subdirectory
+            projectpath = projectroot
+            jsonname = projectroot + '/project.json'
+
+        if jsonname:
+            self.print('Reading project JSON file ' + jsonname)
+            with open(jsonname, 'r') as ifile:
+                topdata = json.load(ifile)
+                if 'data-sheet' in topdata:
+                    dsheet = topdata['data-sheet']
+                    if 'ip-name' in dsheet:
+                        self.project = dsheet['ip-name']
+                        self.projectpath = projectpath
+        else:
+            self.print('No project JSON file; using directory name as the project name.')
+            self.project = os.path.split(projectpath)[1]
+            self.projectpath = projectpath
+
+        self.print('Project name is ' + self.project + ' (' + self.projectpath + ')')
+
+    # Functions for drag-and-drop capability
+    def add_draggable(self, tag):
+        self.canvas.tag_bind(tag, '<ButtonPress-1>', self.on_button_press)
+        self.canvas.tag_bind(tag, '<ButtonRelease-1>', self.on_button_release)
+        self.canvas.tag_bind(tag, '<B1-Motion>', self.on_button_motion)
+        self.canvas.tag_bind(tag, '<ButtonPress-2>', self.on_button2_press)
+        self.canvas.tag_bind(tag, '<ButtonPress-3>', self.on_button3_press)
+
+    def on_button_press(self, event):
+        '''Begining drag of an object'''
+        # Find the closest item, then record its tag.
+        locx = event.x + self.canvas.canvasx(0)
+        locy = event.y + self.canvas.canvasy(0)
+        item = self.canvas.find_closest(locx, locy)[0]
+        self.event_data['tag'] = self.canvas.gettags(item)[0]
+        self.event_data['x0'] = event.x
+        self.event_data['y0'] = event.y
+        self.event_data['x'] = event.x
+        self.event_data['y'] = event.y
+
+    def on_button2_press(self, event):
+        '''Flip an object (excluding corners)'''
+        locx = event.x + self.canvas.canvasx(0)
+        locy = event.y + self.canvas.canvasy(0)
+        item = self.canvas.find_closest(locx, locy)[0]
+        tag = self.canvas.gettags(item)[0]
+
+        try:
+            corecell = next(item for item in self.coregroup if item['name'] == tag)
+        except:
+            try:
+                pad = next(item for item in self.Npads if item['name'] == tag)
+            except:
+                pad = None
+            if not pad:
+                try:
+                    pad = next(item for item in self.Epads if item['name'] == tag)
+                except:
+                    pad = None
+            if not pad:
+                try:
+                    pad = next(item for item in self.Spads if item['name'] == tag)
+                except:
+                    pad = None
+            if not pad:
+                try:
+                    pad = next(item for item in self.Wpads if item['name'] == tag)
+                except:
+                    pad = None
+            if not pad:
+                self.print('Error: Object cannot be flipped.')
+            else:
+                # Flip the pad (in the only way meaningful for the pad).
+                orient = pad['o']
+                if orient == 'N':
+                    pad['o'] = 'FN'
+                elif orient == 'E':
+                    pad['o'] = 'FW'
+                elif orient == 'S':
+                    pad['o'] = 'FS'
+                elif orient == 'W':
+                    pad['o'] = 'FE'
+                elif orient == 'FN':
+                    pad['o'] = 'N'
+                elif orient == 'FE':
+                    pad['o'] = 'W'
+                elif orient == 'FS':
+                    pad['o'] = 'S'
+                elif orient == 'FW':
+                    pad['o'] = 'E'
+        else:
+            # Flip the cell.  Use the DEF meaning of flip, which is to
+            # add or subtract 'F' from the orientation.
+            orient = corecell['o']
+            if not 'F' in orient:
+                corecell['o'] = 'F' + orient
+            else:
+                corecell['o'] = orient[1:]
+
+        # Redraw
+        self.populate(0)
+
+    def on_button3_press(self, event):
+        '''Rotate a core object (no pads) '''
+        locx = event.x + self.canvas.canvasx(0)
+        locy = event.y + self.canvas.canvasy(0)
+        item = self.canvas.find_closest(locx, locy)[0]
+        tag = self.canvas.gettags(item)[0]
+
+        try:
+            corecell = next(item for item in self.coregroup if item['name'] == tag)
+        except:
+            self.print('Error: Object cannot be rotated.')
+        else:
+            # Modify its orientation
+            orient = corecell['o']
+            if orient == 'N':
+                corecell['o'] = 'E'
+            elif orient == 'E':
+                corecell['o'] = 'S'
+            elif orient == 'S':
+                corecell['o'] = 'W'
+            elif orient == 'W':
+                corecell['o'] = 'N'
+            elif orient == 'FN':
+                corecell['o'] = 'FW'
+            elif orient == 'FW':
+                corecell['o'] = 'FS'
+            elif orient == 'FS':
+                corecell['o'] = 'FE'
+            elif orient == 'FE':
+                corecell['o'] = 'FN'
+
+            # rewrite the core DEF file
+            self.write_core_def()
+
+        # Redraw
+        self.populate(0)
+
+    def on_button_motion(self, event):
+        '''Handle dragging of an object'''
+        # compute how much the mouse has moved
+        delta_x = event.x - self.event_data['x']
+        delta_y = event.y - self.event_data['y']
+        # move the object the appropriate amount
+        self.canvas.move(self.event_data['tag'], delta_x, delta_y)
+        # record the new position
+        self.event_data['x'] = event.x
+        self.event_data['y'] = event.y
+
+    def on_button_release(self, event):
+        '''End drag of an object'''
+
+        # Find the pad associated with the tag and update its position information
+        tag = self.event_data['tag']
+
+        # Collect pads in clockwise order.  Note that E and S rows are not clockwise
+        allpads = []
+        allpads.extend(self.Npads)
+        allpads.extend(self.NEpad)
+        allpads.extend(reversed(self.Epads))
+        allpads.extend(self.SEpad)
+        allpads.extend(reversed(self.Spads))
+        allpads.extend(self.SWpad)
+        allpads.extend(self.Wpads)
+        allpads.extend(self.NWpad)
+
+        # Create a list of row references (also in clockwise order, but no reversing)
+        padrows = [self.Npads, self.NEpad, self.Epads, self.SEpad, self.Spads, self.SWpad, self.Wpads, self.NWpad]
+
+        # Record the row or corner where this pad was located before the move
+        for row in padrows:
+            try:
+                pad = next(item for item in row if item['name'] == tag)
+            except:
+                pass
+            else:
+                padrow = row
+                break
+
+        # Currently there is no procedure to move a pad out of the corner
+        # position;  corners are fixed by definition.
+        if padrow == self.NEpad or padrow == self.SEpad or padrow == self.SWpad or padrow == self.NWpad:
+            # Easier to run generate() than to put the pad back. . .
+            self.generate(0)
+            return
+
+        # Find the original center point of the pad being moved
+
+        padllx = pad['x']
+        padlly = pad['y']
+        if pad['o'] == 'N' or pad['o'] == 'S':
+            padurx = padllx + pad['width']
+            padury = padlly + pad['height']
+        else:
+            padurx = padllx + pad['height']
+            padury = padlly + pad['width']
+        padcx = (padllx + padurx) / 2
+        padcy = (padlly + padury) / 2
+
+        # Add distance from drag information (note that drag position in y
+        # is negative relative to the chip dimensions)
+        padcx += (self.event_data['x'] - self.event_data['x0']) / self.scale
+        padcy -= (self.event_data['y'] - self.event_data['y0']) / self.scale
+
+        # reset the drag information
+        self.event_data['tag'] = None
+        self.event_data['x'] = 0
+        self.event_data['y'] = 0
+        self.event_data['x0'] = 0
+        self.event_data['y0'] = 0
+
+        # Find the distance from the pad to all other pads, and get the two
+        # closest entries.
+
+        wwidth = self.urx - self.llx
+        dist0 = wwidth
+        dist1 = wwidth
+        pad0 = None
+        pad1 = None
+          
+        for npad in allpads:
+            if npad == pad:
+                continue
+
+            npadllx = npad['x']
+            npadlly = npad['y']
+            if npad['o'] == 'N' or npad['o'] == 'S':
+                npadurx = npadllx + npad['width']
+                npadury = npadlly + npad['height']
+            else:
+                npadurx = npadllx + npad['height']
+                npadury = npadlly + npad['width']
+            npadcx = (npadllx + npadurx) / 2
+            npadcy = (npadlly + npadury) / 2
+
+            deltx = npadcx - padcx
+            delty = npadcy - padcy
+            pdist = math.sqrt(deltx * deltx + delty * delty)
+            if pdist < dist0:
+                dist1 = dist0
+                pad1 = pad0
+                dist0 = pdist
+                pad0 = npad
+
+            elif pdist < dist1:
+                dist1 = pdist
+                pad1 = npad
+
+        # Diagnostic
+        # self.print('Two closest pads to pad ' + pad['name'] + ' (' + pad['cell'] + '): ')
+        # self.print(pad0['name'] + ' (' + pad0['cell'] + ') dist = ' + str(dist0))
+        # self.print(pad1['name'] + ' (' + pad1['cell'] + ') dist = ' + str(dist1))
+
+        # Record the row or corner where these pads are
+        for row in padrows:
+            try:
+                testpad = next(item for item in row if item['name'] == pad0['name'])
+            except:
+                pass
+            else:
+                padrow0 = row
+                break
+
+        for row in padrows:
+            try:
+                testpad = next(item for item in row if item['name'] == pad1['name'])
+            except:
+                pass
+            else:
+                padrow1 = row
+                break
+
+        # Remove pad from its own row
+        padrow.remove(pad)
+
+        # Insert pad into new row.  Watch for wraparound from the last entry to the first
+        padidx0 = allpads.index(pad0)
+        padidx1 = allpads.index(pad1)
+        if padidx0 == 0 and padidx1 > 2:
+            padidx1 = -1
+
+        if padidx1 > padidx0:
+            padafter = pad1
+            rowafter = padrow1
+            padbefore = pad0
+            rowbefore = padrow0
+        else:
+            padafter = pad0
+            rowafter = padrow0
+            padbefore = pad1
+            rowbefore = padrow1
+
+        # Do not replace corner positions (? may be necessary ?)
+        if rowafter == self.NWpad:
+            self.Wpads.append(pad)
+        elif rowafter == self.NWpad:
+            self.Npads.append(pad)
+        elif rowafter == self.SEpad:
+            self.Epads.insert(0, pad)
+        elif rowafter == self.SWpad:
+            self.Spads.insert(0, pad)
+        elif rowafter == self.Wpads or rowafter == self.Npads:
+            idx = rowafter.index(padafter)
+            rowafter.insert(idx, pad)
+        elif rowbefore == self.NEpad:
+            self.Epads.append(pad)
+        elif rowbefore == self.SEpad:
+            self.Spads.append(pad)
+        else:
+            # rows E and S are ordered counterclockwise
+            idx = rowbefore.index(padbefore)
+            rowbefore.insert(idx, pad)
+
+        # Re-run padring
+        self.generate(0)
+
+    def on_scrollwheel(self, event):
+        if event.num == 4:
+            zoomval = 1.1;
+        elif event.num == 5:
+            zoomval = 0.9;
+        else:
+            zoomval = 1.0;
+
+        self.scale *= zoomval
+        self.canvas.scale('all', -15 * zoomval, -15 * zoomval, zoomval, zoomval)
+        self.event_data['x'] *= zoomval
+        self.event_data['y'] *= zoomval
+        self.event_data['x0'] *= zoomval
+        self.event_data['y0'] *= zoomval
+        self.frame_configure(event)
+
+    # Callback functions similar to the pad event callbacks above, but for
+    # core cells.  Unlike pad cells, core cells can be rotated and flipped
+    # arbitrarily, and they do not force a recomputation of the padframe
+    # unless their position forces the padframe to expand
+
+    def add_core_draggable(self, tag):
+        self.canvas.tag_bind(tag, '<ButtonPress-1>', self.on_button_press)
+        self.canvas.tag_bind(tag, '<ButtonRelease-1>', self.core_on_button_release)
+        self.canvas.tag_bind(tag, '<B1-Motion>', self.on_button_motion)
+        self.canvas.tag_bind(tag, '<ButtonPress-2>', self.on_button2_press)
+        self.canvas.tag_bind(tag, '<ButtonPress-3>', self.on_button3_press)
+
+    def core_on_button_release(self, event):
+        '''End drag of a core cell'''
+
+        # Find the pad associated with the tag and update its position information
+        tag = self.event_data['tag']
+
+        try:
+            corecell = next(item for item in self.coregroup if item['name'] == tag)
+        except:
+            self.print('Error: cell ' + item['name'] + ' is not in coregroup!')
+        else:  
+            # Modify its position values
+            corex = corecell['x']
+            corey = corecell['y']
+
+            # Add distance from drag information (note that drag position in y
+            # is negative relative to the chip dimensions)
+            deltax = (self.event_data['x'] - self.event_data['x0']) / self.scale
+            deltay = (self.event_data['y'] - self.event_data['y0']) / self.scale
+
+            corecell['x'] = corex + deltax
+            corecell['y'] = corey - deltay
+
+            # rewrite the core DEF file
+            self.write_core_def()
+
+        # reset the drag information
+        self.event_data['tag'] = None
+        self.event_data['x'] = 0
+        self.event_data['y'] = 0
+        self.event_data['x0'] = 0
+        self.event_data['y0'] = 0
+
+    # Critically needed or else frame does not resize to scrollbars!
+    def grid_configure(self, padx, pady):
+        pass
+
+    # Redraw the chip frame view in response to changes in the pad list
+    def redraw_frame(self):
+        self.canvas.coords('boundary', self.llx, self.urx, self.lly, self.ury)
+   
+    # Update the canvas scrollregion to incorporate all the interior windows
+    def frame_configure(self, event):
+        if self.do_gui == False:
+            return
+        self.update_idletasks()
+        bbox = self.canvas.bbox("all")
+        try:
+            newbbox = (-15, -15, bbox[2] + 15, bbox[3] + 15)
+        except:
+            pass
+        else:
+            self.canvas.configure(scrollregion = newbbox)
+
+    # Fill the GUI entries with resident data
+    def populate(self, level):
+        if self.do_gui == False:
+            return
+
+        if level > 1:
+            self.print('Recursion error:  Returning now.')
+            return
+
+        self.print('Populating floorplan view.')
+
+        # Remove all entries from the canvas
+        self.canvas.delete('all')
+
+        allpads = self.Npads + self.NEpad + self.Epads + self.SEpad + self.Spads + self.SWpad + self.Wpads + self.NWpad
+
+        notfoundlist = []
+
+        for pad in allpads:
+            if 'x' not in pad:
+                self.print('Error:  Pad ' + pad['name'] + ' has no placement information.')
+                continue
+            llx = int(pad['x'])
+            lly = int(pad['y'])
+            pado = pad['o']
+            try:
+                padcell = next(item for item in self.celldefs if item['name'] == pad['cell'])
+            except:
+                # This should not happen (failsafe)
+                if pad['cell'] not in notfoundlist:
+                    self.print('Warning:  there is no cell named ' + pad['cell'] + ' in the libraries.')
+                notfoundlist.append(pad['cell'])
+                continue
+            padw = padcell['width']
+            padh = padcell['height']
+            if 'N' in pado or 'S' in pado:
+                urx = int(llx + padw)
+                ury = int(lly + padh)
+            else:
+                urx = int(llx + padh)
+                ury = int(lly + padw)
+            
+            pad['llx'] = llx
+            pad['lly'] = lly
+            pad['urx'] = urx
+            pad['ury'] = ury
+
+        # Note that the DEF coordinate system is reversed in Y from the canvas. . .
+
+        height = self.ury - self.lly
+        for pad in allpads:
+
+            llx = pad['llx']
+            lly = height - pad['lly']
+            urx = pad['urx']
+            ury = height - pad['ury']
+
+            tag_id = pad['name']
+            if 'subclass' in pad:
+                if pad['subclass'] == 'POWER':
+                    pad_color = 'orange2'
+                elif pad['subclass'] == 'INOUT':
+                    pad_color = 'yellow'
+                elif pad['subclass'] == 'OUTPUT':
+                    pad_color = 'powder blue'
+                elif pad['subclass'] == 'INPUT':
+                    pad_color = 'goldenrod1'
+                elif pad['subclass'] == 'SPACER':
+                    pad_color = 'green yellow'
+                elif pad['class'] == 'ENDCAP':
+                    pad_color = 'green yellow'
+                elif pad['subclass'] == '' or pad['class'] == ';':
+                    pad_color = 'khaki1'
+                else:
+                    self.print('Unhandled pad class ' + pad['class'])
+                    pad_color = 'gray'
+            else:
+                 pad_color = 'gray'
+
+            sllx = self.scale * llx
+            slly = self.scale * lly
+            surx = self.scale * urx
+            sury = self.scale * ury
+
+            self.canvas.create_rectangle((sllx, slly), (surx, sury), fill=pad_color, tags=[tag_id])
+            cx = (sllx + surx) / 2
+            cy = (slly + sury) / 2
+
+            s = 10 if pad['width'] >= 10 else pad['width']
+            if pad['height'] < s:
+                s = pad['height']
+
+            # Create an indicator line at the bottom left corner of the cell
+            if pad['o'] == 'N':
+                allx = sllx
+                ally = slly - s
+                aurx = sllx + s
+                aury = slly
+            elif pad['o'] == 'E':
+                allx = sllx
+                ally = sury + s
+                aurx = sllx + s
+                aury = sury
+            elif pad['o'] == 'S':
+                allx = surx
+                ally = sury + s
+                aurx = surx - s
+                aury = sury
+            elif pad['o'] == 'W':
+                allx = surx
+                ally = slly - s
+                aurx = surx - s
+                aury = slly
+            elif pad['o'] == 'FN':
+                allx = surx
+                ally = slly - s
+                aurx = surx - s
+                aury = slly
+            elif pad['o'] == 'FE':
+                allx = surx
+                ally = sury + s
+                aurx = surx - s
+                aury = sury
+            elif pad['o'] == 'FS':
+                allx = sllx
+                ally = sury + s
+                aurx = sllx + s
+                aury = sury
+            elif pad['o'] == 'FW':
+                allx = sllx
+                ally = slly - s
+                aurx = sllx + s
+                aury = slly
+            self.canvas.create_line((allx, ally), (aurx, aury), tags=[tag_id])
+ 
+            # Rotate text on top and bottom rows if the tkinter version allows it.
+            if tkinter.TclVersion >= 8.6:
+                if pad['o'] == 'N' or pad['o'] == 'S':
+                    angle = 90
+                else:
+                    angle = 0
+                self.canvas.create_text((cx, cy), text=pad['name'], angle=angle, tags=[tag_id])
+            else:
+                self.canvas.create_text((cx, cy), text=pad['name'], tags=[tag_id])
+
+            # Make the pad draggable
+            self.add_draggable(tag_id)
+
+        # Now add the core cells
+        for cell in self.coregroup:
+            if 'x' not in cell:
+                self.print('Error:  Core cell ' + cell['name'] + ' has no placement information.')
+                continue
+            # else:
+            #     self.print('Diagnostic:  Creating object for core cell ' + cell['name'])
+            llx = int(cell['x'])
+            lly = int(cell['y'])
+            cello = cell['o']
+            try:
+                corecell = next(item for item in self.coredefs if item['name'] == cell['cell'])
+            except:
+                # This should not happen (failsafe)
+                if cell['cell'] not in notfoundlist:
+                    self.print('Warning:  there is no cell named ' + cell['cell'] + ' in the libraries.')
+                notfoundlist.append(cell['cell'])
+                continue
+            cellw = corecell['width']
+            cellh = corecell['height']
+            if 'N' in cello or 'S' in cello:
+                urx = int(llx + cellw)
+                ury = int(lly + cellh)
+            else:
+                urx = int(llx + cellh)
+                ury = int(lly + cellw)
+                print('NOTE: cell ' + corecell['name'] + ' is rotated, w = ' + str(urx - llx) + '; h = ' + str(ury - lly))
+
+            cell['llx'] = llx
+            cell['lly'] = lly
+            cell['urx'] = urx
+            cell['ury'] = ury
+
+        # Watch for out-of-window position in core cells.
+        corellx = self.llx
+        corelly = self.lly
+        coreurx = self.urx
+        coreury = self.ury
+
+        for cell in self.coregroup:
+
+            if 'llx' not in cell:
+                # Error message for this was handled above
+                continue
+
+            llx = cell['llx']
+            lly = height - cell['lly']
+            urx = cell['urx']
+            ury = height - cell['ury']
+
+            # Check for out-of-window cell
+            if llx < corellx:
+                corellx = llx
+            if lly < corelly:
+                corelly = lly
+            if urx > coreurx:
+                coreurx = urx
+            if ury > coreury:
+                coreury = ury
+
+            tag_id = cell['name']
+            cell_color = 'gray40'
+
+            sllx = self.scale * llx
+            slly = self.scale * lly
+            surx = self.scale * urx
+            sury = self.scale * ury
+
+            self.canvas.create_rectangle((sllx, slly), (surx, sury), fill=cell_color, tags=[tag_id])
+            cx = (sllx + surx) / 2
+            cy = (slly + sury) / 2
+
+            s = 10 if cell['width'] >= 10 else cell['width']
+            if cell['height'] < s:
+                s = cell['height']
+
+            # Create an indicator line at the bottom left corner of the cell
+            if cell['o'] == 'N':
+                allx = sllx
+                ally = slly - s
+                aurx = sllx + s
+                aury = slly
+            elif cell['o'] == 'E':
+                allx = sllx
+                ally = sury + s
+                aurx = sllx + s
+                aury = sury
+            elif cell['o'] == 'S':
+                allx = surx
+                ally = sury + s
+                aurx = surx - s
+                aury = sury
+            elif cell['o'] == 'W':
+                allx = surx
+                ally = slly - s
+                aurx = surx - s
+                aury = slly
+            elif cell['o'] == 'FN':
+                allx = surx
+                ally = slly - s
+                aurx = surx - s
+                aury = slly
+            elif cell['o'] == 'FE':
+                allx = surx
+                ally = sury + s
+                aurx = surx - s
+                aury = sury
+            elif cell['o'] == 'FS':
+                allx = sllx
+                ally = sury + s
+                aurx = sllx + s
+                aury = sury
+            elif cell['o'] == 'FW':
+                allx = sllx
+                ally = slly - s
+                aurx = sllx + s
+                aury = slly
+            self.canvas.create_line((allx, ally), (aurx, aury), tags=[tag_id])
+ 
+            # self.print('Created entry for cell ' + cell['name'] + ' at {0:g}, {1:g}'.format(cx, cy))
+ 
+            # Rotate text on top and bottom rows if the tkinter version allows it.
+            if tkinter.TclVersion >= 8.6:
+                if 'N' in cell['o'] or 'S' in cell['o']:
+                    angle = 90
+                else:
+                    angle = 0
+                self.canvas.create_text((cx, cy), text=cell['name'], angle=angle, tags=[tag_id])
+            else:
+                self.canvas.create_text((cx, cy), text=cell['name'], tags=[tag_id])
+
+            # Make the core cell draggable
+            self.add_core_draggable(tag_id)
+
+        # Is there a boundary size defined?
+        if self.urx > self.llx and self.ury > self.lly:
+            self.create_boundary()
+
+        # Did the core extend into negative X or Y?  If so, adjust all canvas
+        # coordinates to fit in the window, or else objects cannot be reached
+        # even by zooming out (since zooming is pinned on the top corner).
+
+        offsetx = 0
+        offsety = 0
+
+        # NOTE:  Probably want to check if the core exceeds the inner
+        # dimension of the pad ring, not the outer (to check and to do).
+
+        if corellx < self.llx:
+            offsetx = self.llx - corellx 
+        if corelly < self.lly:
+            offsety = self.lly - corelly
+        if offsetx > 0 or offsety > 0:
+            self.canvas.move("all", offsetx, offsety)
+            # An offset implies that the chip is core limited, and the
+            # padframe requires additional space.  This can be accomplished
+            # simply by running "Generate".  NOTE:  Since generate() calls
+            # populate(), be VERY SURE that this does not infinitely recurse!
+            self.generate(level)
+
+    # Generate a DEF file of the core area
+
+    def write_core_def(self):
+        self.print('Writing core placementment information in DEF file "core.def".')
+
+        mag_path = self.projectpath + '/mag'
+
+        # The core cells must always clear the I/O pads on the left and
+        # bottom (with the ad-hoc margin of self.margin).  If core cells have
+        # been moved to the left or down past the padframe edge, then the
+        # entire core needs to be repositioned.
+
+        # To be done:  draw a boundary around the core, let the edges of that
+        # boundary be draggable, and let the difference between the boundary
+        # and the core area define the margin.
+
+        if self.SWpad != []:
+            corellx = self.SWpad[0]['x'] + self.SWpad[0]['width'] + self.margin
+            corelly = self.SWpad[0]['y'] + self.SWpad[0]['height'] + self.margin
+        else:
+            corellx = self.Wpads[0]['x'] + self.Wpads[0]['height'] + self.margin
+            corelly = self.Spads[0]['x'] + self.Spads[0]['height'] + self.margin
+
+        offsetx = 0
+        offsety = 0
+        for corecell in self.coregroup:
+            if corecell['x'] < corellx:
+                if corellx - corecell['x'] > offsetx:
+                    offsetx = corellx - corecell['x']
+            if corecell['y'] < corelly:
+                if corelly - corecell['y'] > offsety:
+                    offsety = corelly - corecell['y']
+        if offsetx > 0 or offsety > 0:
+            for corecell in self.coregroup:
+                corecell['x'] += offsetx
+                corecell['y'] += offsety
+
+        # Now write the core DEF file
+
+        with open(mag_path + '/core.def', 'w') as ofile:
+            print('DESIGN CORE ;', file=ofile)
+            print('UNITS DISTANCE MICRONS 1000 ;', file=ofile)
+            print('COMPONENTS {0:d} ;'.format(len(self.coregroup)), file=ofile)
+            for corecell in self.coregroup:
+                print('  - ' + corecell['name'] + ' ' + corecell['cell'], file=ofile)
+                print('    + PLACED ( {0:d} {1:d} ) {2:s} ;'.format(int(corecell['x'] * 1000), int(corecell['y'] * 1000), corecell['o']), file=ofile)
+            print ('END COMPONENTS', file=ofile)
+            print ('END DESIGN', file=ofile)
+
+    # Create the chip boundary area
+
+    def create_boundary(self):
+        scale = self.scale
+        llx = (self.llx - 10) * scale
+        lly = (self.lly - 10) * scale
+        urx = (self.urx + 10) * scale
+        ury = (self.ury + 10) * scale
+
+        pad_color = 'plum1'
+        tag_id = 'boundary'
+        self.canvas.create_rectangle((llx, lly), (urx, ury), outline=pad_color, width=2, tags=[tag_id])
+        # Add text to the middle representing the chip and core areas
+        cx = ((self.llx + self.urx) / 2) * scale
+        cy = ((self.lly + self.ury) / 2) * scale
+        width = self.urx - self.llx
+        height = self.ury - self.lly
+        areatext = 'Chip dimensions (um): {0:g} x {1:g}'.format(width, height)
+        tag_id = 'chiparea' 
+        self.canvas.create_text((cx, cy), text=areatext, tags=[tag_id])
+
+    # Rotate orientation according to self.pad_rotation. 
+
+    def rotate_orientation(self, orient_in):
+        orient_v = ['N', 'E', 'S', 'W', 'N', 'E', 'S', 'W']
+        idxadd = int(self.pad_rotation / 90)
+        idx = orient_v.index(orient_in)
+        return orient_v[idx + idxadd]
+
+    # Read a list of cell macros (name, size, class) from a LEF library
+
+    def read_lef_macros(self, libpath, libname = None, libtype = 'iolib'):
+        if libtype == 'iolib':
+            libtext = 'I/O '
+        elif libtype == 'celllib':
+            libtext = 'core '
+        else:
+            libtext = ''
+
+        macros = []
+
+        if libname:
+            if os.path.splitext(libname)[1] == '':
+                libname += '.lef'
+            leffiles = glob.glob(libpath + '/' + libname)
+        else:
+            leffiles = glob.glob(libpath + '/*.lef')
+        if leffiles == []:
+            if libname:
+                self.print('WARNING:  No file ' + libpath + '/' + libname + '.lef')
+            else:
+                self.print('WARNING:  No files ' + libpath + '/*.lef')
+        for leffile in leffiles:
+            libpath = os.path.split(leffile)[0]
+            libname = os.path.split(libpath)[1]
+            self.print('Reading LEF ' + libtext + 'library ' + leffile)
+            with open(leffile, 'r') as ifile:
+                ilines = ifile.read().splitlines()
+                in_macro = False
+                for iline in ilines:
+                    iparse = iline.split()
+                    if iparse == []:
+                        continue
+                    elif iparse[0] == 'MACRO':
+                        in_macro = True
+                        newmacro = {}
+                        newmacro['name'] = iparse[1]
+                        newmacro[libtype] = leffile
+                        macros.append(newmacro)
+                    elif in_macro:
+                        if iparse[0] == 'END':
+                            if len(iparse) > 1 and iparse[1] == newmacro['name']:
+                                in_macro = False
+                        elif iparse[0] == 'CLASS':
+                            newmacro['class'] = iparse[1]
+                            if len(iparse) > 2:
+                                newmacro['subclass'] = iparse[2]
+
+                                # Use the 'ENDCAP' class to identify pad rotations
+                                # other than BOTTOMLEFT.  This is somewhat ad-hoc
+                                # depending on the foundry;  may not be generally
+                                # applicable.
+
+                                if newmacro['class'] == 'ENDCAP':
+                                    if newmacro['subclass'] == 'TOPLEFT':
+                                        self.pad_rotation = 90
+                                    elif newmacro['subclass'] == 'TOPRIGHT':
+                                        self.pad_rotation = 180
+                                    elif newmacro['subclass'] == 'BOTTOMRIGHT':
+                                        self.pad_rotation = 270
+                            else:
+                                newmacro['subclass'] = None
+                        elif iparse[0] == 'SIZE':
+                            newmacro['width'] = float(iparse[1])
+                            newmacro['height'] = float(iparse[3])
+                        elif iparse[0] == 'ORIGIN':
+                            newmacro['x'] = float(iparse[1])
+                            newmacro['y'] = float(iparse[2])
+        return macros
+          
+    # Read a list of cell names from a verilog file
+    # If filename is relative, then check in the same directory as the verilog
+    # top-level netlist (vlogpath) and in the subdirectory 'source/' of the top-
+    # level directory.  Also check in the ~/design/ip/ directory.  These are
+    # common include paths for the simulation.
+
+    def read_verilog_lib(self, incpath, vlogpath):
+        iocells = []
+        if not os.path.isfile(incpath) and incpath[0] != '/':
+            locincpath = vlogpath + '/' + incpath
+            if not os.path.isfile(locincpath):
+                locincpath = vlogpath + '/source/' + incpath
+            if not os.path.isfile(locincpath):
+                projectpath = os.path.split(vlogpath)[0]
+                designpath = os.path.split(projectpath)[0]
+                locincpath = designpath + '/ip/' + incpath
+        else:
+            locincpath = incpath
+
+        if not os.path.isfile(locincpath):
+            self.print('File ' + incpath + ' not found (at ' + locincpath + ')!')
+        else:
+            self.print('Reading verilog library ' + locincpath)
+            with open(locincpath, 'r') as ifile:
+                ilines = ifile.read().splitlines()
+                for iline in ilines:
+                    iparse = re.split('[\t ()]', iline)
+                    while '' in iparse:
+                        iparse.remove('')
+                    if iparse == []:
+                        continue
+                    elif iparse[0] == 'module':
+                        iocells.append(iparse[1])
+        return iocells
+
+    # Generate a LEF abstract view from a magic layout.  If "outpath" is not
+    # "None", then write output to outputpath (this is required if the input
+    # file is in a read-only directory).
+
+    def write_lef_file(self, magfile, outpath=None):
+        mag_path = os.path.split(magfile)[0]
+        magfullname = os.path.split(magfile)[1]
+        module = os.path.splitext(magfullname)[0]
+
+        if outpath:
+            write_path = outpath
+        else:
+            write_path = mag_path
+
+        self.print('Generating LEF view from layout for module ' + module)
+
+        with open(write_path + '/pfg_write_lef.tcl', 'w') as ofile:
+            print('drc off', file=ofile)
+            print('box 0 0 0 0', file=ofile)
+            # NOTE:  Using "-force" option in case an IP with a different but
+            # compatible tech is used (e.g., EFHX035A IP inside EFXH035C).  This
+            # is not checked for legality!
+            if outpath:
+                print('load ' + magfile + ' -force', file=ofile)
+            else:
+                print('load ' + module + ' -force', file=ofile)
+            print('lef write -hide', file=ofile)
+            print('quit', file=ofile)
+
+        magicexec = self.magic_path if self.magic_path else 'magic'
+        mproc = subprocess.Popen([magicexec, '-dnull', '-noconsole',
+			'pfg_write_lef.tcl'],
+			stdin = subprocess.PIPE, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, cwd = write_path, universal_newlines = True)
+
+        self.watch(mproc)
+        os.remove(write_path + '/pfg_write_lef.tcl')
+
+    # Watch a running process, polling for output and updating the GUI message
+    # window as output arrives.  Return only when the process has exited.
+    # Note that this process cannot handle stdin(), so any input to the process
+    # must be passed from a file.
+
+    def watch(self, process):
+        if process == None:
+            return
+
+        while True:
+            status = process.poll()
+            if status != None:
+                try:
+                    outputpair = process.communicate(timeout=1)
+                except ValueError:
+                    self.print("Process forced stop, status " + str(status))
+                else:
+                    for line in outputpair[0].splitlines():
+                        self.print(line)
+                    for line in outputpair[1].splitlines():
+                        self.print(line, file=sys.stderr)
+                break
+            else:
+                sresult = select.select([process.stdout, process.stderr], [], [], 0)[0]
+                if process.stdout in sresult:
+                    outputline = process.stdout.readline().strip()
+                    self.print(outputline)
+                elif process.stderr in sresult:
+                    outputline = process.stderr.readline().strip()
+                    self.print(outputline, file=sys.stderr)
+                else:
+                    self.update_idletasks()
+
+    # Reimport the pad list by reading the top-level verilog netlist.  Determine
+    # what pads are listed in the file, and check against the existing pad list.
+
+    # The verilog/ directory should have a .v file containing a module of the
+    # same name as self.project (ip-name).  The .v filename should have the
+    # same name as well (but not necessarily).  To do:  Handle import of
+    # projects having a top-level schematic instead of a verilog netlist.
+
+    def vlogimport(self):
+
+        if self.ef_format:
+            config_dir = '/.ef-config'
+        else:
+            config_dir = '/.config'
+
+        # First find the process PDK name for this project.  Read the nodeinfo.json
+        # file and find the list of I/O cell libraries.  
+
+        if self.techpath:
+            pdkpath = self.techpath
+        elif os.path.islink(self.projectpath + config_dir + '/techdir'):
+            pdkpath = os.path.realpath(self.projectpath + config_dir + '/techdir')
+        else:
+            self.print('Error:  Cannot determine path to PDK.  Try using option -tech-path=')
+            return
+
+        self.print('Importing verilog sources.')
+
+        nodeinfopath = pdkpath + config_dir + '/nodeinfo.json'
+        ioleflist = []
+        if os.path.exists(nodeinfopath):
+            self.print('Reading known I/O cell libraries from ' + nodeinfopath)
+            with open(nodeinfopath, 'r') as ifile:
+                itop = json.load(ifile)
+                if 'iocells' in itop:
+                    ioleflist = []
+                    for iolib in itop['iocells']:
+                        if '/' in iolib:
+                            # Entries <lib>/<cell> refer to specific files
+                            if self.ef_format:
+                                iolibpath = pdkpath + '/libs.ref/lef/' + iolib
+                            else:
+                                iolibpath = pdkpath + '/libs.ref/' + iolib
+                            if os.path.splitext(iolib)[1] == '':
+                                if not os.path.exists(iolibpath):
+                                    iolibpath = iolibpath + '.lib'
+                            if not os.path.exists(iolibpath):
+                                self.print('Warning: nodeinfo.json bad I/O library path ' + iolibpath)
+                            ioleflist.append(iolibpath)
+                        else:
+                            # All other entries refer to everything in the directory.
+                            if self.ef_format:
+                                iolibpath = pdkpath + '/libs.ref/lef/' + iolib
+                            else:
+                                iolibpath = pdkpath + '/libs.ref/' + iolib + '/lef/'
+                            iolibfiles = glob.glob(iolibpath + '/*.lef')
+                            if len(iolibfiles) == 0:
+                                self.print('Warning: nodeinfo.json bad I/O library path ' + iolibpath)
+                            ioleflist.extend(iolibfiles)
+        else:
+            # Diagnostic
+            self.print('Cannot read PDK information file ' + nodeinfopath)
+
+        # Fallback behavior:  List everything in libs.ref/lef/ beginning with "IO"
+        if len(ioleflist) == 0:
+            if self.ef_format:
+                ioleflist = glob.glob(pdkpath + '/libs.ref/lef/IO*/*.lef')
+            else:
+                ioleflist = glob.glob(pdkpath + '/libs.ref/IO*/lef/*.lef')
+
+        if len(ioleflist) == 0:
+            self.print('Cannot find any I/O cell libraries for this technology')
+            return
+
+        # Read the LEF libraries to get a list of all available cells.  Keep
+        # this list of cells in "celldefs".
+
+        celldefs = []
+        ioliblist = []
+        ioleflibs = []
+        for iolib in ioleflist:
+            iolibpath = os.path.split(iolib)[0]
+            iolibfile = os.path.split(iolib)[1]
+            ioliblist.append(os.path.split(iolibpath)[1])
+            celldefs.extend(self.read_lef_macros(iolibpath, iolibfile, 'iolib'))
+
+        verilogcells = []
+        newpadlist = []
+        coredefs = []
+        corecells = []
+        corecelllist = []
+        lefprocessed = []
+
+        busrex = re.compile('.*\[[ \t]*([0-9]+)[ \t]*:[ \t]*([0-9]+)[ \t]*\]')
+
+        vlogpath = self.projectpath + '/verilog'
+        vlogfile = vlogpath + '/' + self.project + '.v'
+
+        # Verilog netlists are too difficult to parse from a simple script.
+        # Use qflow tools to convert to SPICE, if they are available.  Parse
+        # the verilog only for "include" statements to find the origin of
+        # the various IP blocks, and then parse the SPICE file to get the
+        # full list of instances.
+        #
+        # (to be done)
+
+        if os.path.isfile(vlogfile):
+            with open(vlogfile, 'r') as ifile:
+                vloglines = ifile.read().splitlines()
+                for vlogline in vloglines:
+                    vlogparse = re.split('[\t ()]', vlogline)
+                    while '' in vlogparse:
+                        vlogparse.remove('')
+                    if vlogparse == []:
+                        continue
+                    elif vlogparse[0] == '//':
+                        continue
+                    elif vlogparse[0] == '`include':
+                        incpath = vlogparse[1].strip('"')
+                        libpath = os.path.split(incpath)[0]
+                        libname = os.path.split(libpath)[1]
+                        libfile = os.path.split(incpath)[1]
+
+                        # Read the verilog library for module names to match
+                        # against macro names in celldefs.
+                        modulelist = self.read_verilog_lib(incpath, vlogpath)
+                        matching = list(item for item in celldefs if item['name'] in modulelist)
+                        for imatch in matching:
+                            verilogcells.append(imatch['name'])
+                            leffile = imatch['iolib']
+                            if leffile not in ioleflibs:
+                                ioleflibs.append(leffile)
+
+                        # Read a corresponding LEF file entry for non-I/O macros, if one
+                        # can be found (this handles files in the PDK).
+                        if len(matching) == 0:
+                            if libname != '':
+                                # (NOTE:  Assumes full path starting with '/')
+                                lefpath = libpath.replace('verilog', 'lef')
+                                lefname = libfile.replace('.v', '.lef')
+                                if not os.path.exists(lefpath + '/' + lefname):
+                                    leffiles = glob.glob(lefpath + '/*.lef')
+                                else:
+                                    leffiles = [lefpath + '/' + lefname]
+
+                                for leffile in leffiles:
+                                    if leffile in ioleflibs:
+                                        continue
+                                    elif leffile in lefprocessed:
+                                        continue
+                                    else:
+                                        lefprocessed.append(leffile)
+
+                                    lefname = os.path.split(leffile)[1]
+
+                                    newcoredefs = self.read_lef_macros(lefpath, lefname, 'celllib')
+                                    coredefs.extend(newcoredefs)
+                                    corecells.extend(list(item['name'] for item in newcoredefs))
+
+                                if leffiles == []:
+                                    maglefname = libfile.replace('.v', '.mag')
+
+                                    # Handle PDK files with a maglef/ view but no LEF file.
+                                    maglefpath = libpath.replace('verilog', 'maglef')
+                                    if not os.path.exists(maglefpath + '/' + maglefname):
+                                        magleffiles = glob.glob(maglefpath + '/*.mag')
+                                    else:
+                                        magleffiles = [maglefpath + '/' + maglefname]
+
+                                    if magleffiles == []:
+                                        # Handle user ip/ files with a maglef/ view but
+                                        # no LEF file.
+                                        maglefpath = libpath.replace('verilog', 'maglef')
+                                        designpath = os.path.split(self.projectpath)[0]
+                                        maglefpath = designpath + '/ip/' + maglefpath
+
+                                        if not os.path.exists(maglefpath + '/' + maglefname):
+                                            magleffiles = glob.glob(maglefpath + '/*.mag')
+                                        else:
+                                            magleffiles = [maglefpath + '/' + maglefname]
+
+                                    for magleffile in magleffiles:
+                                        # Generate LEF file.  Since PDK and ip/ entries
+                                        # are not writeable, write into the project mag/
+                                        # directory.
+                                        magpath = self.projectpath + '/mag'
+                                        magname = os.path.split(magleffile)[1]
+                                        magroot = os.path.splitext(magname)[0]
+                                        leffile = magpath + '/' + magroot + '.lef'
+                                        if not os.path.isfile(leffile):
+                                            self.write_lef_file(magleffile, magpath)
+
+                                        if leffile in ioleflibs:
+                                            continue
+                                        elif leffile in lefprocessed:
+                                            continue
+                                        else:
+                                            lefprocessed.append(leffile)
+
+                                        lefname = os.path.split(leffile)[1]
+
+                                        newcoredefs = self.read_lef_macros(magpath, lefname, 'celllib')
+                                        coredefs.extend(newcoredefs)
+                                        corecells.extend(list(item['name'] for item in newcoredefs))
+                                        # LEF files generated on-the-fly are not needed
+                                        # after they have been parsed.
+                                        # os.remove(leffile)
+
+                            # Check if all modules in modulelist are represented by
+                            # corresponding LEF macros.  If not, then go looking for a LEF
+                            # file in the mag/ or maglef/ directory.  Then, go looking for
+                            # a .mag file in the mag/ or maglef/ directory, and build a
+                            # LEF macro from it.
+
+                            matching = list(item['name'] for item in coredefs if item['name'] in modulelist)
+                            for module in modulelist:
+                                if module not in matching:
+                                    lefpath = self.projectpath + '/lef'
+                                    magpath = self.projectpath + '/mag'
+                                    maglefpath = self.projectpath + '/mag'
+                                    lefname = libfile.replace('.v', '.lef')
+
+                                    # If the verilog file root name is not the same as
+                                    # the module name, then make a quick check for a
+                                    # LEF file with the same root name as the verilog.
+                                    # That indicates that the module does not exist in
+                                    # the LEF file, probably because it is a primary
+                                    # module that does not correspond to any layout.
+
+                                    leffile = lefpath + '/' + lefname
+                                    if os.path.exists(leffile):
+                                        self.print('Diagnostic: module ' + module + ' is not in ' + leffile + ' (probably a primary module)')
+                                        continue
+
+                                    leffile = magpath + '/' + lefname
+                                    istemp = False
+                                    if not os.path.exists(leffile):
+                                        magname = libfile.replace('.v', '.mag')
+                                        magfile = magpath + '/' + magname
+                                        if os.path.exists(magfile):
+                                            self.print('Diagnostic: Found a .mag file for ' + module + ' in ' + magfile)
+                                            self.write_lef_file(magfile)
+                                            istemp = True
+                                        else:
+                                            magleffile = maglefpath + '/' + lefname
+                                            if not os.path.exists(magleffile):
+                                                self.print('Diagnostic: (module ' + module + ') has no LEF file ' + leffile + ' or ' + magleffile)
+                                                magleffile = maglefpath + '/' + magname
+                                                if os.path.exists(magleffile):
+                                                    self.print('Diagnostic: Found a .mag file for ' + module + ' in ' + magleffile)
+                                                    if os.access(maglefpath, os.W_OK):
+                                                        self.write_lef_file(magleffile)
+                                                        leffile = magleffile
+                                                        istemp = True
+                                                    else:
+                                                        self.write_lef_file(magleffile, magpath)
+                                                else:
+                                                    self.print('Did not find a file ' + magfile)
+                                                    # self.print('Warning: module ' + module + ' has no LEF or .mag views')
+                                                    pass
+                                            else:
+                                                self.print('Diagnostic: Found a LEF file for ' + module + ' in ' + magleffile)
+                                                leffile = magleffile
+                                    else:
+                                        self.print('Diagnostic: Found a LEF file for ' + module + ' in ' + leffile)
+
+                                    if os.path.exists(leffile):
+                                        if leffile in lefprocessed:
+                                            continue
+                                        else:
+                                            lefprocessed.append(leffile)
+
+                                        newcoredefs = self.read_lef_macros(magpath, lefname, 'celllib')
+                                        # The LEF file generated on-the-fly is not needed
+                                        # any more after parsing the macro(s).
+                                        # if istemp:
+                                        #     os.remove(leffile)
+                                        coredefs.extend(newcoredefs)
+                                        corecells.extend(list(item['name'] for item in newcoredefs))
+                                    else:
+                                        # self.print('Failed to find a LEF view for module ' + module)
+                                        pass
+
+                    elif vlogparse[0] in verilogcells:
+                        # Check for array of pads
+                        bushigh = buslow = -1
+                        if len(vlogparse) >= 3:
+                            bmatch = busrex.match(vlogline)
+                            if bmatch:
+                                bushigh = int(bmatch.group(1))
+                                buslow = int(bmatch.group(2))
+                                
+                        for i in range(buslow, bushigh + 1):
+                            newpad = {}
+                            if i >= 0:
+                                newpad['name'] = vlogparse[1] + '[' + str(i) + ']'
+                            else:
+                                newpad['name'] = vlogparse[1]
+                            newpad['cell'] = vlogparse[0]
+                            padcell = next(item for item in celldefs if item['name'] == vlogparse[0])
+                            newpad['iolib'] = padcell['iolib']
+                            newpad['class'] = padcell['class']
+                            newpad['subclass'] = padcell['subclass']
+                            newpad['width'] = padcell['width']
+                            newpad['height'] = padcell['height']
+                            newpadlist.append(newpad)
+
+                    elif vlogparse[0] in corecells:
+                        # Check for array of cells
+                        bushigh = buslow = -1
+                        if len(vlogparse) >= 3:
+                            bmatch = busrex.match(vlogline)
+                            if bmatch:
+                                bushigh = int(bmatch.group(1))
+                                buslow = int(bmatch.group(2))
+                                
+                        for i in range(buslow, bushigh + 1):
+                            newcorecell = {}
+                            if i >= 0:
+                                newcorecell['name'] = vlogparse[1] + '[' + str(i) + ']'
+                            else:
+                                newcorecell['name'] = vlogparse[1]
+                            newcorecell['cell'] = vlogparse[0]
+                            corecell = next(item for item in coredefs if item['name'] == vlogparse[0])
+                            newcorecell['celllib'] = corecell['celllib']
+                            newcorecell['class'] = corecell['class']
+                            newcorecell['subclass'] = corecell['subclass']
+                            newcorecell['width'] = corecell['width']
+                            newcorecell['height'] = corecell['height']
+                            corecelllist.append(newcorecell)
+
+        self.print('')
+        self.print('Source file information:')
+        self.print('Source filename: ' + vlogfile)
+        self.print('Number of I/O libraries is ' + str(len(ioleflibs)))
+        self.print('Number of library cells in I/O libraries used: ' + str(len(verilogcells)))
+        self.print('Number of core celldefs is ' + str(len(coredefs)))
+        self.print('')
+        self.print('Number of I/O cells in design: ' + str(len(newpadlist)))
+        self.print('Number of core cells in design: ' + str(len(corecelllist)))
+        self.print('')
+
+        # Save the results
+        self.celldefs = celldefs
+        self.coredefs = coredefs
+        self.vlogpads = newpadlist
+        self.corecells = corecelllist
+        self.ioleflibs = ioleflibs
+
+    # Check self.vlogpads, which was created during import (above) against
+    # self.(N,S,W,E)pads, which was read from the DEF file (if there was one)
+    # Also check self.corecells, which was created during import against
+    # self.coregroup, which was read from the DEF file.
+
+    def resolve(self):
+        self.print('Resolve differences in verilog and LEF views.')
+
+        samepads = []
+        addedpads = []
+        removedpads = []
+
+        # (1) Create list of entries that are in both self.vlogpads and self.()pads
+        # (2) Create list of entries that are in self.vlogpads but not in self.()pads
+
+        allpads = self.Npads + self.NEpad + self.Epads + self.SEpad + self.Spads + self.SWpad + self.Wpads + self.NWpad
+
+        for pad in self.vlogpads:
+            newpadname = pad['name']
+            try:
+                lpad = next(item for item in allpads if item['name'] == newpadname) 
+            except:
+                addedpads.append(pad)
+            else:
+                samepads.append(lpad)
+
+        # (3) Create list of entries that are in allpads but not in self.vlogpads
+        for pad in allpads:
+            newpadname = pad['name']
+            try:
+                lpad = next(item for item in self.vlogpads if item['name'] == newpadname) 
+            except:
+                removedpads.append(pad)
+
+        # Print results
+        if len(addedpads) > 0:
+            self.print('Added pads:')
+            for pad in addedpads:
+                self.print(pad['name'] + ' (' + pad['cell'] + ')')
+
+        if len(removedpads) > 0:
+            plist = []
+            nspacers = 0
+            for pad in removedpads:
+                if 'subclass' in pad:
+                    if pad['subclass'] != 'SPACER':
+                        plist.append(pad)
+                    else:
+                        nspacers += 1
+
+            if nspacers > 0:
+                self.print(str(nspacers) + ' spacer cells ignored.')
+            if len(plist) > 0:
+                self.print('Removed pads:')
+                for pad in removedpads:
+                    self.print(pad['name'] + ' (' + pad['cell'] + ')')
+
+        if len(addedpads) + len(removedpads) == 0:
+            self.print('Pad list has not changed.')
+
+        # Remove all cells from the "removed" list, with comment
+
+        allpads = [self.Npads, self.NEpad, self.Epads, self.SEpad, self.Spads, self.SWpad, self.Wpads, self.NWpad]
+
+        for pad in removedpads:
+            rname = pad['name']
+            for row in allpads:
+                try:
+                    rpad = next(item for item in row if item['name'] == rname)
+                except:
+                    rpad = None
+                else:
+                    row.remove(rpad)
+
+        # Now the verilog file has no placement information, so the old padlist
+        # entries (if they exist) are preferred.  Add to these the new padlist
+        # entries
+
+        # First pass for unassigned pads:  Use of "CLASS ENDCAP" is preferred
+        # for identifying corner pads.  Otherwise, if 'CORNER' or 'corner' is
+        # in the pad name, then make sure there is one per row in the first
+        # position.  This is not foolproof and depends on the cell library
+        # using the text 'corner' in the name of the corner cell.  However,
+        # if the ad hoc methods fail, the user can still manually move the
+        # corner cells to the right place (to be done:  Identify if library
+        # uses ENDCAP designation for corner cells up front;  don't go
+        # looking for 'corner' text if the cells are easily identifiable by
+        # LEF class).
+
+        for pad in addedpads[:]:
+            iscorner = False
+            if 'class' in pad and pad['class'] == 'ENDCAP':
+                iscorner = True
+            elif 'CORNER' in pad['cell'].upper():
+                iscorner = True
+           
+            if iscorner:
+                if self.NWpad == []:
+                    self.NWpad.append(pad)
+                    pad['o'] = 'E'
+                    addedpads.remove(pad)
+                elif self.NEpad == []:
+                    self.NEpad.append(pad)
+                    pad['o'] = 'S'
+                    addedpads.remove(pad)
+                elif self.SEpad == []:
+                    self.SEpad.append(pad)
+                    pad['o'] = 'W'
+                    addedpads.remove(pad)
+                elif self.SWpad == []:
+                    self.SWpad.append(pad)
+                    pad['o'] = 'N'
+                    addedpads.remove(pad)
+
+        numN = len(self.Npads)
+        numS = len(self.Spads)
+        numE = len(self.Epads)
+        numW = len(self.Wpads)
+
+        minnum = min(numN, numS, numE, numW)
+        minnum = max(minnum, int(len(addedpads) / 4))
+
+        # Add pads in clockwise order.  Note that S and E pads are defined counterclockwise
+        for pad in addedpads:
+            if numN < minnum:
+                self.Npads.append(pad)
+                numN += 1
+                pad['o'] = 'S'
+                self.print("Adding pad " + pad['name'] + " to Npads")
+            elif numE < minnum:
+                self.Epads.insert(0, pad)
+                numE += 1
+                pad['o'] = 'W'
+                self.print("Adding pad " + pad['name'] + " to Epads")
+            elif numS < minnum:
+                self.Spads.insert(0, pad)
+                numS += 1
+                pad['o'] = 'N'
+                self.print("Adding pad " + pad['name'] + " to Spads")
+            # elif numW < minnum:
+            else:
+                self.Wpads.append(pad)
+                numW += 1
+                pad['o'] = 'E'
+                self.print("Adding pad " + pad['name'] + " to Wpads")
+
+            minnum = min(numN, numS, numE, numW)
+            minnum = max(minnum, int(len(addedpads) / 4))
+
+        # Make sure all pads have included information from the cell definition
+
+        allpads = self.Npads + self.NEpad + self.Epads + self.SEpad + self.Spads + self.SWpad + self.Wpads + self.NWpad
+
+        for pad in allpads:
+            if 'width' not in pad:
+                try:
+                    celldef = next(item for item in celldefs if item['name'] == pad['cell'])
+                except:
+                    self.print('Cell ' + pad['cell'] + ' not found!')
+                else:
+                    pad['width'] = celldef['width']
+                    pad['height'] = celldef['height']
+                    pad['class'] = celldef['class']
+                    pad['subclass'] = celldef['subclass']
+
+        # Now treat the core cells in the same way (resolve list parsed from verilog
+        # against the list parsed from DEF)	
+
+        # self.print('Diagnostic: ')
+        # self.print('self.corecells = ' + str(self.corecells))
+        # self.print('self.coregroup = ' + str(self.coregroup))
+
+        samecore = []
+        addedcore = []
+        removedcore = []
+
+        # (1) Create list of entries that are in both self.corecells and self.coregroup
+        # (2) Create list of entries that are in self.corecells but not in self.coregroup
+
+        for cell in self.corecells:
+            newcellname = cell['name']
+            try:
+                lcore = next(item for item in self.coregroup if item['name'] == newcellname) 
+            except:
+                addedcore.append(cell)
+            else:
+                samecore.append(lcore)
+
+        # (3) Create list of entries that are in self.coregroup but not in self.corecells
+        for cell in self.coregroup:
+            newcellname = cell['name']
+            try:
+                lcore = next(item for item in self.corecells if item['name'] == newcellname) 
+            except:
+                removedcore.append(cell)
+
+        # Print results
+        if len(addedcore) > 0:
+            self.print('Added core cells:')
+            for cell in addedcore:
+                self.print(cell['name'] + ' (' + cell['cell'] + ')')
+
+        if len(removedcore) > 0:
+            clist = []
+            for cell in removedcore:
+                clist.append(cell)
+
+            if len(clist) > 0:
+                self.print('Removed core cells:')
+                for cell in removedcore:
+                    self.print(cell['name'] + ' (' + cell['cell'] + ')')
+
+        if len(addedcore) + len(removedcore) == 0:
+            self.print('Core cell list has not changed.')
+
+        # Remove all cells from the "removed" list
+
+        coregroup = self.coregroup
+        for cell in removedcore:
+            rname = cell['name']
+            try:
+                rcell = next(item for item in coregroup if item['name'] == rname)
+            except:
+                rcell = None
+            else:
+                coregroup.remove(rcell)
+
+        # Add all cells from the "added" list to coregroup
+
+        for cell in addedcore:
+            rname = cell['name']
+            try:
+                rcell = next(item for item in coregroup if item['name'] == rname)
+            except:
+                coregroup.append(cell)
+                if not 'o' in cell:
+                    cell['o'] = 'N'
+                if not 'x' in cell:
+                    if len(self.Wpads) > 0:
+                        pad = self.Wpads[0]
+                        padx = pad['x'] if 'x' in pad else 0
+                        cell['x'] = padx + pad['height'] + self.margin
+                    else:
+                        cell['x'] = self.margin
+                if not 'y' in cell:
+                    if len(self.Spads) > 0:
+                        pad = self.Spads[0]
+                        pady = pad['y'] if 'y' in pad else 0
+                        cell['y'] = pady + pad['height'] + self.margin
+                    else:
+                        cell['y'] = self.margin
+            else:
+                rcell = None
+
+        # Make sure all core cells have included information from the cell definition
+
+        for cell in coregroup:
+            if 'width' not in cell:
+                try:
+                    coredef = next(item for item in coredefs if item['name'] == cell['cell'])
+                except:
+                    self.print('Cell ' + cell['cell'] + ' not found!')
+                else:
+                    cell['width'] = coredef['width']
+                    cell['height'] = coredef['height']
+                    cell['class'] = coredef['class']
+                    cell['subclass'] = coredef['subclass']
+
+    # Generate a new padframe by writing the configuration file, running
+    # padring, reading back the DEF file, and (re)poplulating the workspace
+
+    def generate(self, level):
+        self.print('Generate legal padframe using padring')
+
+        # Write out the configuration file
+        self.writeconfig()
+        # Run the padring app
+        self.runpadring()
+        # Rotate pads in the output if pad orientations are different from
+        # padring's expectations
+        self.rotate_pads_in_def()
+        # Read the placement information back from the generated DEF file
+        self.readplacement()
+        # Resolve differences (e.g., remove spacers)
+        self.resolve()
+        # Recreate and draw the padframe view on the canvas
+        self.populate(level + 1)
+        self.frame_configure(None)
+
+    # Write a new configuration file
+
+    def writeconfig(self):
+        mag_path = self.projectpath + '/mag'
+        if not os.path.exists(mag_path):
+            self.print('Error:  No project path /mag directory exists.  Cannot write config file.')
+            return
+
+        self.print('Writing padring configuration file.')
+
+        # Determine cell width and height from pad sizes.
+        # NOTE:  This compresses the chip to the minimum dimensions
+        # allowed by the arrangement of pads.  Use a "core" block to
+        # force the area larger than minimum (not yet implemented)
+        
+        topwidth = 0
+        for pad in self.Npads:
+            if 'width' not in pad:
+                self.print('No width: pad = ' + str(pad))
+            topwidth += pad['width']
+
+        # Add in the corner cells
+        if self.NWpad != []:
+            topwidth += self.NWpad[0]['height']
+        if self.NEpad != []:
+            topwidth += self.NEpad[0]['width']
+
+        botwidth = 0
+        for pad in self.Spads:
+            botwidth += pad['width']
+
+        # Add in the corner cells
+        if self.SWpad != []:
+            botwidth += self.SWpad[0]['width']
+        if self.SEpad != []:
+            botwidth += self.SEpad[0]['height']
+
+        width = max(botwidth, topwidth)
+
+        # if width < self.urx - self.llx:
+        #     width = self.urx - self.llx
+
+        leftheight = 0
+        for pad in self.Wpads:
+            leftheight += pad['width']
+
+        # Add in the corner cells
+        if self.NWpad != []:
+            leftheight += self.NWpad[0]['height']
+        if self.SWpad != []:
+            leftheight += self.SWpad[0]['width']
+
+        rightheight = 0
+        for pad in self.Epads:
+            rightheight += pad['width']
+
+        # Add in the corner cells
+        if self.NEpad != []:
+            rightheight += self.NEpad[0]['width']
+        if self.SEpad != []:
+            rightheight += self.SEpad[0]['height']
+
+        height = max(leftheight, rightheight)
+
+        # Check the dimensions of the core cells.  If they exceed the available
+        # padframe area, then expand the padframe to accomodate the core.
+
+        corellx = coreurx = (self.llx + self.urx) / 2
+        corelly = coreury = (self.lly + self.ury) / 2
+
+        for corecell in self.coregroup:
+            corient = corecell['o']
+            if 'S' in corient or 'N' in corient:
+                cwidth = corecell['width']
+                cheight = corecell['height']
+            else:
+                cwidth = corecell['height']
+                cheight = corecell['width']
+
+            if corecell['x'] < corellx:
+                corellx = corecell['x']
+            if corecell['x'] + cwidth > coreurx:
+                coreurx = corecell['x'] + cwidth
+            if corecell['y'] < corelly:
+                corelly = corecell['y']
+            if corecell['y'] + cheight > coreury:
+                coreury = corecell['y'] + cheight
+
+        coreheight = coreury - corelly
+        corewidth = coreurx - corellx
+
+        # Ignoring the possibility of overlaps with nonstandard-sized pads,
+        # assuming that the user has visually separated them.  Only check
+        # the core bounds against the standard padframe inside edge.
+
+        if self.SWpad != [] and self.SEpad != []:
+            if corewidth > width - self.SWpad[0]['width'] - self.SEpad[0]['width']:
+                width = corewidth + self.SWpad[0]['width'] + self.SEpad[0]['width']
+        if self.NWpad != [] and self.SWpad != []:
+            if coreheight > height - self.NWpad[0]['height'] - self.SWpad[0]['height']:
+                height = coreheight + self.NWpad[0]['height'] + self.SWpad[0]['height']
+
+        # Core cells are given a margin of self.margin from the pad inside edge, so the
+        # core area passed to the padring app is 2 * self.margin larger than the
+        # measured size of the core area.
+        width += 2 * self.margin
+        height += 2 * self.margin
+
+        if self.keep_cfg == False or not os.path.exists(mag_path + '/padframe.cfg'):
+
+            if os.path.exists(mag_path + '/padframe.cfg'):
+                # Copy the previous padframe.cfg file to a backup.  In case something
+                # goes badly wrong, this should be the only file overwritten, and can
+                # be recovered from the backup.
+                shutil.copy(mag_path + '/padframe.cfg', mag_path + '/padframe.cfg.bak')
+
+            with open(mag_path + '/padframe.cfg', 'w') as ofile:
+                print('AREA ' + str(int(width)) + ' ' + str(int(height)) + ' ;',
+			file=ofile)
+                print('', file=ofile)
+                for pad in self.NEpad:
+                    print('CORNER ' + pad['name'] + ' SW ' + pad['cell'] + ' ;',
+			    file=ofile)
+                for pad in self.SEpad:
+                    print('CORNER ' + pad['name'] + ' NW ' + pad['cell'] + ' ;',
+			    file=ofile)
+                for pad in self.SWpad:
+                    print('CORNER ' + pad['name'] + ' NE ' + pad['cell'] + ' ;',
+			    file=ofile)
+                for pad in self.NWpad:
+                    print('CORNER ' + pad['name'] + ' SE ' + pad['cell'] + ' ;',
+			    file=ofile)
+                for pad in self.Npads:
+                    flip = 'F ' if 'F' in pad['o'] else ''
+                    print('PAD ' + pad['name'] + ' N ' + flip + pad['cell'] + ' ;',
+			    file=ofile)
+                for pad in self.Epads:
+                    flip = 'F ' if 'F' in pad['o'] else ''
+                    print('PAD ' + pad['name'] + ' E ' + flip + pad['cell'] + ' ;',
+			    file=ofile)
+                for pad in self.Spads:
+                    flip = 'F ' if 'F' in pad['o'] else ''
+                    print('PAD ' + pad['name'] + ' S ' + flip + pad['cell'] + ' ;',
+			    file=ofile)
+                for pad in self.Wpads:
+                    flip = 'F ' if 'F' in pad['o'] else ''
+                    print('PAD ' + pad['name'] + ' W ' + flip + pad['cell'] + ' ;',
+			    file=ofile)
+
+    # Run the padring app.
+
+    def runpadring(self):
+        mag_path = self.projectpath + '/mag'
+        if not os.path.exists(mag_path):
+            self.print('No path /mag exists in project space;  cannot run padring.')
+            return
+
+        self.print('Running padring')
+
+        if self.padring_path:
+            padringopts = [self.padring_path]
+        else:
+            padringopts = ['padring']
+
+        # Diagnostic
+        # self.print('Used libraries (self.ioleflibs) = ' + str(self.ioleflibs))
+
+        for iolib in self.ioleflibs:
+            padringopts.append('-L')
+            padringopts.append(iolib)
+        padringopts.append('--def')
+        padringopts.append('padframe.def')
+        padringopts.append('padframe.cfg')
+
+        self.print('Running ' + str(padringopts))
+   
+        p = subprocess.Popen(padringopts, stdout = subprocess.PIPE,
+		    stderr = subprocess.PIPE, cwd = mag_path)
+        self.watch(p)
+
+    # Read placement information from the DEF file generated by padring.
+
+    def readplacement(self, precheck=False):
+        self.print('Reading placement information from DEF file')
+
+        mag_path = self.projectpath + '/mag'
+        if not os.path.isfile(mag_path + '/padframe.def'):
+            if not precheck:
+                self.print('No file padframe.def:  pad frame was not generated.')
+            return False 
+
+        # Very simple DEF file parsing.  The placement DEF only contains a
+        # COMPONENTS section.  Certain assumptions are made about the syntax
+        # that depends on the way 'padring' writes its output.  This is not
+        # a rigorous DEF parser!
+
+        units = 1000
+        in_components = False
+        Npadlist = []
+        Spadlist = []
+        Epadlist = []
+        Wpadlist = []
+        NEpad = []
+        NWpad = []
+        SEpad = []
+        SWpad = []
+        coregroup = []
+
+        # Reset bounds
+        self.llx = self.lly = self.urx = self.ury = 0
+        corners = 0
+
+        with open(mag_path + '/padframe.def', 'r') as ifile:
+            deflines = ifile.read().splitlines()
+            for line in deflines:
+                if 'UNITS DISTANCE MICRONS' in line:
+                    units = line.split()[3]
+                elif in_components:
+                    lparse = line.split()
+                    if lparse[0] == '-':
+                        instname = lparse[1]
+                        cellname = lparse[2]
+                        
+                    elif lparse[0] == '+':
+                        if lparse[1] == 'PLACED':
+                            placex = lparse[3]
+                            placey = lparse[4]
+                            placeo = lparse[6]
+
+                            newpad = {}
+                            newpad['name'] = instname
+                            newpad['cell'] = cellname
+
+                            try:
+                                celldef = next(item for item in self.celldefs if item['name'] == cellname)
+                            except:
+                                celldef = None
+                            else:
+                                newpad['iolib'] = celldef['iolib']
+                                newpad['width'] = celldef['width']
+                                newpad['height'] = celldef['height']
+                                newpad['class'] = celldef['class']
+                                newpad['subclass'] = celldef['subclass']
+ 
+                            newpad['x'] = float(placex) / float(units)
+                            newpad['y'] = float(placey) / float(units)
+                            newpad['o'] = placeo
+
+                            # Adjust bounds
+                            if celldef:
+                                if newpad['x'] < self.llx:
+                                    self.llx = newpad['x']
+                                if newpad['y'] < self.lly:
+                                    self.lly = newpad['y']
+
+                                if newpad['o'] == 'N' or newpad['o'] == 'S':
+                                    padurx = newpad['x'] + celldef['width']
+                                    padury = newpad['y'] + celldef['height']
+                                else:
+                                    padurx = newpad['x'] + celldef['height']
+                                    padury = newpad['y'] + celldef['width']
+
+                                if padurx > self.urx:
+                                    self.urx = padurx
+                                if padury > self.ury:
+                                    self.ury = padury
+
+                            # First four entries in the DEF file are corners
+                            # padring puts the lower left corner at zero, so
+                            # use the zero coordinates to determine which pads
+                            # are which.  Note that padring assumes the corner
+                            # pad is drawn in the SW corner position!
+
+                            if corners < 4:
+                                if newpad['x'] == 0 and newpad['y'] == 0:
+                                    SWpad.append(newpad)
+                                elif newpad['x'] == 0:
+                                    NWpad.append(newpad)
+                                elif newpad['y'] == 0:
+                                    SEpad.append(newpad)
+                                else:
+                                    NEpad.append(newpad)
+                                corners += 1       
+                            else:
+                                # Place according to orientation.  If orientation
+                                # is not standard, be sure to make it standard!
+                                placeo = self.rotate_orientation(placeo)
+                                if placeo == 'N':
+                                    Spadlist.append(newpad)
+                                elif placeo == 'E':
+                                    Wpadlist.append(newpad)
+                                elif placeo == 'S':
+                                    Npadlist.append(newpad)
+                                else:
+                                    Epadlist.append(newpad)
+
+                    elif 'END COMPONENTS' in line:
+                        in_components = False
+                elif 'COMPONENTS' in line:
+                    in_components = True
+
+            self.Npads = Npadlist
+            self.Wpads = Wpadlist
+            self.Spads = Spadlist
+            self.Epads = Epadlist
+
+            self.NWpad = NWpad
+            self.NEpad = NEpad
+            self.SWpad = SWpad
+            self.SEpad = SEpad
+
+        # The padframe has its own DEF file from the padring app, but the core
+        # does not.  The core needs to be floorplanned in a very similar manner.
+        # This will be done by searching for a DEF file of the project top-level
+        # layout.  If none exists, it is created by generating it from the layout.
+        # If the top-level layout does not exist, then all core cells are placed
+        # at the origin, and the origin placed at the padframe inside corner.
+
+        mag_path = self.projectpath + '/mag'
+        if not os.path.isfile(mag_path + '/' + self.project + '.def'):
+            if os.path.isfile(mag_path + '/' + self.project + '.mag'):
+
+                # Create a DEF file from the layout
+                with open(mag_path + '/pfg_write_def.tcl', 'w') as ofile:
+                    print('drc off', file=ofile)
+                    print('box 0 0 0 0', file=ofile)
+                    print('load ' + self.project, file=ofile)
+                    print('def write', file=ofile)
+                    print('quit', file=ofile)
+
+                magicexec = self.magic_path if self.magic_path else 'magic'
+                mproc = subprocess.Popen([magicexec, '-dnull', '-noconsole',
+			'pfg_write_def.tcl'],
+			stdin = subprocess.PIPE, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, cwd = mag_path, universal_newlines = True)
+
+                self.watch(mproc)
+                os.remove(mag_path + '/pfg_write_def.tcl')
+
+            elif not os.path.isfile(mag_path + '/core.def'):
+
+                # With no other information available, copy the corecells
+                # (from the verilog file) into the coregroup list.
+                # Position all core cells starting at the padframe top left
+                # inside corner, and arranging in rows without overlapping.
+                # Note that no attempt is made to organize the cells or
+                # otherwise produce an efficient layout.  Any dimension larger
+                # than the current padframe overruns to the right or bottom.
+
+                if self.SWpad != []:
+                    corellx = SWpad[0]['x'] + SWpad[0]['width'] + self.margin
+                    corelly = SWpad[0]['y'] + SWpad[0]['height'] + self.margin
+                else:
+                    corellx = Wpadlist[0]['x'] + Wpadlist[0]['height'] + self.margin
+                    corelly = Spadlist[0]['x'] + Spadlist[0]['height'] + self.margin
+                if self.NEpad != []:
+                    coreurx = NEpad[0]['x'] - self.margin
+                    coreury = NEpad[0]['y'] - self.margin
+                else:
+                    coreurx = Epadlist[0]['x'] - self.margin
+                    coreury = Npadlist[0]['x'] - self.margin
+                locllx = corellx
+                testllx = corellx
+                loclly = corelly
+                testlly = corelly
+                nextlly = corelly
+              
+                for cell in self.corecells:
+
+                    testllx = locllx + cell['width']
+                    if testllx > coreurx:
+                        locllx = corellx
+                        corelly = nextlly
+                        loclly = nextlly
+
+                    newcore = cell
+                    newcore['x'] = locllx
+                    newcore['y'] = loclly
+                    newcore['o'] = 'N'
+
+                    locllx += cell['width'] + self.margin
+
+                    testlly = corelly + cell['height'] + self.margin
+                    if testlly > nextlly:
+                        nextlly = testlly
+
+                    coregroup.append(newcore)
+
+                self.coregroup = coregroup
+
+        if os.path.isfile(mag_path + '/' + self.project + '.def'):
+            # Read the top-level DEF, and use it to position the core cells.
+            self.print('Reading the top-level cell DEF for core cell placement.')
+
+            units = 1000
+            in_components = False
+            with open(mag_path + '/' + self.project + '.def', 'r') as ifile:
+                deflines = ifile.read().splitlines()
+                for line in deflines:
+                    if 'UNITS DISTANCE MICRONS' in line:
+                        units = line.split()[3]
+                    elif in_components:
+                        lparse = line.split()
+                        if lparse[0] == '-':
+                            instname = lparse[1]
+                            # NOTE: Magic should not drop the entire path to the
+                            # cell for the cellname;  this needs to be fixed!  To
+                            # work around it, remove any path components.
+                            cellpath = lparse[2]
+                            cellname = os.path.split(cellpath)[1]
+                        
+                        elif lparse[0] == '+':
+                            if lparse[1] == 'PLACED':
+                                placex = lparse[3]
+                                placey = lparse[4]
+                                placeo = lparse[6]
+
+                                newcore = {}
+                                newcore['name'] = instname
+                                newcore['cell'] = cellname
+
+                                try:
+                                    celldef = next(item for item in self.coredefs if item['name'] == cellname)
+                                except:
+                                    celldef = None
+                                else:
+                                    newcore['celllib'] = celldef['celllib']
+                                    newcore['width'] = celldef['width']
+                                    newcore['height'] = celldef['height']
+                                    newcore['class'] = celldef['class']
+                                    newcore['subclass'] = celldef['subclass']
+ 
+                                newcore['x'] = float(placex) / float(units)
+                                newcore['y'] = float(placey) / float(units)
+                                newcore['o'] = placeo
+                                coregroup.append(newcore)
+
+                        elif 'END COMPONENTS' in line:
+                            in_components = False
+                    elif 'COMPONENTS' in line:
+                        in_components = True
+
+            self.coregroup = coregroup
+
+        elif os.path.isfile(mag_path + '/core.def'):
+            # No DEF or .mag file, so fallback position is the last core.def
+            # file generated by this script.
+            self.read_core_def(precheck=precheck)
+
+        return True
+
+    # Read placement information from the "padframe.def" file and rotate
+    # all cells according to self.pad_rotation.  This accounts for the
+    # problem that the default orientation of pads is arbitrarily defined
+    # by the foundry, while padring assumes that the corner pad is drawn
+    # in the lower-left position and other pads are drawn with the pad at
+    # the bottom and the buses at the top.
+
+    def rotate_pads_in_def(self):
+        if self.pad_rotation == 0:
+            return
+
+        self.print('Rotating pads in padframe DEF file.')
+        mag_path = self.projectpath + '/mag'
+
+        if not os.path.isfile(mag_path + '/padframe.def'):
+            self.print('No file padframe.def:  Cannot modify pad rotations.')
+            return
+
+        deflines = []
+        with open(mag_path + '/padframe.def', 'r') as ifile:
+            deflines = ifile.read().splitlines()
+
+        outlines = []
+        in_components = False
+        for line in deflines:
+            if in_components:
+                lparse = line.split()
+                if lparse[0] == '+':
+                    if lparse[1] == 'PLACED':
+                        neworient = self.rotate_orientation(lparse[6])
+                        lparse[6] = neworient
+                        line = ' '.join(lparse)
+
+                elif 'END COMPONENTS' in line:
+                    in_components = False
+            elif 'COMPONENTS' in line:
+                in_components = True
+            outlines.append(line)
+
+        with open(mag_path + '/padframe.def', 'w') as ofile:
+            for line in outlines:
+                print(line, file=ofile)
+
+    # Read placement information from the DEF file for the core (created by
+    # a previous run of this script)
+
+    def read_core_def(self, precheck=False):
+        self.print('Reading placement information from core DEF file.')
+
+        mag_path = self.projectpath + '/mag'
+
+        if not os.path.isfile(mag_path + '/core.def'):
+            if not precheck:
+                self.print('No file core.def:  core placement was not generated.')
+            return False 
+
+        # Very simple DEF file parsing, similar to the padframe.def reading
+        # routine above.
+
+        units = 1000
+        in_components = False
+
+        coregroup = []
+
+        with open(mag_path + '/core.def', 'r') as ifile:
+            deflines = ifile.read().splitlines()
+            for line in deflines:
+                if 'UNITS DISTANCE MICRONS' in line:
+                    units = line.split()[3]
+                elif in_components:
+                    lparse = line.split()
+                    if lparse[0] == '-':
+                        instname = lparse[1]
+                        cellname = lparse[2]
+                        
+                    elif lparse[0] == '+':
+                        if lparse[1] == 'PLACED':
+                            placex = lparse[3]
+                            placey = lparse[4]
+                            placeo = lparse[6]
+
+                            newcore = {}
+                            newcore['name'] = instname
+                            newcore['cell'] = cellname
+
+                            try:
+                                celldef = next(item for item in self.coredefs if item['name'] == cellname)
+                            except:
+                                celldef = None
+                            else:
+                                newcore['celllib'] = celldef['celllib']
+                                newcore['width'] = celldef['width']
+                                newcore['height'] = celldef['height']
+                                newcore['class'] = celldef['class']
+                                newcore['subclass'] = celldef['subclass']
+ 
+                            newcore['x'] = float(placex) / float(units)
+                            newcore['y'] = float(placey) / float(units)
+                            newcore['o'] = placeo
+                            coregroup.append(newcore)
+
+                    elif 'END COMPONENTS' in line:
+                        in_components = False
+                elif 'COMPONENTS' in line:
+                    in_components = True
+
+            self.coregroup = coregroup
+
+        return True
+
+    # Save the layout to a Magic database file (to be completed)
+
+    def save(self):
+        self.print('Saving results in a magic layout database.')
+
+        # Generate a list of (unique) LEF libraries for all padframe and core cells
+        leflist = []
+        for pad in self.celldefs:
+            if pad['iolib'] not in leflist:
+                leflist.append(pad['iolib'])
+
+        for core in self.coredefs:
+            if core['celllib'] not in leflist:
+                leflist.append(core['celllib'])
+
+        # Run magic, and generate the padframe with a series of commands
+        mag_path = self.projectpath + '/mag'
+
+        with open(mag_path + '/pfg_write_mag.tcl', 'w') as ofile:
+            print('drc off', file=ofile)
+            print('box 0 0 0 0', file=ofile)
+            for leffile in leflist:
+                print('lef read ' + leffile, file=ofile)
+            print('def read padframe', file=ofile)
+            print('select top cell', file=ofile)
+            print('select area', file=ofile)
+            print('select save padframe', file=ofile)
+            print('delete', file=ofile)
+            print('def read core', file=ofile)
+            print('getcell padframe', file=ofile)
+            print('save ' + self.project, file=ofile)
+            print('writeall force ' + self.project, file=ofile)
+            print('quit', file=ofile)
+
+        magicexec = self.magic_path if self.magic_path else 'magic'
+        mproc = subprocess.Popen([magicexec, '-dnull', '-noconsole',
+			'pfg_write_mag.tcl'],
+			stdin = subprocess.PIPE, stdout = subprocess.PIPE,
+			stderr = subprocess.PIPE, cwd = mag_path, universal_newlines = True)
+        self.watch(mproc)
+        os.remove(mag_path + '/pfg_write_mag.tcl')
+        self.print('Done writing layout ' + self.project + '.mag')
+
+        # Write the core DEF file if it does not exist yet.
+        if not os.path.isfile(mag_path + '/core.def'):
+            self.write_core_def()
+
+if __name__ == '__main__':
+    faulthandler.register(signal.SIGUSR2)
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    if '-help' in options:
+        print(sys.argv[0] + ' [options]')
+        print('')
+        print('options:')
+        print('   -noc    Print output to terminal, not the gui window')
+        print('   -nog    No graphics, run in batch mode')
+        print('   -cfg    Use existing padframe.cfg, do not regenerate')
+        print('   -padring-path=<path>	path to padring executable')
+        print('   -magic-path=<path>	path to magic executable')
+        print('   -tech-path=<path>	path to tech root folder')
+        print('   -project-path=<path>	path to project root folder')
+        print('   -help   Print this usage information')
+        print('')
+        sys.exit(0)
+
+    root = tkinter.Tk()
+    do_gui = False if ('-nog' in options or '-nogui' in options) else True
+    app = SoCFloorplanner(root, do_gui)
+
+    # Allow option -noc to bypass the text-to-console redirection, so crash
+    # information doesn't disappear with the app.
+
+    app.use_console = False if ('-noc' in options or '-noconsole' in options) else True
+    if do_gui == False:
+        app.use_console = False
+
+    # efabless format can be specified on the command line, but note that it
+    # is otherwise auto-detected by checking for .config vs. .ef-config in
+    # the project space.
+
+    app.ef_format = True if '-ef_format' in options else False
+    app.keep_cfg = True if '-cfg' in options else False
+
+    app.padring_path = None
+    app.magic_path = None
+    app.techpath = None
+    app.projectpath = None
+
+    for option in options:
+        if option.split('=')[0] == '-padring-path':
+            app.padring_path = option.split('=')[1]
+        elif option.split('=')[0] == '-magic-path':
+            app.magic_path = option.split('=')[1]
+        elif option.split('=')[0] == '-tech-path':
+            app.techpath = option.split('=')[1]
+        elif option.split('=')[0] == '-project-path':
+            app.projectpath = option.split('=')[1]
+            app.projectpath = app.projectpath[:-1] if app.projectpath[-1] == '/' else app.projectpath
+
+    app.text_to_console()
+    app.init_padframe()
+    if app.do_gui:
+        root.mainloop()
+    else:
+        # Run 'save' in non-GUI mode
+        app.save()
+        sys.exit(0)
+
diff --git a/common/split_gds.py b/common/split_gds.py
new file mode 100755
index 0000000..a673c2f
--- /dev/null
+++ b/common/split_gds.py
@@ -0,0 +1,76 @@
+#!/bin/env python3
+# Script to read a GDS library and write into individual GDS files, one per cell
+
+import os
+import sys
+import subprocess
+
+def usage():
+    print('split_gds.py <path_to_gds_library> <magic_techfile> [<file_with_list_of_cells>]')
+
+if __name__ == '__main__':
+
+    if len(sys.argv) == 1:
+        print("No options given to split_gds.py.")
+        usage()
+        sys.exit(0)
+
+    optionlist = []
+    arguments = []
+
+    for option in sys.argv[1:]:
+        if option.find('-', 0) == 0:
+            optionlist.append(option)
+        else:
+            arguments.append(option)
+
+    if len(arguments) != 3:
+        print("Wrong number of arguments given to split_gds.py.")
+        usage()
+        sys.exit(0)
+
+    source = arguments[0]
+
+    techfile = arguments[1]
+
+    celllist = arguments[2]
+    if os.path.isfile(celllist):
+        with open(celllist, 'r') as ifile:
+            celllist = ifile.read().splitlines()
+
+    destdir = os.path.split(source)[0]
+    gdsfile = os.path.split(source)[1]
+
+    with open(destdir + '/split_gds.tcl', 'w') as ofile:
+        print('#!/bin/env wish', file=ofile)
+        print('drc off', file=ofile)
+        print('gds readonly true', file=ofile)
+        print('gds rescale false', file=ofile)
+        print('tech unlock *', file=ofile)
+        print('gds read ' + gdsfile, file=ofile)
+
+        for cell in celllist:
+            print('load ' + cell, file=ofile)
+            print('gds write ' + cell, file=ofile)
+
+        print('quit -noprompt', file=ofile)
+
+    mproc = subprocess.run(['magic', '-dnull', '-noconsole',
+		'-T', techfile,
+		destdir + '/split_gds.tcl'],
+		stdin = subprocess.DEVNULL,
+		stdout = subprocess.PIPE,
+		stderr = subprocess.PIPE, cwd = destdir,
+		universal_newlines = True)
+    if mproc.stdout:
+        for line in mproc.stdout.splitlines():
+            print(line)
+    if mproc.stderr:
+        print('Error message output from magic:')
+        for line in mproc.stderr.splitlines():
+            print(line)
+        if mproc.returncode != 0:
+            print('ERROR:  Magic exited with status ' + str(mproc.returncode))
+
+    os.remove(destdir + '/split_gds.tcl')
+    exit(0)
diff --git a/common/staging_install.py b/common/staging_install.py
new file mode 100755
index 0000000..3e13cb0
--- /dev/null
+++ b/common/staging_install.py
@@ -0,0 +1,617 @@
+#!/usr/bin/env python3
+#
+# staging_install.py
+#
+# This file copies the staging area created by foundry_install.py
+# into the target directory area, changing paths to match the target,
+# and creating symbolic links where requested and allowed.
+#
+# Options:
+#    -link_from <type>	Make symbolic links to vendor files from target
+#			Types are: "none", "source", or a PDK name.
+#			Default "none" (copy all files from source)
+#    -ef_format		Use efabless naming (libs.ref/techLEF),
+#			otherwise use generic naming (libs.tech/lef)
+#
+#    -staging <path>	Path to staging top level directory
+#    -target <path>	Path to target top level directory
+#    -local <path>	For distributed installs, this is the local
+#			path to target top level directory.
+#    -source <path>     Path to original source top level directory,
+#                       if link_from is "source".  This option may
+#                       be called multiple times if there are multiple
+#                       sources.
+
+import re
+import os
+import sys
+import glob
+import stat
+import shutil
+import filecmp
+import subprocess
+
+# NOTE:  This version of copy_tree from distutils works like shutil.copytree()
+# in Python 3.8 and up ONLY using "dirs_exist_ok=True".
+from distutils.dir_util import copy_tree
+
+def usage():
+    print("staging_install.py [options...]")
+    print("   -link_from <name> Make symbolic links from target to <name>")
+    print("                     where <name> can be 'source' or a PDK name.")
+    print("                     Default behavior is to copy all files.")
+    print("   -copy             Copy files from source to target (default)")
+    print("   -ef_format        Use efabless naming conventions for local directories")
+    print("")
+    print("   -staging <path>   Path to top of staging directory tree")
+    print("   -target <path>    Path to top of target directory tree")
+    print("   -local <path>	Local path to top of target directory tree for distributed install")
+    print("")
+    print(" If <target> is unspecified then <name> is used for the target.")
+
+def makeuserwritable(filepath):
+    if os.path.exists(filepath):
+        st = os.stat(filepath)
+        os.chmod(filepath, st.st_mode | stat.S_IWUSR)
+
+# Filter files to replace all strings matching "stagingdir" with "localdir" for
+# every file in "tooldir".  If "tooldir" contains subdirectories, then recursively
+# apply the replacement filter to all files in the subdirectories.  Do not follow
+# symbolic links.
+
+def filter_recursive(tooldir, stagingdir, localdir):
+    gdstypes = ['.gds', '.gds2', '.gdsii']
+
+    if not os.path.exists(tooldir):
+        return 0
+    elif os.path.islink(tooldir):
+        return 0
+
+    toolfiles = os.listdir(tooldir)
+    total = 0
+
+    for file in toolfiles:
+        # Do not attempt to do text substitutions on a binary file!
+        if os.path.splitext(file)[1] in gdstypes:
+            continue
+
+        filepath = tooldir + '/' + file
+        if os.path.islink(filepath):
+            continue
+        elif os.path.isdir(filepath):
+            total += filter_recursive(filepath, stagingdir, localdir)
+        else:
+            with open(filepath, 'r') as ifile:
+                try:
+                    flines = ifile.read().splitlines()
+                except UnicodeDecodeError:
+                    print('Failure to read file ' + filepath + '; non-ASCII content.')
+                    continue
+
+            # Make sure this file is writable (as the original may not be)
+            makeuserwritable(filepath)
+
+            modified = False
+            with open(filepath, 'w') as ofile:
+                for line in flines:
+                    newline = line.replace(stagingdir, localdir)
+                    print(newline, file=ofile) 
+                    if newline != line:
+                        modified = True
+
+            if modified:
+                total += 1
+    return total
+        
+# To avoid problems with various library functions that copy hierarchical
+# directory trees, remove all the files from the target that are going to
+# be replaced by the contents of staging.  This avoids problems with
+# symbolic links and such.
+
+def remove_target(stagingdir, targetdir):
+
+    slist = os.listdir(stagingdir)
+    tlist = os.listdir(targetdir)
+
+    for sfile in slist:
+        if sfile in tlist:
+            tpath = targetdir + '/' + sfile
+            if os.path.islink(tpath):
+                os.unlink(tpath)
+            elif os.path.isdir(tpath):
+                remove_target(stagingdir + '/' + sfile, targetdir + '/' + sfile)
+            else:
+                os.remove(tpath)
+
+# Create a list of source files/directories from the contents of source.txt
+
+def make_source_list(sources):
+    sourcelist = []
+    for source in sources:
+        sourcelist.extend(glob.glob(source))
+    return sourcelist
+
+# Replace all files in list "libfiles" with symbolic links to files in
+# "sourcelist", where the files are found to be the same.  If the entry
+# in "libfiles" is a directory and the same directory is found in "sourcelist",
+# then repeat recursively on the subdirectory.
+#
+# Because the installation may be distributed, there may be a difference
+# between where the files to be linked to currently are (checklist)
+# and where they will eventually be located (sourcelist).
+
+def replace_with_symlinks(libfiles, sourcelist):
+    # List of files that never get installed
+    exclude = ['generate_magic.tcl', '.magicrc', 'sources.txt']
+    total = 0
+    for libfile in libfiles:
+        if os.path.islink(libfile):
+            continue
+        else:
+            try:
+                sourcefile = next(item for item in sourcelist if os.path.split(item)[1] == os.path.split(libfile)[1])
+            except:
+                pass
+            else:
+                if os.path.isdir(libfile):
+                    newlibfiles = glob.glob(libfile + '/*')
+                    newsourcelist = glob.glob(sourcefile + '/*')
+                    total += replace_with_symlinks(newlibfiles, newsourcelist)
+                elif filecmp.cmp(libfile, sourcefile):
+                    if not os.path.split(libfile)[1] in exclude:
+                        os.remove(libfile)
+                        # Use absolute path for the source file
+                        sourcepath = os.path.abspath(sourcefile)
+                        os.symlink(sourcepath, libfile)
+                        total += 1
+    return total
+
+# Similar to the routine above, replace files in "libdir" with symbolic
+# links to the files in "srclibdir", where the files are found to be the
+# same.  The difference from the routine above is that "srclibdir" is
+# another installed PDK, and so the directory hierarchy is expected to
+# match that of "libdir" exactly, so the process of finding matches is
+# a bit more straightforward.
+#
+# Because the installation may be distributed, there may be a difference
+# between where the files to be linked to currently are (checklibdir)
+# and where they will eventually be located (srclibdir).
+
+def replace_all_with_symlinks(libdir, srclibdir, checklibdir):
+    total = 0
+    try:
+        libfiles = os.listdir(libdir)
+    except FileNotFoundError:
+        print('Cannot list directory ' + libdir)
+        print('Called: replace_all_with_symlinks(' + libdir + ', ' + srclibdir + ', ' + checklibdir + ')')
+        return total
+
+    try:
+        checkfiles = os.listdir(checklibdir)
+    except FileNotFoundError:
+        print('Cannot list check directory ' + checklibdir)
+        print('Called: replace_all_with_symlinks(' + libdir + ', ' + srclibdir + ', ' + checklibdir + ')')
+        return total
+
+    for libfile in libfiles:
+        if libfile in checkfiles:
+            libpath = libdir + '/' + libfile
+            checkpath = checklibdir + '/' + libfile
+            srcpath = srclibdir + '/' + libfile
+
+            if os.path.isdir(libpath):
+                if os.path.isdir(checkpath):
+                    total += replace_all_with_symlinks(libpath, srcpath, checkpath)
+            else:
+                try:
+                    if filecmp.cmp(libpath, checkpath):
+                        os.remove(libpath)
+                        os.symlink(srcpath, libpath)
+                        total += 1
+                except FileNotFoundError:
+                    print('Failed file compare with libpath=' + libpath + ', checkpath=' + checkpath)
+
+    return total
+
+#----------------------------------------------------------------
+# This is the main entry point for the staging install script.
+#----------------------------------------------------------------
+
+if __name__ == '__main__':
+
+    if len(sys.argv) == 1:
+        print("No options given to staging_install.py.")
+        usage()
+        sys.exit(0)
+    
+    optionlist = []
+    newopt = []
+
+    stagingdir = None
+    targetdir = None
+    link_from = None
+    localdir = None
+
+    ef_format = False
+    do_install = True
+
+    # Break arguments into groups where the first word begins with "-".
+    # All following words not beginning with "-" are appended to the
+    # same list (optionlist).  Then each optionlist is processed.
+    # Note that the first entry in optionlist has the '-' removed.
+
+    for option in sys.argv[1:]:
+        if option.find('-', 0) == 0:
+            if newopt != []:
+                optionlist.append(newopt)
+                newopt = []
+            newopt.append(option[1:])
+        else:
+            newopt.append(option)
+
+    if newopt != []:
+        optionlist.append(newopt)
+
+    # Check for option "ef_format" or "std_format"
+    for option in optionlist[:]:
+        if option[0] == 'ef_naming' or option[0] == 'ef_names' or option[0] == 'ef_format':
+            optionlist.remove(option)
+            ef_format = True
+        elif option[0] == 'std_naming' or option[0] == 'std_names' or option[0] == 'std_format':
+            optionlist.remove(option)
+            ef_format = False
+        elif option[0] == 'uninstall':
+            optionlist.remove(option)
+            do_install = False
+
+    # Check for options "link_from", "staging", "target", and "local"
+
+    link_name = None
+    for option in optionlist[:]:
+        if option[0] == 'link_from':
+            optionlist.remove(option)
+            if option[1].lower() == 'none':
+                link_from = None
+            elif option[1].lower() == 'source':
+                link_from = 'source'
+            else:
+                link_from = option[1]
+                link_name = os.path.split(link_from)[1]
+        elif option[0] == 'staging' or option[0] == 'source':
+            optionlist.remove(option)
+            stagingdir = option[1]
+        elif option[0] == 'target':
+            optionlist.remove(option)
+            targetdir = option[1]
+        elif option[0] == 'local':
+            optionlist.remove(option)
+            localdir = option[1]
+
+    # Error if no staging or dest specified
+    if not stagingdir:
+        print("No staging directory specified.  Exiting.")
+        sys.exit(1)
+
+    if not targetdir:
+        print("No target directory specified.  Exiting.")
+        sys.exit(1)
+
+    # If localdir is not specified, then it is the same as the parent
+    # of the target (local installation assumed)
+    if not localdir:
+        localdir = targetdir
+
+    # Take the target PDK name from the target path last component
+    pdkname = os.path.split(targetdir)[1]
+
+    # If link source is a PDK name, if it has no path, then pull the
+    # path from the target name.
+
+    if link_from:
+        if link_from != 'source':
+            if link_from.find('/', 0) < 0:
+                link_name = link_from
+                link_from = os.path.split(localdir)[0] + '/' + link_name
+        else:
+            # If linking from source, convert the source path to an
+            # absolute pathname.
+            stagingdir = os.path.abspath(stagingdir)
+
+    # If link_from is the same as localdir, then set link_from to None
+    if link_from == localdir:
+        link_from = None
+
+    # checkdir is the DIST target directory for the PDK pointed
+    # to by link_name.  Files must be found there before creating
+    # symbolic links to the (not yet existing) final install location.
+
+    if link_name:
+        checkdir = os.path.split(targetdir)[0] + '/' + link_name
+    else:
+        checkdir = ''
+
+    # Diagnostic
+    if do_install:
+        print("Installing in target directory " + targetdir)
+    else:
+        print("Uninstalling from target directory " + targetdir)
+        print("(Method not yet implemented)")
+
+    # Create the top-level directories
+
+    os.makedirs(targetdir, exist_ok=True)
+    os.makedirs(targetdir + '/libs.tech', exist_ok=True)
+    os.makedirs(targetdir + '/libs.ref', exist_ok=True)
+    if os.path.isdir(stagingdir + '/libs.priv'):
+        os.makedirs(targetdir + '/libs.priv', exist_ok=True)
+        has_priv = True
+    else:
+        has_priv = False
+
+    # Path to magic techfile depends on ef_format
+
+    if ef_format == True:
+        mag_current = '/libs.tech/magic/current/'
+    else:
+        mag_current = '/libs.tech/magic/'
+
+    # First install everything by direct copy.  Keep the staging files
+    # as they will be used to reference the target area to know which
+    # files need to be checked and/or modified.
+
+    if not os.path.isdir(targetdir):
+        try:
+            os.makedirs(targetdir, exist_ok=True)
+        except:
+            print('Fatal error:  Cannot make target directory ' + targetdir + '!')
+            exit(1)
+
+    # Remove any files from the target directory that are going to be replaced
+    print('Removing files from target')
+    remove_target(stagingdir, targetdir)
+
+    print('Copying staging files to target')
+    # print('Diagnostic:  copy_tree ' + stagingdir + ' ' + targetdir)
+    copy_tree(stagingdir, targetdir, preserve_symlinks=True)
+    print('Done.')
+
+    # Magic and qflow setup files have references to the staging area that have
+    # been used by the vendor install;  these need to be changed to the target
+    # directory.
+
+    print('Changing local path references from ' + stagingdir + ' to ' + localdir)
+    print('Part 1:  Tools')
+
+    needcheck = ['ngspice']
+    techdirs = ['/libs.tech/']
+    if has_priv:
+        techdirs.append('/libs.priv/')
+
+    for techdir in techdirs:
+        tools = os.listdir(targetdir + techdir)
+        for tool in tools:
+            tooldir = targetdir + techdir + tool
+
+            # There are few enough tool setup files that they can just all be
+            # filtered directly.  This code only looks in the directory 'tooldir'.
+            # If there are files is subdirectories of 'tooldir' that require
+            # substitution, then this code needs to be revisited.
+
+            # Note that due to the low overhead of tool setup files, there is
+            # no attempt to check for possible symlinks to link_from if link_from
+            # is a base PDK.
+
+            total = filter_recursive(tooldir, stagingdir, localdir)
+            if total > 0:
+                substr = 'substitutions' if total > 1 else 'substitution'
+                print('      ' + tool + ' (' + str(total) + ' ' + substr + ')')
+
+    # If "link_from" is another PDK, then check all files against the files in
+    # the other PDK, and replace the file with a symbolic link if the file contents
+    # match (Note:  This is done only for ngspice model files;  other tool files are
+    # generally small and deemed unnecessary to make symbolic links).
+
+    if link_from != 'source':
+        thispdk = os.path.split(targetdir)[1]
+
+        # Only create links for PDKs other than the one we are making links to.
+        if thispdk != link_from:
+            print('Replacing files with symbolic links to ' + link_from + ' where possible.')
+            for techdir in techdirs:
+                for tool in needcheck:
+                    tooldir = targetdir + techdir + tool
+                    srctooldir = link_from + techdir + tool
+                    if checkdir != '':
+                        checktooldir = checkdir + techdir + tool
+                    else:
+                        checktooldir = srctooldir
+                    if os.path.exists(tooldir):
+                        total = replace_all_with_symlinks(tooldir, srctooldir, checktooldir)
+                        if total > 0:
+                            symstr = 'symlinks' if total > 1 else 'symlink'
+                            print('      ' + tool + ' (' + str(total) + ' ' + symstr + ')')
+
+    # In .mag files in mag/ and maglef/, also need to change the staging
+    # directory name to localdir
+
+    needcheck = ['mag', 'maglef']
+    refdirs = ['/libs.ref/']
+    if has_priv:
+        refdirs.append('/libs.priv/')
+
+    if ef_format:
+        print('Part 2:  Formats')
+        for refdir in refdirs:
+            for filetype in needcheck:
+                print('   ' + filetype)
+                filedir = targetdir + refdir + filetype
+                if os.path.isdir(filedir):
+                    libraries = os.listdir(filedir)
+                    for library in libraries:
+                        libdir = filedir + '/' + library
+                        total = filter_recursive(libdir, stagingdir, localdir)
+                        if total > 0:
+                            substr = 'substitutions' if total > 1 else 'substitution'
+                            print('      ' + library + ' (' + str(total) + ' ' + substr + ')')
+    else:
+        print('Part 2:  Libraries')
+        for refdir in refdirs:
+            libraries = os.listdir(targetdir + refdir)
+            for library in libraries:
+                print('   ' + library)
+                for filetype in needcheck:
+                    filedir = targetdir + refdir + library + '/' + filetype
+                    total = filter_recursive(filedir, stagingdir, localdir)
+                    if total > 0:
+                        substr = 'substitutions' if total > 1 else 'substitution'
+                        print('      ' + filetype + ' (' + str(total) + ' ' + substr + ')')
+        
+    # If "link_from" is "source", then check all files against the source
+    # directory, and replace the file with a symbolic link if the file
+    # contents match.  The "foundry_install.py" script should have added a
+    # file "sources.txt" with the name of the source directories for each
+    # install directory.
+
+    if link_from == 'source':
+        print('Replacing files with symbolic links to source where possible.')
+        for refdir in refdirs:
+            if ef_format:
+                filedirs = os.listdir(targetdir + refdir)
+                for filedir in filedirs:
+                    print('   ' + filedir)
+                    dirpath = targetdir + refdir + filedir
+                    if os.path.isdir(dirpath):
+                        libraries = os.listdir(dirpath)
+                        for library in libraries:
+                            libdir = targetdir + refdir + filedir + '/' + library
+                            libfiles = os.listdir(libdir)
+                            if 'sources.txt' in libfiles:
+                                libfiles = glob.glob(libdir + '/*')
+                                libfiles.remove(libdir + '/sources.txt')
+                                with open(libdir + '/sources.txt') as ifile:
+                                    sources = ifile.read().splitlines()
+                                sourcelist = make_source_list(sources)
+                                total = replace_with_symlinks(libfiles, sourcelist)
+                                if total > 0:
+                                    symstr = 'symlinks' if total > 1 else 'symlink'
+                                    print('      ' + library + ' (' + str(total) + ' ' + symstr + ')')
+            else:
+                libraries = os.listdir(targetdir + refdir)
+                for library in libraries:
+                    print('   ' + library)
+                    filedirs = os.listdir(targetdir + refdir + library)
+                    for filedir in filedirs:
+                        libdir = targetdir + refdir + library + '/' + filedir
+                        if os.path.isdir(libdir):
+                            libfiles = os.listdir(libdir)
+                            if 'sources.txt' in libfiles:
+                                # List again, but with full paths.
+                                libfiles = glob.glob(libdir + '/*')
+                                libfiles.remove(libdir + '/sources.txt')
+                                with open(libdir + '/sources.txt') as ifile:
+                                    sources = ifile.read().splitlines()
+                                sourcelist = make_source_list(sources)
+                                total = replace_with_symlinks(libfiles, sourcelist)
+                                if total > 0:
+                                    symstr = 'symlinks' if total > 1 else 'symlink'
+                                    print('      ' + filedir + ' (' + str(total) + ' ' + symstr + ')')
+
+    # Otherwise, if "link_from" is another PDK, then check all files against
+    # the files in the other PDK, and replace the file with a symbolic link
+    # if the file contents match.
+
+    elif link_from:
+        thispdk = os.path.split(targetdir)[1]
+
+        # Only create links for PDKs other than the one we are making links to.
+        if thispdk != link_from:
+
+            print('Replacing files with symbolic links to ' + link_from + ' where possible.')
+
+            for refdir in refdirs:
+                if ef_format:
+                    filedirs = os.listdir(targetdir + refdir)
+                    for filedir in filedirs:
+                        print('   ' + filedir)
+                        dirpath = targetdir + refdir + filedir
+                        if os.path.isdir(dirpath):
+                            libraries = os.listdir(dirpath)
+                            for library in libraries:
+                                libdir = targetdir + refdir + filedir + '/' + library
+                                srclibdir = link_from + refdir + filedir + '/' + library
+                                if checkdir != '':
+                                    checklibdir = checkdir + refdir + filedir + '/' + library
+                                else:
+                                    checklibdir = srclibdir
+                                if os.path.exists(libdir):
+                                    total = replace_all_with_symlinks(libdir, srclibdir, checklibdir)
+                                    if total > 0:
+                                        symstr = 'symlinks' if total > 1 else 'symlink'
+                                        print('      ' + library + ' (' + str(total) + ' ' + symstr + ')')
+                else:
+                    libraries = os.listdir(targetdir + refdir)
+                    for library in libraries:
+                        print('   ' + library)
+                        filedirs = os.listdir(targetdir + refdir + library)
+                        for filedir in filedirs:
+                            libdir = targetdir + refdir + library + '/' + filedir
+                            srclibdir = link_from + refdir + library + '/' + filedir
+                            if checkdir != '':
+                                checklibdir = checkdir + refdir + library + '/' + filedir
+                            else:
+                                checklibdir = srclibdir
+                            if os.path.exists(libdir):
+                                total = replace_all_with_symlinks(libdir, srclibdir, checklibdir)
+                                if total > 0:
+                                    symstr = 'symlinks' if total > 1 else 'symlink'
+                                    print('      ' + filedir + ' (' + str(total) + ' ' + symstr + ')')
+
+    # Remove temporary files:  Magic generation scripts, sources.txt
+    # file, and magic extract files.
+
+    print('Removing temporary files from destination.')
+
+    for refdir in refdirs:
+        if ef_format:
+            filedirs = os.listdir(targetdir + refdir)
+            for filedir in filedirs:
+                if os.path.islink(filedir):
+                    continue
+                elif os.path.isdir(filedir):
+                    libraries = os.listdir(targetdir + refdir + filedir)
+                    for library in libraries:
+                        libdir = targetdir + refdir + filedir + '/' + library
+                        libfiles = os.listdir(libdir)
+                        for libfile in libfiles:
+                            filepath = libdir + '/' + libfile
+                            if os.path.islink(filepath):
+                                continue
+                            elif libfile == 'sources.txt':
+                                os.remove(filepath)
+                            elif libfile == 'generate_magic.tcl':
+                                os.remove(filepath)
+                            elif os.path.splitext(libfile)[1] == '.ext':
+                                os.remove(filepath)
+        else:
+            libraries = os.listdir(targetdir + refdir)
+            for library in libraries:
+                filedirs = os.listdir(targetdir + refdir + library)
+                for filedir in filedirs:
+                    filepath = targetdir + refdir + library + '/' + filedir
+                    if os.path.islink(filepath):
+                        continue
+                    elif os.path.isdir(filepath):
+                        libfiles = os.listdir(filepath)
+                        for libfile in libfiles:
+                            libfilepath = filepath + '/' + libfile
+                            if os.path.islink(libfilepath):
+                                continue
+                            elif libfile == 'sources.txt':
+                                os.remove(libfilepath)
+                            elif libfile == 'generate_magic.tcl':
+                                os.remove(libfilepath)
+                            elif os.path.splitext(libfile)[1] == '.ext':
+                                os.remove(libfilepath)
+        
+    print('Done with PDK migration.')
+    sys.exit(0)
diff --git a/common/tksimpledialog.py b/common/tksimpledialog.py
new file mode 100755
index 0000000..4734291
--- /dev/null
+++ b/common/tksimpledialog.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+#
+# Dialog class for tkinter
+
+import os
+import tkinter
+from tkinter import ttk
+
+class Dialog(tkinter.Toplevel):
+
+    def __init__(self, parent, message = None, title = None, seed = None, border = 'blue', **kwargs):
+
+        tkinter.Toplevel.__init__(self, parent)
+        self.transient(parent)
+
+        if title:
+            self.title(title)
+
+        self.configure(background=border, padx=2, pady=2)
+        self.obox = ttk.Frame(self)
+        self.obox.pack(side = 'left', fill = 'both', expand = 'true')
+
+        self.parent = parent
+        self.result = None
+        body = ttk.Frame(self.obox)
+        self.initial_focus = self.body(body, message, seed, **kwargs)
+        body.pack(padx = 5, pady = 5)
+        self.buttonbox()
+        self.grab_set()
+
+        if not self.initial_focus:
+            self.initial_focus = self
+
+        self.protocol("WM_DELETE_WINDOW", self.cancel)
+        self.geometry("+%d+%d" % (parent.winfo_rootx() + 50,
+                                  parent.winfo_rooty() + 50))
+
+        self.initial_focus.focus_set()
+        self.wait_window(self)
+
+    # Construction hooks
+
+    def body(self, master, **kwargs):
+        # Create dialog body.  Return widget that should have
+        # initial focus.  This method should be overridden
+        pass
+
+    def buttonbox(self):
+        # Add standard button box.  Override if you don't want the
+        # standard buttons
+
+        box = ttk.Frame(self.obox)
+
+        self.okb = ttk.Button(box, text="OK", width=10, command=self.ok, default='active')
+        self.okb.pack(side='left', padx=5, pady=5)
+        w = ttk.Button(box, text="Cancel", width=10, command=self.cancel)
+        w.pack(side='left', padx=5, pady=5)
+
+        self.bind("<Return>", self.ok)
+        self.bind("<Escape>", self.cancel)
+        box.pack(fill='x', expand='true')
+
+    # Standard button semantics
+
+    def ok(self, event=None):
+
+        if not self.validate():
+            self.initial_focus.focus_set() # put focus back
+            return
+
+        self.withdraw()
+        self.update_idletasks()
+        self.result = self.apply()
+        self.cancel()
+
+    def cancel(self, event=None):
+
+        # Put focus back to the parent window
+        self.parent.focus_set()
+        self.destroy()
+
+    def validate(self):
+        return 1 # Override this
+
+    def apply(self):
+        return None # Override this
diff --git a/sky130/Makefile b/sky130/Makefile
new file mode 100644
index 0000000..2673519
--- /dev/null
+++ b/sky130/Makefile
@@ -0,0 +1,397 @@
+# Makefile for efabless design kits for SkyWater Sky130:
+#
+#  sky130A      =  5-metal backend stack with dual MiM
+#
+# Written by Tim Edwards March 2019
+# efabless corporation
+# updated October 2019
+# updated December 2019 (divide installation sections for individual tools)
+# updated March 2020 (refactored the install process)
+# updated May 2020 (changed to new process name Sky130)
+#
+# Instructions:
+#
+# Modify values below as needed:
+#
+#	VENDOR_PATH: points to vendor sources
+#	EF_STYLE: 1 for efabless style, 0 otherwise
+#	LINK_TARGETS: link back to source or link to 1st PDK when possible
+#	DIST_PATH: install location for distributed install
+#	LOCAL_PATH: install location for local install or runtime location
+#		    for distributed install
+#
+# Run "make" to stage the PDK for tool setup and vendor libraries
+
+# If installing into the final destination (local install):
+#
+#   Run "make install-local" to install all staged files
+#   ("make install" is equivalent to "make install-local")
+#
+# If installing into a repository to be distributed to the final destination:
+#
+#   Run "make install-dist" to install all staged files
+#
+# Run "make clean" to remove all staging files.
+#
+# Run "make veryclean" to remove all staging and install log files.
+#
+# For the sake of simplicity, the "standard" local install can be done
+# with the usual
+#
+#   make
+#   make install
+#   make clean
+#
+#--------------------------------------------------------------------
+# This Makefile contains bash-isms
+SHELL = bash
+
+REVISION    = 20200508
+TECH        = sky130
+
+# If EF_STYLE is set to 1, then efabless naming conventions are
+# used, otherwise the generic naming conventions are used.
+# Mainly, the hierarchy of library names and file types is reversed
+# (e.g., sky130_fd_sc_hd/lef vs. lef/sky130_fd_sc_hd).
+
+EF_STYLE = 0
+# EF_STYLE = 1
+
+# Normally it's fine to keep the staging path in a local directory,
+# although /tmp or a dedicated staging area are also fine, as long
+# as the install process can write to the path.
+
+STAGING_PATH = `pwd`
+
+# If LINK_TARGETS is set to "none", then files are copied
+# from the SkyWater sources to the target.  If set to "source",
+# symbolic links are made in the target directories pointing
+# back to the SkyWater sources.  If set to the name of another
+# PDK (e.g, "sky130A"), then symbolic links are made to the
+# same files in that PDK, where they exist, and are copied
+# from source, where they don't.
+
+# LINK_TARGETS = source
+# LINK_TARGETS = none
+# LINK_TARGETS = sky130A
+LINK_TARGETS = source
+
+# Paths:
+
+# Path to skywater_pdk (to be changed to public repo;  work in progress)
+# Version below comes from foss-eda-tools.googlesource.com
+# SKYWATER_PATH = ~/gits/skywater-pdk-scratch/skywater-pdk/libraries
+# Version below is also from foss-eda-tools and is more recent than
+# the scratch repo above.
+SKYWATER_PATH = ~/gits/skywater-pdk/libraries
+
+# NOTE:  Install destination is the git repository of the technology platform.
+# Once updated in git, the git project can be distributed to all hosts.
+#
+ifeq (${EF_STYLE}, 1)
+    LOCAL_PATH = /ef/tech/SW
+    CONFIG_DIR = .ef-config
+    REV_DIR = ${REVISION}
+else
+    # LOCAL_PATH = /usr/local/share/vlsi/SkyWater
+    LOCAL_PATH = ~/projects/efabless/tech/SW
+    CONFIG_DIR = .config
+    REV_DIR = .
+endif
+
+DIST_PATH = ~/gits/ef-skywater-${TECH}
+
+# EF process nodes created from the master sources
+SKY130A = sky130A
+
+ifeq (${LINK_TARGETS}, ${SKY130A})
+    DIST_LINK_TARGETS = ${LOCAL_PATH}/${LINK_TARGETS}
+else
+    DIST_LINK_TARGETS = ${LINK_TARGETS}
+endif
+
+# Basic definitions for each EF process node
+SKY130A_DEFS = -DTECHNAME=sky130A -DREVISION=${REVISION}
+
+# Module definitions for each process node
+# (Note that MOS is default and therefore not used anywhere)
+# SKY130A_DEFS += -DMETAL5 -DMIM -DREDISTRIBUTION
+SKY130A_DEFS += -DMETAL5 -DMIM
+
+# Add staging path
+SKY130A_DEFS += -DSTAGING_PATH=${STAGING_PATH}
+
+ifeq (${EF_STYLE}, 1)
+    EF_FORMAT = -ef_format
+    SKY130A_DEFS += -DEF_FORMAT
+else
+    EF_FORMAT = -std_format
+endif
+
+MAGICTOP = libs.tech/magic
+NETGENTOP = libs.tech/netgen
+QFLOWTOP = libs.tech/qflow
+KLAYOUTTOP = libs.tech/klayout
+OPENLANETOP = libs.tech/openlane
+
+ifeq (${EF_STYLE}, 1)
+    MAGICPATH = ${MAGICTOP}/${REVISION}
+else
+    MAGICPATH = ${MAGICTOP}
+endif
+
+# Currently, netgen, qflow, and klayout do not use revisioning (needs to change!)
+NETGENPATH = ${NETGENTOP}
+QFLOWPATH = ${QFLOWTOP}
+KLAYOUTPATH = ${KLAYOUTTOP}
+OPENLANEPATH = ${OPENLANETOP}
+
+MAGICTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICTOP}
+NETGENTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENTOP}
+QFLOWTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWTOP}
+KLAYOUTTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTTOP}
+OPENLANETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANETOP}
+
+MAGIC_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICPATH}
+NETGEN_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENPATH}
+QFLOW_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWPATH}
+KLAYOUT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTPATH}
+OPENLANE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANEPATH}
+
+SKY130A_DEFS += -DMAGIC_CURRENT=${MAGICTOP}/current
+
+# Where cpp syntax is followed, this is equivalent to cpp, but it does not
+# mangle non-C source files under the belief that they are actually C code.
+CPP   = ../common/preproc.py
+
+# The following script in the ../common directory does most of the work of
+# copying or linking the foundry vendor files to the target directory.
+STAGE = set -f ; ../common/foundry_install.py ${EF_FORMAT}
+INSTALL = ../common/staging_install.py ${EF_FORMAT}
+
+# The script(s) below are used for custom changes to the vendor PDK files
+ADDPROP = ../common/insert_property.py ${EF_FORMAT} 
+
+# List the EDA tools to install local setup files for
+TOOLS = magic qflow netgen klayout openlane
+
+all: all-a
+
+all-a:
+	echo "Starting sky130A PDK staging on "`date` > ${SKY130A}_install.log
+	${MAKE} tools-a
+	${MAKE} vendor-a
+	echo "Ended sky130A PDK staging on "`date` >> ${SKY130A}_install.log
+
+tools-a: general-a magic-a qflow-a netgen-a klayout-a openlane-a
+
+general-a: ${TECH}.json
+	mkdir -p ${STAGING_PATH}/${SKY130A}/${CONFIG_DIR}
+	rm -f ${STAGING_PATH}/${SKY130A}/${CONFIG_DIR}/nodeinfo.json
+	${CPP} ${SKY130A_DEFS} ${TECH}.json > \
+		${STAGING_PATH}/${SKY130A}/${CONFIG_DIR}/nodeinfo.json
+
+magic-a: ${TECH}.tech ${TECH}gds.tech ${TECH}.magicrc ${TECH}.tcl
+	mkdir -p ${MAGICTOP_STAGING_A}
+	mkdir -p ${MAGIC_STAGING_A}
+	rm -f ${MAGICTOP_STAGING_A}/current
+	rm -f ${MAGIC_STAGING_A}/${SKY130A}.tech
+	rm -f ${MAGIC_STAGING_A}/${SKY130A}-GDS.tech
+	rm -f ${MAGIC_STAGING_A}/${SKY130A}.tcl
+	rm -f ${MAGIC_STAGING_A}/${SKY130A}-BindKeys
+	rm -f ${MAGIC_STAGING_A}/magicrc
+	(cd ${MAGICTOP_STAGING_A} ; ln -s ${REV_DIR} current)
+	cp -rp custom/scripts/seal_ring_generator ${MAGIC_STAGING_A}/.
+	${CPP} ${SKY130A_DEFS} ${TECH}.tech > ${MAGIC_STAGING_A}/${SKY130A}.tech
+	${CPP} ${SKY130A_DEFS} ${TECH}gds.tech > ${MAGIC_STAGING_A}/${SKY130A}-GDS.tech
+	${CPP} ${SKY130A_DEFS} ${TECH}.magicrc > ${MAGIC_STAGING_A}/${SKY130A}.magicrc
+	${CPP} ${SKY130A_DEFS} ../common/pdk.bindkeys > ${MAGIC_STAGING_A}/${SKY130A}-BindKeys
+	${CPP} ${SKY130A_DEFS} ${TECH}.tcl > ${MAGIC_STAGING_A}/${SKY130A}.tcl
+	${CPP} ${SKY130A_DEFS} ../common/pdk.tcl >> ${MAGIC_STAGING_A}/${SKY130A}.tcl
+
+qflow-a: ${TECH}.sh ${TECH}.par
+	mkdir -p ${QFLOWTOP_STAGING_A}
+	mkdir -p ${QFLOW_STAGING_A}
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hd.sh
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hd.par
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hdll.sh
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hdll.par
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hs.sh
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hs.par
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hvl.sh
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}hvl.par
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}ls.sh
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}ls.par
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}lp.sh
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}lp.par
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}ms.sh
+	rm -f ${QFLOW_STAGING_A}/${SKY130A}ms.par
+	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hd ${TECH}.sh > \
+		${QFLOW_STAGING_A}/${SKY130A}hd.sh
+	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hdll ${TECH}.sh > \
+		${QFLOW_STAGING_A}/${SKY130A}hdll.sh
+	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hvl ${TECH}.sh > \
+		${QFLOW_STAGING_A}/${SKY130A}hvl.sh
+	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hs ${TECH}.sh > \
+		${QFLOW_STAGING_A}/${SKY130A}hs.sh
+	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_lp ${TECH}.sh > \
+		${QFLOW_STAGING_A}/${SKY130A}lp.sh
+	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_ls ${TECH}.sh > \
+		${QFLOW_STAGING_A}/${SKY130A}ls.sh
+	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_ms ${TECH}.sh > \
+		${QFLOW_STAGING_A}/${SKY130A}ms.sh
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}hd.par
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}hdll.par
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}hvl.par
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}hs.par
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}ms.par
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}lp.par
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}ls.par
+	${CPP} ${SKY130A_DEFS} ${TECH}.par > ${QFLOW_STAGING_A}/${SKY130A}osu.par
+
+netgen-a: ${TECH}_setup.tcl
+	mkdir -p ${NETGENTOP_STAGING_A}
+	mkdir -p ${NETGEN_STAGING_A}
+	rm -f ${NETGEN_STAGING_A}/${SKY130A}_setup.tcl
+	rm -f ${NETGEN_STAGING_A}/setup.tcl
+	${CPP} ${SKY130A_DEFS} ${TECH}_setup.tcl > ${NETGEN_STAGING_A}/${SKY130A}_setup.tcl
+	(cd ${NETGEN_STAGING_A} ; ln -s ${SKY130A}_setup.tcl setup.tcl)
+
+klayout-a: ${TECH}.lyp ${TECH}.lyt
+	mkdir -p ${KLAYOUTTOP_STAGING_A}
+	mkdir -p ${KLAYOUT_STAGING_A}
+	rm -f ${KLAYOUT_STAGING_A}/${SKY130A}.lyp
+	rm -f ${KLAYOUT_STAGING_A}/${SKY130A}.lyt
+	${CPP} ${SKY130A_DEFS} ${TECH}.lyp > ${KLAYOUT_STAGING_A}/${SKY130A}.lyp
+	${CPP} ${SKY130A_DEFS} ${TECH}.lyt > ${KLAYOUT_STAGING_A}/${SKY130A}.lyt
+
+openlane-a: common_pdn.tcl common_tracks.info config.tcl sky130_fd_sc_hd_config.tcl
+	mkdir -p ${OPENLANETOP_STAGING_A}
+	mkdir -p ${OPENLANE_STAGING_A}
+	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hd
+	rm -f ${OPENLANE_STAGING_A}/common_pdn.info
+	rm -f ${OPENLANE_STAGING_A}/common_tracks.info
+	rm -f ${OPENLANE_STAGING_A}/config.tcl
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/config.tcl
+	${CPP} ${SKY130A_DEFS} common_pdn.tcl > ${OPENLANE_STAGING_A}/common_pdn.tcl
+	${CPP} ${SKY130A_DEFS} common_tracks.info > ${OPENLANE_STAGING_A}/common_tracks.info
+	${CPP} ${SKY130A_DEFS} config.tcl > ${OPENLANE_STAGING_A}/config.tcl
+	${CPP} ${SKY130A_DEFS} sky130_fd_sc_hd_config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/config.tcl
+
+vendor-a:
+	# Install base device models from vendor files
+	# (NOTE: .mod and .pm3 files should not be in /cells/?)
+	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
+		-ngspice sky130_fd_pr_base/v%v/models/* filter=custom/scripts/fixspice.py \
+		-ngspice sky130_fd_pr_base/v%v/cells/*.mod filter=custom/scripts/fixspice.py \
+		-ngspice sky130_fd_pr_base/v%v/cells/*.pm3 filter=custom/scripts/fixspice.py \
+		|& tee -a ${SKY130A}_install.log
+	# Install RF device models from vendor files
+	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
+		-ngspice sky130_fd_pr_rf/v%v/models/* filter=custom/scripts/fixspice.py \
+		|& tee -a ${SKY130A}_install.log
+	# Install additional RF device models from vendor files
+	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
+		-ngspice sky130_fd_pr_rf2/v%v/models/* filter=custom/scripts/fixspice.py \
+		|& tee -a ${SKY130A}_install.log
+	# Install base device library from vendor files
+	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
+		-gds %l/v%v/cells/*/*.gds \
+		-spice %l/v%v/cells/*/*.spice ignore=topography \
+		-spice %l/v%v/cells/*/*.sp \
+		-library primitive sky130_fd_pr_base \
+		-library primitive sky130_fd_pr_rf \
+		-library primitive sky130_fd_pr_rf2 |& tee -a ${SKY130A}_install.log
+	# Install SkyWater I/O pad library
+	# Purposely ignoring "-lef sky130_fd_io/v%v/lef/*.lef" and making our own LEF views
+	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
+		-gds %l/v%v/cells/*/*.gds \
+		-verilog %l/v%v/cells/*/*.v \
+		-lib %l/v%v/cells/*/*.lib \
+		-doc %l/v%v/cells/*/*.doc \
+		-cdl %l/v%v/cells/*/*.cdl ignore=topography \
+		-spice %l/v%v/cells/*/*.spice  \
+		-library general sky130_fd_io |& tee -a ${SKY130A}_install.log
+        # Install all SkyWater digital standard cells.
+	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
+		-spice %l/v%v/cells/*/*.spice compile-only \
+		-cdl %l/v%v/cells/*/*.cdl ignore=topography compile-only \
+		-lef %l/v%v/cells/*/*.lef compile-only \
+		-doc %l/v%v/cells/*/*.pdf \
+		-lib %l/v%v/timing/*.lib \
+		-gds %l/v%v/cells/*/*.gds compile-only \
+		-verilog %l/v%v/cells/*/*.v exclude=*.*.v compile-only \
+		-library digital sky130_fd_sc_hd \
+		-library digital sky130_fd_sc_hdll \
+		-library digital sky130_fd_sc_hvl \
+		-library digital sky130_fd_sc_hs \
+		-library digital sky130_fd_sc_ls \
+		-library digital sky130_fd_sc_ms \
+		-library digital sky130_fd_sc_lp |& tee -a ${SKY130A}_install.log
+	# Install additional model file (efabless)
+	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
+		-ngspice models/*.lib rename ${SKY130A}.lib \
+		|& tee -a ${SKY130A}_install.log
+	# Install custom additions to digital libraries
+	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
+		-techlef techLEF/sky130_fd_sc_hd_tech.lef \
+		-library digital sky130_fd_sc_hd |& tee -a ${SKY130A}_install.log
+	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
+		-techlef techLEF/sky130_fd_sc_hd_tech.lef \
+			rename sky130_fd_sc_hdll_tech.lef \
+		-library digital sky130_fd_sc_hdll |& tee -a ${SKY130A}_install.log
+	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
+		-techlef techLEF/sky130_fd_sc_hs_tech.lef \
+		-library digital sky130_fd_sc_hs |& tee -a ${SKY130A}_install.log
+	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
+		-techlef techLEF/sky130_fd_sc_hs_tech.lef \
+			rename sky130_fd_sc_ms_tech.lef \
+		-library digital sky130_fd_sc_ms |& tee -a ${SKY130A}_install.log
+	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
+		-techlef techLEF/sky130_fd_sc_hs_tech.lef \
+			rename sky130_fd_sc_ls_tech.lef \
+		-library digital sky130_fd_sc_ls |& tee -a ${SKY130A}_install.log
+	# Install custom additions to I/O pad library
+	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
+		-gds %l/gds/*.gds \
+		-verilog %l/verilog/*.v \
+		-lef %l/lef/*.lef \
+		-spice %l/spice/*.spice \
+		-library general sky130_fd_io |& tee -a ${SKY130A}_install.log
+	# Add correct bounding boxes on Magic layouts
+	${ADDPROP} ${STAGING_PATH}/${SKY130A} sky130_fd_io sky130_fd_io_top_gpio_ovtv2 \
+		"FIXED_BBOX 0 407 28000 40000"
+	${ADDPROP} ${STAGING_PATH}/${SKY130A} sky130_fd_io sky130_fd_io_top_xres4v2 \
+		"FIXED_BBOX 0 407 15000 40000"
+
+install: install-local
+
+install-local: install-local-a
+
+install-local-a:
+	echo "Starting SKY130 PDK migration on "`date` > ${SKY130A}_migrate.log
+	${INSTALL} -source ${STAGING_PATH}/${SKY130A} \
+		-target ${LOCAL_PATH}/${SKY130A} \
+		-link_from ${LINK_TARGETS} |& tee -a ${SKY130A}_migrate.log
+	echo "Ended SKY130 PDK migration on "`date` >> ${SKY130A}_migrate.log
+
+install-dist: install-dist-a
+
+install-dist-a:
+	echo "Starting SKY130 PDK migration on "`date` > ${SKY130A}_migrate.log
+	${INSTALL} -source ${STAGING_PATH}/${SKY130A} \
+		-target ${DIST_PATH}/${SKY130A} \
+		-local ${LOCAL_PATH}/${SKY130A} \
+		-link_from ${DIST_LINK_TARGETS} |& tee -a ${SKY130A}_migrate.log
+	echo "Ended SKY130 PDK migration on "`date` >> ${SKY130A}_migrate.log
+
+clean: clean-a
+
+clean-a:
+	${STAGE} -target ${STAGING_PATH}/${SKY130A} -clean
+
+veryclean: veryclean-a
+
+veryclean-a: clean-a
+	${RM} ${SKY130A}_install.log
+	${RM} ${SKY130A}_migrate.log
diff --git a/sky130/README b/sky130/README
new file mode 100644
index 0000000..00b9851
--- /dev/null
+++ b/sky130/README
@@ -0,0 +1,180 @@
+------------------------------------
+open_pdks
+----------------------------------------
+Master PDK generator for SkyWater Sky130
+Hybrid 180nm / 130nm foundry process
+for open source EDA tools
+----------------------------------------
+
+-------------------------------------------------------------------------------
+Prerequisites:
+
+1. Foundry source files:
+
+    Obtain sources for the SkyWater sky130 130nm process from the git repository at
+    the following location:
+
+	 https://github.com/google/skywater-pdk
+
+    This repository may go in any convenient location.  The Makefile suggests
+    the target location ~/projects/foundry/skywater-pdk but any location will
+    do as long as the definition for CYPRESS_PATH in the Makefile is set
+    appropriately.
+
+    So cd to the target location parent directory (e.g., "cd ~/projects/foundry")
+    and run the following command:
+
+	 git clone https://github.com/google/skywater-pdk
+
+    Then follow the instructions below.
+
+2. EDA tools:
+
+    For installing files to use with the Magic layout tool, Magic must be installed.
+    Obtain Magic from:
+
+	https://github.com/RTimothyEdwards/magic
+
+-------------------------------------------------------------------------------
+Installation:
+
+    There are two methods for installation:  Local and Distribution.  Use Local
+    installation if you are installing on a single host computer.  Use Distribution
+    installation if you are installing into a respository (such as git) that will
+    be distributed to multiple hosts.
+
+Step 1:
+
+    Edit the Makefile to set the following definitions for your host system:
+
+	EF_STYLE = Select "1" for an efabless-style file structure, "0"
+			otherwise.  There are only minor differences in
+			these two styles, namely for version tracking of
+			the Magic setup files, and the location of the
+			technology LEF file.
+
+	LINK_TARGETS = "none" or "source".  "none" copies files from the source
+			directories to the target.  "source" makes symbolic links
+			to the source directories.  Use "source" only if doing
+			a local install, and the source foundry data will not
+			be deleted.  For distribution installations, LINK_TARGETS
+			must be set to "none".
+
+	LOCAL_PATH = The path to the target install directory.  This is used
+			in both the local and distribution installations.  For
+			a distribution installation, this is the local name of
+			the path to the PDK after it has been distributed to
+			the host computers.
+
+	DIST_PATH = The path to the location of the installed files prior to
+			distribution.  This will most likely be a git or similar
+			repo.
+
+Step 2:
+	Run:
+
+	    make
+
+	This will pre-process the setup files to create the PDK-specific files
+	for the SKY130A PDK, and process all vendor files, and place everything
+	in a local staging area.
+
+Step 3:
+	For a local install, do:
+
+	    make install-local
+
+	This copies all files from the staging area into the destination
+	as specified by the variable LOCAL_PATH in the Makefile.  All
+	pointers to absolute paths in the files are changed to match
+	LOCAL_PATH.
+
+	For a distribution install, do:
+
+	    make install-dist
+
+	This copies all files from the staging area into the destination
+	as specified by the variable DIST_PATH in the Makefile.  All
+	pointers to absolute paths in the files are changed to match
+	LOCAL_PATH.  The assumption is that DIST_PATH is a repository
+	(such as a git repo) that is cloned to multiple hosts, and
+	the destination on the hosts where it is distributed is
+	LOCAL_PATH.
+
+-------------------------------------------------------------------------------
+Summary:
+
+    The Makefile script takes the source files and generates files for local
+    PDK names "SKY130A", "SKY130B", etc.  (Note there is currently only one
+    PDK variant "A".)
+
+    The definition of each PDK is made in the Makefile using defines; e.g.,
+	-DMETAL5, etc.
+
+    The make script makes use of the python script "preproc.py" (in the ../common
+    directory) to parse each source file for "#ifdef ..."-type macros.  The syntax
+    is similar to that used by the C preprocessor (cpp) but does not assume C
+    language syntax in the input file, so is generally better to use than cpp
+    (has less unexpected/unintentional behavior).  See comments in the preproc.py
+    script for a full list of macros that it accepts (short list: #ifdef, #ifndef,
+    #define, #include, and boolean operators ||, &&, and !). 
+
+    Files generated:
+	.tech		techfile for magic (full DRC, extract, GDS)
+	-GDS.tech	techfile for magic, vendor mask layers
+	.tcl		PDK script for magic
+	-BindKeys	key binding script for magic partly matching Cadence defaults
+	.magicrc	magic startup script (copy to local directory as .magicrc)
+	_setup.tcl	netgen setup script for LVS
+	.sh		qflow master setup script, standard 1.8V digital
+	.par		graywolf setup file, standard 1.8V digital
+
+    The installation directory below LOCAL_PATH is the name of the PDK;  e.g.,
+
+	    sky130A/		5-metal stack with MiM cap and redistribution layer
+
+    The installation directory hierarchy below the PDK name looks like the following:
+
+		libs.tech/		technology and setup files
+
+		    magic/		magic techfiles, startup file, PDK script,
+					and key binding script.
+		    netgen/		netgen setup file
+		    qflow/		qflow scripts and graywolf setup files.
+		    klayout/		setup files for klayout
+		    openlane/		setup files for openlane
+
+		libs.ref/		foundry data
+
+		    cdl/		CDL netlists
+		    doc/		Foundry documentation
+		    gds/		GDS files
+		    lef/		LEF macro files
+		    lib/		Timing files
+		    mag/		Magic files derived from GDS
+		    maglef/		Magic files derived from LEF macros
+		    spice/		SPICE netlists (ngspice compatible)
+		    techlef/		LEF technology files
+		    verilog/		verilog modules
+
+    Each subdirectory of libs.ref is further divided into sections based on the
+    IP type.  The section names are largely foundry-dependent.  For SkyWater Sky130,
+    these sections include one or more of:
+
+			sky130_fd_sc_hd/		1.8V digital logic (high density)
+			sky130_fd_sc_hdll/		1.8V digital logic (high density low leakage)
+			sky130_fd_sc_hs/		1.8V digital logic (low power)
+			sky130_fd_sc_hvl/		1.8V digital logic (low speed)
+			sky130_fd_sc_lp/		1.8V digital logic (medium speed)
+			sky130_fd_sc_ls/		1.8V digital logic (high speed)
+			sky130_fd_sc_ms/		3.3V digital logic
+
+			sky130_fd_io/			Standard I/O
+
+			sky130_fd_pr_base/		Primitive devices w/fixed layout
+			sky130_fd_pr_rf/		RF primitive devices w/fixed layout
+			sky130_fd_pr_rf2/		Additional RF primitive devices w/fixed layout
+
+    The target installation destinations assume the directory structure above.  Changing
+    this requires editing the source files.
+
diff --git a/sky130/common_pdn.tcl b/sky130/common_pdn.tcl
new file mode 100644
index 0000000..9ad2264
--- /dev/null
+++ b/sky130/common_pdn.tcl
@@ -0,0 +1,44 @@
+# Power nets
+set ::power_nets "VDD"
+set ::ground_nets "VSS"
+
+set ::macro_blockage_layer_list "li1 met1 met2 met3 met4 met5"
+
+pdngen::specify_grid stdcell {
+    name grid
+    rails {
+	    met1 {width 0.48 pitch $::env(PLACE_SITE_WIDTH) offset 0}
+    }
+    straps {
+	    met4 {width 1.6 pitch $::env(FP_PDN_VPITCH) offset $::env(FP_PDN_VOFFSET)}
+	    met5 {width 1.6 pitch $::env(FP_PDN_HPITCH) offset $::env(FP_PDN_HOFFSET)}
+    }
+    connect {{met1 met4} {met4 met5}}
+}
+
+pdngen::specify_grid macro {
+    orient {R0 R180 MX MY R90 R270 MXR90 MYR90}
+    power_pins "VDDE"
+    ground_pins "VSSE"
+    blockages "li1 met1 met2 met3 met4 met5" 
+    straps { 
+    } 
+    connect { }
+}
+
+set ::halo 0
+
+# Metal layer for rails on every row
+set ::rails_mlayer "met1" ;
+
+# POWER or GROUND #Std. cell rails starting with power or ground rails at the bottom of the core area
+set ::rails_start_with "POWER" ;
+
+# POWER or GROUND #Upper metal stripes starting with power or ground rails at the left/bottom of the core area
+set ::stripes_start_with "POWER" ;
+
+proc generate_viarules {} {
+}
+
+cd $::env(TMP_DIR)/floorplan
+
diff --git a/sky130/common_tracks.info b/sky130/common_tracks.info
new file mode 100644
index 0000000..948dbd2
--- /dev/null
+++ b/sky130/common_tracks.info
@@ -0,0 +1,12 @@
+li1 X 0.23 0.46
+li1 Y 0.17 0.34
+met1 X 0.17 0.34
+met1 Y 0.17 0.34
+met2 X 0.23 0.46
+met2 Y 0.23 0.46
+met3 X 0.34 0.68
+met3 Y 0.34 0.68
+met4 X 0.46 0.92
+met4 Y 0.46 0.92
+met5 X 1.70 3.40
+met5 Y 1.70 3.40
diff --git a/sky130/config.tcl b/sky130/config.tcl
new file mode 100644
index 0000000..d34b05f
--- /dev/null
+++ b/sky130/config.tcl
@@ -0,0 +1,31 @@
+# Process node
+set ::env(PROCESS) 130
+set ::env(DEF_UNITS_PER_MICRON) 1000
+
+
+# Placement site for core cells
+# This can be found in the technology lef
+set ::env(PLACE_SITE) "unithd"
+set ::env(PLACE_SITE_WIDTH) 0.460
+set ::env(PLACE_SITE_HEIGHT) 2.720
+
+set ::env(VDD_PIN) "vpwr"
+set ::env(GND_PIN) "vgnd"
+
+# Track information for generating DEF tracks
+set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/common_tracks.info"
+
+
+# Technology LEF
+set ::env(TECH_LEF) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/techLEF/$::env(PDK_VARIANT)/$::env(PDK_VARIANT)_tech.lef"
+set ::env(CELLS_LEF) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lef/$::env(PDK_VARIANT)/*.lef"]
+set ::env(MAGIC_TECH_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/current/EFS8A.tech"
+set ::env(MAGIC_MAGICRC) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/current/EFS8A.magicrc"
+set ::env(GPIO_PADS_LEF) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lef/s8iom0s8/routing_abstract/*.lef"]
+
+# netgen setup
+set ::env(NETGEN_SETUP_FILE) $::env(PDK_ROOT)/$::env(PDK)/libs.tech/netgen/$::env(PDK)_setup.tcl 
+# CTS luts
+set ::env(CTS_TECH_DIR) "N/A"
+
+set ::env(FP_TAPCELL_DIST) 20
diff --git a/sky130/custom/models/sky130.lib b/sky130/custom/models/sky130.lib
new file mode 100644
index 0000000..04c51ed
--- /dev/null
+++ b/sky130/custom/models/sky130.lib
@@ -0,0 +1,170 @@
+******* SkyWater s8 model library *********
+* Typical corner (tt)
+.lib tt
+* MOSFET
+.inc "./sky130_fd_pr_base__nshort_tt.cor"
+.inc "./sky130_fd_pr_base__nlowvt_tt.cor"
+.inc "./sky130_fd_pr_base__pshort_tt.cor"
+.inc "./sky130_fd_pr_base__ntvnative_tt.cor"
+.inc "./sky130_fd_pr_base__nhvnative_tt.cor"
+.inc "./sky130_fd_pr_base__nshortesd_tt.cor"
+.inc "./sky130_fd_pr_base__plowvt_tt.cor"
+.inc "./sky130_fd_pr_base__phighvt_tt.cor"
+.inc "./sky130_fd_pr_base__phvesd_tt.cor"
+.inc "./sky130_fd_pr_base__phv_tt.cor"
+.inc "./sky130_fd_pr_base__pvhv_tt.cor"
+.inc "./sky130_fd_pr_base__nhv_tt.cor"
+.inc "./sky130_fd_pr_base__nvhv_tt_discrete.cor"
+.inc "./sky130_fd_pr_base__nhvesd_tt.cor"
+.inc "./sky130_fd_pr_base__tt_nonfet.cor"
+* Mismatch parameters
+.inc "./sky130_fd_pr_base__nshort_mm.cor"
+.inc "./sky130_fd_pr_base__pshort_mm.cor"
+.inc "./sky130_fd_pr_base__nlowvt_mm.cor"
+.inc "./sky130_fd_pr_base__plowvt_mm.cor"
+.inc "./sky130_fd_pr_base__phighvt_mm.cor"
+.inc "./sky130_fd_pr_base__nhv_mm.cor"
+.inc "./sky130_fd_pr_base__phv_mm.cor"
+.inc "./sky130_fd_pr_base__nhvnative_mm.cor"
+.inc "./sky130_fd_pr_base__ntvnative_mm.cor"
+* All models
+.inc "models.all"
+* Corner
+.include "ttrf.cor"
+.endl
+
+* Slow-Fast corner (sf)
+.lib sf
+* MOSFET
+.inc "./sky130_fd_pr_base__nshort_sf.cor"
+.inc "./sky130_fd_pr_base__nlowvt_sf.cor"
+.inc "./sky130_fd_pr_base__pshort_sf.cor"
+.inc "./sky130_fd_pr_base__ntvnative_sf.cor"
+.inc "./sky130_fd_pr_base__nhvnative_sf.cor"
+.inc "./sky130_fd_pr_base__nshortesd_sf.cor"
+.inc "./sky130_fd_pr_base__plowvt_sf.cor"
+.inc "./sky130_fd_pr_base__phighvt_sf.cor"
+.inc "./sky130_fd_pr_base__phvesd_sf.cor"
+.inc "./sky130_fd_pr_base__phv_sf.cor"
+.inc "./sky130_fd_pr_base__pvhv_sf.cor"
+.inc "./sky130_fd_pr_base__nhv_sf.cor"
+.inc "./sky130_fd_pr_base__nvhv_sf_discrete.cor"
+.inc "./sky130_fd_pr_base__nhvesd_sf.cor"
+.inc "./sky130_fd_pr_base__sf_nonfet.cor"
+* Mismatch parameters
+.inc "./sky130_fd_pr_base__nshort_mm.cor"
+.inc "./sky130_fd_pr_base__pshort_mm.cor"
+.inc "./sky130_fd_pr_base__nlowvt_mm.cor"
+.inc "./sky130_fd_pr_base__plowvt_mm.cor"
+.inc "./sky130_fd_pr_base__phighvt_mm.cor"
+.inc "./sky130_fd_pr_base__nhv_mm.cor"
+.inc "./sky130_fd_pr_base__phv_mm.cor"
+.inc "./sky130_fd_pr_base__nhvnative_mm.cor"
+.inc "./sky130_fd_pr_base__ntvnative_mm.cor"
+* All models
+.inc "models.all"
+* Corner
+.include "sfrf.cor"
+.endl
+
+* Fast-Fast corner (ff)
+.lib ff
+* MOSFET
+.inc "./sky130_fd_pr_base__nshort_ff.cor"
+.inc "./sky130_fd_pr_base__nlowvt_ff.cor"
+.inc "./sky130_fd_pr_base__pshort_ff.cor"
+.inc "./sky130_fd_pr_base__ntvnative_ff.cor"
+.inc "./sky130_fd_pr_base__nhvnative_ff.cor"
+.inc "./sky130_fd_pr_base__nshortesd_ff.cor"
+.inc "./sky130_fd_pr_base__plowvt_ff.cor"
+.inc "./sky130_fd_pr_base__phighvt_ff.cor"
+.inc "./sky130_fd_pr_base__phvesd_ff.cor"
+.inc "./sky130_fd_pr_base__phv_ff.cor"
+.inc "./sky130_fd_pr_base__pvhv_ff.cor"
+.inc "./sky130_fd_pr_base__nhv_ff.cor"
+.inc "./sky130_fd_pr_base__nvhv_ff_discrete.cor"
+.inc "./sky130_fd_pr_base__nhvesd_ff.cor"
+.inc "./sky130_fd_pr_base__ff_nonfet.cor"
+* Mismatch parameters
+.inc "./sky130_fd_pr_base__nshort_mm.cor"
+.inc "./sky130_fd_pr_base__pshort_mm.cor"
+.inc "./sky130_fd_pr_base__nlowvt_mm.cor"
+.inc "./sky130_fd_pr_base__plowvt_mm.cor"
+.inc "./sky130_fd_pr_base__phighvt_mm.cor"
+.inc "./sky130_fd_pr_base__nhv_mm.cor"
+.inc "./sky130_fd_pr_base__phv_mm.cor"
+.inc "./sky130_fd_pr_base__nhvnative_mm.cor"
+.inc "./sky130_fd_pr_base__ntvnative_mm.cor"
+* All models
+.inc "models.all"
+* Corner
+.include "ffrf.cor"
+.endl
+
+* Slow-Slow corner (ss)
+.lib ss
+* MOSFET
+.inc "./sky130_fd_pr_base__nshort_ss.cor"
+.inc "./sky130_fd_pr_base__nlowvt_ss.cor"
+.inc "./sky130_fd_pr_base__pshort_ss.cor"
+.inc "./sky130_fd_pr_base__ntvnative_ss.cor"
+.inc "./sky130_fd_pr_base__nhvnative_ss.cor"
+.inc "./sky130_fd_pr_base__nshortesd_ss.cor"
+.inc "./sky130_fd_pr_base__plowvt_ss.cor"
+.inc "./sky130_fd_pr_base__phighvt_ss.cor"
+.inc "./sky130_fd_pr_base__phvesd_ss.cor"
+.inc "./sky130_fd_pr_base__phv_ss.cor"
+.inc "./sky130_fd_pr_base__pvhv_ss.cor"
+.inc "./sky130_fd_pr_base__nhv_ss.cor"
+.inc "./sky130_fd_pr_base__nvhv_ss_discrete.cor"
+.inc "./sky130_fd_pr_base__nhvesd_ss.cor"
+.inc "./sky130_fd_pr_base__ss_nonfet.cor"
+* Mismatch parameters
+.inc "./sky130_fd_pr_base__nshort_mm.cor"
+.inc "./sky130_fd_pr_base__pshort_mm.cor"
+.inc "./sky130_fd_pr_base__nlowvt_mm.cor"
+.inc "./sky130_fd_pr_base__plowvt_mm.cor"
+.inc "./sky130_fd_pr_base__phighvt_mm.cor"
+.inc "./sky130_fd_pr_base__nhv_mm.cor"
+.inc "./sky130_fd_pr_base__phv_mm.cor"
+.inc "./sky130_fd_pr_base__nhvnative_mm.cor"
+.inc "./sky130_fd_pr_base__ntvnative_mm.cor"
+* All models
+.inc "models.all"
+* Corner
+.include "ssrf.cor"
+.endl
+
+* Fast-Slow corner (fs)
+.lib fs
+* MOSFET
+.inc "./sky130_fd_pr_base__nshort_fs.cor"
+.inc "./sky130_fd_pr_base__nlowvt_fs.cor"
+.inc "./sky130_fd_pr_base__pshort_fs.cor"
+.inc "./sky130_fd_pr_base__ntvnative_fs.cor"
+.inc "./sky130_fd_pr_base__nhvnative_fs.cor"
+.inc "./sky130_fd_pr_base__nshortesd_fs.cor"
+.inc "./sky130_fd_pr_base__plowvt_fs.cor"
+.inc "./sky130_fd_pr_base__phighvt_fs.cor"
+.inc "./sky130_fd_pr_base__phvesd_fs.cor"
+.inc "./sky130_fd_pr_base__phv_fs.cor"
+.inc "./sky130_fd_pr_base__pvhv_fs.cor"
+.inc "./sky130_fd_pr_base__nhv_fs.cor"
+.inc "./sky130_fd_pr_base__nvhv_fs_discrete.cor"
+.inc "./sky130_fd_pr_base__nhvesd_fs.cor"
+.inc "./sky130_fd_pr_base__fs_nonfet.cor"
+* Mismatch parameters
+.inc "./sky130_fd_pr_base__nshort_mm.cor"
+.inc "./sky130_fd_pr_base__pshort_mm.cor"
+.inc "./sky130_fd_pr_base__nlowvt_mm.cor"
+.inc "./sky130_fd_pr_base__plowvt_mm.cor"
+.inc "./sky130_fd_pr_base__phighvt_mm.cor"
+.inc "./sky130_fd_pr_base__nhv_mm.cor"
+.inc "./sky130_fd_pr_base__phv_mm.cor"
+.inc "./sky130_fd_pr_base__nhvnative_mm.cor"
+.inc "./sky130_fd_pr_base__ntvnative_mm.cor"
+* All models
+.inc "models.all"
+* Corner
+.include "fsrf.cor"
+.endl
diff --git a/sky130/custom/scripts/fixspice.py b/sky130/custom/scripts/fixspice.py
new file mode 100755
index 0000000..92cca88
--- /dev/null
+++ b/sky130/custom/scripts/fixspice.py
@@ -0,0 +1,96 @@
+#!/bin/env python3
+#
+# fixspice ---
+#
+# This script fixes problems in the SkyWater SPICE models.  This should be
+# made obsolete by the forthcoming set of models from the foundry, but the
+# script will get the original set working with ngspice.
+#
+# This script is a filter to be run by setting the name of this script as
+# the value to "filter=" for the model install in the s8 Makefile.
+
+import re
+import os
+import sys
+
+def filter(inname, outname):
+
+    # Read input
+    try:
+        with open(inname, 'r') as inFile:
+            spitext = inFile.read()
+            # (Don't) unwrap continuation lines
+            # spilines = spitext.replace('\n+', ' ').splitlines()
+            spilines = spitext.splitlines()
+    except:
+        print('fixspice.py: failed to open ' + fnmIn + ' for reading.', file=sys.stderr)
+        return 1
+
+    # Process input with regexp
+
+    fixedlines = []
+    modified = False
+
+    for line in spilines:
+
+        # Fix 1:  ngspice does not understand the syntax used for the dev/gauss lines,
+        #  so remove them.
+        fixedline = re.sub('dev/gauss[ \t]*=.*$', '', line)
+
+        # Fix 2: Remove references to *_dlc_rotweak
+        # fixedline = re.sub('\+[ \t]*[^ \t_]+_dlc_rotweak', '', fixedline)
+
+        # Fix 2: Remove references to *_[a,p]junction_mult
+        # fixedline = re.sub('\*[ \t]*[^ \t_]+_[ap]junction_mult', '', fixedline)
+
+        fixedlines.append(fixedline)
+        if fixedline != line:
+            modified = True
+
+    # Write output
+    if outname == None:
+        for i in fixedlines:
+            print(i)
+    else:
+        # If the output is a symbolic link but no modifications have been made,
+        # then leave it alone.  If it was modified, then remove the symbolic
+        # link before writing.
+        if os.path.islink(outname):
+            if not modified:
+                return 0
+            else:
+                os.unlink(outname)
+        try:
+            with open(outname, 'w') as outFile:
+                for i in fixedlines:
+                    print(i, file=outFile)
+        except:
+            print('fixspice.py: failed to open ' + outname + ' for writing.', file=sys.stderr)
+            return 1
+
+
+if __name__ == '__main__':
+
+    # This script expects to get one or two arguments.  One argument is
+    # mandatory and is the input file.  The other argument is optional and
+    # is the output file.  The output file and input file may be the same
+    # name, in which case the original input is overwritten.
+
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item[1:])
+        else:
+            arguments.append(item)
+
+    if len(arguments) > 0:
+        infilename = arguments[0]
+
+    if len(arguments) > 1:
+        outfilename = arguments[1]
+    else:
+        outfilename = None
+
+    result = filter(infilename, outfilename)
+    sys.exit(result)
diff --git a/sky130/custom/scripts/seal_ring_generator/.magicrc b/sky130/custom/scripts/seal_ring_generator/.magicrc
new file mode 100644
index 0000000..2a18665
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/.magicrc
@@ -0,0 +1,3 @@
+scalegrid 1 10
+tech load s8seal_ring.tech
+drc off
diff --git a/sky130/custom/scripts/seal_ring_generator/README b/sky130/custom/scripts/seal_ring_generator/README
new file mode 100644
index 0000000..af48894
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/README
@@ -0,0 +1,37 @@
+# This directory contains a seal ring generator for SkyWater s8 using magic.
+# Because the seal ring contains many layers that do not appear in standard
+# layout editing, they are all specially implemented in the s8seal_ring.tech
+# file in this directory.
+#
+# An example seal ring was generated by SkyWater and imported using magic's
+# gdsquery.sh script.  It was then hand-edited to contain only the bottom
+# quarter.  Then it was saved in .mag databases.
+#
+# The generator script s8_gen_sealring.py calls magic using the s8seal_ring.tech
+# file, and automatically modifies the geometry to stretch to the half width
+# and height of the specified dimensions.  Then the lower-left cells are
+# copied and folded over the centerline to make the complete seal ring.
+# The seal ring is then written out in GDS format.  Then a simplified magic
+# view is generated in the usual user-facing s8 technology file, with the
+# GDS_FILE property pointing to the seal ring GDS.  This layout and GDS can
+# then be imported into a layout.
+#
+# Usage:
+#
+#   s8_gen_sealring.py width height target_dir [-force] [-outer]
+#
+# Where:
+#   width = the full-chip layout width
+#   height = the full-chip layout height
+#   target_dir = location of the full-chip layout
+#
+#   -force = overwrite existing files in the target directory
+#   -outer = width and height represent the seal ring outer edge, not the chip area
+#
+# Results:
+#   Files advSeal_6u_gen.mag and advSeal_6um_gen.gds are generated and placed in
+#   target_dir.  advSeal_6u_gen.mag is an "abstract" view that represents the
+#   seal ring in diffusion and the nikon cross in metal1, and references
+#   the advSeal_6um_gen.gds file in the same directory as a GDS_FILE property.
+#
+
diff --git a/sky130/custom/scripts/seal_ring_generator/generate_gds.tcl b/sky130/custom/scripts/seal_ring_generator/generate_gds.tcl
new file mode 100644
index 0000000..9aedf7b
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/generate_gds.tcl
@@ -0,0 +1,10 @@
+# Tcl script input to magic to generate seal ring GDS
+tech load s8seal_ring -noprompt
+drc off
+load advSeal_6um_gen
+select top cell
+expand
+cif *hier write disable
+cif *array write disable
+gds write advSeal_6um_gen
+quit
diff --git a/sky130/custom/scripts/seal_ring_generator/nikon_sealring_shape.mag b/sky130/custom/scripts/seal_ring_generator/nikon_sealring_shape.mag
new file mode 100644
index 0000000..caf7cc9
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/nikon_sealring_shape.mag
@@ -0,0 +1,130 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< checkpaint >>
+rect 0 0 400 400
+<< type21 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type22 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type23 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type27 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type28 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type30 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type32 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type34 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type35 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type36 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type40 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type41 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type43 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type44 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type46 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type50 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type51 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type56 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type58 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type59 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type88 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type96 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type97 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+<< type98 >>
+rect 175 225 225 320
+rect 80 175 320 225
+rect 175 80 225 175
+use sr_polygon00006  sr_polygon00006_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 400 400
+use sr_polygon00005  sr_polygon00005_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 400 400
+use sr_polygon00004  sr_polygon00004_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 400 400
+use sr_polygon00003  sr_polygon00003_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 400 400
+use sr_polygon00002  sr_polygon00002_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 400 400
+use sr_polygon00001  sr_polygon00001_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 400 400
+use sr_polygon00007  sr_polygon00007_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 400 400
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/s8_gen_sealring.py b/sky130/custom/scripts/seal_ring_generator/s8_gen_sealring.py
new file mode 100755
index 0000000..d1c3761
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/s8_gen_sealring.py
@@ -0,0 +1,349 @@
+#!/bin/env python3
+#-------------------------------------------------------------------------
+# s8_gen_sealring.py ---  a seal ring generator for SkyWater s8 using magic.
+#
+# Because the seal ring contains many layers that do not appear in standard
+# layout editing, they are all specially implemented in the s8seal_ring.tech
+# file in this directory.
+#
+# An example seal ring was generated by SkyWater and imported using magic's
+# gdsquery.sh script.  It was then hand-edited to contain only the bottom
+# quarter.  Then it was saved in .mag databases.
+#
+# The generator script s8_gen_sealring.py calls magic using the s8seal_ring.tech
+# file, and automatically modifies the geometry to stretch to the half width
+# and height of the specified dimensions.  Then the lower-left cells are
+# copied and folded over the centerline to make the complete seal ring.
+# The seal ring is then written out in GDS format.  Then a simplified magic
+# view is generated in the usual user-facing s8 technology file, with the
+# GDS_FILE property pointing to the seal ring GDS.  This layout and GDS can
+# then be imported into a layout.
+#
+# Usage:
+#
+#   s8_gen_sealring.py width height target_dir [-force] [-outer] [-keep]
+#
+# Where:
+#   width = the full-chip layout width
+#   height = the full-chip layout height
+#   target_dir = location of the full-chip layout
+#
+#   -force = overwrite any existing files at the target
+#   -outer = width and height are the seal ring outer edge, not the chip area
+#   -keep = keep local working directory of results
+#
+# Results:
+#   Files advSeal_6um_gen.mag and advSeal_6um_gen.gds are generated and placed in
+#   target_dir.  advSeal_6um_gen.mag is an "abstract" view that represents the
+#   seal ring in diffusion and the nikon cross in metal1, and references
+#   the advSeal_6um_gen.gds file in the same directory as a GDS_FILE property.
+#-------------------------------------------------------------------------
+
+import subprocess
+import shutil
+import sys
+import os
+import re
+
+def generate_sealring(width, height, target_dir, force, keep):
+
+    # All files of interest are listed below.
+
+    script = 'generate_gds.tcl'
+    tech = 's8seal_ring.tech'
+    corner = 'seal_ring_corner.mag'
+    abstract = 'seal_ring_corner_abstract.mag'
+    slots = 'sealring_slots.mag'
+    array = 'seal_ring_slots_array.mag'
+    nikon = 'nikon_sealring_shape.mag'
+    polygons = ['sr_polygon00007.mag',
+	    'sr_polygon00027.mag', 'sr_polygon00011.mag', 'sr_polygon00028.mag',
+	    'sr_polygon00001.mag', 'sr_polygon00015.mag', 'sr_polygon00031.mag',
+	    'sr_polygon00002.mag', 'sr_polygon00016.mag', 'sr_polygon00032.mag',
+	    'sr_polygon00003.mag', 'sr_polygon00019.mag', 'sr_polygon00035.mag',
+	    'sr_polygon00004.mag', 'sr_polygon00020.mag', 'sr_polygon00036.mag',
+	    'sr_polygon00005.mag', 'sr_polygon00023.mag', 'sr_polygon00039.mag',
+	    'sr_polygon00006.mag', 'sr_polygon00024.mag']
+
+
+    # Create temporary directory
+    if os.path.exists('temp'):
+        print('temp/ directory exists.  Please remove it before running.')
+        sys.exit(0)
+
+    os.makedirs('temp')
+    os.chdir('temp')
+
+    # Copy all .mag files, .magicrc file, and s8seal_ring.tech file to temp/
+    files_to_copy = polygons[:]
+    files_to_copy.append(nikon)
+    files_to_copy.append(slots)
+    files_to_copy.append(array)
+    files_to_copy.append(corner)
+    files_to_copy.append(abstract)
+    files_to_copy.append(tech)
+    files_to_copy.append(script)
+
+    for file in files_to_copy:
+        shutil.copy('../' + file, '.')
+
+    # Seal ring is placed 6um outside of the chip, so add 12um to width and height
+    fwidth = float(width) + 12
+    fheight = float(height) + 12
+
+    dbhwidth = int(fwidth * 100)
+    dbhheight = int(fheight * 100)
+
+    swidth = str(dbhwidth)
+    sheight = str(dbhheight)
+
+    swidthx5 = str(dbhwidth * 5)
+
+    dwidth = str(int(fwidth * 200))
+    dheight = str(int(fheight * 200))
+
+    # Modify every polygon to half width and height
+
+    for file in polygons:
+        with open(file, 'r') as ifile:
+            maglines = ifile.read().splitlines()
+
+        with open(file, 'w') as ofile:
+            for line in maglines:
+                newline = re.sub('51200', swidth, line)
+                newline = re.sub('51210', sheight, newline)
+                # NOTE: polygon 39 is at scale 10, not 2, due to
+                # corner positions of 45 degree angled geometry.
+                newline = re.sub('256000', swidthx5, newline)
+                print(newline, file=ofile)
+
+    # Abstract corner view gets the same treatment
+
+    qwidth = str(int(fwidth * 50))
+    qheight = str(int(fheight * 50))
+
+    with open(abstract, 'r') as ifile:
+        maglines = ifile.read().splitlines()
+
+    with open(abstract, 'w') as ofile:
+        for line in maglines:
+            newline = re.sub('25600', qwidth, line)
+            newline = re.sub('25605', qheight, newline)
+            print(newline, file=ofile)
+
+    # Slots arrays are recalculated to span the width and height
+
+    with open(array, 'r') as ifile:
+        maglines = ifile.read().splitlines()
+
+    slotsX = False
+    with open(array, 'w') as ofile:
+        for line in maglines:
+            newline = line
+            if 'slots_X' in line:
+                slotsX = True
+            elif 'array 0' in line:
+                if slotsX:
+                    nslots = int((fwidth - 25.0) / 25.0) - 1
+                    newline = 'array 0 ' + str(nslots) + ' 5000 0 0 430'
+                else:
+                    nslots = int((fheight - 25.0) / 25.0) - 1
+                    newline = 'array 0 ' + str(nslots) + ' 5000 0 0 430'
+
+            print(newline, file=ofile)
+
+    # Corner cell changes bounding boxes to half width and height.
+
+    with open(corner, 'r') as ifile:
+        maglines = ifile.read().splitlines()
+
+    slotsX = False
+    with open(corner, 'w') as ofile:
+        for line in maglines:
+            newline = re.sub('51200', swidth, line)
+            newline = re.sub('51210', sheight, newline)
+            print(newline, file=ofile)
+
+    # Create a new top-level layout called 'advSeal_6um_gen.mag'
+    # Mirrors uses in X and Y, and adds slots arrays at lower left
+    # and upper right
+
+    with open('advSeal_6um_gen.mag', 'w') as ofile:
+        print('magic', file=ofile)
+        print('tech s8seal_ring', file=ofile)
+        print('magscale 1 2', file=ofile)
+        print('timestamp 1584630000', file=ofile)
+
+        # Lower left original
+        print('use seal_ring_corner seal_ring_corner_0', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform 1 0 0 0 1 0', file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Mirrored in X
+        print('use seal_ring_corner seal_ring_corner_3', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform -1 0 ' + dwidth + ' 0 1 0', file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+	
+        # Mirrored in Y
+        print('use seal_ring_corner seal_ring_corner_1', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform 1 0 0 0 -1 ' + dheight, file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Mirrored in both X and Y 
+        print('use seal_ring_corner seal_ring_corner_2', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform -1 0 ' + dwidth + ' 0 -1 ' + dheight, file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Lower left slot arrays (bottom and left sides slots)
+        print('use seal_ring_slots_array seal_ring_slots_array_0', file=ofile)
+        print('timestamp 1584629764', file=ofile)
+        print('transform 1 0 0 0 1 0', file=ofile)
+        print('box 285 285 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Upper right slot arrays (top and right sides slots)
+        print('use seal_ring_slots_array seal_ring_slots_array_1', file=ofile)
+        print('timestamp 1584629764', file=ofile)
+        print('transform -1 0 ' + dwidth + ' 0 -1 ' + dheight, file=ofile)
+        print('box 285 285 ' + swidth + ' ' + sheight, file=ofile)
+
+        print('<< end >>', file=ofile)
+    
+    # Create a new abstract layout TO BE called 'advSeal_6um_gen.mag'
+    # This is the view in technology EFS8A.  Since there is already
+    # a cell with this name that is used to generate GDS, the cell
+    # will be called "seal_ring.mag" and copied to "advSeal_6um_gen.mag"
+    # in the target directory.
+
+    xwidth = str(dbhwidth)
+    xheight = str(dbhheight)
+
+    with open('seal_ring.mag', 'w') as ofile:
+        print('magic', file=ofile)
+        print('tech EFS8A', file=ofile)
+        print('timestamp 1584566829', file=ofile)
+
+        # Lower left original
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_0', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform 1 0 0 0 1 0', file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+
+        # Mirrored in X
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_3', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform -1 0 ' + xwidth + ' 0 1 0', file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+	
+        # Mirrored in Y
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_1', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform 1 0 0 0 -1 ' + xheight, file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+
+        # Mirrored in both X and Y 
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_2', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform -1 0 ' + xwidth + ' 0 -1 ' + xheight, file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+
+        print('<< properties >>', file=ofile)
+        print('string LEFview no_prefix', file=ofile)
+        print('string GDS_FILE advSeal_6um_gen.gds', file=ofile)
+        print('string GDS_START 0', file=ofile)
+        print('string FIXED_BBOX 0 0 ' + swidth + ' ' + sheight, file=ofile)
+
+        print('<< end >>', file=ofile)
+
+    # Create the GDS of the seal ring
+
+    mproc = subprocess.run(['magic', '-dnull', '-noconsole',
+	    'generate_gds.tcl'],
+	    stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+	    stderr = subprocess.PIPE, universal_newlines = True)
+    if mproc.stdout:
+        for line in mproc.stdout.splitlines():
+            print(line)
+    if mproc.stderr:
+        print('Error message output from magic:')
+        for line in mproc.stderr.splitlines():
+            print(line)
+    if mproc.returncode != 0:
+        print('ERROR:  Magic exited with status ' + str(mproc.returncode))
+
+    # Copy the GDS file and the abstract view to the target directory
+
+    os.chdir('..')
+
+    if not os.path.exists(target_dir):
+        os.makedirs(target_dir)
+
+    print('Installing files to ' + target_dir)
+    if force or not os.path.exists(target_dir + '/advSeal_6um_gen.gds'):
+        shutil.copy('temp/advSeal_6um_gen.gds', target_dir)
+    else:
+        print('ERROR: advSeal_6um_gen.gds already exists at target!  Use -force to overwrite.')
+    if force or not os.path.exists(target_dir + '/advSeal_6um_gen.mag'):
+        shutil.copy('temp/seal_ring.mag', target_dir + '/advSeal_6um_gen.mag')
+    else:
+        print('ERROR: advSeal_6um_gen.mag already exists at target!  Use -force to overwrite.')
+    if force or not os.path.exists(target_dir + '/seal_ring_corner_abstract.mag'):
+        shutil.copy('temp/seal_ring_corner_abstract.mag', target_dir)
+    else:
+        print('ERROR: seal_ring_corner_abstract.mag already exists at target!  Use -force to overwrite.')
+    
+    # Remove the temporary directory and its contents
+
+    if not keep:
+        shutil.rmtree('temp')
+    else:
+        print('Retaining generated files in temp/ directory')
+
+    # Done!
+    print('Done generating files advSeal_6um_gen.gds and advSeal_6um_gen.mag in ' + target_dir)
+    print('Place the seal ring cell in the final layout at (0um, 0um) before generating GDS.')
+    print('The top level layout minus seal ring must have a lower left corner of (6um, 6um)')
+
+# If called as main, run generate_sealring()
+
+if __name__ == '__main__':
+
+    # Divide up command line into options and arguments
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    force = True if '-force' in options else False
+    keep = True if '-keep' in options else False
+    outer = True if '-outer' in options else False
+
+    # Need one argument:  path to verilog netlist
+    # If two arguments, then 2nd argument is the output file.
+
+    if len(arguments) == 3:
+        width = arguments[0]
+        height = arguments[1]
+        target_dir = arguments[2]
+
+        # Seal ring is 12um thick, so if "outer" option is used, subtract 12um
+        # from both width and height.
+        if outer:
+            width = str(float(width) - 12.0)
+            height = str(float(height) - 12.0)
+
+        generate_sealring(width, height, target_dir, force, keep)
+    else:
+        print("Usage:  s8_gen_sealring.py <width> <height> <target_dir> [options]")
+        print("Options:")
+        print("   -outer : Width and height are seal ring outer edge, not chip area")
+        print("   -force : Overwrite any existing files at <target_dir>")
+        print("   -keep :  Keep generated files in temp/ directory")
+    
+
diff --git a/sky130/custom/scripts/seal_ring_generator/s8seal_ring.tech b/sky130/custom/scripts/seal_ring_generator/s8seal_ring.tech
new file mode 100644
index 0000000..e5d37f3
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/s8seal_ring.tech
@@ -0,0 +1,506 @@
+tech
+   30
+   s8seal_ring
+end
+
+version
+   version 0.0
+   description "Auto-generated techfile for unknown GDS read-in"
+end
+
+planes
+   plane11
+   plane20
+   plane21
+   plane22
+   plane23
+   plane25
+   plane27
+   plane28
+   plane30
+   plane32
+   plane34
+   plane35
+   plane36
+   plane37
+   plane39
+   plane40
+   plane41
+   plane43
+   plane44
+   plane46
+   plane48
+   plane49
+   plane50
+   plane51
+   plane56
+   plane58
+   plane59
+   plane61
+   plane65
+   plane81
+   plane88
+   plane96
+   plane97
+   plane98
+end
+
+types
+   plane11 type11
+   plane20 type20
+   plane21 type21
+   plane22 type22
+   plane22 type22_22
+   plane23 type23
+   plane25 type25
+   plane27 type27
+   plane28 type28
+   plane30 type30
+   plane32 type32
+   plane34 type34
+   plane35 type35
+   plane36 type36
+   plane37 type37
+   plane39 type39
+   plane40 type40
+   plane41 type41
+   plane43 type43
+   plane44 type44
+   plane46 type46
+   plane48 type48
+   plane49 type49
+   plane50 type50
+   plane51 type51
+   plane56 type56
+   plane58 type58
+   plane59 type59
+   plane61 type61_20
+   plane65 type65_20
+   plane81 type81_1
+   plane81 type81_51
+   plane81 type81_52
+   plane88 type88
+   plane96 type96
+   plane97 type97
+   plane98 type98
+end 
+
+contact
+end
+
+styles
+   styletype mos
+   type11 polysilicon
+   type20 ndiffusion
+   type21 pdiffusion
+   type22 capacitor
+   type22_22 metal1
+   type23 metal2
+   type25 metal3
+   type27 metal4
+   type28 metal5
+   type30 metal6
+   type32 metal7
+   type34 metal8
+   type35 metal9
+   type36 implant1
+   type37 implant2
+   type39 implant3
+   type40 implant4
+   type41 ntransistor
+   type43 ptransistor
+   type44 electrode
+   type46 poly_light
+   type48 mvndiff
+   type49 hvndiff
+   type50 ncontact
+   type51 mvpdiff
+   type56 hvpdiff
+   type58 pcontact
+   type59 poly_resist
+   type61_20 metal10
+   type65_20 mems
+   type81_1 cwell
+   type81_51 cwellnsc
+   type81_52 highvolt_nwell
+   type88 highvolt_pwell
+   type96 nwell
+   type97 pwell
+   type98 poly_light
+end
+
+compose
+end
+
+connect
+end
+
+cifoutput
+style generic
+   scalefactor 1
+
+   layer GDS11 type11
+   labels type11
+   calma 11 0
+
+   layer GDS20 type20
+   labels type20
+   calma 20 0
+
+   layer GDS21 type21
+   labels type21
+   calma 21 0
+
+   layer GDS22 type22
+   labels type22
+   calma 22 0
+
+   layer GDS22_22 type22_22
+   labels type22_22
+   calma 22 22
+
+   layer GDS23 type23
+   labels type23
+   calma 23 0
+
+   layer GDS25 type25
+   labels type25
+   calma 25 0
+
+   layer GDS27 type27
+   labels type27
+   calma 27 0
+
+   layer GDS28 type28
+   labels type28
+   calma 28 0
+
+   layer GDS30 type30
+   labels type30
+   calma 30 0
+
+   layer GDS32 type32
+   labels type32
+   calma 32 0
+
+   layer GDS34 type34
+   labels type34
+   calma 34 0
+
+   layer GDS35 type35
+   labels type35
+   calma 35 0
+
+   layer GDS36 type36
+   labels type36
+   calma 36 0
+
+   layer GDS37 type37
+   labels type37
+   calma 37 0
+
+   layer GDS39 type39
+   labels type39
+   calma 39 0
+
+   layer GDS40 type40
+   labels type40
+   calma 40 0
+
+   layer GDS41 type41
+   labels type41
+   calma 41 0
+
+   layer GDS43 type43
+   labels type43
+   calma 43 0
+
+   layer GDS44 type44
+   labels type44
+   calma 44 0
+
+   layer GDS46 type46
+   labels type46
+   calma 46 0
+
+   layer GDS48 type48
+   labels type48
+   calma 48 0
+
+   layer GDS49 type49
+   labels type49
+   calma 49 0
+
+   layer GDS50 type50
+   labels type50
+   calma 50 0
+
+   layer GDS51 type51
+   labels type51
+   calma 51 0
+
+   layer GDS56 type56
+   labels type56
+   calma 56 0
+
+   layer GDS58 type58
+   labels type58
+   calma 58 0
+
+   layer GDS59 type59
+   labels type59
+   calma 59 0
+
+   layer GDS61_20 type61_20
+   labels type61_20
+   calma 61 20
+
+   layer GDS65_20 type65_20
+   labels type65_20
+   calma 65 20
+
+   layer GDS81_1 type81_1
+   labels type81_1
+   calma 81 1
+
+   layer GDS81_51 type81_51
+   labels type81_51
+   calma 81 51
+
+   layer GDS81_52 type81_52
+   labels type81_52
+   calma 81 52
+
+   layer GDS88 type88
+   labels type88
+   calma 88 0
+
+   layer GDS96 type96
+   labels type96
+   calma 96 0
+
+   layer GDS97 type97
+   labels type97
+   calma 97 0
+
+   layer GDS98 type98
+   labels type98
+   calma 98 0
+
+end
+
+cifinput
+style generic
+   scalefactor 1
+
+   layer type11 GDS11
+   labels GDS11
+
+   layer type20 GDS20
+   labels GDS20
+
+   layer type21 GDS21
+   labels GDS21
+
+   layer type22 GDS22
+   labels GDS22
+
+   layer type22_22 GDS22_22
+   labels GDS22_22
+
+   layer type23 GDS23
+   labels GDS23
+
+   layer type25 GDS25
+   labels GDS25
+
+   layer type27 GDS27
+   labels GDS27
+
+   layer type28 GDS28
+   labels GDS28
+
+   layer type30 GDS30
+   labels GDS30
+
+   layer type32 GDS32
+   labels GDS32
+
+   layer type34 GDS34
+   labels GDS34
+
+   layer type35 GDS35
+   labels GDS35
+
+   layer type36 GDS36
+   labels GDS36
+
+   layer type37 GDS37
+   labels GDS37
+
+   layer type39 GDS39
+   labels GDS39
+
+   layer type40 GDS40
+   labels GDS40
+
+   layer type41 GDS41
+   labels GDS41
+
+   layer type43 GDS43
+   labels GDS43
+
+   layer type44 GDS44
+   labels GDS44
+
+   layer type46 GDS46
+   labels GDS46
+
+   layer type48 GDS48
+   labels GDS48
+
+   layer type49 GDS49
+   labels GDS49
+
+   layer type50 GDS50
+   labels GDS50
+
+   layer type51 GDS51
+   labels GDS51
+
+   layer type56 GDS56
+   labels GDS56
+
+   layer type58 GDS58
+   labels GDS58
+
+   layer type59 GDS59
+   labels GDS59
+
+   layer type61_20 GDS61_20
+   labels GDS61_20
+
+   layer type65_20 GDS65_20
+   labels GDS65_20
+
+   layer type81_1 GDS81_1
+   labels GDS81_1
+
+   layer type81_51 GDS81_51
+   labels GDS81_51
+
+   layer type81_52 GDS81_52
+   labels GDS81_52
+
+   layer type88 GDS88
+   labels GDS88
+
+   layer type96 GDS96
+   labels GDS96
+
+   layer type97 GDS97
+   labels GDS97
+
+   layer type98 GDS98
+   labels GDS98
+
+   calma GDS11 11 0
+   calma GDS20 20 0
+   calma GDS21 21 0
+   calma GDS22 22 0
+   calma GDS22_22 22 22
+   calma GDS23 23 0
+   calma GDS25 25 0
+   calma GDS27 27 0
+   calma GDS28 28 0
+   calma GDS30 30 0
+   calma GDS32 32 0
+   calma GDS34 34 0
+   calma GDS35 35 0
+   calma GDS36 36 0
+   calma GDS37 37 0
+   calma GDS39 39 0
+   calma GDS40 40 0
+   calma GDS41 41 0
+   calma GDS43 43 0
+   calma GDS44 44 0
+   calma GDS46 46 0
+   calma GDS48 48 0
+   calma GDS49 49 0
+   calma GDS50 50 0
+   calma GDS51 51 0
+   calma GDS56 56 0
+   calma GDS58 58 0
+   calma GDS59 59 0
+   calma GDS61_20 61 20
+   calma GDS65_20 65 20
+   calma GDS81_1 81 1
+   calma GDS81_51 81 51
+   calma GDS81_52 81 52
+   calma GDS88 88 0
+   calma GDS96 96 0
+   calma GDS97 97 0
+   calma GDS98 98 0
+end
+
+# mzrouter
+# end
+
+drc
+end
+
+extract
+style generic
+   cscale 1
+   lambda 1
+   step 10
+   sidehalo 0
+
+  planeorder plane11 0
+  planeorder plane20 1
+  planeorder plane21 2
+  planeorder plane22 3
+  planeorder plane23 4
+  planeorder plane25 5
+  planeorder plane27 6
+  planeorder plane28 7
+  planeorder plane30 8
+  planeorder plane32 9
+  planeorder plane34 10
+  planeorder plane35 11
+  planeorder plane36 12
+  planeorder plane37 13
+  planeorder plane39 14
+  planeorder plane40 15
+  planeorder plane41 16
+  planeorder plane43 17
+  planeorder plane44 18
+  planeorder plane46 19
+  planeorder plane48 20
+  planeorder plane49 21
+  planeorder plane50 22
+  planeorder plane51 23
+  planeorder plane56 24
+  planeorder plane58 25
+  planeorder plane59 26
+  planeorder plane61 27
+  planeorder plane65 28
+  planeorder plane81 29
+  planeorder plane88 30
+  planeorder plane96 31
+  planeorder plane97 32
+  planeorder plane98 33
+end
+
+# wiring
+# end
+
+# router
+# end
+
+# plowing
+# end
+
+plot
+  style pnm
+end
diff --git a/sky130/custom/scripts/seal_ring_generator/seal_ring_corner.mag b/sky130/custom/scripts/seal_ring_generator/seal_ring_corner.mag
new file mode 100644
index 0000000..e15ffc8
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/seal_ring_corner.mag
@@ -0,0 +1,68 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584562315
+<< type81_52 >>
+rect 0 20320 20320 51210
+rect 0 0 51200 20320
+use sr_polygon00028  sr_polygon00028_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 650 2369 710 51210
+use sr_polygon00024  sr_polygon00024_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 530 2319 590 51210
+use sr_polygon00020  sr_polygon00020_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 410 2269 470 51210
+use sr_polygon00016  sr_polygon00016_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 290 2219 350 51210
+use sr_polygon00032  sr_polygon00032_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 0 2099 1000 51210
+use sr_polygon00031  sr_polygon00031_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 650 650 51200 2394
+use sr_polygon00027  sr_polygon00027_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 530 530 51200 2344
+use sr_polygon00023  sr_polygon00023_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 410 410 51200 2294
+use sr_polygon00019  sr_polygon00019_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 290 290 51200 2244
+use nikon_sealring_shape  nikon_sealring_shape_0
+timestamp 1584558468
+transform 1 0 200 0 1 200
+box 0 0 800 800
+use sr_polygon00036  sr_polygon00036_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 0 0 1200 51210
+use sr_polygon00015  sr_polygon00015_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box 0 0 2099 2099
+use sr_polygon00035  sr_polygon00035_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 0 0 51200 2514
+use sr_polygon00039  sr_polygon00039_0
+timestamp 1584558827
+transform 1 0 0 0 1 0
+box 0 0 51200 2597
+use sr_polygon00011  sr_polygon00011_0
+timestamp 1584558468
+transform 1 0 0 0 1 0
+box -30480 -30480 30480 30480
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/seal_ring_corner_abstract.mag b/sky130/custom/scripts/seal_ring_generator/seal_ring_corner_abstract.mag
new file mode 100644
index 0000000..1477b9c
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/seal_ring_corner_abstract.mag
@@ -0,0 +1,27 @@
+magic
+tech EFS8A
+timestamp 1584566221
+<< psubstratepdiff >>
+rect 145 1110 355 25605
+tri 145 900 355 1110 ne
+tri 355 900 652 1197 sw
+tri 355 652 603 900 ne
+rect 603 652 652 900
+tri 652 652 900 900 sw
+tri 603 355 900 652 ne
+tri 900 355 1197 652 sw
+tri 900 145 1110 355 ne
+rect 1110 145 25600 355
+<< locali >>
+tri 100 383 217 500 se
+rect 217 383 383 500
+tri 383 383 500 500 sw
+rect 100 217 500 383
+tri 100 100 217 217 ne
+rect 217 100 383 217
+tri 383 100 500 217 nw
+<< metal1 >>
+rect 275 325 325 420
+rect 180 275 420 325
+rect 275 180 325 275
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/seal_ring_slots_array.mag b/sky130/custom/scripts/seal_ring_generator/seal_ring_slots_array.mag
new file mode 100644
index 0000000..f38f77c
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/seal_ring_slots_array.mag
@@ -0,0 +1,15 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584629764
+use sealring_slots  sealring_slots_Y
+array 0 7 5000 0 0 430
+timestamp 1584628639
+transform 0 -1 1000 1 0 -7000
+box 9500 285 12200 715
+use sealring_slots  sealring_slots_X
+array 0 7 5000 0 0 430
+timestamp 1584628639
+transform 1 0 -7000 0 1 0
+box 9500 285 12200 715
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sealring_slots.mag b/sky130/custom/scripts/seal_ring_generator/sealring_slots.mag
new file mode 100644
index 0000000..c3ee669
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sealring_slots.mag
@@ -0,0 +1,13 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584628639
+<< checkpaint >>
+rect 6900 285 7100 355
+rect 9500 285 9700 355
+<< type22_22 >>
+rect 12000 645 12200 715
+rect 9500 525 9700 595
+rect 12000 405 12200 475
+rect 9500 285 9700 355
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00001.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00001.mag
new file mode 100644
index 0000000..e7c32b8
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00001.mag
@@ -0,0 +1,21 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< type48 >>
+tri 0 283 117 400 se
+rect 117 320 283 400
+rect 117 283 175 320
+rect 0 225 175 283
+rect 225 283 283 320
+tri 283 283 400 400 sw
+rect 225 225 400 283
+rect 0 175 80 225
+rect 320 175 400 225
+rect 0 117 175 175
+tri 0 0 117 117 ne
+rect 117 80 175 117
+rect 225 117 400 175
+rect 225 80 283 117
+rect 117 0 283 80
+tri 283 0 400 117 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00002.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00002.mag
new file mode 100644
index 0000000..51355fa
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00002.mag
@@ -0,0 +1,21 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< type25 >>
+tri 0 283 117 400 se
+rect 117 320 283 400
+rect 117 283 175 320
+rect 0 225 175 283
+rect 225 283 283 320
+tri 283 283 400 400 sw
+rect 225 225 400 283
+rect 0 175 80 225
+rect 320 175 400 225
+rect 0 117 175 175
+tri 0 0 117 117 ne
+rect 117 80 175 117
+rect 225 117 400 175
+rect 225 80 283 117
+rect 117 0 283 80
+tri 283 0 400 117 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00003.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00003.mag
new file mode 100644
index 0000000..7c2dd29
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00003.mag
@@ -0,0 +1,21 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< type20 >>
+tri 0 283 117 400 se
+rect 117 320 283 400
+rect 117 283 175 320
+rect 0 225 175 283
+rect 225 283 283 320
+tri 283 283 400 400 sw
+rect 225 225 400 283
+rect 0 175 80 225
+rect 320 175 400 225
+rect 0 117 175 175
+tri 0 0 117 117 ne
+rect 117 80 175 117
+rect 225 117 400 175
+rect 225 80 283 117
+rect 117 0 283 80
+tri 283 0 400 117 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00004.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00004.mag
new file mode 100644
index 0000000..7721108
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00004.mag
@@ -0,0 +1,21 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< type39 >>
+tri 0 283 117 400 se
+rect 117 320 283 400
+rect 117 283 175 320
+rect 0 225 175 283
+rect 225 283 283 320
+tri 283 283 400 400 sw
+rect 225 225 400 283
+rect 0 175 80 225
+rect 320 175 400 225
+rect 0 117 175 175
+tri 0 0 117 117 ne
+rect 117 80 175 117
+rect 225 117 400 175
+rect 225 80 283 117
+rect 117 0 283 80
+tri 283 0 400 117 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00005.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00005.mag
new file mode 100644
index 0000000..27e8081
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00005.mag
@@ -0,0 +1,21 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< type11 >>
+tri 0 283 117 400 se
+rect 117 320 283 400
+rect 117 283 175 320
+rect 0 225 175 283
+rect 225 283 283 320
+tri 283 283 400 400 sw
+rect 225 225 400 283
+rect 0 175 80 225
+rect 320 175 400 225
+rect 0 117 175 175
+tri 0 0 117 117 ne
+rect 117 80 175 117
+rect 225 117 400 175
+rect 225 80 283 117
+rect 117 0 283 80
+tri 283 0 400 117 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00006.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00006.mag
new file mode 100644
index 0000000..8b44cb9
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00006.mag
@@ -0,0 +1,21 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< type49 >>
+tri 0 283 117 400 se
+rect 117 320 283 400
+rect 117 283 175 320
+rect 0 225 175 283
+rect 225 283 283 320
+tri 283 283 400 400 sw
+rect 225 225 400 283
+rect 0 175 80 225
+rect 320 175 400 225
+rect 0 117 175 175
+tri 0 0 117 117 ne
+rect 117 80 175 117
+rect 225 117 400 175
+rect 225 80 283 117
+rect 117 0 283 80
+tri 283 0 400 117 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00007.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00007.mag
new file mode 100644
index 0000000..89547c6
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00007.mag
@@ -0,0 +1,21 @@
+magic
+tech s8seal_ring
+timestamp 1584558468
+<< type37 >>
+tri 0 283 117 400 se
+rect 117 320 283 400
+rect 117 283 175 320
+rect 0 225 175 283
+rect 225 283 283 320
+tri 283 283 400 400 sw
+rect 225 225 400 283
+rect 0 175 80 225
+rect 320 175 400 225
+rect 0 117 175 175
+tri 0 0 117 117 ne
+rect 117 80 175 117
+rect 225 117 400 175
+rect 225 80 283 117
+rect 117 0 283 80
+tri 283 0 400 117 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00011.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00011.mag
new file mode 100644
index 0000000..47854ae
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00011.mag
@@ -0,0 +1,99 @@
+magic
+tech s8seal_ring
+magscale 1 10
+timestamp 1584558468
+<< type81_51 >>
+tri -14938 151666 0 152400 se
+tri 0 151666 14938 152400 sw
+tri -29732 149472 -14938 151666 se
+rect -14938 149472 14938 151666
+tri 14938 149472 29732 151666 sw
+tri -44239 145838 -29732 149472 se
+rect -29732 145838 29732 149472
+tri 29732 145838 44239 149472 sw
+tri -58321 140799 -44239 145838 se
+rect -44239 140799 44239 145838
+tri 44239 140799 58321 145838 sw
+tri -71841 134405 -58321 140799 se
+rect -58321 134405 58321 140799
+tri 58321 134405 71841 140799 sw
+tri -84669 126716 -71841 134405 se
+rect -71841 126716 71841 134405
+tri 71841 126716 84669 134405 sw
+tri -96682 117807 -84669 126716 se
+rect -84669 117807 84669 126716
+tri 84669 117807 96682 126716 sw
+tri -107763 107763 -96682 117807 se
+rect -96682 107763 96682 117807
+tri 96682 107763 107763 117807 sw
+tri -117807 96682 -107763 107763 se
+rect -107763 96682 107763 107763
+tri 107763 96682 117807 107763 sw
+tri -126716 84669 -117807 96682 se
+rect -117807 84669 117807 96682
+tri 117807 84669 126716 96682 sw
+tri -134405 71841 -126716 84669 se
+rect -126716 71841 126716 84669
+tri 126716 71841 134405 84669 sw
+tri -140799 58321 -134405 71841 se
+rect -134405 58321 134405 71841
+tri 134405 58321 140799 71841 sw
+tri -145838 44239 -140799 58321 se
+rect -140799 44239 140799 58321
+tri 140799 44239 145838 58321 sw
+tri -149472 29732 -145838 44239 se
+rect -145838 29732 145838 44239
+tri 145838 29732 149472 44239 sw
+tri -151666 14938 -149472 29732 se
+rect -149472 14938 149472 29732
+tri 149472 14938 151666 29732 sw
+tri -152400 0 -151666 14938 se
+tri -152400 -14938 -151666 0 ne
+rect -151666 -14938 151666 14938
+tri 151666 0 152400 14938 sw
+tri 151666 -14938 152400 0 nw
+tri -151666 -29732 -149472 -14938 ne
+rect -149472 -29732 149472 -14938
+tri 149472 -29732 151666 -14938 nw
+tri -149472 -44239 -145838 -29732 ne
+rect -145838 -44239 145838 -29732
+tri 145838 -44239 149472 -29732 nw
+tri -145838 -58321 -140799 -44239 ne
+rect -140799 -58321 140799 -44239
+tri 140799 -58321 145838 -44239 nw
+tri -140799 -71841 -134405 -58321 ne
+rect -134405 -71841 134405 -58321
+tri 134405 -71841 140799 -58321 nw
+tri -134405 -84669 -126716 -71841 ne
+rect -126716 -84669 126716 -71841
+tri 126716 -84669 134405 -71841 nw
+tri -126716 -96682 -117807 -84669 ne
+rect -117807 -96682 117807 -84669
+tri 117807 -96682 126716 -84669 nw
+tri -117807 -107763 -107763 -96682 ne
+rect -107763 -107763 107763 -96682
+tri 107763 -107763 117807 -96682 nw
+tri -107763 -117807 -96682 -107763 ne
+rect -96682 -117807 96682 -107763
+tri 96682 -117807 107763 -107763 nw
+tri -96682 -126716 -84669 -117807 ne
+rect -84669 -126716 84669 -117807
+tri 84669 -126716 96682 -117807 nw
+tri -84669 -134405 -71841 -126716 ne
+rect -71841 -134405 71841 -126716
+tri 71841 -134405 84669 -126716 nw
+tri -71841 -140799 -58321 -134405 ne
+rect -58321 -140799 58321 -134405
+tri 58321 -140799 71841 -134405 nw
+tri -58321 -145838 -44239 -140799 ne
+rect -44239 -145838 44239 -140799
+tri 44239 -145838 58321 -140799 nw
+tri -44239 -149472 -29732 -145838 ne
+rect -29732 -149472 29732 -145838
+tri 29732 -149472 44239 -145838 nw
+tri -29732 -151666 -14938 -149472 ne
+rect -14938 -151666 14938 -149472
+tri 14938 -151666 29732 -149472 nw
+tri -14938 -152400 0 -151666 ne
+tri 0 -152400 14938 -151666 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00015.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00015.mag
new file mode 100644
index 0000000..d91c7fb
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00015.mag
@@ -0,0 +1,15 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558468
+<< type37 >>
+tri 0 1000 1099 2099 sw
+rect 0 200 200 1000
+tri 200 766 434 1000 nw
+tri 766 766 1000 1000 ne
+tri 200 200 434 434 sw
+tri 766 200 1000 434 se
+rect 1000 200 1099 1000
+rect 0 0 1099 200
+tri 1099 0 2099 1000 sw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00016.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00016.mag
new file mode 100644
index 0000000..7aa89fc
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00016.mag
@@ -0,0 +1,8 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+rect 290 2244 350 51210
+tri 290 2219 350 2244 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00019.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00019.mag
new file mode 100644
index 0000000..b316735
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00019.mag
@@ -0,0 +1,55 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+tri 290 2219 350 2244 se
+tri 350 2219 375 2244 sw
+tri 290 2134 375 2219 ne
+tri 375 2134 460 2219 sw
+tri 375 2049 460 2134 ne
+tri 460 2049 545 2134 sw
+tri 460 1964 545 2049 ne
+tri 545 1964 630 2049 sw
+tri 545 1879 630 1964 ne
+tri 630 1879 715 1964 sw
+tri 630 1794 715 1879 ne
+tri 715 1794 800 1879 sw
+tri 715 1709 800 1794 ne
+tri 800 1709 885 1794 sw
+tri 800 1624 885 1709 ne
+tri 885 1624 970 1709 sw
+tri 885 1539 970 1624 ne
+tri 970 1539 1055 1624 sw
+tri 970 1454 1055 1539 ne
+tri 1055 1454 1140 1539 sw
+tri 1055 1369 1140 1454 ne
+tri 1140 1369 1225 1454 sw
+tri 1140 1284 1225 1369 ne
+tri 1225 1284 1310 1369 sw
+tri 1225 1199 1310 1284 ne
+tri 1310 1199 1395 1284 sw
+tri 1310 1114 1395 1199 ne
+tri 1395 1114 1480 1199 sw
+tri 1395 1029 1480 1114 ne
+tri 1480 1029 1565 1114 sw
+tri 1480 944 1565 1029 ne
+tri 1565 944 1650 1029 sw
+tri 1565 859 1650 944 ne
+tri 1650 859 1735 944 sw
+tri 1650 774 1735 859 ne
+tri 1735 774 1820 859 sw
+tri 1735 689 1820 774 ne
+tri 1820 689 1905 774 sw
+tri 1820 604 1905 689 ne
+tri 1905 604 1990 689 sw
+tri 1905 519 1990 604 ne
+tri 1990 519 2075 604 sw
+tri 1990 434 2075 519 ne
+tri 2075 434 2160 519 sw
+tri 2075 349 2160 434 ne
+tri 2160 350 2244 434 sw
+rect 2160 349 51200 350
+tri 2160 290 2219 349 ne
+rect 2219 290 51200 349
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00020.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00020.mag
new file mode 100644
index 0000000..9e328f8
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00020.mag
@@ -0,0 +1,8 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+rect 410 2294 470 51210
+tri 410 2269 470 2294 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00023.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00023.mag
new file mode 100644
index 0000000..fe8335d
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00023.mag
@@ -0,0 +1,54 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+tri 410 2269 470 2294 se
+tri 470 2269 495 2294 sw
+tri 410 2184 495 2269 ne
+tri 495 2184 580 2269 sw
+tri 495 2099 580 2184 ne
+tri 580 2099 665 2184 sw
+tri 580 2014 665 2099 ne
+tri 665 2014 750 2099 sw
+tri 665 1929 750 2014 ne
+tri 750 1929 835 2014 sw
+tri 750 1844 835 1929 ne
+tri 835 1844 920 1929 sw
+tri 835 1759 920 1844 ne
+tri 920 1759 1005 1844 sw
+tri 920 1674 1005 1759 ne
+tri 1005 1674 1090 1759 sw
+tri 1005 1589 1090 1674 ne
+tri 1090 1589 1175 1674 sw
+tri 1090 1504 1175 1589 ne
+tri 1175 1504 1260 1589 sw
+tri 1175 1419 1260 1504 ne
+tri 1260 1419 1345 1504 sw
+tri 1260 1334 1345 1419 ne
+tri 1345 1334 1430 1419 sw
+tri 1345 1249 1430 1334 ne
+tri 1430 1249 1515 1334 sw
+tri 1430 1164 1515 1249 ne
+tri 1515 1164 1600 1249 sw
+tri 1515 1079 1600 1164 ne
+tri 1600 1079 1685 1164 sw
+tri 1600 994 1685 1079 ne
+tri 1685 994 1770 1079 sw
+tri 1685 909 1770 994 ne
+tri 1770 909 1855 994 sw
+tri 1770 824 1855 909 ne
+tri 1855 824 1940 909 sw
+tri 1855 739 1940 824 ne
+tri 1940 739 2025 824 sw
+tri 1940 654 2025 739 ne
+tri 2025 654 2110 739 sw
+tri 2025 569 2110 654 ne
+tri 2110 569 2195 654 sw
+tri 2110 484 2195 569 ne
+tri 2195 484 2280 569 sw
+tri 2195 410 2269 484 ne
+rect 2269 470 2280 484
+tri 2280 470 2294 484 sw
+rect 2269 410 51200 470
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00024.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00024.mag
new file mode 100644
index 0000000..eb9f364
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00024.mag
@@ -0,0 +1,8 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+rect 530 2344 590 51210
+tri 530 2319 590 2344 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00027.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00027.mag
new file mode 100644
index 0000000..c6d2ad1
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00027.mag
@@ -0,0 +1,53 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+tri 530 2319 590 2344 se
+tri 590 2319 615 2344 sw
+tri 530 2234 615 2319 ne
+tri 615 2234 700 2319 sw
+tri 615 2149 700 2234 ne
+tri 700 2149 785 2234 sw
+tri 700 2064 785 2149 ne
+tri 785 2064 870 2149 sw
+tri 785 1979 870 2064 ne
+tri 870 1979 955 2064 sw
+tri 870 1894 955 1979 ne
+tri 955 1894 1040 1979 sw
+tri 955 1809 1040 1894 ne
+tri 1040 1809 1125 1894 sw
+tri 1040 1724 1125 1809 ne
+tri 1125 1724 1210 1809 sw
+tri 1125 1639 1210 1724 ne
+tri 1210 1639 1295 1724 sw
+tri 1210 1554 1295 1639 ne
+tri 1295 1554 1380 1639 sw
+tri 1295 1469 1380 1554 ne
+tri 1380 1469 1465 1554 sw
+tri 1380 1384 1465 1469 ne
+tri 1465 1384 1550 1469 sw
+tri 1465 1299 1550 1384 ne
+tri 1550 1299 1635 1384 sw
+tri 1550 1214 1635 1299 ne
+tri 1635 1214 1720 1299 sw
+tri 1635 1129 1720 1214 ne
+tri 1720 1129 1805 1214 sw
+tri 1720 1044 1805 1129 ne
+tri 1805 1044 1890 1129 sw
+tri 1805 959 1890 1044 ne
+tri 1890 959 1975 1044 sw
+tri 1890 874 1975 959 ne
+tri 1975 874 2060 959 sw
+tri 1975 789 2060 874 ne
+tri 2060 789 2145 874 sw
+tri 2060 704 2145 789 ne
+tri 2145 704 2230 789 sw
+tri 2145 619 2230 704 ne
+tri 2230 619 2315 704 sw
+tri 2230 534 2315 619 ne
+tri 2315 590 2344 619 sw
+rect 2315 534 51200 590
+tri 2315 530 2319 534 ne
+rect 2319 530 51200 534
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00028.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00028.mag
new file mode 100644
index 0000000..3db918a
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00028.mag
@@ -0,0 +1,8 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+rect 650 2394 710 51210
+tri 650 2369 710 2394 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00031.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00031.mag
new file mode 100644
index 0000000..1eb8648
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00031.mag
@@ -0,0 +1,51 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type65_20 >>
+tri 650 2369 710 2394 se
+tri 710 2369 735 2394 sw
+tri 650 2284 735 2369 ne
+tri 735 2284 820 2369 sw
+tri 735 2199 820 2284 ne
+tri 820 2199 905 2284 sw
+tri 820 2114 905 2199 ne
+tri 905 2114 990 2199 sw
+tri 905 2029 990 2114 ne
+tri 990 2029 1075 2114 sw
+tri 990 1944 1075 2029 ne
+tri 1075 1944 1160 2029 sw
+tri 1075 1859 1160 1944 ne
+tri 1160 1859 1245 1944 sw
+tri 1160 1774 1245 1859 ne
+tri 1245 1774 1330 1859 sw
+tri 1245 1689 1330 1774 ne
+tri 1330 1689 1415 1774 sw
+tri 1330 1604 1415 1689 ne
+tri 1415 1604 1500 1689 sw
+tri 1415 1519 1500 1604 ne
+tri 1500 1519 1585 1604 sw
+tri 1500 1434 1585 1519 ne
+tri 1585 1434 1670 1519 sw
+tri 1585 1349 1670 1434 ne
+tri 1670 1349 1755 1434 sw
+tri 1670 1264 1755 1349 ne
+tri 1755 1264 1840 1349 sw
+tri 1755 1179 1840 1264 ne
+tri 1840 1179 1925 1264 sw
+tri 1840 1094 1925 1179 ne
+tri 1925 1094 2010 1179 sw
+tri 1925 1009 2010 1094 ne
+tri 2010 1009 2095 1094 sw
+tri 2010 924 2095 1009 ne
+tri 2095 924 2180 1009 sw
+tri 2095 839 2180 924 ne
+tri 2180 839 2265 924 sw
+tri 2180 754 2265 839 ne
+tri 2265 754 2350 839 sw
+tri 2265 669 2350 754 ne
+tri 2350 710 2394 754 sw
+rect 2350 669 51200 710
+tri 2350 650 2369 669 ne
+rect 2369 650 51200 669
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00032.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00032.mag
new file mode 100644
index 0000000..395db17
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00032.mag
@@ -0,0 +1,8 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type61_20 >>
+rect 0 2514 1000 51210
+tri 0 2099 1000 2514 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00035.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00035.mag
new file mode 100644
index 0000000..934e4e1
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00035.mag
@@ -0,0 +1,13 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type61_20 >>
+tri 0 2099 1000 2514 se
+tri 1000 2099 1415 2514 sw
+tri 0 684 1415 2099 ne
+tri 1415 1000 2514 2099 sw
+rect 1415 684 51200 1000
+tri 1415 0 2099 684 ne
+rect 2099 0 51200 684
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00036.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00036.mag
new file mode 100644
index 0000000..7e944a4
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00036.mag
@@ -0,0 +1,8 @@
+magic
+tech s8seal_ring
+magscale 1 2
+timestamp 1584558827
+<< type81_1 >>
+rect 0 2597 1200 51210
+tri 0 0 1200 2597 nw
+<< end >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00039.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00039.mag
new file mode 100644
index 0000000..24dfe83
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00039.mag
@@ -0,0 +1,10 @@
+magic
+tech s8seal_ring
+magscale 1 10
+timestamp 1584558827
+<< type81_1 >>
+tri 2772 6000 6000 12985 se
+tri 6000 6000 12985 12985 sw
+tri 0 0 2772 5999 se
+rect 2772 0 256000 6000
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/README b/sky130/custom/sky130_fd_io/README
new file mode 100644
index 0000000..edffb27
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/README
@@ -0,0 +1,20 @@
+This directory contains standard format files for "power_pads_lib",
+which is an efabless addendum to the SkyWater I/O library "s8iom0".
+
+power_pads_lib does the following:
+
+(1) Changes the orientation of the corner pad from upper-right to
+    lower-left with a wrapper cell called "s8iom0_corner_pad".  Also
+    extends the power buses to make the dimensions of the corner pad
+    multiples of 1um.
+
+(2) Adds a 1um-wide spacer cell to complement the existing 5um-wide
+    spacer cell.
+
+(3) Adds wrappers for all the combinations of power pad base cell +
+    power pad overlay, to create all 12 combinations, for pads with
+    either high- or low-voltage clamps, connecting to one of the six
+    power domains vddio, vdda, vccd, vssio, vssa, or vssd.
+
+"power_pads_lib" is open source copyright 2019 efabless, Inc.
+Released under Apache 2.0 license
diff --git a/sky130/custom/sky130_fd_io/cdl/power_pads_lib.cdl b/sky130/custom/sky130_fd_io/cdl/power_pads_lib.cdl
new file mode 100644
index 0000000..538405f
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/cdl/power_pads_lib.cdl
@@ -0,0 +1,92 @@
+* Power pads library (s8 power pads + overlays)
+* Includes corner and fill cell subcircuits
+
+.SUBCKT s8iom0_vdda_hvc_pad
++ amuxbus_a amuxbus_b drn_hvc src_bdy_hvc
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vdda_lvc_pad
++ amuxbus_a amuxbus_b drn_lvc1 drn_lvc2 src_bdy_lvc1 src_bdy_lvc2
++ bdy2_b2b vssi
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vddio_hvc_pad
++ amuxbus_a amuxbus_b drn_hvc src_bdy_hvc
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vddio_lvc_pad
++ amuxbus_a amuxbus_b drn_lvc1 drn_lvc2 src_bdy_lvc1 src_bdy_lvc2
++ bdy2_b2b vssi
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vccd_hvc_pad
++ amuxbus_a amuxbus_b drn_hvc src_bdy_hvc
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vccd_lvc_pad
++ amuxbus_a amuxbus_b drn_lvc1 drn_lvc2 src_bdy_lvc1 src_bdy_lvc2
++ bdy2_b2b vssi
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vssa_hvc_pad
++ amuxbus_a amuxbus_b drn_hvc src_bdy_hvc
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vssa_lvc_pad
++ amuxbus_a amuxbus_b drn_lvc1 drn_lvc2 src_bdy_lvc1 src_bdy_lvc2
++ bdy2_b2b vssi
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vssio_hvc_pad
++ amuxbus_a amuxbus_b drn_hvc src_bdy_hvc
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vssio_lvc_pad
++ amuxbus_a amuxbus_b drn_lvc1 drn_lvc2 src_bdy_lvc1 src_bdy_lvc2
++ bdy2_b2b vssi
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vssd_hvc_pad
++ amuxbus_a amuxbus_b drn_hvc src_bdy_hvc
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_vssd_lvc_pad
++ amuxbus_a amuxbus_b drn_lvc1 drn_lvc2 src_bdy_lvc1 src_bdy_lvc2
++ bdy2_b2b vssi
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_corner_pad
++ amuxbus_a amuxbus_b 
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0s8_com_bus_slice
++ amuxbus_a amuxbus_b
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0s8_com_bus_slice_1um
++ amuxbus_a amuxbus_b
++ vssa vdda vswitch vddio_q vcchib vddio vccd vssio vssd vssio_q
+.ENDS
+
+.SUBCKT s8iom0_gpiov2_pad
++ in_h pad_a_noesd_h pad_a_esd_0_h pad_a_esd_1_h
++ pad dm<2> dm<1> dm<0> hld_h_n in inp_dis ib_mode_sel enable_h enable_vdda_h
++ enable_inp_h oe_n tie_hi_esd tie_lo_esd slow vtrip_sel hld_ovr
++ analog_en analog_sel enable_vddio enable_vswitch_h analog_pol out
++ amuxbus_a amuxbus_b vssa vdda vswitch vddio_q vcchib vddio vccd vssio
++ vssd vssio_q
+.ENDS
diff --git a/sky130/custom/sky130_fd_io/gds/power_pads_lib.gds b/sky130/custom/sky130_fd_io/gds/power_pads_lib.gds
new file mode 100644
index 0000000..da0dc4d
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/gds/power_pads_lib.gds
Binary files differ
diff --git a/sky130/custom/sky130_fd_io/lef/power_pads_lib.lef b/sky130/custom/sky130_fd_io/lef/power_pads_lib.lef
new file mode 100644
index 0000000..1ff3c03
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/lef/power_pads_lib.lef
@@ -0,0 +1,5391 @@
+VERSION 5.3 ;
+   NAMESCASESENSITIVE ON ;
+   NOWIREEXTENSIONATPIN ON ;
+   DIVIDERCHAR "/" ;
+   BUSBITCHARS "[]" ;
+UNITS
+   DATABASE MICRONS 1000 ;
+END UNITS
+
+MACRO s8iom0_gpiov2_pad
+   CLASS PAD INOUT ;
+   FOREIGN s8iom0_gpiov2_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 80.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 36.4400 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 38.7600 51.0900 80.0000 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 52.1450 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 54.4650 46.3300 80.0000 49.3100 ;
+      END
+   END amuxbus_b
+   PIN analog_en
+      PORT
+         LAYER met1 ;
+	    RECT 62.4300 -2.0350 62.6900 -0.7300 ;
+      END
+   END analog_en
+   PIN analog_pol
+      PORT
+         LAYER met3 ;
+	    RECT 45.8650 -2.0350 46.1950 34.7700 ;
+      END
+   END analog_pol
+   PIN analog_sel
+      PORT
+         LAYER met2 ;
+	    RECT 30.7500 -2.0350 31.0100 0.2300 ;
+      END
+   END analog_sel
+   PIN dm<2>
+      PORT
+         LAYER met2 ;
+	    RECT 28.4900 -2.0350 28.7500 2.0350 ;
+      END
+   END dm<2>
+   PIN dm<1>
+      PORT
+         LAYER met2 ;
+	    RECT 66.8350 -2.0350 67.0950 -0.8400 ;
+      END
+   END dm<1>
+   PIN dm<0>
+      PORT
+         LAYER met2 ;
+	    RECT 49.8550 -2.0350 50.1150 -1.4900 ;
+      END
+   END dm<0>
+   PIN enable_h
+      PORT
+         LAYER met2 ;
+	    RECT 35.4600 -2.0350 35.7200 -0.4850 ;
+      END
+   END enable_h
+   PIN enable_inp_h
+      PORT
+         LAYER met2 ;
+	    RECT 38.3900 -2.0350 38.6500 1.0550 ;
+      END
+   END enable_inp_h
+   PIN enable_vdda_h
+      PORT
+         LAYER met2 ;
+	    RECT 12.7550 -2.0350 13.0150 3.3150 ;
+      END
+   END enable_vdda_h
+   PIN enable_vddio
+      PORT
+         LAYER met3 ;
+	    RECT 78.5800 -2.0350 78.9100 182.7400 ;
+      END
+   END enable_vddio
+   PIN enable_vswitch_h
+      PORT
+         LAYER met2 ;
+	    RECT 16.3100 -2.0350 16.5700 0.2850 ;
+      END
+   END enable_vswitch_h
+   PIN hld_h_n
+      PORT
+         LAYER met2 ;
+	    RECT 31.8150 -2.0350 32.0750 1.3050 ;
+      END
+   END hld_h_n
+   PIN hld_ovr
+      PORT
+         LAYER met2 ;
+	    RECT 26.6000 -2.0350 26.8600 0.6700 ;
+      END
+   END hld_ovr
+   PIN ib_mode_sel
+      PORT
+         LAYER met2 ;
+	    RECT 5.4200 -2.0350 5.6500 2.4400 ;
+      END
+   END ib_mode_sel
+   PIN in
+      PORT
+         LAYER met3 ;
+	    RECT 79.2400 -2.0350 79.5700 187.5250 ;
+      END
+   END in
+   PIN in_h
+      PORT
+         LAYER met3 ;
+	    RECT 0.4000 -2.0350 1.0200 176.4500 ;
+      END
+   END in_h
+   PIN inp_dis
+      PORT
+         LAYER met2 ;
+	    RECT 45.2450 -2.0350 45.5050 3.0550 ;
+      END
+   END inp_dis
+   PIN oe_n
+      PORT
+         LAYER met2 ;
+	    RECT 3.3750 -2.0350 3.6050 2.4400 ;
+      END
+   END oe_n
+   PIN out
+      PORT
+         LAYER met2 ;
+	    RECT 22.3550 -2.0350 22.6150 4.3900 ;
+      END
+   END out
+   PIN pad
+      PORT
+         LAYER met5 ;
+	    RECT 11.2000 102.5250 73.8000 164.9750 ;
+      END
+   END pad
+   PIN pad_a_esd_0_h
+      PORT
+         LAYER met2 ;
+	    RECT 76.2800 -2.0350 76.9200 0.0200 ;
+      END
+   END pad_a_esd_0_h
+   PIN pad_a_esd_1_h
+      PORT
+         LAYER met2 ;
+	    RECT 68.2750 -2.0350 68.9250 0.2350 ;
+      END
+   END pad_a_esd_1_h
+   PIN pad_a_noesd_h
+      PORT
+         LAYER met3 ;
+	    RECT 62.8200 -2.0350 63.8900 7.6700 ;
+      END
+   END pad_a_noesd_h
+   PIN slow
+      PORT
+         LAYER met2 ;
+	    RECT 77.6100 -2.0350 77.8700 -0.8500 ;
+      END
+   END slow
+   PIN tie_hi_esd
+      PORT
+         LAYER met2 ;
+	    RECT 78.7050 -2.0350 78.9050 -0.8200 ;
+      END
+   END tie_hi_esd
+   PIN tie_lo_esd
+      PORT
+         LAYER met2 ;
+	    RECT 79.7150 -2.0350 79.9150 175.8350 ;
+      END
+   END tie_lo_esd
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 6.9500 80.0000 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 6.8500 80.0000 11.5000 ;
+      END
+   END vccd
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 0.1000 80.0000 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 0.0000 80.0000 5.4500 ;
+      END
+   END vcchib
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.9700 13.0000 80.0000 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.9700 12.9000 80.0000 16.3500 ;
+      END
+   END vdda
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 68.0000 80.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 17.8500 80.0000 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 17.7500 80.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 68.0000 80.0000 92.9650 ;
+      END
+   END vddio
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 62.1500 80.0000 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 62.0500 80.0000 66.5000 ;
+      END
+   END vddio_q
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 2.6100 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 2.6100 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 45.7000 80.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 34.8050 80.0000 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 49.6100 80.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 47.0900 54.3700 80.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 47.0900 45.7000 80.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 34.7000 80.0000 38.1500 ;
+      END
+   END vssa
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 39.6500 80.0000 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 39.5500 80.0000 44.2000 ;
+      END
+   END vssd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 0.8100 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.9700 173.7500 80.0000 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 23.9000 80.0000 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 23.8000 80.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 173.7500 80.0000 197.9650 ;
+      END
+   END vssio
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 56.3000 80.0000 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 56.2000 80.0000 60.6500 ;
+      END
+   END vssio_q
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 78.7300 29.9500 80.0000 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 78.7300 29.8500 80.0000 33.3000 ;
+      END
+   END vswitch
+   PIN vtrip_sel
+      PORT
+         LAYER met2 ;
+	    RECT 6.1300 -2.0350 6.3900 -0.4850 ;
+      END
+   END vtrip_sel
+   OBS
+         LAYER li1 ;
+	    RECT -0.1600 -1.8050 80.1600 197.6700 ;
+         LAYER met1 ;
+	    RECT -0.1450 -0.4500 80.1450 197.9650 ;
+	    RECT -0.1450 -1.7750 62.1500 -0.4500 ;
+	    RECT 62.9700 -1.7750 80.1450 -0.4500 ;
+         LAYER met2 ;
+	    RECT 0.2100 176.1150 79.9150 197.9650 ;
+	    RECT 0.2100 4.6700 79.4350 176.1150 ;
+	    RECT 0.2100 3.5950 22.0750 4.6700 ;
+	    RECT 0.2100 2.7200 12.4750 3.5950 ;
+	    RECT 0.2100 -1.7850 3.0950 2.7200 ;
+	    RECT 3.8850 -1.7850 5.1400 2.7200 ;
+	    RECT 5.9300 -0.2050 12.4750 2.7200 ;
+	    RECT 6.6700 -1.7850 12.4750 -0.2050 ;
+	    RECT 13.2950 0.5650 22.0750 3.5950 ;
+	    RECT 13.2950 -1.7850 16.0300 0.5650 ;
+	    RECT 16.8500 -1.7850 22.0750 0.5650 ;
+	    RECT 22.8950 3.3350 79.4350 4.6700 ;
+	    RECT 22.8950 2.3150 44.9650 3.3350 ;
+	    RECT 22.8950 0.9500 28.2100 2.3150 ;
+	    RECT 22.8950 -1.7850 26.3200 0.9500 ;
+	    RECT 27.1400 -1.7850 28.2100 0.9500 ;
+	    RECT 29.0300 1.5850 44.9650 2.3150 ;
+	    RECT 29.0300 0.5100 31.5350 1.5850 ;
+	    RECT 29.0300 -1.7850 30.4700 0.5100 ;
+	    RECT 31.2900 -1.7850 31.5350 0.5100 ;
+	    RECT 32.3550 1.3350 44.9650 1.5850 ;
+	    RECT 32.3550 -0.2050 38.1100 1.3350 ;
+	    RECT 32.3550 -1.7850 35.1800 -0.2050 ;
+	    RECT 36.0000 -1.7850 38.1100 -0.2050 ;
+	    RECT 38.9300 -1.7850 44.9650 1.3350 ;
+	    RECT 45.7850 0.5150 79.4350 3.3350 ;
+	    RECT 45.7850 -0.5600 67.9950 0.5150 ;
+	    RECT 45.7850 -1.2100 66.5550 -0.5600 ;
+	    RECT 45.7850 -1.7850 49.5750 -1.2100 ;
+	    RECT 50.3950 -1.7850 66.5550 -1.2100 ;
+	    RECT 67.3750 -1.7850 67.9950 -0.5600 ;
+	    RECT 69.2050 0.3000 79.4350 0.5150 ;
+	    RECT 69.2050 -1.7850 76.0000 0.3000 ;
+	    RECT 77.2000 -0.5400 79.4350 0.3000 ;
+	    RECT 77.2000 -0.5700 78.4250 -0.5400 ;
+	    RECT 77.2000 -1.7850 77.3300 -0.5700 ;
+	    RECT 78.1500 -1.7850 78.4250 -0.5700 ;
+	    RECT 79.1850 -1.7850 79.4350 -0.5400 ;
+         LAYER met3 ;
+	    RECT 0.4000 187.9250 79.5700 197.9650 ;
+	    RECT 0.4000 183.1400 78.8400 187.9250 ;
+	    RECT 0.4000 176.8500 78.1800 183.1400 ;
+	    RECT 1.4200 35.1700 78.1800 176.8500 ;
+	    RECT 1.4200 -1.7900 45.4650 35.1700 ;
+	    RECT 46.5950 8.0700 78.1800 35.1700 ;
+	    RECT 46.5950 -1.7900 62.4200 8.0700 ;
+	    RECT 64.2900 -1.7900 78.1800 8.0700 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 78.3300 197.9650 ;
+	    RECT 0.9650 93.3650 78.9700 173.3500 ;
+	    RECT 1.6700 67.6000 78.3300 93.3650 ;
+	    RECT 0.9650 66.9000 78.9700 67.6000 ;
+	    RECT 1.6700 61.6500 78.3300 66.9000 ;
+	    RECT 0.9650 61.0500 78.9700 61.6500 ;
+	    RECT 1.6700 55.8000 78.3300 61.0500 ;
+	    RECT 0.9650 55.1000 78.9700 55.8000 ;
+	    RECT 3.0100 54.4700 46.6900 55.1000 ;
+	    RECT 36.8400 50.6900 38.3600 54.4700 ;
+	    RECT 1.6700 49.7100 78.3300 50.6900 ;
+	    RECT 52.5450 46.4300 54.0650 49.7100 ;
+	    RECT 3.0100 45.3000 46.6900 45.9300 ;
+	    RECT 0.9650 44.6000 78.9700 45.3000 ;
+	    RECT 1.6700 39.1500 78.3300 44.6000 ;
+	    RECT 0.9650 38.5500 78.9700 39.1500 ;
+	    RECT 1.6700 34.3000 78.3300 38.5500 ;
+	    RECT 0.9650 33.7000 78.9700 34.3000 ;
+	    RECT 1.6700 29.4500 78.3300 33.7000 ;
+	    RECT 0.9650 28.8500 78.9700 29.4500 ;
+	    RECT 1.6700 23.4000 78.3300 28.8500 ;
+	    RECT 0.9650 22.8000 78.9700 23.4000 ;
+	    RECT 1.6700 17.3500 78.3300 22.8000 ;
+	    RECT 0.9650 16.7500 78.9700 17.3500 ;
+	    RECT 1.3650 12.5000 78.5700 16.7500 ;
+	    RECT 0.9650 11.9000 78.9700 12.5000 ;
+	    RECT 1.6700 6.4500 78.3300 11.9000 ;
+	    RECT 0.9650 5.8500 78.9700 6.4500 ;
+	    RECT 1.6700 -0.4000 78.3300 5.8500 ;
+	    RECT 0.9650 -1.5000 78.9700 -0.4000 ;
+         LAYER met5 ;
+	    RECT 0.0000 166.5750 80.0000 197.9650 ;
+	    RECT 0.0000 100.9250 9.6000 166.5750 ;
+	    RECT 75.4000 100.9250 80.0000 166.5750 ;
+	    RECT 0.0000 94.5500 80.0000 100.9250 ;
+	    RECT 2.8700 16.2500 77.1300 94.5500 ;
+	    RECT 2.5650 13.0000 77.3700 16.2500 ;
+	    RECT 2.8700 0.1000 77.1300 13.0000 ;
+   END
+END s8iom0_gpiov2_pad
+MACRO s8iom0_vddio_lvc_pad
+   CLASS PAD POWER ;
+   FOREIGN s8iom0_vddio_lvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_lvc1
+      PORT
+         LAYER met3 ;
+	    RECT 26.0000 -0.0350 36.8800 20.1850 ;
+      END
+   END drn_lvc1
+   PIN drn_lvc2
+      PORT
+         LAYER met3 ;
+	    RECT 38.3800 -0.0350 49.2550 22.8650 ;
+      END
+   END drn_lvc2
+   PIN src_bdy_lvc1
+      PORT
+         LAYER met2 ;
+	    RECT 0.5000 -0.0350 20.4950 1.4500 ;
+      END
+   END src_bdy_lvc1
+   PIN src_bdy_lvc2
+      PORT
+         LAYER met2 ;
+	    RECT 54.7150 -0.0350 74.7000 3.6250 ;
+      END
+   END src_bdy_lvc2
+   PIN bdy2_b2b
+      PORT
+         LAYER met2 ;
+	    RECT 34.4400 -0.0350 44.4400 0.2900 ;
+      END
+   END bdy2_b2b
+   PIN vssi
+      PORT
+         LAYER met1 ;
+	    RECT 34.3350 0.4750 35.3350 0.9750 ;
+      END
+   END vssi
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 9.3150 100.1050 65.9550 167.5350 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.7550 -0.0350 74.7000 17.7650 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.5000 -0.0350 24.5000 17.7650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 0.2400 0.9850 74.7550 197.7450 ;
+         LAYER met1 ;
+	    RECT 0.1200 1.2550 74.7850 197.8050 ;
+	    RECT 0.1200 0.1950 34.0550 1.2550 ;
+	    RECT 35.6150 0.1950 74.7850 1.2550 ;
+	    RECT 0.1200 -0.0350 74.7850 0.1950 ;
+         LAYER met2 ;
+	    RECT 0.4900 3.9050 74.7000 194.3950 ;
+	    RECT 0.4900 1.7300 54.4350 3.9050 ;
+	    RECT 20.7750 0.5700 54.4350 1.7300 ;
+	    RECT 20.7750 -0.0350 34.1600 0.5700 ;
+	    RECT 44.7200 -0.0350 54.4350 0.5700 ;
+         LAYER met3 ;
+	    RECT 0.4900 23.2650 74.7000 189.4800 ;
+	    RECT 0.4900 20.5850 37.9800 23.2650 ;
+	    RECT 0.4900 18.1650 25.6000 20.5850 ;
+	    RECT 24.9000 0.0000 25.6000 18.1650 ;
+	    RECT 37.2800 0.0000 37.9800 20.5850 ;
+	    RECT 49.6550 18.1650 74.7000 23.2650 ;
+	    RECT 49.6550 0.0000 50.3550 18.1650 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 169.1350 75.0000 197.9650 ;
+	    RECT 0.0000 98.5050 7.7150 169.1350 ;
+	    RECT 67.5550 98.5050 75.0000 169.1350 ;
+	    RECT 0.0000 94.5500 75.0000 98.5050 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vddio_lvc_pad
+MACRO s8iom0_vddio_hvc_pad
+   CLASS PAD POWER ;
+   FOREIGN s8iom0_vddio_hvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 50.3900 -2.0350 74.2900 23.6250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 37.8900 -2.0350 48.8900 10.3450 ;
+      END
+   END drn_hvc
+   PIN src_bdy_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 0.4950 -2.0350 24.3950 0.0200 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 25.8950 -2.0350 36.8950 10.3900 ;
+      END
+   END src_bdy_hvc
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 6.1000 101.9750 68.8000 164.5900 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.3900 -2.0350 74.2900 88.1500 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.4950 -2.0350 24.3950 30.4800 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2050 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.2250 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 1.0700 -1.0350 72.7750 197.6600 ;
+         LAYER met1 ;
+	    RECT 0.1850 -1.0650 73.6200 197.6900 ;
+         LAYER met2 ;
+	    RECT 0.2650 23.9050 74.2900 193.0400 ;
+	    RECT 0.2650 0.3000 50.1100 23.9050 ;
+	    RECT 24.6750 -2.0350 50.1100 0.3000 ;
+         LAYER met3 ;
+	    RECT 0.2400 88.5500 74.2900 197.9650 ;
+	    RECT 0.2400 30.8800 49.9900 88.5500 ;
+	    RECT 24.7950 10.7900 49.9900 30.8800 ;
+	    RECT 24.7950 10.3450 25.4950 10.7900 ;
+	    RECT 37.2950 10.7450 49.9900 10.7900 ;
+	    RECT 37.2950 10.3450 37.4900 10.7450 ;
+	    RECT 49.2900 10.3450 49.9900 10.7450 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 166.1900 75.0000 197.9650 ;
+	    RECT 0.0000 100.3750 4.5000 166.1900 ;
+	    RECT 70.4000 100.3750 75.0000 166.1900 ;
+	    RECT 0.0000 94.5500 75.0000 100.3750 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vddio_hvc_pad
+MACRO s8iom0_vccd_hvc_pad
+   CLASS PAD POWER ;
+   FOREIGN s8iom0_vccd_hvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 50.3900 -2.0350 74.2900 23.6250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 37.8900 -2.0350 48.8900 10.3450 ;
+      END
+   END drn_hvc
+   PIN src_bdy_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 0.4950 -2.0350 24.3950 0.0200 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 25.8950 -2.0350 36.8950 10.3900 ;
+      END
+   END src_bdy_hvc
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 6.1000 101.9750 68.8000 164.5900 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.3900 -2.0350 74.2900 6.8650 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.4950 -2.0350 24.3950 6.8650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2050 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.2250 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 1.0700 -1.0350 72.7750 197.6600 ;
+         LAYER met1 ;
+	    RECT 0.1850 -1.0650 73.6200 197.6900 ;
+         LAYER met2 ;
+	    RECT 0.2650 23.9050 74.2900 193.0400 ;
+	    RECT 0.2650 0.3000 50.1100 23.9050 ;
+	    RECT 24.6750 -2.0350 50.1100 0.3000 ;
+         LAYER met3 ;
+	    RECT 0.2400 10.7900 74.2900 197.9650 ;
+	    RECT 0.2400 7.2650 25.4950 10.7900 ;
+	    RECT 24.7950 6.8650 25.4950 7.2650 ;
+	    RECT 37.2950 10.7450 74.2900 10.7900 ;
+	    RECT 37.2950 6.8650 37.4900 10.7450 ;
+	    RECT 49.2900 7.2650 74.2900 10.7450 ;
+	    RECT 49.2900 6.8650 49.9900 7.2650 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 166.1900 75.0000 197.9650 ;
+	    RECT 0.0000 100.3750 4.5000 166.1900 ;
+	    RECT 70.4000 100.3750 75.0000 166.1900 ;
+	    RECT 0.0000 94.5500 75.0000 100.3750 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vccd_hvc_pad
+MACRO s8iom0_vccd_lvc_pad
+   CLASS PAD POWER ;
+   FOREIGN s8iom0_vccd_lvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_lvc1
+      PORT
+         LAYER met3 ;
+	    RECT 26.0000 -0.0350 36.8800 20.1850 ;
+      END
+   END drn_lvc1
+   PIN drn_lvc2
+      PORT
+         LAYER met3 ;
+	    RECT 38.3800 -0.0350 49.2550 22.8650 ;
+      END
+   END drn_lvc2
+   PIN src_bdy_lvc1
+      PORT
+         LAYER met2 ;
+	    RECT 0.5000 -0.0350 20.4950 1.4500 ;
+      END
+   END src_bdy_lvc1
+   PIN src_bdy_lvc2
+      PORT
+         LAYER met2 ;
+	    RECT 54.7150 -0.0350 74.7000 3.6250 ;
+      END
+   END src_bdy_lvc2
+   PIN bdy2_b2b
+      PORT
+         LAYER met2 ;
+	    RECT 34.4400 -0.0350 44.4400 0.2900 ;
+      END
+   END bdy2_b2b
+   PIN vssi
+      PORT
+         LAYER met1 ;
+	    RECT 34.3350 0.4750 35.3350 0.9750 ;
+      END
+   END vssi
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 9.3150 100.1050 65.9550 167.5350 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.7550 -0.0350 74.7000 6.8650 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.5000 -0.0350 24.5000 6.8650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 74.2250 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2050 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 0.2400 0.9850 74.7550 197.7450 ;
+         LAYER met1 ;
+	    RECT 0.1200 1.2550 74.7850 197.8050 ;
+	    RECT 0.1200 0.1950 34.0550 1.2550 ;
+	    RECT 35.6150 0.1950 74.7850 1.2550 ;
+	    RECT 0.1200 -0.0350 74.7850 0.1950 ;
+         LAYER met2 ;
+	    RECT 0.4900 3.9050 74.7000 194.3950 ;
+	    RECT 0.4900 1.7300 54.4350 3.9050 ;
+	    RECT 20.7750 0.5700 54.4350 1.7300 ;
+	    RECT 20.7750 -0.0350 34.1600 0.5700 ;
+	    RECT 44.7200 -0.0350 54.4350 0.5700 ;
+         LAYER met3 ;
+	    RECT 0.4900 23.2650 74.7000 189.4800 ;
+	    RECT 0.4900 20.5850 37.9800 23.2650 ;
+	    RECT 0.4900 7.2650 25.6000 20.5850 ;
+	    RECT 24.9000 0.0000 25.6000 7.2650 ;
+	    RECT 37.2800 0.0000 37.9800 20.5850 ;
+	    RECT 49.6550 7.2650 74.7000 23.2650 ;
+	    RECT 49.6550 0.0000 50.3550 7.2650 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 169.1350 75.0000 197.9650 ;
+	    RECT 0.0000 98.5050 7.7150 169.1350 ;
+	    RECT 67.5550 98.5050 75.0000 169.1350 ;
+	    RECT 0.0000 94.5500 75.0000 98.5050 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vccd_lvc_pad
+MACRO s8iom0_vdda_hvc_pad
+   CLASS PAD POWER ;
+   FOREIGN s8iom0_vdda_hvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 50.3900 -2.0350 74.2900 23.6250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 37.8900 -2.0350 48.8900 10.3450 ;
+      END
+   END drn_hvc
+   PIN src_bdy_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 0.4950 -2.0350 24.3950 0.0200 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 25.8950 -2.0350 36.8950 10.3900 ;
+      END
+   END src_bdy_hvc
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 6.1000 101.9750 68.8000 164.5900 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.3900 -2.0350 74.2900 6.8650 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.4950 -2.0350 24.3950 6.8650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 74.2250 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2050 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.6300 189.5650 0.6400 189.5750 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.3600 189.5650 74.3700 189.5750 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 1.0700 -1.0350 72.7750 197.6600 ;
+         LAYER met1 ;
+	    RECT 0.1850 -1.0650 73.6200 197.6900 ;
+         LAYER met2 ;
+	    RECT 0.2650 23.9050 74.2900 193.0400 ;
+	    RECT 0.2650 0.3000 50.1100 23.9050 ;
+	    RECT 24.6750 -2.0350 50.1100 0.3000 ;
+         LAYER met3 ;
+	    RECT 0.2400 10.7900 74.6550 197.9650 ;
+	    RECT 0.2400 7.2650 25.4950 10.7900 ;
+	    RECT 24.7950 6.8550 25.4950 7.2650 ;
+	    RECT 37.2950 10.7450 74.6550 10.7900 ;
+	    RECT 37.2950 6.8550 37.4900 10.7450 ;
+	    RECT 49.2900 7.2650 74.6550 10.7450 ;
+	    RECT 49.2900 6.8550 49.9900 7.2650 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 166.1900 75.0000 197.9650 ;
+	    RECT 0.0000 100.3750 4.5000 166.1900 ;
+	    RECT 70.4000 100.3750 75.0000 166.1900 ;
+	    RECT 0.0000 94.5500 75.0000 100.3750 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vdda_hvc_pad
+MACRO s8iom0_vdda_lvc_pad
+   CLASS PAD POWER ;
+   FOREIGN s8iom0_vdda_lvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_lvc1
+      PORT
+         LAYER met3 ;
+	    RECT 26.0000 -0.0350 36.8800 20.1850 ;
+      END
+   END drn_lvc1
+   PIN drn_lvc2
+      PORT
+         LAYER met3 ;
+	    RECT 38.3800 -0.0350 49.2550 22.8650 ;
+      END
+   END drn_lvc2
+   PIN src_bdy_lvc1
+      PORT
+         LAYER met2 ;
+	    RECT 0.5000 -0.0350 20.4950 1.4500 ;
+      END
+   END src_bdy_lvc1
+   PIN src_bdy_lvc2
+      PORT
+         LAYER met2 ;
+	    RECT 54.7150 -0.0350 74.7000 3.6250 ;
+      END
+   END src_bdy_lvc2
+   PIN bdy2_b2b
+      PORT
+         LAYER met2 ;
+	    RECT 34.4400 -0.0350 44.4400 0.2900 ;
+      END
+   END bdy2_b2b
+   PIN vssi
+      PORT
+         LAYER met1 ;
+	    RECT 34.3350 0.4750 35.3350 0.9750 ;
+      END
+   END vssi
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met3 ;
+	    RECT 50.7550 -0.0350 74.7000 12.9250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.5000 -0.0350 24.5000 12.9250 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 9.3150 100.1050 65.9550 167.5350 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 0.2400 0.9850 74.7550 197.7450 ;
+         LAYER met1 ;
+	    RECT 0.1200 1.2550 74.7850 197.8050 ;
+	    RECT 0.1200 0.1950 34.0550 1.2550 ;
+	    RECT 35.6150 0.1950 74.7850 1.2550 ;
+	    RECT 0.1200 -0.0350 74.7850 0.1950 ;
+         LAYER met2 ;
+	    RECT 0.4900 3.9050 74.7000 194.3950 ;
+	    RECT 0.4900 1.7300 54.4350 3.9050 ;
+	    RECT 20.7750 0.5700 54.4350 1.7300 ;
+	    RECT 20.7750 -0.0350 34.1600 0.5700 ;
+	    RECT 44.7200 -0.0350 54.4350 0.5700 ;
+         LAYER met3 ;
+	    RECT 0.4900 23.2650 74.7000 189.4800 ;
+	    RECT 0.4900 20.5850 37.9800 23.2650 ;
+	    RECT 0.4900 13.3250 25.6000 20.5850 ;
+	    RECT 24.9000 0.0000 25.6000 13.3250 ;
+	    RECT 37.2800 0.0000 37.9800 20.5850 ;
+	    RECT 49.6550 13.3250 74.7000 23.2650 ;
+	    RECT 49.6550 0.0000 50.3550 13.3250 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 169.1350 75.0000 197.9650 ;
+	    RECT 0.0000 98.5050 7.7150 169.1350 ;
+	    RECT 67.5550 98.5050 75.0000 169.1350 ;
+	    RECT 0.0000 94.5500 75.0000 98.5050 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vdda_lvc_pad
+MACRO s8iom0s8_com_bus_slice_1um
+   CLASS PAD SPACER ;
+   FOREIGN s8iom0s8_com_bus_slice_1um ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 1.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.0000 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.0000 49.3100 ;
+      END
+   END amuxbus_b
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.0000 46.0300 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8000 1.0000 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.0000 50.7900 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 1.0000 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 1.0000 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.0000 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.0000 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.0000 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.0000 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.0000 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.0000 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.0000 92.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.0000 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.0000 22.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.0000 92.9500 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.0000 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.0000 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.0000 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.0000 28.4500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 173.7500 1.0000 197.9650 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.0000 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.0000 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.0000 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.0000 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.0000 197.9650 ;
+   END
+END s8iom0s8_com_bus_slice_1um
+MACRO s8iom0_vssio_hvc_pad
+   CLASS PAD GROUND ;
+   FOREIGN s8iom0_vssio_hvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 50.3900 -2.0350 74.2900 23.6250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 37.8900 -2.0350 48.8900 10.3450 ;
+      END
+   END drn_hvc
+   PIN src_bdy_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 0.4950 -2.0350 24.3950 0.0200 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 25.8950 -2.0350 36.8950 10.3900 ;
+      END
+   END src_bdy_hvc
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met5 ;
+	    RECT 6.1000 101.9750 68.8000 164.5900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.6300 189.5650 0.6400 189.5750 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.2500 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.4950 -2.0350 24.3950 23.8150 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.3900 -2.0350 74.2900 23.8150 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 1.0700 -1.0350 72.7750 197.6600 ;
+         LAYER met1 ;
+	    RECT 0.1850 -1.0650 73.6200 197.6900 ;
+         LAYER met2 ;
+	    RECT 0.2650 23.9050 74.2900 193.0400 ;
+	    RECT 0.2650 0.3000 50.1100 23.9050 ;
+	    RECT 24.6750 -2.0350 50.1100 0.3000 ;
+         LAYER met3 ;
+	    RECT 0.2400 24.2150 74.2900 197.9650 ;
+	    RECT 24.7950 10.7900 49.9900 24.2150 ;
+	    RECT 24.7950 10.3450 25.4950 10.7900 ;
+	    RECT 37.2950 10.7450 49.9900 10.7900 ;
+	    RECT 37.2950 10.3450 37.4900 10.7450 ;
+	    RECT 49.2900 10.3450 49.9900 10.7450 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 166.1900 75.0000 197.9650 ;
+	    RECT 0.0000 100.3750 4.5000 166.1900 ;
+	    RECT 70.4000 100.3750 75.0000 166.1900 ;
+	    RECT 0.0000 94.5500 75.0000 100.3750 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vssio_hvc_pad
+MACRO s8iom0_corner_pad
+   CLASS ENDCAP TOPRIGHT ;
+   FOREIGN s8iom0_corner_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 200.0000 BY 204.0000 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 57.1250 22.9100 60.1050 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 53.1250 0.0000 56.1050 26.9100 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 52.3650 20.9350 55.3450 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 48.3650 0.0000 51.3450 20.8750 ;
+      END
+   END amuxbus_b
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 51.7350 23.1550 60.7350 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.6300 56.0200 0.6400 56.0300 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 40.8350 1.3350 44.0850 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.7350 19.5750 52.0650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 40.7350 1.3350 44.1850 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 55.6450 21.5500 56.8250 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 60.4050 23.1750 60.7350 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 36.8400 0.0000 40.0850 1.2700 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 47.7350 0.0000 56.7350 27.1550 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 51.2850 0.6300 51.2950 0.6400 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 56.4050 0.0000 56.7350 27.1750 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 51.6450 0.0000 52.8250 21.5550 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 36.7350 0.0000 40.1850 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 47.7350 0.0000 48.0650 23.5750 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 19.0350 1.4700 22.2850 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 18.9350 1.4700 22.3850 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 15.0350 0.0000 18.2850 1.2550 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 14.9350 0.0000 18.3850 1.2550 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 35.9850 1.3850 39.2350 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 35.8850 1.3850 39.3350 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 31.9850 0.0000 35.2350 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 31.8850 0.0000 35.3350 1.2700 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.1850 1.4800 72.4350 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0850 1.4800 72.5350 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 64.1850 0.0000 68.4350 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 64.0850 0.0000 68.5350 1.2700 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.1350 2.3500 11.3850 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.0350 2.3500 11.4850 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 2.1350 0.0000 7.3850 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 2.0350 0.0000 7.4850 1.2700 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 74.0350 2.6450 98.9850 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.8850 1.5250 28.3350 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.7850 1.5250 28.4350 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 74.0350 2.6450 99.0000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 19.8850 0.0000 24.3350 1.2700 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 70.0350 0.0000 94.9850 1.8550 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 70.0350 0.0000 95.0000 1.8550 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 19.7850 0.0000 24.4350 1.2700 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 12.9850 3.7850 17.4350 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.8850 3.7850 17.5350 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 8.9850 0.0000 13.4350 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 8.8850 0.0000 13.5350 1.2700 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9350 1.6000 34.3850 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8350 1.6000 34.4850 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 179.7850 1.4350 204.0000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.6300 194.8650 0.6400 194.8750 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 25.9350 0.0000 30.3850 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 25.8350 0.0000 30.4850 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 175.7850 0.0000 200.0000 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 190.8650 0.6300 190.8750 0.6400 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.6850 1.4750 50.1350 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.5850 1.4750 50.2350 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 41.6850 0.0000 46.1350 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 41.5850 0.0000 46.2350 1.2700 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.3350 1.6250 66.5850 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.2350 1.6250 66.6850 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 58.3350 0.0000 62.5850 1.2700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 58.2350 0.0000 62.6850 1.2700 ;
+      END
+   END vssio_q
+   OBS
+         LAYER met4 ;
+	    RECT 1.8350 179.3850 200.0000 204.0000 ;
+	    RECT 0.0000 99.4000 200.0000 179.3850 ;
+	    RECT 3.0450 73.6350 200.0000 99.4000 ;
+	    RECT 0.0000 72.9350 200.0000 73.6350 ;
+	    RECT 1.8800 67.6850 200.0000 72.9350 ;
+	    RECT 0.0000 67.0850 200.0000 67.6850 ;
+	    RECT 2.0250 61.8350 200.0000 67.0850 ;
+	    RECT 0.0000 61.1350 200.0000 61.8350 ;
+	    RECT 23.5750 60.0050 200.0000 61.1350 ;
+	    RECT 23.3100 56.7250 200.0000 60.0050 ;
+	    RECT 21.9500 55.2450 200.0000 56.7250 ;
+	    RECT 21.3350 51.9650 200.0000 55.2450 ;
+	    RECT 19.9750 51.3350 200.0000 51.9650 ;
+	    RECT 0.0000 50.6350 200.0000 51.3350 ;
+	    RECT 1.8750 45.1850 200.0000 50.6350 ;
+	    RECT 0.0000 44.5850 200.0000 45.1850 ;
+	    RECT 1.7350 40.3350 200.0000 44.5850 ;
+	    RECT 0.0000 39.7350 200.0000 40.3350 ;
+	    RECT 1.7850 35.4850 200.0000 39.7350 ;
+	    RECT 0.0000 34.8850 200.0000 35.4850 ;
+	    RECT 2.0000 29.4350 200.0000 34.8850 ;
+	    RECT 0.0000 28.8350 200.0000 29.4350 ;
+	    RECT 1.9250 27.5750 200.0000 28.8350 ;
+	    RECT 1.9250 27.3100 56.0050 27.5750 ;
+	    RECT 1.9250 23.9750 52.7250 27.3100 ;
+	    RECT 1.9250 23.3850 47.3350 23.9750 ;
+	    RECT 0.0000 22.7850 47.3350 23.3850 ;
+	    RECT 1.8700 18.5350 47.3350 22.7850 ;
+	    RECT 48.4650 21.9550 52.7250 23.9750 ;
+	    RECT 48.4650 21.2750 51.2450 21.9550 ;
+	    RECT 0.0000 17.9350 47.3350 18.5350 ;
+	    RECT 4.1850 12.4850 47.3350 17.9350 ;
+	    RECT 0.0000 11.8850 47.3350 12.4850 ;
+	    RECT 2.7500 5.6350 47.3350 11.8850 ;
+	    RECT 0.0000 1.6700 47.3350 5.6350 ;
+	    RECT 0.0000 1.2550 1.6350 1.6700 ;
+	    RECT 7.8850 1.2550 8.4850 1.6700 ;
+	    RECT 13.9350 1.6550 19.3850 1.6700 ;
+	    RECT 13.9350 1.2550 14.5350 1.6550 ;
+	    RECT 18.7850 1.2550 19.3850 1.6550 ;
+	    RECT 24.8350 1.2550 25.4350 1.6700 ;
+	    RECT 30.8850 1.2550 31.4850 1.6700 ;
+	    RECT 35.7350 1.2550 36.3350 1.6700 ;
+	    RECT 40.5850 1.2550 41.1850 1.6700 ;
+	    RECT 46.6350 1.2550 47.3350 1.6700 ;
+	    RECT 57.1350 2.2550 200.0000 27.5750 ;
+	    RECT 57.1350 1.6700 69.6350 2.2550 ;
+	    RECT 57.1350 1.2550 57.8350 1.6700 ;
+	    RECT 63.0850 1.2550 63.6850 1.6700 ;
+	    RECT 68.9350 1.2550 69.6350 1.6700 ;
+	    RECT 95.4000 1.6700 200.0000 2.2550 ;
+	    RECT 95.4000 1.2550 175.3850 1.6700 ;
+         LAYER met5 ;
+	    RECT 0.0000 100.5850 200.0000 204.0000 ;
+	    RECT 4.2450 72.4350 200.0000 100.5850 ;
+	    RECT 3.0800 68.1850 200.0000 72.4350 ;
+	    RECT 3.2250 62.3350 200.0000 68.1850 ;
+	    RECT 24.7550 50.1350 200.0000 62.3350 ;
+	    RECT 3.0750 44.0850 200.0000 50.1350 ;
+	    RECT 2.9350 40.8350 200.0000 44.0850 ;
+	    RECT 2.9850 35.9850 200.0000 40.8350 ;
+	    RECT 3.2000 28.7550 200.0000 35.9850 ;
+	    RECT 3.2000 28.3350 46.1350 28.7550 ;
+	    RECT 3.1250 22.2850 46.1350 28.3350 ;
+	    RECT 3.0700 19.0350 46.1350 22.2850 ;
+	    RECT 5.3850 11.3850 46.1350 19.0350 ;
+	    RECT 3.9500 4.5350 46.1350 11.3850 ;
+	    RECT 0.0000 2.8700 46.1350 4.5350 ;
+	    RECT 58.3350 3.4550 200.0000 28.7550 ;
+	    RECT 58.3350 2.8700 68.4350 3.4550 ;
+	    RECT 0.0000 0.0000 0.5350 2.8700 ;
+	    RECT 15.0350 2.8550 18.2850 2.8700 ;
+	    RECT 96.5850 0.0000 200.0000 3.4550 ;
+   END
+END s8iom0_corner_pad
+MACRO s8iom0_vssio_lvc_pad
+   CLASS PAD GROUND ;
+   FOREIGN s8iom0_vssio_lvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_lvc1
+      PORT
+         LAYER met3 ;
+	    RECT 26.0000 -0.0350 36.8800 20.1850 ;
+      END
+   END drn_lvc1
+   PIN drn_lvc2
+      PORT
+         LAYER met3 ;
+	    RECT 38.3800 -0.0350 49.2550 22.8650 ;
+      END
+   END drn_lvc2
+   PIN src_bdy_lvc1
+      PORT
+         LAYER met2 ;
+	    RECT 0.5000 -0.0350 20.4950 1.4500 ;
+      END
+   END src_bdy_lvc1
+   PIN src_bdy_lvc2
+      PORT
+         LAYER met2 ;
+	    RECT 54.7150 -0.0350 74.7000 3.6250 ;
+      END
+   END src_bdy_lvc2
+   PIN bdy2_b2b
+      PORT
+         LAYER met2 ;
+	    RECT 34.4400 -0.0350 44.4400 0.2900 ;
+      END
+   END bdy2_b2b
+   PIN vssi
+      PORT
+         LAYER met1 ;
+	    RECT 34.3350 0.4750 35.3350 0.9750 ;
+      END
+   END vssi
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met5 ;
+	    RECT 9.3150 100.1050 65.9550 167.5350 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.7550 -0.0350 74.7000 23.8150 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.5000 -0.0350 24.5000 23.8150 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 0.2400 0.9850 74.7550 197.7450 ;
+         LAYER met1 ;
+	    RECT 0.1200 1.2550 74.7850 197.8050 ;
+	    RECT 0.1200 0.1950 34.0550 1.2550 ;
+	    RECT 35.6150 0.1950 74.7850 1.2550 ;
+	    RECT 0.1200 -0.0350 74.7850 0.1950 ;
+         LAYER met2 ;
+	    RECT 0.5000 3.9050 74.7000 194.3950 ;
+	    RECT 0.5000 1.7300 54.4350 3.9050 ;
+	    RECT 20.7750 0.5700 54.4350 1.7300 ;
+	    RECT 20.7750 -0.0350 34.1600 0.5700 ;
+	    RECT 44.7200 -0.0350 54.4350 0.5700 ;
+         LAYER met3 ;
+	    RECT 0.4900 24.2150 74.7000 197.9650 ;
+	    RECT 24.9000 23.2650 50.3550 24.2150 ;
+	    RECT 24.9000 20.5850 37.9800 23.2650 ;
+	    RECT 24.9000 1.6950 25.6000 20.5850 ;
+	    RECT 37.2800 1.6950 37.9800 20.5850 ;
+	    RECT 49.6550 1.6950 50.3550 23.2650 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 169.1350 75.0000 197.9650 ;
+	    RECT 0.0000 98.5050 7.7150 169.1350 ;
+	    RECT 67.5550 98.5050 75.0000 169.1350 ;
+	    RECT 0.0000 94.5500 75.0000 98.5050 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vssio_lvc_pad
+MACRO s8iom0_vssa_lvc_pad
+   CLASS PAD GROUND ;
+   FOREIGN s8iom0_vssa_lvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 51.0900 75.0000 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 46.3300 75.0000 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_lvc1
+      PORT
+         LAYER met3 ;
+	    RECT 26.0000 -0.0350 36.8800 20.1850 ;
+      END
+   END drn_lvc1
+   PIN drn_lvc2
+      PORT
+         LAYER met3 ;
+	    RECT 38.3800 -0.0350 49.2550 22.8650 ;
+      END
+   END drn_lvc2
+   PIN src_bdy_lvc1
+      PORT
+         LAYER met2 ;
+	    RECT 0.5000 -0.0350 20.4950 1.4500 ;
+      END
+   END src_bdy_lvc1
+   PIN src_bdy_lvc2
+      PORT
+         LAYER met2 ;
+	    RECT 54.7150 -0.0350 74.7000 3.6250 ;
+      END
+   END src_bdy_lvc2
+   PIN bdy2_b2b
+      PORT
+         LAYER met2 ;
+	    RECT 34.4400 -0.0350 44.4400 0.2900 ;
+      END
+   END bdy2_b2b
+   PIN vssi
+      PORT
+         LAYER met1 ;
+	    RECT 34.3350 0.4750 35.3350 0.9750 ;
+      END
+   END vssi
+   PIN vssa
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8000 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8000 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.5000 -0.0350 24.5000 34.7250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.7550 -0.0350 74.7000 34.7250 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 9.3150 100.1050 65.9550 167.5350 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 0.2400 0.9850 74.7550 197.7450 ;
+         LAYER met1 ;
+	    RECT 0.1200 1.2550 74.7850 197.8050 ;
+	    RECT 0.1200 0.1950 34.0550 1.2550 ;
+	    RECT 35.6150 0.1950 74.7850 1.2550 ;
+	    RECT 0.1200 -0.0350 74.7850 0.1950 ;
+         LAYER met2 ;
+	    RECT 0.5000 3.9050 74.7000 194.3950 ;
+	    RECT 0.5000 1.7300 54.4350 3.9050 ;
+	    RECT 20.7750 0.5700 54.4350 1.7300 ;
+	    RECT 20.7750 -0.0350 34.1600 0.5700 ;
+	    RECT 44.7200 -0.0350 54.4350 0.5700 ;
+         LAYER met3 ;
+	    RECT 0.4900 35.1250 74.7000 189.4800 ;
+	    RECT 24.9000 23.2650 50.3550 35.1250 ;
+	    RECT 24.9000 20.5850 37.9800 23.2650 ;
+	    RECT 24.9000 1.5450 25.6000 20.5850 ;
+	    RECT 37.2800 1.5450 37.9800 20.5850 ;
+	    RECT 49.6550 1.5450 50.3550 23.2650 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 169.1350 75.0000 197.9650 ;
+	    RECT 0.0000 98.5050 7.7150 169.1350 ;
+	    RECT 67.5550 98.5050 75.0000 169.1350 ;
+	    RECT 0.0000 94.5500 75.0000 98.5050 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vssa_lvc_pad
+MACRO s8iom0_vssa_hvc_pad
+   CLASS PAD GROUND ;
+   FOREIGN s8iom0_vssa_hvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 50.3900 -2.0350 74.2900 23.6250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 37.8900 -2.0350 48.8900 10.3450 ;
+      END
+   END drn_hvc
+   PIN src_bdy_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 0.4950 -2.0350 24.3950 0.0200 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 25.8950 -2.0350 36.8950 10.3900 ;
+      END
+   END src_bdy_hvc
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 6.1000 101.9750 68.8000 164.5900 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.4950 -2.0350 24.3950 30.4800 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.3900 -2.0350 74.2900 34.7250 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2050 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 74.3600 189.5650 74.3700 189.5750 ;
+      END
+   END vssio
+   OBS
+         LAYER li1 ;
+	    RECT 1.0700 -1.0350 72.7750 197.6600 ;
+         LAYER met1 ;
+	    RECT 0.1850 -1.0650 73.6200 197.6900 ;
+         LAYER met2 ;
+	    RECT 0.2650 23.9050 74.2900 193.0400 ;
+	    RECT 0.2650 0.3000 50.1100 23.9050 ;
+	    RECT 24.6750 -2.0350 50.1100 0.3000 ;
+         LAYER met3 ;
+	    RECT 0.2400 35.1250 74.2900 193.0650 ;
+	    RECT 0.2400 30.8800 49.9900 35.1250 ;
+	    RECT 24.7950 10.7900 49.9900 30.8800 ;
+	    RECT 24.7950 10.3450 25.4950 10.7900 ;
+	    RECT 37.2950 10.7450 49.9900 10.7900 ;
+	    RECT 37.2950 10.3450 37.4900 10.7450 ;
+	    RECT 49.2900 10.3450 49.9900 10.7450 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 54.4700 73.3300 55.1000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 1.6700 45.3000 73.3300 45.9300 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 166.1900 75.0000 197.9650 ;
+	    RECT 0.0000 100.3750 4.5000 166.1900 ;
+	    RECT 70.4000 100.3750 75.0000 166.1900 ;
+	    RECT 0.0000 94.5500 75.0000 100.3750 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vssa_hvc_pad
+MACRO s8iom0_vssd_hvc_pad
+   CLASS PAD GROUND ;
+   FOREIGN s8iom0_vssd_hvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 50.3900 -2.0350 74.2900 23.6250 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 37.8900 -2.0350 48.8900 10.3450 ;
+      END
+   END drn_hvc
+   PIN src_bdy_hvc
+      PORT
+         LAYER met2 ;
+	    RECT 0.4950 -2.0350 24.3950 0.0200 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 25.8950 -2.0350 36.8950 10.3900 ;
+      END
+   END src_bdy_hvc
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2050 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.2250 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 6.1000 101.9750 68.8000 164.5900 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.4950 -2.0350 24.3950 30.4800 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.3900 -2.0350 74.2900 39.5650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 1.0700 -1.0350 72.7750 197.6600 ;
+         LAYER met1 ;
+	    RECT 0.1850 -1.0650 73.6200 197.6900 ;
+         LAYER met2 ;
+	    RECT 0.2650 23.9050 74.2900 193.0400 ;
+	    RECT 0.2650 0.3000 50.1100 23.9050 ;
+	    RECT 24.6750 -2.0350 50.1100 0.3000 ;
+         LAYER met3 ;
+	    RECT 0.2400 39.9650 74.2900 193.0650 ;
+	    RECT 0.2400 30.8800 49.9900 39.9650 ;
+	    RECT 24.7950 10.7900 49.9900 30.8800 ;
+	    RECT 24.7950 10.3450 25.4950 10.7900 ;
+	    RECT 37.2950 10.7450 49.9900 10.7900 ;
+	    RECT 37.2950 10.3450 37.4900 10.7450 ;
+	    RECT 49.2900 10.3450 49.9900 10.7450 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 166.1900 75.0000 197.9650 ;
+	    RECT 0.0000 100.3750 4.5000 166.1900 ;
+	    RECT 70.4000 100.3750 75.0000 166.1900 ;
+	    RECT 0.0000 94.5500 75.0000 100.3750 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vssd_hvc_pad
+MACRO s8iom0_vssd_lvc_pad
+   CLASS PAD GROUND ;
+   FOREIGN s8iom0_vssd_lvc_pad ;
+   ORIGIN -0.0000 -0.0000 ;
+   SIZE 75.0000 BY 197.9650 ;
+   PIN amuxbus_a
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 75.0000 54.0700 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 51.0900 1.2700 54.0700 ;
+      END
+   END amuxbus_a
+   PIN amuxbus_b
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 75.0000 49.3100 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 46.3300 1.2700 49.3100 ;
+      END
+   END amuxbus_b
+   PIN drn_lvc1
+      PORT
+         LAYER met3 ;
+	    RECT 26.0000 -0.0350 36.8800 20.1850 ;
+      END
+   END drn_lvc1
+   PIN drn_lvc2
+      PORT
+         LAYER met3 ;
+	    RECT 38.3800 -0.0350 49.2550 22.8650 ;
+      END
+   END drn_lvc2
+   PIN src_bdy_lvc1
+      PORT
+         LAYER met2 ;
+	    RECT 0.5000 -0.0350 20.4950 1.4500 ;
+      END
+   END src_bdy_lvc1
+   PIN src_bdy_lvc2
+      PORT
+         LAYER met2 ;
+	    RECT 54.7150 -0.0350 74.7000 3.6250 ;
+      END
+   END src_bdy_lvc2
+   PIN bdy2_b2b
+      PORT
+         LAYER met2 ;
+	    RECT 34.4400 -0.0350 44.4400 0.2900 ;
+      END
+   END bdy2_b2b
+   PIN vssi
+      PORT
+         LAYER met1 ;
+	    RECT 34.3350 0.4750 35.3350 0.9750 ;
+      END
+   END vssi
+   PIN vssa
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 45.7000 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 34.8050 75.0000 38.0500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 45.7000 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 34.8050 1.2700 38.0500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 49.6100 75.0000 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 75.0000 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 75.0000 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 34.7000 75.0000 38.1500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 45.7000 1.2700 46.0300 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 49.6100 1.2700 50.7900 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 54.3700 1.2700 54.7000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 34.7000 1.2700 38.1500 ;
+      END
+   END vssa
+   PIN vdda
+      PORT
+         LAYER met5 ;
+	    RECT 74.0350 13.0000 75.0000 16.2500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 13.0000 0.9650 16.2500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 74.0350 12.9000 75.0000 16.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 12.9000 0.9650 16.3500 ;
+      END
+   END vdda
+   PIN vswitch
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 29.9500 75.0000 33.2000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 29.9500 1.2700 33.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 29.8500 75.0000 33.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 29.8500 1.2700 33.3000 ;
+      END
+   END vswitch
+   PIN vddio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 62.1500 75.0000 66.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 62.1500 1.2700 66.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 62.0500 75.0000 66.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 62.0500 1.2700 66.5000 ;
+      END
+   END vddio_q
+   PIN vcchib
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 0.1000 75.0000 5.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 0.1000 1.2700 5.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 0.0000 75.0000 5.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 0.0000 1.2700 5.4500 ;
+      END
+   END vcchib
+   PIN vddio
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 68.0000 75.0000 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 17.8500 75.0000 22.3000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 68.0000 1.2700 92.9500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 17.8500 1.2700 22.3000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 17.7500 75.0000 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 68.0000 75.0000 92.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 17.7500 1.2700 22.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 68.0000 1.2700 92.9650 ;
+      END
+   END vddio
+   PIN vccd
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 6.9500 75.0000 11.4000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 6.9500 1.2700 11.4000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 6.8500 75.0000 11.5000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 6.8500 1.2700 11.5000 ;
+      END
+   END vccd
+   PIN vssio
+      PORT
+         LAYER met4 ;
+	    RECT 74.2250 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2050 197.9650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 23.9000 75.0000 28.3500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 23.9000 1.2700 28.3500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 23.8000 75.0000 28.4500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 173.7500 75.0000 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 173.7500 1.2700 197.9650 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 23.8000 1.2700 28.4500 ;
+      END
+   END vssio
+   PIN vssd
+      PORT
+         LAYER met5 ;
+	    RECT 9.3150 100.1050 65.9550 167.5350 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 50.7550 -0.0350 74.7000 39.5650 ;
+      END
+      PORT
+         LAYER met3 ;
+	    RECT 0.5000 -0.0350 24.5000 39.5650 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 39.6500 75.0000 44.1000 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 39.6500 1.2700 44.1000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 39.5500 75.0000 44.2000 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 39.5500 1.2700 44.2000 ;
+      END
+   END vssd
+   PIN vssio_q
+      PORT
+         LAYER met5 ;
+	    RECT 73.7300 56.3000 75.0000 60.5500 ;
+      END
+      PORT
+         LAYER met5 ;
+	    RECT 0.0000 56.3000 1.2700 60.5500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 73.7300 56.2000 75.0000 60.6500 ;
+      END
+      PORT
+         LAYER met4 ;
+	    RECT 0.0000 56.2000 1.2700 60.6500 ;
+      END
+   END vssio_q
+   OBS
+         LAYER li1 ;
+	    RECT 0.2400 0.9850 74.7550 197.7450 ;
+         LAYER met1 ;
+	    RECT 0.1200 1.2550 74.7850 197.8050 ;
+	    RECT 0.1200 0.1950 34.0550 1.2550 ;
+	    RECT 35.6150 0.1950 74.7850 1.2550 ;
+	    RECT 0.1200 -0.0350 74.7850 0.1950 ;
+         LAYER met2 ;
+	    RECT 0.5000 3.9050 74.7000 194.3950 ;
+	    RECT 0.5000 1.7300 54.4350 3.9050 ;
+	    RECT 20.7750 0.5700 54.4350 1.7300 ;
+	    RECT 20.7750 -0.0350 34.1600 0.5700 ;
+	    RECT 44.7200 -0.0350 54.4350 0.5700 ;
+         LAYER met3 ;
+	    RECT 0.5000 39.9650 74.7000 189.4800 ;
+	    RECT 24.9000 23.2650 50.3550 39.9650 ;
+	    RECT 24.9000 20.5850 37.9800 23.2650 ;
+	    RECT 24.9000 17.7550 25.6000 20.5850 ;
+	    RECT 37.2800 17.7550 37.9800 20.5850 ;
+	    RECT 49.6550 17.7550 50.3550 23.2650 ;
+         LAYER met4 ;
+	    RECT 1.6700 173.3500 73.3300 197.9650 ;
+	    RECT 0.9650 93.3650 74.0350 173.3500 ;
+	    RECT 1.6700 67.6000 73.3300 93.3650 ;
+	    RECT 0.9650 66.9000 74.0350 67.6000 ;
+	    RECT 1.6700 61.6500 73.3300 66.9000 ;
+	    RECT 0.9650 61.0500 74.0350 61.6500 ;
+	    RECT 1.6700 55.8000 73.3300 61.0500 ;
+	    RECT 0.9650 55.1000 74.0350 55.8000 ;
+	    RECT 1.6700 49.7100 73.3300 50.6900 ;
+	    RECT 0.9650 44.6000 74.0350 45.3000 ;
+	    RECT 1.6700 39.1500 73.3300 44.6000 ;
+	    RECT 0.9650 38.5500 74.0350 39.1500 ;
+	    RECT 1.6700 34.3000 73.3300 38.5500 ;
+	    RECT 0.9650 33.7000 74.0350 34.3000 ;
+	    RECT 1.6700 29.4500 73.3300 33.7000 ;
+	    RECT 0.9650 28.8500 74.0350 29.4500 ;
+	    RECT 1.6700 23.4000 73.3300 28.8500 ;
+	    RECT 0.9650 22.8000 74.0350 23.4000 ;
+	    RECT 1.6700 17.3500 73.3300 22.8000 ;
+	    RECT 0.9650 16.7500 74.0350 17.3500 ;
+	    RECT 1.3650 12.5000 73.6350 16.7500 ;
+	    RECT 0.9650 11.9000 74.0350 12.5000 ;
+	    RECT 1.6700 6.4500 73.3300 11.9000 ;
+	    RECT 0.9650 5.8500 74.0350 6.4500 ;
+	    RECT 1.6700 0.0000 73.3300 5.8500 ;
+         LAYER met5 ;
+	    RECT 0.0000 169.1350 75.0000 197.9650 ;
+	    RECT 0.0000 98.5050 7.7150 169.1350 ;
+	    RECT 67.5550 98.5050 75.0000 169.1350 ;
+	    RECT 0.0000 94.5500 75.0000 98.5050 ;
+	    RECT 2.8700 16.2500 72.1300 94.5500 ;
+	    RECT 2.5650 13.0000 72.4350 16.2500 ;
+	    RECT 2.8700 0.1000 72.1300 13.0000 ;
+   END
+END s8iom0_vssd_lvc_pad
+END LIBRARY ;
diff --git a/sky130/custom/sky130_fd_io/mag/all_pads_test.mag b/sky130/custom/sky130_fd_io/mag/all_pads_test.mag
new file mode 100644
index 0000000..54d9f7a
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/all_pads_test.mag
@@ -0,0 +1,8491 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584383567
+<< error_s >>
+rect 119603 132136 121521 132218
+rect 98716 131466 98782 131482
+rect 800 131078 866 131094
+rect 1823 129308 1824 129332
+rect 1904 129308 1905 129332
+rect 2377 129308 2378 129332
+rect 2458 129308 2459 129332
+rect 2931 129308 2932 129332
+rect 3012 129308 3013 129332
+rect 3485 129308 3486 129332
+rect 3566 129308 3567 129332
+rect 4039 129308 4040 129332
+rect 4120 129308 4121 129332
+rect 4593 129308 4594 129332
+rect 4674 129308 4675 129332
+rect 5147 129308 5148 129332
+rect 5228 129308 5229 129332
+rect 5701 129308 5702 129332
+rect 5782 129308 5783 129332
+rect 6255 129308 6256 129332
+rect 6336 129308 6337 129332
+rect 6809 129308 6810 129332
+rect 6890 129308 6891 129332
+rect 7363 129308 7364 129332
+rect 7444 129308 7445 129332
+rect 7917 129308 7918 129332
+rect 7998 129308 7999 129332
+rect 8471 129308 8472 129332
+rect 8552 129308 8553 129332
+rect 9025 129308 9026 129332
+rect 9106 129308 9107 129332
+rect 9579 129308 9580 129332
+rect 9660 129308 9661 129332
+rect 10133 129308 10134 129332
+rect 10214 129308 10215 129332
+rect 10687 129308 10688 129332
+rect 10768 129308 10769 129332
+rect 11241 129308 11242 129332
+rect 11322 129308 11323 129332
+rect 11795 129308 11796 129332
+rect 11876 129308 11877 129332
+rect 12349 129308 12350 129332
+rect 12430 129308 12431 129332
+rect 1847 129284 1881 129296
+rect 2401 129284 2435 129296
+rect 2955 129284 2989 129296
+rect 3509 129284 3543 129296
+rect 4063 129284 4097 129296
+rect 4617 129284 4651 129296
+rect 5171 129284 5205 129296
+rect 5725 129284 5759 129296
+rect 6279 129284 6313 129296
+rect 6833 129284 6867 129296
+rect 7387 129284 7421 129296
+rect 7941 129284 7975 129296
+rect 8495 129284 8529 129296
+rect 9049 129284 9083 129296
+rect 9603 129284 9637 129296
+rect 10157 129284 10191 129296
+rect 10711 129284 10745 129296
+rect 11265 129284 11299 129296
+rect 11819 129284 11853 129296
+rect 12373 129284 12407 129296
+rect 22784 129100 22856 131100
+rect 23055 129133 23173 131027
+rect 23444 129100 23504 131100
+rect 23704 129100 23776 131100
+rect 23975 129133 24093 131027
+rect 24364 129100 24424 131100
+rect 24624 129100 24696 131100
+rect 24895 129133 25013 131027
+rect 25284 129100 25344 131100
+rect 25544 129100 25616 131100
+rect 25815 129133 25933 131027
+rect 26204 129100 26264 131100
+rect 26464 129100 26536 131100
+rect 26735 129133 26853 131027
+rect 27124 129100 27184 131100
+rect 27384 129100 27456 131100
+rect 27655 129133 27773 131027
+rect 28044 129100 28104 131100
+rect 28304 129100 28376 131100
+rect 28575 129133 28693 131027
+rect 28964 129100 29024 131100
+rect 29224 129100 29296 131100
+rect 29495 129133 29613 131027
+rect 29884 129100 29944 131100
+rect 30144 129100 30216 131100
+rect 30415 129133 30533 131027
+rect 30804 129100 30864 131100
+rect 31064 129100 31136 131100
+rect 31335 129133 31453 131027
+rect 31724 129100 31784 131100
+rect 31984 129100 32056 131100
+rect 32255 129133 32373 131027
+rect 32644 129100 32704 131100
+rect 119390 131001 119472 132035
+rect 119682 131171 119764 131865
+rect 119904 131854 121210 131936
+rect 120072 131660 121014 131710
+rect 119941 131617 119967 131628
+rect 119957 131577 120051 131617
+rect 120963 131577 121057 131617
+rect 119957 131417 120051 131457
+rect 120963 131417 121057 131457
+rect 119941 131406 119967 131417
+rect 120072 131316 121014 131366
+rect 119904 131102 121210 131184
+rect 121250 131171 121332 131865
+rect 121542 131001 121624 132035
+rect 122443 131134 122493 132134
+rect 122593 131134 122721 132134
+rect 122749 131134 122799 132134
+rect 122865 131134 122915 132134
+rect 123075 131134 123131 132134
+rect 123291 131134 123347 132134
+rect 123447 131134 123575 132134
+rect 123603 131134 123653 132134
+rect 123769 131134 123819 132134
+rect 123979 131134 124035 132134
+rect 124135 131134 124263 132134
+rect 124291 131134 124347 132134
+rect 124447 131134 124575 132134
+rect 124603 131134 124659 132134
+rect 124759 131134 124809 132134
+rect 124875 131134 124925 131734
+rect 125025 131134 125075 131734
+rect 125141 131134 125191 132134
+rect 125291 131134 125347 132134
+rect 125447 131134 125497 132134
+rect 126387 131130 126445 131164
+rect 127227 131142 127277 132142
+rect 127377 131142 127505 132142
+rect 127533 131142 127661 132142
+rect 127689 131142 127817 132142
+rect 127845 131142 127973 132142
+rect 128001 131142 128051 132142
+rect 128117 131142 128167 132142
+rect 128267 131142 128323 132142
+rect 128423 131142 128473 132142
+rect 128539 131142 128589 132142
+rect 128689 131142 128817 132142
+rect 128845 131142 128901 132142
+rect 129001 131142 129129 132142
+rect 129157 131142 129207 132142
+rect 129273 131142 129323 132142
+rect 129423 131142 129551 132142
+rect 129579 131142 129635 132142
+rect 129735 131142 129863 132142
+rect 129891 131514 129941 132142
+rect 129891 131442 129944 131514
+rect 129891 131142 129941 131442
+rect 130004 131142 130016 131442
+rect 133592 130979 134592 131029
+rect 39774 130302 39840 130318
+rect 40797 128532 40798 128556
+rect 40878 128532 40879 128556
+rect 41351 128532 41352 128556
+rect 41432 128532 41433 128556
+rect 41905 128532 41906 128556
+rect 41986 128532 41987 128556
+rect 42459 128532 42460 128556
+rect 42540 128532 42541 128556
+rect 43013 128532 43014 128556
+rect 43094 128532 43095 128556
+rect 43567 128532 43568 128556
+rect 43648 128532 43649 128556
+rect 44121 128532 44122 128556
+rect 44202 128532 44203 128556
+rect 44675 128532 44676 128556
+rect 44756 128532 44757 128556
+rect 45229 128532 45230 128556
+rect 45310 128532 45311 128556
+rect 45783 128532 45784 128556
+rect 45864 128532 45865 128556
+rect 46337 128532 46338 128556
+rect 46418 128532 46419 128556
+rect 46891 128532 46892 128556
+rect 46972 128532 46973 128556
+rect 47445 128532 47446 128556
+rect 47526 128532 47527 128556
+rect 47999 128532 48000 128556
+rect 48080 128532 48081 128556
+rect 48553 128532 48554 128556
+rect 48634 128532 48635 128556
+rect 49107 128532 49108 128556
+rect 49188 128532 49189 128556
+rect 49661 128532 49662 128556
+rect 49742 128532 49743 128556
+rect 50215 128532 50216 128556
+rect 50296 128532 50297 128556
+rect 50769 128532 50770 128556
+rect 50850 128532 50851 128556
+rect 51323 128532 51324 128556
+rect 51404 128532 51405 128556
+rect 40821 128508 40855 128520
+rect 41375 128508 41409 128520
+rect 41929 128508 41963 128520
+rect 42483 128508 42517 128520
+rect 43037 128508 43071 128520
+rect 43591 128508 43625 128520
+rect 44145 128508 44179 128520
+rect 44699 128508 44733 128520
+rect 45253 128508 45287 128520
+rect 45807 128508 45841 128520
+rect 46361 128508 46395 128520
+rect 46915 128508 46949 128520
+rect 47469 128508 47503 128520
+rect 48023 128508 48057 128520
+rect 48577 128508 48611 128520
+rect 49131 128508 49165 128520
+rect 49685 128508 49719 128520
+rect 50239 128508 50273 128520
+rect 50793 128508 50827 128520
+rect 51347 128508 51381 128520
+rect 2377 127308 2378 127332
+rect 2458 127308 2459 127332
+rect 2931 127308 2932 127332
+rect 3012 127308 3013 127332
+rect 3485 127308 3486 127332
+rect 3566 127308 3567 127332
+rect 4039 127308 4040 127332
+rect 4120 127308 4121 127332
+rect 4593 127308 4594 127332
+rect 4674 127308 4675 127332
+rect 5147 127308 5148 127332
+rect 5228 127308 5229 127332
+rect 5701 127308 5702 127332
+rect 5782 127308 5783 127332
+rect 6255 127308 6256 127332
+rect 6336 127308 6337 127332
+rect 6809 127308 6810 127332
+rect 6890 127308 6891 127332
+rect 7363 127308 7364 127332
+rect 7444 127308 7445 127332
+rect 7917 127308 7918 127332
+rect 7998 127308 7999 127332
+rect 8471 127308 8472 127332
+rect 8552 127308 8553 127332
+rect 9025 127308 9026 127332
+rect 9106 127308 9107 127332
+rect 9579 127308 9580 127332
+rect 9660 127308 9661 127332
+rect 10133 127308 10134 127332
+rect 10214 127308 10215 127332
+rect 10687 127308 10688 127332
+rect 10768 127308 10769 127332
+rect 11241 127308 11242 127332
+rect 11322 127308 11323 127332
+rect 11795 127308 11796 127332
+rect 11876 127308 11877 127332
+rect 12349 127308 12350 127332
+rect 12430 127308 12431 127332
+rect 2401 127284 2435 127296
+rect 2955 127284 2989 127296
+rect 3509 127284 3543 127296
+rect 4063 127284 4097 127296
+rect 4617 127284 4651 127296
+rect 5171 127284 5205 127296
+rect 5725 127284 5759 127296
+rect 6279 127284 6313 127296
+rect 6833 127284 6867 127296
+rect 7387 127284 7421 127296
+rect 7941 127284 7975 127296
+rect 8495 127284 8529 127296
+rect 9049 127284 9083 127296
+rect 9603 127284 9637 127296
+rect 10157 127284 10191 127296
+rect 10711 127284 10745 127296
+rect 11265 127284 11299 127296
+rect 11819 127284 11853 127296
+rect 12373 127284 12407 127296
+rect 2317 125308 2318 125332
+rect 2398 125308 2399 125332
+rect 3153 125308 3154 125332
+rect 3234 125308 3235 125332
+rect 3989 125308 3990 125332
+rect 4070 125308 4071 125332
+rect 4825 125308 4826 125332
+rect 4906 125308 4907 125332
+rect 5661 125308 5662 125332
+rect 5742 125308 5743 125332
+rect 6497 125308 6498 125332
+rect 6578 125308 6579 125332
+rect 7333 125308 7334 125332
+rect 7414 125308 7415 125332
+rect 8169 125308 8170 125332
+rect 8250 125308 8251 125332
+rect 9005 125308 9006 125332
+rect 9086 125308 9087 125332
+rect 9841 125308 9842 125332
+rect 9922 125308 9923 125332
+rect 10677 125308 10678 125332
+rect 10758 125308 10759 125332
+rect 11513 125308 11514 125332
+rect 11594 125308 11595 125332
+rect 12349 125308 12350 125332
+rect 12430 125308 12431 125332
+rect 2341 125284 2375 125296
+rect 3177 125284 3211 125296
+rect 4013 125284 4047 125296
+rect 4849 125284 4883 125296
+rect 5685 125284 5719 125296
+rect 6521 125284 6555 125296
+rect 7357 125284 7391 125296
+rect 8193 125284 8227 125296
+rect 9029 125284 9063 125296
+rect 9865 125284 9899 125296
+rect 10701 125284 10735 125296
+rect 11537 125284 11571 125296
+rect 12373 125284 12407 125296
+rect 22784 124500 22856 128500
+rect 23055 124533 23173 128467
+rect 23444 124500 23504 128500
+rect 23704 124500 23776 128500
+rect 23975 124533 24093 128467
+rect 24364 124500 24424 128500
+rect 24624 124500 24696 128500
+rect 24895 124533 25013 128467
+rect 25284 124500 25344 128500
+rect 25544 124500 25616 128500
+rect 25815 124533 25933 128467
+rect 26204 124500 26264 128500
+rect 26464 124500 26536 128500
+rect 26735 124533 26853 128467
+rect 27124 124500 27184 128500
+rect 27384 124500 27456 128500
+rect 27655 124533 27773 128467
+rect 28044 124500 28104 128500
+rect 28304 124500 28376 128500
+rect 28575 124533 28693 128467
+rect 28964 124500 29024 128500
+rect 29224 124500 29296 128500
+rect 29495 124533 29613 128467
+rect 29884 124500 29944 128500
+rect 30144 124500 30216 128500
+rect 30415 124533 30533 128467
+rect 30804 124500 30864 128500
+rect 31064 124500 31136 128500
+rect 31335 124533 31453 128467
+rect 31724 124500 31784 128500
+rect 31984 124500 32056 128500
+rect 32255 124533 32373 128467
+rect 32644 124500 32704 128500
+rect 59624 127964 59696 129964
+rect 59895 127997 60013 129891
+rect 60284 127964 60344 129964
+rect 60544 127964 60616 129964
+rect 60815 127997 60933 129891
+rect 61204 127964 61264 129964
+rect 61464 127964 61536 129964
+rect 61735 127997 61853 129891
+rect 62124 127964 62184 129964
+rect 62384 127964 62456 129964
+rect 62655 127997 62773 129891
+rect 63044 127964 63104 129964
+rect 63304 127964 63376 129964
+rect 63575 127997 63693 129891
+rect 63964 127964 64024 129964
+rect 64224 127964 64296 129964
+rect 64495 127997 64613 129891
+rect 64884 127964 64944 129964
+rect 65144 127964 65216 129964
+rect 65415 127997 65533 129891
+rect 65804 127964 65864 129964
+rect 66064 127964 66136 129964
+rect 66335 127997 66453 129891
+rect 66724 127964 66784 129964
+rect 66984 127964 67056 129964
+rect 67255 127997 67373 129891
+rect 67644 127964 67704 129964
+rect 67904 127964 67976 129964
+rect 68175 127997 68293 129891
+rect 68564 127964 68624 129964
+rect 68824 127964 68896 129964
+rect 69095 127997 69213 129891
+rect 69484 127964 69544 129964
+rect 80176 128934 80248 130934
+rect 80447 128967 80565 130861
+rect 80836 128934 80896 130934
+rect 81096 128934 81168 130934
+rect 81367 128967 81485 130861
+rect 81756 128934 81816 130934
+rect 82016 128934 82088 130934
+rect 82287 128967 82405 130861
+rect 82676 128934 82736 130934
+rect 82936 128934 83008 130934
+rect 83207 128967 83325 130861
+rect 83596 128934 83656 130934
+rect 83856 128934 83928 130934
+rect 84127 128967 84245 130861
+rect 84516 128934 84576 130934
+rect 84776 128934 84848 130934
+rect 85047 128967 85165 130861
+rect 85436 128934 85496 130934
+rect 85696 128934 85768 130934
+rect 85967 128967 86085 130861
+rect 86356 128934 86416 130934
+rect 86616 128934 86688 130934
+rect 86887 128967 87005 130861
+rect 87276 128934 87336 130934
+rect 87536 128934 87608 130934
+rect 87807 128967 87925 130861
+rect 88196 128934 88256 130934
+rect 88456 128934 88528 130934
+rect 88727 128967 88845 130861
+rect 89116 128934 89176 130934
+rect 89376 128934 89448 130934
+rect 89647 128967 89765 130861
+rect 90036 128934 90096 130934
+rect 121650 130927 121653 130928
+rect 121650 130926 121651 130927
+rect 121652 130926 121653 130927
+rect 121650 130925 121653 130926
+rect 119603 130817 121521 130899
+rect 133592 130823 134592 130951
+rect 121650 130790 121653 130791
+rect 121650 130789 121651 130790
+rect 121652 130789 121653 130790
+rect 121650 130788 121653 130789
+rect 99739 129696 99740 129720
+rect 99820 129696 99821 129720
+rect 100293 129696 100294 129720
+rect 100374 129696 100375 129720
+rect 100847 129696 100848 129720
+rect 100928 129696 100929 129720
+rect 101401 129696 101402 129720
+rect 101482 129696 101483 129720
+rect 101955 129696 101956 129720
+rect 102036 129696 102037 129720
+rect 102509 129696 102510 129720
+rect 102590 129696 102591 129720
+rect 103063 129696 103064 129720
+rect 103144 129696 103145 129720
+rect 103617 129696 103618 129720
+rect 103698 129696 103699 129720
+rect 104171 129696 104172 129720
+rect 104252 129696 104253 129720
+rect 104725 129696 104726 129720
+rect 104806 129696 104807 129720
+rect 105279 129696 105280 129720
+rect 105360 129696 105361 129720
+rect 105833 129696 105834 129720
+rect 105914 129696 105915 129720
+rect 106387 129696 106388 129720
+rect 106468 129696 106469 129720
+rect 106941 129696 106942 129720
+rect 107022 129696 107023 129720
+rect 107495 129696 107496 129720
+rect 107576 129696 107577 129720
+rect 108049 129696 108050 129720
+rect 108130 129696 108131 129720
+rect 108603 129696 108604 129720
+rect 108684 129696 108685 129720
+rect 109157 129696 109158 129720
+rect 109238 129696 109239 129720
+rect 109711 129696 109712 129720
+rect 109792 129696 109793 129720
+rect 110265 129696 110266 129720
+rect 110346 129696 110347 129720
+rect 99763 129672 99797 129684
+rect 100317 129672 100351 129684
+rect 100871 129672 100905 129684
+rect 101425 129672 101459 129684
+rect 101979 129672 102013 129684
+rect 102533 129672 102567 129684
+rect 103087 129672 103121 129684
+rect 103641 129672 103675 129684
+rect 104195 129672 104229 129684
+rect 104749 129672 104783 129684
+rect 105303 129672 105337 129684
+rect 105857 129672 105891 129684
+rect 106411 129672 106445 129684
+rect 106965 129672 106999 129684
+rect 107519 129672 107553 129684
+rect 108073 129672 108107 129684
+rect 108627 129672 108661 129684
+rect 109181 129672 109215 129684
+rect 109735 129672 109769 129684
+rect 110289 129672 110323 129684
+rect 119390 129681 119472 130715
+rect 119682 129851 119764 130545
+rect 119904 130532 121210 130614
+rect 120072 130350 121014 130400
+rect 119941 130299 119967 130310
+rect 119957 130259 120051 130299
+rect 120963 130259 121057 130299
+rect 119957 130099 120051 130139
+rect 120963 130099 121057 130139
+rect 119941 130088 119967 130099
+rect 120072 130006 121014 130056
+rect 119904 129780 121210 129862
+rect 121250 129851 121332 130545
+rect 121542 129681 121624 130715
+rect 127486 130689 128486 130739
+rect 128882 130689 129482 130739
+rect 127486 130533 128486 130661
+rect 131226 130629 132226 130679
+rect 133592 130673 134592 130723
+rect 128882 130533 129482 130589
+rect 127486 130377 128486 130505
+rect 128882 130377 129482 130433
+rect 131226 130413 132226 130541
+rect 127486 130227 128486 130277
+rect 128882 130221 129482 130277
+rect 131226 130203 132226 130253
+rect 128882 130071 129482 130121
+rect 119603 129498 121521 129580
+rect 120316 129443 120486 129498
+rect 121550 129443 121719 129511
+rect 120384 129363 120385 129443
+rect 120418 129403 120486 129443
+rect 120418 129363 120485 129403
+rect 120384 129362 120485 129363
+rect 121618 129363 121619 129443
+rect 121652 129363 121719 129443
+rect 121618 129362 121719 129363
+rect 120693 129142 121293 129192
+rect 120693 128892 121293 128942
+rect 122413 128467 122463 129467
+rect 122623 128467 122751 129467
+rect 122839 128467 122967 129467
+rect 123055 128467 123183 129467
+rect 123271 128467 123399 129467
+rect 123487 128467 123543 129467
+rect 123703 128467 123759 129467
+rect 123919 128467 124047 129467
+rect 124135 128467 124263 129467
+rect 124351 128467 124479 129467
+rect 124567 128467 124695 129467
+rect 124783 128467 124839 129467
+rect 124999 128467 125127 129467
+rect 125215 128467 125343 129467
+rect 125431 128467 125559 129467
+rect 125647 128467 125697 129467
+rect 125763 128467 125813 129467
+rect 125973 128467 126023 129467
+rect 126089 128467 126139 129467
+rect 126299 128467 126349 129467
+rect 126415 128467 126465 129467
+rect 126625 128467 126675 129467
+rect 126738 129282 126750 129482
+rect 126741 128467 126791 129067
+rect 126991 128467 127047 129067
+rect 127147 128467 127275 129067
+rect 127303 128467 127359 129067
+rect 127459 128467 127587 129067
+rect 127615 128467 127665 129067
+rect 127731 128467 127781 129467
+rect 127881 128467 127937 129467
+rect 128037 128467 128087 129467
+rect 128165 128467 128215 129467
+rect 128315 128467 128443 129467
+rect 128471 128467 128599 129467
+rect 128627 128467 128683 129467
+rect 128783 128467 128911 129467
+rect 128939 128467 129067 129467
+rect 129095 128467 129223 129467
+rect 129251 128467 129301 129467
+rect 129367 128467 129417 129467
+rect 129517 128467 129645 129467
+rect 129673 128467 129801 129467
+rect 129829 128467 129957 129467
+rect 129985 128467 130041 129467
+rect 130141 128467 130269 129467
+rect 130297 128467 130425 129467
+rect 130453 128467 130509 129467
+rect 130609 128467 130659 129467
+rect 131880 129267 131933 129467
+rect 131883 128467 131933 129267
+rect 132093 128467 132221 129467
+rect 132309 128467 132365 129467
+rect 132525 128467 132653 129467
+rect 132741 128467 132791 129467
+rect 132857 128467 132907 129467
+rect 133067 128467 133117 129467
+rect 130604 128380 130640 128391
+rect 130756 128380 133080 128391
+rect 130604 128358 133080 128380
+rect 130604 128357 130640 128358
+rect 130756 128357 133080 128358
+rect 41351 126532 41352 126556
+rect 41432 126532 41433 126556
+rect 41905 126532 41906 126556
+rect 41986 126532 41987 126556
+rect 42459 126532 42460 126556
+rect 42540 126532 42541 126556
+rect 43013 126532 43014 126556
+rect 43094 126532 43095 126556
+rect 43567 126532 43568 126556
+rect 43648 126532 43649 126556
+rect 44121 126532 44122 126556
+rect 44202 126532 44203 126556
+rect 44675 126532 44676 126556
+rect 44756 126532 44757 126556
+rect 45229 126532 45230 126556
+rect 45310 126532 45311 126556
+rect 45783 126532 45784 126556
+rect 45864 126532 45865 126556
+rect 46337 126532 46338 126556
+rect 46418 126532 46419 126556
+rect 46891 126532 46892 126556
+rect 46972 126532 46973 126556
+rect 47445 126532 47446 126556
+rect 47526 126532 47527 126556
+rect 47999 126532 48000 126556
+rect 48080 126532 48081 126556
+rect 48553 126532 48554 126556
+rect 48634 126532 48635 126556
+rect 49107 126532 49108 126556
+rect 49188 126532 49189 126556
+rect 49661 126532 49662 126556
+rect 49742 126532 49743 126556
+rect 50215 126532 50216 126556
+rect 50296 126532 50297 126556
+rect 50769 126532 50770 126556
+rect 50850 126532 50851 126556
+rect 51323 126532 51324 126556
+rect 51404 126532 51405 126556
+rect 41375 126508 41409 126520
+rect 41929 126508 41963 126520
+rect 42483 126508 42517 126520
+rect 43037 126508 43071 126520
+rect 43591 126508 43625 126520
+rect 44145 126508 44179 126520
+rect 44699 126508 44733 126520
+rect 45253 126508 45287 126520
+rect 45807 126508 45841 126520
+rect 46361 126508 46395 126520
+rect 46915 126508 46949 126520
+rect 47469 126508 47503 126520
+rect 48023 126508 48057 126520
+rect 48577 126508 48611 126520
+rect 49131 126508 49165 126520
+rect 49685 126508 49719 126520
+rect 50239 126508 50273 126520
+rect 50793 126508 50827 126520
+rect 51347 126508 51381 126520
+rect 41291 124532 41292 124556
+rect 41372 124532 41373 124556
+rect 42127 124532 42128 124556
+rect 42208 124532 42209 124556
+rect 42963 124532 42964 124556
+rect 43044 124532 43045 124556
+rect 43799 124532 43800 124556
+rect 43880 124532 43881 124556
+rect 44635 124532 44636 124556
+rect 44716 124532 44717 124556
+rect 45471 124532 45472 124556
+rect 45552 124532 45553 124556
+rect 46307 124532 46308 124556
+rect 46388 124532 46389 124556
+rect 47143 124532 47144 124556
+rect 47224 124532 47225 124556
+rect 47979 124532 47980 124556
+rect 48060 124532 48061 124556
+rect 48815 124532 48816 124556
+rect 48896 124532 48897 124556
+rect 49651 124532 49652 124556
+rect 49732 124532 49733 124556
+rect 50487 124532 50488 124556
+rect 50568 124532 50569 124556
+rect 51323 124532 51324 124556
+rect 51404 124532 51405 124556
+rect 41315 124508 41349 124520
+rect 42151 124508 42185 124520
+rect 42987 124508 43021 124520
+rect 43823 124508 43857 124520
+rect 44659 124508 44693 124520
+rect 45495 124508 45529 124520
+rect 46331 124508 46365 124520
+rect 47167 124508 47201 124520
+rect 48003 124508 48037 124520
+rect 48839 124508 48873 124520
+rect 49675 124508 49709 124520
+rect 50511 124508 50545 124520
+rect 51347 124508 51381 124520
+rect 2317 123308 2318 123332
+rect 2398 123308 2399 123332
+rect 3153 123308 3154 123332
+rect 3234 123308 3235 123332
+rect 3989 123308 3990 123332
+rect 4070 123308 4071 123332
+rect 4825 123308 4826 123332
+rect 4906 123308 4907 123332
+rect 5661 123308 5662 123332
+rect 5742 123308 5743 123332
+rect 6497 123308 6498 123332
+rect 6578 123308 6579 123332
+rect 7333 123308 7334 123332
+rect 7414 123308 7415 123332
+rect 8169 123308 8170 123332
+rect 8250 123308 8251 123332
+rect 9005 123308 9006 123332
+rect 9086 123308 9087 123332
+rect 9841 123308 9842 123332
+rect 9922 123308 9923 123332
+rect 10677 123308 10678 123332
+rect 10758 123308 10759 123332
+rect 11513 123308 11514 123332
+rect 11594 123308 11595 123332
+rect 12349 123308 12350 123332
+rect 12430 123308 12431 123332
+rect 2341 123284 2375 123296
+rect 3177 123284 3211 123296
+rect 4013 123284 4047 123296
+rect 4849 123284 4883 123296
+rect 5685 123284 5719 123296
+rect 6521 123284 6555 123296
+rect 7357 123284 7391 123296
+rect 8193 123284 8227 123296
+rect 9029 123284 9063 123296
+rect 9865 123284 9899 123296
+rect 10701 123284 10735 123296
+rect 11537 123284 11571 123296
+rect 12373 123284 12407 123296
+rect 2317 121308 2318 121332
+rect 2398 121308 2399 121332
+rect 3153 121308 3154 121332
+rect 3234 121308 3235 121332
+rect 3989 121308 3990 121332
+rect 4070 121308 4071 121332
+rect 4825 121308 4826 121332
+rect 4906 121308 4907 121332
+rect 5661 121308 5662 121332
+rect 5742 121308 5743 121332
+rect 6497 121308 6498 121332
+rect 6578 121308 6579 121332
+rect 7333 121308 7334 121332
+rect 7414 121308 7415 121332
+rect 8169 121308 8170 121332
+rect 8250 121308 8251 121332
+rect 9005 121308 9006 121332
+rect 9086 121308 9087 121332
+rect 9841 121308 9842 121332
+rect 9922 121308 9923 121332
+rect 10677 121308 10678 121332
+rect 10758 121308 10759 121332
+rect 11513 121308 11514 121332
+rect 11594 121308 11595 121332
+rect 12349 121308 12350 121332
+rect 12430 121308 12431 121332
+rect 2341 121284 2375 121296
+rect 3177 121284 3211 121296
+rect 4013 121284 4047 121296
+rect 4849 121284 4883 121296
+rect 5685 121284 5719 121296
+rect 6521 121284 6555 121296
+rect 7357 121284 7391 121296
+rect 8193 121284 8227 121296
+rect 9029 121284 9063 121296
+rect 9865 121284 9899 121296
+rect 10701 121284 10735 121296
+rect 11537 121284 11571 121296
+rect 12373 121284 12407 121296
+rect 22784 119900 22856 123900
+rect 23055 119933 23173 123867
+rect 23444 119900 23504 123900
+rect 23704 119900 23776 123900
+rect 23975 119933 24093 123867
+rect 24364 119900 24424 123900
+rect 24624 119900 24696 123900
+rect 24895 119933 25013 123867
+rect 25284 119900 25344 123900
+rect 25544 119900 25616 123900
+rect 25815 119933 25933 123867
+rect 26204 119900 26264 123900
+rect 26464 119900 26536 123900
+rect 26735 119933 26853 123867
+rect 27124 119900 27184 123900
+rect 27384 119900 27456 123900
+rect 27655 119933 27773 123867
+rect 28044 119900 28104 123900
+rect 28304 119900 28376 123900
+rect 28575 119933 28693 123867
+rect 28964 119900 29024 123900
+rect 29224 119900 29296 123900
+rect 29495 119933 29613 123867
+rect 29884 119900 29944 123900
+rect 30144 119900 30216 123900
+rect 30415 119933 30533 123867
+rect 30804 119900 30864 123900
+rect 31064 119900 31136 123900
+rect 31335 119933 31453 123867
+rect 31724 119900 31784 123900
+rect 31984 119900 32056 123900
+rect 32255 119933 32373 123867
+rect 32644 119900 32704 123900
+rect 59624 123364 59696 127364
+rect 59895 123397 60013 127331
+rect 60284 123364 60344 127364
+rect 60544 123364 60616 127364
+rect 60815 123397 60933 127331
+rect 61204 123364 61264 127364
+rect 61464 123364 61536 127364
+rect 61735 123397 61853 127331
+rect 62124 123364 62184 127364
+rect 62384 123364 62456 127364
+rect 62655 123397 62773 127331
+rect 63044 123364 63104 127364
+rect 63304 123364 63376 127364
+rect 63575 123397 63693 127331
+rect 63964 123364 64024 127364
+rect 64224 123364 64296 127364
+rect 64495 123397 64613 127331
+rect 64884 123364 64944 127364
+rect 65144 123364 65216 127364
+rect 65415 123397 65533 127331
+rect 65804 123364 65864 127364
+rect 66064 123364 66136 127364
+rect 66335 123397 66453 127331
+rect 66724 123364 66784 127364
+rect 66984 123364 67056 127364
+rect 67255 123397 67373 127331
+rect 67644 123364 67704 127364
+rect 67904 123364 67976 127364
+rect 68175 123397 68293 127331
+rect 68564 123364 68624 127364
+rect 68824 123364 68896 127364
+rect 69095 123397 69213 127331
+rect 69484 123364 69544 127364
+rect 80176 124334 80248 128334
+rect 80447 124367 80565 128301
+rect 80836 124334 80896 128334
+rect 81096 124334 81168 128334
+rect 81367 124367 81485 128301
+rect 81756 124334 81816 128334
+rect 82016 124334 82088 128334
+rect 82287 124367 82405 128301
+rect 82676 124334 82736 128334
+rect 82936 124334 83008 128334
+rect 83207 124367 83325 128301
+rect 83596 124334 83656 128334
+rect 83856 124334 83928 128334
+rect 84127 124367 84245 128301
+rect 84516 124334 84576 128334
+rect 84776 124334 84848 128334
+rect 85047 124367 85165 128301
+rect 85436 124334 85496 128334
+rect 85696 124334 85768 128334
+rect 85967 124367 86085 128301
+rect 86356 124334 86416 128334
+rect 86616 124334 86688 128334
+rect 86887 124367 87005 128301
+rect 87276 124334 87336 128334
+rect 87536 124334 87608 128334
+rect 87807 124367 87925 128301
+rect 88196 124334 88256 128334
+rect 88456 124334 88528 128334
+rect 88727 124367 88845 128301
+rect 89116 124334 89176 128334
+rect 89376 124334 89448 128334
+rect 89647 124367 89765 128301
+rect 90036 124334 90096 128334
+rect 100293 127696 100294 127720
+rect 100374 127696 100375 127720
+rect 100847 127696 100848 127720
+rect 100928 127696 100929 127720
+rect 101401 127696 101402 127720
+rect 101482 127696 101483 127720
+rect 101955 127696 101956 127720
+rect 102036 127696 102037 127720
+rect 102509 127696 102510 127720
+rect 102590 127696 102591 127720
+rect 103063 127696 103064 127720
+rect 103144 127696 103145 127720
+rect 103617 127696 103618 127720
+rect 103698 127696 103699 127720
+rect 104171 127696 104172 127720
+rect 104252 127696 104253 127720
+rect 104725 127696 104726 127720
+rect 104806 127696 104807 127720
+rect 105279 127696 105280 127720
+rect 105360 127696 105361 127720
+rect 105833 127696 105834 127720
+rect 105914 127696 105915 127720
+rect 106387 127696 106388 127720
+rect 106468 127696 106469 127720
+rect 106941 127696 106942 127720
+rect 107022 127696 107023 127720
+rect 107495 127696 107496 127720
+rect 107576 127696 107577 127720
+rect 108049 127696 108050 127720
+rect 108130 127696 108131 127720
+rect 108603 127696 108604 127720
+rect 108684 127696 108685 127720
+rect 109157 127696 109158 127720
+rect 109238 127696 109239 127720
+rect 109711 127696 109712 127720
+rect 109792 127696 109793 127720
+rect 110265 127696 110266 127720
+rect 110346 127696 110347 127720
+rect 100317 127672 100351 127684
+rect 100871 127672 100905 127684
+rect 101425 127672 101459 127684
+rect 101979 127672 102013 127684
+rect 102533 127672 102567 127684
+rect 103087 127672 103121 127684
+rect 103641 127672 103675 127684
+rect 104195 127672 104229 127684
+rect 104749 127672 104783 127684
+rect 105303 127672 105337 127684
+rect 105857 127672 105891 127684
+rect 106411 127672 106445 127684
+rect 106965 127672 106999 127684
+rect 107519 127672 107553 127684
+rect 108073 127672 108107 127684
+rect 108627 127672 108661 127684
+rect 109181 127672 109215 127684
+rect 109735 127672 109769 127684
+rect 110289 127672 110323 127684
+rect 125666 127148 125736 127180
+rect 125770 127148 125805 127180
+rect 125839 127148 125874 127180
+rect 125908 127148 125942 127180
+rect 125976 127148 126010 127180
+rect 126044 127148 126078 127180
+rect 126112 127148 126146 127180
+rect 126180 127148 126214 127180
+rect 126248 127148 126282 127180
+rect 126316 127148 126350 127180
+rect 126384 127148 126418 127180
+rect 126452 127148 126486 127180
+rect 126520 127148 126554 127180
+rect 126588 127148 126622 127180
+rect 126656 127148 126690 127180
+rect 126724 127148 126758 127180
+rect 126792 127148 126826 127180
+rect 126860 127148 126894 127180
+rect 126928 127148 126962 127180
+rect 126996 127148 127030 127180
+rect 127064 127148 127098 127180
+rect 127132 127148 127166 127180
+rect 127200 127148 127234 127180
+rect 127268 127148 127302 127180
+rect 127336 127148 127370 127180
+rect 127404 127148 127438 127180
+rect 127472 127148 127506 127180
+rect 127540 127148 127574 127180
+rect 127608 127148 127642 127180
+rect 127676 127148 127710 127180
+rect 127744 127148 127778 127180
+rect 127812 127148 127846 127180
+rect 127880 127148 127914 127180
+rect 127948 127148 127982 127180
+rect 128016 127148 128050 127180
+rect 128084 127148 128118 127180
+rect 128152 127148 128186 127180
+rect 128220 127148 128254 127180
+rect 128288 127148 128322 127180
+rect 128356 127148 128390 127180
+rect 128424 127148 128458 127180
+rect 128492 127148 128526 127180
+rect 128560 127148 128594 127180
+rect 128628 127148 128662 127180
+rect 128696 127148 128730 127180
+rect 128764 127148 128798 127180
+rect 128832 127148 128866 127180
+rect 128900 127148 128934 127180
+rect 128968 127148 129002 127180
+rect 129036 127148 129070 127180
+rect 129104 127148 129138 127180
+rect 129172 127148 129206 127180
+rect 129240 127148 129274 127180
+rect 129308 127148 129342 127180
+rect 129376 127148 129410 127180
+rect 129444 127148 129478 127180
+rect 129512 127148 129546 127180
+rect 129580 127148 129614 127180
+rect 129648 127148 129682 127180
+rect 129716 127148 129750 127180
+rect 129784 127148 129818 127180
+rect 129852 127148 129886 127180
+rect 129920 127148 129954 127180
+rect 129988 127148 130022 127180
+rect 130056 127148 130090 127180
+rect 130124 127148 130158 127180
+rect 130192 127148 130226 127180
+rect 130260 127148 130294 127180
+rect 130328 127148 130362 127180
+rect 130396 127148 130430 127180
+rect 130464 127148 130498 127180
+rect 130532 127148 130566 127180
+rect 130600 127148 130634 127180
+rect 130668 127148 130702 127180
+rect 130736 127148 130770 127180
+rect 130804 127148 130838 127180
+rect 130872 127148 130906 127180
+rect 130940 127148 130974 127180
+rect 131008 127148 131042 127180
+rect 131076 127148 131110 127180
+rect 131144 127148 131178 127180
+rect 131212 127148 131246 127180
+rect 131280 127148 131314 127180
+rect 131348 127148 131382 127180
+rect 131416 127148 131450 127180
+rect 131484 127148 131518 127180
+rect 131552 127148 131586 127180
+rect 131620 127148 131654 127180
+rect 131688 127148 131722 127180
+rect 131756 127148 131790 127180
+rect 131824 127148 131858 127180
+rect 131892 127148 131926 127180
+rect 131960 127148 131994 127180
+rect 132028 127148 132062 127180
+rect 132096 127148 132130 127180
+rect 132164 127148 132198 127180
+rect 132232 127148 132266 127180
+rect 132300 127148 132334 127180
+rect 132368 127148 132402 127180
+rect 132436 127148 132470 127180
+rect 132504 127148 132538 127180
+rect 132572 127148 132606 127180
+rect 132640 127148 132680 127180
+rect 132777 127148 132848 127216
+rect 134612 127174 134626 127180
+rect 125736 127126 125770 127148
+rect 125805 127126 125839 127148
+rect 125874 127126 125908 127148
+rect 125942 127126 125976 127148
+rect 126010 127126 126044 127148
+rect 126078 127126 126112 127148
+rect 126146 127126 126180 127148
+rect 126214 127126 126248 127148
+rect 126282 127126 126316 127148
+rect 126350 127126 126384 127148
+rect 126418 127126 126452 127148
+rect 126486 127126 126520 127148
+rect 126554 127126 126588 127148
+rect 126622 127126 126656 127148
+rect 126690 127126 126724 127148
+rect 126758 127126 126792 127148
+rect 126826 127126 126860 127148
+rect 126894 127126 126928 127148
+rect 126962 127126 126996 127148
+rect 127030 127126 127064 127148
+rect 127098 127126 127132 127148
+rect 127166 127126 127200 127148
+rect 127234 127126 127268 127148
+rect 127302 127126 127336 127148
+rect 127370 127126 127404 127148
+rect 127438 127126 127472 127148
+rect 127506 127126 127540 127148
+rect 127574 127126 127608 127148
+rect 127642 127126 127676 127148
+rect 127710 127126 127744 127148
+rect 127778 127126 127812 127148
+rect 127846 127126 127880 127148
+rect 127914 127126 127948 127148
+rect 127982 127126 128016 127148
+rect 128050 127126 128084 127148
+rect 128118 127126 128152 127148
+rect 128186 127126 128220 127148
+rect 128254 127126 128288 127148
+rect 128322 127126 128356 127148
+rect 128390 127126 128424 127148
+rect 128458 127126 128492 127148
+rect 128526 127126 128560 127148
+rect 128594 127126 128628 127148
+rect 128662 127126 128696 127148
+rect 128730 127126 128764 127148
+rect 128798 127126 128832 127148
+rect 128866 127126 128900 127148
+rect 128934 127126 128968 127148
+rect 129002 127126 129036 127148
+rect 129070 127126 129104 127148
+rect 129138 127126 129172 127148
+rect 129206 127126 129240 127148
+rect 129274 127126 129308 127148
+rect 129342 127126 129376 127148
+rect 129410 127126 129444 127148
+rect 129478 127126 129512 127148
+rect 129546 127126 129580 127148
+rect 129614 127126 129648 127148
+rect 129682 127126 129716 127148
+rect 129750 127126 129784 127148
+rect 129818 127126 129852 127148
+rect 129886 127126 129920 127148
+rect 129954 127126 129988 127148
+rect 130022 127126 130056 127148
+rect 130090 127126 130124 127148
+rect 130158 127126 130192 127148
+rect 130226 127126 130260 127148
+rect 130294 127126 130328 127148
+rect 130362 127126 130396 127148
+rect 130430 127126 130464 127148
+rect 130498 127126 130532 127148
+rect 130566 127126 130600 127148
+rect 130634 127126 130668 127148
+rect 130702 127126 130736 127148
+rect 130770 127126 130804 127148
+rect 130838 127126 130872 127148
+rect 130906 127126 130940 127148
+rect 130974 127126 131008 127148
+rect 131042 127126 131076 127148
+rect 131110 127126 131144 127148
+rect 131178 127126 131212 127148
+rect 131246 127126 131280 127148
+rect 131314 127126 131348 127148
+rect 131382 127126 131416 127148
+rect 131450 127126 131484 127148
+rect 131518 127126 131552 127148
+rect 131586 127126 131620 127148
+rect 131654 127126 131688 127148
+rect 131722 127126 131756 127148
+rect 131790 127126 131824 127148
+rect 131858 127126 131892 127148
+rect 131926 127126 131960 127148
+rect 131994 127126 132028 127148
+rect 132062 127126 132096 127148
+rect 132130 127126 132164 127148
+rect 132198 127126 132232 127148
+rect 132266 127126 132300 127148
+rect 132334 127126 132368 127148
+rect 132402 127126 132436 127148
+rect 132470 127126 132504 127148
+rect 132538 127126 132572 127148
+rect 132606 127126 132640 127148
+rect 132680 127127 132777 127148
+rect 132780 127127 132848 127148
+rect 132680 127126 132848 127127
+rect 125666 127094 132680 127126
+rect 120992 126779 121992 126829
+rect 122102 126779 123102 126829
+rect 123223 126779 124223 126829
+rect 124344 126779 125344 126829
+rect 125901 126779 126901 126829
+rect 127022 126779 128022 126829
+rect 128143 126779 129143 126829
+rect 129253 126779 130253 126829
+rect 130374 126779 131374 126829
+rect 131495 126779 132495 126829
+rect 120992 126609 121992 126659
+rect 122102 126609 123102 126659
+rect 123223 126609 124223 126659
+rect 124344 126609 125344 126659
+rect 125901 126609 126901 126659
+rect 127022 126609 128022 126659
+rect 128143 126609 129143 126659
+rect 129253 126609 130253 126659
+rect 130374 126609 131374 126659
+rect 131495 126609 132495 126659
+rect 132777 126350 132848 126380
+rect 134572 126350 134612 127174
+rect 120597 126346 120732 126350
+rect 125606 126346 125640 126350
+rect 120597 126312 132680 126346
+rect 132777 126336 134612 126350
+rect 132777 126322 134602 126336
+rect 132777 126312 132848 126322
+rect 120596 126296 120597 126312
+rect 132680 126297 132777 126312
+rect 132780 126297 132848 126312
+rect 132680 126296 132848 126297
+rect 134626 126296 134666 127174
+rect 120597 126258 132680 126296
+rect 132820 126282 134666 126296
+rect 132820 126268 134656 126282
+rect 100233 125696 100234 125720
+rect 100314 125696 100315 125720
+rect 101069 125696 101070 125720
+rect 101150 125696 101151 125720
+rect 101905 125696 101906 125720
+rect 101986 125696 101987 125720
+rect 102741 125696 102742 125720
+rect 102822 125696 102823 125720
+rect 103577 125696 103578 125720
+rect 103658 125696 103659 125720
+rect 104413 125696 104414 125720
+rect 104494 125696 104495 125720
+rect 105249 125696 105250 125720
+rect 105330 125696 105331 125720
+rect 106085 125696 106086 125720
+rect 106166 125696 106167 125720
+rect 106921 125696 106922 125720
+rect 107002 125696 107003 125720
+rect 107757 125696 107758 125720
+rect 107838 125696 107839 125720
+rect 108593 125696 108594 125720
+rect 108674 125696 108675 125720
+rect 109429 125696 109430 125720
+rect 109510 125696 109511 125720
+rect 110265 125696 110266 125720
+rect 110346 125696 110347 125720
+rect 100257 125672 100291 125684
+rect 101093 125672 101127 125684
+rect 101929 125672 101963 125684
+rect 102765 125672 102799 125684
+rect 103601 125672 103635 125684
+rect 104437 125672 104471 125684
+rect 105273 125672 105307 125684
+rect 106109 125672 106143 125684
+rect 106945 125672 106979 125684
+rect 107781 125672 107815 125684
+rect 108617 125672 108651 125684
+rect 109453 125672 109487 125684
+rect 110289 125672 110323 125684
+rect 121219 124928 121429 124964
+rect 133481 124928 133594 124964
+rect 134043 124928 134325 124964
+rect 120808 123928 120886 124928
+rect 121008 123928 121080 124928
+rect 121231 123928 121255 124928
+rect 121296 123928 121352 124928
+rect 121393 123928 121429 124928
+rect 121654 123928 121714 124928
+rect 121914 123928 121986 124928
+rect 122216 123928 122272 124928
+rect 122288 123928 122344 124928
+rect 122646 123928 122706 124928
+rect 122906 123928 122978 124928
+rect 123208 123928 123264 124928
+rect 123280 123928 123336 124928
+rect 123638 123928 123698 124928
+rect 123898 123928 123970 124928
+rect 124200 123928 124256 124928
+rect 124272 123928 124328 124928
+rect 124630 123928 124690 124928
+rect 124890 123928 124962 124928
+rect 125192 123928 125248 124928
+rect 125264 123928 125320 124928
+rect 125622 123928 125682 124928
+rect 125882 123928 125954 124928
+rect 126184 123928 126240 124928
+rect 126256 123928 126312 124928
+rect 126614 123928 126674 124928
+rect 126874 123928 126946 124928
+rect 127176 123928 127232 124928
+rect 127248 123928 127304 124928
+rect 127606 123928 127666 124928
+rect 127866 123928 127938 124928
+rect 128168 123928 128224 124928
+rect 128240 123928 128296 124928
+rect 128598 123928 128658 124928
+rect 128858 123928 128930 124928
+rect 129160 123928 129216 124928
+rect 129232 123928 129288 124928
+rect 129590 123928 129650 124928
+rect 129850 123928 129922 124928
+rect 130152 123928 130208 124928
+rect 130224 123928 130280 124928
+rect 130582 123928 130642 124928
+rect 130842 123928 130914 124928
+rect 131144 123928 131200 124928
+rect 131216 123928 131272 124928
+rect 131574 123928 131634 124928
+rect 131834 123928 131906 124928
+rect 132136 123928 132192 124928
+rect 132208 123928 132264 124928
+rect 132566 123928 132626 124928
+rect 132826 123928 132898 124928
+rect 133128 123928 133184 124928
+rect 133200 123928 133256 124928
+rect 133481 123928 133517 124928
+rect 133558 123928 133594 124928
+rect 133818 123928 133890 124928
+rect 134043 123928 134079 124928
+rect 134120 123928 134176 124928
+rect 134192 123928 134248 124928
+rect 134289 123928 134325 124928
+rect 134536 123928 134596 124928
+rect 134632 123928 134736 124928
+rect 140710 124063 140788 125063
+rect 140910 124063 140982 125063
+rect 161216 124211 161280 124247
+rect 121219 123892 121429 123928
+rect 133481 123892 133594 123928
+rect 134043 123892 134325 123928
+rect 41291 122532 41292 122556
+rect 41372 122532 41373 122556
+rect 42127 122532 42128 122556
+rect 42208 122532 42209 122556
+rect 42963 122532 42964 122556
+rect 43044 122532 43045 122556
+rect 43799 122532 43800 122556
+rect 43880 122532 43881 122556
+rect 44635 122532 44636 122556
+rect 44716 122532 44717 122556
+rect 45471 122532 45472 122556
+rect 45552 122532 45553 122556
+rect 46307 122532 46308 122556
+rect 46388 122532 46389 122556
+rect 47143 122532 47144 122556
+rect 47224 122532 47225 122556
+rect 47979 122532 47980 122556
+rect 48060 122532 48061 122556
+rect 48815 122532 48816 122556
+rect 48896 122532 48897 122556
+rect 49651 122532 49652 122556
+rect 49732 122532 49733 122556
+rect 50487 122532 50488 122556
+rect 50568 122532 50569 122556
+rect 51323 122532 51324 122556
+rect 51404 122532 51405 122556
+rect 41315 122508 41349 122520
+rect 42151 122508 42185 122520
+rect 42987 122508 43021 122520
+rect 43823 122508 43857 122520
+rect 44659 122508 44693 122520
+rect 45495 122508 45529 122520
+rect 46331 122508 46365 122520
+rect 47167 122508 47201 122520
+rect 48003 122508 48037 122520
+rect 48839 122508 48873 122520
+rect 49675 122508 49709 122520
+rect 50511 122508 50545 122520
+rect 51347 122508 51381 122520
+rect 41291 120532 41292 120556
+rect 41372 120532 41373 120556
+rect 42127 120532 42128 120556
+rect 42208 120532 42209 120556
+rect 42963 120532 42964 120556
+rect 43044 120532 43045 120556
+rect 43799 120532 43800 120556
+rect 43880 120532 43881 120556
+rect 44635 120532 44636 120556
+rect 44716 120532 44717 120556
+rect 45471 120532 45472 120556
+rect 45552 120532 45553 120556
+rect 46307 120532 46308 120556
+rect 46388 120532 46389 120556
+rect 47143 120532 47144 120556
+rect 47224 120532 47225 120556
+rect 47979 120532 47980 120556
+rect 48060 120532 48061 120556
+rect 48815 120532 48816 120556
+rect 48896 120532 48897 120556
+rect 49651 120532 49652 120556
+rect 49732 120532 49733 120556
+rect 50487 120532 50488 120556
+rect 50568 120532 50569 120556
+rect 51323 120532 51324 120556
+rect 51404 120532 51405 120556
+rect 41315 120508 41349 120520
+rect 42151 120508 42185 120520
+rect 42987 120508 43021 120520
+rect 43823 120508 43857 120520
+rect 44659 120508 44693 120520
+rect 45495 120508 45529 120520
+rect 46331 120508 46365 120520
+rect 47167 120508 47201 120520
+rect 48003 120508 48037 120520
+rect 48839 120508 48873 120520
+rect 49675 120508 49709 120520
+rect 50511 120508 50545 120520
+rect 51347 120508 51381 120520
+rect 3989 119308 3990 119332
+rect 4070 119308 4071 119332
+rect 4825 119308 4826 119332
+rect 4906 119308 4907 119332
+rect 5661 119308 5662 119332
+rect 5742 119308 5743 119332
+rect 6497 119308 6498 119332
+rect 6578 119308 6579 119332
+rect 7333 119308 7334 119332
+rect 7414 119308 7415 119332
+rect 8169 119308 8170 119332
+rect 8250 119308 8251 119332
+rect 9005 119308 9006 119332
+rect 9086 119308 9087 119332
+rect 9841 119308 9842 119332
+rect 9922 119308 9923 119332
+rect 10677 119308 10678 119332
+rect 10758 119308 10759 119332
+rect 11513 119308 11514 119332
+rect 11594 119308 11595 119332
+rect 12349 119308 12350 119332
+rect 12430 119308 12431 119332
+rect 4013 119284 4047 119296
+rect 4849 119284 4883 119296
+rect 5685 119284 5719 119296
+rect 6521 119284 6555 119296
+rect 7357 119284 7391 119296
+rect 8193 119284 8227 119296
+rect 9029 119284 9063 119296
+rect 9865 119284 9899 119296
+rect 10701 119284 10735 119296
+rect 11537 119284 11571 119296
+rect 12373 119284 12407 119296
+rect 3989 117687 3990 117711
+rect 4070 117687 4071 117711
+rect 4825 117687 4826 117711
+rect 4906 117687 4907 117711
+rect 5661 117687 5662 117711
+rect 5742 117687 5743 117711
+rect 6497 117687 6498 117711
+rect 6578 117687 6579 117711
+rect 7333 117687 7334 117711
+rect 7414 117687 7415 117711
+rect 8169 117687 8170 117711
+rect 8250 117687 8251 117711
+rect 9005 117687 9006 117711
+rect 9086 117687 9087 117711
+rect 9841 117687 9842 117711
+rect 9922 117687 9923 117711
+rect 10677 117687 10678 117711
+rect 10758 117687 10759 117711
+rect 11513 117687 11514 117711
+rect 11594 117687 11595 117711
+rect 12349 117687 12350 117711
+rect 12430 117687 12431 117711
+rect 4013 117663 4047 117675
+rect 4849 117663 4883 117675
+rect 5685 117663 5719 117675
+rect 6521 117663 6555 117675
+rect 7357 117663 7391 117675
+rect 8193 117663 8227 117675
+rect 9029 117663 9063 117675
+rect 9865 117663 9899 117675
+rect 10701 117663 10735 117675
+rect 11537 117663 11571 117675
+rect 12373 117663 12407 117675
+rect 24624 115300 24696 119300
+rect 24895 115333 25013 119267
+rect 25284 115300 25344 119300
+rect 25544 115300 25616 119300
+rect 25815 115333 25933 119267
+rect 26204 115300 26264 119300
+rect 26464 115300 26536 119300
+rect 26735 115333 26853 119267
+rect 27124 115300 27184 119300
+rect 27384 115300 27456 119300
+rect 27655 115333 27773 119267
+rect 28044 115300 28104 119300
+rect 28304 115300 28376 119300
+rect 28575 115333 28693 119267
+rect 28964 115300 29024 119300
+rect 29224 115300 29296 119300
+rect 29495 115333 29613 119267
+rect 29884 115300 29944 119300
+rect 30144 115300 30216 119300
+rect 30415 115333 30533 119267
+rect 30804 115300 30864 119300
+rect 31064 115300 31136 119300
+rect 31335 115333 31453 119267
+rect 31724 115300 31784 119300
+rect 31984 115300 32056 119300
+rect 32255 115333 32373 119267
+rect 32644 115300 32704 119300
+rect 59624 118764 59696 122764
+rect 59895 118797 60013 122731
+rect 60284 118764 60344 122764
+rect 60544 118764 60616 122764
+rect 60815 118797 60933 122731
+rect 61204 118764 61264 122764
+rect 61464 118764 61536 122764
+rect 61735 118797 61853 122731
+rect 62124 118764 62184 122764
+rect 62384 118764 62456 122764
+rect 62655 118797 62773 122731
+rect 63044 118764 63104 122764
+rect 63304 118764 63376 122764
+rect 63575 118797 63693 122731
+rect 63964 118764 64024 122764
+rect 64224 118764 64296 122764
+rect 64495 118797 64613 122731
+rect 64884 118764 64944 122764
+rect 65144 118764 65216 122764
+rect 65415 118797 65533 122731
+rect 65804 118764 65864 122764
+rect 66064 118764 66136 122764
+rect 66335 118797 66453 122731
+rect 66724 118764 66784 122764
+rect 66984 118764 67056 122764
+rect 67255 118797 67373 122731
+rect 67644 118764 67704 122764
+rect 67904 118764 67976 122764
+rect 68175 118797 68293 122731
+rect 68564 118764 68624 122764
+rect 68824 118764 68896 122764
+rect 69095 118797 69213 122731
+rect 69484 118764 69544 122764
+rect 80176 119734 80248 123734
+rect 80447 119767 80565 123701
+rect 80836 119734 80896 123734
+rect 81096 119734 81168 123734
+rect 81367 119767 81485 123701
+rect 81756 119734 81816 123734
+rect 82016 119734 82088 123734
+rect 82287 119767 82405 123701
+rect 82676 119734 82736 123734
+rect 82936 119734 83008 123734
+rect 83207 119767 83325 123701
+rect 83596 119734 83656 123734
+rect 83856 119734 83928 123734
+rect 84127 119767 84245 123701
+rect 84516 119734 84576 123734
+rect 84776 119734 84848 123734
+rect 85047 119767 85165 123701
+rect 85436 119734 85496 123734
+rect 85696 119734 85768 123734
+rect 85967 119767 86085 123701
+rect 86356 119734 86416 123734
+rect 86616 119734 86688 123734
+rect 86887 119767 87005 123701
+rect 87276 119734 87336 123734
+rect 87536 119734 87608 123734
+rect 87807 119767 87925 123701
+rect 88196 119734 88256 123734
+rect 88456 119734 88528 123734
+rect 88727 119767 88845 123701
+rect 89116 119734 89176 123734
+rect 89376 119734 89448 123734
+rect 89647 119767 89765 123701
+rect 90036 119734 90096 123734
+rect 100233 123696 100234 123720
+rect 100314 123696 100315 123720
+rect 101069 123696 101070 123720
+rect 101150 123696 101151 123720
+rect 101905 123696 101906 123720
+rect 101986 123696 101987 123720
+rect 102741 123696 102742 123720
+rect 102822 123696 102823 123720
+rect 103577 123696 103578 123720
+rect 103658 123696 103659 123720
+rect 104413 123696 104414 123720
+rect 104494 123696 104495 123720
+rect 105249 123696 105250 123720
+rect 105330 123696 105331 123720
+rect 106085 123696 106086 123720
+rect 106166 123696 106167 123720
+rect 106921 123696 106922 123720
+rect 107002 123696 107003 123720
+rect 107757 123696 107758 123720
+rect 107838 123696 107839 123720
+rect 108593 123696 108594 123720
+rect 108674 123696 108675 123720
+rect 109429 123696 109430 123720
+rect 109510 123696 109511 123720
+rect 110265 123696 110266 123720
+rect 110346 123696 110347 123720
+rect 100257 123672 100291 123684
+rect 101093 123672 101127 123684
+rect 101929 123672 101963 123684
+rect 102765 123672 102799 123684
+rect 103601 123672 103635 123684
+rect 104437 123672 104471 123684
+rect 105273 123672 105307 123684
+rect 106109 123672 106143 123684
+rect 106945 123672 106979 123684
+rect 107781 123672 107815 123684
+rect 108617 123672 108651 123684
+rect 109453 123672 109487 123684
+rect 110289 123672 110323 123684
+rect 121219 123327 121429 123363
+rect 133481 123327 133594 123363
+rect 134043 123327 134325 123363
+rect 120808 122327 120912 123327
+rect 121008 122327 121080 123327
+rect 121254 122327 121255 123327
+rect 121296 122327 121352 123327
+rect 121393 122327 121394 123327
+rect 121654 122327 121714 123327
+rect 121914 122327 121986 123327
+rect 122216 122327 122272 123327
+rect 122288 122327 122344 123327
+rect 122646 122327 122706 123327
+rect 122906 122327 122978 123327
+rect 123208 122327 123264 123327
+rect 123280 122327 123336 123327
+rect 123638 122327 123698 123327
+rect 123898 122327 123970 123327
+rect 124200 122327 124256 123327
+rect 124272 122327 124328 123327
+rect 124630 122327 124690 123327
+rect 124890 122327 124962 123327
+rect 125192 122327 125248 123327
+rect 125264 122327 125320 123327
+rect 125622 122327 125682 123327
+rect 125882 122327 125954 123327
+rect 126184 122327 126240 123327
+rect 126256 122327 126312 123327
+rect 126614 122327 126674 123327
+rect 126874 122327 126946 123327
+rect 127176 122327 127232 123327
+rect 127248 122327 127304 123327
+rect 127606 122327 127666 123327
+rect 127866 122327 127938 123327
+rect 128168 122327 128224 123327
+rect 128240 122327 128296 123327
+rect 128598 122327 128658 123327
+rect 128858 122327 128930 123327
+rect 129160 122327 129216 123327
+rect 129232 122327 129288 123327
+rect 129590 122327 129650 123327
+rect 129850 122327 129922 123327
+rect 130152 122327 130208 123327
+rect 130224 122327 130280 123327
+rect 130582 122327 130642 123327
+rect 130842 122327 130914 123327
+rect 131144 122327 131200 123327
+rect 131216 122327 131272 123327
+rect 131574 122327 131634 123327
+rect 131834 122327 131906 123327
+rect 132136 122327 132192 123327
+rect 132208 122327 132264 123327
+rect 132566 122327 132626 123327
+rect 132826 122327 132898 123327
+rect 133128 122327 133184 123327
+rect 133200 122327 133256 123327
+rect 133481 122327 133517 123327
+rect 133558 122327 133594 123327
+rect 133818 122327 133890 123327
+rect 134043 122327 134079 123327
+rect 134120 122327 134176 123327
+rect 134192 122327 134248 123327
+rect 134289 122327 134325 123327
+rect 134536 122327 134596 123327
+rect 134632 122327 134736 123327
+rect 140710 122462 140814 123462
+rect 140910 122462 140982 123462
+rect 121219 122291 121429 122327
+rect 133481 122291 133594 122327
+rect 134043 122291 134325 122327
+rect 100233 121696 100234 121720
+rect 100314 121696 100315 121720
+rect 101069 121696 101070 121720
+rect 101150 121696 101151 121720
+rect 101905 121696 101906 121720
+rect 101986 121696 101987 121720
+rect 102741 121696 102742 121720
+rect 102822 121696 102823 121720
+rect 103577 121696 103578 121720
+rect 103658 121696 103659 121720
+rect 104413 121696 104414 121720
+rect 104494 121696 104495 121720
+rect 105249 121696 105250 121720
+rect 105330 121696 105331 121720
+rect 106085 121696 106086 121720
+rect 106166 121696 106167 121720
+rect 106921 121696 106922 121720
+rect 107002 121696 107003 121720
+rect 107757 121696 107758 121720
+rect 107838 121696 107839 121720
+rect 108593 121696 108594 121720
+rect 108674 121696 108675 121720
+rect 109429 121696 109430 121720
+rect 109510 121696 109511 121720
+rect 110265 121696 110266 121720
+rect 110346 121696 110347 121720
+rect 100257 121672 100291 121684
+rect 101093 121672 101127 121684
+rect 101929 121672 101963 121684
+rect 102765 121672 102799 121684
+rect 103601 121672 103635 121684
+rect 104437 121672 104471 121684
+rect 105273 121672 105307 121684
+rect 106109 121672 106143 121684
+rect 106945 121672 106979 121684
+rect 107781 121672 107815 121684
+rect 108617 121672 108651 121684
+rect 109453 121672 109487 121684
+rect 110289 121672 110323 121684
+rect 140661 119964 140677 120030
+rect 120631 119824 120647 119890
+rect 122655 119824 122671 119890
+rect 128822 119758 128838 119774
+rect 101905 119696 101906 119720
+rect 101986 119696 101987 119720
+rect 102741 119696 102742 119720
+rect 102822 119696 102823 119720
+rect 103577 119696 103578 119720
+rect 103658 119696 103659 119720
+rect 104413 119696 104414 119720
+rect 104494 119696 104495 119720
+rect 105249 119696 105250 119720
+rect 105330 119696 105331 119720
+rect 106085 119696 106086 119720
+rect 106166 119696 106167 119720
+rect 106921 119696 106922 119720
+rect 107002 119696 107003 119720
+rect 107757 119696 107758 119720
+rect 107838 119696 107839 119720
+rect 108593 119696 108594 119720
+rect 108674 119696 108675 119720
+rect 109429 119696 109430 119720
+rect 109510 119696 109511 119720
+rect 110265 119696 110266 119720
+rect 110346 119696 110347 119720
+rect 101929 119672 101963 119684
+rect 102765 119672 102799 119684
+rect 103601 119672 103635 119684
+rect 104437 119672 104471 119684
+rect 105273 119672 105307 119684
+rect 106109 119672 106143 119684
+rect 106945 119672 106979 119684
+rect 107781 119672 107815 119684
+rect 108617 119672 108651 119684
+rect 109453 119672 109487 119684
+rect 110289 119672 110323 119684
+rect 128720 119452 128838 119758
+rect 128822 119436 128838 119452
+rect 131010 119758 131026 119774
+rect 131010 119452 131128 119758
+rect 131010 119436 131026 119452
+rect 42963 118532 42964 118556
+rect 43044 118532 43045 118556
+rect 43799 118532 43800 118556
+rect 43880 118532 43881 118556
+rect 44635 118532 44636 118556
+rect 44716 118532 44717 118556
+rect 45471 118532 45472 118556
+rect 45552 118532 45553 118556
+rect 46307 118532 46308 118556
+rect 46388 118532 46389 118556
+rect 47143 118532 47144 118556
+rect 47224 118532 47225 118556
+rect 47979 118532 47980 118556
+rect 48060 118532 48061 118556
+rect 48815 118532 48816 118556
+rect 48896 118532 48897 118556
+rect 49651 118532 49652 118556
+rect 49732 118532 49733 118556
+rect 50487 118532 50488 118556
+rect 50568 118532 50569 118556
+rect 51323 118532 51324 118556
+rect 51404 118532 51405 118556
+rect 42987 118508 43021 118520
+rect 43823 118508 43857 118520
+rect 44659 118508 44693 118520
+rect 45495 118508 45529 118520
+rect 46331 118508 46365 118520
+rect 47167 118508 47201 118520
+rect 48003 118508 48037 118520
+rect 48839 118508 48873 118520
+rect 49675 118508 49709 118520
+rect 50511 118508 50545 118520
+rect 51347 118508 51381 118520
+rect 42963 116911 42964 116935
+rect 43044 116911 43045 116935
+rect 43799 116911 43800 116935
+rect 43880 116911 43881 116935
+rect 44635 116911 44636 116935
+rect 44716 116911 44717 116935
+rect 45471 116911 45472 116935
+rect 45552 116911 45553 116935
+rect 46307 116911 46308 116935
+rect 46388 116911 46389 116935
+rect 47143 116911 47144 116935
+rect 47224 116911 47225 116935
+rect 47979 116911 47980 116935
+rect 48060 116911 48061 116935
+rect 48815 116911 48816 116935
+rect 48896 116911 48897 116935
+rect 49651 116911 49652 116935
+rect 49732 116911 49733 116935
+rect 50487 116911 50488 116935
+rect 50568 116911 50569 116935
+rect 51323 116911 51324 116935
+rect 51404 116911 51405 116935
+rect 42987 116887 43021 116899
+rect 43823 116887 43857 116899
+rect 44659 116887 44693 116899
+rect 45495 116887 45529 116899
+rect 46331 116887 46365 116899
+rect 47167 116887 47201 116899
+rect 48003 116887 48037 116899
+rect 48839 116887 48873 116899
+rect 49675 116887 49709 116899
+rect 50511 116887 50545 116899
+rect 51347 116887 51381 116899
+rect 24624 110700 24696 114700
+rect 24895 110733 25013 114667
+rect 25284 110700 25344 114700
+rect 25544 110700 25616 114700
+rect 25815 110733 25933 114667
+rect 26204 110700 26264 114700
+rect 26464 110700 26536 114700
+rect 26735 110733 26853 114667
+rect 27124 110700 27184 114700
+rect 27384 110700 27456 114700
+rect 27655 110733 27773 114667
+rect 28044 110700 28104 114700
+rect 28304 110700 28376 114700
+rect 28575 110733 28693 114667
+rect 28964 110700 29024 114700
+rect 29224 110700 29296 114700
+rect 29495 110733 29613 114667
+rect 29884 110700 29944 114700
+rect 30144 110700 30216 114700
+rect 30415 110733 30533 114667
+rect 30804 110700 30864 114700
+rect 31064 110700 31136 114700
+rect 31335 110733 31453 114667
+rect 31724 110700 31784 114700
+rect 31984 110700 32056 114700
+rect 32255 110733 32373 114667
+rect 32644 110700 32704 114700
+rect 61464 114164 61536 118164
+rect 61735 114197 61853 118131
+rect 62124 114164 62184 118164
+rect 62384 114164 62456 118164
+rect 62655 114197 62773 118131
+rect 63044 114164 63104 118164
+rect 63304 114164 63376 118164
+rect 63575 114197 63693 118131
+rect 63964 114164 64024 118164
+rect 64224 114164 64296 118164
+rect 64495 114197 64613 118131
+rect 64884 114164 64944 118164
+rect 65144 114164 65216 118164
+rect 65415 114197 65533 118131
+rect 65804 114164 65864 118164
+rect 66064 114164 66136 118164
+rect 66335 114197 66453 118131
+rect 66724 114164 66784 118164
+rect 66984 114164 67056 118164
+rect 67255 114197 67373 118131
+rect 67644 114164 67704 118164
+rect 67904 114164 67976 118164
+rect 68175 114197 68293 118131
+rect 68564 114164 68624 118164
+rect 68824 114164 68896 118164
+rect 69095 114197 69213 118131
+rect 69484 114164 69544 118164
+rect 82016 115134 82088 119134
+rect 82287 115167 82405 119101
+rect 82676 115134 82736 119134
+rect 82936 115134 83008 119134
+rect 83207 115167 83325 119101
+rect 83596 115134 83656 119134
+rect 83856 115134 83928 119134
+rect 84127 115167 84245 119101
+rect 84516 115134 84576 119134
+rect 84776 115134 84848 119134
+rect 85047 115167 85165 119101
+rect 85436 115134 85496 119134
+rect 85696 115134 85768 119134
+rect 85967 115167 86085 119101
+rect 86356 115134 86416 119134
+rect 86616 115134 86688 119134
+rect 86887 115167 87005 119101
+rect 87276 115134 87336 119134
+rect 87536 115134 87608 119134
+rect 87807 115167 87925 119101
+rect 88196 115134 88256 119134
+rect 88456 115134 88528 119134
+rect 88727 115167 88845 119101
+rect 89116 115134 89176 119134
+rect 89376 115134 89448 119134
+rect 89647 115167 89765 119101
+rect 90036 115134 90096 119134
+rect 101905 118075 101906 118099
+rect 101986 118075 101987 118099
+rect 102741 118075 102742 118099
+rect 102822 118075 102823 118099
+rect 103577 118075 103578 118099
+rect 103658 118075 103659 118099
+rect 104413 118075 104414 118099
+rect 104494 118075 104495 118099
+rect 105249 118075 105250 118099
+rect 105330 118075 105331 118099
+rect 106085 118075 106086 118099
+rect 106166 118075 106167 118099
+rect 106921 118075 106922 118099
+rect 107002 118075 107003 118099
+rect 107757 118075 107758 118099
+rect 107838 118075 107839 118099
+rect 108593 118075 108594 118099
+rect 108674 118075 108675 118099
+rect 109429 118075 109430 118099
+rect 109510 118075 109511 118099
+rect 110265 118075 110266 118099
+rect 110346 118075 110347 118099
+rect 101929 118051 101963 118063
+rect 102765 118051 102799 118063
+rect 103601 118051 103635 118063
+rect 104437 118051 104471 118063
+rect 105273 118051 105307 118063
+rect 106109 118051 106143 118063
+rect 106945 118051 106979 118063
+rect 107781 118051 107815 118063
+rect 108617 118051 108651 118063
+rect 109453 118051 109487 118063
+rect 110289 118051 110323 118063
+rect 120254 117573 120278 118362
+rect 24624 106100 24696 110100
+rect 24895 106133 25013 110067
+rect 25284 106100 25344 110100
+rect 25544 106100 25616 110100
+rect 25815 106133 25933 110067
+rect 26204 106100 26264 110100
+rect 26464 106100 26536 110100
+rect 26735 106133 26853 110067
+rect 27124 106100 27184 110100
+rect 27384 106100 27456 110100
+rect 27655 106133 27773 110067
+rect 28044 106100 28104 110100
+rect 28304 106100 28376 110100
+rect 28575 106133 28693 110067
+rect 28964 106100 29024 110100
+rect 29224 106100 29296 110100
+rect 29495 106133 29613 110067
+rect 29884 106100 29944 110100
+rect 30144 106100 30216 110100
+rect 30415 106133 30533 110067
+rect 30804 106100 30864 110100
+rect 31064 106100 31136 110100
+rect 31335 106133 31453 110067
+rect 31724 106100 31784 110100
+rect 31984 106100 32056 110100
+rect 32255 106133 32373 110067
+rect 32644 106100 32704 110100
+rect 61464 109564 61536 113564
+rect 61735 109597 61853 113531
+rect 62124 109564 62184 113564
+rect 62384 109564 62456 113564
+rect 62655 109597 62773 113531
+rect 63044 109564 63104 113564
+rect 63304 109564 63376 113564
+rect 63575 109597 63693 113531
+rect 63964 109564 64024 113564
+rect 64224 109564 64296 113564
+rect 64495 109597 64613 113531
+rect 64884 109564 64944 113564
+rect 65144 109564 65216 113564
+rect 65415 109597 65533 113531
+rect 65804 109564 65864 113564
+rect 66064 109564 66136 113564
+rect 66335 109597 66453 113531
+rect 66724 109564 66784 113564
+rect 66984 109564 67056 113564
+rect 67255 109597 67373 113531
+rect 67644 109564 67704 113564
+rect 67904 109564 67976 113564
+rect 68175 109597 68293 113531
+rect 68564 109564 68624 113564
+rect 68824 109564 68896 113564
+rect 69095 109597 69213 113531
+rect 69484 109564 69544 113564
+rect 82016 110534 82088 114534
+rect 82287 110567 82405 114501
+rect 82676 110534 82736 114534
+rect 82936 110534 83008 114534
+rect 83207 110567 83325 114501
+rect 83596 110534 83656 114534
+rect 83856 110534 83928 114534
+rect 84127 110567 84245 114501
+rect 84516 110534 84576 114534
+rect 84776 110534 84848 114534
+rect 85047 110567 85165 114501
+rect 85436 110534 85496 114534
+rect 85696 110534 85768 114534
+rect 85967 110567 86085 114501
+rect 86356 110534 86416 114534
+rect 86616 110534 86688 114534
+rect 86887 110567 87005 114501
+rect 87276 110534 87336 114534
+rect 87536 110534 87608 114534
+rect 87807 110567 87925 114501
+rect 88196 110534 88256 114534
+rect 88456 110534 88528 114534
+rect 88727 110567 88845 114501
+rect 89116 110534 89176 114534
+rect 89376 110534 89448 114534
+rect 89647 110567 89765 114501
+rect 90036 110534 90096 114534
+rect 120123 112827 120130 117570
+rect 121583 116639 121695 116665
+rect 121783 116639 121869 116665
+rect 122575 116639 122687 116665
+rect 122775 116639 122861 116665
+rect 123567 116639 123679 116665
+rect 123767 116639 123853 116665
+rect 124559 116639 124671 116665
+rect 124759 116639 124845 116665
+rect 125551 116639 125663 116665
+rect 125751 116639 125837 116665
+rect 126543 116639 126655 116665
+rect 126743 116639 126829 116665
+rect 127535 116639 127647 116665
+rect 127735 116639 127821 116665
+rect 128527 116639 128639 116665
+rect 128727 116639 128813 116665
+rect 129519 116639 129631 116665
+rect 129719 116639 129805 116665
+rect 130511 116639 130623 116665
+rect 130711 116639 130797 116665
+rect 131503 116639 131615 116665
+rect 131703 116639 131789 116665
+rect 132495 116639 132607 116665
+rect 132695 116639 132781 116665
+rect 133487 116639 133599 116665
+rect 133687 116639 133773 116665
+rect 120918 115639 120968 116639
+rect 121179 115639 121235 116639
+rect 121251 115639 121307 116639
+rect 121609 115675 121695 116639
+rect 121809 115717 121810 116639
+rect 121869 115717 122021 116639
+rect 121809 115675 122021 115717
+rect 121596 115651 121695 115675
+rect 121800 115651 122021 115675
+rect 121609 115639 121695 115651
+rect 121809 115639 122021 115651
+rect 122171 115639 122227 116639
+rect 122243 115639 122299 116639
+rect 122601 115675 122687 116639
+rect 122801 115717 122802 116639
+rect 122861 115717 123013 116639
+rect 122801 115675 123013 115717
+rect 122588 115651 122687 115675
+rect 122792 115651 123013 115675
+rect 122601 115639 122687 115651
+rect 122801 115639 123013 115651
+rect 123163 115639 123219 116639
+rect 123235 115639 123291 116639
+rect 123593 115675 123679 116639
+rect 123793 115717 123794 116639
+rect 123853 115717 124005 116639
+rect 123793 115675 124005 115717
+rect 123580 115651 123679 115675
+rect 123784 115651 124005 115675
+rect 123593 115639 123679 115651
+rect 123793 115639 124005 115651
+rect 124155 115639 124211 116639
+rect 124227 115639 124283 116639
+rect 124585 115675 124671 116639
+rect 124785 115717 124786 116639
+rect 124845 115717 124997 116639
+rect 124785 115675 124997 115717
+rect 124572 115651 124671 115675
+rect 124776 115651 124997 115675
+rect 124585 115639 124671 115651
+rect 124785 115639 124997 115651
+rect 125147 115639 125203 116639
+rect 125219 115639 125275 116639
+rect 125577 115675 125663 116639
+rect 125777 115717 125778 116639
+rect 125837 115717 125989 116639
+rect 125777 115675 125989 115717
+rect 125564 115651 125663 115675
+rect 125768 115651 125989 115675
+rect 125577 115639 125663 115651
+rect 125777 115639 125989 115651
+rect 126139 115639 126195 116639
+rect 126211 115639 126267 116639
+rect 126569 115675 126655 116639
+rect 126769 115717 126770 116639
+rect 126829 115717 126981 116639
+rect 126769 115675 126981 115717
+rect 126556 115651 126655 115675
+rect 126760 115651 126981 115675
+rect 126569 115639 126655 115651
+rect 126769 115639 126981 115651
+rect 127131 115639 127187 116639
+rect 127203 115639 127259 116639
+rect 127561 115675 127647 116639
+rect 127761 115717 127762 116639
+rect 127821 115717 127973 116639
+rect 127761 115675 127973 115717
+rect 127548 115651 127647 115675
+rect 127752 115651 127973 115675
+rect 127561 115639 127647 115651
+rect 127761 115639 127973 115651
+rect 128123 115639 128179 116639
+rect 128195 115639 128251 116639
+rect 128553 115675 128639 116639
+rect 128753 115717 128754 116639
+rect 128813 115717 128965 116639
+rect 128753 115675 128965 115717
+rect 128540 115651 128639 115675
+rect 128744 115651 128965 115675
+rect 128553 115639 128639 115651
+rect 128753 115639 128965 115651
+rect 129115 115639 129171 116639
+rect 129187 115639 129243 116639
+rect 129545 115675 129631 116639
+rect 129745 115717 129746 116639
+rect 129805 115717 129957 116639
+rect 129745 115675 129957 115717
+rect 129532 115651 129631 115675
+rect 129736 115651 129957 115675
+rect 129545 115639 129631 115651
+rect 129745 115639 129957 115651
+rect 130107 115639 130163 116639
+rect 130179 115639 130235 116639
+rect 130537 115675 130623 116639
+rect 130737 115717 130738 116639
+rect 130797 115717 130949 116639
+rect 130737 115675 130949 115717
+rect 130524 115651 130623 115675
+rect 130728 115651 130949 115675
+rect 130537 115639 130623 115651
+rect 130737 115639 130949 115651
+rect 131099 115639 131155 116639
+rect 131171 115639 131227 116639
+rect 131529 115675 131615 116639
+rect 131729 115717 131730 116639
+rect 131789 115717 131941 116639
+rect 131729 115675 131941 115717
+rect 131516 115651 131615 115675
+rect 131720 115651 131941 115675
+rect 131529 115639 131615 115651
+rect 131729 115639 131941 115651
+rect 132091 115639 132147 116639
+rect 132163 115639 132219 116639
+rect 132521 115675 132607 116639
+rect 132721 115717 132722 116639
+rect 132781 115717 132933 116639
+rect 132721 115675 132933 115717
+rect 132508 115651 132607 115675
+rect 132712 115651 132933 115675
+rect 132521 115639 132607 115651
+rect 132721 115639 132933 115651
+rect 133083 115639 133139 116639
+rect 133155 115639 133211 116639
+rect 133513 115675 133599 116639
+rect 133713 115717 133714 116639
+rect 133773 115717 133925 116639
+rect 133713 115675 133925 115717
+rect 133500 115651 133599 115675
+rect 133704 115651 133925 115675
+rect 133513 115639 133599 115651
+rect 133713 115639 133925 115651
+rect 134034 115639 134106 116639
+rect 134172 115639 134189 116639
+rect 134359 115639 134392 116639
+rect 140248 116622 140282 116646
+rect 134515 116447 134583 116473
+rect 134515 116413 134549 116439
+rect 121620 115627 121654 115639
+rect 121824 115627 121858 115639
+rect 122612 115627 122646 115639
+rect 122816 115627 122850 115639
+rect 123604 115627 123638 115639
+rect 123808 115627 123842 115639
+rect 124596 115627 124630 115639
+rect 124800 115627 124834 115639
+rect 125588 115627 125622 115639
+rect 125792 115627 125826 115639
+rect 126580 115627 126614 115639
+rect 126784 115627 126818 115639
+rect 127572 115627 127606 115639
+rect 127776 115627 127810 115639
+rect 128564 115627 128598 115639
+rect 128768 115627 128802 115639
+rect 129556 115627 129590 115639
+rect 129760 115627 129794 115639
+rect 130548 115627 130582 115639
+rect 130752 115627 130786 115639
+rect 131540 115627 131574 115639
+rect 131744 115627 131778 115639
+rect 132532 115627 132566 115639
+rect 132736 115627 132770 115639
+rect 133524 115627 133558 115639
+rect 133728 115627 133762 115639
+rect 121628 115113 121850 115191
+rect 122620 115113 122842 115191
+rect 123612 115113 123834 115191
+rect 124604 115113 124826 115191
+rect 125596 115113 125818 115191
+rect 126588 115113 126810 115191
+rect 127580 115113 127802 115191
+rect 128572 115113 128794 115191
+rect 129564 115113 129786 115191
+rect 130556 115113 130778 115191
+rect 131548 115113 131770 115191
+rect 132540 115113 132762 115191
+rect 133532 115113 133754 115191
+rect 121583 115039 121695 115065
+rect 121783 115039 121869 115065
+rect 122575 115039 122687 115065
+rect 122775 115039 122861 115065
+rect 123567 115039 123679 115065
+rect 123767 115039 123853 115065
+rect 124559 115039 124671 115065
+rect 124759 115039 124845 115065
+rect 125551 115039 125663 115065
+rect 125751 115039 125837 115065
+rect 126543 115039 126655 115065
+rect 126743 115039 126829 115065
+rect 127535 115039 127647 115065
+rect 127735 115039 127821 115065
+rect 128527 115039 128639 115065
+rect 128727 115039 128813 115065
+rect 129519 115039 129631 115065
+rect 129719 115039 129805 115065
+rect 130511 115039 130623 115065
+rect 130711 115039 130797 115065
+rect 131503 115039 131615 115065
+rect 131703 115039 131789 115065
+rect 132495 115039 132607 115065
+rect 132695 115039 132781 115065
+rect 133487 115039 133599 115065
+rect 133687 115039 133773 115065
+rect 120918 114039 120968 115039
+rect 121179 114039 121235 115039
+rect 121251 114039 121307 115039
+rect 121609 115027 121695 115039
+rect 121809 115027 121810 115039
+rect 121596 115003 121695 115027
+rect 121800 115003 121810 115027
+rect 121609 114039 121695 115003
+rect 121809 114040 121810 115003
+rect 121869 114040 122021 115039
+rect 121809 114039 122021 114040
+rect 122171 114039 122227 115039
+rect 122243 114039 122299 115039
+rect 122601 115027 122687 115039
+rect 122801 115027 122802 115039
+rect 122588 115003 122687 115027
+rect 122792 115003 122802 115027
+rect 122601 114039 122687 115003
+rect 122801 114040 122802 115003
+rect 122861 114040 123013 115039
+rect 122801 114039 123013 114040
+rect 123163 114039 123219 115039
+rect 123235 114039 123291 115039
+rect 123593 115027 123679 115039
+rect 123793 115027 123794 115039
+rect 123580 115003 123679 115027
+rect 123784 115003 123794 115027
+rect 123593 114039 123679 115003
+rect 123793 114040 123794 115003
+rect 123853 114040 124005 115039
+rect 123793 114039 124005 114040
+rect 124155 114039 124211 115039
+rect 124227 114039 124283 115039
+rect 124585 115027 124671 115039
+rect 124785 115027 124786 115039
+rect 124572 115003 124671 115027
+rect 124776 115003 124786 115027
+rect 124585 114039 124671 115003
+rect 124785 114040 124786 115003
+rect 124845 114040 124997 115039
+rect 124785 114039 124997 114040
+rect 125147 114039 125203 115039
+rect 125219 114039 125275 115039
+rect 125577 115027 125663 115039
+rect 125777 115027 125778 115039
+rect 125564 115003 125663 115027
+rect 125768 115003 125778 115027
+rect 125577 114039 125663 115003
+rect 125777 114040 125778 115003
+rect 125837 114040 125989 115039
+rect 125777 114039 125989 114040
+rect 126139 114039 126195 115039
+rect 126211 114039 126267 115039
+rect 126569 115027 126655 115039
+rect 126769 115027 126770 115039
+rect 126556 115003 126655 115027
+rect 126760 115003 126770 115027
+rect 126569 114039 126655 115003
+rect 126769 114040 126770 115003
+rect 126829 114040 126981 115039
+rect 126769 114039 126981 114040
+rect 127131 114039 127187 115039
+rect 127203 114039 127259 115039
+rect 127561 115027 127647 115039
+rect 127761 115027 127762 115039
+rect 127548 115003 127647 115027
+rect 127752 115003 127762 115027
+rect 127561 114039 127647 115003
+rect 127761 114040 127762 115003
+rect 127821 114040 127973 115039
+rect 127761 114039 127973 114040
+rect 128123 114039 128179 115039
+rect 128195 114039 128251 115039
+rect 128553 115027 128639 115039
+rect 128753 115027 128754 115039
+rect 128540 115003 128639 115027
+rect 128744 115003 128754 115027
+rect 128553 114039 128639 115003
+rect 128753 114040 128754 115003
+rect 128813 114040 128965 115039
+rect 128753 114039 128965 114040
+rect 129115 114039 129171 115039
+rect 129187 114039 129243 115039
+rect 129545 115027 129631 115039
+rect 129745 115027 129746 115039
+rect 129532 115003 129631 115027
+rect 129736 115003 129746 115027
+rect 129545 114039 129631 115003
+rect 129745 114040 129746 115003
+rect 129805 114040 129957 115039
+rect 129745 114039 129957 114040
+rect 130107 114039 130163 115039
+rect 130179 114039 130235 115039
+rect 130537 115027 130623 115039
+rect 130737 115027 130738 115039
+rect 130524 115003 130623 115027
+rect 130728 115003 130738 115027
+rect 130537 114039 130623 115003
+rect 130737 114040 130738 115003
+rect 130797 114040 130949 115039
+rect 130737 114039 130949 114040
+rect 131099 114039 131155 115039
+rect 131171 114039 131227 115039
+rect 131529 115027 131615 115039
+rect 131729 115027 131730 115039
+rect 131516 115003 131615 115027
+rect 131720 115003 131730 115027
+rect 131529 114039 131615 115003
+rect 131729 114040 131730 115003
+rect 131789 114040 131941 115039
+rect 131729 114039 131941 114040
+rect 132091 114039 132147 115039
+rect 132163 114039 132219 115039
+rect 132521 115027 132607 115039
+rect 132721 115027 132722 115039
+rect 132508 115003 132607 115027
+rect 132712 115003 132722 115027
+rect 132521 114039 132607 115003
+rect 132721 114040 132722 115003
+rect 132781 114040 132933 115039
+rect 132721 114039 132933 114040
+rect 133083 114039 133139 115039
+rect 133155 114039 133211 115039
+rect 133513 115027 133599 115039
+rect 133713 115027 133714 115039
+rect 133500 115003 133599 115027
+rect 133704 115003 133714 115027
+rect 133513 114039 133599 115003
+rect 133713 114040 133714 115003
+rect 133773 114040 133925 115039
+rect 133713 114039 133925 114040
+rect 134034 114039 134106 115039
+rect 134172 114039 134189 115039
+rect 134359 114039 134392 115039
+rect 140288 112935 140316 116622
+rect 140960 115574 141010 116574
+rect 161216 116425 161255 124211
+rect 161216 116369 161256 116425
+rect 161270 116369 161280 124211
+rect 161216 116333 161280 116369
+rect 140960 113974 141010 114974
+rect 140194 112931 140316 112935
+rect 140194 112911 140288 112931
+rect 140194 112905 140197 112911
+rect 120123 112801 120278 112827
+rect 120368 112801 127264 112837
+rect 140224 112834 140227 112905
+rect 120278 112770 120404 112801
+rect 120425 112770 120459 112794
+rect 120493 112770 120527 112794
+rect 120561 112770 120595 112794
+rect 120629 112770 120663 112794
+rect 120697 112770 120731 112794
+rect 120765 112770 120799 112794
+rect 120833 112770 120867 112794
+rect 120901 112770 120935 112794
+rect 120969 112770 121003 112794
+rect 121037 112770 121071 112794
+rect 121105 112770 121139 112794
+rect 121173 112770 121207 112794
+rect 121241 112770 121275 112794
+rect 121309 112770 121343 112794
+rect 121377 112770 121411 112794
+rect 121445 112770 121479 112794
+rect 121513 112770 121547 112794
+rect 121581 112770 121615 112794
+rect 121649 112770 121683 112794
+rect 121717 112770 121751 112794
+rect 121785 112770 121819 112794
+rect 121853 112770 121887 112794
+rect 121921 112770 121955 112794
+rect 121989 112770 122023 112794
+rect 122057 112770 122091 112794
+rect 122125 112770 122159 112794
+rect 122193 112770 122227 112794
+rect 122261 112770 122295 112794
+rect 122329 112770 122363 112794
+rect 122397 112770 122431 112794
+rect 122465 112770 122499 112794
+rect 122533 112770 122567 112794
+rect 122601 112770 122635 112794
+rect 122669 112770 122703 112794
+rect 122737 112770 122771 112794
+rect 122805 112770 122839 112794
+rect 122873 112770 122907 112794
+rect 122941 112770 122975 112794
+rect 123009 112770 123043 112794
+rect 123077 112770 123111 112794
+rect 123145 112770 123179 112794
+rect 123213 112770 123247 112794
+rect 123281 112770 123315 112794
+rect 123349 112770 123383 112794
+rect 123417 112770 123451 112794
+rect 123485 112770 123519 112794
+rect 123553 112770 123587 112794
+rect 123621 112770 123655 112794
+rect 123689 112770 123723 112794
+rect 123787 112770 123821 112794
+rect 123855 112770 123889 112794
+rect 123923 112770 123957 112794
+rect 123991 112770 124025 112794
+rect 124059 112770 124093 112794
+rect 124127 112770 124161 112794
+rect 124195 112770 124229 112794
+rect 124263 112770 124297 112794
+rect 124331 112770 124365 112794
+rect 124399 112770 124433 112794
+rect 124467 112770 124501 112794
+rect 124535 112770 124569 112794
+rect 124603 112770 124637 112794
+rect 124671 112770 124705 112794
+rect 124739 112770 124773 112794
+rect 124807 112770 124841 112794
+rect 124875 112770 124909 112794
+rect 124943 112770 124977 112794
+rect 125011 112770 125045 112794
+rect 125079 112770 125113 112794
+rect 125147 112770 125181 112794
+rect 125215 112770 125249 112794
+rect 125283 112770 125317 112794
+rect 125351 112770 125385 112794
+rect 125419 112770 125453 112794
+rect 125487 112770 125521 112794
+rect 125555 112770 125589 112794
+rect 125623 112770 125657 112794
+rect 125691 112770 125725 112794
+rect 125759 112770 125793 112794
+rect 125827 112770 125861 112794
+rect 125895 112770 125929 112794
+rect 125963 112770 125997 112794
+rect 126031 112770 126065 112794
+rect 126099 112770 126133 112794
+rect 126167 112770 126201 112794
+rect 126235 112770 126269 112794
+rect 126303 112770 126337 112794
+rect 126371 112770 126405 112794
+rect 126439 112770 126473 112794
+rect 126507 112770 126541 112794
+rect 126575 112770 126609 112794
+rect 126643 112770 126677 112794
+rect 126711 112770 126745 112794
+rect 126779 112770 126813 112794
+rect 126847 112770 126881 112794
+rect 126915 112770 126949 112794
+rect 126983 112770 127017 112794
+rect 127051 112770 127085 112794
+rect 127119 112770 127153 112794
+rect 127228 112770 127264 112801
+rect 120368 112747 127264 112770
+rect 120368 112734 120425 112747
+rect 120459 112734 120493 112747
+rect 120527 112734 120561 112747
+rect 120595 112734 120629 112747
+rect 120663 112734 120697 112747
+rect 120731 112734 120765 112747
+rect 120799 112734 120833 112747
+rect 120867 112734 120901 112747
+rect 120935 112734 120969 112747
+rect 121003 112734 121037 112747
+rect 121071 112734 121105 112747
+rect 121139 112734 121173 112747
+rect 121207 112734 121241 112747
+rect 121275 112734 121309 112747
+rect 121343 112734 121377 112747
+rect 121411 112734 121445 112747
+rect 121479 112734 121513 112747
+rect 121547 112734 121581 112747
+rect 121615 112734 121649 112747
+rect 121683 112734 121717 112747
+rect 121751 112734 121785 112747
+rect 121819 112734 121853 112747
+rect 121887 112734 121921 112747
+rect 121955 112734 121989 112747
+rect 122023 112734 122057 112747
+rect 122091 112734 122125 112747
+rect 122159 112734 122193 112747
+rect 122227 112734 122261 112747
+rect 122295 112734 122329 112747
+rect 122363 112734 122397 112747
+rect 122431 112734 122465 112747
+rect 122499 112734 122533 112747
+rect 122567 112734 122601 112747
+rect 122635 112734 122669 112747
+rect 122703 112734 122737 112747
+rect 122771 112734 122805 112747
+rect 122839 112734 122873 112747
+rect 122907 112734 122941 112747
+rect 122975 112734 123009 112747
+rect 123043 112734 123077 112747
+rect 123111 112734 123145 112747
+rect 123179 112734 123213 112747
+rect 123247 112734 123281 112747
+rect 123315 112734 123349 112747
+rect 123383 112734 123417 112747
+rect 123451 112734 123485 112747
+rect 123519 112734 123553 112747
+rect 123587 112734 123621 112747
+rect 123655 112734 123689 112747
+rect 123723 112734 123787 112747
+rect 123821 112734 123855 112747
+rect 123889 112734 123923 112747
+rect 123957 112734 123991 112747
+rect 124025 112734 124059 112747
+rect 124093 112734 124127 112747
+rect 124161 112734 124195 112747
+rect 124229 112734 124263 112747
+rect 124297 112734 124331 112747
+rect 124365 112734 124399 112747
+rect 124433 112734 124467 112747
+rect 124501 112734 124535 112747
+rect 124569 112734 124603 112747
+rect 124637 112734 124671 112747
+rect 124705 112734 124739 112747
+rect 124773 112734 124807 112747
+rect 124841 112734 124875 112747
+rect 124909 112734 124943 112747
+rect 124977 112734 125011 112747
+rect 125045 112734 125079 112747
+rect 125113 112734 125147 112747
+rect 125181 112734 125215 112747
+rect 125249 112734 125283 112747
+rect 125317 112734 125351 112747
+rect 125385 112734 125419 112747
+rect 125453 112734 125487 112747
+rect 125521 112734 125555 112747
+rect 125589 112734 125623 112747
+rect 125657 112734 125691 112747
+rect 125725 112734 125759 112747
+rect 125793 112734 125827 112747
+rect 125861 112734 125895 112747
+rect 125929 112734 125963 112747
+rect 125997 112734 126031 112747
+rect 126065 112734 126099 112747
+rect 126133 112734 126167 112747
+rect 126201 112734 126235 112747
+rect 126269 112734 126303 112747
+rect 126337 112734 126371 112747
+rect 126405 112734 126439 112747
+rect 126473 112734 126507 112747
+rect 126541 112734 126575 112747
+rect 126609 112734 126643 112747
+rect 126677 112734 126711 112747
+rect 126745 112734 126779 112747
+rect 126813 112734 126847 112747
+rect 126881 112734 126915 112747
+rect 126949 112734 126983 112747
+rect 127017 112734 127051 112747
+rect 127085 112734 127119 112747
+rect 127153 112734 127264 112747
+rect 121044 112423 122044 112473
+rect 122174 112423 123574 112473
+rect 123936 112423 125336 112473
+rect 125466 112423 126866 112473
+rect 121044 112267 122044 112395
+rect 122174 112267 123574 112395
+rect 123936 112267 125336 112395
+rect 125466 112267 126866 112395
+rect 121044 112111 122044 112239
+rect 122174 112111 123574 112239
+rect 123936 112111 125336 112239
+rect 125466 112111 126866 112239
+rect 121044 111955 122044 112083
+rect 122174 111955 123574 112083
+rect 123936 111955 125336 112083
+rect 125466 111955 126866 112083
+rect 128877 112031 129047 112337
+rect 132165 112001 132181 112067
+rect 134189 112001 134205 112067
+rect 121044 111805 122044 111855
+rect 122174 111805 123574 111855
+rect 123936 111805 125336 111855
+rect 125466 111805 126866 111855
+rect 121202 111368 121236 111392
+rect 121270 111368 121304 111392
+rect 121338 111368 121372 111392
+rect 121406 111368 121440 111392
+rect 121474 111368 121508 111392
+rect 121542 111368 121576 111392
+rect 121610 111368 121644 111392
+rect 121678 111368 121712 111392
+rect 121746 111368 121780 111392
+rect 121814 111368 121848 111392
+rect 121882 111368 121916 111392
+rect 121950 111368 121984 111392
+rect 122018 111368 122052 111392
+rect 122086 111368 122120 111392
+rect 122154 111368 122188 111392
+rect 122222 111368 122256 111392
+rect 122290 111368 122324 111392
+rect 122358 111368 122392 111392
+rect 122426 111368 122460 111392
+rect 122494 111368 122528 111392
+rect 122562 111368 122596 111392
+rect 122630 111368 122664 111392
+rect 122698 111368 122732 111392
+rect 122766 111368 122800 111392
+rect 122834 111368 122868 111392
+rect 122902 111368 122936 111392
+rect 122970 111368 123004 111392
+rect 123038 111368 123072 111392
+rect 123106 111368 123140 111392
+rect 123174 111368 123208 111392
+rect 123242 111368 123276 111392
+rect 123310 111368 123344 111392
+rect 123378 111368 123412 111392
+rect 123446 111368 123480 111392
+rect 123514 111368 123548 111392
+rect 123582 111368 123616 111392
+rect 123650 111368 123684 111392
+rect 123718 111368 123752 111392
+rect 123786 111368 123820 111392
+rect 123854 111368 123888 111392
+rect 123922 111368 123956 111392
+rect 123990 111368 124024 111392
+rect 124058 111368 124092 111392
+rect 124126 111368 124160 111392
+rect 124194 111368 124228 111392
+rect 124262 111368 124296 111392
+rect 124330 111368 124364 111392
+rect 124398 111368 124432 111392
+rect 124466 111368 124500 111392
+rect 124534 111368 124568 111392
+rect 124602 111368 124636 111392
+rect 124670 111368 124704 111392
+rect 124738 111368 124772 111392
+rect 124806 111368 124840 111392
+rect 124874 111368 124908 111392
+rect 124942 111368 124976 111392
+rect 125010 111368 125044 111392
+rect 125067 111343 125068 111368
+rect 125026 111334 125068 111343
+rect 121577 111004 124577 111054
+rect 121577 110848 124577 110976
+rect 125026 110932 125128 110956
+rect 125026 110908 125050 110932
+rect 125104 110908 125128 110932
+rect 126509 110908 126543 110966
+rect 126698 110932 126732 110966
+rect 126770 110932 126804 110966
+rect 126842 110932 126876 110966
+rect 126914 110932 126948 110966
+rect 126698 110908 126722 110932
+rect 126924 110908 126948 110932
+rect 127102 110932 127204 110956
+rect 128332 110945 128356 110969
+rect 128230 110932 128254 110935
+rect 127102 110908 127126 110932
+rect 127180 110908 127204 110932
+rect 128308 110921 128332 110935
+rect 128485 110932 128587 110956
+rect 121577 110692 124577 110820
+rect 121577 110536 124577 110664
+rect 121577 110380 124577 110508
+rect 121577 110224 124577 110352
+rect 121577 110068 124577 110196
+rect 1823 105308 1824 105332
+rect 1904 105308 1905 105332
+rect 2377 105308 2378 105332
+rect 2458 105308 2459 105332
+rect 2931 105308 2932 105332
+rect 3012 105308 3013 105332
+rect 3485 105308 3486 105332
+rect 3566 105308 3567 105332
+rect 4039 105308 4040 105332
+rect 4120 105308 4121 105332
+rect 4593 105308 4594 105332
+rect 4674 105308 4675 105332
+rect 5147 105308 5148 105332
+rect 5228 105308 5229 105332
+rect 5701 105308 5702 105332
+rect 5782 105308 5783 105332
+rect 6255 105308 6256 105332
+rect 6336 105308 6337 105332
+rect 6809 105308 6810 105332
+rect 6890 105308 6891 105332
+rect 7363 105308 7364 105332
+rect 7444 105308 7445 105332
+rect 7917 105308 7918 105332
+rect 7998 105308 7999 105332
+rect 8471 105308 8472 105332
+rect 8552 105308 8553 105332
+rect 9025 105308 9026 105332
+rect 9106 105308 9107 105332
+rect 9579 105308 9580 105332
+rect 9660 105308 9661 105332
+rect 10133 105308 10134 105332
+rect 10214 105308 10215 105332
+rect 10687 105308 10688 105332
+rect 10768 105308 10769 105332
+rect 11241 105308 11242 105332
+rect 11322 105308 11323 105332
+rect 11795 105308 11796 105332
+rect 11876 105308 11877 105332
+rect 12349 105308 12350 105332
+rect 12430 105308 12431 105332
+rect 1847 105284 1881 105296
+rect 2401 105284 2435 105296
+rect 2955 105284 2989 105296
+rect 3509 105284 3543 105296
+rect 4063 105284 4097 105296
+rect 4617 105284 4651 105296
+rect 5171 105284 5205 105296
+rect 5725 105284 5759 105296
+rect 6279 105284 6313 105296
+rect 6833 105284 6867 105296
+rect 7387 105284 7421 105296
+rect 7941 105284 7975 105296
+rect 8495 105284 8529 105296
+rect 9049 105284 9083 105296
+rect 9603 105284 9637 105296
+rect 10157 105284 10191 105296
+rect 10711 105284 10745 105296
+rect 11265 105284 11299 105296
+rect 11819 105284 11853 105296
+rect 12373 105284 12407 105296
+rect 1823 103308 1824 103332
+rect 1904 103308 1905 103332
+rect 2377 103308 2378 103332
+rect 2458 103308 2459 103332
+rect 2931 103308 2932 103332
+rect 3012 103308 3013 103332
+rect 3485 103308 3486 103332
+rect 3566 103308 3567 103332
+rect 4039 103308 4040 103332
+rect 4120 103308 4121 103332
+rect 4593 103308 4594 103332
+rect 4674 103308 4675 103332
+rect 5147 103308 5148 103332
+rect 5228 103308 5229 103332
+rect 5701 103308 5702 103332
+rect 5782 103308 5783 103332
+rect 6255 103308 6256 103332
+rect 6336 103308 6337 103332
+rect 6809 103308 6810 103332
+rect 6890 103308 6891 103332
+rect 7363 103308 7364 103332
+rect 7444 103308 7445 103332
+rect 7917 103308 7918 103332
+rect 7998 103308 7999 103332
+rect 8471 103308 8472 103332
+rect 8552 103308 8553 103332
+rect 9025 103308 9026 103332
+rect 9106 103308 9107 103332
+rect 9579 103308 9580 103332
+rect 9660 103308 9661 103332
+rect 10133 103308 10134 103332
+rect 10214 103308 10215 103332
+rect 10687 103308 10688 103332
+rect 10768 103308 10769 103332
+rect 11241 103308 11242 103332
+rect 11322 103308 11323 103332
+rect 11795 103308 11796 103332
+rect 11876 103308 11877 103332
+rect 12349 103308 12350 103332
+rect 12430 103308 12431 103332
+rect 1847 103284 1881 103296
+rect 2401 103284 2435 103296
+rect 2955 103284 2989 103296
+rect 3509 103284 3543 103296
+rect 4063 103284 4097 103296
+rect 4617 103284 4651 103296
+rect 5171 103284 5205 103296
+rect 5725 103284 5759 103296
+rect 6279 103284 6313 103296
+rect 6833 103284 6867 103296
+rect 7387 103284 7421 103296
+rect 7941 103284 7975 103296
+rect 8495 103284 8529 103296
+rect 9049 103284 9083 103296
+rect 9603 103284 9637 103296
+rect 10157 103284 10191 103296
+rect 10711 103284 10745 103296
+rect 11265 103284 11299 103296
+rect 11819 103284 11853 103296
+rect 12373 103284 12407 103296
+rect 22784 101500 22856 105500
+rect 23055 101533 23173 105467
+rect 23444 101500 23504 105500
+rect 23704 101500 23776 105500
+rect 23975 101533 24093 105467
+rect 24364 101500 24424 105500
+rect 24624 101500 24696 105500
+rect 24895 101533 25013 105467
+rect 25284 101500 25344 105500
+rect 25544 101500 25616 105500
+rect 25815 101533 25933 105467
+rect 26204 101500 26264 105500
+rect 26464 101500 26536 105500
+rect 26735 101533 26853 105467
+rect 27124 101500 27184 105500
+rect 27384 101500 27456 105500
+rect 27655 101533 27773 105467
+rect 28044 101500 28104 105500
+rect 28304 101500 28376 105500
+rect 28575 101533 28693 105467
+rect 28964 101500 29024 105500
+rect 29224 101500 29296 105500
+rect 29495 101533 29613 105467
+rect 29884 101500 29944 105500
+rect 30144 101500 30216 105500
+rect 30415 101533 30533 105467
+rect 30804 101500 30864 105500
+rect 31064 101500 31136 105500
+rect 31335 101533 31453 105467
+rect 31724 101500 31784 105500
+rect 31984 101500 32056 105500
+rect 32255 101533 32373 105467
+rect 32644 101500 32704 105500
+rect 61464 104964 61536 108964
+rect 61735 104997 61853 108931
+rect 62124 104964 62184 108964
+rect 62384 104964 62456 108964
+rect 62655 104997 62773 108931
+rect 63044 104964 63104 108964
+rect 63304 104964 63376 108964
+rect 63575 104997 63693 108931
+rect 63964 104964 64024 108964
+rect 64224 104964 64296 108964
+rect 64495 104997 64613 108931
+rect 64884 104964 64944 108964
+rect 65144 104964 65216 108964
+rect 65415 104997 65533 108931
+rect 65804 104964 65864 108964
+rect 66064 104964 66136 108964
+rect 66335 104997 66453 108931
+rect 66724 104964 66784 108964
+rect 66984 104964 67056 108964
+rect 67255 104997 67373 108931
+rect 67644 104964 67704 108964
+rect 67904 104964 67976 108964
+rect 68175 104997 68293 108931
+rect 68564 104964 68624 108964
+rect 68824 104964 68896 108964
+rect 69095 104997 69213 108931
+rect 69484 104964 69544 108964
+rect 82016 105934 82088 109934
+rect 82287 105967 82405 109901
+rect 82676 105934 82736 109934
+rect 82936 105934 83008 109934
+rect 83207 105967 83325 109901
+rect 83596 105934 83656 109934
+rect 83856 105934 83928 109934
+rect 84127 105967 84245 109901
+rect 84516 105934 84576 109934
+rect 84776 105934 84848 109934
+rect 85047 105967 85165 109901
+rect 85436 105934 85496 109934
+rect 85696 105934 85768 109934
+rect 85967 105967 86085 109901
+rect 86356 105934 86416 109934
+rect 86616 105934 86688 109934
+rect 86887 105967 87005 109901
+rect 87276 105934 87336 109934
+rect 87536 105934 87608 109934
+rect 87807 105967 87925 109901
+rect 88196 105934 88256 109934
+rect 88456 105934 88528 109934
+rect 88727 105967 88845 109901
+rect 89116 105934 89176 109934
+rect 89376 105934 89448 109934
+rect 89647 105967 89765 109901
+rect 90036 105934 90096 109934
+rect 121577 109918 124577 109968
+rect 125414 109504 125457 110904
+rect 125564 109504 125692 110904
+rect 125727 109504 125855 110904
+rect 125890 109504 126018 110904
+rect 126053 109504 126181 110904
+rect 126216 109504 126344 110904
+rect 126379 109504 126422 110904
+rect 127291 109504 127341 110904
+rect 127448 109504 127576 110904
+rect 127611 109504 127739 110904
+rect 127774 109504 127902 110904
+rect 127937 109504 128065 110904
+rect 128100 109504 128143 110904
+rect 128206 110887 128230 110911
+rect 128332 110887 128356 110911
+rect 128485 110908 128509 110932
+rect 128563 110908 128587 110932
+rect 122070 109105 122240 109411
+rect 122870 109105 123040 109411
+rect 123670 109105 123840 109411
+rect 122070 108605 122240 108911
+rect 122870 108605 123040 108911
+rect 123670 108605 123840 108911
+rect 119527 107145 119577 107745
+rect 119677 107145 119805 107745
+rect 119833 107145 119961 107745
+rect 119989 107145 120045 107745
+rect 120145 107145 120273 107745
+rect 120301 107145 120429 107745
+rect 120457 107145 120507 107745
+rect 120587 107145 120637 107745
+rect 120737 107145 120787 107745
+rect 121225 107144 121275 107744
+rect 121375 107144 121503 107744
+rect 121531 107144 121659 107744
+rect 121687 107144 121743 107744
+rect 121843 107144 121971 107744
+rect 121999 107144 122127 107744
+rect 122155 107144 122205 107744
+rect 122285 107144 122335 107744
+rect 122435 107144 122485 107744
+rect 122607 107144 122657 107744
+rect 122757 107144 122807 107744
+rect 122887 107144 122937 107744
+rect 123037 107144 123165 107744
+rect 123193 107144 123321 107744
+rect 123349 107144 123405 107744
+rect 123505 107144 123633 107744
+rect 123661 107144 123789 107744
+rect 123817 107144 123867 107744
+rect 125414 107232 125457 108632
+rect 125564 107232 125692 108632
+rect 125727 107232 125855 108632
+rect 125890 107232 126018 108632
+rect 126053 107232 126181 108632
+rect 126216 107232 126344 108632
+rect 126379 107232 126422 108632
+rect 125026 107204 125128 107228
+rect 125104 107180 125128 107204
+rect 126509 107180 126543 107238
+rect 126698 107204 126732 107238
+rect 126770 107204 126804 107238
+rect 126842 107204 126876 107238
+rect 126914 107204 126948 107238
+rect 127291 107232 127341 108632
+rect 127448 107232 127576 108632
+rect 127611 107232 127739 108632
+rect 127774 107232 127902 108632
+rect 127937 107232 128065 108632
+rect 128100 107232 128143 108632
+rect 126698 107180 126722 107204
+rect 126924 107180 126948 107204
+rect 127102 107204 127204 107228
+rect 128206 107225 128230 107249
+rect 128332 107225 128356 107249
+rect 127102 107180 127126 107204
+rect 127180 107180 127204 107204
+rect 128230 107201 128254 107204
+rect 128308 107201 128332 107215
+rect 128485 107204 128587 107228
+rect 128332 107167 128356 107191
+rect 128485 107180 128509 107204
+rect 128563 107180 128587 107204
+rect 128763 106764 129299 111372
+rect 131734 111064 131825 111166
+rect 132058 111131 132072 111155
+rect 132024 111107 132048 111131
+rect 132082 111107 132106 111131
+rect 135278 111057 135312 111077
+rect 131681 110944 131705 110968
+rect 131739 110944 131763 110968
+rect 132215 110962 132249 110966
+rect 132283 110962 132317 110966
+rect 132351 110962 132385 110966
+rect 132419 110962 132453 110966
+rect 132487 110962 132521 110966
+rect 132555 110962 132589 110966
+rect 132623 110962 132657 110966
+rect 132691 110962 132725 110966
+rect 132759 110962 132793 110966
+rect 132827 110962 132861 110966
+rect 132895 110962 132929 110966
+rect 132963 110962 132997 110966
+rect 133031 110962 133065 110966
+rect 133099 110962 133133 110966
+rect 133167 110962 133201 110966
+rect 133235 110962 133269 110966
+rect 133303 110962 133337 110966
+rect 133371 110962 133405 110966
+rect 133439 110962 133473 110966
+rect 133507 110962 133541 110966
+rect 133575 110962 133609 110966
+rect 133643 110962 133677 110966
+rect 133711 110962 133745 110966
+rect 133779 110962 133813 110966
+rect 133847 110962 133881 110966
+rect 133915 110962 133949 110966
+rect 133983 110962 134017 110966
+rect 134051 110962 134085 110966
+rect 134119 110962 134153 110966
+rect 134187 110962 134221 110966
+rect 134255 110962 134289 110966
+rect 134323 110962 134357 110966
+rect 134391 110962 134425 110966
+rect 134459 110962 134493 110966
+rect 134527 110962 134561 110966
+rect 134595 110962 134629 110966
+rect 134663 110962 134697 110966
+rect 134731 110962 134765 110966
+rect 134799 110962 134833 110966
+rect 134867 110962 134901 110966
+rect 134935 110962 134969 110966
+rect 132147 110944 135047 110962
+rect 132215 110940 132249 110944
+rect 132283 110940 132317 110944
+rect 132351 110940 132385 110944
+rect 132419 110940 132453 110944
+rect 132487 110940 132521 110944
+rect 132555 110940 132589 110944
+rect 132623 110940 132657 110944
+rect 132691 110940 132725 110944
+rect 132759 110940 132793 110944
+rect 132827 110940 132861 110944
+rect 132895 110940 132929 110944
+rect 132963 110940 132997 110944
+rect 133031 110940 133065 110944
+rect 133099 110940 133133 110944
+rect 133167 110940 133201 110944
+rect 133235 110940 133269 110944
+rect 133303 110940 133337 110944
+rect 133371 110940 133405 110944
+rect 133439 110940 133473 110944
+rect 133507 110940 133541 110944
+rect 133575 110940 133609 110944
+rect 133643 110940 133677 110944
+rect 133711 110940 133745 110944
+rect 133779 110940 133813 110944
+rect 133847 110940 133881 110944
+rect 133915 110940 133949 110944
+rect 133983 110940 134017 110944
+rect 134051 110940 134085 110944
+rect 134119 110940 134153 110944
+rect 134187 110940 134221 110944
+rect 134255 110940 134289 110944
+rect 134323 110940 134357 110944
+rect 134391 110940 134425 110944
+rect 134459 110940 134493 110944
+rect 134527 110940 134561 110944
+rect 134595 110940 134629 110944
+rect 134663 110940 134697 110944
+rect 134731 110940 134765 110944
+rect 134799 110940 134833 110944
+rect 134867 110940 134901 110944
+rect 134935 110940 134969 110944
+rect 135186 110941 135210 110965
+rect 131705 110920 131739 110934
+rect 132151 110932 135043 110940
+rect 132191 110920 134993 110932
+rect 135210 110917 135234 110932
+rect 135278 110921 135312 110956
+rect 129333 109504 129461 110904
+rect 129496 109504 129624 110904
+rect 129659 109504 129787 110904
+rect 129822 109504 129950 110904
+rect 129985 109504 130113 110904
+rect 130148 109504 130276 110904
+rect 130311 109504 130354 110904
+rect 130447 109504 130490 110904
+rect 130597 109504 130725 110904
+rect 130760 109504 130888 110904
+rect 130923 109504 131051 110904
+rect 131086 109504 131214 110904
+rect 131249 109504 131377 110904
+rect 131412 109504 131540 110904
+rect 131575 109504 131625 110904
+rect 131681 110886 131705 110910
+rect 131739 110886 131763 110910
+rect 135288 110908 135312 110921
+rect 131892 109119 131994 110683
+rect 132261 109436 132311 110836
+rect 132418 109436 132546 110836
+rect 132581 109436 132709 110836
+rect 132744 109436 132872 110836
+rect 132907 109436 133035 110836
+rect 133070 109436 133198 110836
+rect 133233 109436 133361 110836
+rect 133396 109436 133439 110836
+rect 133532 109436 133575 110836
+rect 133682 109436 133810 110836
+rect 133845 109436 133973 110836
+rect 134008 109436 134136 110836
+rect 134171 109436 134299 110836
+rect 134334 109436 134462 110836
+rect 134497 109436 134625 110836
+rect 134660 109436 134788 110836
+rect 134823 109436 134866 110836
+rect 140951 109684 140967 109750
+rect 131926 109095 131960 109119
+rect 131926 109017 131960 109041
+rect 129333 107232 129461 108632
+rect 129496 107232 129624 108632
+rect 129659 107232 129787 108632
+rect 129822 107232 129950 108632
+rect 129985 107232 130113 108632
+rect 130148 107232 130276 108632
+rect 130311 107232 130354 108632
+rect 130447 107232 130490 108632
+rect 130597 107232 130725 108632
+rect 130760 107232 130888 108632
+rect 130923 107232 131051 108632
+rect 131086 107232 131214 108632
+rect 131249 107232 131377 108632
+rect 131412 107232 131540 108632
+rect 131575 107232 131625 108632
+rect 131892 107453 131994 109017
+rect 132261 107300 132311 108700
+rect 132418 107300 132546 108700
+rect 132581 107300 132709 108700
+rect 132744 107300 132872 108700
+rect 132907 107300 133035 108700
+rect 133070 107300 133198 108700
+rect 133233 107300 133361 108700
+rect 133396 107300 133439 108700
+rect 133532 107300 133575 108700
+rect 133682 107300 133810 108700
+rect 133845 107300 133973 108700
+rect 134008 107300 134136 108700
+rect 134171 107300 134299 108700
+rect 134334 107300 134462 108700
+rect 134497 107300 134625 108700
+rect 134660 107300 134788 108700
+rect 134823 107300 134866 108700
+rect 131681 107226 131705 107250
+rect 131739 107226 131763 107250
+rect 132215 107234 132249 107238
+rect 132283 107234 132317 107238
+rect 132351 107234 132385 107238
+rect 132419 107234 132453 107238
+rect 132487 107234 132521 107238
+rect 132555 107234 132589 107238
+rect 132623 107234 132657 107238
+rect 132691 107234 132725 107238
+rect 132759 107234 132793 107238
+rect 132827 107234 132861 107238
+rect 132895 107234 132929 107238
+rect 132963 107234 132997 107238
+rect 133031 107234 133065 107238
+rect 133099 107234 133133 107238
+rect 133167 107234 133201 107238
+rect 133235 107234 133269 107238
+rect 133303 107234 133337 107238
+rect 133371 107234 133405 107238
+rect 133439 107234 133473 107238
+rect 133507 107234 133541 107238
+rect 133575 107234 133609 107238
+rect 133643 107234 133677 107238
+rect 133711 107234 133745 107238
+rect 133779 107234 133813 107238
+rect 133847 107234 133881 107238
+rect 133915 107234 133949 107238
+rect 133983 107234 134017 107238
+rect 134051 107234 134085 107238
+rect 134119 107234 134153 107238
+rect 134187 107234 134221 107238
+rect 134255 107234 134289 107238
+rect 134323 107234 134357 107238
+rect 134391 107234 134425 107238
+rect 134459 107234 134493 107238
+rect 134527 107234 134561 107238
+rect 134595 107234 134629 107238
+rect 134663 107234 134697 107238
+rect 134731 107234 134765 107238
+rect 134799 107234 134833 107238
+rect 134867 107234 134901 107238
+rect 134935 107234 134969 107238
+rect 132181 107226 135013 107234
+rect 135244 107229 135312 107249
+rect 132215 107222 132249 107226
+rect 132283 107222 132317 107226
+rect 132351 107222 132385 107226
+rect 132419 107222 132453 107226
+rect 132487 107222 132521 107226
+rect 132555 107222 132589 107226
+rect 132623 107222 132657 107226
+rect 132691 107222 132725 107226
+rect 132759 107222 132793 107226
+rect 132827 107222 132861 107226
+rect 132895 107222 132929 107226
+rect 132963 107222 132997 107226
+rect 133031 107222 133065 107226
+rect 133099 107222 133133 107226
+rect 133167 107222 133201 107226
+rect 133235 107222 133269 107226
+rect 133303 107222 133337 107226
+rect 133371 107222 133405 107226
+rect 133439 107222 133473 107226
+rect 133507 107222 133541 107226
+rect 133575 107222 133609 107226
+rect 133643 107222 133677 107226
+rect 133711 107222 133745 107226
+rect 133779 107222 133813 107226
+rect 133847 107222 133881 107226
+rect 133915 107222 133949 107226
+rect 133983 107222 134017 107226
+rect 134051 107222 134085 107226
+rect 134119 107222 134153 107226
+rect 134187 107222 134221 107226
+rect 134255 107222 134289 107226
+rect 134323 107222 134357 107226
+rect 134391 107222 134425 107226
+rect 134459 107222 134493 107226
+rect 134527 107222 134561 107226
+rect 134595 107222 134629 107226
+rect 134663 107222 134697 107226
+rect 134731 107222 134765 107226
+rect 134799 107222 134833 107226
+rect 134867 107222 134901 107226
+rect 134935 107222 134969 107226
+rect 131705 107202 131739 107216
+rect 132147 107204 135047 107222
+rect 135210 107204 135234 107219
+rect 135278 107204 135312 107229
+rect 132191 107202 134993 107204
+rect 131681 107168 131705 107192
+rect 131739 107168 131763 107192
+rect 135186 107171 135210 107195
+rect 135288 107180 135312 107204
+rect 135244 107093 135312 107113
+rect 131734 106970 131825 107072
+rect 132024 107005 132048 107029
+rect 132082 107005 132106 107029
+rect 132058 106981 132072 107005
+rect 99739 105696 99740 105720
+rect 99820 105696 99821 105720
+rect 100293 105696 100294 105720
+rect 100374 105696 100375 105720
+rect 100847 105696 100848 105720
+rect 100928 105696 100929 105720
+rect 101401 105696 101402 105720
+rect 101482 105696 101483 105720
+rect 101955 105696 101956 105720
+rect 102036 105696 102037 105720
+rect 102509 105696 102510 105720
+rect 102590 105696 102591 105720
+rect 103063 105696 103064 105720
+rect 103144 105696 103145 105720
+rect 103617 105696 103618 105720
+rect 103698 105696 103699 105720
+rect 104171 105696 104172 105720
+rect 104252 105696 104253 105720
+rect 104725 105696 104726 105720
+rect 104806 105696 104807 105720
+rect 105279 105696 105280 105720
+rect 105360 105696 105361 105720
+rect 105833 105696 105834 105720
+rect 105914 105696 105915 105720
+rect 106387 105696 106388 105720
+rect 106468 105696 106469 105720
+rect 106941 105696 106942 105720
+rect 107022 105696 107023 105720
+rect 107495 105696 107496 105720
+rect 107576 105696 107577 105720
+rect 108049 105696 108050 105720
+rect 108130 105696 108131 105720
+rect 108603 105696 108604 105720
+rect 108684 105696 108685 105720
+rect 109157 105696 109158 105720
+rect 109238 105696 109239 105720
+rect 109711 105696 109712 105720
+rect 109792 105696 109793 105720
+rect 110265 105696 110266 105720
+rect 110346 105696 110347 105720
+rect 99763 105672 99797 105684
+rect 100317 105672 100351 105684
+rect 100871 105672 100905 105684
+rect 101425 105672 101459 105684
+rect 101979 105672 102013 105684
+rect 102533 105672 102567 105684
+rect 103087 105672 103121 105684
+rect 103641 105672 103675 105684
+rect 104195 105672 104229 105684
+rect 104749 105672 104783 105684
+rect 105303 105672 105337 105684
+rect 105857 105672 105891 105684
+rect 106411 105672 106445 105684
+rect 106965 105672 106999 105684
+rect 107519 105672 107553 105684
+rect 108073 105672 108107 105684
+rect 108627 105672 108661 105684
+rect 109181 105672 109215 105684
+rect 109735 105672 109769 105684
+rect 110289 105672 110323 105684
+rect 121923 105627 121973 105827
+rect 122073 105627 122129 105827
+rect 122229 105627 122279 105827
+rect 122629 105627 122679 105827
+rect 122779 105627 122835 105827
+rect 122935 105627 122985 105827
+rect 123049 105627 123060 105827
+rect 129913 105381 129963 106381
+rect 130063 105381 130119 106381
+rect 130219 105381 130275 106381
+rect 130375 105381 130431 106381
+rect 130531 105924 130581 106381
+rect 130995 105924 131045 106381
+rect 130531 105840 130584 105924
+rect 130992 105840 131045 105924
+rect 130531 105591 130581 105840
+rect 130995 105591 131045 105840
+rect 130531 105507 130584 105591
+rect 130992 105507 131045 105591
+rect 130531 105381 130581 105507
+rect 130995 105381 131045 105507
+rect 131145 105381 131201 106381
+rect 131301 105381 131357 106381
+rect 131457 105381 131513 106381
+rect 131613 105381 131663 106381
+rect 133848 105992 133898 106592
+rect 133998 105992 134048 106592
+rect 134120 105992 134170 106592
+rect 134270 105992 134320 106592
+rect 134396 105992 134446 106592
+rect 134546 105992 134596 106592
+rect 134668 105992 134718 106592
+rect 134818 105992 134868 106592
+rect 132804 105669 133110 105839
+rect 40797 104532 40798 104556
+rect 40878 104532 40879 104556
+rect 41351 104532 41352 104556
+rect 41432 104532 41433 104556
+rect 41905 104532 41906 104556
+rect 41986 104532 41987 104556
+rect 42459 104532 42460 104556
+rect 42540 104532 42541 104556
+rect 43013 104532 43014 104556
+rect 43094 104532 43095 104556
+rect 43567 104532 43568 104556
+rect 43648 104532 43649 104556
+rect 44121 104532 44122 104556
+rect 44202 104532 44203 104556
+rect 44675 104532 44676 104556
+rect 44756 104532 44757 104556
+rect 45229 104532 45230 104556
+rect 45310 104532 45311 104556
+rect 45783 104532 45784 104556
+rect 45864 104532 45865 104556
+rect 46337 104532 46338 104556
+rect 46418 104532 46419 104556
+rect 46891 104532 46892 104556
+rect 46972 104532 46973 104556
+rect 47445 104532 47446 104556
+rect 47526 104532 47527 104556
+rect 47999 104532 48000 104556
+rect 48080 104532 48081 104556
+rect 48553 104532 48554 104556
+rect 48634 104532 48635 104556
+rect 49107 104532 49108 104556
+rect 49188 104532 49189 104556
+rect 49661 104532 49662 104556
+rect 49742 104532 49743 104556
+rect 50215 104532 50216 104556
+rect 50296 104532 50297 104556
+rect 50769 104532 50770 104556
+rect 50850 104532 50851 104556
+rect 51323 104532 51324 104556
+rect 51404 104532 51405 104556
+rect 40821 104508 40855 104520
+rect 41375 104508 41409 104520
+rect 41929 104508 41963 104520
+rect 42483 104508 42517 104520
+rect 43037 104508 43071 104520
+rect 43591 104508 43625 104520
+rect 44145 104508 44179 104520
+rect 44699 104508 44733 104520
+rect 45253 104508 45287 104520
+rect 45807 104508 45841 104520
+rect 46361 104508 46395 104520
+rect 46915 104508 46949 104520
+rect 47469 104508 47503 104520
+rect 48023 104508 48057 104520
+rect 48577 104508 48611 104520
+rect 49131 104508 49165 104520
+rect 49685 104508 49719 104520
+rect 50239 104508 50273 104520
+rect 50793 104508 50827 104520
+rect 51347 104508 51381 104520
+rect 40797 102532 40798 102556
+rect 40878 102532 40879 102556
+rect 41351 102532 41352 102556
+rect 41432 102532 41433 102556
+rect 41905 102532 41906 102556
+rect 41986 102532 41987 102556
+rect 42459 102532 42460 102556
+rect 42540 102532 42541 102556
+rect 43013 102532 43014 102556
+rect 43094 102532 43095 102556
+rect 43567 102532 43568 102556
+rect 43648 102532 43649 102556
+rect 44121 102532 44122 102556
+rect 44202 102532 44203 102556
+rect 44675 102532 44676 102556
+rect 44756 102532 44757 102556
+rect 45229 102532 45230 102556
+rect 45310 102532 45311 102556
+rect 45783 102532 45784 102556
+rect 45864 102532 45865 102556
+rect 46337 102532 46338 102556
+rect 46418 102532 46419 102556
+rect 46891 102532 46892 102556
+rect 46972 102532 46973 102556
+rect 47445 102532 47446 102556
+rect 47526 102532 47527 102556
+rect 47999 102532 48000 102556
+rect 48080 102532 48081 102556
+rect 48553 102532 48554 102556
+rect 48634 102532 48635 102556
+rect 49107 102532 49108 102556
+rect 49188 102532 49189 102556
+rect 49661 102532 49662 102556
+rect 49742 102532 49743 102556
+rect 50215 102532 50216 102556
+rect 50296 102532 50297 102556
+rect 50769 102532 50770 102556
+rect 50850 102532 50851 102556
+rect 51323 102532 51324 102556
+rect 51404 102532 51405 102556
+rect 40821 102508 40855 102520
+rect 41375 102508 41409 102520
+rect 41929 102508 41963 102520
+rect 42483 102508 42517 102520
+rect 43037 102508 43071 102520
+rect 43591 102508 43625 102520
+rect 44145 102508 44179 102520
+rect 44699 102508 44733 102520
+rect 45253 102508 45287 102520
+rect 45807 102508 45841 102520
+rect 46361 102508 46395 102520
+rect 46915 102508 46949 102520
+rect 47469 102508 47503 102520
+rect 48023 102508 48057 102520
+rect 48577 102508 48611 102520
+rect 49131 102508 49165 102520
+rect 49685 102508 49719 102520
+rect 50239 102508 50273 102520
+rect 50793 102508 50827 102520
+rect 51347 102508 51381 102520
+rect 1823 101308 1824 101332
+rect 1904 101308 1905 101332
+rect 2377 101308 2378 101332
+rect 2458 101308 2459 101332
+rect 2931 101308 2932 101332
+rect 3012 101308 3013 101332
+rect 3485 101308 3486 101332
+rect 3566 101308 3567 101332
+rect 4039 101308 4040 101332
+rect 4120 101308 4121 101332
+rect 4593 101308 4594 101332
+rect 4674 101308 4675 101332
+rect 5147 101308 5148 101332
+rect 5228 101308 5229 101332
+rect 5701 101308 5702 101332
+rect 5782 101308 5783 101332
+rect 6255 101308 6256 101332
+rect 6336 101308 6337 101332
+rect 6809 101308 6810 101332
+rect 6890 101308 6891 101332
+rect 7363 101308 7364 101332
+rect 7444 101308 7445 101332
+rect 7917 101308 7918 101332
+rect 7998 101308 7999 101332
+rect 8471 101308 8472 101332
+rect 8552 101308 8553 101332
+rect 9025 101308 9026 101332
+rect 9106 101308 9107 101332
+rect 9579 101308 9580 101332
+rect 9660 101308 9661 101332
+rect 10133 101308 10134 101332
+rect 10214 101308 10215 101332
+rect 10687 101308 10688 101332
+rect 10768 101308 10769 101332
+rect 11241 101308 11242 101332
+rect 11322 101308 11323 101332
+rect 11795 101308 11796 101332
+rect 11876 101308 11877 101332
+rect 12349 101308 12350 101332
+rect 12430 101308 12431 101332
+rect 1847 101284 1881 101296
+rect 2401 101284 2435 101296
+rect 2955 101284 2989 101296
+rect 3509 101284 3543 101296
+rect 4063 101284 4097 101296
+rect 4617 101284 4651 101296
+rect 5171 101284 5205 101296
+rect 5725 101284 5759 101296
+rect 6279 101284 6313 101296
+rect 6833 101284 6867 101296
+rect 7387 101284 7421 101296
+rect 7941 101284 7975 101296
+rect 8495 101284 8529 101296
+rect 9049 101284 9083 101296
+rect 9603 101284 9637 101296
+rect 10157 101284 10191 101296
+rect 10711 101284 10745 101296
+rect 11265 101284 11299 101296
+rect 11819 101284 11853 101296
+rect 12373 101284 12407 101296
+rect 40797 100532 40798 100556
+rect 40878 100532 40879 100556
+rect 41351 100532 41352 100556
+rect 41432 100532 41433 100556
+rect 41905 100532 41906 100556
+rect 41986 100532 41987 100556
+rect 42459 100532 42460 100556
+rect 42540 100532 42541 100556
+rect 43013 100532 43014 100556
+rect 43094 100532 43095 100556
+rect 43567 100532 43568 100556
+rect 43648 100532 43649 100556
+rect 44121 100532 44122 100556
+rect 44202 100532 44203 100556
+rect 44675 100532 44676 100556
+rect 44756 100532 44757 100556
+rect 45229 100532 45230 100556
+rect 45310 100532 45311 100556
+rect 45783 100532 45784 100556
+rect 45864 100532 45865 100556
+rect 46337 100532 46338 100556
+rect 46418 100532 46419 100556
+rect 46891 100532 46892 100556
+rect 46972 100532 46973 100556
+rect 47445 100532 47446 100556
+rect 47526 100532 47527 100556
+rect 47999 100532 48000 100556
+rect 48080 100532 48081 100556
+rect 48553 100532 48554 100556
+rect 48634 100532 48635 100556
+rect 49107 100532 49108 100556
+rect 49188 100532 49189 100556
+rect 49661 100532 49662 100556
+rect 49742 100532 49743 100556
+rect 50215 100532 50216 100556
+rect 50296 100532 50297 100556
+rect 50769 100532 50770 100556
+rect 50850 100532 50851 100556
+rect 51323 100532 51324 100556
+rect 51404 100532 51405 100556
+rect 40821 100508 40855 100520
+rect 41375 100508 41409 100520
+rect 41929 100508 41963 100520
+rect 42483 100508 42517 100520
+rect 43037 100508 43071 100520
+rect 43591 100508 43625 100520
+rect 44145 100508 44179 100520
+rect 44699 100508 44733 100520
+rect 45253 100508 45287 100520
+rect 45807 100508 45841 100520
+rect 46361 100508 46395 100520
+rect 46915 100508 46949 100520
+rect 47469 100508 47503 100520
+rect 48023 100508 48057 100520
+rect 48577 100508 48611 100520
+rect 49131 100508 49165 100520
+rect 49685 100508 49719 100520
+rect 50239 100508 50273 100520
+rect 50793 100508 50827 100520
+rect 51347 100508 51381 100520
+rect 59624 100364 59696 104364
+rect 59895 100397 60013 104331
+rect 60284 100364 60344 104364
+rect 60544 100364 60616 104364
+rect 60815 100397 60933 104331
+rect 61204 100364 61264 104364
+rect 61464 100364 61536 104364
+rect 61735 100397 61853 104331
+rect 62124 100364 62184 104364
+rect 62384 100364 62456 104364
+rect 62655 100397 62773 104331
+rect 63044 100364 63104 104364
+rect 63304 100364 63376 104364
+rect 63575 100397 63693 104331
+rect 63964 100364 64024 104364
+rect 64224 100364 64296 104364
+rect 64495 100397 64613 104331
+rect 64884 100364 64944 104364
+rect 65144 100364 65216 104364
+rect 65415 100397 65533 104331
+rect 65804 100364 65864 104364
+rect 66064 100364 66136 104364
+rect 66335 100397 66453 104331
+rect 66724 100364 66784 104364
+rect 66984 100364 67056 104364
+rect 67255 100397 67373 104331
+rect 67644 100364 67704 104364
+rect 67904 100364 67976 104364
+rect 68175 100397 68293 104331
+rect 68564 100364 68624 104364
+rect 68824 100364 68896 104364
+rect 69095 100397 69213 104331
+rect 69484 100364 69544 104364
+rect 80176 101334 80248 105334
+rect 80447 101367 80565 105301
+rect 80836 101334 80896 105334
+rect 81096 101334 81168 105334
+rect 81367 101367 81485 105301
+rect 81756 101334 81816 105334
+rect 82016 101334 82088 105334
+rect 82287 101367 82405 105301
+rect 82676 101334 82736 105334
+rect 82936 101334 83008 105334
+rect 83207 101367 83325 105301
+rect 83596 101334 83656 105334
+rect 83856 101334 83928 105334
+rect 84127 101367 84245 105301
+rect 84516 101334 84576 105334
+rect 84776 101334 84848 105334
+rect 85047 101367 85165 105301
+rect 85436 101334 85496 105334
+rect 85696 101334 85768 105334
+rect 85967 101367 86085 105301
+rect 86356 101334 86416 105334
+rect 86616 101334 86688 105334
+rect 86887 101367 87005 105301
+rect 87276 101334 87336 105334
+rect 87536 101334 87608 105334
+rect 87807 101367 87925 105301
+rect 88196 101334 88256 105334
+rect 88456 101334 88528 105334
+rect 88727 101367 88845 105301
+rect 89116 101334 89176 105334
+rect 89376 101334 89448 105334
+rect 89647 101367 89765 105301
+rect 90036 101334 90096 105334
+rect 130062 105043 130112 105159
+rect 130059 104959 130112 105043
+rect 130232 104959 130360 105159
+rect 130408 104959 130464 105159
+rect 130584 104959 130712 105159
+rect 130760 104959 130816 105159
+rect 130936 104959 131064 105159
+rect 131112 104959 131168 105159
+rect 131288 104959 131416 105159
+rect 131464 105043 131514 105159
+rect 133925 105105 134925 105155
+rect 131464 104959 131517 105043
+rect 130067 104955 130101 104959
+rect 131475 104955 131509 104959
+rect 133925 104949 134925 105077
+rect 133925 104793 134925 104921
+rect 130000 104645 131000 104695
+rect 132192 104645 133192 104695
+rect 133925 104637 134925 104765
+rect 122363 104026 122413 104626
+rect 122513 104026 122563 104626
+rect 122643 104026 122693 104626
+rect 122793 104026 122921 104626
+rect 122949 104026 123077 104626
+rect 123105 104026 123161 104626
+rect 123261 104026 123389 104626
+rect 123417 104026 123545 104626
+rect 123573 104026 123623 104626
+rect 130000 104489 131000 104545
+rect 132192 104489 133192 104545
+rect 133925 104481 134925 104609
+rect 131338 104405 131422 104408
+rect 130000 104333 131000 104389
+rect 131222 104355 131422 104405
+rect 131770 104405 131854 104408
+rect 131770 104400 131970 104405
+rect 131766 104366 131970 104400
+rect 131770 104355 131970 104366
+rect 132192 104333 133192 104389
+rect 133925 104325 134925 104453
+rect 130000 104177 131000 104233
+rect 131222 104179 131422 104307
+rect 131770 104179 131970 104307
+rect 132192 104177 133192 104233
+rect 133925 104169 134925 104297
+rect 130000 104021 131000 104077
+rect 131222 104003 131422 104059
+rect 131770 104003 131970 104059
+rect 132192 104021 133192 104077
+rect 133925 104013 134925 104141
+rect 130000 103871 131000 103921
+rect 130458 103868 130542 103871
+rect 130790 103868 130874 103871
+rect 131222 103827 131422 103955
+rect 131770 103827 131970 103955
+rect 132192 103871 133192 103921
+rect 132318 103868 132402 103871
+rect 132650 103868 132734 103871
+rect 133925 103857 134925 103985
+rect 99739 103696 99740 103720
+rect 99820 103696 99821 103720
+rect 100293 103696 100294 103720
+rect 100374 103696 100375 103720
+rect 100847 103696 100848 103720
+rect 100928 103696 100929 103720
+rect 101401 103696 101402 103720
+rect 101482 103696 101483 103720
+rect 101955 103696 101956 103720
+rect 102036 103696 102037 103720
+rect 102509 103696 102510 103720
+rect 102590 103696 102591 103720
+rect 103063 103696 103064 103720
+rect 103144 103696 103145 103720
+rect 103617 103696 103618 103720
+rect 103698 103696 103699 103720
+rect 104171 103696 104172 103720
+rect 104252 103696 104253 103720
+rect 104725 103696 104726 103720
+rect 104806 103696 104807 103720
+rect 105279 103696 105280 103720
+rect 105360 103696 105361 103720
+rect 105833 103696 105834 103720
+rect 105914 103696 105915 103720
+rect 106387 103696 106388 103720
+rect 106468 103696 106469 103720
+rect 106941 103696 106942 103720
+rect 107022 103696 107023 103720
+rect 107495 103696 107496 103720
+rect 107576 103696 107577 103720
+rect 108049 103696 108050 103720
+rect 108130 103696 108131 103720
+rect 108603 103696 108604 103720
+rect 108684 103696 108685 103720
+rect 109157 103696 109158 103720
+rect 109238 103696 109239 103720
+rect 109711 103696 109712 103720
+rect 109792 103696 109793 103720
+rect 110265 103696 110266 103720
+rect 110346 103696 110347 103720
+rect 99763 103672 99797 103684
+rect 100317 103672 100351 103684
+rect 100871 103672 100905 103684
+rect 101425 103672 101459 103684
+rect 101979 103672 102013 103684
+rect 102533 103672 102567 103684
+rect 103087 103672 103121 103684
+rect 103641 103672 103675 103684
+rect 104195 103672 104229 103684
+rect 104749 103672 104783 103684
+rect 105303 103672 105337 103684
+rect 105857 103672 105891 103684
+rect 106411 103672 106445 103684
+rect 106965 103672 106999 103684
+rect 107519 103672 107553 103684
+rect 108073 103672 108107 103684
+rect 108627 103672 108661 103684
+rect 109181 103672 109215 103684
+rect 109735 103672 109769 103684
+rect 110289 103672 110323 103684
+rect 125664 103634 125698 103668
+rect 125733 103634 125767 103668
+rect 125802 103634 125836 103668
+rect 125871 103634 125905 103668
+rect 125940 103634 125974 103668
+rect 126009 103634 126043 103668
+rect 126078 103634 126112 103668
+rect 126147 103634 126181 103668
+rect 126216 103634 126250 103668
+rect 126285 103634 126319 103668
+rect 126354 103634 126388 103668
+rect 126423 103634 126457 103668
+rect 126492 103634 126526 103668
+rect 126561 103634 126595 103668
+rect 126630 103634 126664 103668
+rect 126699 103634 126733 103668
+rect 126768 103634 126802 103668
+rect 126837 103634 126871 103668
+rect 126906 103634 126940 103668
+rect 126975 103634 127009 103668
+rect 127044 103634 127078 103668
+rect 127113 103634 127147 103668
+rect 127182 103634 127216 103668
+rect 127251 103634 127285 103668
+rect 127320 103634 127354 103668
+rect 127389 103634 127423 103668
+rect 127458 103634 127492 103668
+rect 127527 103634 127561 103668
+rect 127596 103634 127630 103668
+rect 127665 103634 127699 103668
+rect 127734 103635 127763 103668
+rect 131222 103657 131422 103707
+rect 131770 103657 131970 103707
+rect 133925 103701 134925 103829
+rect 127734 103634 127797 103635
+rect 125664 103610 125688 103634
+rect 133925 103545 134925 103673
+rect 133925 103389 134925 103517
+rect 133925 103233 134925 103361
+rect 133925 103077 134925 103205
+rect 133925 102927 134925 102977
+rect 128376 102515 128400 102539
+rect 128436 102515 128460 102539
+rect 130751 102515 130775 102539
+rect 130810 102515 130834 102539
+rect 127858 102481 128306 102515
+rect 128412 102491 128424 102515
+rect 130786 102491 130799 102515
+rect 130904 102481 131352 102515
+rect 128414 102427 128448 102437
+rect 128390 102416 128448 102427
+rect 126030 102403 128448 102416
+rect 130796 102416 130830 102437
+rect 131423 102427 131457 102437
+rect 131399 102416 131457 102427
+rect 130796 102403 131457 102416
+rect 126030 102395 128414 102403
+rect 130796 102395 131423 102403
+rect 133133 102402 133157 102426
+rect 126030 102386 131613 102395
+rect 133062 102386 133133 102392
+rect 126030 102365 131583 102386
+rect 133109 102378 133133 102386
+rect 99739 101696 99740 101720
+rect 99820 101696 99821 101720
+rect 100293 101696 100294 101720
+rect 100374 101696 100375 101720
+rect 100847 101696 100848 101720
+rect 100928 101696 100929 101720
+rect 101401 101696 101402 101720
+rect 101482 101696 101483 101720
+rect 101955 101696 101956 101720
+rect 102036 101696 102037 101720
+rect 102509 101696 102510 101720
+rect 102590 101696 102591 101720
+rect 103063 101696 103064 101720
+rect 103144 101696 103145 101720
+rect 103617 101696 103618 101720
+rect 103698 101696 103699 101720
+rect 104171 101696 104172 101720
+rect 104252 101696 104253 101720
+rect 104725 101696 104726 101720
+rect 104806 101696 104807 101720
+rect 105279 101696 105280 101720
+rect 105360 101696 105361 101720
+rect 105833 101696 105834 101720
+rect 105914 101696 105915 101720
+rect 106387 101696 106388 101720
+rect 106468 101696 106469 101720
+rect 106941 101696 106942 101720
+rect 107022 101696 107023 101720
+rect 107495 101696 107496 101720
+rect 107576 101696 107577 101720
+rect 108049 101696 108050 101720
+rect 108130 101696 108131 101720
+rect 108603 101696 108604 101720
+rect 108684 101696 108685 101720
+rect 109157 101696 109158 101720
+rect 109238 101696 109239 101720
+rect 109711 101696 109712 101720
+rect 109792 101696 109793 101720
+rect 110265 101696 110266 101720
+rect 110346 101696 110347 101720
+rect 99763 101672 99797 101684
+rect 100317 101672 100351 101684
+rect 100871 101672 100905 101684
+rect 101425 101672 101459 101684
+rect 101979 101672 102013 101684
+rect 102533 101672 102567 101684
+rect 103087 101672 103121 101684
+rect 103641 101672 103675 101684
+rect 104195 101672 104229 101684
+rect 104749 101672 104783 101684
+rect 105303 101672 105337 101684
+rect 105857 101672 105891 101684
+rect 106411 101672 106445 101684
+rect 106965 101672 106999 101684
+rect 107519 101672 107553 101684
+rect 108073 101672 108107 101684
+rect 108627 101672 108661 101684
+rect 109181 101672 109215 101684
+rect 109735 101672 109769 101684
+rect 110289 101672 110323 101684
+rect 121250 101546 121300 102146
+rect 121420 101546 121476 102146
+rect 121596 101546 121646 102146
+rect 119951 101460 119975 101484
+rect 120012 101474 120036 101484
+rect 120012 101470 120046 101474
+rect 120083 101470 120117 101474
+rect 120154 101470 120188 101474
+rect 119990 101460 120212 101470
+rect 119988 101456 119999 101460
+rect 120012 101456 120046 101460
+rect 120083 101456 120117 101460
+rect 120154 101456 120188 101460
+rect 119988 101436 120212 101456
+rect 120012 101416 120036 101436
+rect 121735 101324 121785 102324
+rect 121885 101324 121935 102324
+rect 122044 101324 122094 102324
+rect 122194 101324 122244 102324
+rect 122374 101864 122554 102064
+rect 122719 102049 122779 102064
+rect 122805 102049 122865 102064
+rect 124379 102049 124439 102064
+rect 124465 102049 124525 102064
+rect 122734 101879 122764 102049
+rect 122820 101879 122850 102049
+rect 124394 101879 124424 102049
+rect 124480 101879 124510 102049
+rect 122723 101876 122775 101879
+rect 122809 101876 122861 101879
+rect 124383 101876 124435 101879
+rect 124469 101876 124521 101879
+rect 122719 101864 122779 101876
+rect 122805 101864 122865 101876
+rect 124379 101864 124439 101876
+rect 124465 101864 124525 101876
+rect 124690 101864 124870 102064
+rect 122374 101604 122554 101804
+rect 122719 101789 122779 101804
+rect 122805 101789 122865 101804
+rect 124379 101789 124439 101804
+rect 124465 101789 124525 101804
+rect 122734 101619 122764 101789
+rect 122820 101619 122850 101789
+rect 124394 101619 124424 101789
+rect 124480 101619 124510 101789
+rect 122723 101616 122775 101619
+rect 122809 101616 122861 101619
+rect 124383 101616 124435 101619
+rect 124469 101616 124521 101619
+rect 122719 101604 122779 101616
+rect 122805 101604 122865 101616
+rect 124379 101604 124439 101616
+rect 124465 101604 124525 101616
+rect 124690 101604 124870 101804
+rect 122374 101344 122554 101544
+rect 122719 101529 122779 101544
+rect 122805 101529 122865 101544
+rect 124379 101529 124439 101544
+rect 124465 101529 124525 101544
+rect 122734 101524 122764 101529
+rect 122820 101524 122850 101529
+rect 124394 101524 124424 101529
+rect 124480 101524 124510 101529
+rect 124690 101344 124870 101544
+rect 125000 101324 125050 102324
+rect 125150 101324 125200 102324
+rect 125309 101324 125359 102324
+rect 125459 101324 125509 102324
+rect 126787 102302 132608 102338
+rect 126787 102290 126823 102302
+rect 126873 102290 126907 102302
+rect 126942 102290 126976 102302
+rect 127011 102290 127045 102302
+rect 127080 102290 127114 102302
+rect 127149 102290 127183 102302
+rect 127218 102290 127252 102302
+rect 127287 102290 127321 102302
+rect 127356 102290 127390 102302
+rect 127425 102290 127459 102302
+rect 127494 102290 127528 102302
+rect 127563 102290 127597 102302
+rect 127632 102290 127666 102302
+rect 127701 102290 127735 102302
+rect 127770 102290 127804 102302
+rect 127839 102290 127873 102302
+rect 127908 102290 127942 102302
+rect 127977 102290 128011 102302
+rect 128046 102290 128080 102302
+rect 128115 102290 128149 102302
+rect 128184 102290 128218 102302
+rect 128253 102290 128287 102302
+rect 128322 102290 128356 102302
+rect 128391 102290 128425 102302
+rect 128460 102290 128494 102302
+rect 128529 102290 128563 102302
+rect 128598 102290 128632 102302
+rect 128667 102290 128701 102302
+rect 128736 102290 128770 102302
+rect 128805 102290 128839 102302
+rect 128874 102290 128908 102302
+rect 128943 102290 128977 102302
+rect 129012 102290 129046 102302
+rect 129081 102290 129115 102302
+rect 129150 102290 129184 102302
+rect 129219 102290 129253 102302
+rect 129288 102290 129322 102302
+rect 129357 102290 129391 102302
+rect 129426 102290 129460 102302
+rect 129495 102290 129529 102302
+rect 129564 102290 129598 102302
+rect 129633 102290 129667 102302
+rect 129702 102290 129736 102302
+rect 129771 102290 129805 102302
+rect 129840 102290 129874 102302
+rect 129909 102290 129943 102302
+rect 129978 102290 130012 102302
+rect 130047 102290 130081 102302
+rect 130116 102290 130150 102302
+rect 130185 102290 130219 102302
+rect 130254 102290 130288 102302
+rect 130323 102290 130357 102302
+rect 130392 102290 130426 102302
+rect 130461 102290 130495 102302
+rect 130530 102290 130564 102302
+rect 130599 102290 130633 102302
+rect 130668 102290 130702 102302
+rect 130737 102290 130771 102302
+rect 130806 102290 130840 102302
+rect 130875 102290 130909 102302
+rect 130944 102290 130978 102302
+rect 131013 102290 131047 102302
+rect 131082 102290 131116 102302
+rect 131151 102290 131185 102302
+rect 131220 102290 131254 102302
+rect 131289 102290 131323 102302
+rect 131358 102290 131392 102302
+rect 131426 102290 131460 102302
+rect 131494 102290 131528 102302
+rect 131562 102290 131596 102302
+rect 131630 102290 131664 102302
+rect 131698 102290 131732 102302
+rect 131766 102290 131800 102302
+rect 131834 102290 131868 102302
+rect 131902 102290 131936 102302
+rect 131970 102290 132004 102302
+rect 132038 102290 132072 102302
+rect 132106 102290 132140 102302
+rect 132174 102290 132208 102302
+rect 132242 102290 132276 102302
+rect 132310 102290 132344 102302
+rect 132378 102290 132412 102302
+rect 132446 102290 132480 102302
+rect 132514 102290 132548 102302
+rect 132572 102290 132608 102302
+rect 126787 102254 126839 102290
+rect 125598 101546 125648 102146
+rect 125768 101546 125824 102146
+rect 125944 101546 125994 102146
+rect 126823 101599 126839 102254
+rect 126803 101596 126839 101599
+rect 126849 101596 126885 102290
+rect 126907 102254 126942 102290
+rect 126976 102254 127011 102290
+rect 127045 102254 127080 102290
+rect 127114 102254 127149 102290
+rect 127183 102254 127218 102290
+rect 127252 102254 127287 102290
+rect 127321 102254 127356 102290
+rect 127390 102254 127425 102290
+rect 127459 102254 127494 102290
+rect 127528 102254 127563 102290
+rect 127597 102254 127632 102290
+rect 127666 102254 127701 102290
+rect 127735 102254 127770 102290
+rect 127804 102254 127839 102290
+rect 127873 102254 127908 102290
+rect 127942 102254 127977 102290
+rect 128011 102254 128046 102290
+rect 128080 102254 128115 102290
+rect 128149 102254 128184 102290
+rect 128218 102254 128253 102290
+rect 128287 102254 128322 102290
+rect 128356 102254 128391 102290
+rect 128425 102254 128460 102290
+rect 128494 102254 128529 102290
+rect 128563 102254 128598 102290
+rect 128632 102254 128667 102290
+rect 128701 102254 128736 102290
+rect 128770 102254 128805 102290
+rect 128839 102254 128874 102290
+rect 128908 102254 128943 102290
+rect 128977 102254 129012 102290
+rect 129046 102254 129081 102290
+rect 129115 102254 129150 102290
+rect 129184 102254 129219 102290
+rect 129253 102254 129288 102290
+rect 129322 102254 129357 102290
+rect 129391 102254 129426 102290
+rect 129460 102254 129495 102290
+rect 129529 102254 129564 102290
+rect 129598 102254 129633 102290
+rect 129667 102254 129702 102290
+rect 129736 102254 129771 102290
+rect 129805 102254 129840 102290
+rect 129874 102254 129909 102290
+rect 129943 102254 129978 102290
+rect 130012 102254 130047 102290
+rect 130081 102254 130116 102290
+rect 130150 102254 130185 102290
+rect 130219 102254 130254 102290
+rect 130288 102254 130323 102290
+rect 130357 102254 130392 102290
+rect 130426 102254 130461 102290
+rect 130495 102254 130530 102290
+rect 130564 102254 130599 102290
+rect 130633 102254 130668 102290
+rect 130702 102254 130737 102290
+rect 130771 102254 130806 102290
+rect 130840 102254 130875 102290
+rect 130909 102254 130944 102290
+rect 130978 102254 131013 102290
+rect 131047 102254 131082 102290
+rect 131116 102254 131151 102290
+rect 131185 102254 131220 102290
+rect 131254 102254 131289 102290
+rect 131323 102254 131358 102290
+rect 131392 102254 131426 102290
+rect 131460 102254 131494 102290
+rect 131528 102254 131562 102290
+rect 131596 102254 131630 102290
+rect 131664 102254 131698 102290
+rect 131732 102254 131766 102290
+rect 131800 102254 131834 102290
+rect 131868 102254 131902 102290
+rect 131936 102254 131970 102290
+rect 132004 102254 132038 102290
+rect 132072 102254 132106 102290
+rect 132140 102254 132174 102290
+rect 132208 102254 132242 102290
+rect 132276 102254 132310 102290
+rect 132344 102254 132378 102290
+rect 132412 102254 132446 102290
+rect 132480 102254 132514 102290
+rect 132548 102254 132608 102290
+rect 126803 101560 126885 101596
+rect 126983 101582 127033 102182
+rect 127153 101582 127209 102182
+rect 127329 101582 127379 102182
+rect 127445 101582 127495 102182
+rect 127615 101582 127671 102182
+rect 127791 101582 127919 102182
+rect 127967 101582 128095 102182
+rect 128143 101582 128271 102182
+rect 128319 101582 128369 102182
+rect 128435 101582 128485 102182
+rect 128605 101582 128733 102182
+rect 128781 101582 128837 102182
+rect 128957 101582 129085 102182
+rect 129133 101582 129183 102182
+rect 129249 101582 129299 102182
+rect 129419 101582 129547 102182
+rect 129595 101582 129723 102182
+rect 129771 101582 129899 102182
+rect 129947 101582 130075 102182
+rect 130123 101582 130251 102182
+rect 130299 101582 130355 102182
+rect 130475 101582 130603 102182
+rect 130651 101582 130779 102182
+rect 130827 101582 130955 102182
+rect 131003 101582 131131 102182
+rect 131179 101582 131307 102182
+rect 131355 101582 131411 102182
+rect 131531 101582 131659 102182
+rect 131707 101582 131763 102182
+rect 131883 101582 132011 102182
+rect 132059 101582 132115 102182
+rect 132235 101582 132363 102182
+rect 132411 101582 132461 102182
+rect 133886 101872 134066 102072
+rect 134122 101872 134302 102072
+rect 133886 101737 134066 101774
+rect 134573 101472 134623 102072
+rect 134743 101472 134799 102072
+rect 134919 101472 134975 102072
+rect 135095 101472 135145 102072
+rect 122374 101030 122554 101230
+rect 124690 101030 124870 101230
+rect 120738 100254 120788 100854
+rect 120888 100254 120944 100854
+rect 121044 100254 121094 100854
+rect 121778 100770 121958 100970
+rect 122014 100770 122194 100970
+rect 122374 100770 122554 100970
+rect 122719 100955 122779 100970
+rect 122805 100955 122865 100970
+rect 124379 100955 124439 100970
+rect 124465 100955 124525 100970
+rect 122734 100785 122764 100955
+rect 122820 100785 122850 100955
+rect 122975 100836 123063 100872
+rect 122975 100832 123011 100836
+rect 123027 100832 123063 100836
+rect 123011 100798 123063 100832
+rect 122723 100782 122775 100785
+rect 122809 100782 122861 100785
+rect 122719 100770 122779 100782
+rect 122805 100770 122865 100782
+rect 122975 100764 123011 100798
+rect 123027 100764 123063 100798
+rect 123011 100730 123063 100764
+rect 121778 100510 121958 100710
+rect 122014 100510 122194 100710
+rect 122374 100510 122554 100710
+rect 122719 100695 122779 100710
+rect 122805 100695 122865 100710
+rect 122975 100696 123011 100730
+rect 123027 100696 123063 100730
+rect 122734 100525 122764 100695
+rect 122820 100525 122850 100695
+rect 123011 100662 123063 100696
+rect 122975 100628 123011 100662
+rect 123027 100628 123063 100662
+rect 123011 100594 123063 100628
+rect 122975 100560 123011 100594
+rect 123027 100560 123063 100594
+rect 123011 100526 123063 100560
+rect 122723 100522 122775 100525
+rect 122809 100522 122861 100525
+rect 122719 100510 122779 100522
+rect 122805 100510 122865 100522
+rect 122975 100494 123011 100526
+rect 123027 100520 123063 100526
+rect 122374 100250 122554 100450
+rect 122719 100435 122779 100450
+rect 122805 100435 122865 100450
+rect 122734 100396 122764 100435
+rect 122820 100396 122850 100435
+rect 122977 100256 123011 100494
+rect 123015 100484 123063 100520
+rect 124179 100836 124269 100872
+rect 124179 100520 124215 100836
+rect 124233 100520 124269 100836
+rect 124394 100785 124424 100955
+rect 124480 100785 124510 100955
+rect 124383 100782 124435 100785
+rect 124469 100782 124521 100785
+rect 124379 100770 124439 100782
+rect 124465 100770 124525 100782
+rect 124690 100770 124870 100970
+rect 125050 100770 125230 100970
+rect 125286 100770 125466 100970
+rect 124379 100695 124439 100710
+rect 124465 100695 124525 100710
+rect 124394 100525 124424 100695
+rect 124480 100525 124510 100695
+rect 124383 100522 124435 100525
+rect 124469 100522 124521 100525
+rect 124179 100484 124269 100520
+rect 124379 100510 124439 100522
+rect 124465 100510 124525 100522
+rect 124690 100510 124870 100710
+rect 125050 100510 125230 100710
+rect 125286 100510 125466 100710
+rect 123015 100256 123051 100484
+rect 124235 100256 124267 100484
+rect 124379 100435 124439 100450
+rect 124465 100435 124525 100450
+rect 124394 100396 124424 100435
+rect 124480 100396 124510 100435
+rect 122975 100220 123051 100256
+rect 124690 100250 124870 100450
+rect 126150 100254 126200 100854
+rect 126300 100254 126356 100854
+rect 126456 100254 126506 100854
+rect 127003 100268 127053 101268
+rect 127153 100268 127209 101268
+rect 127309 100268 127359 101268
+rect 127445 100268 127495 101268
+rect 127595 100268 127651 101268
+rect 127751 100268 127807 101268
+rect 127907 100268 127963 101268
+rect 128063 100268 128113 101268
+rect 128179 100268 128229 101268
+rect 128329 100268 128457 101268
+rect 128485 100268 128613 101268
+rect 128641 100268 128769 101268
+rect 128797 100268 128925 101268
+rect 128953 100268 129081 101268
+rect 129109 100268 129165 101268
+rect 129265 100268 129393 101268
+rect 129421 100268 129549 101268
+rect 129577 100268 129705 101268
+rect 129733 100268 129861 101268
+rect 129889 100268 130017 101268
+rect 130045 100268 130101 101268
+rect 130221 100268 130349 101268
+rect 130397 100268 130525 101268
+rect 130573 100268 130701 101268
+rect 130749 100268 130877 101268
+rect 130925 100268 131053 101268
+rect 131101 100268 131229 101268
+rect 131277 100268 131405 101268
+rect 131453 100268 131503 101268
+rect 131569 100268 131619 101268
+rect 131719 100268 131847 101268
+rect 131875 100268 132003 101268
+rect 132031 100268 132159 101268
+rect 132187 100268 132243 101268
+rect 132343 100268 132471 101268
+rect 132499 100268 132627 101268
+rect 132655 100268 132783 101268
+rect 132811 100268 132861 101268
+rect 133452 100709 133505 100859
+rect 133455 100612 133505 100709
+rect 133452 100390 133505 100612
+rect 133455 100259 133505 100390
+rect 133625 100259 133681 100859
+rect 133801 100259 133851 100859
+rect 134227 100264 134277 100864
+rect 134397 100264 134447 100864
+rect 1823 99308 1824 99332
+rect 1904 99308 1905 99332
+rect 2377 99308 2378 99332
+rect 2458 99308 2459 99332
+rect 2931 99308 2932 99332
+rect 3012 99308 3013 99332
+rect 3485 99308 3486 99332
+rect 3566 99308 3567 99332
+rect 4039 99308 4040 99332
+rect 4120 99308 4121 99332
+rect 4593 99308 4594 99332
+rect 4674 99308 4675 99332
+rect 5147 99308 5148 99332
+rect 5228 99308 5229 99332
+rect 5701 99308 5702 99332
+rect 5782 99308 5783 99332
+rect 6255 99308 6256 99332
+rect 6336 99308 6337 99332
+rect 6809 99308 6810 99332
+rect 6890 99308 6891 99332
+rect 7363 99308 7364 99332
+rect 7444 99308 7445 99332
+rect 7917 99308 7918 99332
+rect 7998 99308 7999 99332
+rect 8471 99308 8472 99332
+rect 8552 99308 8553 99332
+rect 9025 99308 9026 99332
+rect 9106 99308 9107 99332
+rect 9579 99308 9580 99332
+rect 9660 99308 9661 99332
+rect 10133 99308 10134 99332
+rect 10214 99308 10215 99332
+rect 10687 99308 10688 99332
+rect 10768 99308 10769 99332
+rect 11241 99308 11242 99332
+rect 11322 99308 11323 99332
+rect 11795 99308 11796 99332
+rect 11876 99308 11877 99332
+rect 12349 99308 12350 99332
+rect 12430 99308 12431 99332
+rect 1847 99284 1881 99296
+rect 2401 99284 2435 99296
+rect 2955 99284 2989 99296
+rect 3509 99284 3543 99296
+rect 4063 99284 4097 99296
+rect 4617 99284 4651 99296
+rect 5171 99284 5205 99296
+rect 5725 99284 5759 99296
+rect 6279 99284 6313 99296
+rect 6833 99284 6867 99296
+rect 7387 99284 7421 99296
+rect 7941 99284 7975 99296
+rect 8495 99284 8529 99296
+rect 9049 99284 9083 99296
+rect 9603 99284 9637 99296
+rect 10157 99284 10191 99296
+rect 10711 99284 10745 99296
+rect 11265 99284 11299 99296
+rect 11819 99284 11853 99296
+rect 12373 99284 12407 99296
+rect 20904 98024 20954 99424
+rect 21054 98024 21182 99424
+rect 21210 98024 21338 99424
+rect 21366 98024 21494 99424
+rect 21522 98024 21650 99424
+rect 21678 98024 21806 99424
+rect 21834 98024 21962 99424
+rect 21990 98024 22118 99424
+rect 22146 98024 22274 99424
+rect 22302 98024 22430 99424
+rect 22458 98024 22586 99424
+rect 22614 98024 22742 99424
+rect 22770 98024 22898 99424
+rect 22926 98024 23054 99424
+rect 23082 98024 23210 99424
+rect 23238 98024 23366 99424
+rect 23394 98024 23522 99424
+rect 23550 98024 23678 99424
+rect 23706 98024 23834 99424
+rect 23862 98024 23990 99424
+rect 24018 98024 24146 99424
+rect 24174 98024 24302 99424
+rect 24330 98024 24458 99424
+rect 24486 98024 24614 99424
+rect 24642 98024 24770 99424
+rect 24798 98024 24926 99424
+rect 24954 98024 25082 99424
+rect 25110 98024 25238 99424
+rect 25266 98024 25394 99424
+rect 25422 98024 25550 99424
+rect 25578 98024 25706 99424
+rect 25734 98024 25862 99424
+rect 25890 98024 26018 99424
+rect 26046 98024 26174 99424
+rect 26202 98024 26330 99424
+rect 26358 98024 26486 99424
+rect 26514 98024 26642 99424
+rect 26670 98024 26798 99424
+rect 26826 98024 26954 99424
+rect 26982 98024 27110 99424
+rect 27138 98024 27266 99424
+rect 27294 98024 27422 99424
+rect 27450 98024 27578 99424
+rect 27606 98024 27734 99424
+rect 27762 98024 27890 99424
+rect 27918 98024 28046 99424
+rect 28074 98024 28202 99424
+rect 28230 98024 28358 99424
+rect 28386 98024 28514 99424
+rect 28542 98024 28670 99424
+rect 28698 98024 28748 99424
+rect 30619 98580 30669 99980
+rect 30769 98580 30897 99980
+rect 30925 98580 31053 99980
+rect 31081 98580 31209 99980
+rect 31237 98580 31365 99980
+rect 31393 98580 31521 99980
+rect 31549 98580 31677 99980
+rect 31705 98580 31833 99980
+rect 31861 98580 31989 99980
+rect 32017 98580 32145 99980
+rect 32173 98580 32301 99980
+rect 32329 98580 32457 99980
+rect 32485 98580 32613 99980
+rect 32641 98580 32769 99980
+rect 32797 98580 32925 99980
+rect 32953 98580 33003 99980
+rect 40797 98532 40798 98556
+rect 40878 98532 40879 98556
+rect 41351 98532 41352 98556
+rect 41432 98532 41433 98556
+rect 41905 98532 41906 98556
+rect 41986 98532 41987 98556
+rect 42459 98532 42460 98556
+rect 42540 98532 42541 98556
+rect 43013 98532 43014 98556
+rect 43094 98532 43095 98556
+rect 43567 98532 43568 98556
+rect 43648 98532 43649 98556
+rect 44121 98532 44122 98556
+rect 44202 98532 44203 98556
+rect 44675 98532 44676 98556
+rect 44756 98532 44757 98556
+rect 45229 98532 45230 98556
+rect 45310 98532 45311 98556
+rect 45783 98532 45784 98556
+rect 45864 98532 45865 98556
+rect 46337 98532 46338 98556
+rect 46418 98532 46419 98556
+rect 46891 98532 46892 98556
+rect 46972 98532 46973 98556
+rect 47445 98532 47446 98556
+rect 47526 98532 47527 98556
+rect 47999 98532 48000 98556
+rect 48080 98532 48081 98556
+rect 48553 98532 48554 98556
+rect 48634 98532 48635 98556
+rect 49107 98532 49108 98556
+rect 49188 98532 49189 98556
+rect 49661 98532 49662 98556
+rect 49742 98532 49743 98556
+rect 50215 98532 50216 98556
+rect 50296 98532 50297 98556
+rect 50769 98532 50770 98556
+rect 50850 98532 50851 98556
+rect 51323 98532 51324 98556
+rect 51404 98532 51405 98556
+rect 40821 98508 40855 98520
+rect 41375 98508 41409 98520
+rect 41929 98508 41963 98520
+rect 42483 98508 42517 98520
+rect 43037 98508 43071 98520
+rect 43591 98508 43625 98520
+rect 44145 98508 44179 98520
+rect 44699 98508 44733 98520
+rect 45253 98508 45287 98520
+rect 45807 98508 45841 98520
+rect 46361 98508 46395 98520
+rect 46915 98508 46949 98520
+rect 47469 98508 47503 98520
+rect 48023 98508 48057 98520
+rect 48577 98508 48611 98520
+rect 49131 98508 49165 98520
+rect 49685 98508 49719 98520
+rect 50239 98508 50273 98520
+rect 50793 98508 50827 98520
+rect 51347 98508 51381 98520
+rect 1823 97308 1824 97332
+rect 1904 97308 1905 97332
+rect 2377 97308 2378 97332
+rect 2458 97308 2459 97332
+rect 2931 97308 2932 97332
+rect 3012 97308 3013 97332
+rect 3485 97308 3486 97332
+rect 3566 97308 3567 97332
+rect 4039 97308 4040 97332
+rect 4120 97308 4121 97332
+rect 4593 97308 4594 97332
+rect 4674 97308 4675 97332
+rect 5147 97308 5148 97332
+rect 5228 97308 5229 97332
+rect 5701 97308 5702 97332
+rect 5782 97308 5783 97332
+rect 6255 97308 6256 97332
+rect 6336 97308 6337 97332
+rect 6809 97308 6810 97332
+rect 6890 97308 6891 97332
+rect 7363 97308 7364 97332
+rect 7444 97308 7445 97332
+rect 7917 97308 7918 97332
+rect 7998 97308 7999 97332
+rect 8471 97308 8472 97332
+rect 8552 97308 8553 97332
+rect 9025 97308 9026 97332
+rect 9106 97308 9107 97332
+rect 9579 97308 9580 97332
+rect 9660 97308 9661 97332
+rect 10133 97308 10134 97332
+rect 10214 97308 10215 97332
+rect 10687 97308 10688 97332
+rect 10768 97308 10769 97332
+rect 11241 97308 11242 97332
+rect 11322 97308 11323 97332
+rect 11795 97308 11796 97332
+rect 11876 97308 11877 97332
+rect 12349 97308 12350 97332
+rect 12430 97308 12431 97332
+rect 1847 97284 1881 97296
+rect 2401 97284 2435 97296
+rect 2955 97284 2989 97296
+rect 3509 97284 3543 97296
+rect 4063 97284 4097 97296
+rect 4617 97284 4651 97296
+rect 5171 97284 5205 97296
+rect 5725 97284 5759 97296
+rect 6279 97284 6313 97296
+rect 6833 97284 6867 97296
+rect 7387 97284 7421 97296
+rect 7941 97284 7975 97296
+rect 8495 97284 8529 97296
+rect 9049 97284 9083 97296
+rect 9603 97284 9637 97296
+rect 10157 97284 10191 97296
+rect 10711 97284 10745 97296
+rect 11265 97284 11299 97296
+rect 11819 97284 11853 97296
+rect 12373 97284 12407 97296
+rect 31199 96493 31249 97493
+rect 32049 96493 32099 97493
+rect 32351 96493 32401 97493
+rect 33201 96493 33251 97493
+rect 57744 96888 57794 98288
+rect 57894 96888 58022 98288
+rect 58050 96888 58178 98288
+rect 58206 96888 58334 98288
+rect 58362 96888 58490 98288
+rect 58518 96888 58646 98288
+rect 58674 96888 58802 98288
+rect 58830 96888 58958 98288
+rect 58986 96888 59114 98288
+rect 59142 96888 59270 98288
+rect 59298 96888 59426 98288
+rect 59454 96888 59582 98288
+rect 59610 96888 59738 98288
+rect 59766 96888 59894 98288
+rect 59922 96888 60050 98288
+rect 60078 96888 60206 98288
+rect 60234 96888 60362 98288
+rect 60390 96888 60518 98288
+rect 60546 96888 60674 98288
+rect 60702 96888 60830 98288
+rect 60858 96888 60986 98288
+rect 61014 96888 61142 98288
+rect 61170 96888 61298 98288
+rect 61326 96888 61454 98288
+rect 61482 96888 61610 98288
+rect 61638 96888 61766 98288
+rect 61794 96888 61922 98288
+rect 61950 96888 62078 98288
+rect 62106 96888 62234 98288
+rect 62262 96888 62390 98288
+rect 62418 96888 62546 98288
+rect 62574 96888 62702 98288
+rect 62730 96888 62858 98288
+rect 62886 96888 63014 98288
+rect 63042 96888 63170 98288
+rect 63198 96888 63326 98288
+rect 63354 96888 63482 98288
+rect 63510 96888 63638 98288
+rect 63666 96888 63794 98288
+rect 63822 96888 63950 98288
+rect 63978 96888 64106 98288
+rect 64134 96888 64262 98288
+rect 64290 96888 64418 98288
+rect 64446 96888 64574 98288
+rect 64602 96888 64730 98288
+rect 64758 96888 64886 98288
+rect 64914 96888 65042 98288
+rect 65070 96888 65198 98288
+rect 65226 96888 65354 98288
+rect 65382 96888 65510 98288
+rect 65538 96888 65588 98288
+rect 67459 97444 67509 98844
+rect 67609 97444 67737 98844
+rect 67765 97444 67893 98844
+rect 67921 97444 68049 98844
+rect 68077 97444 68205 98844
+rect 68233 97444 68361 98844
+rect 68389 97444 68517 98844
+rect 68545 97444 68673 98844
+rect 68701 97444 68829 98844
+rect 68857 97444 68985 98844
+rect 69013 97444 69141 98844
+rect 69169 97444 69297 98844
+rect 69325 97444 69453 98844
+rect 69481 97444 69609 98844
+rect 69637 97444 69765 98844
+rect 69793 97444 69843 98844
+rect 78296 97858 78346 99258
+rect 78446 97858 78574 99258
+rect 78602 97858 78730 99258
+rect 78758 97858 78886 99258
+rect 78914 97858 79042 99258
+rect 79070 97858 79198 99258
+rect 79226 97858 79354 99258
+rect 79382 97858 79510 99258
+rect 79538 97858 79666 99258
+rect 79694 97858 79822 99258
+rect 79850 97858 79978 99258
+rect 80006 97858 80134 99258
+rect 80162 97858 80290 99258
+rect 80318 97858 80446 99258
+rect 80474 97858 80602 99258
+rect 80630 97858 80758 99258
+rect 80786 97858 80914 99258
+rect 80942 97858 81070 99258
+rect 81098 97858 81226 99258
+rect 81254 97858 81382 99258
+rect 81410 97858 81538 99258
+rect 81566 97858 81694 99258
+rect 81722 97858 81850 99258
+rect 81878 97858 82006 99258
+rect 82034 97858 82162 99258
+rect 82190 97858 82318 99258
+rect 82346 97858 82474 99258
+rect 82502 97858 82630 99258
+rect 82658 97858 82786 99258
+rect 82814 97858 82942 99258
+rect 82970 97858 83098 99258
+rect 83126 97858 83254 99258
+rect 83282 97858 83410 99258
+rect 83438 97858 83566 99258
+rect 83594 97858 83722 99258
+rect 83750 97858 83878 99258
+rect 83906 97858 84034 99258
+rect 84062 97858 84190 99258
+rect 84218 97858 84346 99258
+rect 84374 97858 84502 99258
+rect 84530 97858 84658 99258
+rect 84686 97858 84814 99258
+rect 84842 97858 84970 99258
+rect 84998 97858 85126 99258
+rect 85154 97858 85282 99258
+rect 85310 97858 85438 99258
+rect 85466 97858 85594 99258
+rect 85622 97858 85750 99258
+rect 85778 97858 85906 99258
+rect 85934 97858 86062 99258
+rect 86090 97858 86140 99258
+rect 88011 98414 88061 99814
+rect 88161 98414 88289 99814
+rect 88317 98414 88445 99814
+rect 88473 98414 88601 99814
+rect 88629 98414 88757 99814
+rect 88785 98414 88913 99814
+rect 88941 98414 89069 99814
+rect 89097 98414 89225 99814
+rect 89253 98414 89381 99814
+rect 89409 98414 89537 99814
+rect 89565 98414 89693 99814
+rect 89721 98414 89849 99814
+rect 89877 98414 90005 99814
+rect 90033 98414 90161 99814
+rect 90189 98414 90317 99814
+rect 90345 98414 90395 99814
+rect 99739 99696 99740 99720
+rect 99820 99696 99821 99720
+rect 100293 99696 100294 99720
+rect 100374 99696 100375 99720
+rect 100847 99696 100848 99720
+rect 100928 99696 100929 99720
+rect 101401 99696 101402 99720
+rect 101482 99696 101483 99720
+rect 101955 99696 101956 99720
+rect 102036 99696 102037 99720
+rect 102509 99696 102510 99720
+rect 102590 99696 102591 99720
+rect 103063 99696 103064 99720
+rect 103144 99696 103145 99720
+rect 103617 99696 103618 99720
+rect 103698 99696 103699 99720
+rect 104171 99696 104172 99720
+rect 104252 99696 104253 99720
+rect 104725 99696 104726 99720
+rect 104806 99696 104807 99720
+rect 105279 99696 105280 99720
+rect 105360 99696 105361 99720
+rect 105833 99696 105834 99720
+rect 105914 99696 105915 99720
+rect 106387 99696 106388 99720
+rect 106468 99696 106469 99720
+rect 106941 99696 106942 99720
+rect 107022 99696 107023 99720
+rect 107495 99696 107496 99720
+rect 107576 99696 107577 99720
+rect 108049 99696 108050 99720
+rect 108130 99696 108131 99720
+rect 108603 99696 108604 99720
+rect 108684 99696 108685 99720
+rect 109157 99696 109158 99720
+rect 109238 99696 109239 99720
+rect 109711 99696 109712 99720
+rect 109792 99696 109793 99720
+rect 110265 99696 110266 99720
+rect 110346 99696 110347 99720
+rect 99763 99672 99797 99684
+rect 100317 99672 100351 99684
+rect 100871 99672 100905 99684
+rect 101425 99672 101459 99684
+rect 101979 99672 102013 99684
+rect 102533 99672 102567 99684
+rect 103087 99672 103121 99684
+rect 103641 99672 103675 99684
+rect 104195 99672 104229 99684
+rect 104749 99672 104783 99684
+rect 105303 99672 105337 99684
+rect 105857 99672 105891 99684
+rect 106411 99672 106445 99684
+rect 106965 99672 106999 99684
+rect 107519 99672 107553 99684
+rect 108073 99672 108107 99684
+rect 108627 99672 108661 99684
+rect 109181 99672 109215 99684
+rect 109735 99672 109769 99684
+rect 110289 99672 110323 99684
+rect 119455 99282 119463 99507
+rect 119532 98425 119582 99025
+rect 119682 98425 119732 99025
+rect 120588 98787 120638 99387
+rect 120738 98787 120794 99387
+rect 120894 98787 120944 99387
+rect 121116 98721 121166 99721
+rect 121266 98721 121322 99721
+rect 121422 98721 121472 99721
+rect 121538 98721 121588 99721
+rect 121688 98721 121816 99721
+rect 121844 98721 121972 99721
+rect 122000 98721 122128 99721
+rect 122156 98721 122212 99721
+rect 122312 98721 122440 99721
+rect 122468 98721 122596 99721
+rect 122624 98721 122752 99721
+rect 122780 98721 122830 99721
+rect 122982 98721 123032 99721
+rect 123132 98721 123260 99721
+rect 123288 98721 123416 99721
+rect 123444 98721 123572 99721
+rect 123600 98721 123728 99721
+rect 123756 98721 123884 99721
+rect 123912 98721 124040 99721
+rect 124068 98721 124196 99721
+rect 124224 98721 124274 99721
+rect 124426 98771 124476 99771
+rect 124576 98771 124704 99771
+rect 124732 98771 124860 99771
+rect 124888 98771 125016 99771
+rect 125044 98771 125172 99771
+rect 125200 98771 125328 99771
+rect 125356 98771 125484 99771
+rect 125512 98771 125640 99771
+rect 125668 98771 125718 99771
+rect 125870 98721 125920 99721
+rect 126020 98721 126148 99721
+rect 126176 98721 126304 99721
+rect 126332 98721 126460 99721
+rect 126488 98721 126616 99721
+rect 126644 98721 126772 99721
+rect 126800 98721 126928 99721
+rect 126956 98721 127084 99721
+rect 127112 98721 127168 99721
+rect 127268 98721 127318 99721
+rect 127470 99121 127520 99721
+rect 127904 99121 127954 99721
+rect 129147 99236 129197 99836
+rect 129297 99236 129425 99836
+rect 129453 99236 129581 99836
+rect 129609 99236 129659 99836
+rect 129739 99236 129789 99836
+rect 129889 99236 130017 99836
+rect 130045 99236 130101 99836
+rect 130201 99236 130329 99836
+rect 130357 99236 130407 99836
+rect 130487 99236 130537 99836
+rect 130637 99236 130693 99836
+rect 130793 99236 130843 99836
+rect 129772 98456 129808 99056
+rect 130132 98456 130188 99056
+rect 130322 98456 130372 99056
+rect 126035 98342 126101 98358
+rect 126197 98342 126263 98358
+rect 128605 98288 128680 98298
+rect 128900 98288 128975 98298
+rect 99739 97696 99740 97720
+rect 99820 97696 99821 97720
+rect 100293 97696 100294 97720
+rect 100374 97696 100375 97720
+rect 100847 97696 100848 97720
+rect 100928 97696 100929 97720
+rect 101401 97696 101402 97720
+rect 101482 97696 101483 97720
+rect 101955 97696 101956 97720
+rect 102036 97696 102037 97720
+rect 102509 97696 102510 97720
+rect 102590 97696 102591 97720
+rect 103063 97696 103064 97720
+rect 103144 97696 103145 97720
+rect 103617 97696 103618 97720
+rect 103698 97696 103699 97720
+rect 104171 97696 104172 97720
+rect 104252 97696 104253 97720
+rect 104725 97696 104726 97720
+rect 104806 97696 104807 97720
+rect 105279 97696 105280 97720
+rect 105360 97696 105361 97720
+rect 105833 97696 105834 97720
+rect 105914 97696 105915 97720
+rect 106387 97696 106388 97720
+rect 106468 97696 106469 97720
+rect 106941 97696 106942 97720
+rect 107022 97696 107023 97720
+rect 107495 97696 107496 97720
+rect 107576 97696 107577 97720
+rect 108049 97696 108050 97720
+rect 108130 97696 108131 97720
+rect 108603 97696 108604 97720
+rect 108684 97696 108685 97720
+rect 109157 97696 109158 97720
+rect 109238 97696 109239 97720
+rect 109711 97696 109712 97720
+rect 109792 97696 109793 97720
+rect 110265 97696 110266 97720
+rect 110346 97696 110347 97720
+rect 99763 97672 99797 97684
+rect 100317 97672 100351 97684
+rect 100871 97672 100905 97684
+rect 101425 97672 101459 97684
+rect 101979 97672 102013 97684
+rect 102533 97672 102567 97684
+rect 103087 97672 103121 97684
+rect 103641 97672 103675 97684
+rect 104195 97672 104229 97684
+rect 104749 97672 104783 97684
+rect 105303 97672 105337 97684
+rect 105857 97672 105891 97684
+rect 106411 97672 106445 97684
+rect 106965 97672 106999 97684
+rect 107519 97672 107553 97684
+rect 108073 97672 108107 97684
+rect 108627 97672 108661 97684
+rect 109181 97672 109215 97684
+rect 109735 97672 109769 97684
+rect 110289 97672 110323 97684
+rect 120888 97638 120938 98238
+rect 121038 97638 121094 98238
+rect 121194 97638 121244 98238
+rect 121456 97607 121506 98207
+rect 121606 97607 121734 98207
+rect 121762 97607 121890 98207
+rect 121918 97607 122046 98207
+rect 122074 97607 122124 98207
+rect 122190 97607 122240 98207
+rect 122340 97607 122468 98207
+rect 122496 97607 122624 98207
+rect 122652 97607 122780 98207
+rect 122808 97607 122864 98207
+rect 122964 97607 123092 98207
+rect 123120 97607 123248 98207
+rect 123276 97607 123404 98207
+rect 123432 97607 123488 98207
+rect 123588 97607 123644 98207
+rect 123744 97607 123800 98207
+rect 123900 97607 123950 98207
+rect 124016 97607 124066 98207
+rect 124166 97607 124294 98207
+rect 124322 97607 124378 98207
+rect 124478 97607 124606 98207
+rect 124634 97607 124684 98207
+rect 127617 98115 128617 98165
+rect 128680 98115 128730 98226
+rect 128677 97995 128730 98115
+rect 127617 97945 128617 97995
+rect 40797 96532 40798 96556
+rect 40878 96532 40879 96556
+rect 41351 96532 41352 96556
+rect 41432 96532 41433 96556
+rect 41905 96532 41906 96556
+rect 41986 96532 41987 96556
+rect 42459 96532 42460 96556
+rect 42540 96532 42541 96556
+rect 43013 96532 43014 96556
+rect 43094 96532 43095 96556
+rect 43567 96532 43568 96556
+rect 43648 96532 43649 96556
+rect 44121 96532 44122 96556
+rect 44202 96532 44203 96556
+rect 44675 96532 44676 96556
+rect 44756 96532 44757 96556
+rect 45229 96532 45230 96556
+rect 45310 96532 45311 96556
+rect 45783 96532 45784 96556
+rect 45864 96532 45865 96556
+rect 46337 96532 46338 96556
+rect 46418 96532 46419 96556
+rect 46891 96532 46892 96556
+rect 46972 96532 46973 96556
+rect 47445 96532 47446 96556
+rect 47526 96532 47527 96556
+rect 47999 96532 48000 96556
+rect 48080 96532 48081 96556
+rect 48553 96532 48554 96556
+rect 48634 96532 48635 96556
+rect 49107 96532 49108 96556
+rect 49188 96532 49189 96556
+rect 49661 96532 49662 96556
+rect 49742 96532 49743 96556
+rect 50215 96532 50216 96556
+rect 50296 96532 50297 96556
+rect 50769 96532 50770 96556
+rect 50850 96532 50851 96556
+rect 51323 96532 51324 96556
+rect 51404 96532 51405 96556
+rect 40821 96508 40855 96520
+rect 41375 96508 41409 96520
+rect 41929 96508 41963 96520
+rect 42483 96508 42517 96520
+rect 43037 96508 43071 96520
+rect 43591 96508 43625 96520
+rect 44145 96508 44179 96520
+rect 44699 96508 44733 96520
+rect 45253 96508 45287 96520
+rect 45807 96508 45841 96520
+rect 46361 96508 46395 96520
+rect 46915 96508 46949 96520
+rect 47469 96508 47503 96520
+rect 48023 96508 48057 96520
+rect 48577 96508 48611 96520
+rect 49131 96508 49165 96520
+rect 49685 96508 49719 96520
+rect 50239 96508 50273 96520
+rect 50793 96508 50827 96520
+rect 51347 96508 51381 96520
+rect -820 95764 -754 95780
+rect 6411 95594 6497 95630
+rect 3043 95400 3395 95426
+rect 3867 95400 4219 95426
+rect 4691 95400 5043 95426
+rect 5515 95400 5867 95426
+rect 3069 92401 3070 95400
+rect 3369 92401 3395 95400
+rect 3069 92400 3395 92401
+rect 3893 92401 3894 95400
+rect 4193 92401 4219 95400
+rect 3893 92400 4219 92401
+rect 4717 92401 4718 95400
+rect 5017 92401 5043 95400
+rect 4717 92400 5043 92401
+rect 5541 92401 5542 95400
+rect 5841 92401 5867 95400
+rect 5541 92400 5867 92401
+rect 6411 92206 6447 95594
+rect 6461 92206 6497 95594
+rect 7041 95400 7393 95426
+rect 7865 95400 8217 95426
+rect 8689 95400 9041 95426
+rect 9513 95400 9865 95426
+rect 7067 92401 7068 95400
+rect 7367 92401 7393 95400
+rect 7067 92400 7393 92401
+rect 7891 92401 7892 95400
+rect 8191 92401 8217 95400
+rect 7891 92400 8217 92401
+rect 8715 92401 8716 95400
+rect 9015 92401 9041 95400
+rect 8715 92400 9041 92401
+rect 9539 92401 9540 95400
+rect 9839 92401 9865 95400
+rect 22591 95249 22641 96249
+rect 23441 95249 23491 96249
+rect 23743 95249 23793 96249
+rect 25393 95249 25443 96249
+rect 25695 95249 25745 96249
+rect 27345 95249 27395 96249
+rect 27647 95249 27697 96249
+rect 29297 95249 29347 96249
+rect 29599 95249 29649 96249
+rect 31249 95249 31299 96249
+rect 31551 95249 31601 96249
+rect 33201 95249 33251 96249
+rect 68039 95357 68089 96357
+rect 68889 95357 68939 96357
+rect 69191 95357 69241 96357
+rect 70041 95357 70091 96357
+rect 88591 96327 88641 97327
+rect 89441 96327 89491 97327
+rect 89743 96327 89793 97327
+rect 90593 96327 90643 97327
+rect 127580 97225 127630 97825
+rect 127750 97225 127806 97825
+rect 127926 97225 127976 97825
+rect 128196 97226 128246 97826
+rect 128366 97226 128422 97826
+rect 128542 97226 128592 97826
+rect 128680 97226 128730 97995
+rect 128850 97226 128900 98226
+rect 128963 98115 129563 98165
+rect 128963 98015 128975 98115
+rect 130862 98045 130912 98645
+rect 131032 98045 131088 98645
+rect 131208 98045 131336 98645
+rect 131384 98045 131440 98645
+rect 131560 98045 131616 98645
+rect 131736 98045 131792 98645
+rect 131912 98045 132040 98645
+rect 132088 98045 132138 98645
+rect 128963 97965 129563 98015
+rect 128979 97226 129029 97826
+rect 129149 97226 129205 97826
+rect 129325 97226 129375 97826
+rect 129666 97226 129716 97826
+rect 129836 97226 129964 97826
+rect 130012 97226 130068 97826
+rect 130188 97226 130316 97826
+rect 130364 97226 130414 97826
+rect 130786 97290 130836 97890
+rect 130956 97290 131084 97890
+rect 131132 97290 131260 97890
+rect 131308 97290 131436 97890
+rect 131484 97290 131612 97890
+rect 131660 97290 131716 97890
+rect 131836 97290 131964 97890
+rect 132012 97290 132062 97890
+rect 123463 97102 123513 97183
+rect 119796 96771 119811 96786
+rect 119760 96741 119811 96771
+rect 119796 96726 119811 96741
+rect 120654 96430 120704 97030
+rect 120824 96430 120952 97030
+rect 121000 96430 121056 97030
+rect 121176 96601 121226 97030
+rect 121289 96830 121301 97030
+rect 123460 96830 123513 97102
+rect 121176 96529 121229 96601
+rect 123463 96583 123513 96830
+rect 123613 96583 123663 97183
+rect 123729 96583 123779 97183
+rect 123879 96583 124007 97183
+rect 124035 96583 124163 97183
+rect 124191 96583 124319 97183
+rect 124397 96583 124450 97183
+rect 121176 96430 121226 96529
+rect 121289 96430 121301 96529
+rect 123800 96245 124290 96246
+rect 124400 96183 124450 96583
+rect 124550 96183 124678 97183
+rect 124706 96183 124756 97183
+rect 124957 96998 124967 97032
+rect 124957 96930 124967 96964
+rect 124957 96862 124967 96896
+rect 124957 96794 124967 96828
+rect 124957 96719 124967 96753
+rect 124957 96651 124967 96685
+rect 124957 96583 124967 96617
+rect 124957 96515 124967 96549
+rect 124957 96447 124967 96481
+rect 124957 96379 124967 96413
+rect 124957 96311 124967 96345
+rect 124957 96243 124967 96277
+rect 124957 96175 124967 96209
+rect 97096 96152 97162 96168
+rect 124957 96107 124967 96141
+rect 22591 94005 22641 95005
+rect 23441 94005 23491 95005
+rect 23743 94005 23793 95005
+rect 25393 94005 25443 95005
+rect 25695 94005 25745 95005
+rect 27345 94005 27395 95005
+rect 27647 94005 27697 95005
+rect 29297 94005 29347 95005
+rect 29599 94005 29649 95005
+rect 31249 94005 31299 95005
+rect 31551 94005 31601 95005
+rect 33201 94005 33251 95005
+rect 38154 94988 38220 95004
+rect 45385 94818 45471 94854
+rect 42017 94624 42369 94650
+rect 42841 94624 43193 94650
+rect 43665 94624 44017 94650
+rect 44489 94624 44841 94650
+rect 22591 92761 22641 93761
+rect 23441 92761 23491 93761
+rect 23743 92761 23793 93761
+rect 25393 92761 25443 93761
+rect 25695 92761 25745 93761
+rect 27345 92761 27395 93761
+rect 27647 92761 27697 93761
+rect 29297 92761 29347 93761
+rect 29599 92761 29649 93761
+rect 31249 92761 31299 93761
+rect 31551 92761 31601 93761
+rect 33201 92761 33251 93761
+rect 9539 92400 9865 92401
+rect 6411 92170 6497 92206
+rect 42043 91625 42044 94624
+rect 42343 91625 42369 94624
+rect 42043 91624 42369 91625
+rect 42867 91625 42868 94624
+rect 43167 91625 43193 94624
+rect 42867 91624 43193 91625
+rect 43691 91625 43692 94624
+rect 43991 91625 44017 94624
+rect 43691 91624 44017 91625
+rect 44515 91625 44516 94624
+rect 44815 91625 44841 94624
+rect 44515 91624 44841 91625
+rect 45385 91430 45421 94818
+rect 45435 91430 45471 94818
+rect 46015 94624 46367 94650
+rect 46839 94624 47191 94650
+rect 47663 94624 48015 94650
+rect 48487 94624 48839 94650
+rect 46041 91625 46042 94624
+rect 46341 91625 46367 94624
+rect 46041 91624 46367 91625
+rect 46865 91625 46866 94624
+rect 47165 91625 47191 94624
+rect 46865 91624 47191 91625
+rect 47689 91625 47690 94624
+rect 47989 91625 48015 94624
+rect 47689 91624 48015 91625
+rect 48513 91625 48514 94624
+rect 48813 91625 48839 94624
+rect 59431 94113 59481 95113
+rect 60281 94113 60331 95113
+rect 60583 94113 60633 95113
+rect 62233 94113 62283 95113
+rect 62535 94113 62585 95113
+rect 64185 94113 64235 95113
+rect 64487 94113 64537 95113
+rect 66137 94113 66187 95113
+rect 66439 94113 66489 95113
+rect 68089 94113 68139 95113
+rect 68391 94113 68441 95113
+rect 70041 94113 70091 95113
+rect 79983 95083 80033 96083
+rect 80833 95083 80883 96083
+rect 81135 95083 81185 96083
+rect 82785 95083 82835 96083
+rect 83087 95083 83137 96083
+rect 84737 95083 84787 96083
+rect 85039 95083 85089 96083
+rect 86689 95083 86739 96083
+rect 86991 95083 87041 96083
+rect 88641 95083 88691 96083
+rect 88943 95083 88993 96083
+rect 90593 95083 90643 96083
+rect 125026 96062 125076 97062
+rect 125196 96062 125324 97062
+rect 125372 96062 125500 97062
+rect 125548 96062 125604 97062
+rect 125724 96062 125774 97062
+rect 125873 96942 125939 96958
+rect 126359 96942 126425 96958
+rect 125873 96158 125939 96174
+rect 126035 96158 126101 96174
+rect 126197 96158 126263 96174
+rect 126359 96158 126425 96174
+rect 126524 96062 126574 97062
+rect 126694 96062 126750 97062
+rect 126870 96062 126998 97062
+rect 127046 96062 127174 97062
+rect 127222 96062 127272 97062
+rect 127365 96998 127375 97032
+rect 127365 96930 127375 96964
+rect 127365 96862 127375 96896
+rect 127365 96794 127375 96828
+rect 127365 96719 127375 96753
+rect 127365 96651 127375 96685
+rect 127365 96583 127375 96617
+rect 127365 96515 127375 96549
+rect 127365 96447 127375 96481
+rect 127365 96379 127375 96413
+rect 127365 96311 127375 96345
+rect 127365 96243 127375 96277
+rect 127365 96175 127375 96209
+rect 127365 96107 127375 96141
+rect 127424 96062 127474 97062
+rect 127594 96062 127722 97062
+rect 127770 96062 127826 97062
+rect 127946 96062 127996 97062
+rect 128162 96462 128212 97062
+rect 128332 96462 128388 97062
+rect 128508 96462 128636 97062
+rect 128684 96462 128734 97062
+rect 128886 96462 128936 97062
+rect 129036 96462 129164 97062
+rect 129192 96462 129248 97062
+rect 129348 96462 129476 97062
+rect 129504 96462 129554 97062
+rect 129758 96462 129808 97062
+rect 129908 96462 130036 97062
+rect 130064 96462 130192 97062
+rect 130220 96462 130276 97062
+rect 130376 96462 130426 97062
+rect 132211 96933 132261 96988
+rect 104327 95982 104413 96018
+rect 100959 95788 101311 95814
+rect 101783 95788 102135 95814
+rect 102607 95788 102959 95814
+rect 103431 95788 103783 95814
+rect 59431 92869 59481 93869
+rect 60281 92869 60331 93869
+rect 60583 92869 60633 93869
+rect 62233 92869 62283 93869
+rect 62535 92869 62585 93869
+rect 64185 92869 64235 93869
+rect 64487 92869 64537 93869
+rect 66137 92869 66187 93869
+rect 66439 92869 66489 93869
+rect 68089 92869 68139 93869
+rect 68391 92869 68441 93869
+rect 70041 92869 70091 93869
+rect 79983 93839 80033 94839
+rect 80833 93839 80883 94839
+rect 81135 93839 81185 94839
+rect 82785 93839 82835 94839
+rect 83087 93839 83137 94839
+rect 84737 93839 84787 94839
+rect 85039 93839 85089 94839
+rect 86689 93839 86739 94839
+rect 86991 93839 87041 94839
+rect 88641 93839 88691 94839
+rect 88943 93839 88993 94839
+rect 90593 93839 90643 94839
+rect 59431 91625 59481 92625
+rect 60281 91625 60331 92625
+rect 60583 91625 60633 92625
+rect 62233 91625 62283 92625
+rect 62535 91625 62585 92625
+rect 64185 91625 64235 92625
+rect 64487 91625 64537 92625
+rect 66137 91625 66187 92625
+rect 66439 91625 66489 92625
+rect 68089 91625 68139 92625
+rect 68391 91625 68441 92625
+rect 70041 91625 70091 92625
+rect 79983 92595 80033 93595
+rect 80833 92595 80883 93595
+rect 81135 92595 81185 93595
+rect 82785 92595 82835 93595
+rect 83087 92595 83137 93595
+rect 84737 92595 84787 93595
+rect 85039 92595 85089 93595
+rect 86689 92595 86739 93595
+rect 86991 92595 87041 93595
+rect 88641 92595 88691 93595
+rect 88943 92595 88993 93595
+rect 90593 92595 90643 93595
+rect 100985 92789 100986 95788
+rect 101285 92789 101311 95788
+rect 100985 92788 101311 92789
+rect 101809 92789 101810 95788
+rect 102109 92789 102135 95788
+rect 101809 92788 102135 92789
+rect 102633 92789 102634 95788
+rect 102933 92789 102959 95788
+rect 102633 92788 102959 92789
+rect 103457 92789 103458 95788
+rect 103757 92789 103783 95788
+rect 103457 92788 103783 92789
+rect 104327 92594 104363 95982
+rect 104377 92594 104413 95982
+rect 104957 95788 105309 95814
+rect 105781 95788 106133 95814
+rect 106605 95788 106957 95814
+rect 107429 95788 107781 95814
+rect 104983 92789 104984 95788
+rect 105283 92789 105309 95788
+rect 104983 92788 105309 92789
+rect 105807 92789 105808 95788
+rect 106107 92789 106133 95788
+rect 105807 92788 106133 92789
+rect 106631 92789 106632 95788
+rect 106931 92789 106957 95788
+rect 106631 92788 106957 92789
+rect 107455 92789 107456 95788
+rect 107755 92789 107781 95788
+rect 119826 95382 119879 95532
+rect 119829 94932 119879 95382
+rect 119999 94932 120055 95532
+rect 120175 94932 120231 95532
+rect 120351 94932 120407 95532
+rect 120527 94932 120577 95532
+rect 120643 94932 120693 95532
+rect 120813 94932 120869 95532
+rect 120989 94932 121045 95532
+rect 121165 94932 121215 95532
+rect 121486 95332 121666 95532
+rect 121722 95332 121902 95532
+rect 123456 95332 123636 95532
+rect 123692 95332 123872 95532
+rect 121722 95197 121902 95234
+rect 123456 95197 123636 95234
+rect 124143 94932 124193 95532
+rect 124313 94932 124369 95532
+rect 124489 94932 124545 95532
+rect 124665 94932 124715 95532
+rect 124797 94932 124847 95532
+rect 124967 94932 125023 95532
+rect 125143 94932 125199 95532
+rect 125319 94932 125369 95532
+rect 125640 95332 125820 95532
+rect 125876 95332 126056 95532
+rect 127610 95332 127790 95532
+rect 127846 95332 128026 95532
+rect 125876 95197 126056 95234
+rect 127610 95197 127790 95234
+rect 128297 94932 128347 95532
+rect 128467 94932 128523 95532
+rect 128643 94932 128699 95532
+rect 128819 94932 128869 95532
+rect 128951 94932 129001 95532
+rect 129121 94932 129177 95532
+rect 129297 94932 129353 95532
+rect 129473 94932 129523 95532
+rect 129794 95332 129974 95532
+rect 130030 95332 130210 95532
+rect 131764 95332 131944 95532
+rect 132000 95332 132180 95532
+rect 130030 95197 130210 95234
+rect 131764 95197 131944 95234
+rect 132451 94932 132501 95532
+rect 132621 94932 132677 95532
+rect 132797 94932 132853 95532
+rect 132973 94932 133023 95532
+rect 133204 94534 133228 94558
+rect 133625 94534 133649 94558
+rect 133228 94510 133252 94525
+rect 133601 94510 133625 94525
+rect 133032 94354 133056 94378
+rect 133057 94330 133080 94354
+rect 119452 93516 119502 94116
+rect 119622 93516 119678 94116
+rect 119798 93516 119848 94116
+rect 121341 93724 121391 94324
+rect 121511 93724 121561 94324
+rect 121937 93719 121987 94319
+rect 122107 93719 122163 94319
+rect 122283 94072 122333 94319
+rect 122396 94169 122408 94319
+rect 123022 94169 123075 94319
+rect 123025 94072 123075 94169
+rect 122283 94000 122336 94072
+rect 122283 93719 122333 94000
+rect 122396 93850 122408 94000
+rect 123022 93850 123075 94072
+rect 123025 93719 123075 93850
+rect 123195 93719 123251 94319
+rect 123371 93719 123421 94319
+rect 123797 93724 123847 94324
+rect 123967 93724 124017 94324
+rect 125495 93724 125545 94324
+rect 125665 93724 125715 94324
+rect 126091 93719 126141 94319
+rect 126261 93719 126317 94319
+rect 126437 94072 126487 94319
+rect 126550 94169 126562 94319
+rect 127176 94169 127229 94319
+rect 127179 94072 127229 94169
+rect 126437 94000 126490 94072
+rect 126437 93719 126487 94000
+rect 126550 93850 126562 94000
+rect 127176 93850 127229 94072
+rect 127179 93719 127229 93850
+rect 127349 93719 127405 94319
+rect 127525 93719 127575 94319
+rect 127951 93724 128001 94324
+rect 128121 93724 128171 94324
+rect 129649 93724 129699 94324
+rect 129819 93724 129869 94324
+rect 130245 93719 130295 94319
+rect 130415 93719 130471 94319
+rect 130591 94072 130641 94319
+rect 130704 94169 130716 94319
+rect 131330 94169 131383 94319
+rect 131333 94072 131383 94169
+rect 130591 94000 130644 94072
+rect 130591 93719 130641 94000
+rect 130704 93850 130716 94000
+rect 131330 93850 131383 94072
+rect 131333 93719 131383 93850
+rect 131503 93719 131559 94319
+rect 131679 93719 131729 94319
+rect 132105 93724 132155 94324
+rect 132275 93724 132325 94324
+rect 133252 94266 133286 94290
+rect 133322 94266 133356 94290
+rect 133392 94266 133426 94290
+rect 133462 94266 133496 94290
+rect 133532 94266 133566 94290
+rect 133602 94266 133625 94290
+rect 133057 94232 133080 94256
+rect 133032 94208 133056 94232
+rect 120880 93397 120914 93421
+rect 120948 93397 120982 93421
+rect 121016 93397 121050 93421
+rect 121084 93397 121118 93421
+rect 121152 93397 121186 93421
+rect 121220 93397 121254 93421
+rect 121288 93397 121322 93421
+rect 121356 93397 121390 93421
+rect 121424 93397 121458 93421
+rect 121492 93397 121526 93421
+rect 121560 93397 121594 93421
+rect 121628 93397 121662 93421
+rect 121696 93397 121730 93421
+rect 121764 93397 121798 93421
+rect 121832 93397 121866 93421
+rect 121900 93397 121934 93421
+rect 121968 93397 122002 93421
+rect 122036 93397 122070 93421
+rect 122104 93397 122138 93421
+rect 122172 93397 122206 93421
+rect 122240 93397 122274 93421
+rect 122308 93397 122342 93421
+rect 122376 93397 122410 93421
+rect 122444 93397 122478 93421
+rect 122512 93397 122546 93421
+rect 122580 93397 122614 93421
+rect 122648 93397 122682 93421
+rect 122716 93397 122750 93421
+rect 122784 93397 122818 93421
+rect 122852 93397 122886 93421
+rect 122920 93397 122954 93421
+rect 122988 93397 123022 93421
+rect 123056 93397 123090 93421
+rect 123124 93397 123158 93421
+rect 123192 93397 123226 93421
+rect 123260 93397 123294 93421
+rect 123328 93397 123362 93421
+rect 123396 93397 123430 93421
+rect 123464 93397 123498 93421
+rect 123532 93397 123566 93421
+rect 123600 93397 123634 93421
+rect 123668 93397 123702 93421
+rect 123736 93397 123770 93421
+rect 123804 93397 123838 93421
+rect 123872 93397 123906 93421
+rect 123940 93397 123974 93421
+rect 124008 93397 124042 93421
+rect 124076 93397 124110 93421
+rect 124144 93397 124178 93421
+rect 124212 93397 124246 93421
+rect 124280 93397 124314 93421
+rect 124348 93397 124382 93421
+rect 124416 93397 124450 93421
+rect 124484 93397 124518 93421
+rect 124552 93397 124586 93421
+rect 124620 93397 124654 93421
+rect 124688 93397 124722 93421
+rect 124756 93397 124790 93421
+rect 124824 93397 124858 93421
+rect 124892 93397 124926 93421
+rect 124960 93397 124994 93421
+rect 125028 93397 125062 93421
+rect 125096 93397 125130 93421
+rect 125164 93397 125198 93421
+rect 125232 93397 125266 93421
+rect 125300 93397 125334 93421
+rect 125368 93397 125402 93421
+rect 125436 93397 125470 93421
+rect 125504 93397 125538 93421
+rect 125572 93397 125606 93421
+rect 125640 93397 125674 93421
+rect 125708 93397 125742 93421
+rect 125776 93397 125810 93421
+rect 125844 93397 125878 93421
+rect 125912 93397 125946 93421
+rect 125980 93397 126014 93421
+rect 126048 93397 126082 93421
+rect 126116 93397 126150 93421
+rect 126184 93397 126218 93421
+rect 126252 93397 126286 93421
+rect 126320 93397 126354 93421
+rect 126388 93397 126422 93421
+rect 126456 93397 126490 93421
+rect 126524 93397 126558 93421
+rect 126592 93397 126626 93421
+rect 126660 93397 126694 93421
+rect 126728 93397 126762 93421
+rect 126796 93397 126830 93421
+rect 126864 93397 126898 93421
+rect 126932 93397 126966 93421
+rect 127000 93397 127034 93421
+rect 127068 93397 127102 93421
+rect 127136 93397 127170 93421
+rect 127204 93397 127238 93421
+rect 127272 93397 127306 93421
+rect 127340 93397 127374 93421
+rect 127408 93397 127442 93421
+rect 127476 93397 127510 93421
+rect 127544 93397 127578 93421
+rect 127612 93397 127646 93421
+rect 127680 93397 127714 93421
+rect 127748 93397 127782 93421
+rect 127816 93397 127850 93421
+rect 127884 93397 127918 93421
+rect 127952 93397 127986 93421
+rect 128020 93397 128054 93421
+rect 128088 93397 128122 93421
+rect 128156 93397 128190 93421
+rect 128224 93397 128258 93421
+rect 128358 93397 128392 93421
+rect 128426 93397 128460 93421
+rect 128494 93397 128528 93421
+rect 128562 93397 128596 93421
+rect 128630 93397 128664 93421
+rect 128698 93397 128732 93421
+rect 128766 93397 128800 93421
+rect 128834 93397 128868 93421
+rect 128902 93397 128936 93421
+rect 128970 93397 129004 93421
+rect 129038 93397 129072 93421
+rect 129106 93397 129140 93421
+rect 129174 93397 129208 93421
+rect 129242 93397 129276 93421
+rect 129310 93397 129344 93421
+rect 129378 93397 129412 93421
+rect 129446 93397 129480 93421
+rect 129514 93397 129548 93421
+rect 129582 93397 129616 93421
+rect 129650 93397 129684 93421
+rect 129718 93397 129752 93421
+rect 129786 93397 129820 93421
+rect 129854 93397 129888 93421
+rect 129922 93397 129956 93421
+rect 129990 93397 130024 93421
+rect 130058 93397 130092 93421
+rect 130126 93397 130160 93421
+rect 130194 93397 130228 93421
+rect 130262 93397 130296 93421
+rect 130330 93397 130364 93421
+rect 130398 93397 130432 93421
+rect 130466 93397 130500 93421
+rect 130534 93397 130568 93421
+rect 130602 93397 130636 93421
+rect 130670 93397 130704 93421
+rect 130738 93397 130772 93421
+rect 130806 93397 130840 93421
+rect 130874 93397 130908 93421
+rect 130942 93397 130976 93421
+rect 131010 93397 131044 93421
+rect 131078 93397 131112 93421
+rect 131146 93397 131180 93421
+rect 131214 93397 131248 93421
+rect 131282 93397 131316 93421
+rect 131350 93397 131384 93421
+rect 131418 93397 131452 93421
+rect 128334 93363 128362 93397
+rect 107455 92788 107781 92789
+rect 104327 92558 104413 92594
+rect 48513 91624 48839 91625
+rect 45385 91394 45471 91430
+rect 1188 85320 1254 85336
+rect 2211 83550 2212 83574
+rect 2292 83550 2293 83574
+rect 2765 83550 2766 83574
+rect 2846 83550 2847 83574
+rect 3319 83550 3320 83574
+rect 3400 83550 3401 83574
+rect 3873 83550 3874 83574
+rect 3954 83550 3955 83574
+rect 4427 83550 4428 83574
+rect 4508 83550 4509 83574
+rect 4981 83550 4982 83574
+rect 5062 83550 5063 83574
+rect 5535 83550 5536 83574
+rect 5616 83550 5617 83574
+rect 6089 83550 6090 83574
+rect 6170 83550 6171 83574
+rect 6643 83550 6644 83574
+rect 6724 83550 6725 83574
+rect 7197 83550 7198 83574
+rect 7278 83550 7279 83574
+rect 7751 83550 7752 83574
+rect 7832 83550 7833 83574
+rect 8305 83550 8306 83574
+rect 8386 83550 8387 83574
+rect 8859 83550 8860 83574
+rect 8940 83550 8941 83574
+rect 9413 83550 9414 83574
+rect 9494 83550 9495 83574
+rect 9967 83550 9968 83574
+rect 10048 83550 10049 83574
+rect 10521 83550 10522 83574
+rect 10602 83550 10603 83574
+rect 11075 83550 11076 83574
+rect 11156 83550 11157 83574
+rect 11629 83550 11630 83574
+rect 11710 83550 11711 83574
+rect 12183 83550 12184 83574
+rect 12264 83550 12265 83574
+rect 12737 83550 12738 83574
+rect 12818 83550 12819 83574
+rect 2235 83526 2269 83538
+rect 2789 83526 2823 83538
+rect 3343 83526 3377 83538
+rect 3897 83526 3931 83538
+rect 4451 83526 4485 83538
+rect 5005 83526 5039 83538
+rect 5559 83526 5593 83538
+rect 6113 83526 6147 83538
+rect 6667 83526 6701 83538
+rect 7221 83526 7255 83538
+rect 7775 83526 7809 83538
+rect 8329 83526 8363 83538
+rect 8883 83526 8917 83538
+rect 9437 83526 9471 83538
+rect 9991 83526 10025 83538
+rect 10545 83526 10579 83538
+rect 11099 83526 11133 83538
+rect 11653 83526 11687 83538
+rect 12207 83526 12241 83538
+rect 12761 83526 12795 83538
+rect 21232 83370 21304 85370
+rect 21503 83403 21621 85297
+rect 21892 83370 21952 85370
+rect 22152 83370 22224 85370
+rect 22423 83403 22541 85297
+rect 22812 83370 22872 85370
+rect 23072 83370 23144 85370
+rect 23343 83403 23461 85297
+rect 23732 83370 23792 85370
+rect 23992 83370 24064 85370
+rect 24263 83403 24381 85297
+rect 24652 83370 24712 85370
+rect 24912 83370 24984 85370
+rect 25183 83403 25301 85297
+rect 25572 83370 25632 85370
+rect 25832 83370 25904 85370
+rect 26103 83403 26221 85297
+rect 26492 83370 26552 85370
+rect 26752 83370 26824 85370
+rect 27023 83403 27141 85297
+rect 27412 83370 27472 85370
+rect 27672 83370 27744 85370
+rect 27943 83403 28061 85297
+rect 28332 83370 28392 85370
+rect 28592 83370 28664 85370
+rect 28863 83403 28981 85297
+rect 29252 83370 29312 85370
+rect 29512 83370 29584 85370
+rect 29783 83403 29901 85297
+rect 30172 83370 30232 85370
+rect 30432 83370 30504 85370
+rect 30703 83403 30821 85297
+rect 31092 83370 31152 85370
+rect 41010 83564 41082 85564
+rect 41281 83597 41399 85491
+rect 41670 83564 41730 85564
+rect 41930 83564 42002 85564
+rect 42201 83597 42319 85491
+rect 42590 83564 42650 85564
+rect 42850 83564 42922 85564
+rect 43121 83597 43239 85491
+rect 43510 83564 43570 85564
+rect 43770 83564 43842 85564
+rect 44041 83597 44159 85491
+rect 44430 83564 44490 85564
+rect 44690 83564 44762 85564
+rect 44961 83597 45079 85491
+rect 45350 83564 45410 85564
+rect 45610 83564 45682 85564
+rect 45881 83597 45999 85491
+rect 46270 83564 46330 85564
+rect 46530 83564 46602 85564
+rect 46801 83597 46919 85491
+rect 47190 83564 47250 85564
+rect 47450 83564 47522 85564
+rect 47721 83597 47839 85491
+rect 48110 83564 48170 85564
+rect 48370 83564 48442 85564
+rect 48641 83597 48759 85491
+rect 49030 83564 49090 85564
+rect 49290 83564 49362 85564
+rect 49561 83597 49679 85491
+rect 49950 83564 50010 85564
+rect 50210 83564 50282 85564
+rect 50481 83597 50599 85491
+rect 50870 83564 50930 85564
+rect 61684 83574 61750 83590
+rect 80686 83380 80752 83396
+rect 2765 81550 2766 81574
+rect 2846 81550 2847 81574
+rect 3319 81550 3320 81574
+rect 3400 81550 3401 81574
+rect 3873 81550 3874 81574
+rect 3954 81550 3955 81574
+rect 4427 81550 4428 81574
+rect 4508 81550 4509 81574
+rect 4981 81550 4982 81574
+rect 5062 81550 5063 81574
+rect 5535 81550 5536 81574
+rect 5616 81550 5617 81574
+rect 6089 81550 6090 81574
+rect 6170 81550 6171 81574
+rect 6643 81550 6644 81574
+rect 6724 81550 6725 81574
+rect 7197 81550 7198 81574
+rect 7278 81550 7279 81574
+rect 7751 81550 7752 81574
+rect 7832 81550 7833 81574
+rect 8305 81550 8306 81574
+rect 8386 81550 8387 81574
+rect 8859 81550 8860 81574
+rect 8940 81550 8941 81574
+rect 9413 81550 9414 81574
+rect 9494 81550 9495 81574
+rect 9967 81550 9968 81574
+rect 10048 81550 10049 81574
+rect 10521 81550 10522 81574
+rect 10602 81550 10603 81574
+rect 11075 81550 11076 81574
+rect 11156 81550 11157 81574
+rect 11629 81550 11630 81574
+rect 11710 81550 11711 81574
+rect 12183 81550 12184 81574
+rect 12264 81550 12265 81574
+rect 12737 81550 12738 81574
+rect 12818 81550 12819 81574
+rect 2789 81526 2823 81538
+rect 3343 81526 3377 81538
+rect 3897 81526 3931 81538
+rect 4451 81526 4485 81538
+rect 5005 81526 5039 81538
+rect 5559 81526 5593 81538
+rect 6113 81526 6147 81538
+rect 6667 81526 6701 81538
+rect 7221 81526 7255 81538
+rect 7775 81526 7809 81538
+rect 8329 81526 8363 81538
+rect 8883 81526 8917 81538
+rect 9437 81526 9471 81538
+rect 9991 81526 10025 81538
+rect 10545 81526 10579 81538
+rect 11099 81526 11133 81538
+rect 11653 81526 11687 81538
+rect 12207 81526 12241 81538
+rect 12761 81526 12795 81538
+rect 2705 79550 2706 79574
+rect 2786 79550 2787 79574
+rect 3541 79550 3542 79574
+rect 3622 79550 3623 79574
+rect 4377 79550 4378 79574
+rect 4458 79550 4459 79574
+rect 5213 79550 5214 79574
+rect 5294 79550 5295 79574
+rect 6049 79550 6050 79574
+rect 6130 79550 6131 79574
+rect 6885 79550 6886 79574
+rect 6966 79550 6967 79574
+rect 7721 79550 7722 79574
+rect 7802 79550 7803 79574
+rect 8557 79550 8558 79574
+rect 8638 79550 8639 79574
+rect 9393 79550 9394 79574
+rect 9474 79550 9475 79574
+rect 10229 79550 10230 79574
+rect 10310 79550 10311 79574
+rect 11065 79550 11066 79574
+rect 11146 79550 11147 79574
+rect 11901 79550 11902 79574
+rect 11982 79550 11983 79574
+rect 12737 79550 12738 79574
+rect 12818 79550 12819 79574
+rect 2729 79526 2763 79538
+rect 3565 79526 3599 79538
+rect 4401 79526 4435 79538
+rect 5237 79526 5271 79538
+rect 6073 79526 6107 79538
+rect 6909 79526 6943 79538
+rect 7745 79526 7779 79538
+rect 8581 79526 8615 79538
+rect 9417 79526 9451 79538
+rect 10253 79526 10287 79538
+rect 11089 79526 11123 79538
+rect 11925 79526 11959 79538
+rect 12761 79526 12795 79538
+rect 21232 78770 21304 82770
+rect 21503 78803 21621 82737
+rect 21892 78770 21952 82770
+rect 22152 78770 22224 82770
+rect 22423 78803 22541 82737
+rect 22812 78770 22872 82770
+rect 23072 78770 23144 82770
+rect 23343 78803 23461 82737
+rect 23732 78770 23792 82770
+rect 23992 78770 24064 82770
+rect 24263 78803 24381 82737
+rect 24652 78770 24712 82770
+rect 24912 78770 24984 82770
+rect 25183 78803 25301 82737
+rect 25572 78770 25632 82770
+rect 25832 78770 25904 82770
+rect 26103 78803 26221 82737
+rect 26492 78770 26552 82770
+rect 26752 78770 26824 82770
+rect 27023 78803 27141 82737
+rect 27412 78770 27472 82770
+rect 27672 78770 27744 82770
+rect 27943 78803 28061 82737
+rect 28332 78770 28392 82770
+rect 28592 78770 28664 82770
+rect 28863 78803 28981 82737
+rect 29252 78770 29312 82770
+rect 29512 78770 29584 82770
+rect 29783 78803 29901 82737
+rect 30172 78770 30232 82770
+rect 30432 78770 30504 82770
+rect 30703 78803 30821 82737
+rect 31092 78770 31152 82770
+rect 41010 78964 41082 82964
+rect 41281 78997 41399 82931
+rect 41670 78964 41730 82964
+rect 41930 78964 42002 82964
+rect 42201 78997 42319 82931
+rect 42590 78964 42650 82964
+rect 42850 78964 42922 82964
+rect 43121 78997 43239 82931
+rect 43510 78964 43570 82964
+rect 43770 78964 43842 82964
+rect 44041 78997 44159 82931
+rect 44430 78964 44490 82964
+rect 44690 78964 44762 82964
+rect 44961 78997 45079 82931
+rect 45350 78964 45410 82964
+rect 45610 78964 45682 82964
+rect 45881 78997 45999 82931
+rect 46270 78964 46330 82964
+rect 46530 78964 46602 82964
+rect 46801 78997 46919 82931
+rect 47190 78964 47250 82964
+rect 47450 78964 47522 82964
+rect 47721 78997 47839 82931
+rect 48110 78964 48170 82964
+rect 48370 78964 48442 82964
+rect 48641 78997 48759 82931
+rect 49030 78964 49090 82964
+rect 49290 78964 49362 82964
+rect 49561 78997 49679 82931
+rect 49950 78964 50010 82964
+rect 50210 78964 50282 82964
+rect 50481 78997 50599 82931
+rect 50870 78964 50930 82964
+rect 62707 81804 62708 81828
+rect 62788 81804 62789 81828
+rect 63261 81804 63262 81828
+rect 63342 81804 63343 81828
+rect 63815 81804 63816 81828
+rect 63896 81804 63897 81828
+rect 64369 81804 64370 81828
+rect 64450 81804 64451 81828
+rect 64923 81804 64924 81828
+rect 65004 81804 65005 81828
+rect 65477 81804 65478 81828
+rect 65558 81804 65559 81828
+rect 66031 81804 66032 81828
+rect 66112 81804 66113 81828
+rect 66585 81804 66586 81828
+rect 66666 81804 66667 81828
+rect 67139 81804 67140 81828
+rect 67220 81804 67221 81828
+rect 67693 81804 67694 81828
+rect 67774 81804 67775 81828
+rect 68247 81804 68248 81828
+rect 68328 81804 68329 81828
+rect 68801 81804 68802 81828
+rect 68882 81804 68883 81828
+rect 69355 81804 69356 81828
+rect 69436 81804 69437 81828
+rect 69909 81804 69910 81828
+rect 69990 81804 69991 81828
+rect 70463 81804 70464 81828
+rect 70544 81804 70545 81828
+rect 71017 81804 71018 81828
+rect 71098 81804 71099 81828
+rect 71571 81804 71572 81828
+rect 71652 81804 71653 81828
+rect 72125 81804 72126 81828
+rect 72206 81804 72207 81828
+rect 72679 81804 72680 81828
+rect 72760 81804 72761 81828
+rect 73233 81804 73234 81828
+rect 73314 81804 73315 81828
+rect 62731 81780 62765 81792
+rect 63285 81780 63319 81792
+rect 63839 81780 63873 81792
+rect 64393 81780 64427 81792
+rect 64947 81780 64981 81792
+rect 65501 81780 65535 81792
+rect 66055 81780 66089 81792
+rect 66609 81780 66643 81792
+rect 67163 81780 67197 81792
+rect 67717 81780 67751 81792
+rect 68271 81780 68305 81792
+rect 68825 81780 68859 81792
+rect 69379 81780 69413 81792
+rect 69933 81780 69967 81792
+rect 70487 81780 70521 81792
+rect 71041 81780 71075 81792
+rect 71595 81780 71629 81792
+rect 72149 81780 72183 81792
+rect 72703 81780 72737 81792
+rect 73257 81780 73291 81792
+rect 81709 81610 81710 81634
+rect 81790 81610 81791 81634
+rect 82263 81610 82264 81634
+rect 82344 81610 82345 81634
+rect 82817 81610 82818 81634
+rect 82898 81610 82899 81634
+rect 83371 81610 83372 81634
+rect 83452 81610 83453 81634
+rect 83925 81610 83926 81634
+rect 84006 81610 84007 81634
+rect 84479 81610 84480 81634
+rect 84560 81610 84561 81634
+rect 85033 81610 85034 81634
+rect 85114 81610 85115 81634
+rect 85587 81610 85588 81634
+rect 85668 81610 85669 81634
+rect 86141 81610 86142 81634
+rect 86222 81610 86223 81634
+rect 86695 81610 86696 81634
+rect 86776 81610 86777 81634
+rect 87249 81610 87250 81634
+rect 87330 81610 87331 81634
+rect 87803 81610 87804 81634
+rect 87884 81610 87885 81634
+rect 88357 81610 88358 81634
+rect 88438 81610 88439 81634
+rect 88911 81610 88912 81634
+rect 88992 81610 88993 81634
+rect 89465 81610 89466 81634
+rect 89546 81610 89547 81634
+rect 90019 81610 90020 81634
+rect 90100 81610 90101 81634
+rect 90573 81610 90574 81634
+rect 90654 81610 90655 81634
+rect 91127 81610 91128 81634
+rect 91208 81610 91209 81634
+rect 91681 81610 91682 81634
+rect 91762 81610 91763 81634
+rect 92235 81610 92236 81634
+rect 92316 81610 92317 81634
+rect 81733 81586 81767 81598
+rect 82287 81586 82321 81598
+rect 82841 81586 82875 81598
+rect 83395 81586 83429 81598
+rect 83949 81586 83983 81598
+rect 84503 81586 84537 81598
+rect 85057 81586 85091 81598
+rect 85611 81586 85645 81598
+rect 86165 81586 86199 81598
+rect 86719 81586 86753 81598
+rect 87273 81586 87307 81598
+rect 87827 81586 87861 81598
+rect 88381 81586 88415 81598
+rect 88935 81586 88969 81598
+rect 89489 81586 89523 81598
+rect 90043 81586 90077 81598
+rect 90597 81586 90631 81598
+rect 91151 81586 91185 81598
+rect 91705 81586 91739 81598
+rect 92259 81586 92293 81598
+rect 103638 81596 103710 83596
+rect 103909 81629 104027 83523
+rect 104298 81596 104358 83596
+rect 104558 81596 104630 83596
+rect 104829 81629 104947 83523
+rect 105218 81596 105278 83596
+rect 105478 81596 105550 83596
+rect 105749 81629 105867 83523
+rect 106138 81596 106198 83596
+rect 106398 81596 106470 83596
+rect 106669 81629 106787 83523
+rect 107058 81596 107118 83596
+rect 107318 81596 107390 83596
+rect 107589 81629 107707 83523
+rect 107978 81596 108038 83596
+rect 108238 81596 108310 83596
+rect 108509 81629 108627 83523
+rect 108898 81596 108958 83596
+rect 109158 81596 109230 83596
+rect 109429 81629 109547 83523
+rect 109818 81596 109878 83596
+rect 110078 81596 110150 83596
+rect 110349 81629 110467 83523
+rect 110738 81596 110798 83596
+rect 110998 81596 111070 83596
+rect 111269 81629 111387 83523
+rect 111658 81596 111718 83596
+rect 111918 81596 111990 83596
+rect 112189 81629 112307 83523
+rect 112578 81596 112638 83596
+rect 112838 81596 112910 83596
+rect 113109 81629 113227 83523
+rect 113498 81596 113558 83596
+rect 63261 79804 63262 79828
+rect 63342 79804 63343 79828
+rect 63815 79804 63816 79828
+rect 63896 79804 63897 79828
+rect 64369 79804 64370 79828
+rect 64450 79804 64451 79828
+rect 64923 79804 64924 79828
+rect 65004 79804 65005 79828
+rect 65477 79804 65478 79828
+rect 65558 79804 65559 79828
+rect 66031 79804 66032 79828
+rect 66112 79804 66113 79828
+rect 66585 79804 66586 79828
+rect 66666 79804 66667 79828
+rect 67139 79804 67140 79828
+rect 67220 79804 67221 79828
+rect 67693 79804 67694 79828
+rect 67774 79804 67775 79828
+rect 68247 79804 68248 79828
+rect 68328 79804 68329 79828
+rect 68801 79804 68802 79828
+rect 68882 79804 68883 79828
+rect 69355 79804 69356 79828
+rect 69436 79804 69437 79828
+rect 69909 79804 69910 79828
+rect 69990 79804 69991 79828
+rect 70463 79804 70464 79828
+rect 70544 79804 70545 79828
+rect 71017 79804 71018 79828
+rect 71098 79804 71099 79828
+rect 71571 79804 71572 79828
+rect 71652 79804 71653 79828
+rect 72125 79804 72126 79828
+rect 72206 79804 72207 79828
+rect 72679 79804 72680 79828
+rect 72760 79804 72761 79828
+rect 73233 79804 73234 79828
+rect 73314 79804 73315 79828
+rect 63285 79780 63319 79792
+rect 63839 79780 63873 79792
+rect 64393 79780 64427 79792
+rect 64947 79780 64981 79792
+rect 65501 79780 65535 79792
+rect 66055 79780 66089 79792
+rect 66609 79780 66643 79792
+rect 67163 79780 67197 79792
+rect 67717 79780 67751 79792
+rect 68271 79780 68305 79792
+rect 68825 79780 68859 79792
+rect 69379 79780 69413 79792
+rect 69933 79780 69967 79792
+rect 70487 79780 70521 79792
+rect 71041 79780 71075 79792
+rect 71595 79780 71629 79792
+rect 72149 79780 72183 79792
+rect 72703 79780 72737 79792
+rect 73257 79780 73291 79792
+rect 82263 79610 82264 79634
+rect 82344 79610 82345 79634
+rect 82817 79610 82818 79634
+rect 82898 79610 82899 79634
+rect 83371 79610 83372 79634
+rect 83452 79610 83453 79634
+rect 83925 79610 83926 79634
+rect 84006 79610 84007 79634
+rect 84479 79610 84480 79634
+rect 84560 79610 84561 79634
+rect 85033 79610 85034 79634
+rect 85114 79610 85115 79634
+rect 85587 79610 85588 79634
+rect 85668 79610 85669 79634
+rect 86141 79610 86142 79634
+rect 86222 79610 86223 79634
+rect 86695 79610 86696 79634
+rect 86776 79610 86777 79634
+rect 87249 79610 87250 79634
+rect 87330 79610 87331 79634
+rect 87803 79610 87804 79634
+rect 87884 79610 87885 79634
+rect 88357 79610 88358 79634
+rect 88438 79610 88439 79634
+rect 88911 79610 88912 79634
+rect 88992 79610 88993 79634
+rect 89465 79610 89466 79634
+rect 89546 79610 89547 79634
+rect 90019 79610 90020 79634
+rect 90100 79610 90101 79634
+rect 90573 79610 90574 79634
+rect 90654 79610 90655 79634
+rect 91127 79610 91128 79634
+rect 91208 79610 91209 79634
+rect 91681 79610 91682 79634
+rect 91762 79610 91763 79634
+rect 92235 79610 92236 79634
+rect 92316 79610 92317 79634
+rect 82287 79586 82321 79598
+rect 82841 79586 82875 79598
+rect 83395 79586 83429 79598
+rect 83949 79586 83983 79598
+rect 84503 79586 84537 79598
+rect 85057 79586 85091 79598
+rect 85611 79586 85645 79598
+rect 86165 79586 86199 79598
+rect 86719 79586 86753 79598
+rect 87273 79586 87307 79598
+rect 87827 79586 87861 79598
+rect 88381 79586 88415 79598
+rect 88935 79586 88969 79598
+rect 89489 79586 89523 79598
+rect 90043 79586 90077 79598
+rect 90597 79586 90631 79598
+rect 91151 79586 91185 79598
+rect 91705 79586 91739 79598
+rect 92259 79586 92293 79598
+rect 2705 77550 2706 77574
+rect 2786 77550 2787 77574
+rect 3541 77550 3542 77574
+rect 3622 77550 3623 77574
+rect 4377 77550 4378 77574
+rect 4458 77550 4459 77574
+rect 5213 77550 5214 77574
+rect 5294 77550 5295 77574
+rect 6049 77550 6050 77574
+rect 6130 77550 6131 77574
+rect 6885 77550 6886 77574
+rect 6966 77550 6967 77574
+rect 7721 77550 7722 77574
+rect 7802 77550 7803 77574
+rect 8557 77550 8558 77574
+rect 8638 77550 8639 77574
+rect 9393 77550 9394 77574
+rect 9474 77550 9475 77574
+rect 10229 77550 10230 77574
+rect 10310 77550 10311 77574
+rect 11065 77550 11066 77574
+rect 11146 77550 11147 77574
+rect 11901 77550 11902 77574
+rect 11982 77550 11983 77574
+rect 12737 77550 12738 77574
+rect 12818 77550 12819 77574
+rect 2729 77526 2763 77538
+rect 3565 77526 3599 77538
+rect 4401 77526 4435 77538
+rect 5237 77526 5271 77538
+rect 6073 77526 6107 77538
+rect 6909 77526 6943 77538
+rect 7745 77526 7779 77538
+rect 8581 77526 8615 77538
+rect 9417 77526 9451 77538
+rect 10253 77526 10287 77538
+rect 11089 77526 11123 77538
+rect 11925 77526 11959 77538
+rect 12761 77526 12795 77538
+rect 2705 75550 2706 75574
+rect 2786 75550 2787 75574
+rect 3541 75550 3542 75574
+rect 3622 75550 3623 75574
+rect 4377 75550 4378 75574
+rect 4458 75550 4459 75574
+rect 5213 75550 5214 75574
+rect 5294 75550 5295 75574
+rect 6049 75550 6050 75574
+rect 6130 75550 6131 75574
+rect 6885 75550 6886 75574
+rect 6966 75550 6967 75574
+rect 7721 75550 7722 75574
+rect 7802 75550 7803 75574
+rect 8557 75550 8558 75574
+rect 8638 75550 8639 75574
+rect 9393 75550 9394 75574
+rect 9474 75550 9475 75574
+rect 10229 75550 10230 75574
+rect 10310 75550 10311 75574
+rect 11065 75550 11066 75574
+rect 11146 75550 11147 75574
+rect 11901 75550 11902 75574
+rect 11982 75550 11983 75574
+rect 12737 75550 12738 75574
+rect 12818 75550 12819 75574
+rect 2729 75526 2763 75538
+rect 3565 75526 3599 75538
+rect 4401 75526 4435 75538
+rect 5237 75526 5271 75538
+rect 6073 75526 6107 75538
+rect 6909 75526 6943 75538
+rect 7745 75526 7779 75538
+rect 8581 75526 8615 75538
+rect 9417 75526 9451 75538
+rect 10253 75526 10287 75538
+rect 11089 75526 11123 75538
+rect 11925 75526 11959 75538
+rect 12761 75526 12795 75538
+rect 21232 74170 21304 78170
+rect 21503 74203 21621 78137
+rect 21892 74170 21952 78170
+rect 22152 74170 22224 78170
+rect 22423 74203 22541 78137
+rect 22812 74170 22872 78170
+rect 23072 74170 23144 78170
+rect 23343 74203 23461 78137
+rect 23732 74170 23792 78170
+rect 23992 74170 24064 78170
+rect 24263 74203 24381 78137
+rect 24652 74170 24712 78170
+rect 24912 74170 24984 78170
+rect 25183 74203 25301 78137
+rect 25572 74170 25632 78170
+rect 25832 74170 25904 78170
+rect 26103 74203 26221 78137
+rect 26492 74170 26552 78170
+rect 26752 74170 26824 78170
+rect 27023 74203 27141 78137
+rect 27412 74170 27472 78170
+rect 27672 74170 27744 78170
+rect 27943 74203 28061 78137
+rect 28332 74170 28392 78170
+rect 28592 74170 28664 78170
+rect 28863 74203 28981 78137
+rect 29252 74170 29312 78170
+rect 29512 74170 29584 78170
+rect 29783 74203 29901 78137
+rect 30172 74170 30232 78170
+rect 30432 74170 30504 78170
+rect 30703 74203 30821 78137
+rect 31092 74170 31152 78170
+rect 41010 74364 41082 78364
+rect 41281 74397 41399 78331
+rect 41670 74364 41730 78364
+rect 41930 74364 42002 78364
+rect 42201 74397 42319 78331
+rect 42590 74364 42650 78364
+rect 42850 74364 42922 78364
+rect 43121 74397 43239 78331
+rect 43510 74364 43570 78364
+rect 43770 74364 43842 78364
+rect 44041 74397 44159 78331
+rect 44430 74364 44490 78364
+rect 44690 74364 44762 78364
+rect 44961 74397 45079 78331
+rect 45350 74364 45410 78364
+rect 45610 74364 45682 78364
+rect 45881 74397 45999 78331
+rect 46270 74364 46330 78364
+rect 46530 74364 46602 78364
+rect 46801 74397 46919 78331
+rect 47190 74364 47250 78364
+rect 47450 74364 47522 78364
+rect 47721 74397 47839 78331
+rect 48110 74364 48170 78364
+rect 48370 74364 48442 78364
+rect 48641 74397 48759 78331
+rect 49030 74364 49090 78364
+rect 49290 74364 49362 78364
+rect 49561 74397 49679 78331
+rect 49950 74364 50010 78364
+rect 50210 74364 50282 78364
+rect 50481 74397 50599 78331
+rect 50870 74364 50930 78364
+rect 63201 77804 63202 77828
+rect 63282 77804 63283 77828
+rect 64037 77804 64038 77828
+rect 64118 77804 64119 77828
+rect 64873 77804 64874 77828
+rect 64954 77804 64955 77828
+rect 65709 77804 65710 77828
+rect 65790 77804 65791 77828
+rect 66545 77804 66546 77828
+rect 66626 77804 66627 77828
+rect 67381 77804 67382 77828
+rect 67462 77804 67463 77828
+rect 68217 77804 68218 77828
+rect 68298 77804 68299 77828
+rect 69053 77804 69054 77828
+rect 69134 77804 69135 77828
+rect 69889 77804 69890 77828
+rect 69970 77804 69971 77828
+rect 70725 77804 70726 77828
+rect 70806 77804 70807 77828
+rect 71561 77804 71562 77828
+rect 71642 77804 71643 77828
+rect 72397 77804 72398 77828
+rect 72478 77804 72479 77828
+rect 73233 77804 73234 77828
+rect 73314 77804 73315 77828
+rect 63225 77780 63259 77792
+rect 64061 77780 64095 77792
+rect 64897 77780 64931 77792
+rect 65733 77780 65767 77792
+rect 66569 77780 66603 77792
+rect 67405 77780 67439 77792
+rect 68241 77780 68275 77792
+rect 69077 77780 69111 77792
+rect 69913 77780 69947 77792
+rect 70749 77780 70783 77792
+rect 71585 77780 71619 77792
+rect 72421 77780 72455 77792
+rect 73257 77780 73291 77792
+rect 82203 77610 82204 77634
+rect 82284 77610 82285 77634
+rect 83039 77610 83040 77634
+rect 83120 77610 83121 77634
+rect 83875 77610 83876 77634
+rect 83956 77610 83957 77634
+rect 84711 77610 84712 77634
+rect 84792 77610 84793 77634
+rect 85547 77610 85548 77634
+rect 85628 77610 85629 77634
+rect 86383 77610 86384 77634
+rect 86464 77610 86465 77634
+rect 87219 77610 87220 77634
+rect 87300 77610 87301 77634
+rect 88055 77610 88056 77634
+rect 88136 77610 88137 77634
+rect 88891 77610 88892 77634
+rect 88972 77610 88973 77634
+rect 89727 77610 89728 77634
+rect 89808 77610 89809 77634
+rect 90563 77610 90564 77634
+rect 90644 77610 90645 77634
+rect 91399 77610 91400 77634
+rect 91480 77610 91481 77634
+rect 92235 77610 92236 77634
+rect 92316 77610 92317 77634
+rect 82227 77586 82261 77598
+rect 83063 77586 83097 77598
+rect 83899 77586 83933 77598
+rect 84735 77586 84769 77598
+rect 85571 77586 85605 77598
+rect 86407 77586 86441 77598
+rect 87243 77586 87277 77598
+rect 88079 77586 88113 77598
+rect 88915 77586 88949 77598
+rect 89751 77586 89785 77598
+rect 90587 77586 90621 77598
+rect 91423 77586 91457 77598
+rect 92259 77586 92293 77598
+rect 103638 76996 103710 80996
+rect 103909 77029 104027 80963
+rect 104298 76996 104358 80996
+rect 104558 76996 104630 80996
+rect 104829 77029 104947 80963
+rect 105218 76996 105278 80996
+rect 105478 76996 105550 80996
+rect 105749 77029 105867 80963
+rect 106138 76996 106198 80996
+rect 106398 76996 106470 80996
+rect 106669 77029 106787 80963
+rect 107058 76996 107118 80996
+rect 107318 76996 107390 80996
+rect 107589 77029 107707 80963
+rect 107978 76996 108038 80996
+rect 108238 76996 108310 80996
+rect 108509 77029 108627 80963
+rect 108898 76996 108958 80996
+rect 109158 76996 109230 80996
+rect 109429 77029 109547 80963
+rect 109818 76996 109878 80996
+rect 110078 76996 110150 80996
+rect 110349 77029 110467 80963
+rect 110738 76996 110798 80996
+rect 110998 76996 111070 80996
+rect 111269 77029 111387 80963
+rect 111658 76996 111718 80996
+rect 111918 76996 111990 80996
+rect 112189 77029 112307 80963
+rect 112578 76996 112638 80996
+rect 112838 76996 112910 80996
+rect 113109 77029 113227 80963
+rect 113498 76996 113558 80996
+rect 63201 75804 63202 75828
+rect 63282 75804 63283 75828
+rect 64037 75804 64038 75828
+rect 64118 75804 64119 75828
+rect 64873 75804 64874 75828
+rect 64954 75804 64955 75828
+rect 65709 75804 65710 75828
+rect 65790 75804 65791 75828
+rect 66545 75804 66546 75828
+rect 66626 75804 66627 75828
+rect 67381 75804 67382 75828
+rect 67462 75804 67463 75828
+rect 68217 75804 68218 75828
+rect 68298 75804 68299 75828
+rect 69053 75804 69054 75828
+rect 69134 75804 69135 75828
+rect 69889 75804 69890 75828
+rect 69970 75804 69971 75828
+rect 70725 75804 70726 75828
+rect 70806 75804 70807 75828
+rect 71561 75804 71562 75828
+rect 71642 75804 71643 75828
+rect 72397 75804 72398 75828
+rect 72478 75804 72479 75828
+rect 73233 75804 73234 75828
+rect 73314 75804 73315 75828
+rect 63225 75780 63259 75792
+rect 64061 75780 64095 75792
+rect 64897 75780 64931 75792
+rect 65733 75780 65767 75792
+rect 66569 75780 66603 75792
+rect 67405 75780 67439 75792
+rect 68241 75780 68275 75792
+rect 69077 75780 69111 75792
+rect 69913 75780 69947 75792
+rect 70749 75780 70783 75792
+rect 71585 75780 71619 75792
+rect 72421 75780 72455 75792
+rect 73257 75780 73291 75792
+rect 82203 75610 82204 75634
+rect 82284 75610 82285 75634
+rect 83039 75610 83040 75634
+rect 83120 75610 83121 75634
+rect 83875 75610 83876 75634
+rect 83956 75610 83957 75634
+rect 84711 75610 84712 75634
+rect 84792 75610 84793 75634
+rect 85547 75610 85548 75634
+rect 85628 75610 85629 75634
+rect 86383 75610 86384 75634
+rect 86464 75610 86465 75634
+rect 87219 75610 87220 75634
+rect 87300 75610 87301 75634
+rect 88055 75610 88056 75634
+rect 88136 75610 88137 75634
+rect 88891 75610 88892 75634
+rect 88972 75610 88973 75634
+rect 89727 75610 89728 75634
+rect 89808 75610 89809 75634
+rect 90563 75610 90564 75634
+rect 90644 75610 90645 75634
+rect 91399 75610 91400 75634
+rect 91480 75610 91481 75634
+rect 92235 75610 92236 75634
+rect 92316 75610 92317 75634
+rect 82227 75586 82261 75598
+rect 83063 75586 83097 75598
+rect 83899 75586 83933 75598
+rect 84735 75586 84769 75598
+rect 85571 75586 85605 75598
+rect 86407 75586 86441 75598
+rect 87243 75586 87277 75598
+rect 88079 75586 88113 75598
+rect 88915 75586 88949 75598
+rect 89751 75586 89785 75598
+rect 90587 75586 90621 75598
+rect 91423 75586 91457 75598
+rect 92259 75586 92293 75598
+rect 63201 73804 63202 73828
+rect 63282 73804 63283 73828
+rect 64037 73804 64038 73828
+rect 64118 73804 64119 73828
+rect 64873 73804 64874 73828
+rect 64954 73804 64955 73828
+rect 65709 73804 65710 73828
+rect 65790 73804 65791 73828
+rect 66545 73804 66546 73828
+rect 66626 73804 66627 73828
+rect 67381 73804 67382 73828
+rect 67462 73804 67463 73828
+rect 68217 73804 68218 73828
+rect 68298 73804 68299 73828
+rect 69053 73804 69054 73828
+rect 69134 73804 69135 73828
+rect 69889 73804 69890 73828
+rect 69970 73804 69971 73828
+rect 70725 73804 70726 73828
+rect 70806 73804 70807 73828
+rect 71561 73804 71562 73828
+rect 71642 73804 71643 73828
+rect 72397 73804 72398 73828
+rect 72478 73804 72479 73828
+rect 73233 73804 73234 73828
+rect 73314 73804 73315 73828
+rect 63225 73780 63259 73792
+rect 64061 73780 64095 73792
+rect 64897 73780 64931 73792
+rect 65733 73780 65767 73792
+rect 66569 73780 66603 73792
+rect 67405 73780 67439 73792
+rect 68241 73780 68275 73792
+rect 69077 73780 69111 73792
+rect 69913 73780 69947 73792
+rect 70749 73780 70783 73792
+rect 71585 73780 71619 73792
+rect 72421 73780 72455 73792
+rect 73257 73780 73291 73792
+rect 4377 73550 4378 73574
+rect 4458 73550 4459 73574
+rect 5213 73550 5214 73574
+rect 5294 73550 5295 73574
+rect 6049 73550 6050 73574
+rect 6130 73550 6131 73574
+rect 6885 73550 6886 73574
+rect 6966 73550 6967 73574
+rect 7721 73550 7722 73574
+rect 7802 73550 7803 73574
+rect 8557 73550 8558 73574
+rect 8638 73550 8639 73574
+rect 9393 73550 9394 73574
+rect 9474 73550 9475 73574
+rect 10229 73550 10230 73574
+rect 10310 73550 10311 73574
+rect 11065 73550 11066 73574
+rect 11146 73550 11147 73574
+rect 11901 73550 11902 73574
+rect 11982 73550 11983 73574
+rect 12737 73550 12738 73574
+rect 12818 73550 12819 73574
+rect 4401 73526 4435 73538
+rect 5237 73526 5271 73538
+rect 6073 73526 6107 73538
+rect 6909 73526 6943 73538
+rect 7745 73526 7779 73538
+rect 8581 73526 8615 73538
+rect 9417 73526 9451 73538
+rect 10253 73526 10287 73538
+rect 11089 73526 11123 73538
+rect 11925 73526 11959 73538
+rect 12761 73526 12795 73538
+rect 4377 71929 4378 71953
+rect 4458 71929 4459 71953
+rect 5213 71929 5214 71953
+rect 5294 71929 5295 71953
+rect 6049 71929 6050 71953
+rect 6130 71929 6131 71953
+rect 6885 71929 6886 71953
+rect 6966 71929 6967 71953
+rect 7721 71929 7722 71953
+rect 7802 71929 7803 71953
+rect 8557 71929 8558 71953
+rect 8638 71929 8639 71953
+rect 9393 71929 9394 71953
+rect 9474 71929 9475 71953
+rect 10229 71929 10230 71953
+rect 10310 71929 10311 71953
+rect 11065 71929 11066 71953
+rect 11146 71929 11147 71953
+rect 11901 71929 11902 71953
+rect 11982 71929 11983 71953
+rect 12737 71929 12738 71953
+rect 12818 71929 12819 71953
+rect 4401 71905 4435 71917
+rect 5237 71905 5271 71917
+rect 6073 71905 6107 71917
+rect 6909 71905 6943 71917
+rect 7745 71905 7779 71917
+rect 8581 71905 8615 71917
+rect 9417 71905 9451 71917
+rect 10253 71905 10287 71917
+rect 11089 71905 11123 71917
+rect 11925 71905 11959 71917
+rect 12761 71905 12795 71917
+rect 23072 69570 23144 73570
+rect 23343 69603 23461 73537
+rect 23732 69570 23792 73570
+rect 23992 69570 24064 73570
+rect 24263 69603 24381 73537
+rect 24652 69570 24712 73570
+rect 24912 69570 24984 73570
+rect 25183 69603 25301 73537
+rect 25572 69570 25632 73570
+rect 25832 69570 25904 73570
+rect 26103 69603 26221 73537
+rect 26492 69570 26552 73570
+rect 26752 69570 26824 73570
+rect 27023 69603 27141 73537
+rect 27412 69570 27472 73570
+rect 27672 69570 27744 73570
+rect 27943 69603 28061 73537
+rect 28332 69570 28392 73570
+rect 28592 69570 28664 73570
+rect 28863 69603 28981 73537
+rect 29252 69570 29312 73570
+rect 29512 69570 29584 73570
+rect 29783 69603 29901 73537
+rect 30172 69570 30232 73570
+rect 30432 69570 30504 73570
+rect 30703 69603 30821 73537
+rect 31092 69570 31152 73570
+rect 42850 69764 42922 73764
+rect 43121 69797 43239 73731
+rect 43510 69764 43570 73764
+rect 43770 69764 43842 73764
+rect 44041 69797 44159 73731
+rect 44430 69764 44490 73764
+rect 44690 69764 44762 73764
+rect 44961 69797 45079 73731
+rect 45350 69764 45410 73764
+rect 45610 69764 45682 73764
+rect 45881 69797 45999 73731
+rect 46270 69764 46330 73764
+rect 46530 69764 46602 73764
+rect 46801 69797 46919 73731
+rect 47190 69764 47250 73764
+rect 47450 69764 47522 73764
+rect 47721 69797 47839 73731
+rect 48110 69764 48170 73764
+rect 48370 69764 48442 73764
+rect 48641 69797 48759 73731
+rect 49030 69764 49090 73764
+rect 49290 69764 49362 73764
+rect 49561 69797 49679 73731
+rect 49950 69764 50010 73764
+rect 50210 69764 50282 73764
+rect 50481 69797 50599 73731
+rect 50870 69764 50930 73764
+rect 82203 73610 82204 73634
+rect 82284 73610 82285 73634
+rect 83039 73610 83040 73634
+rect 83120 73610 83121 73634
+rect 83875 73610 83876 73634
+rect 83956 73610 83957 73634
+rect 84711 73610 84712 73634
+rect 84792 73610 84793 73634
+rect 85547 73610 85548 73634
+rect 85628 73610 85629 73634
+rect 86383 73610 86384 73634
+rect 86464 73610 86465 73634
+rect 87219 73610 87220 73634
+rect 87300 73610 87301 73634
+rect 88055 73610 88056 73634
+rect 88136 73610 88137 73634
+rect 88891 73610 88892 73634
+rect 88972 73610 88973 73634
+rect 89727 73610 89728 73634
+rect 89808 73610 89809 73634
+rect 90563 73610 90564 73634
+rect 90644 73610 90645 73634
+rect 91399 73610 91400 73634
+rect 91480 73610 91481 73634
+rect 92235 73610 92236 73634
+rect 92316 73610 92317 73634
+rect 82227 73586 82261 73598
+rect 83063 73586 83097 73598
+rect 83899 73586 83933 73598
+rect 84735 73586 84769 73598
+rect 85571 73586 85605 73598
+rect 86407 73586 86441 73598
+rect 87243 73586 87277 73598
+rect 88079 73586 88113 73598
+rect 88915 73586 88949 73598
+rect 89751 73586 89785 73598
+rect 90587 73586 90621 73598
+rect 91423 73586 91457 73598
+rect 92259 73586 92293 73598
+rect 103638 72396 103710 76396
+rect 103909 72429 104027 76363
+rect 104298 72396 104358 76396
+rect 104558 72396 104630 76396
+rect 104829 72429 104947 76363
+rect 105218 72396 105278 76396
+rect 105478 72396 105550 76396
+rect 105749 72429 105867 76363
+rect 106138 72396 106198 76396
+rect 106398 72396 106470 76396
+rect 106669 72429 106787 76363
+rect 107058 72396 107118 76396
+rect 107318 72396 107390 76396
+rect 107589 72429 107707 76363
+rect 107978 72396 108038 76396
+rect 108238 72396 108310 76396
+rect 108509 72429 108627 76363
+rect 108898 72396 108958 76396
+rect 109158 72396 109230 76396
+rect 109429 72429 109547 76363
+rect 109818 72396 109878 76396
+rect 110078 72396 110150 76396
+rect 110349 72429 110467 76363
+rect 110738 72396 110798 76396
+rect 110998 72396 111070 76396
+rect 111269 72429 111387 76363
+rect 111658 72396 111718 76396
+rect 111918 72396 111990 76396
+rect 112189 72429 112307 76363
+rect 112578 72396 112638 76396
+rect 112838 72396 112910 76396
+rect 113109 72429 113227 76363
+rect 113498 72396 113558 76396
+rect 64873 71804 64874 71828
+rect 64954 71804 64955 71828
+rect 65709 71804 65710 71828
+rect 65790 71804 65791 71828
+rect 66545 71804 66546 71828
+rect 66626 71804 66627 71828
+rect 67381 71804 67382 71828
+rect 67462 71804 67463 71828
+rect 68217 71804 68218 71828
+rect 68298 71804 68299 71828
+rect 69053 71804 69054 71828
+rect 69134 71804 69135 71828
+rect 69889 71804 69890 71828
+rect 69970 71804 69971 71828
+rect 70725 71804 70726 71828
+rect 70806 71804 70807 71828
+rect 71561 71804 71562 71828
+rect 71642 71804 71643 71828
+rect 72397 71804 72398 71828
+rect 72478 71804 72479 71828
+rect 73233 71804 73234 71828
+rect 73314 71804 73315 71828
+rect 64897 71780 64931 71792
+rect 65733 71780 65767 71792
+rect 66569 71780 66603 71792
+rect 67405 71780 67439 71792
+rect 68241 71780 68275 71792
+rect 69077 71780 69111 71792
+rect 69913 71780 69947 71792
+rect 70749 71780 70783 71792
+rect 71585 71780 71619 71792
+rect 72421 71780 72455 71792
+rect 73257 71780 73291 71792
+rect 83875 71610 83876 71634
+rect 83956 71610 83957 71634
+rect 84711 71610 84712 71634
+rect 84792 71610 84793 71634
+rect 85547 71610 85548 71634
+rect 85628 71610 85629 71634
+rect 86383 71610 86384 71634
+rect 86464 71610 86465 71634
+rect 87219 71610 87220 71634
+rect 87300 71610 87301 71634
+rect 88055 71610 88056 71634
+rect 88136 71610 88137 71634
+rect 88891 71610 88892 71634
+rect 88972 71610 88973 71634
+rect 89727 71610 89728 71634
+rect 89808 71610 89809 71634
+rect 90563 71610 90564 71634
+rect 90644 71610 90645 71634
+rect 91399 71610 91400 71634
+rect 91480 71610 91481 71634
+rect 92235 71610 92236 71634
+rect 92316 71610 92317 71634
+rect 83899 71586 83933 71598
+rect 84735 71586 84769 71598
+rect 85571 71586 85605 71598
+rect 86407 71586 86441 71598
+rect 87243 71586 87277 71598
+rect 88079 71586 88113 71598
+rect 88915 71586 88949 71598
+rect 89751 71586 89785 71598
+rect 90587 71586 90621 71598
+rect 91423 71586 91457 71598
+rect 92259 71586 92293 71598
+rect 64873 70183 64874 70207
+rect 64954 70183 64955 70207
+rect 65709 70183 65710 70207
+rect 65790 70183 65791 70207
+rect 66545 70183 66546 70207
+rect 66626 70183 66627 70207
+rect 67381 70183 67382 70207
+rect 67462 70183 67463 70207
+rect 68217 70183 68218 70207
+rect 68298 70183 68299 70207
+rect 69053 70183 69054 70207
+rect 69134 70183 69135 70207
+rect 69889 70183 69890 70207
+rect 69970 70183 69971 70207
+rect 70725 70183 70726 70207
+rect 70806 70183 70807 70207
+rect 71561 70183 71562 70207
+rect 71642 70183 71643 70207
+rect 72397 70183 72398 70207
+rect 72478 70183 72479 70207
+rect 73233 70183 73234 70207
+rect 73314 70183 73315 70207
+rect 64897 70159 64931 70171
+rect 65733 70159 65767 70171
+rect 66569 70159 66603 70171
+rect 67405 70159 67439 70171
+rect 68241 70159 68275 70171
+rect 69077 70159 69111 70171
+rect 69913 70159 69947 70171
+rect 70749 70159 70783 70171
+rect 71585 70159 71619 70171
+rect 72421 70159 72455 70171
+rect 73257 70159 73291 70171
+rect 83875 69989 83876 70013
+rect 83956 69989 83957 70013
+rect 84711 69989 84712 70013
+rect 84792 69989 84793 70013
+rect 85547 69989 85548 70013
+rect 85628 69989 85629 70013
+rect 86383 69989 86384 70013
+rect 86464 69989 86465 70013
+rect 87219 69989 87220 70013
+rect 87300 69989 87301 70013
+rect 88055 69989 88056 70013
+rect 88136 69989 88137 70013
+rect 88891 69989 88892 70013
+rect 88972 69989 88973 70013
+rect 89727 69989 89728 70013
+rect 89808 69989 89809 70013
+rect 90563 69989 90564 70013
+rect 90644 69989 90645 70013
+rect 91399 69989 91400 70013
+rect 91480 69989 91481 70013
+rect 92235 69989 92236 70013
+rect 92316 69989 92317 70013
+rect 83899 69965 83933 69977
+rect 84735 69965 84769 69977
+rect 85571 69965 85605 69977
+rect 86407 69965 86441 69977
+rect 87243 69965 87277 69977
+rect 88079 69965 88113 69977
+rect 88915 69965 88949 69977
+rect 89751 69965 89785 69977
+rect 90587 69965 90621 69977
+rect 91423 69965 91457 69977
+rect 92259 69965 92293 69977
+rect 23072 64970 23144 68970
+rect 23343 65003 23461 68937
+rect 23732 64970 23792 68970
+rect 23992 64970 24064 68970
+rect 24263 65003 24381 68937
+rect 24652 64970 24712 68970
+rect 24912 64970 24984 68970
+rect 25183 65003 25301 68937
+rect 25572 64970 25632 68970
+rect 25832 64970 25904 68970
+rect 26103 65003 26221 68937
+rect 26492 64970 26552 68970
+rect 26752 64970 26824 68970
+rect 27023 65003 27141 68937
+rect 27412 64970 27472 68970
+rect 27672 64970 27744 68970
+rect 27943 65003 28061 68937
+rect 28332 64970 28392 68970
+rect 28592 64970 28664 68970
+rect 28863 65003 28981 68937
+rect 29252 64970 29312 68970
+rect 29512 64970 29584 68970
+rect 29783 65003 29901 68937
+rect 30172 64970 30232 68970
+rect 30432 64970 30504 68970
+rect 30703 65003 30821 68937
+rect 31092 64970 31152 68970
+rect 42850 65164 42922 69164
+rect 43121 65197 43239 69131
+rect 43510 65164 43570 69164
+rect 43770 65164 43842 69164
+rect 44041 65197 44159 69131
+rect 44430 65164 44490 69164
+rect 44690 65164 44762 69164
+rect 44961 65197 45079 69131
+rect 45350 65164 45410 69164
+rect 45610 65164 45682 69164
+rect 45881 65197 45999 69131
+rect 46270 65164 46330 69164
+rect 46530 65164 46602 69164
+rect 46801 65197 46919 69131
+rect 47190 65164 47250 69164
+rect 47450 65164 47522 69164
+rect 47721 65197 47839 69131
+rect 48110 65164 48170 69164
+rect 48370 65164 48442 69164
+rect 48641 65197 48759 69131
+rect 49030 65164 49090 69164
+rect 49290 65164 49362 69164
+rect 49561 65197 49679 69131
+rect 49950 65164 50010 69164
+rect 50210 65164 50282 69164
+rect 50481 65197 50599 69131
+rect 50870 65164 50930 69164
+rect 105478 67796 105550 71796
+rect 105749 67829 105867 71763
+rect 106138 67796 106198 71796
+rect 106398 67796 106470 71796
+rect 106669 67829 106787 71763
+rect 107058 67796 107118 71796
+rect 107318 67796 107390 71796
+rect 107589 67829 107707 71763
+rect 107978 67796 108038 71796
+rect 108238 67796 108310 71796
+rect 108509 67829 108627 71763
+rect 108898 67796 108958 71796
+rect 109158 67796 109230 71796
+rect 109429 67829 109547 71763
+rect 109818 67796 109878 71796
+rect 110078 67796 110150 71796
+rect 110349 67829 110467 71763
+rect 110738 67796 110798 71796
+rect 110998 67796 111070 71796
+rect 111269 67829 111387 71763
+rect 111658 67796 111718 71796
+rect 111918 67796 111990 71796
+rect 112189 67829 112307 71763
+rect 112578 67796 112638 71796
+rect 112838 67796 112910 71796
+rect 113109 67829 113227 71763
+rect 113498 67796 113558 71796
+rect 23072 60370 23144 64370
+rect 23343 60403 23461 64337
+rect 23732 60370 23792 64370
+rect 23992 60370 24064 64370
+rect 24263 60403 24381 64337
+rect 24652 60370 24712 64370
+rect 24912 60370 24984 64370
+rect 25183 60403 25301 64337
+rect 25572 60370 25632 64370
+rect 25832 60370 25904 64370
+rect 26103 60403 26221 64337
+rect 26492 60370 26552 64370
+rect 26752 60370 26824 64370
+rect 27023 60403 27141 64337
+rect 27412 60370 27472 64370
+rect 27672 60370 27744 64370
+rect 27943 60403 28061 64337
+rect 28332 60370 28392 64370
+rect 28592 60370 28664 64370
+rect 28863 60403 28981 64337
+rect 29252 60370 29312 64370
+rect 29512 60370 29584 64370
+rect 29783 60403 29901 64337
+rect 30172 60370 30232 64370
+rect 30432 60370 30504 64370
+rect 30703 60403 30821 64337
+rect 31092 60370 31152 64370
+rect 42850 60564 42922 64564
+rect 43121 60597 43239 64531
+rect 43510 60564 43570 64564
+rect 43770 60564 43842 64564
+rect 44041 60597 44159 64531
+rect 44430 60564 44490 64564
+rect 44690 60564 44762 64564
+rect 44961 60597 45079 64531
+rect 45350 60564 45410 64564
+rect 45610 60564 45682 64564
+rect 45881 60597 45999 64531
+rect 46270 60564 46330 64564
+rect 46530 60564 46602 64564
+rect 46801 60597 46919 64531
+rect 47190 60564 47250 64564
+rect 47450 60564 47522 64564
+rect 47721 60597 47839 64531
+rect 48110 60564 48170 64564
+rect 48370 60564 48442 64564
+rect 48641 60597 48759 64531
+rect 49030 60564 49090 64564
+rect 49290 60564 49362 64564
+rect 49561 60597 49679 64531
+rect 49950 60564 50010 64564
+rect 50210 60564 50282 64564
+rect 50481 60597 50599 64531
+rect 50870 60564 50930 64564
+rect 105478 63196 105550 67196
+rect 105749 63229 105867 67163
+rect 106138 63196 106198 67196
+rect 106398 63196 106470 67196
+rect 106669 63229 106787 67163
+rect 107058 63196 107118 67196
+rect 107318 63196 107390 67196
+rect 107589 63229 107707 67163
+rect 107978 63196 108038 67196
+rect 108238 63196 108310 67196
+rect 108509 63229 108627 67163
+rect 108898 63196 108958 67196
+rect 109158 63196 109230 67196
+rect 109429 63229 109547 67163
+rect 109818 63196 109878 67196
+rect 110078 63196 110150 67196
+rect 110349 63229 110467 67163
+rect 110738 63196 110798 67196
+rect 110998 63196 111070 67196
+rect 111269 63229 111387 67163
+rect 111658 63196 111718 67196
+rect 111918 63196 111990 67196
+rect 112189 63229 112307 67163
+rect 112578 63196 112638 67196
+rect 112838 63196 112910 67196
+rect 113109 63229 113227 67163
+rect 113498 63196 113558 67196
+rect 2211 59550 2212 59574
+rect 2292 59550 2293 59574
+rect 2765 59550 2766 59574
+rect 2846 59550 2847 59574
+rect 3319 59550 3320 59574
+rect 3400 59550 3401 59574
+rect 3873 59550 3874 59574
+rect 3954 59550 3955 59574
+rect 4427 59550 4428 59574
+rect 4508 59550 4509 59574
+rect 4981 59550 4982 59574
+rect 5062 59550 5063 59574
+rect 5535 59550 5536 59574
+rect 5616 59550 5617 59574
+rect 6089 59550 6090 59574
+rect 6170 59550 6171 59574
+rect 6643 59550 6644 59574
+rect 6724 59550 6725 59574
+rect 7197 59550 7198 59574
+rect 7278 59550 7279 59574
+rect 7751 59550 7752 59574
+rect 7832 59550 7833 59574
+rect 8305 59550 8306 59574
+rect 8386 59550 8387 59574
+rect 8859 59550 8860 59574
+rect 8940 59550 8941 59574
+rect 9413 59550 9414 59574
+rect 9494 59550 9495 59574
+rect 9967 59550 9968 59574
+rect 10048 59550 10049 59574
+rect 10521 59550 10522 59574
+rect 10602 59550 10603 59574
+rect 11075 59550 11076 59574
+rect 11156 59550 11157 59574
+rect 11629 59550 11630 59574
+rect 11710 59550 11711 59574
+rect 12183 59550 12184 59574
+rect 12264 59550 12265 59574
+rect 12737 59550 12738 59574
+rect 12818 59550 12819 59574
+rect 2235 59526 2269 59538
+rect 2789 59526 2823 59538
+rect 3343 59526 3377 59538
+rect 3897 59526 3931 59538
+rect 4451 59526 4485 59538
+rect 5005 59526 5039 59538
+rect 5559 59526 5593 59538
+rect 6113 59526 6147 59538
+rect 6667 59526 6701 59538
+rect 7221 59526 7255 59538
+rect 7775 59526 7809 59538
+rect 8329 59526 8363 59538
+rect 8883 59526 8917 59538
+rect 9437 59526 9471 59538
+rect 9991 59526 10025 59538
+rect 10545 59526 10579 59538
+rect 11099 59526 11133 59538
+rect 11653 59526 11687 59538
+rect 12207 59526 12241 59538
+rect 12761 59526 12795 59538
+rect 2211 57550 2212 57574
+rect 2292 57550 2293 57574
+rect 2765 57550 2766 57574
+rect 2846 57550 2847 57574
+rect 3319 57550 3320 57574
+rect 3400 57550 3401 57574
+rect 3873 57550 3874 57574
+rect 3954 57550 3955 57574
+rect 4427 57550 4428 57574
+rect 4508 57550 4509 57574
+rect 4981 57550 4982 57574
+rect 5062 57550 5063 57574
+rect 5535 57550 5536 57574
+rect 5616 57550 5617 57574
+rect 6089 57550 6090 57574
+rect 6170 57550 6171 57574
+rect 6643 57550 6644 57574
+rect 6724 57550 6725 57574
+rect 7197 57550 7198 57574
+rect 7278 57550 7279 57574
+rect 7751 57550 7752 57574
+rect 7832 57550 7833 57574
+rect 8305 57550 8306 57574
+rect 8386 57550 8387 57574
+rect 8859 57550 8860 57574
+rect 8940 57550 8941 57574
+rect 9413 57550 9414 57574
+rect 9494 57550 9495 57574
+rect 9967 57550 9968 57574
+rect 10048 57550 10049 57574
+rect 10521 57550 10522 57574
+rect 10602 57550 10603 57574
+rect 11075 57550 11076 57574
+rect 11156 57550 11157 57574
+rect 11629 57550 11630 57574
+rect 11710 57550 11711 57574
+rect 12183 57550 12184 57574
+rect 12264 57550 12265 57574
+rect 12737 57550 12738 57574
+rect 12818 57550 12819 57574
+rect 2235 57526 2269 57538
+rect 2789 57526 2823 57538
+rect 3343 57526 3377 57538
+rect 3897 57526 3931 57538
+rect 4451 57526 4485 57538
+rect 5005 57526 5039 57538
+rect 5559 57526 5593 57538
+rect 6113 57526 6147 57538
+rect 6667 57526 6701 57538
+rect 7221 57526 7255 57538
+rect 7775 57526 7809 57538
+rect 8329 57526 8363 57538
+rect 8883 57526 8917 57538
+rect 9437 57526 9471 57538
+rect 9991 57526 10025 57538
+rect 10545 57526 10579 57538
+rect 11099 57526 11133 57538
+rect 11653 57526 11687 57538
+rect 12207 57526 12241 57538
+rect 12761 57526 12795 57538
+rect 21232 55770 21304 59770
+rect 21503 55803 21621 59737
+rect 21892 55770 21952 59770
+rect 22152 55770 22224 59770
+rect 22423 55803 22541 59737
+rect 22812 55770 22872 59770
+rect 23072 55770 23144 59770
+rect 23343 55803 23461 59737
+rect 23732 55770 23792 59770
+rect 23992 55770 24064 59770
+rect 24263 55803 24381 59737
+rect 24652 55770 24712 59770
+rect 24912 55770 24984 59770
+rect 25183 55803 25301 59737
+rect 25572 55770 25632 59770
+rect 25832 55770 25904 59770
+rect 26103 55803 26221 59737
+rect 26492 55770 26552 59770
+rect 26752 55770 26824 59770
+rect 27023 55803 27141 59737
+rect 27412 55770 27472 59770
+rect 27672 55770 27744 59770
+rect 27943 55803 28061 59737
+rect 28332 55770 28392 59770
+rect 28592 55770 28664 59770
+rect 28863 55803 28981 59737
+rect 29252 55770 29312 59770
+rect 29512 55770 29584 59770
+rect 29783 55803 29901 59737
+rect 30172 55770 30232 59770
+rect 30432 55770 30504 59770
+rect 30703 55803 30821 59737
+rect 31092 55770 31152 59770
+rect 41010 55964 41082 59964
+rect 41281 55997 41399 59931
+rect 41670 55964 41730 59964
+rect 41930 55964 42002 59964
+rect 42201 55997 42319 59931
+rect 42590 55964 42650 59964
+rect 42850 55964 42922 59964
+rect 43121 55997 43239 59931
+rect 43510 55964 43570 59964
+rect 43770 55964 43842 59964
+rect 44041 55997 44159 59931
+rect 44430 55964 44490 59964
+rect 44690 55964 44762 59964
+rect 44961 55997 45079 59931
+rect 45350 55964 45410 59964
+rect 45610 55964 45682 59964
+rect 45881 55997 45999 59931
+rect 46270 55964 46330 59964
+rect 46530 55964 46602 59964
+rect 46801 55997 46919 59931
+rect 47190 55964 47250 59964
+rect 47450 55964 47522 59964
+rect 47721 55997 47839 59931
+rect 48110 55964 48170 59964
+rect 48370 55964 48442 59964
+rect 48641 55997 48759 59931
+rect 49030 55964 49090 59964
+rect 49290 55964 49362 59964
+rect 49561 55997 49679 59931
+rect 49950 55964 50010 59964
+rect 50210 55964 50282 59964
+rect 50481 55997 50599 59931
+rect 50870 55964 50930 59964
+rect 105478 58596 105550 62596
+rect 105749 58629 105867 62563
+rect 106138 58596 106198 62596
+rect 106398 58596 106470 62596
+rect 106669 58629 106787 62563
+rect 107058 58596 107118 62596
+rect 107318 58596 107390 62596
+rect 107589 58629 107707 62563
+rect 107978 58596 108038 62596
+rect 108238 58596 108310 62596
+rect 108509 58629 108627 62563
+rect 108898 58596 108958 62596
+rect 109158 58596 109230 62596
+rect 109429 58629 109547 62563
+rect 109818 58596 109878 62596
+rect 110078 58596 110150 62596
+rect 110349 58629 110467 62563
+rect 110738 58596 110798 62596
+rect 110998 58596 111070 62596
+rect 111269 58629 111387 62563
+rect 111658 58596 111718 62596
+rect 111918 58596 111990 62596
+rect 112189 58629 112307 62563
+rect 112578 58596 112638 62596
+rect 112838 58596 112910 62596
+rect 113109 58629 113227 62563
+rect 113498 58596 113558 62596
+rect 62707 57804 62708 57828
+rect 62788 57804 62789 57828
+rect 63261 57804 63262 57828
+rect 63342 57804 63343 57828
+rect 63815 57804 63816 57828
+rect 63896 57804 63897 57828
+rect 64369 57804 64370 57828
+rect 64450 57804 64451 57828
+rect 64923 57804 64924 57828
+rect 65004 57804 65005 57828
+rect 65477 57804 65478 57828
+rect 65558 57804 65559 57828
+rect 66031 57804 66032 57828
+rect 66112 57804 66113 57828
+rect 66585 57804 66586 57828
+rect 66666 57804 66667 57828
+rect 67139 57804 67140 57828
+rect 67220 57804 67221 57828
+rect 67693 57804 67694 57828
+rect 67774 57804 67775 57828
+rect 68247 57804 68248 57828
+rect 68328 57804 68329 57828
+rect 68801 57804 68802 57828
+rect 68882 57804 68883 57828
+rect 69355 57804 69356 57828
+rect 69436 57804 69437 57828
+rect 69909 57804 69910 57828
+rect 69990 57804 69991 57828
+rect 70463 57804 70464 57828
+rect 70544 57804 70545 57828
+rect 71017 57804 71018 57828
+rect 71098 57804 71099 57828
+rect 71571 57804 71572 57828
+rect 71652 57804 71653 57828
+rect 72125 57804 72126 57828
+rect 72206 57804 72207 57828
+rect 72679 57804 72680 57828
+rect 72760 57804 72761 57828
+rect 73233 57804 73234 57828
+rect 73314 57804 73315 57828
+rect 62731 57780 62765 57792
+rect 63285 57780 63319 57792
+rect 63839 57780 63873 57792
+rect 64393 57780 64427 57792
+rect 64947 57780 64981 57792
+rect 65501 57780 65535 57792
+rect 66055 57780 66089 57792
+rect 66609 57780 66643 57792
+rect 67163 57780 67197 57792
+rect 67717 57780 67751 57792
+rect 68271 57780 68305 57792
+rect 68825 57780 68859 57792
+rect 69379 57780 69413 57792
+rect 69933 57780 69967 57792
+rect 70487 57780 70521 57792
+rect 71041 57780 71075 57792
+rect 71595 57780 71629 57792
+rect 72149 57780 72183 57792
+rect 72703 57780 72737 57792
+rect 73257 57780 73291 57792
+rect 81709 57610 81710 57634
+rect 81790 57610 81791 57634
+rect 82263 57610 82264 57634
+rect 82344 57610 82345 57634
+rect 82817 57610 82818 57634
+rect 82898 57610 82899 57634
+rect 83371 57610 83372 57634
+rect 83452 57610 83453 57634
+rect 83925 57610 83926 57634
+rect 84006 57610 84007 57634
+rect 84479 57610 84480 57634
+rect 84560 57610 84561 57634
+rect 85033 57610 85034 57634
+rect 85114 57610 85115 57634
+rect 85587 57610 85588 57634
+rect 85668 57610 85669 57634
+rect 86141 57610 86142 57634
+rect 86222 57610 86223 57634
+rect 86695 57610 86696 57634
+rect 86776 57610 86777 57634
+rect 87249 57610 87250 57634
+rect 87330 57610 87331 57634
+rect 87803 57610 87804 57634
+rect 87884 57610 87885 57634
+rect 88357 57610 88358 57634
+rect 88438 57610 88439 57634
+rect 88911 57610 88912 57634
+rect 88992 57610 88993 57634
+rect 89465 57610 89466 57634
+rect 89546 57610 89547 57634
+rect 90019 57610 90020 57634
+rect 90100 57610 90101 57634
+rect 90573 57610 90574 57634
+rect 90654 57610 90655 57634
+rect 91127 57610 91128 57634
+rect 91208 57610 91209 57634
+rect 91681 57610 91682 57634
+rect 91762 57610 91763 57634
+rect 92235 57610 92236 57634
+rect 92316 57610 92317 57634
+rect 81733 57586 81767 57598
+rect 82287 57586 82321 57598
+rect 82841 57586 82875 57598
+rect 83395 57586 83429 57598
+rect 83949 57586 83983 57598
+rect 84503 57586 84537 57598
+rect 85057 57586 85091 57598
+rect 85611 57586 85645 57598
+rect 86165 57586 86199 57598
+rect 86719 57586 86753 57598
+rect 87273 57586 87307 57598
+rect 87827 57586 87861 57598
+rect 88381 57586 88415 57598
+rect 88935 57586 88969 57598
+rect 89489 57586 89523 57598
+rect 90043 57586 90077 57598
+rect 90597 57586 90631 57598
+rect 91151 57586 91185 57598
+rect 91705 57586 91739 57598
+rect 92259 57586 92293 57598
+rect 62707 55804 62708 55828
+rect 62788 55804 62789 55828
+rect 63261 55804 63262 55828
+rect 63342 55804 63343 55828
+rect 63815 55804 63816 55828
+rect 63896 55804 63897 55828
+rect 64369 55804 64370 55828
+rect 64450 55804 64451 55828
+rect 64923 55804 64924 55828
+rect 65004 55804 65005 55828
+rect 65477 55804 65478 55828
+rect 65558 55804 65559 55828
+rect 66031 55804 66032 55828
+rect 66112 55804 66113 55828
+rect 66585 55804 66586 55828
+rect 66666 55804 66667 55828
+rect 67139 55804 67140 55828
+rect 67220 55804 67221 55828
+rect 67693 55804 67694 55828
+rect 67774 55804 67775 55828
+rect 68247 55804 68248 55828
+rect 68328 55804 68329 55828
+rect 68801 55804 68802 55828
+rect 68882 55804 68883 55828
+rect 69355 55804 69356 55828
+rect 69436 55804 69437 55828
+rect 69909 55804 69910 55828
+rect 69990 55804 69991 55828
+rect 70463 55804 70464 55828
+rect 70544 55804 70545 55828
+rect 71017 55804 71018 55828
+rect 71098 55804 71099 55828
+rect 71571 55804 71572 55828
+rect 71652 55804 71653 55828
+rect 72125 55804 72126 55828
+rect 72206 55804 72207 55828
+rect 72679 55804 72680 55828
+rect 72760 55804 72761 55828
+rect 73233 55804 73234 55828
+rect 73314 55804 73315 55828
+rect 62731 55780 62765 55792
+rect 63285 55780 63319 55792
+rect 63839 55780 63873 55792
+rect 64393 55780 64427 55792
+rect 64947 55780 64981 55792
+rect 65501 55780 65535 55792
+rect 66055 55780 66089 55792
+rect 66609 55780 66643 55792
+rect 67163 55780 67197 55792
+rect 67717 55780 67751 55792
+rect 68271 55780 68305 55792
+rect 68825 55780 68859 55792
+rect 69379 55780 69413 55792
+rect 69933 55780 69967 55792
+rect 70487 55780 70521 55792
+rect 71041 55780 71075 55792
+rect 71595 55780 71629 55792
+rect 72149 55780 72183 55792
+rect 72703 55780 72737 55792
+rect 73257 55780 73291 55792
+rect 81709 55610 81710 55634
+rect 81790 55610 81791 55634
+rect 82263 55610 82264 55634
+rect 82344 55610 82345 55634
+rect 82817 55610 82818 55634
+rect 82898 55610 82899 55634
+rect 83371 55610 83372 55634
+rect 83452 55610 83453 55634
+rect 83925 55610 83926 55634
+rect 84006 55610 84007 55634
+rect 84479 55610 84480 55634
+rect 84560 55610 84561 55634
+rect 85033 55610 85034 55634
+rect 85114 55610 85115 55634
+rect 85587 55610 85588 55634
+rect 85668 55610 85669 55634
+rect 86141 55610 86142 55634
+rect 86222 55610 86223 55634
+rect 86695 55610 86696 55634
+rect 86776 55610 86777 55634
+rect 87249 55610 87250 55634
+rect 87330 55610 87331 55634
+rect 87803 55610 87804 55634
+rect 87884 55610 87885 55634
+rect 88357 55610 88358 55634
+rect 88438 55610 88439 55634
+rect 88911 55610 88912 55634
+rect 88992 55610 88993 55634
+rect 89465 55610 89466 55634
+rect 89546 55610 89547 55634
+rect 90019 55610 90020 55634
+rect 90100 55610 90101 55634
+rect 90573 55610 90574 55634
+rect 90654 55610 90655 55634
+rect 91127 55610 91128 55634
+rect 91208 55610 91209 55634
+rect 91681 55610 91682 55634
+rect 91762 55610 91763 55634
+rect 92235 55610 92236 55634
+rect 92316 55610 92317 55634
+rect 81733 55586 81767 55598
+rect 82287 55586 82321 55598
+rect 82841 55586 82875 55598
+rect 83395 55586 83429 55598
+rect 83949 55586 83983 55598
+rect 84503 55586 84537 55598
+rect 85057 55586 85091 55598
+rect 85611 55586 85645 55598
+rect 86165 55586 86199 55598
+rect 86719 55586 86753 55598
+rect 87273 55586 87307 55598
+rect 87827 55586 87861 55598
+rect 88381 55586 88415 55598
+rect 88935 55586 88969 55598
+rect 89489 55586 89523 55598
+rect 90043 55586 90077 55598
+rect 90597 55586 90631 55598
+rect 91151 55586 91185 55598
+rect 91705 55586 91739 55598
+rect 92259 55586 92293 55598
+rect 2211 55550 2212 55574
+rect 2292 55550 2293 55574
+rect 2765 55550 2766 55574
+rect 2846 55550 2847 55574
+rect 3319 55550 3320 55574
+rect 3400 55550 3401 55574
+rect 3873 55550 3874 55574
+rect 3954 55550 3955 55574
+rect 4427 55550 4428 55574
+rect 4508 55550 4509 55574
+rect 4981 55550 4982 55574
+rect 5062 55550 5063 55574
+rect 5535 55550 5536 55574
+rect 5616 55550 5617 55574
+rect 6089 55550 6090 55574
+rect 6170 55550 6171 55574
+rect 6643 55550 6644 55574
+rect 6724 55550 6725 55574
+rect 7197 55550 7198 55574
+rect 7278 55550 7279 55574
+rect 7751 55550 7752 55574
+rect 7832 55550 7833 55574
+rect 8305 55550 8306 55574
+rect 8386 55550 8387 55574
+rect 8859 55550 8860 55574
+rect 8940 55550 8941 55574
+rect 9413 55550 9414 55574
+rect 9494 55550 9495 55574
+rect 9967 55550 9968 55574
+rect 10048 55550 10049 55574
+rect 10521 55550 10522 55574
+rect 10602 55550 10603 55574
+rect 11075 55550 11076 55574
+rect 11156 55550 11157 55574
+rect 11629 55550 11630 55574
+rect 11710 55550 11711 55574
+rect 12183 55550 12184 55574
+rect 12264 55550 12265 55574
+rect 12737 55550 12738 55574
+rect 12818 55550 12819 55574
+rect 2235 55526 2269 55538
+rect 2789 55526 2823 55538
+rect 3343 55526 3377 55538
+rect 3897 55526 3931 55538
+rect 4451 55526 4485 55538
+rect 5005 55526 5039 55538
+rect 5559 55526 5593 55538
+rect 6113 55526 6147 55538
+rect 6667 55526 6701 55538
+rect 7221 55526 7255 55538
+rect 7775 55526 7809 55538
+rect 8329 55526 8363 55538
+rect 8883 55526 8917 55538
+rect 9437 55526 9471 55538
+rect 9991 55526 10025 55538
+rect 10545 55526 10579 55538
+rect 11099 55526 11133 55538
+rect 11653 55526 11687 55538
+rect 12207 55526 12241 55538
+rect 12761 55526 12795 55538
+rect 2211 53550 2212 53574
+rect 2292 53550 2293 53574
+rect 2765 53550 2766 53574
+rect 2846 53550 2847 53574
+rect 3319 53550 3320 53574
+rect 3400 53550 3401 53574
+rect 3873 53550 3874 53574
+rect 3954 53550 3955 53574
+rect 4427 53550 4428 53574
+rect 4508 53550 4509 53574
+rect 4981 53550 4982 53574
+rect 5062 53550 5063 53574
+rect 5535 53550 5536 53574
+rect 5616 53550 5617 53574
+rect 6089 53550 6090 53574
+rect 6170 53550 6171 53574
+rect 6643 53550 6644 53574
+rect 6724 53550 6725 53574
+rect 7197 53550 7198 53574
+rect 7278 53550 7279 53574
+rect 7751 53550 7752 53574
+rect 7832 53550 7833 53574
+rect 8305 53550 8306 53574
+rect 8386 53550 8387 53574
+rect 8859 53550 8860 53574
+rect 8940 53550 8941 53574
+rect 9413 53550 9414 53574
+rect 9494 53550 9495 53574
+rect 9967 53550 9968 53574
+rect 10048 53550 10049 53574
+rect 10521 53550 10522 53574
+rect 10602 53550 10603 53574
+rect 11075 53550 11076 53574
+rect 11156 53550 11157 53574
+rect 11629 53550 11630 53574
+rect 11710 53550 11711 53574
+rect 12183 53550 12184 53574
+rect 12264 53550 12265 53574
+rect 12737 53550 12738 53574
+rect 12818 53550 12819 53574
+rect 2235 53526 2269 53538
+rect 2789 53526 2823 53538
+rect 3343 53526 3377 53538
+rect 3897 53526 3931 53538
+rect 4451 53526 4485 53538
+rect 5005 53526 5039 53538
+rect 5559 53526 5593 53538
+rect 6113 53526 6147 53538
+rect 6667 53526 6701 53538
+rect 7221 53526 7255 53538
+rect 7775 53526 7809 53538
+rect 8329 53526 8363 53538
+rect 8883 53526 8917 53538
+rect 9437 53526 9471 53538
+rect 9991 53526 10025 53538
+rect 10545 53526 10579 53538
+rect 11099 53526 11133 53538
+rect 11653 53526 11687 53538
+rect 12207 53526 12241 53538
+rect 12761 53526 12795 53538
+rect 19352 52294 19402 53694
+rect 19502 52294 19630 53694
+rect 19658 52294 19786 53694
+rect 19814 52294 19942 53694
+rect 19970 52294 20098 53694
+rect 20126 52294 20254 53694
+rect 20282 52294 20410 53694
+rect 20438 52294 20566 53694
+rect 20594 52294 20722 53694
+rect 20750 52294 20878 53694
+rect 20906 52294 21034 53694
+rect 21062 52294 21190 53694
+rect 21218 52294 21346 53694
+rect 21374 52294 21502 53694
+rect 21530 52294 21658 53694
+rect 21686 52294 21814 53694
+rect 21842 52294 21970 53694
+rect 21998 52294 22126 53694
+rect 22154 52294 22282 53694
+rect 22310 52294 22438 53694
+rect 22466 52294 22594 53694
+rect 22622 52294 22750 53694
+rect 22778 52294 22906 53694
+rect 22934 52294 23062 53694
+rect 23090 52294 23218 53694
+rect 23246 52294 23374 53694
+rect 23402 52294 23530 53694
+rect 23558 52294 23686 53694
+rect 23714 52294 23842 53694
+rect 23870 52294 23998 53694
+rect 24026 52294 24154 53694
+rect 24182 52294 24310 53694
+rect 24338 52294 24466 53694
+rect 24494 52294 24622 53694
+rect 24650 52294 24778 53694
+rect 24806 52294 24934 53694
+rect 24962 52294 25090 53694
+rect 25118 52294 25246 53694
+rect 25274 52294 25402 53694
+rect 25430 52294 25558 53694
+rect 25586 52294 25714 53694
+rect 25742 52294 25870 53694
+rect 25898 52294 26026 53694
+rect 26054 52294 26182 53694
+rect 26210 52294 26338 53694
+rect 26366 52294 26494 53694
+rect 26522 52294 26650 53694
+rect 26678 52294 26806 53694
+rect 26834 52294 26962 53694
+rect 26990 52294 27118 53694
+rect 27146 52294 27196 53694
+rect 29067 52850 29117 54250
+rect 29217 52850 29345 54250
+rect 29373 52850 29501 54250
+rect 29529 52850 29657 54250
+rect 29685 52850 29813 54250
+rect 29841 52850 29969 54250
+rect 29997 52850 30125 54250
+rect 30153 52850 30281 54250
+rect 30309 52850 30437 54250
+rect 30465 52850 30593 54250
+rect 30621 52850 30749 54250
+rect 30777 52850 30905 54250
+rect 30933 52850 31061 54250
+rect 31089 52850 31217 54250
+rect 31245 52850 31373 54250
+rect 31401 52850 31451 54250
+rect 39130 52488 39180 53888
+rect 39280 52488 39408 53888
+rect 39436 52488 39564 53888
+rect 39592 52488 39720 53888
+rect 39748 52488 39876 53888
+rect 39904 52488 40032 53888
+rect 40060 52488 40188 53888
+rect 40216 52488 40344 53888
+rect 40372 52488 40500 53888
+rect 40528 52488 40656 53888
+rect 40684 52488 40812 53888
+rect 40840 52488 40968 53888
+rect 40996 52488 41124 53888
+rect 41152 52488 41280 53888
+rect 41308 52488 41436 53888
+rect 41464 52488 41592 53888
+rect 41620 52488 41748 53888
+rect 41776 52488 41904 53888
+rect 41932 52488 42060 53888
+rect 42088 52488 42216 53888
+rect 42244 52488 42372 53888
+rect 42400 52488 42528 53888
+rect 42556 52488 42684 53888
+rect 42712 52488 42840 53888
+rect 42868 52488 42996 53888
+rect 43024 52488 43152 53888
+rect 43180 52488 43308 53888
+rect 43336 52488 43464 53888
+rect 43492 52488 43620 53888
+rect 43648 52488 43776 53888
+rect 43804 52488 43932 53888
+rect 43960 52488 44088 53888
+rect 44116 52488 44244 53888
+rect 44272 52488 44400 53888
+rect 44428 52488 44556 53888
+rect 44584 52488 44712 53888
+rect 44740 52488 44868 53888
+rect 44896 52488 45024 53888
+rect 45052 52488 45180 53888
+rect 45208 52488 45336 53888
+rect 45364 52488 45492 53888
+rect 45520 52488 45648 53888
+rect 45676 52488 45804 53888
+rect 45832 52488 45960 53888
+rect 45988 52488 46116 53888
+rect 46144 52488 46272 53888
+rect 46300 52488 46428 53888
+rect 46456 52488 46584 53888
+rect 46612 52488 46740 53888
+rect 46768 52488 46896 53888
+rect 46924 52488 46974 53888
+rect 48845 53044 48895 54444
+rect 48995 53044 49123 54444
+rect 49151 53044 49279 54444
+rect 49307 53044 49435 54444
+rect 49463 53044 49591 54444
+rect 49619 53044 49747 54444
+rect 49775 53044 49903 54444
+rect 49931 53044 50059 54444
+rect 50087 53044 50215 54444
+rect 50243 53044 50371 54444
+rect 50399 53044 50527 54444
+rect 50555 53044 50683 54444
+rect 50711 53044 50839 54444
+rect 50867 53044 50995 54444
+rect 51023 53044 51151 54444
+rect 51179 53044 51229 54444
+rect 103638 53996 103710 57996
+rect 103909 54029 104027 57963
+rect 104298 53996 104358 57996
+rect 104558 53996 104630 57996
+rect 104829 54029 104947 57963
+rect 105218 53996 105278 57996
+rect 105478 53996 105550 57996
+rect 105749 54029 105867 57963
+rect 106138 53996 106198 57996
+rect 106398 53996 106470 57996
+rect 106669 54029 106787 57963
+rect 107058 53996 107118 57996
+rect 107318 53996 107390 57996
+rect 107589 54029 107707 57963
+rect 107978 53996 108038 57996
+rect 108238 53996 108310 57996
+rect 108509 54029 108627 57963
+rect 108898 53996 108958 57996
+rect 109158 53996 109230 57996
+rect 109429 54029 109547 57963
+rect 109818 53996 109878 57996
+rect 110078 53996 110150 57996
+rect 110349 54029 110467 57963
+rect 110738 53996 110798 57996
+rect 110998 53996 111070 57996
+rect 111269 54029 111387 57963
+rect 111658 53996 111718 57996
+rect 111918 53996 111990 57996
+rect 112189 54029 112307 57963
+rect 112578 53996 112638 57996
+rect 112838 53996 112910 57996
+rect 113109 54029 113227 57963
+rect 113498 53996 113558 57996
+rect 127615 55792 127617 55917
+rect 62707 53804 62708 53828
+rect 62788 53804 62789 53828
+rect 63261 53804 63262 53828
+rect 63342 53804 63343 53828
+rect 63815 53804 63816 53828
+rect 63896 53804 63897 53828
+rect 64369 53804 64370 53828
+rect 64450 53804 64451 53828
+rect 64923 53804 64924 53828
+rect 65004 53804 65005 53828
+rect 65477 53804 65478 53828
+rect 65558 53804 65559 53828
+rect 66031 53804 66032 53828
+rect 66112 53804 66113 53828
+rect 66585 53804 66586 53828
+rect 66666 53804 66667 53828
+rect 67139 53804 67140 53828
+rect 67220 53804 67221 53828
+rect 67693 53804 67694 53828
+rect 67774 53804 67775 53828
+rect 68247 53804 68248 53828
+rect 68328 53804 68329 53828
+rect 68801 53804 68802 53828
+rect 68882 53804 68883 53828
+rect 69355 53804 69356 53828
+rect 69436 53804 69437 53828
+rect 69909 53804 69910 53828
+rect 69990 53804 69991 53828
+rect 70463 53804 70464 53828
+rect 70544 53804 70545 53828
+rect 71017 53804 71018 53828
+rect 71098 53804 71099 53828
+rect 71571 53804 71572 53828
+rect 71652 53804 71653 53828
+rect 72125 53804 72126 53828
+rect 72206 53804 72207 53828
+rect 72679 53804 72680 53828
+rect 72760 53804 72761 53828
+rect 73233 53804 73234 53828
+rect 73314 53804 73315 53828
+rect 62731 53780 62765 53792
+rect 63285 53780 63319 53792
+rect 63839 53780 63873 53792
+rect 64393 53780 64427 53792
+rect 64947 53780 64981 53792
+rect 65501 53780 65535 53792
+rect 66055 53780 66089 53792
+rect 66609 53780 66643 53792
+rect 67163 53780 67197 53792
+rect 67717 53780 67751 53792
+rect 68271 53780 68305 53792
+rect 68825 53780 68859 53792
+rect 69379 53780 69413 53792
+rect 69933 53780 69967 53792
+rect 70487 53780 70521 53792
+rect 71041 53780 71075 53792
+rect 71595 53780 71629 53792
+rect 72149 53780 72183 53792
+rect 72703 53780 72737 53792
+rect 73257 53780 73291 53792
+rect 81709 53610 81710 53634
+rect 81790 53610 81791 53634
+rect 82263 53610 82264 53634
+rect 82344 53610 82345 53634
+rect 82817 53610 82818 53634
+rect 82898 53610 82899 53634
+rect 83371 53610 83372 53634
+rect 83452 53610 83453 53634
+rect 83925 53610 83926 53634
+rect 84006 53610 84007 53634
+rect 84479 53610 84480 53634
+rect 84560 53610 84561 53634
+rect 85033 53610 85034 53634
+rect 85114 53610 85115 53634
+rect 85587 53610 85588 53634
+rect 85668 53610 85669 53634
+rect 86141 53610 86142 53634
+rect 86222 53610 86223 53634
+rect 86695 53610 86696 53634
+rect 86776 53610 86777 53634
+rect 87249 53610 87250 53634
+rect 87330 53610 87331 53634
+rect 87803 53610 87804 53634
+rect 87884 53610 87885 53634
+rect 88357 53610 88358 53634
+rect 88438 53610 88439 53634
+rect 88911 53610 88912 53634
+rect 88992 53610 88993 53634
+rect 89465 53610 89466 53634
+rect 89546 53610 89547 53634
+rect 90019 53610 90020 53634
+rect 90100 53610 90101 53634
+rect 90573 53610 90574 53634
+rect 90654 53610 90655 53634
+rect 91127 53610 91128 53634
+rect 91208 53610 91209 53634
+rect 91681 53610 91682 53634
+rect 91762 53610 91763 53634
+rect 92235 53610 92236 53634
+rect 92316 53610 92317 53634
+rect 81733 53586 81767 53598
+rect 82287 53586 82321 53598
+rect 82841 53586 82875 53598
+rect 83395 53586 83429 53598
+rect 83949 53586 83983 53598
+rect 84503 53586 84537 53598
+rect 85057 53586 85091 53598
+rect 85611 53586 85645 53598
+rect 86165 53586 86199 53598
+rect 86719 53586 86753 53598
+rect 87273 53586 87307 53598
+rect 87827 53586 87861 53598
+rect 88381 53586 88415 53598
+rect 88935 53586 88969 53598
+rect 89489 53586 89523 53598
+rect 90043 53586 90077 53598
+rect 90597 53586 90631 53598
+rect 91151 53586 91185 53598
+rect 91705 53586 91739 53598
+rect 92259 53586 92293 53598
+rect 2211 51550 2212 51574
+rect 2292 51550 2293 51574
+rect 2765 51550 2766 51574
+rect 2846 51550 2847 51574
+rect 3319 51550 3320 51574
+rect 3400 51550 3401 51574
+rect 3873 51550 3874 51574
+rect 3954 51550 3955 51574
+rect 4427 51550 4428 51574
+rect 4508 51550 4509 51574
+rect 4981 51550 4982 51574
+rect 5062 51550 5063 51574
+rect 5535 51550 5536 51574
+rect 5616 51550 5617 51574
+rect 6089 51550 6090 51574
+rect 6170 51550 6171 51574
+rect 6643 51550 6644 51574
+rect 6724 51550 6725 51574
+rect 7197 51550 7198 51574
+rect 7278 51550 7279 51574
+rect 7751 51550 7752 51574
+rect 7832 51550 7833 51574
+rect 8305 51550 8306 51574
+rect 8386 51550 8387 51574
+rect 8859 51550 8860 51574
+rect 8940 51550 8941 51574
+rect 9413 51550 9414 51574
+rect 9494 51550 9495 51574
+rect 9967 51550 9968 51574
+rect 10048 51550 10049 51574
+rect 10521 51550 10522 51574
+rect 10602 51550 10603 51574
+rect 11075 51550 11076 51574
+rect 11156 51550 11157 51574
+rect 11629 51550 11630 51574
+rect 11710 51550 11711 51574
+rect 12183 51550 12184 51574
+rect 12264 51550 12265 51574
+rect 12737 51550 12738 51574
+rect 12818 51550 12819 51574
+rect 2235 51526 2269 51538
+rect 2789 51526 2823 51538
+rect 3343 51526 3377 51538
+rect 3897 51526 3931 51538
+rect 4451 51526 4485 51538
+rect 5005 51526 5039 51538
+rect 5559 51526 5593 51538
+rect 6113 51526 6147 51538
+rect 6667 51526 6701 51538
+rect 7221 51526 7255 51538
+rect 7775 51526 7809 51538
+rect 8329 51526 8363 51538
+rect 8883 51526 8917 51538
+rect 9437 51526 9471 51538
+rect 9991 51526 10025 51538
+rect 10545 51526 10579 51538
+rect 11099 51526 11133 51538
+rect 11653 51526 11687 51538
+rect 12207 51526 12241 51538
+rect 12761 51526 12795 51538
+rect 29647 50763 29697 51763
+rect 30497 50763 30547 51763
+rect 30799 50763 30849 51763
+rect 31649 50763 31699 51763
+rect 49425 50957 49475 51957
+rect 50275 50957 50325 51957
+rect 50577 50957 50627 51957
+rect 51427 50957 51477 51957
+rect 62707 51804 62708 51828
+rect 62788 51804 62789 51828
+rect 63261 51804 63262 51828
+rect 63342 51804 63343 51828
+rect 63815 51804 63816 51828
+rect 63896 51804 63897 51828
+rect 64369 51804 64370 51828
+rect 64450 51804 64451 51828
+rect 64923 51804 64924 51828
+rect 65004 51804 65005 51828
+rect 65477 51804 65478 51828
+rect 65558 51804 65559 51828
+rect 66031 51804 66032 51828
+rect 66112 51804 66113 51828
+rect 66585 51804 66586 51828
+rect 66666 51804 66667 51828
+rect 67139 51804 67140 51828
+rect 67220 51804 67221 51828
+rect 67693 51804 67694 51828
+rect 67774 51804 67775 51828
+rect 68247 51804 68248 51828
+rect 68328 51804 68329 51828
+rect 68801 51804 68802 51828
+rect 68882 51804 68883 51828
+rect 69355 51804 69356 51828
+rect 69436 51804 69437 51828
+rect 69909 51804 69910 51828
+rect 69990 51804 69991 51828
+rect 70463 51804 70464 51828
+rect 70544 51804 70545 51828
+rect 71017 51804 71018 51828
+rect 71098 51804 71099 51828
+rect 71571 51804 71572 51828
+rect 71652 51804 71653 51828
+rect 72125 51804 72126 51828
+rect 72206 51804 72207 51828
+rect 72679 51804 72680 51828
+rect 72760 51804 72761 51828
+rect 73233 51804 73234 51828
+rect 73314 51804 73315 51828
+rect 62731 51780 62765 51792
+rect 63285 51780 63319 51792
+rect 63839 51780 63873 51792
+rect 64393 51780 64427 51792
+rect 64947 51780 64981 51792
+rect 65501 51780 65535 51792
+rect 66055 51780 66089 51792
+rect 66609 51780 66643 51792
+rect 67163 51780 67197 51792
+rect 67717 51780 67751 51792
+rect 68271 51780 68305 51792
+rect 68825 51780 68859 51792
+rect 69379 51780 69413 51792
+rect 69933 51780 69967 51792
+rect 70487 51780 70521 51792
+rect 71041 51780 71075 51792
+rect 71595 51780 71629 51792
+rect 72149 51780 72183 51792
+rect 72703 51780 72737 51792
+rect 73257 51780 73291 51792
+rect 81709 51610 81710 51634
+rect 81790 51610 81791 51634
+rect 82263 51610 82264 51634
+rect 82344 51610 82345 51634
+rect 82817 51610 82818 51634
+rect 82898 51610 82899 51634
+rect 83371 51610 83372 51634
+rect 83452 51610 83453 51634
+rect 83925 51610 83926 51634
+rect 84006 51610 84007 51634
+rect 84479 51610 84480 51634
+rect 84560 51610 84561 51634
+rect 85033 51610 85034 51634
+rect 85114 51610 85115 51634
+rect 85587 51610 85588 51634
+rect 85668 51610 85669 51634
+rect 86141 51610 86142 51634
+rect 86222 51610 86223 51634
+rect 86695 51610 86696 51634
+rect 86776 51610 86777 51634
+rect 87249 51610 87250 51634
+rect 87330 51610 87331 51634
+rect 87803 51610 87804 51634
+rect 87884 51610 87885 51634
+rect 88357 51610 88358 51634
+rect 88438 51610 88439 51634
+rect 88911 51610 88912 51634
+rect 88992 51610 88993 51634
+rect 89465 51610 89466 51634
+rect 89546 51610 89547 51634
+rect 90019 51610 90020 51634
+rect 90100 51610 90101 51634
+rect 90573 51610 90574 51634
+rect 90654 51610 90655 51634
+rect 91127 51610 91128 51634
+rect 91208 51610 91209 51634
+rect 91681 51610 91682 51634
+rect 91762 51610 91763 51634
+rect 92235 51610 92236 51634
+rect 92316 51610 92317 51634
+rect 81733 51586 81767 51598
+rect 82287 51586 82321 51598
+rect 82841 51586 82875 51598
+rect 83395 51586 83429 51598
+rect 83949 51586 83983 51598
+rect 84503 51586 84537 51598
+rect 85057 51586 85091 51598
+rect 85611 51586 85645 51598
+rect 86165 51586 86199 51598
+rect 86719 51586 86753 51598
+rect 87273 51586 87307 51598
+rect 87827 51586 87861 51598
+rect 88381 51586 88415 51598
+rect 88935 51586 88969 51598
+rect 89489 51586 89523 51598
+rect 90043 51586 90077 51598
+rect 90597 51586 90631 51598
+rect 91151 51586 91185 51598
+rect 91705 51586 91739 51598
+rect 92259 51586 92293 51598
+rect -432 50006 -366 50022
+rect 6799 49836 6885 49872
+rect 3431 49642 3783 49668
+rect 4255 49642 4607 49668
+rect 5079 49642 5431 49668
+rect 5903 49642 6255 49668
+rect 3457 46643 3458 49642
+rect 3757 46643 3783 49642
+rect 3457 46642 3783 46643
+rect 4281 46643 4282 49642
+rect 4581 46643 4607 49642
+rect 4281 46642 4607 46643
+rect 5105 46643 5106 49642
+rect 5405 46643 5431 49642
+rect 5105 46642 5431 46643
+rect 5929 46643 5930 49642
+rect 6229 46643 6255 49642
+rect 5929 46642 6255 46643
+rect 6799 46448 6835 49836
+rect 6849 46448 6885 49836
+rect 7429 49642 7781 49668
+rect 8253 49642 8605 49668
+rect 9077 49642 9429 49668
+rect 9901 49642 10253 49668
+rect 7455 46643 7456 49642
+rect 7755 46643 7781 49642
+rect 7455 46642 7781 46643
+rect 8279 46643 8280 49642
+rect 8579 46643 8605 49642
+rect 8279 46642 8605 46643
+rect 9103 46643 9104 49642
+rect 9403 46643 9429 49642
+rect 9103 46642 9429 46643
+rect 9927 46643 9928 49642
+rect 10227 46643 10253 49642
+rect 21039 49519 21089 50519
+rect 21889 49519 21939 50519
+rect 22191 49519 22241 50519
+rect 23841 49519 23891 50519
+rect 24143 49519 24193 50519
+rect 25793 49519 25843 50519
+rect 26095 49519 26145 50519
+rect 27745 49519 27795 50519
+rect 28047 49519 28097 50519
+rect 29697 49519 29747 50519
+rect 29999 49519 30049 50519
+rect 31649 49519 31699 50519
+rect 40817 49713 40867 50713
+rect 41667 49713 41717 50713
+rect 41969 49713 42019 50713
+rect 43619 49713 43669 50713
+rect 43921 49713 43971 50713
+rect 45571 49713 45621 50713
+rect 45873 49713 45923 50713
+rect 47523 49713 47573 50713
+rect 47825 49713 47875 50713
+rect 49475 49713 49525 50713
+rect 49777 49713 49827 50713
+rect 51427 49713 51477 50713
+rect 101758 50520 101808 51920
+rect 101908 50520 102036 51920
+rect 102064 50520 102192 51920
+rect 102220 50520 102348 51920
+rect 102376 50520 102504 51920
+rect 102532 50520 102660 51920
+rect 102688 50520 102816 51920
+rect 102844 50520 102972 51920
+rect 103000 50520 103128 51920
+rect 103156 50520 103284 51920
+rect 103312 50520 103440 51920
+rect 103468 50520 103596 51920
+rect 103624 50520 103752 51920
+rect 103780 50520 103908 51920
+rect 103936 50520 104064 51920
+rect 104092 50520 104220 51920
+rect 104248 50520 104376 51920
+rect 104404 50520 104532 51920
+rect 104560 50520 104688 51920
+rect 104716 50520 104844 51920
+rect 104872 50520 105000 51920
+rect 105028 50520 105156 51920
+rect 105184 50520 105312 51920
+rect 105340 50520 105468 51920
+rect 105496 50520 105624 51920
+rect 105652 50520 105780 51920
+rect 105808 50520 105936 51920
+rect 105964 50520 106092 51920
+rect 106120 50520 106248 51920
+rect 106276 50520 106404 51920
+rect 106432 50520 106560 51920
+rect 106588 50520 106716 51920
+rect 106744 50520 106872 51920
+rect 106900 50520 107028 51920
+rect 107056 50520 107184 51920
+rect 107212 50520 107340 51920
+rect 107368 50520 107496 51920
+rect 107524 50520 107652 51920
+rect 107680 50520 107808 51920
+rect 107836 50520 107964 51920
+rect 107992 50520 108120 51920
+rect 108148 50520 108276 51920
+rect 108304 50520 108432 51920
+rect 108460 50520 108588 51920
+rect 108616 50520 108744 51920
+rect 108772 50520 108900 51920
+rect 108928 50520 109056 51920
+rect 109084 50520 109212 51920
+rect 109240 50520 109368 51920
+rect 109396 50520 109524 51920
+rect 109552 50520 109602 51920
+rect 111473 51076 111523 52476
+rect 111623 51076 111751 52476
+rect 111779 51076 111907 52476
+rect 111935 51076 112063 52476
+rect 112091 51076 112219 52476
+rect 112247 51076 112375 52476
+rect 112403 51076 112531 52476
+rect 112559 51076 112687 52476
+rect 112715 51076 112843 52476
+rect 112871 51076 112999 52476
+rect 113027 51076 113155 52476
+rect 113183 51076 113311 52476
+rect 113339 51076 113467 52476
+rect 113495 51076 113623 52476
+rect 113651 51076 113779 52476
+rect 113807 51076 113857 52476
+rect 62707 49804 62708 49828
+rect 62788 49804 62789 49828
+rect 63261 49804 63262 49828
+rect 63342 49804 63343 49828
+rect 63815 49804 63816 49828
+rect 63896 49804 63897 49828
+rect 64369 49804 64370 49828
+rect 64450 49804 64451 49828
+rect 64923 49804 64924 49828
+rect 65004 49804 65005 49828
+rect 65477 49804 65478 49828
+rect 65558 49804 65559 49828
+rect 66031 49804 66032 49828
+rect 66112 49804 66113 49828
+rect 66585 49804 66586 49828
+rect 66666 49804 66667 49828
+rect 67139 49804 67140 49828
+rect 67220 49804 67221 49828
+rect 67693 49804 67694 49828
+rect 67774 49804 67775 49828
+rect 68247 49804 68248 49828
+rect 68328 49804 68329 49828
+rect 68801 49804 68802 49828
+rect 68882 49804 68883 49828
+rect 69355 49804 69356 49828
+rect 69436 49804 69437 49828
+rect 69909 49804 69910 49828
+rect 69990 49804 69991 49828
+rect 70463 49804 70464 49828
+rect 70544 49804 70545 49828
+rect 71017 49804 71018 49828
+rect 71098 49804 71099 49828
+rect 71571 49804 71572 49828
+rect 71652 49804 71653 49828
+rect 72125 49804 72126 49828
+rect 72206 49804 72207 49828
+rect 72679 49804 72680 49828
+rect 72760 49804 72761 49828
+rect 73233 49804 73234 49828
+rect 73314 49804 73315 49828
+rect 62731 49780 62765 49792
+rect 63285 49780 63319 49792
+rect 63839 49780 63873 49792
+rect 64393 49780 64427 49792
+rect 64947 49780 64981 49792
+rect 65501 49780 65535 49792
+rect 66055 49780 66089 49792
+rect 66609 49780 66643 49792
+rect 67163 49780 67197 49792
+rect 67717 49780 67751 49792
+rect 68271 49780 68305 49792
+rect 68825 49780 68859 49792
+rect 69379 49780 69413 49792
+rect 69933 49780 69967 49792
+rect 70487 49780 70521 49792
+rect 71041 49780 71075 49792
+rect 71595 49780 71629 49792
+rect 72149 49780 72183 49792
+rect 72703 49780 72737 49792
+rect 73257 49780 73291 49792
+rect 81709 49610 81710 49634
+rect 81790 49610 81791 49634
+rect 82263 49610 82264 49634
+rect 82344 49610 82345 49634
+rect 82817 49610 82818 49634
+rect 82898 49610 82899 49634
+rect 83371 49610 83372 49634
+rect 83452 49610 83453 49634
+rect 83925 49610 83926 49634
+rect 84006 49610 84007 49634
+rect 84479 49610 84480 49634
+rect 84560 49610 84561 49634
+rect 85033 49610 85034 49634
+rect 85114 49610 85115 49634
+rect 85587 49610 85588 49634
+rect 85668 49610 85669 49634
+rect 86141 49610 86142 49634
+rect 86222 49610 86223 49634
+rect 86695 49610 86696 49634
+rect 86776 49610 86777 49634
+rect 87249 49610 87250 49634
+rect 87330 49610 87331 49634
+rect 87803 49610 87804 49634
+rect 87884 49610 87885 49634
+rect 88357 49610 88358 49634
+rect 88438 49610 88439 49634
+rect 88911 49610 88912 49634
+rect 88992 49610 88993 49634
+rect 89465 49610 89466 49634
+rect 89546 49610 89547 49634
+rect 90019 49610 90020 49634
+rect 90100 49610 90101 49634
+rect 90573 49610 90574 49634
+rect 90654 49610 90655 49634
+rect 91127 49610 91128 49634
+rect 91208 49610 91209 49634
+rect 91681 49610 91682 49634
+rect 91762 49610 91763 49634
+rect 92235 49610 92236 49634
+rect 92316 49610 92317 49634
+rect 81733 49586 81767 49598
+rect 82287 49586 82321 49598
+rect 82841 49586 82875 49598
+rect 83395 49586 83429 49598
+rect 83949 49586 83983 49598
+rect 84503 49586 84537 49598
+rect 85057 49586 85091 49598
+rect 85611 49586 85645 49598
+rect 86165 49586 86199 49598
+rect 86719 49586 86753 49598
+rect 87273 49586 87307 49598
+rect 87827 49586 87861 49598
+rect 88381 49586 88415 49598
+rect 88935 49586 88969 49598
+rect 89489 49586 89523 49598
+rect 90043 49586 90077 49598
+rect 90597 49586 90631 49598
+rect 91151 49586 91185 49598
+rect 91705 49586 91739 49598
+rect 92259 49586 92293 49598
+rect 21039 48275 21089 49275
+rect 21889 48275 21939 49275
+rect 22191 48275 22241 49275
+rect 23841 48275 23891 49275
+rect 24143 48275 24193 49275
+rect 25793 48275 25843 49275
+rect 26095 48275 26145 49275
+rect 27745 48275 27795 49275
+rect 28047 48275 28097 49275
+rect 29697 48275 29747 49275
+rect 29999 48275 30049 49275
+rect 31649 48275 31699 49275
+rect 40817 48469 40867 49469
+rect 41667 48469 41717 49469
+rect 41969 48469 42019 49469
+rect 43619 48469 43669 49469
+rect 43921 48469 43971 49469
+rect 45571 48469 45621 49469
+rect 45873 48469 45923 49469
+rect 47523 48469 47573 49469
+rect 47825 48469 47875 49469
+rect 49475 48469 49525 49469
+rect 49777 48469 49827 49469
+rect 51427 48469 51477 49469
+rect 112053 48989 112103 49989
+rect 112903 48989 112953 49989
+rect 113205 48989 113255 49989
+rect 114055 48989 114105 49989
+rect 60064 48260 60130 48276
+rect 21039 47031 21089 48031
+rect 21889 47031 21939 48031
+rect 22191 47031 22241 48031
+rect 23841 47031 23891 48031
+rect 24143 47031 24193 48031
+rect 25793 47031 25843 48031
+rect 26095 47031 26145 48031
+rect 27745 47031 27795 48031
+rect 28047 47031 28097 48031
+rect 29697 47031 29747 48031
+rect 29999 47031 30049 48031
+rect 31649 47031 31699 48031
+rect 40817 47225 40867 48225
+rect 41667 47225 41717 48225
+rect 41969 47225 42019 48225
+rect 43619 47225 43669 48225
+rect 43921 47225 43971 48225
+rect 45571 47225 45621 48225
+rect 45873 47225 45923 48225
+rect 47523 47225 47573 48225
+rect 47825 47225 47875 48225
+rect 49475 47225 49525 48225
+rect 49777 47225 49827 48225
+rect 51427 47225 51477 48225
+rect 67295 48090 67381 48126
+rect 63927 47896 64279 47922
+rect 64751 47896 65103 47922
+rect 65575 47896 65927 47922
+rect 66399 47896 66751 47922
+rect 9927 46642 10253 46643
+rect 6799 46412 6885 46448
+rect 63953 44897 63954 47896
+rect 64253 44897 64279 47896
+rect 63953 44896 64279 44897
+rect 64777 44897 64778 47896
+rect 65077 44897 65103 47896
+rect 64777 44896 65103 44897
+rect 65601 44897 65602 47896
+rect 65901 44897 65927 47896
+rect 65601 44896 65927 44897
+rect 66425 44897 66426 47896
+rect 66725 44897 66751 47896
+rect 66425 44896 66751 44897
+rect 67295 44702 67331 48090
+rect 67345 44702 67381 48090
+rect 79066 48066 79132 48082
+rect 67925 47896 68277 47922
+rect 68749 47896 69101 47922
+rect 69573 47896 69925 47922
+rect 70397 47896 70749 47922
+rect 67951 44897 67952 47896
+rect 68251 44897 68277 47896
+rect 67951 44896 68277 44897
+rect 68775 44897 68776 47896
+rect 69075 44897 69101 47896
+rect 68775 44896 69101 44897
+rect 69599 44897 69600 47896
+rect 69899 44897 69925 47896
+rect 69599 44896 69925 44897
+rect 70423 44897 70424 47896
+rect 70723 44897 70749 47896
+rect 86297 47896 86383 47932
+rect 82929 47702 83281 47728
+rect 83753 47702 84105 47728
+rect 84577 47702 84929 47728
+rect 85401 47702 85753 47728
+rect 70423 44896 70749 44897
+rect 82955 44703 82956 47702
+rect 83255 44703 83281 47702
+rect 82955 44702 83281 44703
+rect 83779 44703 83780 47702
+rect 84079 44703 84105 47702
+rect 83779 44702 84105 44703
+rect 84603 44703 84604 47702
+rect 84903 44703 84929 47702
+rect 84603 44702 84929 44703
+rect 85427 44703 85428 47702
+rect 85727 44703 85753 47702
+rect 85427 44702 85753 44703
+rect 67295 44666 67381 44702
+rect 86297 44508 86333 47896
+rect 86347 44508 86383 47896
+rect 103445 47745 103495 48745
+rect 104295 47745 104345 48745
+rect 104597 47745 104647 48745
+rect 106247 47745 106297 48745
+rect 106549 47745 106599 48745
+rect 108199 47745 108249 48745
+rect 108501 47745 108551 48745
+rect 110151 47745 110201 48745
+rect 110453 47745 110503 48745
+rect 112103 47745 112153 48745
+rect 112405 47745 112455 48745
+rect 114055 47745 114105 48745
+rect 86927 47702 87279 47728
+rect 87751 47702 88103 47728
+rect 88575 47702 88927 47728
+rect 89399 47702 89751 47728
+rect 86953 44703 86954 47702
+rect 87253 44703 87279 47702
+rect 86953 44702 87279 44703
+rect 87777 44703 87778 47702
+rect 88077 44703 88103 47702
+rect 87777 44702 88103 44703
+rect 88601 44703 88602 47702
+rect 88901 44703 88927 47702
+rect 88601 44702 88927 44703
+rect 89425 44703 89426 47702
+rect 89725 44703 89751 47702
+rect 103445 46501 103495 47501
+rect 104295 46501 104345 47501
+rect 104597 46501 104647 47501
+rect 106247 46501 106297 47501
+rect 106549 46501 106599 47501
+rect 108199 46501 108249 47501
+rect 108501 46501 108551 47501
+rect 110151 46501 110201 47501
+rect 110453 46501 110503 47501
+rect 112103 46501 112153 47501
+rect 112405 46501 112455 47501
+rect 114055 46501 114105 47501
+rect 103445 45257 103495 46257
+rect 104295 45257 104345 46257
+rect 104597 45257 104647 46257
+rect 106247 45257 106297 46257
+rect 106549 45257 106599 46257
+rect 108199 45257 108249 46257
+rect 108501 45257 108551 46257
+rect 110151 45257 110201 46257
+rect 110453 45257 110503 46257
+rect 112103 45257 112153 46257
+rect 112405 45257 112455 46257
+rect 114055 45257 114105 46257
+rect 89425 44702 89751 44703
+rect 86297 44472 86383 44508
+use s8iom0_vdda_lvc_pad  s8iom0_vdda_lvc_pad_0
+timestamp 1584383356
+transform 1 0 -868 0 1 91931
+box 0 -61 15000 39593
+use s8iom0_vdda_hvc_pad  s8iom0_vdda_hvc_pad_0
+timestamp 1584383356
+transform 1 0 19686 0 1 92471
+box 0 -407 15000 39593
+use s8iom0_vccd_lvc_pad  s8iom0_vccd_lvc_pad_0
+timestamp 1584383356
+transform 1 0 38106 0 1 91155
+box 0 -61 15000 39593
+use s8iom0_vccd_hvc_pad  s8iom0_vccd_hvc_pad_0
+timestamp 1584383356
+transform 1 0 56526 0 1 91335
+box 0 -435 15000 39593
+use s8iom0_vddio_hvc_pad  s8iom0_vddio_hvc_pad_0
+timestamp 1584383356
+transform 1 0 77078 0 1 92305
+box 0 -435 15000 39593
+use s8iom0_vddio_lvc_pad  s8iom0_vddio_lvc_pad_0
+timestamp 1584383356
+transform 1 0 97048 0 1 92319
+box 0 -61 15000 39593
+use s8iom0_gpiov2_pad  s8iom0_gpiov2_pad_0
+timestamp 1584383356
+transform 1 0 119295 0 1 92724
+box -143 -466 16134 39593
+use s8iom0s8_top_xres4v2  s8iom0s8_top_xres4v2_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 140197 0 1 92452
+box -103 0 15124 40000
+use s8iom0s8_top_gpio_ovtv2  s8iom0s8_top_gpio_ovtv2_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 160920 0 1 92540
+box -80 -88 28211 40076
+use s8iom0_vssd_lvc_pad  s8iom0_vssd_lvc_pad_0
+timestamp 1584383356
+transform 1 0 -480 0 1 46173
+box 0 -61 15000 39593
+use s8iom0_vssd_hvc_pad  s8iom0_vssd_hvc_pad_0
+timestamp 1584383356
+transform 1 0 18134 0 1 46741
+box 0 -435 15000 39593
+use s8iom0_vssa_hvc_pad  s8iom0_vssa_hvc_pad_0
+timestamp 1584383356
+transform 1 0 37912 0 1 46935
+box 0 -435 15000 39593
+use s8iom0_vssa_lvc_pad  s8iom0_vssa_lvc_pad_0
+timestamp 1584383356
+transform 1 0 60016 0 1 44427
+box 0 -61 15000 39593
+use s8iom0_vssio_lvc_pad  s8iom0_vssio_lvc_pad_0
+timestamp 1584383356
+transform 1 0 79018 0 1 44233
+box 0 -61 15000 39593
+use s8iom0_vssio_hvc_pad  s8iom0_vssio_hvc_pad_0
+timestamp 1584383356
+transform 1 0 100540 0 1 44967
+box 0 -407 15000 39593
+use s8iom0_corner_pad  s8iom0_corner_pad_0
+timestamp 1584383356
+transform 1 0 123795 0 1 46420
+box -181 -114 40000 40800
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/power_pads_lib.mag b/sky130/custom/sky130_fd_io/mag/power_pads_lib.mag
new file mode 100644
index 0000000..a8876fa
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/power_pads_lib.mag
@@ -0,0 +1,65 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1585845698
+use s8iom0_vssd_lvc_pad  s8iom0_vssd_lvc_pad_0
+timestamp 1585845698
+transform 1 0 1268 0 1 -42858
+box 0 -61 15000 39593
+use s8iom0_vssd_hvc_pad  s8iom0_vssd_hvc_pad_0
+timestamp 1585845698
+transform 1 0 18322 0 1 -43322
+box 0 -435 15000 39593
+use s8iom0_vssa_hvc_pad  s8iom0_vssa_hvc_pad_0
+timestamp 1585845698
+transform 1 0 36302 0 1 -43582
+box 0 -435 15000 39593
+use s8iom0_vssa_lvc_pad  s8iom0_vssa_lvc_pad_0
+timestamp 1585845698
+transform 1 0 54022 0 1 -43956
+box 0 -61 15000 39593
+use s8iom0_vssio_lvc_pad  s8iom0_vssio_lvc_pad_0
+timestamp 1585845698
+transform 1 0 71611 0 1 -43826
+box 0 -7 15000 39593
+use s8iom0_corner_pad  s8iom0_corner_pad_0
+timestamp 1585845698
+transform 1 0 111407 0 1 -43193
+box -181 -114 40000 40800
+use s8iom0_vssio_hvc_pad  s8iom0_vssio_hvc_pad_0
+timestamp 1585845698
+transform 1 0 89461 0 1 -43192
+box 0 -407 15000 39593
+use s8iom0s8_com_bus_slice_1um  s8iom0s8_com_bus_slice_1um_0
+timestamp 1576684134
+transform 1 0 108518 0 1 -43389
+box 0 0 200 39593
+use s8iom0_vdda_lvc_pad  s8iom0_vdda_lvc_pad_0
+timestamp 1585845698
+transform 1 0 1952 0 1 -313
+box 0 -61 15000 39593
+use s8iom0_vdda_hvc_pad  s8iom0_vdda_hvc_pad_0
+timestamp 1585845698
+transform 1 0 20277 0 1 195
+box 0 -435 15000 39593
+use s8iom0_vccd_lvc_pad  s8iom0_vccd_lvc_pad_0
+timestamp 1585845698
+transform 1 0 37605 0 1 -49
+box 0 -61 15000 39593
+use s8iom0_vddio_hvc_pad  s8iom0_vddio_hvc_pad_0
+timestamp 1585845698
+transform 1 0 73415 0 1 258
+box 0 -435 15000 39593
+use s8iom0_vccd_hvc_pad  s8iom0_vccd_hvc_pad_0
+timestamp 1585845698
+transform 1 0 55455 0 1 325
+box 0 -435 15000 39593
+use s8iom0_gpiov2_pad  s8iom0_gpiov2_pad_0
+timestamp 1585845698
+transform 1 0 110622 0 1 590
+box -143 -466 16134 39593
+use s8iom0_vddio_lvc_pad  s8iom0_vddio_lvc_pad_0
+timestamp 1585845698
+transform 1 0 91354 0 1 -208
+box 0 -7 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_corner_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_corner_pad.mag
new file mode 100644
index 0000000..8da430c
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_corner_pad.mag
@@ -0,0 +1,199 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1576765820
+<< metal4 >>
+rect 0 35957 254 40800
+rect 0 14807 254 19800
+rect 0 13617 254 14507
+rect 0 12447 254 13337
+rect 0 12081 254 12147
+rect 0 11425 100 12021
+rect 0 11129 254 11365
+rect 0 10473 116 11069
+rect 0 10347 254 10413
+rect 0 9117 254 10047
+rect 0 8147 254 8837
+rect 0 7177 254 7867
+rect 0 5967 254 6897
+rect 0 4757 254 5687
+rect 0 3787 254 4477
+rect 0 2577 254 3507
+rect 0 1207 254 2297
+rect 407 0 1497 254
+rect 1777 0 2707 254
+rect 2987 0 3677 254
+rect 3957 0 4887 254
+rect 5167 0 6097 254
+rect 6377 0 7067 254
+rect 7347 0 8037 254
+rect 8317 0 9247 254
+rect 9547 0 9613 254
+rect 9673 0 10269 115
+rect 10329 0 10565 254
+rect 10625 0 11221 100
+rect 11281 0 11347 254
+rect 11647 0 12537 254
+rect 12817 0 13707 254
+rect 14007 0 19000 254
+rect 35157 0 40000 254
+<< metal5 >>
+rect 0 35957 254 40800
+rect 0 14807 254 19797
+rect 0 13637 254 14487
+rect 0 12467 254 13317
+rect 0 10347 254 12147
+rect 0 9137 254 10027
+rect 0 8167 254 8817
+rect 0 7197 254 7847
+rect 0 5987 254 6877
+rect 0 4777 254 5667
+rect 0 3807 254 4457
+rect 0 2597 254 3487
+rect 0 1227 254 2277
+rect 427 0 1477 254
+rect 1797 0 2687 254
+rect 3007 0 3657 254
+rect 3977 0 4867 254
+rect 5187 0 6077 254
+rect 6397 0 7047 254
+rect 7367 0 8017 254
+rect 8337 0 9227 254
+rect 9547 0 11347 254
+rect 11667 0 12517 254
+rect 12837 0 13687 254
+rect 14007 0 18997 254
+rect 35157 0 40000 254
+use s8iom0s8_corner_bus_overlay  s8iom0s8_corner_bus_overlay_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1576765096
+transform 1 0 0 0 1 67
+box 0 0 40000 40733
+<< labels >>
+flabel metal5 s 0 10347 254 12147 3 FreeSans 520 0 0 0 vssa
+port 2 nsew
+flabel metal5 s 127 11205 127 11205 3 FreeSans 520 180 0 0 vssa
+port 2 nsew
+flabel metal5 s 0 7197 254 7847 3 FreeSans 520 180 0 0 vswitch
+port 4 nsew
+flabel metal5 s 0 5987 254 6877 3 FreeSans 520 180 0 0 vssio
+port 9 nsew
+flabel metal5 s 0 9137 254 10027 3 FreeSans 520 180 0 0 vssd
+port 10 nsew
+flabel metal5 s 0 8168 254 8817 3 FreeSans 520 180 0 0 vssa
+port 2 nsew
+flabel metal5 s 0 12467 254 13317 3 FreeSans 520 180 0 0 vssio_q
+port 11 nsew
+flabel metal5 s 0 13637 254 14487 3 FreeSans 520 180 0 0 vddio_q
+port 5 nsew
+flabel metal5 s 0 14807 254 19797 3 FreeSans 520 180 0 0 vddio
+port 7 nsew
+flabel metal5 s 0 3807 251 4457 3 FreeSans 520 180 0 0 vdda
+port 3 nsew
+flabel metal5 s 0 1227 254 2277 3 FreeSans 520 180 0 0 vcchib
+port 6 nsew
+flabel metal5 s 0 2597 254 3487 3 FreeSans 520 180 0 0 vccd
+port 8 nsew
+flabel metal5 s 0 4777 254 5667 3 FreeSans 520 180 0 0 vddio
+port 7 nsew
+flabel metal4 s 0 11425 100 12021 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10473 115 11069 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 0 10347 254 10413 3 FreeSans 520 0 0 0 vssa
+port 2 nsew
+flabel metal4 s 0 1207 254 2297 3 FreeSans 520 180 0 0 vcchib
+port 6 nsew
+flabel metal4 s 0 2577 254 3507 3 FreeSans 520 180 0 0 vccd
+port 8 nsew
+flabel metal4 s 0 3787 251 4477 3 FreeSans 520 180 0 0 vdda
+port 3 nsew
+flabel metal4 s 0 4757 254 5687 3 FreeSans 520 180 0 0 vddio
+port 7 nsew
+flabel metal4 s 0 5967 254 6897 3 FreeSans 520 180 0 0 vssio
+port 9 nsew
+flabel metal4 s 0 7177 254 7867 3 FreeSans 520 180 0 0 vswitch
+port 4 nsew
+flabel metal4 s 0 8147 254 8837 3 FreeSans 520 180 0 0 vssa
+port 2 nsew
+flabel metal4 s 0 9117 254 10047 3 FreeSans 520 180 0 0 vssd
+port 10 nsew
+flabel metal4 s 0 11129 254 11365 3 FreeSans 520 0 0 0 vssa
+port 2 nsew
+flabel metal4 s 0 12081 254 12147 3 FreeSans 520 0 0 0 vssa
+port 2 nsew
+flabel metal4 s 0 12447 254 13337 3 FreeSans 520 180 0 0 vssio_q
+port 11 nsew
+flabel metal4 s 0 13617 254 14507 3 FreeSans 520 180 0 0 vddio_q
+port 5 nsew
+flabel metal4 s 0 14808 254 19800 3 FreeSans 520 180 0 0 vddio
+port 7 nsew
+flabel metal4 s 0 35957 254 40800 3 FreeSans 520 180 0 0 vssio
+port 9 nsew
+flabel metal4 s 127 38974 127 38974 3 FreeSans 520 180 0 0 vssio
+port 9 nsew
+flabel metal5 s 3977 0 4867 254 3 FreeSans 520 270 0 0 vddio
+port 7 nsew
+flabel metal5 s 1797 0 2687 254 3 FreeSans 520 270 0 0 vccd
+port 8 nsew
+flabel metal5 s 427 0 1477 254 3 FreeSans 520 270 0 0 vcchib
+port 6 nsew
+flabel metal5 s 3007 0 3657 251 3 FreeSans 520 270 0 0 vdda
+port 3 nsew
+flabel metal5 s 14007 0 18997 254 3 FreeSans 520 270 0 0 vddio
+port 7 nsew
+flabel metal5 s 12837 0 13687 254 3 FreeSans 520 270 0 0 vddio_q
+port 5 nsew
+flabel metal5 s 11667 0 12517 254 3 FreeSans 520 270 0 0 vssio_q
+port 11 nsew
+flabel metal5 s 7368 0 8017 254 3 FreeSans 520 270 0 0 vssa
+port 2 nsew
+flabel metal5 s 8337 0 9227 254 3 FreeSans 520 270 0 0 vssd
+port 10 nsew
+flabel metal5 s 5187 0 6077 254 3 FreeSans 520 270 0 0 vssio
+port 9 nsew
+flabel metal5 s 6397 0 7047 254 3 FreeSans 520 270 0 0 vswitch
+port 4 nsew
+flabel metal5 s 9547 0 11347 254 3 FreeSans 520 270 0 0 vssa
+port 2 nsew
+flabel metal5 s 10258 127 10258 127 3 FreeSans 520 90 0 0 vssa
+port 2 nsew
+flabel metal4 s 14008 0 19000 254 3 FreeSans 520 270 0 0 vddio
+port 7 nsew
+flabel metal4 s 12817 0 13707 254 3 FreeSans 520 270 0 0 vddio_q
+port 5 nsew
+flabel metal4 s 11647 0 12537 254 3 FreeSans 520 270 0 0 vssio_q
+port 11 nsew
+flabel metal4 s 11281 0 11347 254 3 FreeSans 520 90 0 0 vssa
+port 2 nsew
+flabel metal4 s 10329 0 10565 254 3 FreeSans 520 90 0 0 vssa
+port 2 nsew
+flabel metal4 s 8317 0 9247 254 3 FreeSans 520 270 0 0 vssd
+port 10 nsew
+flabel metal4 s 7347 0 8037 254 3 FreeSans 520 270 0 0 vssa
+port 2 nsew
+flabel metal4 s 6377 0 7067 254 3 FreeSans 520 270 0 0 vswitch
+port 4 nsew
+flabel metal4 s 5167 0 6097 254 3 FreeSans 520 270 0 0 vssio
+port 9 nsew
+flabel metal4 s 3957 0 4887 254 3 FreeSans 520 270 0 0 vddio
+port 7 nsew
+flabel metal4 s 2987 0 3677 251 3 FreeSans 520 270 0 0 vdda
+port 3 nsew
+flabel metal4 s 1777 0 2707 254 3 FreeSans 520 270 0 0 vccd
+port 8 nsew
+flabel metal4 s 407 0 1497 254 3 FreeSans 520 270 0 0 vcchib
+port 6 nsew
+flabel metal4 s 9547 0 9613 254 3 FreeSans 520 90 0 0 vssa
+port 2 nsew
+flabel metal4 s 10625 0 11221 100 3 FreeSans 520 90 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 9673 0 10269 115 3 FreeSans 520 90 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 35157 0 40000 254 3 FreeSans 520 270 0 0 vssio
+port 9 nsew
+flabel metal4 s 38174 127 38174 127 3 FreeSans 520 270 0 0 vssio
+port 9 nsew
+<< properties >>
+string LEFclass ENDCAP TOPRIGHT
+string FIXED_BBOX 0 0 40000 40800
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_gpiov2_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_gpiov2_pad.mag
new file mode 100644
index 0000000..1fea0c1
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_gpiov2_pad.mag
@@ -0,0 +1,286 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal1 >>
+rect 12486 -407 12538 -351
+<< metal2 >>
+rect 7956 15977 8019 15991
+rect 7956 15927 7969 15977
+tri 7969 15927 8019 15977 nw
+rect 675 -407 721 -361
+rect 1084 -407 1130 -328
+rect 1226 -407 1278 -355
+rect 2551 -407 2603 -363
+rect 3262 -407 3314 -306
+rect 4471 -407 4523 -340
+rect 5320 -407 5372 -379
+rect 5698 -407 5750 -355
+rect 6150 -407 6202 -351
+rect 6363 -407 6415 -363
+rect 7092 -407 7144 -351
+rect 7678 -407 7730 -318
+rect 9049 -407 9101 -355
+rect 9971 -407 10023 -355
+rect 13367 -407 13419 -355
+rect 13655 -407 13785 -363
+rect 15256 -407 15384 -363
+rect 15522 -407 15574 -363
+rect 15741 -407 15781 -363
+rect 15943 -407 15983 -215
+<< metal3 >>
+rect 80 -407 204 -244
+rect 9173 -407 9239 -355
+rect 12564 -407 12778 -260
+rect 15716 -407 15782 -254
+rect 15848 -407 15914 -244
+<< metal4 >>
+rect 0 34750 254 39593
+rect 15746 34750 16000 39593
+rect 0 13600 254 18593
+rect 15746 13600 16000 18593
+rect 0 12410 254 13300
+rect 15746 12410 16000 13300
+rect 0 11240 254 12130
+rect 15746 11240 16000 12130
+rect 0 10874 254 10940
+rect 15746 10874 16000 10940
+rect 0 10218 100 10814
+rect 15746 10218 15846 10814
+rect 0 9922 254 10158
+rect 15746 9922 16000 10158
+rect 0 9266 116 9862
+rect 15746 9266 15862 9862
+rect 0 9140 254 9206
+rect 15746 9140 16000 9206
+rect 0 7910 254 8840
+rect 15746 7910 16000 8840
+rect 0 6940 254 7630
+rect 15746 6940 16000 7630
+rect 0 5970 254 6660
+rect 15746 5970 16000 6660
+rect 0 4760 254 5690
+rect 15746 4760 16000 5690
+rect 0 3550 254 4480
+rect 15746 3550 16000 4480
+rect 0 2580 254 3270
+rect 15746 2580 16000 3270
+rect 0 1370 254 2300
+rect 15746 1370 16000 2300
+rect 0 0 254 1090
+rect 15746 0 16000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 15746 34750 16000 39593
+rect 6423 24687 10731 28996
+rect 0 13600 254 18590
+rect 15746 13600 16000 18590
+rect 0 12430 254 13280
+rect 15746 12430 16000 13280
+rect 0 11260 254 12110
+rect 15746 11260 16000 12110
+rect 0 9140 254 10940
+rect 15746 9140 16000 10940
+rect 0 7930 254 8820
+rect 15746 7930 16000 8820
+rect 0 6960 254 7610
+rect 15746 6960 16000 7610
+rect 0 5990 254 6640
+rect 15746 5990 16000 6640
+rect 0 4780 254 5670
+rect 15746 4780 16000 5670
+rect 0 3570 254 4460
+rect 15746 3570 16000 4460
+rect 0 2600 254 3250
+rect 15746 2600 16000 3250
+rect 0 1390 254 2280
+rect 15746 1390 16000 2280
+rect 0 20 254 1070
+rect 15746 20 16000 1070
+use s8iom0s8_overlay_gpiov2  s8iom0s8_overlay_gpiov2_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 407 16000 40000
+use s8iom0s8_top_gpiov2  s8iom0s8_top_gpiov2_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box -143 -7 16134 40000
+<< labels >>
+flabel metal4 s 127 37925 127 37925 3 FreeSans 520 0 0 0 vssio
+port 35 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 31 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 34 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 36 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 37 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 35 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 30 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 31 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 28 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 32 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 33 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 33 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 29 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 35 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 31 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 32 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 31 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 28 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 33 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 37 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 33 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 36 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 35 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 30 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 33 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 33 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 34 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 29 nsew
+flabel metal4 s 15873 37925 15873 37925 3 FreeSans 520 180 0 0 vssio
+port 35 nsew
+flabel metal5 s 15746 9140 16000 10940 3 FreeSans 520 180 0 0 vssa
+port 33 nsew
+flabel metal5 s 15807 2600 16000 3250 3 FreeSans 520 180 0 0 vdda
+port 30 nsew
+flabel metal5 s 15746 7930 16000 8820 3 FreeSans 520 180 0 0 vssd
+port 34 nsew
+flabel metal5 s 15746 11260 16000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 36 nsew
+flabel metal5 s 15746 4780 16000 5670 3 FreeSans 520 180 0 0 vssio
+port 35 nsew
+flabel metal5 s 15746 5990 16000 6640 3 FreeSans 520 180 0 0 vswitch
+port 37 nsew
+flabel metal5 s 15746 6961 16000 7610 3 FreeSans 520 180 0 0 vssa
+port 33 nsew
+flabel metal5 s 15746 1390 16000 2280 3 FreeSans 520 180 0 0 vccd
+port 28 nsew
+flabel metal5 s 15746 12430 16000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 32 nsew
+flabel metal5 s 15746 13600 16000 18590 3 FreeSans 520 180 0 0 vddio
+port 31 nsew
+flabel metal5 s 15746 20 16000 1070 3 FreeSans 520 180 0 0 vcchib
+port 29 nsew
+flabel metal5 s 15746 3570 16000 4460 3 FreeSans 520 180 0 0 vddio
+port 31 nsew
+flabel metal4 s 15746 7910 16000 8840 3 FreeSans 520 180 0 0 vssd
+port 34 nsew
+flabel metal4 s 15807 2580 16000 3270 3 FreeSans 520 180 0 0 vdda
+port 30 nsew
+flabel metal4 s 15746 11240 16000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 36 nsew
+flabel metal4 s 15746 4760 16000 5690 3 FreeSans 520 180 0 0 vssio
+port 35 nsew
+flabel metal4 s 15746 5970 16000 6660 3 FreeSans 520 180 0 0 vswitch
+port 37 nsew
+flabel metal4 s 15746 9922 16000 10158 3 FreeSans 520 180 0 0 vssa
+port 33 nsew
+flabel metal4 s 15746 10874 16000 10940 3 FreeSans 520 180 0 0 vssa
+port 33 nsew
+flabel metal4 s 15746 3550 16000 4480 3 FreeSans 520 180 0 0 vddio
+port 31 nsew
+flabel metal4 s 15746 9140 16000 9206 3 FreeSans 520 180 0 0 vssa
+port 33 nsew
+flabel metal4 s 15746 6940 16000 7630 3 FreeSans 520 180 0 0 vssa
+port 33 nsew
+flabel metal4 s 15746 12410 16000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 32 nsew
+flabel metal4 s 15746 1370 16000 2300 3 FreeSans 520 180 0 0 vccd
+port 28 nsew
+flabel metal4 s 15746 9266 16000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 15746 34750 16000 39593 3 FreeSans 520 180 0 0 vssio
+port 35 nsew
+flabel metal4 s 15746 10218 16000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 15746 13600 16000 18593 3 FreeSans 520 180 0 0 vddio
+port 31 nsew
+flabel metal4 s 15746 0 16000 1090 3 FreeSans 520 180 0 0 vcchib
+port 29 nsew
+flabel metal5 s 6423 24687 10731 28996 0 FreeSans 1600 0 0 0 pad
+port 21 nsew
+flabel metal3 s 80 -407 204 -244 0 FreeSans 640 0 0 0 in_h
+port 17 nsew
+flabel metal2 s 675 -407 721 -361 0 FreeSans 400 270 0 0 oe_n
+port 19 nsew
+flabel metal2 s 1084 -407 1130 -328 0 FreeSans 400 270 0 0 ib_mode_sel
+port 15 nsew
+flabel metal2 s 1226 -407 1278 -355 0 FreeSans 400 270 0 0 vtrip_sel
+port 38 nsew
+flabel metal2 s 2551 -407 2603 -363 0 FreeSans 400 270 0 0 enable_vdda_h
+port 10 nsew
+flabel metal2 s 3262 -407 3314 -306 0 FreeSans 400 270 0 0 enable_vswitch_h
+port 12 nsew
+flabel metal2 s 4471 -407 4523 -340 0 FreeSans 400 0 0 0 out
+port 20 nsew
+flabel metal2 s 5320 -407 5372 -379 0 FreeSans 400 270 0 0 hld_ovr
+port 14 nsew
+flabel metal2 s 5698 -407 5750 -355 0 FreeSans 400 270 0 0 dm<2>
+port 5 nsew
+flabel metal2 s 6150 -407 6202 -351 0 FreeSans 400 270 0 0 analog_sel
+port 4 nsew
+flabel metal2 s 6363 -407 6415 -363 0 FreeSans 400 270 0 0 hld_h_n
+port 13 nsew
+flabel metal2 s 7092 -407 7144 -351 0 FreeSans 400 270 0 0 enable_h
+port 8 nsew
+flabel metal2 s 7678 -407 7730 -318 0 FreeSans 400 270 0 0 enable_inp_h
+port 9 nsew
+flabel metal2 s 9049 -407 9101 -355 0 FreeSans 400 270 0 0 inp_dis
+port 18 nsew
+flabel metal3 s 9173 -407 9239 -355 0 FreeSans 400 270 0 0 analog_pol
+port 3 nsew
+flabel metal2 s 9971 -407 10023 -355 0 FreeSans 400 270 0 0 dm<0>
+port 7 nsew
+flabel metal1 s 12486 -407 12538 -351 0 FreeSans 400 270 0 0 analog_en
+port 2 nsew
+flabel metal2 s 13367 -407 13419 -355 0 FreeSans 400 270 0 0 dm<1>
+port 6 nsew
+flabel metal2 s 15522 -407 15574 -363 0 FreeSans 400 270 0 0 slow
+port 25 nsew
+flabel metal3 s 15848 -407 15914 -244 0 FreeSans 400 270 0 0 in
+port 16 nsew
+flabel metal3 s 12564 -407 12778 -260 0 FreeSans 400 270 0 0 pad_a_noesd_h
+port 24 nsew
+flabel metal2 s 13655 -407 13785 -363 0 FreeSans 400 270 0 0 pad_a_esd_1_h
+port 23 nsew
+flabel metal2 s 15256 -407 15384 -363 0 FreeSans 400 270 0 0 pad_a_esd_0_h
+port 22 nsew
+flabel metal2 s 15943 -407 15983 -215 0 FreeSans 400 270 0 0 tie_lo_esd
+port 27 nsew
+flabel metal2 s 15741 -407 15781 -363 0 FreeSans 400 270 0 0 tie_hi_esd
+port 26 nsew
+flabel metal3 s 15716 -407 15782 -254 0 FreeSans 400 270 0 0 enable_vddio
+port 11 nsew
+<< properties >>
+string LEFclass PAD INOUT
+string FIXED_BBOX 0 0 16000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vccd_hvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vccd_hvc_pad.mag
new file mode 100644
index 0000000..1e654d6
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vccd_hvc_pad.mag
@@ -0,0 +1,223 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1585845698
+<< metal2 >>
+rect 99 -407 4879 -259
+rect 5179 -407 5579 -193
+rect 10078 -407 14858 -259
+<< metal3 >>
+rect 99 -407 4879 -16
+rect 5179 -407 7379 -259
+rect 7578 -407 9778 -89
+rect 10078 -407 14858 -16
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 7329 27458 7594 28780
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vccd_hvc  s8iom0s8_overlay_vccd_hvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1585749841
+transform 1 0 0 0 1 -407
+box 0 407 15000 40000
+use s8iom0s8_top_power_hvc_wpad  s8iom0s8_top_power_hvc_wpad_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1585749839
+transform 1 0 0 0 1 -407
+box 0 0 15000 40000
+<< labels >>
+flabel metal5 s 7329 27458 7594 28780 0 FreeSans 2000 0 0 0 vccd
+port 11 nsew
+flabel metal4 s 127 37914 127 37914 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 14873 37914 14873 37914 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal2 s 10078 -407 14858 -259 2 FreeSans 2000 90 0 0 drn_hvc
+port 2 nsew
+flabel metal2 s 99 -407 4879 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal3 s 7578 -407 9778 -89 0 FreeSans 2000 0 0 0 drn_hvc
+port 2 nsew
+flabel metal3 s 10078 -407 14858 -16 0 FreeSans 2000 0 0 0 vccd
+port 11 nsew
+flabel metal3 s 99 -407 4879 -16 0 FreeSans 2000 0 0 0 vccd
+port 11 nsew
+flabel metal3 s 5179 -407 7379 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD POWER
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vccd_lvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vccd_lvc_pad.mag
new file mode 100644
index 0000000..c3127e9
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vccd_lvc_pad.mag
@@ -0,0 +1,230 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal1 >>
+rect 6867 95 7067 195
+rect 5242 -7 5540 69
+<< metal2 >>
+rect 98 0 4099 287
+rect 6888 -7 8888 58
+rect 10953 -7 14940 715
+<< metal3 >>
+rect 98 0 4900 862
+rect 5200 -7 7374 918
+rect 7676 -7 9850 918
+rect 10151 -7 14940 862
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 6339 32546 10468 33417
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vccd_lvc  s8iom0s8_overlay_vccd_lvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 7 15000 39600
+use s8iom0s8_top_power_lvc_wpad  s8iom0s8_top_power_lvc_wpad_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 0 15000 39600
+<< labels >>
+flabel metal4 s 14873 37925 14873 37925 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 127 37925 127 37925 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 6339 32546 10468 33417 0 FreeSans 2000 0 0 0 vccd
+port 15 nsew
+flabel metal2 s 100 -7 4099 287 0 FreeSans 2000 0 0 0 src_bdy_lvc1
+port 4 nsew
+flabel metal2 s 10953 -7 14940 715 0 FreeSans 2000 0 0 0 src_bdy_lvc2
+port 5 nsew
+flabel metal2 s 6888 -7 8888 58 0 FreeSans 400 0 0 0 bdy2_b2b
+port 6 nsew
+flabel metal3 s 7676 -7 9850 918 0 FreeSans 2000 0 0 0 drn_lvc2
+port 3 nsew
+flabel metal3 s 5200 -7 7374 918 0 FreeSans 2000 0 0 0 drn_lvc1
+port 2 nsew
+flabel metal3 s 10151 -7 14940 862 0 FreeSans 4000 0 0 0 vccd
+port 15 nsew
+flabel metal3 s 100 -7 4900 862 0 FreeSans 2000 0 0 0 vccd
+port 15 nsew
+flabel metal1 s 6867 95 7067 195 0 FreeSans 300 0 0 0 vssi
+port 7 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD POWER
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vdda_hvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vdda_hvc_pad.mag
new file mode 100644
index 0000000..b81c352
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vdda_hvc_pad.mag
@@ -0,0 +1,227 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal2 >>
+rect 99 -407 4879 -259
+rect 5179 -407 5579 -211
+rect 10078 -407 14858 -259
+<< metal3 >>
+rect 99 -407 4879 -16
+rect 5179 -407 7379 -259
+rect 7578 -407 9778 -89
+rect 10078 -407 14858 -16
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 7329 27458 7594 28780
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vccd_lvc  s8iom0s8_overlay_vccd_lvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 7 15000 39600
+use s8iom0s8_top_power_hvc_wpad  s8iom0s8_top_power_hvc_wpad_1 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 0 15000 40000
+<< labels >>
+flabel metal4 s 14873 37925 14873 37925 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 127 37925 127 37925 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal5 s 7329 27458 7594 28780 0 FreeSans 2000 0 0 0 vdda
+port 6 nsew
+flabel metal4 s 127 37914 127 37914 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 14873 37914 14873 37914 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal2 s 10078 -407 14858 -259 2 FreeSans 2000 90 0 0 drn_hvc
+port 2 nsew
+flabel metal2 s 99 -407 4879 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal3 s 7578 -407 9778 -89 0 FreeSans 2000 0 0 0 drn_hvc
+port 2 nsew
+flabel metal3 s 10078 -407 14858 -16 0 FreeSans 2000 0 0 0 vdda
+port 6 nsew
+flabel metal3 s 99 -407 4879 -16 0 FreeSans 2000 0 0 0 vdda
+port 6 nsew
+flabel metal3 s 5179 -407 7379 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD POWER
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vdda_lvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vdda_lvc_pad.mag
new file mode 100644
index 0000000..6cd80a1
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vdda_lvc_pad.mag
@@ -0,0 +1,226 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal1 >>
+rect 6867 95 7067 195
+rect 5242 -7 5540 61
+<< metal2 >>
+rect 98 0 4099 287
+rect 6888 -7 8888 58
+rect 10953 -7 14940 715
+<< metal3 >>
+rect 98 0 4900 862
+rect 5200 -7 7374 918
+rect 7676 -7 9850 918
+rect 10151 -7 14940 862
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 6339 32546 10467 33417
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vdda_lvc  s8iom0s8_overlay_vdda_lvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 7 15000 39600
+use s8iom0s8_top_power_lvc_wpad  s8iom0s8_top_power_lvc_wpad_1 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 0 15000 39600
+<< labels >>
+flabel metal2 s 100 -7 4099 287 0 FreeSans 2000 0 0 0 src_bdy_lvc1
+port 4 nsew
+flabel metal2 s 10953 -7 14940 715 0 FreeSans 2000 0 0 0 src_bdy_lvc2
+port 5 nsew
+flabel metal2 s 6888 -7 8888 58 0 FreeSans 400 0 0 0 bdy2_b2b
+port 6 nsew
+flabel metal3 s 7676 -7 9850 918 0 FreeSans 2000 0 0 0 drn_lvc2
+port 3 nsew
+flabel metal3 s 5200 -7 7374 918 0 FreeSans 2000 0 0 0 drn_lvc1
+port 2 nsew
+flabel metal3 s 10151 -7 14940 862 0 FreeSans 4000 0 0 0 vdda
+port 10 nsew
+flabel metal3 s 100 -7 4900 862 0 FreeSans 2000 0 0 0 vdda
+port 10 nsew
+flabel metal1 s 6867 95 7067 195 0 FreeSans 300 0 0 0 vssi
+port 7 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+flabel metal5 s 6339 32546 10468 33417 0 FreeSans 2000 0 0 0 vdda
+port 10 nsew
+<< properties >>
+string LEFclass PAD POWER
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vddio_hvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vddio_hvc_pad.mag
new file mode 100644
index 0000000..2f50667
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vddio_hvc_pad.mag
@@ -0,0 +1,223 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1585845698
+<< metal2 >>
+rect 99 -407 4879 -259
+rect 5179 -407 5579 -210
+rect 10078 -407 14858 -259
+<< metal3 >>
+rect 99 -407 4879 -16
+rect 5179 -407 7379 -259
+rect 7578 -407 9778 -89
+rect 10078 -407 14858 -16
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 7329 27458 7594 28780
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vddio_hvc  s8iom0s8_overlay_vddio_hvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1585749841
+transform 1 0 0 0 1 -407
+box 0 407 15000 40000
+use s8iom0s8_top_power_hvc_wpad  s8iom0s8_top_power_hvc_wpad_2 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1585749839
+transform 1 0 0 0 1 -407
+box 0 0 15000 40000
+<< labels >>
+flabel metal5 s 7329 27458 7594 28780 0 FreeSans 2000 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 127 37914 127 37914 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 14873 37914 14873 37914 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal2 s 10078 -407 14858 -259 2 FreeSans 2000 90 0 0 drn_hvc
+port 2 nsew
+flabel metal2 s 99 -407 4879 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal3 s 7578 -407 9778 -89 0 FreeSans 2000 0 0 0 drn_hvc
+port 2 nsew
+flabel metal3 s 10078 -407 14858 -16 0 FreeSans 2000 0 0 0 vddio
+port 10 nsew
+flabel metal3 s 99 -407 4879 -16 0 FreeSans 2000 0 0 0 vddio
+port 10 nsew
+flabel metal3 s 5179 -407 7379 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD POWER
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vddio_lvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vddio_lvc_pad.mag
new file mode 100644
index 0000000..d2e943c
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vddio_lvc_pad.mag
@@ -0,0 +1,225 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal1 >>
+rect 6867 95 7067 195
+rect 5242 -7 5540 78
+<< metal2 >>
+rect 98 0 4099 287
+rect 6888 -7 8888 58
+rect 10953 -7 14940 715
+<< metal3 >>
+rect 98 0 4900 862
+rect 5200 -7 7374 918
+rect 7676 -7 9850 918
+rect 10151 -7 14940 862
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vddio_lvc  s8iom0s8_overlay_vddio_lvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 7 15000 39600
+use s8iom0s8_top_power_lvc_wpad  s8iom0s8_top_power_lvc_wpad_2 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 0 15000 39600
+<< labels >>
+flabel metal5 s 6339 32546 10468 33417 0 FreeSans 2000 0 0 0 vddio
+port 14 nsew
+flabel metal2 s 100 -7 4099 287 0 FreeSans 2000 0 0 0 src_bdy_lvc1
+port 4 nsew
+flabel metal2 s 10953 -7 14940 715 0 FreeSans 2000 0 0 0 src_bdy_lvc2
+port 5 nsew
+flabel metal2 s 6888 -7 8888 58 0 FreeSans 400 0 0 0 bdy2_b2b
+port 6 nsew
+flabel metal3 s 7676 -7 9850 918 0 FreeSans 2000 0 0 0 drn_lvc2
+port 3 nsew
+flabel metal3 s 5200 -7 7374 918 0 FreeSans 2000 0 0 0 drn_lvc1
+port 2 nsew
+flabel metal3 s 10151 -7 14940 862 0 FreeSans 4000 0 0 0 vddio
+port 14 nsew
+flabel metal3 s 100 -7 4900 862 0 FreeSans 2000 0 0 0 vddio
+port 14 nsew
+flabel metal1 s 6867 95 7067 195 0 FreeSans 300 0 0 0 vssi
+port 7 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD POWER
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vssa_hvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vssa_hvc_pad.mag
new file mode 100644
index 0000000..dc6ca8d
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vssa_hvc_pad.mag
@@ -0,0 +1,225 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal2 >>
+rect 99 -407 4879 -259
+rect 5179 -407 5579 -184
+rect 10078 -407 14858 -259
+<< metal3 >>
+rect 99 -407 4879 -16
+rect 5179 -407 7379 -259
+rect 7578 -407 9778 -89
+rect 10078 -407 14858 -16
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 6 15000 1090
+rect 14746 0 14928 6
+rect 14939 3 15000 6
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 7329 27458 7594 28780
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vssa_hvc  s8iom0s8_overlay_vssa_hvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 407 15000 40000
+use s8iom0s8_top_ground_hvc_wpad  s8iom0s8_top_ground_hvc_wpad_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 0 15000 40000
+<< labels >>
+flabel metal5 s 7329 27458 7594 28780 0 FreeSans 2000 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 127 37914 127 37914 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 14873 37914 14873 37914 3 FreeSans 520 180 0 0 vssio
+port 15 nsew
+flabel metal2 s 10078 -407 14858 -259 2 FreeSans 2000 90 0 0 drn_hvc
+port 2 nsew
+flabel metal2 s 99 -407 4879 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal3 s 7578 -407 9778 -89 0 FreeSans 2000 0 0 0 drn_hvc
+port 2 nsew
+flabel metal3 s 99 -407 4879 -16 0 FreeSans 2000 0 0 0 vssa
+port 5 nsew
+flabel metal3 s 10078 -407 14858 -16 0 FreeSans 2000 0 0 0 vssa
+port 5 nsew
+flabel metal3 s 5179 -407 7379 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD GROUND
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vssa_lvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vssa_lvc_pad.mag
new file mode 100644
index 0000000..c832fc1
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vssa_lvc_pad.mag
@@ -0,0 +1,227 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal1 >>
+rect 6867 95 7067 195
+rect 5242 -7 5540 84
+<< metal2 >>
+rect 100 0 4099 287
+rect 6888 -7 8888 58
+rect 10953 -7 14940 715
+<< metal3 >>
+rect 98 309 4900 862
+rect 100 0 4900 309
+rect 5200 -7 7374 918
+rect 7676 -7 9850 918
+rect 10151 -7 14940 862
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 6339 32546 10468 33417
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vssa_lvc  s8iom0s8_overlay_vssa_lvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 7 15000 39600
+use s8iom0s8_top_ground_lvc_wpad  s8iom0s8_top_ground_lvc_wpad_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 0 15000 39600
+<< labels >>
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal1 s 6867 95 7067 195 0 FreeSans 300 0 0 0 vssi
+port 7 nsew
+flabel metal3 s 100 -7 4900 862 0 FreeSans 2000 0 0 0 vssa
+port 9 nsew
+flabel metal3 s 10151 -7 14940 862 0 FreeSans 4000 0 0 0 vssa
+port 9 nsew
+flabel metal3 s 5200 -7 7374 918 0 FreeSans 2000 0 0 0 drn_lvc1
+port 2 nsew
+flabel metal3 s 7676 -7 9850 918 0 FreeSans 2000 0 0 0 drn_lvc2
+port 3 nsew
+flabel metal2 s 6888 -7 8888 58 0 FreeSans 400 0 0 0 bdy2_b2b
+port 6 nsew
+flabel metal2 s 10953 -7 14940 715 0 FreeSans 2000 0 0 0 src_bdy_lvc2
+port 5 nsew
+flabel metal2 s 100 -7 4099 287 0 FreeSans 2000 0 0 0 src_bdy_lvc1
+port 4 nsew
+flabel metal5 s 6339 32546 10468 33417 0 FreeSans 2000 0 0 0 vssa
+port 9 nsew
+<< properties >>
+string LEFclass PAD GROUND
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vssd_hvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vssd_hvc_pad.mag
new file mode 100644
index 0000000..108c5f7
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vssd_hvc_pad.mag
@@ -0,0 +1,223 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal2 >>
+rect 99 -407 4879 -259
+rect 5179 -407 5579 -182
+rect 10078 -407 14858 -259
+<< metal3 >>
+rect 99 -407 4879 -16
+rect 5179 -407 7379 -259
+rect 7578 -407 9778 -89
+rect 10078 -407 14858 -16
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 7329 27458 7594 28780
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vssd_hvc  s8iom0s8_overlay_vssd_hvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 407 15000 40000
+use s8iom0s8_top_ground_hvc_wpad  s8iom0s8_top_ground_hvc_wpad_1 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 0 15000 40000
+<< labels >>
+flabel metal5 s 7329 27458 7594 28780 0 FreeSans 2000 0 0 0 vssd
+port 13 nsew
+flabel metal4 s 127 37914 127 37914 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 14873 37914 14873 37914 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal2 s 10078 -407 14858 -259 2 FreeSans 2000 90 0 0 drn_hvc
+port 2 nsew
+flabel metal2 s 99 -407 4879 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal3 s 7578 -407 9778 -89 0 FreeSans 2000 0 0 0 drn_hvc
+port 2 nsew
+flabel metal3 s 99 -407 4879 -16 0 FreeSans 2000 0 0 0 vssd
+port 13 nsew
+flabel metal3 s 10078 -407 14858 -16 0 FreeSans 2000 0 0 0 vssd
+port 13 nsew
+flabel metal3 s 5179 -407 7379 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD GROUND
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vssd_lvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vssd_lvc_pad.mag
new file mode 100644
index 0000000..7781fa8
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vssd_lvc_pad.mag
@@ -0,0 +1,230 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal1 >>
+rect 6867 95 7067 195
+rect 5242 -7 5540 83
+<< metal2 >>
+rect 101 0 4099 287
+rect 6888 -7 8888 58
+rect 10953 -7 14940 715
+<< metal3 >>
+rect 101 0 4900 862
+rect 5200 -7 7374 918
+rect 7676 -7 9850 918
+rect 10151 -7 14940 862
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 6339 32546 10468 33417
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vssd_lvc  s8iom0s8_overlay_vssd_lvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 7 15000 39600
+use s8iom0s8_top_ground_lvc_wpad  s8iom0s8_top_ground_lvc_wpad_1 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 0 15000 39600
+<< labels >>
+flabel metal4 s 14873 37925 14873 37925 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 127 37925 127 37925 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 6339 32546 10468 33417 0 FreeSans 2000 0 0 0 vssd
+port 17 nsew
+flabel metal2 s 100 -7 4099 287 0 FreeSans 2000 0 0 0 src_bdy_lvc1
+port 4 nsew
+flabel metal2 s 10953 -7 14940 715 0 FreeSans 2000 0 0 0 src_bdy_lvc2
+port 5 nsew
+flabel metal2 s 6888 -7 8888 58 0 FreeSans 400 0 0 0 bdy2_b2b
+port 6 nsew
+flabel metal3 s 7676 -7 9850 918 0 FreeSans 2000 0 0 0 drn_lvc2
+port 3 nsew
+flabel metal3 s 5200 -7 7374 918 0 FreeSans 2000 0 0 0 drn_lvc1
+port 2 nsew
+flabel metal3 s 10151 -7 14940 862 0 FreeSans 4000 0 0 0 vssd
+port 17 nsew
+flabel metal3 s 100 -7 4900 862 0 FreeSans 2000 0 0 0 vssd
+port 17 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+flabel metal1 s 6867 95 7067 195 0 FreeSans 300 0 0 0 vssi
+port 7 nsew
+<< properties >>
+string LEFclass PAD GROUND
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vssio_hvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vssio_hvc_pad.mag
new file mode 100644
index 0000000..db38a6c
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vssio_hvc_pad.mag
@@ -0,0 +1,226 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal2 >>
+rect 99 -407 4879 -259
+rect 5179 -407 5579 -181
+rect 10078 -407 14858 -259
+<< metal3 >>
+rect 99 -407 4879 -16
+rect 5179 -407 7379 -259
+rect 7578 -407 9778 -89
+rect 10078 -407 14858 -16
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 6 254 1090
+rect 14746 6 15000 1090
+rect 14934 5 15000 6
+rect 0 0 254 5
+rect 14746 0 15000 5
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 7329 27458 7594 28780
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vssio_hvc  s8iom0s8_overlay_vssio_hvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 407 15000 40000
+use s8iom0s8_top_ground_hvc_wpad  s8iom0s8_top_ground_hvc_wpad_2 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -407
+box 0 0 15000 40000
+<< labels >>
+flabel metal5 s 7329 27458 7594 28780 0 FreeSans 2000 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 127 37914 127 37914 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 14873 37914 14873 37914 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal2 s 10078 -407 14858 -259 2 FreeSans 2000 90 0 0 drn_hvc
+port 2 nsew
+flabel metal2 s 99 -407 4879 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal3 s 7578 -407 9778 -89 0 FreeSans 2000 0 0 0 drn_hvc
+port 2 nsew
+flabel metal3 s 99 -407 4879 -16 0 FreeSans 2000 0 0 0 vssio
+port 12 nsew
+flabel metal3 s 10078 -407 14858 -16 0 FreeSans 2000 0 0 0 vssio
+port 12 nsew
+flabel metal3 s 5179 -407 7379 -259 2 FreeSans 2000 90 0 0 src_bdy_hvc
+port 4 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 13 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 6 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 7 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 9 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 5 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 11 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 12 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 8 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 10 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 11 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 7 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 9 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 14 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 12 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 6 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 5 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 13 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD GROUND
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0_vssio_lvc_pad.mag b/sky130/custom/sky130_fd_io/mag/s8iom0_vssio_lvc_pad.mag
new file mode 100644
index 0000000..b467e36
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0_vssio_lvc_pad.mag
@@ -0,0 +1,227 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1584473789
+<< metal1 >>
+rect 6867 95 7067 195
+rect 5242 -7 5540 74
+<< metal2 >>
+rect 100 0 4099 287
+rect 6888 -7 8888 58
+rect 10953 -7 14940 715
+<< metal3 >>
+rect 98 339 4900 862
+rect 100 0 4900 339
+rect 5200 -7 7374 918
+rect 7676 -7 9850 918
+rect 10151 -7 14940 862
+<< metal4 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 0 13600 254 18593
+rect 14746 13600 15000 18593
+rect 0 12410 254 13300
+rect 14746 12410 15000 13300
+rect 0 11240 254 12130
+rect 14746 11240 15000 12130
+rect 0 10874 254 10940
+rect 14746 10874 15000 10940
+rect 0 10218 100 10814
+rect 14746 10218 14846 10814
+rect 0 9922 254 10158
+rect 14746 9922 15000 10158
+rect 0 9266 116 9862
+rect 14746 9266 14862 9862
+rect 0 9140 254 9206
+rect 14746 9140 15000 9206
+rect 0 7910 254 8840
+rect 14746 7910 15000 8840
+rect 0 6940 254 7630
+rect 14746 6940 15000 7630
+rect 0 5970 254 6660
+rect 14746 5970 15000 6660
+rect 0 4760 254 5690
+rect 14746 4760 15000 5690
+rect 0 3550 254 4480
+rect 14746 3550 15000 4480
+rect 0 2580 254 3270
+rect 14746 2580 15000 3270
+rect 0 1370 254 2300
+rect 14746 1370 15000 2300
+rect 0 0 254 1090
+rect 14746 0 15000 1090
+<< metal5 >>
+rect 0 34750 254 39593
+rect 14746 34750 15000 39593
+rect 6339 32546 10468 33417
+rect 0 13600 254 18590
+rect 14746 13600 15000 18590
+rect 0 12430 254 13280
+rect 14746 12430 15000 13280
+rect 0 11260 254 12110
+rect 14746 11260 15000 12110
+rect 0 9140 254 10940
+rect 14746 9140 15000 10940
+rect 0 7930 254 8820
+rect 14746 7930 15000 8820
+rect 0 6960 254 7610
+rect 14746 6960 15000 7610
+rect 0 5990 254 6640
+rect 14746 5990 15000 6640
+rect 0 4780 254 5670
+rect 14746 4780 15000 5670
+rect 0 3570 254 4460
+rect 14746 3570 15000 4460
+rect 0 2600 254 3250
+rect 14746 2600 15000 3250
+rect 0 1390 254 2280
+rect 14746 1390 15000 2280
+rect 0 20 254 1070
+rect 14746 20 15000 1070
+use s8iom0s8_overlay_vssio_lvc  s8iom0s8_overlay_vssio_lvc_0 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 7 15000 39600
+use s8iom0s8_top_ground_lvc_wpad  s8iom0s8_top_ground_lvc_wpad_2 ~/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/mag
+timestamp 1584046481
+transform 1 0 0 0 1 -7
+box 0 0 15000 39600
+<< labels >>
+flabel metal5 s 6339 32546 10468 33417 0 FreeSans 2000 0 0 0 vssio
+port 16 nsew
+flabel metal2 s 100 -7 4099 287 0 FreeSans 2000 0 0 0 src_bdy_lvc1
+port 4 nsew
+flabel metal2 s 10953 -7 14940 715 0 FreeSans 2000 0 0 0 src_bdy_lvc2
+port 5 nsew
+flabel metal2 s 6888 -7 8888 58 0 FreeSans 400 0 0 0 bdy2_b2b
+port 6 nsew
+flabel metal3 s 7676 -7 9850 918 0 FreeSans 2000 0 0 0 drn_lvc2
+port 3 nsew
+flabel metal3 s 5200 -7 7374 918 0 FreeSans 2000 0 0 0 drn_lvc1
+port 2 nsew
+flabel metal3 s 10151 -7 14940 862 0 FreeSans 4000 0 0 0 vssio
+port 16 nsew
+flabel metal3 s 100 -7 4900 862 0 FreeSans 2000 0 0 0 vssio
+port 16 nsew
+flabel metal1 s 6867 95 7067 195 0 FreeSans 300 0 0 0 vssi
+port 7 nsew
+flabel metal5 s 14746 9140 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14807 2600 15000 3250 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal5 s 14746 7930 15000 8820 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal5 s 14746 11260 15000 12110 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 14746 4780 15000 5670 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal5 s 14746 5990 15000 6640 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal5 s 14746 6961 15000 7610 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal5 s 14746 1390 15000 2280 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal5 s 14746 12430 15000 13280 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 14746 13600 15000 18590 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 14746 20 15000 1070 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal5 s 14746 3570 15000 4460 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 13600 254 18590 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 7930 254 8820 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal5 s 0 11260 254 12110 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal5 s 0 5990 254 6640 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal5 s 0 4780 254 5670 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal5 s 0 2600 193 3250 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal5 s 0 3570 254 4460 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal5 s 0 1390 254 2280 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal5 s 0 12430 254 13280 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal5 s 0 9140 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 6961 254 7610 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal5 s 0 20 254 1070 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 7910 15000 8840 3 FreeSans 520 180 0 0 vssd
+port 17 nsew
+flabel metal4 s 14807 2580 15000 3270 3 FreeSans 520 180 0 0 vdda
+port 10 nsew
+flabel metal4 s 14746 11240 15000 12130 3 FreeSans 520 180 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 14746 4760 15000 5690 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 5970 15000 6660 3 FreeSans 520 180 0 0 vswitch
+port 11 nsew
+flabel metal4 s 14746 9922 15000 10158 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 10874 15000 10940 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 0 15000 1090 3 FreeSans 520 180 0 0 vcchib
+port 13 nsew
+flabel metal4 s 14746 3550 15000 4480 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 14746 9140 15000 9206 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 6940 15000 7630 3 FreeSans 520 180 0 0 vssa
+port 9 nsew
+flabel metal4 s 14746 12410 15000 13300 3 FreeSans 520 180 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 14746 1370 15000 2300 3 FreeSans 520 180 0 0 vccd
+port 15 nsew
+flabel metal4 s 14746 9266 15000 9862 3 FreeSans 520 180 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 14746 34750 15000 39593 3 FreeSans 520 180 0 0 vssio
+port 16 nsew
+flabel metal4 s 14746 10218 15000 10814 3 FreeSans 520 180 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 14746 13600 15000 18593 3 FreeSans 520 180 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 34750 254 39593 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 3550 254 4480 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 12410 254 13300 3 FreeSans 520 0 0 0 vddio_q
+port 12 nsew
+flabel metal4 s 0 13600 254 18593 3 FreeSans 520 0 0 0 vddio
+port 14 nsew
+flabel metal4 s 0 1370 254 2300 3 FreeSans 520 0 0 0 vccd
+port 15 nsew
+flabel metal4 s 0 9140 254 9206 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 5970 254 6660 3 FreeSans 520 0 0 0 vswitch
+port 11 nsew
+flabel metal4 s 0 0 254 1090 3 FreeSans 520 0 0 0 vcchib
+port 13 nsew
+flabel metal4 s 0 9922 254 10158 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 11240 254 12130 3 FreeSans 520 0 0 0 vssio_q
+port 18 nsew
+flabel metal4 s 0 4760 254 5690 3 FreeSans 520 0 0 0 vssio
+port 16 nsew
+flabel metal4 s 0 2580 193 3270 3 FreeSans 520 0 0 0 vdda
+port 10 nsew
+flabel metal4 s 0 10218 254 10814 3 FreeSans 520 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 10874 254 10940 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 6940 254 7630 3 FreeSans 520 0 0 0 vssa
+port 9 nsew
+flabel metal4 s 0 7910 254 8840 3 FreeSans 520 0 0 0 vssd
+port 17 nsew
+flabel metal4 s 0 9266 254 9862 3 FreeSans 520 0 0 0 amuxbus_b
+port 1 nsew
+<< properties >>
+string LEFclass PAD GROUND
+string FIXED_BBOX 0 0 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/s8iom0s8_com_bus_slice_1um.mag b/sky130/custom/sky130_fd_io/mag/s8iom0s8_com_bus_slice_1um.mag
new file mode 100644
index 0000000..2349822
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/s8iom0s8_com_bus_slice_1um.mag
@@ -0,0 +1,99 @@
+magic
+tech EFS8A
+magscale 1 2
+timestamp 1586352185
+<< metal4 >>
+rect 0 34750 200 39593
+rect 0 13600 200 18593
+rect 0 12410 200 13300
+rect 0 11240 200 12130
+rect 0 10874 200 10940
+rect 0 10218 200 10814
+rect 0 9922 200 10158
+rect 0 9266 200 9862
+rect 0 9140 200 9206
+rect 0 7910 200 8840
+rect 0 6940 200 7630
+rect 0 5970 200 6660
+rect 0 4760 200 5690
+rect 0 3550 200 4480
+rect 0 2580 200 3270
+rect 0 1370 200 2300
+rect 0 0 200 1090
+<< metal5 >>
+rect 0 34750 200 39593
+rect 0 13600 200 18590
+rect 0 12430 200 13280
+rect 0 11260 200 12110
+rect 0 9140 200 10940
+rect 0 7930 200 8820
+rect 0 6960 200 7610
+rect 0 5990 200 6640
+rect 0 4780 200 5670
+rect 0 3570 200 4460
+rect 0 2600 200 3250
+rect 0 1390 200 2280
+rect 0 20 200 1070
+<< labels >>
+flabel metal4 s 0 13600 200 18593 0 FreeSans 640 0 0 0 vddio
+port 7 nsew
+flabel metal5 s 0 12430 200 13280 0 FreeSans 640 0 0 0 vddio_q
+port 5 nsew
+flabel metal4 s 0 12410 200 13300 0 FreeSans 640 0 0 0 vddio_q
+port 5 nsew
+flabel metal5 s 0 11260 200 12110 0 FreeSans 640 0 0 0 vssio_q
+port 11 nsew
+flabel metal4 s 0 11240 200 12130 0 FreeSans 640 0 0 0 vssio_q
+port 11 nsew
+flabel metal5 s 0 9140 200 10940 0 FreeSans 640 0 0 0 vssa
+port 2 nsew
+flabel metal4 s 0 10874 200 10940 0 FreeSans 640 0 0 0 vssa
+port 2 nsew
+flabel metal4 s 0 10218 200 10814 0 FreeSans 640 0 0 0 amuxbus_a
+port 0 nsew
+flabel metal4 s 0 9266 200 9862 0 FreeSans 640 0 0 0 amuxbus_b
+port 1 nsew
+flabel metal4 s 0 9140 200 9206 0 FreeSans 640 0 0 0 vssa
+port 2 nsew
+flabel metal5 s 0 7930 200 8820 0 FreeSans 640 0 0 0 vssd
+port 10 nsew
+flabel metal4 s 0 7910 200 8840 0 FreeSans 640 0 0 0 vssd
+port 10 nsew
+flabel metal5 s 0 6960 200 7610 0 FreeSans 640 0 0 0 vssa
+port 2 nsew
+flabel metal4 s 0 6940 200 7630 0 FreeSans 640 0 0 0 vssa
+port 2 nsew
+flabel metal5 s 0 5990 200 6640 0 FreeSans 640 0 0 0 vswitch
+port 4 nsew
+flabel metal4 s 0 5970 200 6660 0 FreeSans 640 0 0 0 vswitch
+port 4 nsew
+flabel metal5 s 0 4780 200 5670 0 FreeSans 640 0 0 0 vssio
+port 9 nsew
+flabel metal4 s 0 4760 200 5690 0 FreeSans 640 0 0 0 vssio
+port 9 nsew
+flabel metal5 s 0 3570 200 4460 0 FreeSans 640 0 0 0 vddio
+port 7 nsew
+flabel metal4 s 0 3550 200 4480 0 FreeSans 640 0 0 0 vddio
+port 7 nsew
+flabel metal5 s 0 2600 200 3250 0 FreeSans 640 0 0 0 vdda
+port 3 nsew
+flabel metal4 s 0 2580 200 3270 0 FreeSans 640 0 0 0 vdda
+port 3 nsew
+flabel metal5 s 0 1390 200 2280 0 FreeSans 640 0 0 0 vccd
+port 8 nsew
+flabel metal4 s 0 1370 200 2300 0 FreeSans 640 0 0 0 vccd
+port 8 nsew
+flabel metal5 s 0 20 200 1070 0 FreeSans 640 0 0 0 vcchib
+port 6 nsew
+flabel metal4 s 0 0 200 1090 0 FreeSans 640 0 0 0 vcchib
+port 6 nsew
+flabel metal5 s 0 34750 200 39593 0 FreeSans 640 0 0 0 vssio
+port 9 nsew
+flabel metal5 s 0 13600 200 18590 0 FreeSans 640 0 0 0 vddio
+port 7 nsew
+flabel metal4 s 0 9922 200 10158 0 FreeSans 640 0 0 0 vssa
+port 2 nsew
+<< properties >>
+string LEFclass PAD SPACER
+string FIXED_BBOX 0 0 200 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/verilog/power_pads_lib.v b/sky130/custom/sky130_fd_io/verilog/power_pads_lib.v
new file mode 100644
index 0000000..f12b529
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/verilog/power_pads_lib.v
@@ -0,0 +1,714 @@
+//-----------------------------------------------------------------------
+// Verilog entries for standard power pads (s8 power pads + overlays)
+// Also includes stub entries for the corner and fill cells
+// Also includes the custom gpiov2 cell (adds m5 on buses), which is a wrapper
+// for the s8 gpiov2 cell.
+//
+// This file is distributed as open source under the Apache 2.0 license
+// Copyright 2019 efabless, Inc.
+// Written by Tim Edwards 
+//-----------------------------------------------------------------------
+
+module s8iom0_vccd_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc,
+	src_bdy_hvc, vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_hvc;
+  inout src_bdy_hvc;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying power pad (connects p_pad to vccd)
+  s8iom0s8_top_power_hvc_wpad s8iom0s8_top_power_hvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.p_pad(vccd),
+	.ogc_hvc(),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_hvc(drn_hvc),
+	.src_bdy_hvc(src_bdy_hvc)
+  );
+
+endmodule
+
+module s8iom0_vccd_lvc_pad (amuxbus_a, amuxbus_b,
+	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_lvc1;
+  inout drn_lvc2;
+  inout src_bdy_lvc1;
+  inout src_bdy_lvc2;
+  inout bdy2_b2b;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying power pad (connects p_pad to vccd)
+  s8iom0s8_top_power_lvc_wpad s8iom0s8_top_power_lvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.p_pad(vccd),
+	.ogc_lvc(),
+	.bdy2_b2b(bdy2_b2b),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_lvc1(drn_lvc1),
+	.drn_lvc2(drn_lvc2),
+	.src_bdy_lvc1(src_bdy_lvc1),
+	.src_bdy_lvc2(src_bdy_lvc2)
+  );
+
+endmodule
+
+module s8iom0_vdda_lvc_pad (amuxbus_a, amuxbus_b,
+	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_lvc1;
+  inout drn_lvc2;
+  inout src_bdy_lvc1;
+  inout src_bdy_lvc2;
+  inout bdy2_b2b;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying power pad (connects p_pad to vdda)
+  s8iom0s8_top_power_lvc_wpad s8iom0s8_top_power_lvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.p_pad(vdda),
+	.ogc_lvc(),
+	.bdy2_b2b(bdy2_b2b),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_lvc1(drn_lvc1),
+	.drn_lvc2(drn_lvc2),
+	.src_bdy_lvc1(src_bdy_lvc1),
+	.src_bdy_lvc2(src_bdy_lvc2)
+  );
+
+endmodule
+
+module s8iom0_vdda_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc,
+	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_hvc;
+  inout src_bdy_hvc;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying power pad (connects p_pad to vdda)
+  s8iom0s8_top_power_hvc_wpad s8iom0s8_top_power_hvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.p_pad(vdda),
+	.ogc_hvc(),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_hvc(drn_hvc),
+	.src_bdy_hvc(src_bdy_hvc)
+  );
+
+endmodule
+
+module s8iom0_vddio_lvc_pad (amuxbus_a, amuxbus_b,
+	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_lvc1;
+  inout drn_lvc2;
+  inout src_bdy_lvc1;
+  inout src_bdy_lvc2;
+  inout bdy2_b2b;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying power pad (connects p_pad and vddio_q to vddio)
+  s8iom0s8_top_power_lvc_wpad s8iom0s8_top_power_lvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.p_pad(vddio),
+	.ogc_lvc(),
+	.bdy2_b2b(bdy2_b2b),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_lvc1(drn_lvc1),
+	.drn_lvc2(drn_lvc2),
+	.src_bdy_lvc1(src_bdy_lvc1),
+	.src_bdy_lvc2(src_bdy_lvc2)
+  );
+
+  assign vddio_q = vddio;
+
+endmodule
+
+module s8iom0_vddio_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc,
+	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_hvc;
+  inout src_bdy_hvc;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying power pad (connects p_pad and vddio_q to vddio)
+  s8iom0s8_top_power_hvc_wpad s8iom0s8_top_power_hvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.p_pad(vddio),
+	.ogc_hvc(),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_hvc(drn_hvc),
+	.src_bdy_hvc(src_bdy_hvc)
+  );
+
+  assign vddio_q = vddio;
+
+endmodule
+
+module s8iom0_vssd_lvc_pad (amuxbus_a, amuxbus_b,
+	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_lvc1;
+  inout drn_lvc2;
+  inout src_bdy_lvc1;
+  inout src_bdy_lvc2;
+  inout bdy2_b2b;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying ground pad (connects g_pad to vssd)
+  s8iom0s8_top_ground_lvc_wpad s8iom0s8_top_ground_lvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.g_pad(vssd),
+	.ogc_lvc(),
+	.bdy2_b2b(bdy2_b2b),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_lvc1(drn_lvc1),
+	.drn_lvc2(drn_lvc2),
+	.src_bdy_lvc1(src_bdy_lvc1),
+	.src_bdy_lvc2(src_bdy_lvc2)
+  );
+
+endmodule
+
+module s8iom0_vssd_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc,
+	src_bdy_hvc, vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_hvc;
+  inout src_bdy_hvc;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying ground pad (connects g_pad to vssd)
+  s8iom0s8_top_ground_hvc_wpad s8iom0s8_top_ground_hvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.g_pad(vssd),
+	.ogc_hvc(),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_hvc(drn_hvc),
+	.src_bdy_hvc(src_bdy_hvc)
+  );
+
+endmodule
+
+module s8iom0_vssio_lvc_pad (amuxbus_a, amuxbus_b,
+	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_lvc1;
+  inout drn_lvc2;
+  inout src_bdy_lvc1;
+  inout src_bdy_lvc2;
+  inout bdy2_b2b;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying ground pad (connects g_pad and vssio_q to vssio)
+  s8iom0s8_top_ground_lvc_wpad s8iom0s8_top_ground_lvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.g_pad(vssio),
+	.ogc_lvc(),
+	.bdy2_b2b(bdy2_b2b),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_lvc1(drn_lvc1),
+	.drn_lvc2(drn_lvc2),
+	.src_bdy_lvc1(src_bdy_lvc1),
+	.src_bdy_lvc2(src_bdy_lvc2)
+  );
+
+  assign vssio_q = vssio;
+
+endmodule
+
+
+module s8iom0_vssio_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc,
+	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_hvc;
+  inout src_bdy_hvc;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying ground pad (connects g_pad and vssio_q to vssio)
+  s8iom0s8_top_ground_hvc_wpad s8iom0s8_top_ground_hvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.g_pad(vssio),
+	.ogc_hvc(),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_hvc(drn_hvc),
+	.src_bdy_hvc(src_bdy_hvc)
+  );
+
+  assign vssio_q = vssio;
+
+endmodule
+
+module s8iom0_vssa_lvc_pad (amuxbus_a, amuxbus_b,
+	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_lvc1;
+  inout drn_lvc2;
+  inout src_bdy_lvc1;
+  inout src_bdy_lvc2;
+  inout bdy2_b2b;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying ground pad (connects g_pad to vssa)
+  s8iom0s8_top_ground_lvc_wpad s8iom0s8_top_ground_lvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.g_pad(vssa),
+	.ogc_lvc(),
+	.bdy2_b2b(bdy2_b2b),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_lvc1(drn_lvc1),
+	.drn_lvc2(drn_lvc2),
+	.src_bdy_lvc1(src_bdy_lvc1),
+	.src_bdy_lvc2(src_bdy_lvc2)
+  );
+
+endmodule
+
+module s8iom0_vssa_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc,
+	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout drn_hvc;
+  inout src_bdy_hvc;
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+  // Instantiate the underlying ground pad (connects g_pad to vssa)
+  s8iom0s8_top_ground_hvc_wpad s8iom0s8_top_ground_hvc_base ( 
+	.vssa(vssa),
+	.vdda(vdda),
+	.vswitch(vswitch),
+	.vddio_q(vddio_q),
+	.vcchib(vcchib),
+	.vddio(vddio),
+	.vccd(vccd),
+	.vssio(vssio),
+	.vssd(vssd),
+	.vssio_q(vssio_q),
+	.g_pad(vssa),
+	.ogc_hvc(),
+	.amuxbus_a(amuxbus_a),
+	.amuxbus_b(amuxbus_b),
+	.drn_hvc(drn_hvc),
+	.src_bdy_hvc(src_bdy_hvc)
+  );
+
+endmodule
+
+module s8iom0_corner_pad (amuxbus_a, amuxbus_b, 
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+endmodule
+
+module s8iom0s8_com_bus_slice (amuxbus_a, amuxbus_b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+endmodule
+
+module s8iom0s8_com_bus_slice_1um (amuxbus_a, amuxbus_b,
+	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+	vssio, vssd, vssio_q
+);
+  inout amuxbus_a;
+  inout amuxbus_b;
+
+  inout vddio;	
+  inout vddio_q;	
+  inout vdda;
+  inout vccd;
+  inout vswitch;
+  inout vcchib;
+  inout vssa;
+  inout vssd;
+  inout vssio_q;
+  inout vssio;
+
+endmodule
+
+module s8iom0_gpiov2_pad (in_h, pad_a_noesd_h, pad_a_esd_0_h, pad_a_esd_1_h,
+    pad, dm, hld_h_n, in, inp_dis, ib_mode_sel, enable_h, enable_vdda_h,
+    enable_inp_h, oe_n, tie_hi_esd, tie_lo_esd, slow, vtrip_sel, hld_ovr,
+    analog_en, analog_sel, enable_vddio, enable_vswitch_h, analog_pol, out,
+    amuxbus_a, amuxbus_b,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
+    vssio, vssd, vssio_q 
+    );
+
+input out;  		
+input oe_n;  		
+input hld_h_n;		
+input enable_h;
+input enable_inp_h;	
+input enable_vdda_h;	
+input enable_vswitch_h;	
+input enable_vddio;	
+input inp_dis;		
+input ib_mode_sel;
+input vtrip_sel;	
+input slow;		
+input hld_ovr;		
+input analog_en;	
+input analog_sel;	
+input analog_pol;	
+input [2:0] dm;		
+
+	inout vddio;	
+	inout vddio_q;	
+	inout vdda;
+	inout vccd;
+	inout vswitch;
+	inout vcchib;
+	inout vssa;
+	inout vssd;
+	inout vssio_q;
+	inout vssio;
+
+inout pad;
+inout pad_a_noesd_h,pad_a_esd_0_h,pad_a_esd_1_h;
+inout amuxbus_a;
+inout amuxbus_b;
+
+output in;
+output in_h;
+output tie_hi_esd, tie_lo_esd;
+
+// Instantiate original version with metal4-only power bus
+s8iom0s8_top_gpiov2 gpiov2_base (
+    .in_h(in_h),
+    .pad_a_noesd_h(pad_a_noesd_h),
+    .pad_a_esd_0_h(pad_a_esd_0_h),
+    .pad_a_esd_1_h(pad_a_esd_1_h),
+    .pad(pad),
+    .dm(dm),
+    .hld_h_n(hld_h_n),
+    .in(in),
+    .inp_dis(inp_dis),
+    .ib_mode_sel(ib_mode_sel),
+    .enable_h(enable_h),
+    .enable_vdda_h(enable_vdda_h),
+    .enable_inp_h(enable_inp_h),
+    .oe_n(oe_n),
+    .tie_hi_esd(tie_hi_esd),
+    .tie_lo_esd(tie_lo_esd),
+    .slow(slow),
+    .vtrip_sel(vtrip_sel),
+    .hld_ovr(hld_ovr),
+    .analog_en(analog_en),
+    .analog_sel(analog_sel),
+    .enable_vddio(enable_vddio),
+    .enable_vswitch_h(enable_vswitch_h),
+    .analog_pol(analog_pol),
+    .out(out),
+    .amuxbus_a(amuxbus_a),
+    .amuxbus_b(amuxbus_b) ,
+    .vssa(vssa),
+    .vdda(vdda),
+    .vswitch(vswitch),
+    .vddio_q(vddio_q),
+    .vcchib(vcchib),
+    .vddio(vddio),
+    .vccd(vccd),
+    .vssio(vssio),
+    .vssd(vssd),
+    .vssio_q(vssio_q) 
+);
+
+endmodule
diff --git a/sky130/custom/sky130_fd_sc_hd/scs8hd_diode_1.cdl b/sky130/custom/sky130_fd_sc_hd/scs8hd_diode_1.cdl
new file mode 100644
index 0000000..2ae2f88
--- /dev/null
+++ b/sky130/custom/sky130_fd_sc_hd/scs8hd_diode_1.cdl
@@ -0,0 +1,7 @@
+* Additional subcircuits not in the vendor CDL library
+
+.SUBCKT scs8hd_diode_1 DIODE vgnd vnb vpb vpwr
+*.PININFO DIODE:I vgnd:I vnb:I vpb:I vpwr:I
+* NOTE:  Tap diode is not represented here.
+.ENDS
+
diff --git a/sky130/custom/sky130_fd_sc_hd/scs8hd_diode_2.cdl b/sky130/custom/sky130_fd_sc_hd/scs8hd_diode_2.cdl
new file mode 100644
index 0000000..2abb8b4
--- /dev/null
+++ b/sky130/custom/sky130_fd_sc_hd/scs8hd_diode_2.cdl
@@ -0,0 +1,6 @@
+* Additional subcircuits not in the vendor CDL library
+
+.SUBCKT scs8hd_diode_2 DIODE vgnd vnb vpb vpwr
+*.PININFO DIODE:I vgnd:I vnb:I vpb:I vpwr:I
+* NOTE:  Tap diode is not represented here.
+.ENDS
diff --git a/sky130/custom/techLEF/sky130_fd_sc_hd_tech.lef b/sky130/custom/techLEF/sky130_fd_sc_hd_tech.lef
new file mode 100644
index 0000000..d5e0b31
--- /dev/null
+++ b/sky130/custom/techLEF/sky130_fd_sc_hd_tech.lef
@@ -0,0 +1,746 @@
+VERSION 5.7 ;
+BUSBITCHARS "[]" ;
+DIVIDERCHAR "/" ;
+UNITS
+  TIME NANOSECONDS 1 ;
+  CAPACITANCE PICOFARADS 1 ;
+  RESISTANCE OHMS 1 ;
+  DATABASE MICRONS 1000 ;
+END UNITS
+MANUFACTURINGGRID 0.005 ;
+
+SITE unithd
+    SYMMETRY Y  ;
+    CLASS CORE  ;
+    SIZE  0.460 BY 2.720 ;
+END unithd
+
+LAYER li1
+    TYPE ROUTING ;
+    DIRECTION VERTICAL ;
+
+    PITCH 0.46 0.34 ;
+    OFFSET 0.23 0.17 ;
+
+    WIDTH    0.170 ;                    # LI 1
+    # SPACING  0.170 ;                    # LI 2
+  SPACINGTABLE
+    PARALLELRUNLENGTH 0
+    WIDTH 0 0.170000 ;
+    AREA 0.0561 ;                       # LI 6
+    THICKNESS 0.10 ; 
+
+    RESISTANCE RPERSQ 12.2 ;
+
+    ANTENNAMODEL OXIDE1 ;
+    ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 75.0 ) ( 0.0125 75.0 ) ( 0.0225 85.125 ) ( 22.5 10200.0 ) ) ;
+
+
+END li1
+
+LAYER mcon
+  TYPE CUT ;
+  WIDTH   0.17 ;		# Mcon 1
+  SPACING 0.19 ;		# Mcon 2
+  ENCLOSURE BELOW 0.0 0.0 ;	# Mcon 4
+  ENCLOSURE ABOVE 0.030 0.060 ; # Met1 4 / Met1 5
+
+  DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC
+  ANTENNADIFFAREARATIO PWL ( ( 0.0 3.0 ) ( 0.0125 3.0 ) ( 0.0225 3.405 ) ( 22.5 408.0 ) ) ;
+
+END mcon
+
+LAYER met1
+    TYPE ROUTING ;
+    DIRECTION HORIZONTAL ;
+
+    PITCH 0.34 ;
+    OFFSET 0.17 ;
+
+    WIDTH    0.140 ;                    # Met1 1
+    #SPACING  0.140 ;                    # Met1 2
+    #SPACING  0.280 RANGE 3.001 100 ;	# Met1 3b
+    SPACINGTABLE
+	  PARALLELRUNLENGTH 0.000
+	    WIDTH 0.000 0.140000
+	    WIDTH 3.000000 0.280000
+	    ;
+    AREA 0.083 ;                        # Met1 6
+    THICKNESS 0.35 ; 
+
+    ANTENNAMODEL OXIDE1 ;
+    ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
+
+    EDGECAPACITANCE 1.79E-6 ;
+    CAPACITANCE CPERSQDIST 25.8E-6 ;
+    DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
+    ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
+    MAXIMUMDENSITY 70.0 ;
+    DENSITYCHECKWINDOW 700.0 700.0 ;
+    DENSITYCHECKSTEP 70.0 ;
+
+    RESISTANCE RPERSQ 0.125 ;
+END met1
+
+LAYER via
+  TYPE CUT ;
+  WIDTH   0.15 ;		# Via 1a
+  SPACING 0.17  ;		# Via 2
+  ENCLOSURE BELOW 0.055 0.085 ; # Via 4a / Via 5a
+  ENCLOSURE ABOVE 0.055 0.085 ; # Met2 4 / Met2 5
+  ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
+  DCCURRENTDENSITY AVERAGE 0.29 ; # mA per via Iavg_max at Tj = 90oC
+END via
+
+LAYER met2
+    TYPE ROUTING ;
+    DIRECTION VERTICAL ;
+
+    PITCH  0.46 ;
+    OFFSET 0.23 ;
+
+    WIDTH    0.140 ;                    # Met2 1
+    #SPACING  0.140 ;                    # Met2 2
+    #SPACING  0.280 RANGE 3.001 100 ;	# Met2 3b
+    SPACINGTABLE
+	  PARALLELRUNLENGTH 0.000
+	    WIDTH 0.000 0.140000
+	    WIDTH 3.000000 0.28000 ;
+    AREA 0.0676 ;                       # Met2 6
+    THICKNESS 0.35 ; 
+
+    ANTENNAMODEL OXIDE1 ;
+    CAPACITANCE CPERSQDIST 17.5E-6 ;
+    DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
+    ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
+    ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
+    
+    MAXIMUMDENSITY 70.0 ;
+    DENSITYCHECKWINDOW 700.0 700.0 ;
+    DENSITYCHECKSTEP 70.0 ;
+    RESISTANCE RPERSQ 0.125 ;
+END met2
+
+LAYER via2
+  TYPE CUT ;
+  WIDTH   0.20 ;		# Via2 1
+  SPACING 0.20 ;		# Via2 2
+  ENCLOSURE BELOW 0.040 0.085 ;	# Via2 4
+  ENCLOSURE ABOVE 0.065 0.065 ;	# Met3 4
+  ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
+  DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
+
+END via2
+
+LAYER met3
+    TYPE ROUTING ;
+    DIRECTION HORIZONTAL ;
+
+    PITCH  0.68 ;
+    OFFSET 0.34 ;
+
+    WIDTH    0.300 ;            # Met3 1
+    #SPACING  0.300 ;		# Met3 2
+    SPACINGTABLE
+	    PARALLELRUNLENGTH 0
+	    WIDTH 0 0.30
+	    WIDTH 3.0 0.40 ;
+    AREA     0.240 ;            # Met3 6
+    THICKNESS 0.8 ;
+
+    EDGECAPACITANCE 1.86E-6 ;
+    CAPACITANCE CPERSQDIST 12.6E-6 ;
+    DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
+    ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
+
+    ANTENNAMODEL OXIDE1 ;
+    ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
+
+    MAXIMUMDENSITY 70.0 ;
+    DENSITYCHECKWINDOW 700.0 700.0 ;
+    DENSITYCHECKSTEP 70.0 ;
+    RESISTANCE RPERSQ 0.047 ;
+END met3
+
+LAYER via3
+  TYPE CUT ;
+
+  WIDTH   0.20 ;		# Via3 1
+  SPACING 0.20 ;		# Via3 2
+  ENCLOSURE BELOW 0.060 0.090 ;	# Via3 4 / Via3 5
+  ENCLOSURE ABOVE 0.065 0.065 ;	# Met4 3
+  ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
+  DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
+END via3
+
+LAYER met4
+    TYPE ROUTING ;
+    DIRECTION VERTICAL ;
+
+    PITCH  0.92 ;
+    OFFSET 0.46 ;
+
+    WIDTH    0.300 ;            # Met4 1
+    #SPACING  0.300 ;		# Met4 2
+    
+    SPACINGTABLE
+	    PARALLELRUNLENGTH 0
+	    WIDTH 0 0.30
+	    WIDTH 3.0 0.40 ;
+    AREA     0.240 ;            # Met4 4a
+
+    THICKNESS 0.8 ;
+
+    EDGECAPACITANCE 1.29E-6 ;
+    CAPACITANCE CPERSQDIST 8.67E-6 ;
+    DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
+    ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
+    ANTENNAMODEL OXIDE1 ;
+    ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
+
+    MAXIMUMDENSITY 70.0 ;
+    DENSITYCHECKWINDOW 700.0 700.0 ;
+    DENSITYCHECKSTEP 70.0 ;
+    RESISTANCE RPERSQ 0.047 ;
+END met4
+
+LAYER via4
+  TYPE CUT ;
+
+  WIDTH   0.80 ;		# Via4 1
+  SPACING 0.80 ;		# Via4 2
+  ENCLOSURE BELOW 0.190 0.190 ;	# Via4 4
+  ENCLOSURE ABOVE 0.310 0.310 ;	# Met5 3
+  ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
+  DCCURRENTDENSITY AVERAGE 2.49 ; # mA per via Iavg_max at Tj = 90oC
+END via4
+
+LAYER met5
+    TYPE ROUTING ;
+    DIRECTION HORIZONTAL ;
+
+    PITCH  3.4 ;
+    OFFSET 1.7 ; 
+
+    WIDTH    1.600 ;       # Met5 1
+    #SPACING  1.600 ;       # Met5 2
+    SPACINGTABLE
+	    PARALLELRUNLENGTH 0
+	    WIDTH 0 1.600 ;
+    AREA     4.000 ;       # Met5 4
+
+    THICKNESS 1.2 ;
+
+    ANTENNAMODEL OXIDE1 ;
+    EDGECAPACITANCE 4.96E-6 ;
+    CAPACITANCE CPERSQDIST 6.48E-6 ;
+    DCCURRENTDENSITY AVERAGE 10.17 ; # mA/um Iavg_max at Tj = 90oC
+    ACCURRENTDENSITY RMS 22.34 ; # mA/um Irms_max at Tj = 90oC
+    ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
+    
+    RESISTANCE RPERSQ 0.0285 ;
+END met5
+
+### Routing via cells section   ###
+# Plus via rule, metals are along the prefered direction
+VIA L1M1_PR DEFAULT
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER li1 ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER met1 ;
+  RECT -0.145000 -0.115000 0.145000 0.115000 ;
+END L1M1_PR
+
+VIARULE L1M1_PR GENERATE
+  LAYER li1 ;
+  ENCLOSURE 0.000000 0.000000 ;
+  LAYER met1 ;
+  ENCLOSURE 0.060000 0.030000 ;
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  SPACING 0.360000 BY 0.360000 ;
+END L1M1_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA L1M1_PR_R DEFAULT
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER li1 ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER met1 ;
+  RECT -0.115000 -0.145000 0.115000 0.145000 ;
+END L1M1_PR_R
+
+VIARULE L1M1_PR_R GENERATE
+  LAYER li1 ;
+  ENCLOSURE 0.000000 0.000000 ;
+  LAYER met1 ;
+  ENCLOSURE 0.030000 0.060000 ;
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  SPACING 0.360000 BY 0.360000 ;
+END L1M1_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA L1M1_PR_M DEFAULT
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER li1 ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER met1 ;
+  RECT -0.115000 -0.145000 0.115000 0.145000 ;
+END L1M1_PR_M
+
+VIARULE L1M1_PR_M GENERATE
+  LAYER li1 ;
+  ENCLOSURE 0.000000 0.000000 ;
+  LAYER met1 ;
+  ENCLOSURE 0.030000 0.060000 ;
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  SPACING 0.360000 BY 0.360000 ;
+END L1M1_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA L1M1_PR_MR DEFAULT
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER li1 ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER met1 ;
+  RECT -0.145000 -0.115000 0.145000 0.115000 ;
+END L1M1_PR_MR
+
+VIARULE L1M1_PR_MR GENERATE
+  LAYER li1 ;
+  ENCLOSURE 0.000000 0.000000 ;
+  LAYER met1 ;
+  ENCLOSURE 0.060000 0.030000 ;
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  SPACING 0.360000 BY 0.360000 ;
+END L1M1_PR_MR
+
+# Centered via rule, we really do not want to use it
+VIA L1M1_PR_C DEFAULT
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER li1 ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  LAYER met1 ;
+  RECT -0.145000 -0.145000 0.145000 0.145000 ;
+END L1M1_PR_C
+
+VIARULE L1M1_PR_C GENERATE
+  LAYER li1 ;
+  ENCLOSURE 0.000000 0.000000 ;
+  LAYER met1 ;
+  ENCLOSURE 0.060000 0.060000 ;
+  LAYER mcon ;
+  RECT -0.085000 -0.085000 0.085000 0.085000 ;
+  SPACING 0.360000 BY 0.360000 ;
+END L1M1_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M1M2_PR DEFAULT
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  LAYER met1 ;
+  RECT -0.160000 -0.130000 0.160000 0.130000 ;
+  LAYER met2 ;
+  RECT -0.130000 -0.160000 0.130000 0.160000 ;
+END M1M2_PR
+
+VIARULE M1M2_PR GENERATE
+  LAYER met1 ;
+  ENCLOSURE 0.085000 0.055000 ;
+  LAYER met2 ;
+  ENCLOSURE 0.055000 0.085000 ;
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  SPACING 0.320000 BY 0.320000 ;
+END M1M2_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M1M2_PR_R DEFAULT
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  LAYER met1 ;
+  RECT -0.130000 -0.160000 0.130000 0.160000 ;
+  LAYER met2 ;
+  RECT -0.160000 -0.130000 0.160000 0.130000 ;
+END M1M2_PR_R
+
+VIARULE M1M2_PR_R GENERATE
+  LAYER met1 ;
+  ENCLOSURE 0.055000 0.085000 ;
+  LAYER met2 ;
+  ENCLOSURE 0.085000 0.055000 ;
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  SPACING 0.320000 BY 0.320000 ;
+END M1M2_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M1M2_PR_M DEFAULT
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  LAYER met1 ;
+  RECT -0.160000 -0.130000 0.160000 0.130000 ;
+  LAYER met2 ;
+  RECT -0.160000 -0.130000 0.160000 0.130000 ;
+END M1M2_PR_M
+
+VIARULE M1M2_PR_M GENERATE
+  LAYER met1 ;
+  ENCLOSURE 0.085000 0.055000 ;
+  LAYER met2 ;
+  ENCLOSURE 0.085000 0.055000 ;
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  SPACING 0.320000 BY 0.320000 ;
+END M1M2_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M1M2_PR_MR DEFAULT
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  LAYER met1 ;
+  RECT -0.130000 -0.160000 0.130000 0.160000 ;
+  LAYER met2 ;
+  RECT -0.130000 -0.160000 0.130000 0.160000 ;
+END M1M2_PR_MR
+
+VIARULE M1M2_PR_MR GENERATE
+  LAYER met1 ;
+  ENCLOSURE 0.055000 0.085000 ;
+  LAYER met2 ;
+  ENCLOSURE 0.055000 0.085000 ;
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  SPACING 0.320000 BY 0.320000 ;
+END M1M2_PR_MR
+
+# Centered via rule, we really do not want to use it
+VIA M1M2_PR_C DEFAULT
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  LAYER met1 ;
+  RECT -0.160000 -0.160000 0.160000 0.160000 ;
+  LAYER met2 ;
+  RECT -0.160000 -0.160000 0.160000 0.160000 ;
+END M1M2_PR_C
+
+VIARULE M1M2_PR_C GENERATE
+  LAYER met1 ;
+  ENCLOSURE 0.085000 0.085000 ;
+  LAYER met2 ;
+  ENCLOSURE 0.085000 0.085000 ;
+  LAYER via ;
+  RECT -0.075000 -0.075000 0.075000 0.075000 ;
+  SPACING 0.320000 BY 0.320000 ;
+END M1M2_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M2M3_PR DEFAULT
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met2 ;
+  RECT -0.140000 -0.185000 0.140000 0.185000 ;
+  LAYER met3 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M2M3_PR
+
+VIARULE M2M3_PR GENERATE
+  LAYER met2 ;
+  ENCLOSURE 0.040000 0.085000 ;
+  LAYER met3 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M2M3_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M2M3_PR_R DEFAULT
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met2 ;
+  RECT -0.185000 -0.140000 0.185000 0.140000 ;
+  LAYER met3 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M2M3_PR_R
+
+VIARULE M2M3_PR_R GENERATE
+  LAYER met2 ;
+  ENCLOSURE 0.085000 0.040000 ;
+  LAYER met3 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M2M3_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M2M3_PR_M DEFAULT
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met2 ;
+  RECT -0.140000 -0.185000 0.140000 0.185000 ;
+  LAYER met3 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M2M3_PR_M
+
+VIARULE M2M3_PR_M GENERATE
+  LAYER met2 ;
+  ENCLOSURE 0.040000 0.085000 ;
+  LAYER met3 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M2M3_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M2M3_PR_MR DEFAULT
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met2 ;
+  RECT -0.185000 -0.140000 0.185000 0.140000 ;
+  LAYER met3 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M2M3_PR_MR
+
+VIARULE M2M3_PR_MR GENERATE
+  LAYER met2 ;
+  ENCLOSURE 0.085000 0.040000 ;
+  LAYER met3 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M2M3_PR_MR
+
+# Centered via rule, we really do not want to use it
+VIA M2M3_PR_C DEFAULT
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met2 ;
+  RECT -0.185000 -0.185000 0.185000 0.185000 ;
+  LAYER met3 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M2M3_PR_C
+
+VIARULE M2M3_PR_C GENERATE
+  LAYER met2 ;
+  ENCLOSURE 0.085000 0.085000 ;
+  LAYER met3 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M2M3_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M3M4_PR DEFAULT
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met3 ;
+  RECT -0.190000 -0.160000 0.190000 0.160000 ;
+  LAYER met4 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M3M4_PR
+
+VIARULE M3M4_PR GENERATE
+  LAYER met3 ;
+  ENCLOSURE 0.090000 0.060000 ;
+  LAYER met4 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M3M4_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M3M4_PR_R DEFAULT
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met3 ;
+  RECT -0.160000 -0.190000 0.160000 0.190000 ;
+  LAYER met4 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M3M4_PR_R
+
+VIARULE M3M4_PR_R GENERATE
+  LAYER met3 ;
+  ENCLOSURE 0.060000 0.090000 ;
+  LAYER met4 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M3M4_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M3M4_PR_M DEFAULT
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met3 ;
+  RECT -0.190000 -0.160000 0.190000 0.160000 ;
+  LAYER met4 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M3M4_PR_M
+
+VIARULE M3M4_PR_M GENERATE
+  LAYER met3 ;
+  ENCLOSURE 0.090000 0.060000 ;
+  LAYER met4 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M3M4_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M3M4_PR_MR DEFAULT
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met3 ;
+  RECT -0.160000 -0.190000 0.160000 0.190000 ;
+  LAYER met4 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M3M4_PR_MR
+
+VIARULE M3M4_PR_MR GENERATE
+  LAYER met3 ;
+  ENCLOSURE 0.060000 0.090000 ;
+  LAYER met4 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M3M4_PR_MR
+
+# Centered via rule, we really do not want to use it
+VIA M3M4_PR_C DEFAULT
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met3 ;
+  RECT -0.190000 -0.190000 0.190000 0.190000 ;
+  LAYER met4 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M3M4_PR_C
+
+VIARULE M3M4_PR_C GENERATE
+  LAYER met3 ;
+  ENCLOSURE 0.090000 0.090000 ;
+  LAYER met4 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M3M4_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M4M5_PR DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR
+
+VIARULE M4M5_PR GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M4M5_PR_R DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR_R
+
+VIARULE M4M5_PR_R GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M4M5_PR_M DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR_M
+
+VIARULE M4M5_PR_M GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M4M5_PR_MR DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR_MR
+
+VIARULE M4M5_PR_MR GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR_MR
+
+# Centered via rule, we really do not want to use it
+VIA M4M5_PR_C DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR_C
+
+VIARULE M4M5_PR_C GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR_C
+###  end of single via cells   ###
+
+END LIBRARY
diff --git a/sky130/custom/techLEF/sky130_fd_sc_hs_tech.lef b/sky130/custom/techLEF/sky130_fd_sc_hs_tech.lef
new file mode 100644
index 0000000..7f8f3af
--- /dev/null
+++ b/sky130/custom/techLEF/sky130_fd_sc_hs_tech.lef
@@ -0,0 +1,712 @@
+
+NAMESCASESENSITIVE ON ;
+BUSBITCHARS "[]" ;
+DIVIDERCHAR "/" ;
+UNITS
+  TIME NANOSECONDS 1 ;
+  CAPACITANCE PICOFARADS 1 ;
+  RESISTANCE OHMS 1 ;
+  DATABASE MICRONS 1000 ;
+END UNITS
+MANUFACTURINGGRID 0.005 ;
+
+SITE unitehd
+    SYMMETRY Y  ;
+    CLASS CORE  ;
+    SIZE  0.460 BY 3.400 ;
+END unitehd
+
+######  Starting overlap layers #####
+# ******** Layer OverlapCheck, type blockage, number 90 **************
+LAYER OverlapCheck
+  TYPE OVERLAP ;
+END OverlapCheck
+
+######  Starting routing layers - metal and via #####
+# ******** Layer li1, type routing, number 56 **************
+LAYER li1
+  TYPE ROUTING ;
+  DIRECTION VERTICAL ;
+  PITCH 0.48 ;
+  MINWIDTH 0.170000 ;
+  WIDTH 0.170000 ;
+  AREA 0.028900 ;
+  SPACINGTABLE
+    PARALLELRUNLENGTH 0
+    WIDTH 0 0.170000 ;
+  THICKNESS 0.100000 ;
+  EDGECAPACITANCE 3.26E-6 ;
+  CAPACITANCE CPERSQDIST 36.9E-6 ;
+  RESISTANCE RPERSQ 12.2 ;
+#  DCCURRENTDENSITY AVERAGE (no limit on this layer) ;
+  ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 75.000000 ) ( 0.012500 75.000000 ) ( 0.022500 85.125000 ) ( 22.500000 10200.000000 ) ) ;
+END li1
+
+# ******** Layer mcon, type routing, number 35 **************
+LAYER mcon
+  TYPE CUT ;
+  SPACING 0.190000 ;
+  WIDTH 0.170000 ;
+  ANTENNADIFFAREARATIO PWL ( ( 0.000000 3.000000 ) ( 0.012500 3.000000 ) ( 0.022500 3.405000 ) ( 22.500000 408.000000 ) ) ;
+  DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC
+  ENCLOSURE BELOW 0.000000 0.000000 ;
+  ENCLOSURE ABOVE 0.000000 0.000000 ;
+END mcon
+
+# ******** Layer met1, type routing, number 36 **************
+LAYER met1
+  TYPE ROUTING ;
+  DIRECTION HORIZONTAL ;
+  PITCH 0.37 ;
+  MINENCLOSEDAREA 0.140000 ;
+  MINWIDTH 0.140000 ;
+  WIDTH 0.140000 ;
+  AREA 0.083000 ;
+  SPACINGTABLE
+  PARALLELRUNLENGTH 0.000
+    WIDTH 0.000 0.140000
+    WIDTH 3.000000 0.280000
+    ;
+  THICKNESS 0.350000 ;
+  EDGECAPACITANCE 1.79E-6 ;
+  CAPACITANCE CPERSQDIST 25.8E-6 ;
+  RESISTANCE RPERSQ 0.125 ;
+  DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
+  ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
+  ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
+END met1
+
+# ******** Layer via, type routing, number 40 **************
+LAYER via1
+  TYPE CUT ;
+  SPACING 0.170000 ;
+  WIDTH 0.150000 ;
+  ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
+  DCCURRENTDENSITY AVERAGE 0.29 ; # mA per via Iavg_max at Tj = 90oC
+  ENCLOSURE BELOW 0.000000 0.000000 ;
+  ENCLOSURE ABOVE 0.000000 0.000000 ;
+END via1
+
+# ******** Layer met2, type routing, number 41 **************
+LAYER met2
+  TYPE ROUTING ;
+  DIRECTION VERTICAL ;
+  PITCH 0.48 ;
+  MINENCLOSEDAREA 0.140000 ;
+  MINWIDTH 0.140000 ;
+  WIDTH 0.140000 ;
+  AREA 0.067600 ;
+  SPACINGTABLE
+  PARALLELRUNLENGTH 0.000
+    WIDTH 0.000 0.140000
+    WIDTH 3.000000 0.280000
+    ;
+  THICKNESS 0.350000 ;
+  EDGECAPACITANCE 1.22E-6 ;
+  CAPACITANCE CPERSQDIST 17.5E-6 ;
+  RESISTANCE RPERSQ 0.125 ;
+  DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
+  ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
+  ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
+END met2
+
+# ******** Layer via2, type routing, number 44 **************
+LAYER via2
+  TYPE CUT ;
+  SPACING 0.200000 ;
+  WIDTH 0.200000 ;
+  ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
+  DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
+  ENCLOSURE BELOW 0.000000 0.000000 ;
+  ENCLOSURE ABOVE 0.000000 0.000000 ;
+END via2
+
+# ******** Layer met3, type routing, number 34 **************
+LAYER met3
+  TYPE ROUTING ;
+  DIRECTION HORIZONTAL ;
+  PITCH 0.666 ;
+  MINWIDTH 0.300000 ;
+  WIDTH 0.300000 ;
+  AREA 0.240000 ;
+  SPACINGTABLE
+  PARALLELRUNLENGTH 0.000
+    WIDTH 0.000 0.300000
+    WIDTH 3.000000 0.400000
+    ;
+  THICKNESS 0.800000 ;
+  EDGECAPACITANCE 1.86E-6 ;
+  CAPACITANCE CPERSQDIST 12.6E-6 ;
+  RESISTANCE RPERSQ 0.047 ;
+  DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
+  ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
+  ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
+END met3
+
+# ******** Layer via3, type routing, number 70 **************
+LAYER via3
+  TYPE CUT ;
+  SPACING 0.200000 ;
+  WIDTH 0.200000 ;
+  ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
+  DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
+  ENCLOSURE BELOW 0.000000 0.000000 ;
+  ENCLOSURE ABOVE 0.000000 0.000000 ;
+END via3
+
+# ******** Layer met4, type routing, number 71 **************
+LAYER met4
+  TYPE ROUTING ;
+  DIRECTION VERTICAL ;
+  PITCH 0.96 ;
+  MINWIDTH 0.300000 ;
+  WIDTH 0.300000 ;
+  AREA 0.240000 ;
+  SPACINGTABLE
+  PARALLELRUNLENGTH 0.000
+    WIDTH 0.000 0.300000
+    WIDTH 3.000000 0.400000
+    ;
+  THICKNESS 0.800000 ;
+  EDGECAPACITANCE 1.29E-6 ;
+  CAPACITANCE CPERSQDIST 8.67E-6 ;
+  RESISTANCE RPERSQ 0.047 ;
+  DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
+  ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
+  ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
+END met4
+
+# ******** Layer via4, type routing, number 58 **************
+LAYER via4
+  TYPE CUT ;
+  SPACING 0.800000 ;
+  WIDTH 0.800000 ;
+  ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
+  DCCURRENTDENSITY AVERAGE 2.49 ; # mA per via Iavg_max at Tj = 90oC
+  ENCLOSURE BELOW 0.000000 0.000000 ;
+  ENCLOSURE ABOVE 0.000000 0.000000 ;
+END via4
+
+# ******** Layer met5, type routing, number 72 **************
+LAYER met5
+  TYPE ROUTING ;
+  DIRECTION HORIZONTAL ;
+  PITCH 3.3 ;
+  MINWIDTH 1.600000 ;
+  WIDTH 1.600000 ;
+  AREA 2.560000 ;
+  SPACINGTABLE
+    PARALLELRUNLENGTH 0
+    WIDTH 0 1.600000 ;
+  THICKNESS 1.200000 ;
+  EDGECAPACITANCE 4.96E-6 ;
+  CAPACITANCE CPERSQDIST 6.48E-6 ;
+  RESISTANCE RPERSQ 0.047 ;
+  DCCURRENTDENSITY AVERAGE 10.17 ; # mA/um Iavg_max at Tj = 90oC
+  ACCURRENTDENSITY RMS 22.34 ; # mA/um Irms_max at Tj = 90oC
+  ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
+END met5
+
+######  completed routing layers - metal and via #####
+
+### Routing via cells section   ###
+# Plus via rule, metals are along the prefered direction
+VIA L1M1_PR DEFAULT
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ LAYER li1 ;
+ RECT -0.085 -0.165 0.085 0.165 ;
+ LAYER met1 ;
+ RECT -0.16 -0.13 0.16 0.13 ;
+END L1M1_PR
+
+VIARULE L1M1_PR GENERATE
+ LAYER li1 ;
+ ENCLOSURE 0.000 0.080 ;
+ LAYER met1 ;
+ ENCLOSURE 0.030 0.060 ;
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ SPACING 0.360 BY 0.360 ;
+END L1M1_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA L1M1_PR_R DEFAULT
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ LAYER li1 ;
+ RECT -0.165 -0.085 0.165 0.085 ;
+ LAYER met1 ;
+ RECT -0.13 -0.16 0.13 0.16 ;
+END L1M1_PR_R
+
+VIARULE L1M1_PR_R GENERATE
+ LAYER li1 ;
+ ENCLOSURE 0.000 0.080 ;
+ LAYER met1 ;
+ ENCLOSURE 0.030 0.060 ;
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ SPACING 0.360 BY 0.360 ;
+END L1M1_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA L1M1_PR_M DEFAULT
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ LAYER li1 ;
+ RECT -0.085 -0.165 0.085 0.165 ;
+ LAYER met1 ;
+ RECT -0.13 -0.16 0.13 0.16 ;
+END L1M1_PR_M
+
+VIARULE L1M1_PR_M GENERATE
+ LAYER li1 ;
+ ENCLOSURE 0.000 0.080 ;
+ LAYER met1 ;
+ ENCLOSURE 0.030 0.060 ;
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ SPACING 0.360 BY 0.360 ;
+END L1M1_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA L1M1_PR_MR DEFAULT
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ LAYER li1 ;
+ RECT -0.165 -0.085 0.165 0.085 ;
+ LAYER met1 ;
+ RECT -0.16 -0.13 0.16 0.13 ;
+END L1M1_PR_MR
+
+VIARULE L1M1_PR_MR GENERATE
+ LAYER li1 ;
+ ENCLOSURE 0.000 0.080 ;
+ LAYER met1 ;
+ ENCLOSURE 0.030 0.060 ;
+ LAYER mcon ;
+ RECT -0.085 -0.085 0.085 0.085 ;
+ SPACING 0.360 BY 0.360 ;
+END L1M1_PR_MR
+
+# Centered via rule, we really do not want to use it
+# VIA L1M1_PR_C DEFAULT
+#   LAYER mcon ;
+#   RECT -0.085000 -0.085000 0.085000 0.085000 ;
+#   LAYER li1 ;
+#   RECT -0.085000 -0.085000 0.085000 0.085000 ;
+#   LAYER met1 ;
+#   RECT -0.145000 -0.145000 0.145000 0.145000 ;
+# END L1M1_PR_C
+
+# VIARULE L1M1_PR_C GENERATE
+#   LAYER li1 ;
+#   ENCLOSURE 0.000000 0.000000 ;
+#   LAYER met1 ;
+#   ENCLOSURE 0.060000 0.060000 ;
+#   LAYER mcon ;
+#   RECT -0.085000 -0.085000 0.085000 0.085000 ;
+#   SPACING 0.360000 BY 0.360000 ;
+# END L1M1_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M1M2_PR DEFAULT
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ LAYER met1 ;
+ RECT -0.16 -0.13 0.16 0.13 ;
+ LAYER met2 ;
+ RECT -0.13 -0.16 0.13 0.16 ;
+END M1M2_PR
+
+VIARULE M1M2_PR GENERATE
+ LAYER met1 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER met2 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ SPACING 0.320 BY 0.320 ;
+END M1M2_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M1M2_PR_R DEFAULT
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ LAYER met1 ;
+ RECT -0.13 -0.16 0.13 0.16 ;
+ LAYER met2 ;
+ RECT -0.16 -0.13 0.16 0.13 ;
+END M1M2_PR_R
+
+VIARULE M1M2_PR_R GENERATE
+ LAYER met1 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER met2 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ SPACING 0.320 BY 0.320 ;
+END M1M2_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M1M2_PR_M DEFAULT
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ LAYER met1 ;
+ RECT -0.16 -0.13 0.16 0.13 ;
+ LAYER met2 ;
+ RECT -0.16 -0.13 0.16 0.13 ;
+END M1M2_PR_M
+
+VIARULE M1M2_PR_M GENERATE
+ LAYER met1 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER met2 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ SPACING 0.320 BY 0.320 ;
+END M1M2_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M1M2_PR_MR DEFAULT
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ LAYER met1 ;
+ RECT -0.13 -0.16 0.13 0.16 ;
+ LAYER met2 ;
+ RECT -0.13 -0.16 0.13 0.16 ;
+END M1M2_PR_MR
+
+VIARULE M1M2_PR_MR GENERATE
+ LAYER met1 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER met2 ;
+ ENCLOSURE 0.055 0.085 ;
+ LAYER via1 ;
+ RECT -0.075 -0.075 0.075 0.075 ;
+ SPACING 0.320 BY 0.320 ;
+END M1M2_PR_MR
+
+# # Centered via rule, we really do not want to use it
+# VIA M1M2_PR_C DEFAULT
+#   LAYER via ;
+#   RECT -0.075000 -0.075000 0.075000 0.075000 ;
+#   LAYER met1 ;
+#   RECT -0.160000 -0.160000 0.160000 0.160000 ;
+#   LAYER met2 ;
+#   RECT -0.160000 -0.160000 0.160000 0.160000 ;
+# END M1M2_PR_C
+
+# VIARULE M1M2_PR_C GENERATE
+#   LAYER met1 ;
+#   ENCLOSURE 0.085000 0.085000 ;
+#   LAYER met2 ;
+#   ENCLOSURE 0.085000 0.085000 ;
+#   LAYER via ;
+#   RECT -0.075000 -0.075000 0.075000 0.075000 ;
+#   SPACING 0.320000 BY 0.320000 ;
+# END M1M2_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M2M3_PR DEFAULT
+ LAYER via2 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ LAYER met2 ;
+ RECT -0.14 -0.185 0.14 0.185 ;
+ LAYER met3 ;
+ RECT -0.165 -0.165 0.165 0.165 ;
+END M2M3_PR
+
+VIARULE M2M3_PR GENERATE
+ LAYER met2 ;
+ ENCLOSURE 0.040 0.085 ;
+ LAYER met3 ;
+ ENCLOSURE 0.065 0.065 ;
+ LAYER via2 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ SPACING 0.40 BY 0.40 ;
+END M2M3_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M2M3_PR_R DEFAULT
+ LAYER via2 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ LAYER met2 ;
+ RECT -0.185 -0.14 0.185 0.14 ;
+ LAYER met3 ;
+ RECT -0.165 -0.165 0.165 0.165 ;
+END M2M3_PR_R
+
+VIARULE M2M3_PR_R GENERATE
+ LAYER met2 ;
+ ENCLOSURE 0.040 0.085 ;
+ LAYER met3 ;
+ ENCLOSURE 0.065 0.065 ;
+ LAYER via2 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ SPACING 0.40 BY 0.40 ;
+END M2M3_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M2M3_PR_M DEFAULT
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met2 ;
+  RECT -0.140000 -0.185000 0.140000 0.185000 ;
+  LAYER met3 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M2M3_PR_M
+
+VIARULE M2M3_PR_M GENERATE
+  LAYER met2 ;
+  ENCLOSURE 0.040000 0.085000 ;
+  LAYER met3 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M2M3_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M2M3_PR_MR DEFAULT
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met2 ;
+  RECT -0.185000 -0.140000 0.185000 0.140000 ;
+  LAYER met3 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M2M3_PR_MR
+
+VIARULE M2M3_PR_MR GENERATE
+  LAYER met2 ;
+  ENCLOSURE 0.085000 0.040000 ;
+  LAYER met3 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via2 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M2M3_PR_MR
+
+# # Centered via rule, we really do not want to use it
+# VIA M2M3_PR_C DEFAULT
+#   LAYER via2 ;
+#   RECT -0.100000 -0.100000 0.100000 0.100000 ;
+#   LAYER met2 ;
+#   RECT -0.185000 -0.185000 0.185000 0.185000 ;
+#   LAYER met3 ;
+#   RECT -0.165000 -0.165000 0.165000 0.165000 ;
+# END M2M3_PR_C
+
+# VIARULE M2M3_PR_C GENERATE
+#   LAYER met2 ;
+#   ENCLOSURE 0.085000 0.085000 ;
+#   LAYER met3 ;
+#   ENCLOSURE 0.065000 0.065000 ;
+#   LAYER via2 ;
+#   RECT -0.100000 -0.100000 0.100000 0.100000 ;
+#   SPACING 0.400000 BY 0.400000 ;
+# END M2M3_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M3M4_PR DEFAULT
+ LAYER via3 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ LAYER met3 ;
+ RECT -0.19 -0.16 0.19 0.16 ;
+ LAYER met4 ;
+ RECT -0.165 -0.165 0.165 0.165 ;
+END M3M4_PR
+
+VIARULE M3M4_PR GENERATE
+ LAYER met3 ;
+ ENCLOSURE 0.06 0.09 ;
+ LAYER met4 ;
+ ENCLOSURE 0.065 0.065 ;
+ LAYER via3 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ SPACING 0.40 BY 0.40 ;
+END M3M4_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M3M4_PR_R DEFAULT
+ LAYER via3 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ LAYER met3 ;
+ RECT -0.16 -0.19 0.16 0.19 ;
+ LAYER met4 ;
+ RECT -0.165 -0.165 0.165 0.165 ;
+END M3M4_PR_R
+
+VIARULE M3M4_PR_R GENERATE
+ LAYER met3 ;
+ ENCLOSURE 0.06 0.09 ;
+ LAYER met4 ;
+ ENCLOSURE 0.065 0.065 ;
+ LAYER via3 ;
+ RECT -0.1 -0.1 0.1 0.1 ;
+ SPACING 0.40 BY 0.40 ;
+END M3M4_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M3M4_PR_M DEFAULT
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met3 ;
+  RECT -0.190000 -0.160000 0.190000 0.160000 ;
+  LAYER met4 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M3M4_PR_M
+
+VIARULE M3M4_PR_M GENERATE
+  LAYER met3 ;
+  ENCLOSURE 0.090000 0.060000 ;
+  LAYER met4 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M3M4_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M3M4_PR_MR DEFAULT
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  LAYER met3 ;
+  RECT -0.160000 -0.190000 0.160000 0.190000 ;
+  LAYER met4 ;
+  RECT -0.165000 -0.165000 0.165000 0.165000 ;
+END M3M4_PR_MR
+
+VIARULE M3M4_PR_MR GENERATE
+  LAYER met3 ;
+  ENCLOSURE 0.060000 0.090000 ;
+  LAYER met4 ;
+  ENCLOSURE 0.065000 0.065000 ;
+  LAYER via3 ;
+  RECT -0.100000 -0.100000 0.100000 0.100000 ;
+  SPACING 0.400000 BY 0.400000 ;
+END M3M4_PR_MR
+
+# # Centered via rule, we really do not want to use it
+# VIA M3M4_PR_C DEFAULT
+#   LAYER via3 ;
+#   RECT -0.100000 -0.100000 0.100000 0.100000 ;
+#   LAYER met3 ;
+#   RECT -0.190000 -0.190000 0.190000 0.190000 ;
+#   LAYER met4 ;
+#   RECT -0.165000 -0.165000 0.165000 0.165000 ;
+# END M3M4_PR_C
+
+# VIARULE M3M4_PR_C GENERATE
+#   LAYER met3 ;
+#   ENCLOSURE 0.090000 0.090000 ;
+#   LAYER met4 ;
+#   ENCLOSURE 0.065000 0.065000 ;
+#   LAYER via3 ;
+#   RECT -0.100000 -0.100000 0.100000 0.100000 ;
+#   SPACING 0.400000 BY 0.400000 ;
+# END M3M4_PR_C
+
+# Plus via rule, metals are along the prefered direction
+VIA M4M5_PR DEFAULT
+ LAYER via4 ;
+ RECT -0.4 -0.4 0.4 0.4 ;
+ LAYER met4 ;
+ RECT -0.59 -0.59 0.59 0.59 ;
+ LAYER met5 ;
+ RECT -0.71 -0.71 0.71 0.71 ;
+END M4M5_PR
+
+VIARULE M4M5_PR GENERATE
+ LAYER met4 ;
+ ENCLOSURE 0.190 0.190 ;
+ LAYER met5 ;
+ ENCLOSURE 0.310 0.310 ;
+ LAYER via4 ;
+ RECT -0.4 -0.4 0.4 0.4 ;
+ SPACING 1.60 BY 1.60 ;
+END M4M5_PR
+
+# Plus via rule, metals are along the non prefered direction
+VIA M4M5_PR_R DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR_R
+
+VIARULE M4M5_PR_R GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR_R
+
+# Minus via rule, lower layer metal is along prefered direction
+VIA M4M5_PR_M DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR_M
+
+VIARULE M4M5_PR_M GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR_M
+
+# Minus via rule, upper layer metal is along prefered direction
+VIA M4M5_PR_MR DEFAULT
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  LAYER met4 ;
+  RECT -0.590000 -0.590000 0.590000 0.590000 ;
+  LAYER met5 ;
+  RECT -0.710000 -0.710000 0.710000 0.710000 ;
+END M4M5_PR_MR
+
+VIARULE M4M5_PR_MR GENERATE
+  LAYER met4 ;
+  ENCLOSURE 0.190000 0.190000 ;
+  LAYER met5 ;
+  ENCLOSURE 0.310000 0.310000 ;
+  LAYER via4 ;
+  RECT -0.400000 -0.400000 0.400000 0.400000 ;
+  SPACING 1.600000 BY 1.600000 ;
+END M4M5_PR_MR
+
+# # Centered via rule, we really do not want to use it
+# VIA M4M5_PR_C DEFAULT
+#   LAYER via4 ;
+#   RECT -0.400000 -0.400000 0.400000 0.400000 ;
+#   LAYER met4 ;
+#   RECT -0.590000 -0.590000 0.590000 0.590000 ;
+#   LAYER met5 ;
+#   RECT -0.710000 -0.710000 0.710000 0.710000 ;
+# END M4M5_PR_C
+
+# VIARULE M4M5_PR_C GENERATE
+#   LAYER met4 ;
+#   ENCLOSURE 0.190000 0.190000 ;
+#   LAYER met5 ;
+#   ENCLOSURE 0.310000 0.310000 ;
+#   LAYER via4 ;
+#   RECT -0.400000 -0.400000 0.400000 0.400000 ;
+#   SPACING 1.600000 BY 1.600000 ;
+# END M4M5_PR_C
+
diff --git a/sky130/sky130.json b/sky130/sky130.json
new file mode 100644
index 0000000..bf54238
--- /dev/null
+++ b/sky130/sky130.json
@@ -0,0 +1,53 @@
+#define DESCRIPTION Skywater 0.13um CMOS, local interconntect + high-resistance poly
+#ifdef METAL5
+#define OPTION1 + 5 metal layer backend stack
+#endif (METAL5)
+#ifdef MIM
+#define OPTION2 + MiM caps
+#endif (MIM)
+#ifdef REDISTRIBUTION
+#define OPTION3 + redistribution layer
+#endif (REDISTRIBUTION)
+{
+    "foundry" : "SW",
+    "foundry-name" : "SkyWater",
+    "node" : "TECHNAME",
+    "feature-size" : "130nm",
+    "status" : "active",
+    "description" : "DESCRIPTION OPTION1 OPTION2 OPTION3",
+    "options" : [
+#ifdef METAL5
+#undef METAL5
+#ifdef MIM || REDISTRIBUTION
+        "METAL5",
+#else (!(MIM || REDISTRIBUTION))
+        "METAL5"
+#endif (!(MIM || REDISTRIBUTION))
+#endif (METAL5)
+#ifdef MIM
+#undef MIM
+#ifdef REDISTRIBUTION
+        "MIM",
+#else
+        "MIM"
+#endif (REDISTRIBUTION)
+#endif (MIM)
+#ifdef REDISTRIBUTION
+#undef REDISTRIBUTION
+        "REDISTRIBUTION"
+#endif (REDISTRIBUTION)
+    ],
+    "stdcells" : [
+	"sky130_fd_sc_hd",
+	"sky130_fd_sc_hdll",
+	"sky130_fd_sc_hs",
+	"sky130_fd_sc_hvl",
+	"sky130_fd_sc_lp",
+	"sky130_fd_sc_ls",
+	"sky130_fd_sc_ms",
+	"sky130_osu130"
+    ],
+    "iocells" : [
+        "sky130_fd_io"
+    ]
+}
diff --git a/sky130/sky130.lyp b/sky130/sky130.lyp
new file mode 100644
index 0000000..cf7ec0b
--- /dev/null
+++ b/sky130/sky130.lyp
@@ -0,0 +1,8241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>prBoundary.boundary - 235/4</name>
+  <source>235/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pwell.drawing - 64/44</name>
+  <source>64/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C39</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pwell.pin - 122/16</name>
+  <source>122/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pwell.label - 64/59</name>
+  <source>64/59@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pwell.res - 64/13</name>
+  <source>64/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pwell.cut - 64/14</name>
+  <source>64/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#96c8ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C39</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pwelliso.pin - 44/16</name>
+  <source>44/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pwelliso.label - 44/5</name>
+  <source>44/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>nwell.drawing - 64/20</name>
+  <source>64/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C2</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>nwell.net - 84/23</name>
+  <source>84/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>nwell.pin - 64/16</name>
+  <source>64/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>nwell.label - 64/5</name>
+  <source>64/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#c8ffc8</frame-color>
+  <fill-color>#c8ffc8</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C48</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>dnwell.drawing - 64/18</name>
+  <source>64/18@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>vhvi.drawing - 74/21</name>
+  <source>74/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ff00</frame-color>
+  <fill-color>#00ff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C35</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.drawing - 65/20</name>
+  <source>65/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ff00</frame-color>
+  <fill-color>#00ff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.res - 65/13</name>
+  <source>65/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ff00</frame-color>
+  <fill-color>#00ff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.cut - 65/14</name>
+  <source>65/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.pin - 65/16</name>
+  <source>65/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#c8ffc8</frame-color>
+  <fill-color>#c8ffc8</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.label - 65/6</name>
+  <source>65/6@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ff00</frame-color>
+  <fill-color>#00ff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.net - 65/23</name>
+  <source>65/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ff00</frame-color>
+  <fill-color>#00ff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.boundary - 65/4</name>
+  <source>65/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>diff.hv - 65/8</name>
+  <source>65/8@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C35</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>tap.drawing - 65/44</name>
+  <source>65/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>tap.pin - 65/48</name>
+  <source>65/48@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>tap.net - 65/41</name>
+  <source>65/41@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>tap.boundary - 65/60</name>
+  <source>65/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fff464</frame-color>
+  <fill-color>#fff464</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>tap.label - 65/5</name>
+  <source>65/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C23</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>psdm.drawing - 94/20</name>
+  <source>94/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C22</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>nsdm.drawing - 93/44</name>
+  <source>93/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C42</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.drawing - 66/20</name>
+  <source>66/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C39</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.pin - 66/16</name>
+  <source>66/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.res - 66/13</name>
+  <source>66/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.cut - 66/14</name>
+  <source>66/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.gate - 66/9</name>
+  <source>66/9@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffafaf</frame-color>
+  <fill-color>#ffafaf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.label - 66/5</name>
+  <source>66/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.boundary - 66/4</name>
+  <source>66/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.probe - 66/25</name>
+  <source>66/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.short - 66/15</name>
+  <source>66/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.net - 66/23</name>
+  <source>66/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>poly.model - 66/83</name>
+  <source>66/83@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C51</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ldntm.drawing - 11/44</name>
+  <source>11/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#96c8ff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>lvtn.drawing - 125/44</name>
+  <source>125/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>hvtp.drawing - 78/44</name>
+  <source>78/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>hvtr.drawing - 18/20</name>
+  <source>18/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C42</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>tunm.drawing - 80/20</name>
+  <source>80/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C24</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>licon1.drawing - 66/44</name>
+  <source>66/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>licon1.boundary - 66/60</name>
+  <source>66/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#c8ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>licon1.pin - 66/58</name>
+  <source>66/58@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>licon1.net - 66/41</name>
+  <source>66/41@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bf4026</frame-color>
+  <fill-color>#bf4026</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>npc.drawing - 95/20</name>
+  <source>95/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.drawing - 67/20</name>
+  <source>67/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bf4026</frame-color>
+  <fill-color>#bf4026</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C47</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.pin - 67/16</name>
+  <source>67/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.res - 67/13</name>
+  <source>67/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.cut - 67/14</name>
+  <source>67/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bf4026</frame-color>
+  <fill-color>#bf4026</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.label - 67/5</name>
+  <source>67/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C54</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.net - 67/23</name>
+  <source>67/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9e6ff</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.boundary - 67/4</name>
+  <source>67/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bf4026</frame-color>
+  <fill-color>#bf4026</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C54</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.blockage - 67/10</name>
+  <source>67/10@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.short - 67/15</name>
+  <source>67/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>li1.probe - 67/25</name>
+  <source>67/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>mcon.drawing - 67/44</name>
+  <source>67/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>mcon.boundary - 67/60</name>
+  <source>67/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>mcon.pin - 67/48</name>
+  <source>67/48@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>mcon.net - 67/41</name>
+  <source>67/41@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.drawing - 68/20</name>
+  <source>68/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.res - 68/13</name>
+  <source>68/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.cut - 68/14</name>
+  <source>68/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.pin - 68/16</name>
+  <source>68/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#96c8ff</frame-color>
+  <fill-color>#96c8ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.label - 68/5</name>
+  <source>68/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.net - 68/23</name>
+  <source>68/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.boundary - 68/4</name>
+  <source>68/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C54</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.blockage - 68/10</name>
+  <source>68/10@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.short - 68/15</name>
+  <source>68/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.probe - 68/25</name>
+  <source>68/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C26</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option1 - 68/32</name>
+  <source>68/32@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C27</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option2 - 68/33</name>
+  <source>68/33@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C28</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option3 - 68/34</name>
+  <source>68/34@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C29</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option4 - 68/35</name>
+  <source>68/35@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C30</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option5 - 68/36</name>
+  <source>68/36@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C31</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option6 - 68/37</name>
+  <source>68/37@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C32</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option7 - 68/38</name>
+  <source>68/38@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C33</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.option8 - 68/39</name>
+  <source>68/39@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via.drawing - 68/44</name>
+  <source>68/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via.boundary - 68/60</name>
+  <source>68/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via.net - 68/41</name>
+  <source>68/41@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ae7dff</frame-color>
+  <fill-color>#ae7dff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via.pin - 68/58</name>
+  <source>68/58@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C38</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.drawing - 69/20</name>
+  <source>69/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.res - 69/13</name>
+  <source>69/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.cut - 69/14</name>
+  <source>69/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C46</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.pin - 69/16</name>
+  <source>69/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffc8ff</frame-color>
+  <fill-color>#ffc8ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.label - 69/5</name>
+  <source>69/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.net - 69/23</name>
+  <source>69/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.boundary - 69/4</name>
+  <source>69/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C54</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.blockage - 69/10</name>
+  <source>69/10@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.short - 69/15</name>
+  <source>69/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.probe - 69/25</name>
+  <source>69/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C26</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option1 - 69/32</name>
+  <source>69/32@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C27</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option2 - 69/33</name>
+  <source>69/33@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C28</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option3 - 69/34</name>
+  <source>69/34@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C29</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option4 - 69/35</name>
+  <source>69/35@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C30</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option5 - 69/36</name>
+  <source>69/36@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C31</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option6 - 69/37</name>
+  <source>69/37@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C32</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option7 - 69/38</name>
+  <source>69/38@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C33</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.option8 - 69/39</name>
+  <source>69/39@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via2.drawing - 69/44</name>
+  <source>69/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via2.boundary - 69/60</name>
+  <source>69/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via2.pin - 69/58</name>
+  <source>69/58@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via2.net - 69/41</name>
+  <source>69/41@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C50</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.drawing - 70/20</name>
+  <source>70/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.res - 70/13</name>
+  <source>70/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.cut - 70/14</name>
+  <source>70/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C35</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.pin - 70/16</name>
+  <source>70/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#c8ffff</frame-color>
+  <fill-color>#c8ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.label - 70/5</name>
+  <source>70/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.net - 70/23</name>
+  <source>70/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.boundary - 70/4</name>
+  <source>70/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C54</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.blockage - 70/10</name>
+  <source>70/10@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.short - 70/15</name>
+  <source>70/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.fuse - 70/17</name>
+  <source>70/17@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.probe - 70/25</name>
+  <source>70/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C26</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option1 - 70/32</name>
+  <source>70/32@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C27</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option2 - 70/33</name>
+  <source>70/33@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C28</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option3 - 70/34</name>
+  <source>70/34@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C29</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option4 - 70/35</name>
+  <source>70/35@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C30</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option5 - 70/36</name>
+  <source>70/36@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C31</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option6 - 70/37</name>
+  <source>70/37@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C32</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option7 - 70/38</name>
+  <source>70/38@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C33</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.option8 - 70/39</name>
+  <source>70/39@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via3.drawing - 70/44</name>
+  <source>70/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via3.boundary - 70/60</name>
+  <source>70/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via3.pin - 70/48</name>
+  <source>70/48@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via3.net - 70/41</name>
+  <source>70/41@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.drawing - 71/20</name>
+  <source>71/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.res - 71/13</name>
+  <source>71/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.cut - 71/14</name>
+  <source>71/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C35</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.pin - 71/16</name>
+  <source>71/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ae7dff</frame-color>
+  <fill-color>#ae7dff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.label - 71/5</name>
+  <source>71/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.net - 71/23</name>
+  <source>71/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.boundary - 71/4</name>
+  <source>71/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C54</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.blockage - 71/10</name>
+  <source>71/10@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.short - 71/15</name>
+  <source>71/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.fuse - 71/17</name>
+  <source>71/17@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.probe - 71/25</name>
+  <source>71/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C26</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option1 - 71/32</name>
+  <source>71/32@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C27</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option2 - 71/33</name>
+  <source>71/33@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C28</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option3 - 71/34</name>
+  <source>71/34@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C29</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option4 - 71/35</name>
+  <source>71/35@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C30</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option5 - 71/36</name>
+  <source>71/36@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C31</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option6 - 71/37</name>
+  <source>71/37@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C32</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option7 - 71/38</name>
+  <source>71/38@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C33</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.option8 - 71/39</name>
+  <source>71/39@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via4.drawing - 71/44</name>
+  <source>71/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via4.boundary - 71/60</name>
+  <source>71/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C6</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via4.pin - 71/48</name>
+  <source>71/48@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>via4.net - 71/41</name>
+  <source>71/41@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C43</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.drawing - 72/20</name>
+  <source>72/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.res - 72/13</name>
+  <source>72/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.cut - 72/14</name>
+  <source>72/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C35</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.pin - 72/16</name>
+  <source>72/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fff464</frame-color>
+  <fill-color>#fff464</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.label - 72/5</name>
+  <source>72/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C5</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.net - 72/23</name>
+  <source>72/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.boundary - 72/4</name>
+  <source>72/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C54</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.blockage - 72/10</name>
+  <source>72/10@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.short - 72/15</name>
+  <source>72/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.fuse - 72/17</name>
+  <source>72/17@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.probe - 72/25</name>
+  <source>72/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C26</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option1 - 72/32</name>
+  <source>72/32@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C27</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option2 - 72/33</name>
+  <source>72/33@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C28</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option3 - 72/34</name>
+  <source>72/34@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C29</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option4 - 72/35</name>
+  <source>72/35@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C30</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option5 - 72/36</name>
+  <source>72/36@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C31</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option6 - 72/37</name>
+  <source>72/37@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C32</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option7 - 72/38</name>
+  <source>72/38@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C33</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.option8 - 72/39</name>
+  <source>72/39@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C51</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>nsm.drawing - 61/20</name>
+  <source>61/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pad.drawing - 76/20</name>
+  <source>76/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9e6ff</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pad.label - 76/5</name>
+  <source>76/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9e6ff</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C35</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pad.pin - 76/16</name>
+  <source>76/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pnp.drawing - 82/44</name>
+  <source>82/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffc8ff</frame-color>
+  <fill-color>#ffc8ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pnp.label - 82/59</name>
+  <source>82/59@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>npn.drawing - 82/20</name>
+  <source>82/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#c8ffff</frame-color>
+  <fill-color>#c8ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>npn.label - 82/5</name>
+  <source>82/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#96c8ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C39</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rpm.drawing - 86/20</name>
+  <source>86/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C4</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>hvi.drawing - 75/20</name>
+  <source>75/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffb232</frame-color>
+  <fill-color>#ffb232</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>capacitor.drawing - 82/64</name>
+  <source>82/64@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ncm.drawing - 92/44</name>
+  <source>92/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cncm.drawing - 96/44</name>
+  <source>96/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cncm.mask - 17/0</name>
+  <source>17/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C1</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pmm.drawing - 85/44</name>
+  <source>85/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bf4026</frame-color>
+  <fill-color>#bf4026</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C41</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>pmm2.drawing - 77/20</name>
+  <source>77/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C48</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.drawing - 74/20</name>
+  <source>74/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C35</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.pin - 74/16</name>
+  <source>74/16@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff6464</frame-color>
+  <fill-color>#ff6464</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.label - 74/5</name>
+  <source>74/5@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.res - 74/13</name>
+  <source>74/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.cut - 74/14</name>
+  <source>74/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C37</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.short - 74/15</name>
+  <source>74/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C26</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option1 - 89/32</name>
+  <source>89/32@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C27</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option2 - 89/33</name>
+  <source>89/33@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C28</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option3 - 89/34</name>
+  <source>89/34@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C29</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option4 - 89/35</name>
+  <source>89/35@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C30</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option5 - 89/36</name>
+  <source>89/36@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C31</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option6 - 89/37</name>
+  <source>89/37@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C32</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option7 - 89/38</name>
+  <source>89/38@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C33</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.option8 - 89/39</name>
+  <source>89/39@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ubm.drawing - 127/21</name>
+  <source>127/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>bump.drawing - 127/22</name>
+  <source>127/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>inductor.drawing - 82/24</name>
+  <source>82/24@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fff464</frame-color>
+  <fill-color>#fff464</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>inductor.label - 82/25</name>
+  <source>82/25@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C26</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>inductor.term1 - 82/26</name>
+  <source>82/26@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C27</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>inductor.term2 - 82/27</name>
+  <source>82/27@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C28</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>inductor.term3 - 82/28</name>
+  <source>82/28@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cfom.drawing - 22/20</name>
+  <source>22/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cfom.mask - 23/0</name>
+  <source>23/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cfom.maskAdd - 22/21</name>
+  <source>22/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cfom.maskDrop - 22/22</name>
+  <source>22/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cfom.waffleDrop - 22/24</name>
+  <source>22/24@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>fom.dummy - 22/23</name>
+  <source>22/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnwm.drawing - 109/44</name>
+  <source>109/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnwm.mask - 21/0</name>
+  <source>21/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnwm.maskAdd - 109/43</name>
+  <source>109/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnwm.maskDrop - 109/42</name>
+  <source>109/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cdnm.drawing - 110/20</name>
+  <source>110/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C17</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cdnm.mask - 48/0</name>
+  <source>48/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cdnm.maskAdd - 110/21</name>
+  <source>110/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cdnm.maskDrop - 110/22</name>
+  <source>110/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#96c8ff</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvtnm.drawing - 25/44</name>
+  <source>25/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#96c8ff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvtnm.mask - 25/0</name>
+  <source>25/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#96c8ff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvtnm.maskAdd - 25/43</name>
+  <source>25/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#96c8ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvtnm.maskDrop - 25/42</name>
+  <source>25/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtpm.drawing - 88/44</name>
+  <source>88/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtpm.mask - 97/0</name>
+  <source>97/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtpm.maskAdd - 97/43</name>
+  <source>97/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtpm.maskDrop - 97/42</name>
+  <source>97/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtrm.drawing - 98/44</name>
+  <source>98/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtrm.mask - 98/0</name>
+  <source>98/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtrm.maskAdd - 98/43</name>
+  <source>98/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvtrm.maskDrop - 98/42</name>
+  <source>98/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ctunm.drawing - 96/20</name>
+  <source>96/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ctunm.mask - 20/0</name>
+  <source>20/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ctunm.maskAdd - 96/21</name>
+  <source>96/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ctunm.maskDrop - 96/22</name>
+  <source>96/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>conom.drawing - 87/44</name>
+  <source>87/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>conom.mask - 88/0</name>
+  <source>88/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>conom.maskAdd - 87/43</name>
+  <source>87/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>conom.maskDrop - 87/42</name>
+  <source>87/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnsdm.drawing - 29/20</name>
+  <source>29/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnsdm.mask - 30/0</name>
+  <source>30/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnsdm.maskAdd - 29/21</name>
+  <source>29/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnsdm.maskDrop - 29/22</name>
+  <source>29/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpsdm.drawing - 31/20</name>
+  <source>31/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpsdm.mask - 32/0</name>
+  <source>32/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpsdm.maskAdd - 31/21</name>
+  <source>31/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpsdm.maskDrop - 31/22</name>
+  <source>31/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cntm.drawing - 26/20</name>
+  <source>26/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cntm.mask - 27/0</name>
+  <source>27/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cntm.maskAdd - 26/21</name>
+  <source>26/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cntm.maskDrop - 26/22</name>
+  <source>26/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>hvntm.drawing - 125/20</name>
+  <source>125/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fff5e6</frame-color>
+  <fill-color>#fff5e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvntm.drawing - 38/20</name>
+  <source>38/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fff5e6</frame-color>
+  <fill-color>#fff5e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvntm.mask - 39/0</name>
+  <source>39/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fff5e6</frame-color>
+  <fill-color>#fff5e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvntm.maskAdd - 38/21</name>
+  <source>38/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fff5e6</frame-color>
+  <fill-color>#fff5e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>chvntm.maskDrop - 38/22</name>
+  <source>38/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cldntm.drawing - 11/20</name>
+  <source>11/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cldntm.mask - 11/0</name>
+  <source>11/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvom.drawing - 45/20</name>
+  <source>45/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C17</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvom.mask - 46/0</name>
+  <source>46/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvom.maskAdd - 45/21</name>
+  <source>45/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clvom.maskDrop - 45/22</name>
+  <source>45/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cp1m.drawing - 33/44</name>
+  <source>33/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cp1m.mask - 28/0</name>
+  <source>28/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cp1m.maskAdd - 33/43</name>
+  <source>33/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cp1m.waffleDrop - 33/24</name>
+  <source>33/24@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cp1m.maskDrop - 33/42</name>
+  <source>33/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cli1m.drawing - 115/44</name>
+  <source>115/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cli1m.mask - 56/0</name>
+  <source>56/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cli1m.maskAdd - 115/43</name>
+  <source>115/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cli1m.maskDrop - 115/42</name>
+  <source>115/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clicm1.drawing - 106/44</name>
+  <source>106/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9e6ff</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clicm1.mask - 43/0</name>
+  <source>43/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9e6ff</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clicm1.maskAdd - 106/43</name>
+  <source>106/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9e6ff</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>clicm1.maskDrop - 106/42</name>
+  <source>106/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm1.drawing - 62/20</name>
+  <source>62/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm1.mask - 36/0</name>
+  <source>36/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm1.maskAdd - 62/21</name>
+  <source>62/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm1.maskDrop - 62/22</name>
+  <source>62/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm1.waffleDrop - 62/24</name>
+  <source>62/24@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam.drawing - 105/20</name>
+  <source>105/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C17</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam.mask - 40/0</name>
+  <source>40/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam.maskAdd - 105/21</name>
+  <source>105/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam.maskDrop - 105/22</name>
+  <source>105/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm2.drawing - 105/44</name>
+  <source>105/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm2.mask - 41/0</name>
+  <source>41/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm2.maskAdd - 105/43</name>
+  <source>105/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm2.maskDrop - 105/42</name>
+  <source>105/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm2.waffleDrop - 105/52</name>
+  <source>105/52@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam2.drawing - 108/20</name>
+  <source>108/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C17</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam2.mask - 44/0</name>
+  <source>44/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam2.maskAdd - 108/21</name>
+  <source>108/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam2.maskDrop - 108/22</name>
+  <source>108/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm3.drawing - 107/20</name>
+  <source>107/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm3.mask - 34/0</name>
+  <source>34/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm3.maskAdd - 107/21</name>
+  <source>107/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm3.maskDrop - 107/22</name>
+  <source>107/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#5e00e6</frame-color>
+  <fill-color>#5e00e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm3.waffleDrop - 107/24</name>
+  <source>107/24@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnpc.drawing - 44/20</name>
+  <source>44/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C40</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnpc.mask - 49/0</name>
+  <source>49/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnpc.maskAdd - 44/43</name>
+  <source>44/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnpc.maskDrop - 44/42</name>
+  <source>44/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam3.drawing - 112/20</name>
+  <source>112/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C17</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam3.mask - 50/0</name>
+  <source>50/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam3.maskAdd - 112/21</name>
+  <source>112/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#268c6b</frame-color>
+  <fill-color>#268c6b</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam3.maskDrop - 112/22</name>
+  <source>112/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cnsm.mask - 22/0</name>
+  <source>22/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpdm.drawing - 104/44</name>
+  <source>104/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpdm.mask - 37/0</name>
+  <source>37/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpdm.maskAdd - 104/43</name>
+  <source>104/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpdm.maskDrop - 104/42</name>
+  <source>104/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpmm.drawing - 91/44</name>
+  <source>91/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpbo.mask - 99/0</name>
+  <source>99/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm4.mask - 51/0</name>
+  <source>51/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm4.maskAdd - 112/43</name>
+  <source>112/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C11</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm4.maskDrop - 112/42</name>
+  <source>112/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm4.waffleDrop - 112/4</name>
+  <source>112/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam4.drawing - 117/20</name>
+  <source>117/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C17</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam4.mask - 58/0</name>
+  <source>58/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam4.maskAdd - 117/21</name>
+  <source>117/21@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cviam4.maskDrop - 117/22</name>
+  <source>117/22@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C13</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm5.mask - 59/0</name>
+  <source>59/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>I1</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cmm5.waffleDrop - 117/4</name>
+  <source>117/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>target.drawing - 76/44</name>
+  <source>76/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cctm1.drawing - 101/44</name>
+  <source>101/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C17</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cctm1.mask - 35/0</name>
+  <source>35/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cctm1.maskAdd - 101/43</name>
+  <source>101/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cctm1.maskDrop - 101/42</name>
+  <source>101/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>crpm.drawing - 53/44</name>
+  <source>53/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>crpm.mask - 96/0</name>
+  <source>96/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C14</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>crpm.maskAdd - 53/43</name>
+  <source>53/43@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C3</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>crpm.maskDrop - 53/42</name>
+  <source>53/42@1</source>
+ </properties>
+ <properties>
+  <frame-color>#e61f0d</frame-color>
+  <fill-color>#e61f0d</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C48</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>ccu1m.mask - 93/0</name>
+  <source>93/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bf4026</frame-color>
+  <fill-color>#bf4026</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C41</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cpmm2.mask - 94/0</name>
+  <source>94/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ccccd9</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cubm.mask - 100/0</name>
+  <source>100/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>cbump.mask - 101/0</name>
+  <source>101/0@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00bfff</frame-color>
+  <fill-color>#00bfff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>overlap.drawing - 90/20</name>
+  <source>90/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff7f50</frame-color>
+  <fill-color>#ff7f50</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>overlap.boundary - 90/4</name>
+  <source>90/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.lowTapDensity - 81/14</name>
+  <source>81/14@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.notCritSide - 81/15</name>
+  <source>81/15@1</source>
+ </properties>
+ <properties>
+  <frame-color>#adff2f</frame-color>
+  <fill-color>#adff2f</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C2</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.injection - 81/17</name>
+  <source>81/17@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bebed8</frame-color>
+  <fill-color>#bebed8</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C2</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.rfdiode - 81/125</name>
+  <source>81/125@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.seal - 81/1</name>
+  <source>81/1@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9e6ff</frame-color>
+  <fill-color>#d9e6ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.core - 81/2</name>
+  <source>81/2@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.frame - 81/3</name>
+  <source>81/3@1</source>
+ </properties>
+ <properties>
+  <frame-color>#d9cc00</frame-color>
+  <fill-color>#d9cc00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.esd - 81/19</name>
+  <source>81/19@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.dieCut - 81/11</name>
+  <source>81/11@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ff00</frame-color>
+  <fill-color>#00ff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.moduleCut - 81/10</name>
+  <source>81/10@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffff</frame-color>
+  <fill-color>#00ffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.frameRect - 81/12</name>
+  <source>81/12@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#ccccd9</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C23</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.substrateCut - 81/53</name>
+  <source>81/53@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.diode - 81/23</name>
+  <source>81/23@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#ff00ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.standardc - 81/4</name>
+  <source>81/4@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C5</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.deadZon - 81/50</name>
+  <source>81/50@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff8000</frame-color>
+  <fill-color>#ff8000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C5</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.critCorner - 81/51</name>
+  <source>81/51@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C5</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.critSid - 81/52</name>
+  <source>81/52@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#c8ffc8</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.opcDrop - 81/54</name>
+  <source>81/54@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00bfff</frame-color>
+  <fill-color>#00ffe7</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C1</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.waffleWindow - 81/13</name>
+  <source>81/13@1</source>
+ </properties>
+ <properties>
+  <frame-color>#daa520</frame-color>
+  <fill-color>#daa520</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.extendedDrain - 81/57</name>
+  <source>81/57@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffbff2</frame-color>
+  <fill-color>#ffbff2</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.lvNative - 81/60</name>
+  <source>81/60@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.photo - 81/81</name>
+  <source>81/81@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff00ff</frame-color>
+  <fill-color>#00ff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.etest - 81/101</name>
+  <source>81/101@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.hvnwell - 81/63</name>
+  <source>81/63@1</source>
+ </properties>
+ <properties>
+  <frame-color>#9900e6</frame-color>
+  <fill-color>#9900e6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.rdlprobepad - 81/27</name>
+  <source>81/27@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00bfff</frame-color>
+  <fill-color>#00bfff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.sigPadDiff - 81/6</name>
+  <source>81/6@1</source>
+ </properties>
+ <properties>
+  <frame-color>#c8ffc8</frame-color>
+  <fill-color>#c8ffc8</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.sigPadWell - 81/7</name>
+  <source>81/7@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff7f50</frame-color>
+  <fill-color>#ff7f50</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.sigPadMetNtr - 81/8</name>
+  <source>81/8@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff6464</frame-color>
+  <fill-color>#ff6464</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C7</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>3</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>areaid.analog - 81/79</name>
+  <source>81/79@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>prune.drawing - 84/44</name>
+  <source>84/44@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C0</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>padCenter.drawing - 81/20</name>
+  <source>81/20@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.psa1 - 68/88</name>
+  <source>68/88@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C38</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.psa1 - 69/88</name>
+  <source>69/88@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C50</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.psa1 - 70/88</name>
+  <source>70/88@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.psa1 - 71/88</name>
+  <source>71/88@1</source>
+ </properties>
+ <properties>
+  <frame-color>#8c8ca6</frame-color>
+  <fill-color>#8c8ca6</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C43</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.psa1 - 72/88</name>
+  <source>72/88@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffe7</frame-color>
+  <fill-color>#00ffe7</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.psa2 - 68/89</name>
+  <source>68/89@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffe7</frame-color>
+  <fill-color>#00ffe7</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C38</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.psa2 - 69/89</name>
+  <source>69/89@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffe7</frame-color>
+  <fill-color>#00ffe7</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C50</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.psa2 - 70/89</name>
+  <source>70/89@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffe7</frame-color>
+  <fill-color>#00ffe7</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.psa2 - 71/89</name>
+  <source>71/89@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00ffe7</frame-color>
+  <fill-color>#00ffe7</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C43</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.psa2 - 72/89</name>
+  <source>72/89@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.psa3 - 68/90</name>
+  <source>68/90@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C38</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.psa3 - 69/90</name>
+  <source>69/90@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C50</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.psa3 - 70/90</name>
+  <source>70/90@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.psa3 - 71/90</name>
+  <source>71/90@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffcc</frame-color>
+  <fill-color>#ffffcc</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C43</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.psa3 - 72/90</name>
+  <source>72/90@1</source>
+ </properties>
+ <properties>
+  <frame-color>#802626</frame-color>
+  <fill-color>#802626</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.psa4 - 68/91</name>
+  <source>68/91@1</source>
+ </properties>
+ <properties>
+  <frame-color>#802626</frame-color>
+  <fill-color>#802626</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C38</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.psa4 - 69/91</name>
+  <source>69/91@1</source>
+ </properties>
+ <properties>
+  <frame-color>#802626</frame-color>
+  <fill-color>#802626</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C50</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.psa4 - 70/91</name>
+  <source>70/91@1</source>
+ </properties>
+ <properties>
+  <frame-color>#802626</frame-color>
+  <fill-color>#802626</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.psa4 - 71/91</name>
+  <source>71/91@1</source>
+ </properties>
+ <properties>
+  <frame-color>#802626</frame-color>
+  <fill-color>#802626</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C43</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.psa4 - 72/91</name>
+  <source>72/91@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.psa5 - 68/92</name>
+  <source>68/92@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C38</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.psa5 - 69/92</name>
+  <source>69/92@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C50</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.psa5 - 70/92</name>
+  <source>70/92@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.psa5 - 71/92</name>
+  <source>71/92@1</source>
+ </properties>
+ <properties>
+  <frame-color>#333399</frame-color>
+  <fill-color>#333399</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C43</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.psa5 - 72/92</name>
+  <source>72/92@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fa8072</frame-color>
+  <fill-color>#fa8072</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C7</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met1.psa6 - 68/93</name>
+  <source>68/93@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fa8072</frame-color>
+  <fill-color>#fa8072</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C38</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met2.psa6 - 69/93</name>
+  <source>69/93@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fa8072</frame-color>
+  <fill-color>#fa8072</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C50</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met3.psa6 - 70/93</name>
+  <source>70/93@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fa8072</frame-color>
+  <fill-color>#fa8072</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C15</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met4.psa6 - 71/93</name>
+  <source>71/93@1</source>
+ </properties>
+ <properties>
+  <frame-color>#fa8072</frame-color>
+  <fill-color>#fa8072</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C43</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>met5.psa6 - 72/93</name>
+  <source>72/93@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ff0000</frame-color>
+  <fill-color>#ff0000</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C10</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.psa1 - 74/88</name>
+  <source>74/88@1</source>
+ </properties>
+ <properties>
+  <frame-color>#0000ff</frame-color>
+  <fill-color>#0000ff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C10</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.psa2 - 74/89</name>
+  <source>74/89@1</source>
+ </properties>
+ <properties>
+  <frame-color>#00cc66</frame-color>
+  <fill-color>#00cc66</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C10</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.psa3 - 74/90</name>
+  <source>74/90@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffffff</frame-color>
+  <fill-color>#ffffff</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C10</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.psa4 - 74/91</name>
+  <source>74/91@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffff00</frame-color>
+  <fill-color>#ffff00</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C10</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.psa5 - 74/92</name>
+  <source>74/92@1</source>
+ </properties>
+ <properties>
+  <frame-color>#bf4026</frame-color>
+  <fill-color>#bf4026</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C10</dither-pattern>
+  <line-style>C0</line-style>
+  <valid>true</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>rdl.psa6 - 74/93</name>
+  <source>74/93@1</source>
+ </properties>
+ <properties>
+  <frame-color>#ffe6bf</frame-color>
+  <fill-color>#ffe6bf</fill-color>
+  <frame-brightness>0</frame-brightness>
+  <fill-brightness>0</fill-brightness>
+  <dither-pattern>C21</dither-pattern>
+  <line-style>C1</line-style>
+  <valid>false</valid>
+  <visible>true</visible>
+  <transparent>false</transparent>
+  <width>1</width>
+  <marked>false</marked>
+  <xfill>false</xfill>
+  <animation>0</animation>
+  <name>blanking.drawing - 124/40</name>
+  <source>124/40@1</source>
+ </properties>
+ <name/>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>1</order>
+  <name>blank</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+   <line>****************</line>
+  </pattern>
+  <order>2</order>
+  <name>solid</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+  </pattern>
+  <order>3</order>
+  <name>dots</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>****************</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>****************</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>****************</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>****************</line>
+  </pattern>
+  <order>4</order>
+  <name>hLine</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+   <line>..*...*...*...*.</line>
+  </pattern>
+  <order>5</order>
+  <name>vLine</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+  </pattern>
+  <order>6</order>
+  <name>cross</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>****************</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>****************</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>****************</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>****************</line>
+  </pattern>
+  <order>7</order>
+  <name>grid</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+  </pattern>
+  <order>8</order>
+  <name>slash</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*...*...*...*...</line>
+   <line>.*...*...*...*..</line>
+   <line>..*...*...*...*.</line>
+   <line>...*...*...*...*</line>
+   <line>*...*...*...*...</line>
+   <line>.*...*...*...*..</line>
+   <line>..*...*...*...*.</line>
+   <line>...*...*...*...*</line>
+   <line>*...*...*...*...</line>
+   <line>.*...*...*...*..</line>
+   <line>..*...*...*...*.</line>
+   <line>...*...*...*...*</line>
+   <line>*...*...*...*...</line>
+   <line>.*...*...*...*..</line>
+   <line>..*...*...*...*.</line>
+   <line>...*...*...*...*</line>
+  </pattern>
+  <order>9</order>
+  <name>backSlash</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>**......**......</line>
+   <line>..*.......*.....</line>
+   <line>...**......**...</line>
+   <line>.....*.......*..</line>
+   <line>......**......**</line>
+   <line>*.......*.......</line>
+   <line>.**......**.....</line>
+   <line>...*.......*....</line>
+   <line>....**......**..</line>
+   <line>......*.......*.</line>
+   <line>*......**......*</line>
+   <line>.*.......*......</line>
+   <line>..**......**....</line>
+   <line>....*.......*...</line>
+   <line>.....**......**.</line>
+   <line>.......*.......*</line>
+  </pattern>
+  <order>10</order>
+  <name>hZigZag</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*....*....*.....</line>
+   <line>*.....*....*....</line>
+   <line>.*....*.....*...</line>
+   <line>..*....*....*...</line>
+   <line>..*.....*....*..</line>
+   <line>...*....*.....*.</line>
+   <line>....*....*....*.</line>
+   <line>....*.....*....*</line>
+   <line>*....*....*.....</line>
+   <line>*.....*....*....</line>
+   <line>.*....*.....*...</line>
+   <line>..*....*....*...</line>
+   <line>..*.....*....*..</line>
+   <line>...*....*.....*.</line>
+   <line>....*....*....*.</line>
+   <line>....*.....*....*</line>
+  </pattern>
+  <order>11</order>
+  <name>vZigZag</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>...*****...*****</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>****...*****...*</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>...*****...*****</line>
+   <line>...*...*...*...*</line>
+   <line>...*...*...*...*</line>
+   <line>****...*****...*</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>12</order>
+  <name>hCurb</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+   <line>..****....****..</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..****....****..</line>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+   <line>..****....****..</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..****....****..</line>
+  </pattern>
+  <order>13</order>
+  <name>vCurb</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>****************</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>****************</line>
+   <line>......*.......*.</line>
+   <line>......*.......*.</line>
+   <line>......*.......*.</line>
+   <line>****************</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>****************</line>
+   <line>......*.......*.</line>
+   <line>......*.......*.</line>
+   <line>......*.......*.</line>
+  </pattern>
+  <order>14</order>
+  <name>brick</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>*****...*****...</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>..*.......*.....</line>
+   <line>................</line>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+   <line>...*****...*****</line>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+   <line>.....*.......*..</line>
+  </pattern>
+  <order>15</order>
+  <name>dagger</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>..*.............</line>
+   <line>..*.............</line>
+   <line>..*.............</line>
+   <line>*****...........</line>
+   <line>..*.............</line>
+   <line>..*.............</line>
+   <line>..*.............</line>
+   <line>................</line>
+   <line>.............*..</line>
+   <line>.............*..</line>
+   <line>.............*..</line>
+   <line>...........*****</line>
+   <line>.............*..</line>
+   <line>.............*..</line>
+   <line>.............*..</line>
+  </pattern>
+  <order>16</order>
+  <name>sparseDagger</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>..........*.....</line>
+   <line>..........*.....</line>
+   <line>..........*.....</line>
+   <line>........*****...</line>
+   <line>..........*.....</line>
+   <line>..........*.....</line>
+   <line>..........*.....</line>
+   <line>................</line>
+   <line>.....*..........</line>
+   <line>.....*..........</line>
+   <line>.....*..........</line>
+   <line>...*****........</line>
+   <line>.....*..........</line>
+   <line>.....*..........</line>
+   <line>.....*..........</line>
+  </pattern>
+  <order>17</order>
+  <name>sparseDagger2</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>....*...........</line>
+   <line>...*.*..........</line>
+   <line>..*...*.........</line>
+   <line>.*.....*........</line>
+   <line>*********.......</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>...........*....</line>
+   <line>..........*.*...</line>
+   <line>.........*...*..</line>
+   <line>........*.....*.</line>
+   <line>.......*********</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>18</order>
+  <name>triangle</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*...*...*...*...</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+  </pattern>
+  <order>19</order>
+  <name>x</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>.*.....*.....*..</line>
+   <line>..*...**....*...</line>
+   <line>...*.*.*...*....</line>
+   <line>....*..*..*.....</line>
+   <line>.....*.*.*......</line>
+   <line>......***.......</line>
+   <line>.......*........</line>
+   <line>......***.......</line>
+   <line>.....*.*.*......</line>
+   <line>....*..*..*.....</line>
+   <line>...*...*...*....</line>
+   <line>..*....*....*...</line>
+   <line>.*..*******..*..</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>20</order>
+  <name>Xone</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>.*....**.....*..</line>
+   <line>..*..*..*...*...</line>
+   <line>...**....*.*....</line>
+   <line>....*....**.....</line>
+   <line>.....*...*......</line>
+   <line>......*.*.......</line>
+   <line>.......*........</line>
+   <line>......*.*.......</line>
+   <line>.....*...*......</line>
+   <line>....*.....*.....</line>
+   <line>...**......*....</line>
+   <line>..*.*.......*...</line>
+   <line>.*..******...*..</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>21</order>
+  <name>Xtwo</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>......*.......*.</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>..*.......*.....</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>......*.......*.</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>..*.......*.....</line>
+   <line>................</line>
+  </pattern>
+  <order>22</order>
+  <name>spareDots</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>......*.......*.</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>..*.......*.....</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>23</order>
+  <name>spareDots21</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>......*.......*.</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>..*.......*.....</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>24</order>
+  <name>spareDots22</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+  </pattern>
+  <order>25</order>
+  <name>checker</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>....****....****</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+   <line>****....****....</line>
+  </pattern>
+  <order>26</order>
+  <name>checker2</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>.......*........</line>
+   <line>......**........</line>
+   <line>.......*........</line>
+   <line>.......*........</line>
+   <line>.......*........</line>
+   <line>.......*........</line>
+   <line>......***.......</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>27</order>
+  <name>one</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>.......**.......</line>
+   <line>......*..*......</line>
+   <line>.........*......</line>
+   <line>........*.......</line>
+   <line>.......*........</line>
+   <line>......*.........</line>
+   <line>......****......</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>28</order>
+  <name>two</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>......***.......</line>
+   <line>.....*...*......</line>
+   <line>.........*......</line>
+   <line>.......**.......</line>
+   <line>.........*......</line>
+   <line>.....*...*......</line>
+   <line>......***.......</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>29</order>
+  <name>three</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>.............*..</line>
+   <line>............**..</line>
+   <line>...........*.*..</line>
+   <line>..........*..*..</line>
+   <line>.........******.</line>
+   <line>.............*..</line>
+   <line>.............*..</line>
+   <line>................</line>
+  </pattern>
+  <order>30</order>
+  <name>four</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>......***.......</line>
+   <line>.....*..........</line>
+   <line>.....*..........</line>
+   <line>.....***........</line>
+   <line>........*.......</line>
+   <line>........*.......</line>
+   <line>.....***........</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>31</order>
+  <name>five</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>.......***......</line>
+   <line>......*.........</line>
+   <line>......*.........</line>
+   <line>......****......</line>
+   <line>......*...*.....</line>
+   <line>......*...*.....</line>
+   <line>.......***......</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>32</order>
+  <name>six</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>.....******.....</line>
+   <line>..........*.....</line>
+   <line>.........*......</line>
+   <line>.........*......</line>
+   <line>........*.......</line>
+   <line>........*.......</line>
+   <line>.......*........</line>
+   <line>......*.........</line>
+   <line>.....*..........</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>33</order>
+  <name>seven</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>......***.......</line>
+   <line>.....*...*......</line>
+   <line>.....*...*......</line>
+   <line>......***.......</line>
+   <line>.....*...*......</line>
+   <line>.....*...*......</line>
+   <line>......***.......</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>34</order>
+  <name>eight</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*..............*</line>
+   <line>.*............*.</line>
+   <line>..*..........*..</line>
+   <line>...*........*...</line>
+   <line>....*......*....</line>
+   <line>.....*....*.....</line>
+   <line>......*..*......</line>
+   <line>.......**.......</line>
+   <line>.......**.......</line>
+   <line>......*..*......</line>
+   <line>.....*....*.....</line>
+   <line>....*......*....</line>
+   <line>...*........*...</line>
+   <line>..*..........*..</line>
+   <line>.*............*.</line>
+   <line>*..............*</line>
+  </pattern>
+  <order>35</order>
+  <name>box45</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>.*.*.*.*.*.*.*.*</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+  </pattern>
+  <order>36</order>
+  <name>gray50</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+   <line>*...*...*...*...</line>
+   <line>................</line>
+   <line>..*...*...*...*.</line>
+   <line>................</line>
+  </pattern>
+  <order>37</order>
+  <name>gray25</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>.*.*.*...*.*.*..</line>
+   <line>................</line>
+   <line>...*...*...*...*</line>
+   <line>................</line>
+   <line>.*...*.*.*...*.*</line>
+   <line>................</line>
+   <line>...*...*...*...*</line>
+   <line>................</line>
+   <line>.*.*.*...*.*.*..</line>
+   <line>................</line>
+   <line>...*...*...*...*</line>
+   <line>................</line>
+   <line>.*...*.*.*...*.*</line>
+   <line>................</line>
+   <line>...*...*...*...*</line>
+   <line>................</line>
+  </pattern>
+  <order>38</order>
+  <name>snow</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>..*.......*.....</line>
+   <line>...*.......*....</line>
+   <line>....*.......*...</line>
+   <line>.....*.......*..</line>
+   <line>......*.......*.</line>
+   <line>.......*.......*</line>
+   <line>*.......*.......</line>
+   <line>.*.......*......</line>
+   <line>..*.......*.....</line>
+   <line>...*.......*....</line>
+   <line>....*.......*...</line>
+   <line>.....*.......*..</line>
+   <line>......*.......*.</line>
+   <line>.......*.......*</line>
+   <line>*.......*.......</line>
+   <line>.*.......*......</line>
+  </pattern>
+  <order>39</order>
+  <name>backSlash2</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*.....*.*.....*.</line>
+   <line>.*...*...*...*..</line>
+   <line>..*.*.....*.*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*.*.....*.*...</line>
+   <line>.*...*...*...*..</line>
+   <line>*.....*.*.....*.</line>
+   <line>...*...*...*...*</line>
+   <line>*.....*.*.....*.</line>
+   <line>.*...*...*...*..</line>
+   <line>..*.*.....*.*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*.*.....*.*...</line>
+   <line>.*...*...*...*..</line>
+   <line>*.....*.*.....*.</line>
+   <line>...*...*...*...*</line>
+  </pattern>
+  <order>40</order>
+  <name>lattice</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>**..**..**..**..</line>
+   <line>**..**..**..**..</line>
+   <line>..**..**..**..**</line>
+   <line>..**..**..**..**</line>
+   <line>**..**..**..**..</line>
+   <line>**..**..**..**..</line>
+   <line>..**..**..**..**</line>
+   <line>..**..**..**..**</line>
+   <line>**..**..**..**..</line>
+   <line>**..**..**..**..</line>
+   <line>..**..**..**..**</line>
+   <line>..**..**..**..**</line>
+   <line>**..**..**..**..</line>
+   <line>**..**..**..**..</line>
+   <line>..**..**..**..**</line>
+   <line>..**..**..**..**</line>
+  </pattern>
+  <order>41</order>
+  <name>smallChecker</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>....*...........</line>
+   <line>...*.*..........</line>
+   <line>..*...*.........</line>
+   <line>.*.....*........</line>
+   <line>*.......*.......</line>
+   <line>.*.......*......</line>
+   <line>..*.......*.....</line>
+   <line>...*.......*....</line>
+   <line>....*.......*...</line>
+   <line>.....*.......*..</line>
+   <line>......*.......*.</line>
+   <line>.......*.......*</line>
+   <line>........*.....*.</line>
+   <line>.........*...*..</line>
+   <line>..........*.*...</line>
+   <line>...........*....</line>
+  </pattern>
+  <order>42</order>
+  <name>slantBox</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+   <line>.*...*...*...*..</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>..*...*...*...*.</line>
+  </pattern>
+  <order>43</order>
+  <name>slash2</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>...*.......*....</line>
+   <line>..*.......*.....</line>
+   <line>.*.......*......</line>
+   <line>*.......*.......</line>
+   <line>.......*.......*</line>
+   <line>......*.......*.</line>
+   <line>.....*.......*..</line>
+   <line>....*.......*...</line>
+   <line>...*.......*....</line>
+   <line>..*.......*.....</line>
+   <line>.*.......*......</line>
+   <line>*.......*.......</line>
+   <line>.......*.......*</line>
+   <line>......*.......*.</line>
+   <line>.....*.......*..</line>
+   <line>....*.......*...</line>
+  </pattern>
+  <order>44</order>
+  <name>bigSlash</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>****....****....</line>
+   <line>*..*....*..*....</line>
+   <line>*..*....*..*....</line>
+   <line>****....****....</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>****....****....</line>
+   <line>*..*....*..*....</line>
+   <line>*..*....*..*....</line>
+   <line>****....****....</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>45</order>
+  <name>boxes</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>..**......**....</line>
+   <line>.*..*....*..*...</line>
+   <line>*....*..*....*..</line>
+   <line>*....*..*....*..</line>
+   <line>.*..*....*..*...</line>
+   <line>..**......**....</line>
+   <line>................</line>
+   <line>................</line>
+   <line>..**......**....</line>
+   <line>.*..*....*..*...</line>
+   <line>*....*..*....*..</line>
+   <line>*....*..*....*..</line>
+   <line>.*..*....*..*...</line>
+   <line>..**......**....</line>
+   <line>................</line>
+   <line>................</line>
+  </pattern>
+  <order>46</order>
+  <name>circles</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>.**..**..**..**.</line>
+   <line>...*...*...*...*</line>
+   <line>*...*...*...*...</line>
+   <line>.**..**..**..**.</line>
+   <line>.**..**..**..**.</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>.**..**..**..**.</line>
+   <line>.**..**..**..**.</line>
+   <line>...*...*...*...*</line>
+   <line>*...*...*...*...</line>
+   <line>.**..**..**..**.</line>
+   <line>.**..**..**..**.</line>
+   <line>*...*...*...*...</line>
+   <line>...*...*...*...*</line>
+   <line>.**..**..**..**.</line>
+  </pattern>
+  <order>47</order>
+  <name>zigzag</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>................</line>
+   <line>...*....*....*..</line>
+   <line>................</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>................</line>
+   <line>...*....*....*..</line>
+   <line>................</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>................</line>
+   <line>...*....*....*..</line>
+   <line>................</line>
+   <line>*.*.*.*.*.*.*.*.</line>
+   <line>................</line>
+   <line>...*....*....*..</line>
+  </pattern>
+  <order>48</order>
+  <name>lightMesh</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>...............*</line>
+   <line>..............*.</line>
+   <line>.............*..</line>
+   <line>............*...</line>
+   <line>...........*....</line>
+   <line>..........*.....</line>
+   <line>.........*......</line>
+   <line>........*.......</line>
+   <line>.......*........</line>
+   <line>......*.........</line>
+   <line>.....*..........</line>
+   <line>....*...........</line>
+   <line>...*............</line>
+   <line>..*.............</line>
+   <line>.*..............</line>
+   <line>*...............</line>
+  </pattern>
+  <order>49</order>
+  <name>hugeSlash</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*...............</line>
+   <line>.*..............</line>
+   <line>..*.............</line>
+   <line>...*............</line>
+   <line>....*...........</line>
+   <line>.....*..........</line>
+   <line>......*.........</line>
+   <line>.......*........</line>
+   <line>........*.......</line>
+   <line>.........*......</line>
+   <line>..........*.....</line>
+   <line>...........*....</line>
+   <line>............*...</line>
+   <line>.............*..</line>
+   <line>..............*.</line>
+   <line>...............*</line>
+  </pattern>
+  <order>50</order>
+  <name>hugeSlash2</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>*.........*.....</line>
+   <line>.....*..........</line>
+   <line>..*.........*...</line>
+   <line>.......*........</line>
+   <line>....*.........*.</line>
+   <line>.*.......*......</line>
+   <line>......*.........</line>
+   <line>...*.......*....</line>
+   <line>........*.......</line>
+   <line>.....*.......*..</line>
+   <line>*.........*.....</line>
+   <line>.......*........</line>
+   <line>..*.........*...</line>
+   <line>.........*......</line>
+   <line>....*.........*.</line>
+   <line>...........*....</line>
+  </pattern>
+  <order>51</order>
+  <name>curve</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>....*....*....*.</line>
+   <line>..*.............</line>
+   <line>*.......*.......</line>
+   <line>.............*..</line>
+   <line>.......*........</line>
+   <line>............*...</line>
+   <line>.....*..........</line>
+   <line>...*.......*....</line>
+   <line>*...............</line>
+   <line>................</line>
+   <line>.........*......</line>
+   <line>................</line>
+   <line>......*........*</line>
+   <line>...*............</line>
+   <line>*............*..</line>
+   <line>..........*.....</line>
+  </pattern>
+  <order>52</order>
+  <name>curve2</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>...........*....</line>
+   <line>..........*.*...</line>
+   <line>.........*...*..</line>
+   <line>........*.....*.</line>
+   <line>.........*...*..</line>
+   <line>..........*.*...</line>
+   <line>...........*....</line>
+   <line>................</line>
+   <line>................</line>
+   <line>...*............</line>
+   <line>..*.*...........</line>
+   <line>.*...*..........</line>
+   <line>*.....*.........</line>
+   <line>.*...*..........</line>
+   <line>..*.*...........</line>
+   <line>...*............</line>
+  </pattern>
+  <order>53</order>
+  <name>diams</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>...*............</line>
+   <line>..*.*...........</line>
+   <line>.*...*..........</line>
+   <line>*.....*.........</line>
+   <line>.*...*..........</line>
+   <line>..*.*...........</line>
+   <line>...*............</line>
+  </pattern>
+  <order>54</order>
+  <name>sparsediam</name>
+ </custom-dither-pattern>
+ <custom-dither-pattern>
+  <pattern>
+   <line>.......*.......*</line>
+   <line>......*.........</line>
+   <line>.....*..........</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>.*..............</line>
+   <line>*...............</line>
+   <line>.......*.......*</line>
+   <line>..............*.</line>
+   <line>.............*..</line>
+   <line>................</line>
+   <line>................</line>
+   <line>................</line>
+   <line>.........*......</line>
+   <line>........*.......</line>
+  </pattern>
+  <order>55</order>
+  <name>rain</name>
+ </custom-dither-pattern>
+ <custom-line-style>
+  <pattern>***</pattern>
+  <order>1</order>
+  <name>solid</name>
+ </custom-line-style>
+ <custom-line-style>
+  <pattern>****..</pattern>
+  <order>2</order>
+  <name>dashed</name>
+ </custom-line-style>
+ <custom-line-style>
+  <pattern>*..</pattern>
+  <order>3</order>
+  <name>dots</name>
+ </custom-line-style>
+ <custom-line-style>
+  <pattern>***..*..</pattern>
+  <order>4</order>
+  <name>dashDot</name>
+ </custom-line-style>
+ <custom-line-style>
+  <pattern>**..</pattern>
+  <order>5</order>
+  <name>shortDash</name>
+ </custom-line-style>
+ <custom-line-style>
+  <pattern>****..**..</pattern>
+  <order>6</order>
+  <name>doubleDash</name>
+ </custom-line-style>
+ <custom-line-style>
+  <pattern>*...</pattern>
+  <order>7</order>
+  <name>hidden</name>
+ </custom-line-style>
+ <custom-line-style>
+  <pattern>***</pattern>
+  <order>8</order>
+  <name>thickLine</name>
+ </custom-line-style>
+</layer-properties>
diff --git a/sky130/sky130.lyt b/sky130/sky130.lyt
new file mode 100644
index 0000000..139f6cc
--- /dev/null
+++ b/sky130/sky130.lyt
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<technology>
+ <name>EFS8A</name>
+ <description>EFS8A 5-metals</description>
+ <layer-properties_file>EFS8A.lyp</layer-properties_file>
+ <add-other-layers>true</add-other-layers>
+ <layer-map>
+'66/15 : PY_SHORT	';
+'72/15 : M5_SHORT	';
+'81/14 : LDID	';
+'122/16 :PWELL_PIN	';
+'64/5  : NWELLLABEL	';
+'64/16 : NWELLPT ';
+'64/59 : PWELLLABEL	';
+'64/20 : NWELL	';
+'64/18 : DNWELL ';
+'65/20 : DIFF	';
+'65/44 : TAP	';
+'125/44 : LVTN	';
+'78/44 : HVTP	';
+'75/20 : HVI	';
+'80/20 : TUNM	';
+'66/20 : POLY	';
+'95/20 : NPC	';
+'94/20 : PSDM	';
+'93/44 : NSDM	';
+'66/44 : LICON1 ';
+'67/20 : LI1	';
+'67/16 : LI1T	';
+'67/5  : LI1P	';
+'67/44 : MCON	';
+'68/20 : MET1	';
+'68/16 : MET1T  ';
+'68/5  : MET1P  ';
+'68/44 : VIA1	';
+'69/20 : MET2	';
+'69/16 : MET2T  ';
+'69/5  : MET2P  ';
+'69/44 : VIA2	';
+'70/20 : MET3	';
+'70/16 : MET3T  ';
+'70/5  : MET3P  ';
+'70/44 : VIA3	';
+'71/20 : MET4	';
+'71/16 : MET4T  ';
+'71/5  : MET4P  ';
+'71/44 : VIA4	';
+'72/20 : MET5	';
+'72/16 : MET5T  ';
+'72/5  : MET5P  ';
+'76/20 : PAD	';
+'76/16 : PADT	';
+'76/5  : PADP	';
+'81/4  : BOUND  ';
+'83/44 : TEXT	';
+'18/20 : HVTR	';
+'92/44 : NCM	';
+'86/20 : RPM	';
+'61/20 : NSM	';
+'74/20 : RDL	';
+'74/21 : VHVI	';
+'11/44 : LDNTM  ';
+'125/20 : HVNTM  ';
+'85/44 : PMM	';
+'82/44 : PNP	';
+'82/64 : CAP	';
+'82/24 : IND	';
+'64/13 : PWRES  ';
+'66/13 : POLYRES';
+'65/13 : DIFFRES';
+'81/23 : DIODE  ';
+</layer-map>
+ <create-other-layers>true</create-other-layers>
+ <lef-def-import>
+  <read-all-layers>true</read-all-layers>
+  <layer-map/>
+  <produce-net-names>true</produce-net-names>
+  <net-property-name>#1</net-property-name>
+  <produce-cell-outlines>true</produce-cell-outlines>
+  <cell-outline-layer>OUTLINE</cell-outline-layer>
+  <produce-placement-blockages>true</produce-placement-blockages>
+  <placement-blockage-layer>PLACEMENT_BLK</placement-blockage-layer>
+  <produce-via-geometry>true</produce-via-geometry>
+  <via-geometry-suffix/>
+  <via-geometry-datatype>0</via-geometry-datatype>
+  <produce-pins>true</produce-pins>
+  <pins-suffix>.PIN</pins-suffix>
+  <pins-datatype>2</pins-datatype>
+  <produce-obstructions>true</produce-obstructions>
+  <obstructions-suffix>.OBS</obstructions-suffix>
+  <obstructions-datatype>3</obstructions-datatype>
+  <produce-blockages>true</produce-blockages>
+  <blockages-suffix>.BLK</blockages-suffix>
+  <blockages-datatype>4</blockages-datatype>
+  <produce-labels>true</produce-labels>
+  <labels-suffix>.LABEL</labels-suffix>
+  <labels-datatype>1</labels-datatype>
+  <produce-routing>true</produce-routing>
+  <routing-suffix/>
+  <routing-datatype>0</routing-datatype>
+ </lef-def-import>
+ <connectivity>
+  <connection>LI1,LICON1,SRCDRN</connection>
+  <connection>LI1,LICON1,POLY</connection>
+  <connection>MET1,MCON,LI1</connection>
+  <connection>MET1,VIA1,MET2</connection>
+  <connection>MET2,VIA2,MET3</connection>
+  <connection>MET3,VIA3,MET4</connection>
+  <connection>MET4,VIA4,MET5</connection>
+  <connection>LI1,LICON1,NWP</connection>
+  <symbols>SRCDRN='DIFF-POLY'</symbols>
+  <symbols>PTAP='TAP'</symbols>
+  <symbols>NWP='TAP+NWELL'</symbols>
+  <symbols>DIFF='65/20'</symbols>
+  <symbols>POLY='66/20'</symbols>
+  <symbols>LICON1='66/44'</symbols>
+  <symbols>LI1='67/20'</symbols>
+  <symbols>MCON='67/44'</symbols>
+  <symbols>MET1='68/20'</symbols>
+  <symbols>VIA1='68/44'</symbols>
+  <symbols>MET2='69/20'</symbols>
+  <symbols>VIA2='69/44'</symbols>
+  <symbols>MET3='70/20'</symbols>
+  <symbols>VIA3='70/44'</symbols>
+  <symbols>MET4='71/20'</symbols>
+  <symbols>VIA4='71/44'</symbols>
+  <symbols>MET5='72/20'</symbols>
+ </connectivity>
+</technology>
diff --git a/sky130/sky130.magicrc b/sky130/sky130.magicrc
new file mode 100644
index 0000000..feaf6b5
--- /dev/null
+++ b/sky130/sky130.magicrc
@@ -0,0 +1,114 @@
+###
+###	Source file sky130.magicrc
+###	Process this file with the m4 processor
+###
+puts stdout "Sourcing design .magicrc for technology TECHNAME ..."
+
+# Put grid on 0.005 pitch.  This is important, as some commands don't
+# rescale the grid automatically (such as lef read?).
+
+set scalefac [tech lambda]
+if {[lindex $scalefac 1] < 2} {
+    scalegrid 1 2
+}
+
+# drc off
+drc euclidean on
+
+# Allow override of PDK path from environment variable PDKPATH
+if {[catch {set PDKPATH $env(PDKPATH)}]} {
+    set PDKPATH "STAGING_PATH/TECHNAME"
+}
+
+# loading technology
+#ifdef FULLTECH
+tech load $PDKPATH/MAGIC_CURRENT/TECHNAME-F.tech
+#else
+tech load $PDKPATH/MAGIC_CURRENT/TECHNAME.tech
+#endif
+
+# load device generator
+source $PDKPATH/MAGIC_CURRENT/TECHNAME.tcl
+
+# load bind keys (optional)
+# source $PDKPATH/MAGIC_CURRENT/TECHNAME-BindKeys
+
+# set units to lambda grid 
+snap lambda
+
+# set sky130 standard power, ground, and substrate names
+set VDD VPWR
+set GND VGND
+set SUB VSUBS
+
+# Allow override of type of magic library views used, "mag" or "maglef",
+# from environment variable MAGTYPE
+
+if {[catch {set MAGTYPE $env(MAGTYPE)}]} {
+   set MAGTYPE maglef
+}
+
+# add path to reference cells
+if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} {
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr_base
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr_rf
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr_rf2
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu130
+} else {
+    addpath ${PDKPATH}/libs.ref/sky130_fd_pr_base/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_pr_rf/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_pr_rf2/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_osu130/${MAGTYPE}
+}
+
+# add path to GDS cells
+#ifdef FULLTECH
+if {[file isdir ${PDKPATH}/libs.ref/gds}]} {
+    path cell ${PDKPATH}/libs.ref/gds/sky130_fd_pr_base
+    path cell ${PDKPATH}/libs.ref/gds/sky130_fd_pr_rf
+    path cell ${PDKPATH}/libs.ref/gds/sky130_fd_pr_rf2
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_io
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hd
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hdll
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hs
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hvl
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_lp
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_ls
+    path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_ms
+    path cell +${PDKPATH}/libs.ref/gds/sky130_osu130
+} else {
+    path cell ${PDKPATH}/libs.ref/sky130_fd_pr_base/gds
+    path cell ${PDKPATH}/libs.ref/sky130_fd_pr_rf/gds
+    path cell ${PDKPATH}/libs.ref/sky130_fd_pr_rf2/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_io/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hd/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hdll/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hs/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hvl/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_sc_lp/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_sc_ls/gds
+    path cell +${PDKPATH}/libs.ref/sky130_fd_sc_ms/gds
+    path cell +${PDKPATH}/libs.ref/sky130_osu130/gds
+}
+#endif (FULLTECH)
+
+# add path to IP from catalog.  This procedure defined in the PDK script.
+catch {magic::query_mylib_ip}
+# add path to local IP from user design space.  Defined in the PDK script.
+catch {magic::query_my_projects}
diff --git a/sky130/sky130.par b/sky130/sky130.par
new file mode 100644
index 0000000..afd9190
--- /dev/null
+++ b/sky130/sky130.par
@@ -0,0 +1,108 @@
+# TECHNAME.par --- Parameter file for GrayWolf
+# NOTE:  all distance units are in centimicrons unless otherwise stated
+# WARNING: this is NOT tcl syntax! No Comments on end of actual data line.
+# The vast majority of quantities here are not used (read instead from techLEF, etc.)
+
+RULES
+    # values are resistance in ohms/sq and capacitance in fF/um^2
+    # TODO: properly pick directions
+    layer metal1 0.105 0.0001 horizontal
+    layer metal2 0.105 0.0001 vertical
+    layer metal3 0.105 0.0001 horizontal
+#ifdef METAL5
+    layer metal4 0.105 0.0001 vertical
+    layer metal5 0.105 0.0001 horizontal
+#endif
+
+    via via12 metal1 metal2
+    via via23 metal2 metal3
+#ifdef METAL5
+    via via34 metal3 metal4
+    via via45 metal4 metal5
+#endif
+
+              # 0.5 um
+    width metal1 50
+    width metal2 60
+              # 0.6 um
+    width metal3 60
+#ifdef METAL5
+    width metal4 60
+    width metal5 60
+#endif
+
+    # TODO verify these two numbers
+    width via12 50
+    width via23 50
+#ifdef METAL5
+    width via34 50
+    width via45 50
+#endif
+
+    # Set spacing = track pitch - width, so that GrayWolf places pins
+    # on the right pitch.
+    # Pitches are (in um):
+    # metal1 = 200,  metal2 = 160,  metal3 = 200,  metal4 = 320
+## pitch m1: 1.3um  m2: 1.4um  m3: 1.3um
+## width m1: 0.5um  m2: 0.6um  m3: 0.6um
+## space     0.8        0.8        0.7     (pitch calc)
+## fab-space 0.45       0.5        0.6
+
+    spacing metal1 metal1 80
+    spacing metal2 metal2 80
+    spacing metal3 metal3 80
+#ifdef METAL5
+    spacing metal4 metal4 80
+    spacing metal5 metal5 80
+#endif
+
+    # (WAS:) Stacked vias allowed
+    # spacing via12 via23 0
+
+    # To disable Stacked?: give non-zero spacing (centimicrons = 10 nanometer = 1/100 of micron)
+    # TODO need real value here:
+    spacing via12 via23 0
+#ifdef METAL5
+    spacing via23 via34 0
+    spacing via34 via45 0
+#endif
+
+                       # .2um .15um
+    overhang via12 metal1 20
+    overhang via12 metal2 15
+
+    overhang via23 metal2 20
+    overhang via23 metal3 15
+
+#ifdef METAL5
+    overhang via34 metal3 14
+    overhang via34 metal4 16
+    overhang via45 metal4 14
+    overhang via45 metal5 16
+#endif
+ENDRULES
+
+*vertical_wire_weight : 1.0
+*vertical_path_weight : 1.0
+*padspacing           : variable
+*rowSep		      : 0.0   0
+# min pitch of m1,m2,m3 (FIXME):
+*track.pitch	      : 130
+*graphics.wait        : off
+*last_chance.wait     : off
+*random.seed	      : 12345
+# TODO: proper track.pitch number above, plus feedThruWidth below
+
+TWMC*chip.aspect.ratio : 1.0
+
+# FIXME:  Change width to width of minimum fill cell
+TWSC*feedThruWidth    : 280 layer 1
+TWSC*do.global.route  : on
+TWSC*ignore_feeds     : true
+TWSC*call_row_evener  : true
+TWSC*even_rows_maximally : true
+# TWSC*no.graphics    : on
+
+GENR*row_to_tile_spacing: 1
+# GENR*numrows		: 6
+GENR*flip_alternate_rows : 1
diff --git a/sky130/sky130.sh b/sky130/sky130.sh
new file mode 100644
index 0000000..9d8e6ac
--- /dev/null
+++ b/sky130/sky130.sh
@@ -0,0 +1,93 @@
+#!/bin/tcsh
+#---------------------------------------------------------------
+# Shell script setting up all variables used by the qflow scripts
+# for this project
+#---------------------------------------------------------------
+
+# The LEF file containing standard cell macros
+
+#ifdef EF_FORMAT
+set leffile=STAGING_PATH/TECHNAME/libs.ref/lef/LIBRARY/LIBRARY.lef
+#else (!EF_FORMAT)
+set leffile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/lef/LIBRARY.lef
+#endif (!EF_FORMAT)
+
+# The SPICE netlist containing subcell definitions for all the standard cells
+#ifdef EF_FORMAT
+set spicefile=STAGING_PATH/TECHNAME/libs.ref/spi/LIBRARY/LIBRARY.spi
+#else (!EF_FORMAT)
+set spicefile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/spice/LIBRARY.spi
+#endif (!EF_FORMAT)
+
+# The liberty format file containing standard cell timing and function information
+#ifdef EF_FORMAT
+set libertyfile=STAGING_PATH/TECHNAME/libs.ref/lib/LIBRARY/LIBRARY__ff_n40C_1v95.lib
+#else (!EF_FORMAT)
+set libertyfile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/lib/LIBRARY__ff_n40C_1v95.lib
+#endif (!EF_FORMAT)
+
+# If there is another LEF file containing technology information
+# that is separate from the file containing standard cell macros,
+# set this.  Otherwise, leave it defined as an empty string.
+
+#ifdef METAL5
+#ifdef EF_FORMAT
+set techleffile=STAGING_PATH/TECHNAME/libs.ref/techLEF/LIBRARY/LIBRARY_tech.lef
+#else (!EF_FORMAT)
+set techleffile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/techlef/LIBRARY_tech.lef
+#endif (!EF_FORMAT)
+#else
+# NOTE:  There is no technology LEF file for the 3-metal stack!
+#endif
+
+# All cells below should be the lowest output drive strength value,
+# if the standard cell set has multiple cells with different drive
+# strengths.  Comment out any cells that do not exist.
+
+set bufcell=LIBRARY__buf_1	;# Minimum drive strength buffer cell
+set bufpin_in=A			;# Name of input port to buffer cell
+set bufpin_out=X		;# Name of output port to buffer cell
+set clkbufcell=LIBRARY__clkbuf_1	;# Minimum drive strength buffer cell
+set clkbufpin_in=A		;# Name of input port to buffer cell
+set clkbufpin_out=X		;# Name of output port to buffer cell
+
+set fillcell=LIBRARY__fill_	;# Spacer (filler) cell (prefix, if more than one)
+set decapcell=LIBRARY__decap_	;# Decap (filler) cell (prefix, if more than one)
+set antennacell=LIBRARY__diode_	;# Antenna (filler) cell (prefix, if more than one)
+set antennapin_in=vpb		;# Antenna cell input connection
+set bodytiecell=LIBRARY__tapvpwrvgnd_	;# Body tie (filler) cell (prefix, if more than one)
+
+# yosys tries to eliminate use of these; depends on source .v
+set tiehi="LIBRARY__conb_1"	;# Cell to connect to power, if one exists
+set tiehipin_out="HI"		;# Output pin name of tiehi cell, if it exists
+set tielo="LIBRARY__conb_1"	;# Cell to connect to ground, if one exists
+set tielopin_out="LO"		;# Output pin name of tielo cell, if it exists
+
+set gndnet="vgnd,vnb"		;# Name used for ground pins and taps in standard cells
+set vddnet="vpwr,vpb"		;# Name used for power pins and taps in standard cells
+
+set separator=""		;# Separator between gate names and drive strengths
+set techfile=STAGING_PATH/TECHNAME/MAGIC_CURRENT/TECHNAME.tech	;# magic techfile
+set magicrc=STAGING_PATH/TECHNAME/MAGIC_CURRENT/TECHNAME.magicrc	;# magic startup script
+set magic_display="XR" 	;# magic display, defeat display query and OGL preference
+set netgen_setup=STAGING_PATH/TECHNAME/libs.tech/netgen/TECHNAME_setup.tcl	;# netgen setup file for LVS
+#ifdef EF_FORMAT
+set gdsfile=STAGING_PATH/TECHNAME/libs.ref/gds/LIBRARY/LIBRARY.gds	;# GDS database of standard cells
+set verilogfile=STAGING_PATH/TECHNAME/libs.ref/verilog/LIBRARY/LIBRARY.v	;# Verilog models of standard cells
+#else (!EF_FORMAT)
+set gdsfile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/gds/LIBRARY.gds	;# GDS database of standard cells
+set verilogfile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/verilog/LIBRARY.v	;# Verilog models of standard cells
+#endif (!EF_FORMAT)
+
+# Set a conditional default in the project_vars.sh file for this process
+set postproc_options="-anchors"
+#ifdef METAL5
+# Normally one does not want to use the top metal for signal routing
+set route_layers = 5
+#else
+set route_layers = 3
+#endif
+set fill_ratios="0,70,10,20"
+set fanout_options="-l 200 -c 20"
+set addspacers_options="-stripe 2.5 50.0 PG"
+set xspice_options="-io_time=500p -time=50p -idelay=5p -odelay=50p -cload=250f"
diff --git a/sky130/sky130.tcl b/sky130/sky130.tcl
new file mode 100644
index 0000000..684aee5
--- /dev/null
+++ b/sky130/sky130.tcl
@@ -0,0 +1,5596 @@
+###
+###     Source file sky130.tcl
+###     Process this file with the preprocessor script
+###
+#-----------------------------------------------------
+# Magic/TCL design kit for SKYWATER TECHNAME
+#-----------------------------------------------------
+# Tim Edwards
+# Revision 0	PRE-ALPHA   3/21/2019
+#-----------------------------------------------------
+
+set TECHPATH STAGING_PATH
+if [catch {set PDKPATH}] {set PDKPATH ${TECHPATH}/TECHNAME}
+set PDKNAME TECHNAME
+# "sky130" is the namespace used for all devices
+set PDKNAMESPACE sky130
+puts stdout "Loading TECHNAME Device Generator Menu ..."
+
+# Initialize toolkit menus to the wrapper window
+
+global Opts
+namespace eval sky130 {}
+
+# Set the window callback
+if [catch {set Opts(callback)}] {set Opts(callback) ""}
+set Opts(callback) [subst {sky130::addtechmenu \$framename; $Opts(callback)}]
+
+# if {![info exists Opts(cmdentry)]} {set Opts(cmdentry) 1}
+
+# Set options specific to this PDK
+set Opts(hidelocked) 1
+set Opts(hidespecial) 1
+
+# Create new "tool" proc that doesn't have the netlist tool.
+proc magic::nexttool {} {
+   global Opts
+
+   # Don't attempt to switch tools while a selection drag is active
+   if {$Opts(motion) == {}} {
+      switch $Opts(tool) {
+         box { magic::tool wiring }
+         wiring { magic::tool pick }
+         default { magic::tool box }
+      }
+   }
+}
+
+# This shoule be part of sitedef. . .
+macro space magic::nexttool
+
+# Wrap the closewrapper procedure so that closing the last
+# window is equivalent to quitting.
+if {[info commands closewrapper] == "closewrapper"} {
+   rename closewrapper closewrapperonly
+   proc closewrapper { framename } {
+      if {[llength [windownames all]] <= 1} {
+         magic::quit
+      } else {
+         closewrapperonly $framename
+      }
+   }
+}
+
+# Remove maze router layers from the toolbar by locking them
+tech lock fence,magnet,rotate
+
+namespace eval sky130 {
+    namespace path {::tcl::mathop ::tcl::mathfunc}
+
+    set ruleset [dict create]
+
+    # Process DRC rules (magic style)
+
+    dict set ruleset poly_surround    0.08      ;# Poly surrounds contact
+    dict set ruleset diff_surround    0.06      ;# Diffusion surrounds contact
+    dict set ruleset gate_to_diffcont 0.145     ;# Gate to diffusion contact center
+    dict set ruleset gate_to_polycont 0.275     ;# Gate to poly contact center
+    dict set ruleset gate_extension   0.13      ;# Poly extension beyond gate
+    dict set ruleset diff_extension   0.29      ;# Diffusion extension beyond gate
+    dict set ruleset contact_size     0.17      ;# Minimum contact size
+    dict set ruleset via_size         0.17      ;# Minimum via size
+    dict set ruleset metal_surround   0.08      ;# Local interconnect overlaps contact
+    dict set ruleset sub_surround     0.18      ;# Sub/well surrounds diffusion
+    dict set ruleset diff_spacing     0.28      ;# Diffusion spacing rule
+    dict set ruleset poly_spacing     0.21      ;# Poly spacing rule
+    dict set ruleset diff_poly_space  0.075     ;# Diffusion to poly spacing rule
+    dict set ruleset diff_gate_space  0.20      ;# Diffusion to gate poly spacing rule
+    dict set ruleset metal_spacing    0.23      ;# Local interconnect spacing rule
+    dict set ruleset mmetal_spacing   0.14      ;# Metal spacing rule (above local interconnect)
+    dict set ruleset res_to_cont      0.20      ;# resistor to contact center
+    dict set ruleset res_diff_space   0.20      ;# resistor to guard ring
+}
+
+#-----------------------------------------------------
+# magic::addtechmenu
+#-----------------------------------------------------
+
+proc sky130::addtechmenu {framename} {
+   global Winopts Opts
+   
+   # Check for difference between magic 8.1.125 and earlier, and 8.1.126 and later
+   if {[catch {${framename}.titlebar cget -height}]} {
+      set layoutframe ${framename}.pane.top
+   } else {
+      set layoutframe ${framename}
+   }
+
+   # List of devices is long.  Divide into two sections for active and passive deivces
+   magic::add_toolkit_menu $layoutframe "Devices 1" pdk1
+
+   magic::add_toolkit_command $layoutframe "nmos (MOSFET)" \
+	    "magic::gencell sky130::nshort" pdk1
+   magic::add_toolkit_command $layoutframe "pmos (MOSFET)" \
+	    "magic::gencell sky130::pshort" pdk1
+
+   magic::add_toolkit_separator	$layoutframe pdk1
+   magic::add_toolkit_command $layoutframe "n-diode" \
+	    "magic::gencell sky130::ndiode" pdk1
+   magic::add_toolkit_command $layoutframe "p-diode" \
+	    "magic::gencell sky130::pdiode" pdk1
+
+   magic::add_toolkit_separator	$layoutframe pdk1
+   magic::add_toolkit_command $layoutframe "MOS varactor" \
+	    "magic::gencell sky130::xcnwvc" pdk1
+   magic::add_toolkit_separator	$layoutframe pdk1
+
+   magic::add_toolkit_command $layoutframe "NPN 1x1" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_npn_1x1" pdk1
+   magic::add_toolkit_command $layoutframe "NPN 1x2" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_npn_1x2" pdk1
+   magic::add_toolkit_command $layoutframe "PNP 5x" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_pnp5x" pdk1
+
+   magic::add_toolkit_separator	$layoutframe pdk1
+
+   magic::add_toolkit_command $layoutframe "balun" \
+	    "magic::gencell sky130::balun" pdk1
+   magic::add_toolkit_command $layoutframe "inductor 011" \
+	    "magic::gencell sky130::xind4_011" pdk1
+   magic::add_toolkit_command $layoutframe "inductor 02" \
+	    "magic::gencell sky130::xind4_02" pdk1
+
+   magic::add_toolkit_separator	$layoutframe pdk1
+
+   magic::add_toolkit_command $layoutframe "substrate contact (1.8V)" \
+	    "sky130::subconn_draw" pdk1
+   magic::add_toolkit_command $layoutframe "substrate contact (5.0V)" \
+	    "sky130::mvsubconn_draw" pdk1
+   magic::add_toolkit_command $layoutframe "deep n-well region" \
+	    "sky130::deep_nwell_draw" pdk1
+   magic::add_toolkit_command $layoutframe "mcon" \
+	    "sky130::mcon_draw" pdk1
+   magic::add_toolkit_command $layoutframe "via1" \
+	    "sky130::via1_draw" pdk1
+   magic::add_toolkit_command $layoutframe "via2" \
+	    "sky130::via2_draw" pdk1
+#ifdef METAL5
+   magic::add_toolkit_command $layoutframe "via3" \
+	    "sky130::via3_draw" pdk1
+   magic::add_toolkit_command $layoutframe "via4" \
+	    "sky130::via4_draw" pdk1
+#endif (METAL5)
+   
+
+   magic::add_toolkit_menu $layoutframe "Devices 2" pdk2
+
+   magic::add_toolkit_command $layoutframe "mrdn (1.8V) - 120 Ohm/sq" \
+	    "magic::gencell sky130::mrdn" pdk2
+   magic::add_toolkit_command $layoutframe "mrdp (1.8V) - 197 Ohm/sq" \
+	    "magic::gencell sky130::mrdp" pdk2
+   magic::add_toolkit_command $layoutframe "mrdn_hv (5.0V) - 114 Ohm/sq" \
+	    "magic::gencell sky130::mrdn_hv" pdk2
+   magic::add_toolkit_command $layoutframe "mrdp_hv (5.0V) - 191 Ohm/sq" \
+	    "magic::gencell sky130::mrdp_hv" pdk2
+
+   magic::add_toolkit_command $layoutframe "mrp1 - 48.2 Ohm/sq" \
+	    "magic::gencell sky130::mrp1" pdk2
+   magic::add_toolkit_command $layoutframe "xhrpoly - 319.8 Ohm/sq" \
+	    "magic::gencell sky130::xhrpoly" pdk2
+   magic::add_toolkit_command $layoutframe "uhrpoly - 2000 Ohm/sq" \
+	    "magic::gencell sky130::uhrpoly" pdk2
+   magic::add_toolkit_command $layoutframe "xpwres - 3050 Ohm/sq" \
+	    "magic::gencell sky130::xpwres" pdk2
+   magic::add_toolkit_separator	$layoutframe pdk2
+
+   magic::add_toolkit_command $layoutframe "mrl1 - 12.2 Ohm/sq" \
+	    "magic::gencell sky130::mrl1" pdk2
+   magic::add_toolkit_command $layoutframe "mrm1 - 125 mOhm/sq" \
+	    "magic::gencell sky130::mrm1" pdk2
+   magic::add_toolkit_command $layoutframe "mrm2 - 125 mOhm/sq" \
+	    "magic::gencell sky130::mrm2" pdk2
+   magic::add_toolkit_command $layoutframe "mrm3 - 47 mOhm/sq" \
+	    "magic::gencell sky130::mrm3" pdk2
+#ifdef METAL5
+   magic::add_toolkit_command $layoutframe "mrm4 - 47 mOhm/sq" \
+	    "magic::gencell sky130::mrm4" pdk2
+   magic::add_toolkit_command $layoutframe "mrm5 - 29 mOhm/sq" \
+	    "magic::gencell sky130::mrm5" pdk2
+#endif (METAL5)
+
+#ifdef MIM
+   magic::add_toolkit_command $layoutframe "xcmimc1 - 1fF/um^2 MiM cap" \
+	    "magic::gencell sky130::xcmimc1" pdk2
+   magic::add_toolkit_command $layoutframe "xcmimc2 - 1fF/um^2 MiM cap" \
+	    "magic::gencell sky130::xcmimc2" pdk2
+#endif (MIM)
+   magic::add_toolkit_separator	$layoutframe pdk2
+
+   magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 li/m5 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 li/m3/m5 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 m4 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 p/m4 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield" pdk2
+   # magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 p/m5 shield" \
+   #	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 4.4x4.6 li/m3/m5 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 6.8x6.1 li/m4 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 6.8x6.1 p/m4 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 8.6x7.9 li/m3/m5 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 4.2x2 nhvnat" \
+	    "magic::gencell sky130::sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 li/m3 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 m3 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield" pdk2
+   # magic::add_toolkit_command $layoutframe "vpp 1.8x1.8 li shield" \
+   #	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield" pdk2
+   # magic::add_toolkit_command $layoutframe "vpp 1.8x1.8 m3 shield" \
+   #	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 4.4x4.6 li/m3 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 4.4x4.6 m3 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 8.6x7.9 li/m3 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp 8.6x7.9 m3 shield" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield" pdk2
+   magic::add_toolkit_command $layoutframe "vpp2" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp2" pdk2
+   magic::add_toolkit_command $layoutframe "vpp2 nwell" \
+	    "magic::gencell sky130::sky130_fd_pr_rf_xcmvpp2_nwell" pdk2
+
+   ${layoutframe}.titlebar.mbuttons.drc.toolmenu add command -label "DRC Routing" -command {drc style drc(routing)}
+
+   # Add command entry window by default if enabled
+   if {[info exists Opts(cmdentry)]} {
+      set Winopts(${framename},cmdentry) $Opts(cmdentry)
+   } else {
+      set Winopts(${framename},cmdentry) 0
+   }
+   if {$Winopts(${framename},cmdentry) == 1} {
+      addcommandentry $framename
+   }
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mcon_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 0.17} {
+      puts stderr "Mcon width must be at least 0.17um"
+      return
+   }
+   if {$h < 0.17} {
+      puts stderr "Mcon height must be at least 0.17um"
+      return
+   }
+   paint lic
+   box grow n 0.05um
+   box grow s 0.05um
+   paint m1
+   box grow n -0.05um
+   box grow s -0.05um
+   box grow e 0.05um
+   box grow w 0.05um
+   paint li
+   box grow e -0.05um
+   box grow w -0.05um
+}
+
+proc sky130::via1_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 0.26} {
+      puts stderr "Via1 width must be at least 0.26um"
+      return
+   }
+   if {$h < 0.26} {
+      puts stderr "Via1 height must be at least 0.26um"
+      return
+   }
+   paint via1
+   box grow n 0.05um
+   box grow s 0.05um
+   paint m2
+   box grow n -0.05um
+   box grow s -0.05um
+   box grow e 0.05um
+   box grow w 0.05um
+   paint m1
+   box grow e -0.05um
+   box grow w -0.05um
+}
+
+proc sky130::via2_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 0.28} {
+      puts stderr "Via2 width must be at least 0.28um"
+      return
+   }
+   if {$h < 0.28} {
+      puts stderr "Via2 height must be at least 0.28um"
+      return
+   }
+   paint via2
+   box grow n 0.05um
+   box grow s 0.05um
+   paint m2
+   box grow n -0.05um
+   box grow s -0.05um
+   box grow e 0.05um
+   box grow w 0.05um
+   paint m3
+   box grow e -0.05um
+   box grow w -0.05um
+}
+
+#ifdef METAL5
+proc sky130::via3_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 0.32} {
+      puts stderr "Via3 width must be at least 0.32um"
+      return
+   }
+   if {$h < 0.32} {
+      puts stderr "Via3 height must be at least 0.32um"
+      return
+   }
+   paint via3
+   box grow n 0.05um
+   box grow s 0.05um
+   paint m4
+   box grow n -0.05um
+   box grow s -0.05um
+   box grow e 0.05um
+   box grow w 0.05um
+   paint m3
+   box grow e -0.05um
+   box grow w -0.05um
+}
+
+proc sky130::via4_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 1.18} {
+      puts stderr "Via3 width must be at least 1.18um"
+      return
+   }
+   if {$h < 1.18} {
+      puts stderr "Via3 height must be at least 1.18um"
+      return
+   }
+   paint via4
+   box grow n 0.05um
+   box grow s 0.05um
+   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
+}
+#endif (METAL5)
+
+proc sky130::subconn_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 0.17} {
+      puts stderr "Substrate tap width must be at least 0.17um"
+      return
+   }
+   if {$h < 0.17} {
+      puts stderr "Substrate tap height must be at least 0.17um"
+      return
+   }
+   paint nsc
+   box grow c 0.1um
+   paint nsd
+   box grow c -0.1um
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mvsubconn_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 0.17} {
+      puts stderr "Substrate tap width must be at least 0.17um"
+      return
+   }
+   if {$h < 0.17} {
+      puts stderr "Substrate tap height must be at least 0.17um"
+      return
+   }
+   paint mvnsc
+   box grow c 0.1um
+   paint mvnsd
+   box grow c -0.1um
+}
+
+#----------------------------------------------------------------
+
+proc sky130::deep_nwell_draw {} {
+   set w [magic::i2u [box width]]
+   set h [magic::i2u [box height]]
+   if {$w < 3.0} {
+      puts stderr "Deep-nwell region width must be at least 3.0um"
+      return
+   }
+   if {$h < 3.0} {
+      puts stderr "Deep-nwell region height must be at least 3.0um"
+      return
+   }
+   suspendall
+   tech unlock *
+   paint dnwell
+   pushbox
+   pushbox
+   box grow c 0.4um
+   paint nwell
+   box grow c -1.43um
+   erase nwell
+   popbox
+   box grow c 0.03um
+
+   pushbox
+   box width 0
+   box grow c 0.085um
+   paint li
+   pushbox
+   box grow n -0.3um
+   box grow s -0.3um
+   paint nsc
+   popbox
+   box grow c 0.1um
+   paint nsd
+   popbox
+
+   pushbox
+   box height 0
+   box grow c 0.085um
+   paint li
+   pushbox
+   box grow e -0.3um
+   box grow w -0.3um
+   paint nsc
+   popbox
+   box grow c 0.1um
+   paint nsd
+   popbox
+
+   pushbox
+   box move n [box height]i
+   box height 0
+   box grow c 0.085um
+   paint li
+   pushbox
+   box grow e -0.3um
+   box grow w -0.3um
+   paint nsc
+   popbox
+   box grow c 0.1um
+   paint nsd
+   popbox
+
+   pushbox
+   box move e [box width]i
+   box width 0
+   box grow c 0.085um
+   paint li
+   pushbox
+   box grow n -0.3um
+   box grow s -0.3um
+   paint nsc
+   box grow c 0.1um
+   paint nsd
+   popbox
+
+   popbox
+   tech revert
+   resumeall
+}
+
+#----------------------------------------------------------------
+
+proc sky130::res_recalc {field parameters} {
+    set snake 0
+    set sterm 0.0
+    set caplen 0
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+    set val [magic::spice2float $val]
+    set l [magic::spice2float $l]
+    set w [magic::spice2float $w]
+
+    if {$snake == 0} {
+	# Straight resistor calculation
+	switch  $field {
+	    val { set l [expr ($val * ($w - $dw) - (2 * $term)) / $rho]
+		  set w [expr ((2 * $term + $l * $rho) / $val) + $dw]
+		}
+	    w   { set val [expr (2 * $term + $l * $rho) / ($w - $dw)]
+		  set l [expr ($val * ($w - $dw) - (2 * $term)) / $rho]
+		}
+	    l   { set val [expr (2 * $term + $l * $rho) / ($w - $dw)]
+		  set w [expr ((2 * $term + $l * $rho) / $val) + $dw]
+		}
+	}
+    } else {
+        set term [expr $term + $sterm]
+	# Snake resistor calculation
+	switch  $field {
+	    val { set l [expr (($val - $rho * ($nx - 1)) * ($w - $dw) \
+			- (2 * $term) - ($rho * $caplen * ($nx - 1))) \
+			/ ($rho * $nx)]
+
+		  set w [expr ((2 * $term + $l * $rho * $nx \
+			+ $caplen * $rho * ($nx - 1)) \
+			/ ($val - $rho * ($nx - 1))) + $dw]
+		}
+	    w   { set val [expr $rho * ($nx - 1) + ((2 * $term) \
+			+ ($rho * $l * $nx) + ($rho * $caplen * ($nx - 1))) \
+			/ ($w - $dw)]
+
+		  set l [expr (($val - $rho * ($nx - 1)) * ($w - $dw) \
+			- (2 * $term) - ($rho * $caplen * ($nx - 1))) \
+			/ ($rho * $nx)]
+		}
+	    l   { set val [expr $rho * ($nx - 1) + ((2 * $term) \
+			+ ($rho * $l * $nx) + ($rho * $caplen * ($nx - 1))) \
+			/ ($w - $dw)]
+
+		  set w [expr ((2 * $term + $l * $rho * $nx \
+			+ $caplen * $rho * ($nx - 1)) \
+			/ ($val - $rho * ($nx - 1))) + $dw]
+		}
+	}
+    }
+
+    set val [magic::3digitpastdecimal $val]
+    set w [magic::3digitpastdecimal $w]
+    set l [magic::3digitpastdecimal $l]
+
+    dict set parameters val $val
+    dict set parameters w $w
+    dict set parameters l $l
+
+    return $parameters
+}
+
+#----------------------------------------------------------------
+# Drawn diode routines
+#----------------------------------------------------------------
+
+proc sky130::diode_recalc {field parameters} {
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+    switch  $field {
+	area { puts stdout "area changed" }
+	peri { puts stdout "perimeter changed" }
+	w   { puts stdout "width changed" }
+	l   { puts stdout "length changed" }
+    }
+    dict set parameters area $area
+    dict set parameters peri $peri
+    dict set parameters w $w
+    dict set parameters l $l
+}
+
+#----------------------------------------------------------------
+# diode: Conversion from SPICE netlist parameters to toolkit
+#----------------------------------------------------------------
+
+proc sky130::diode_convert {parameters} {
+    set pdkparams [dict create]
+    dict for {key value} $parameters {
+	switch -nocase $key {
+	    l -
+	    w -
+	    peri {
+		# Length, width, and perimeter are converted to units of microns
+		set value [magic::spice2float $value]
+		# set value [expr $value * 1e6]
+		set value [magic::3digitpastdecimal $value]
+		dict set pdkparams [string tolower $key] $value
+	    }
+	    area {
+		# area also converted to units of microns
+		set value [magic::spice2float $value]
+		# set value [expr $value * 1e12]
+		set value [magic::3digitpastdecimal $value]
+		dict set pdkparams [string tolower $key] $value
+	    }
+	    m {
+                # Convert m to ny
+		dict set pdkparams ny $value
+	    }
+	}
+    }
+    return $pdkparams
+}
+
+#----------------------------------------------------------------
+# diode: Interactively specifies the fixed layout parameters
+#----------------------------------------------------------------
+
+proc sky130::diode_dialog {device parameters} {
+    # Editable fields:      w, l, area, perim, nx, ny
+
+    magic::add_entry area "Area (um^2)" $parameters
+    magic::add_entry peri "Perimeter (um)" $parameters
+    sky130::compute_aptot $parameters
+    magic::add_message atot "Total area (um^2)" $parameters
+    magic::add_message ptot "Total perimeter (um)" $parameters
+    magic::add_entry l "Length (um)" $parameters
+    magic::add_entry w "Width (um)" $parameters
+    magic::add_entry nx "X Repeat" $parameters
+    magic::add_entry ny "Y Repeat" $parameters
+
+    if {[dict exists $parameters compatible]} {
+       set sellist [dict get $parameters compatible]
+       magic::add_selectlist gencell "Device type" $sellist $parameters $device
+    }
+
+    if {[dict exists $parameters doverlap]} {
+	magic::add_checkbox doverlap "Overlap at end contact" $parameters
+    }
+    if {[dict exists $parameters elc]} {
+        magic::add_checkbox elc "Add left end contact" $parameters
+    }
+    if {[dict exists $parameters erc]} {
+        magic::add_checkbox erc "Add right end contact" $parameters
+    }
+    if {[dict exists $parameters etc]} {
+        magic::add_checkbox etc "Add top end contact" $parameters
+    }
+    if {[dict exists $parameters ebc]} {
+        magic::add_checkbox ebc "Add bottom end contact" $parameters
+    }
+
+    if {[dict exists $parameters guard]} {
+        magic::add_checkbox full_metal "Full metal guard ring" $parameters
+    }
+    if {[dict exists $parameters glc]} {
+        magic::add_checkbox glc "Add left guard ring contact" $parameters
+    }
+    if {[dict exists $parameters grc]} {
+        magic::add_checkbox grc "Add right guard ring contact" $parameters
+    }
+    if {[dict exists $parameters gtc]} {
+        magic::add_checkbox gtc "Add top guard ring contact" $parameters
+    }
+    if {[dict exists $parameters gbc]} {
+        magic::add_checkbox gbc "Add bottom guard ring contact" $parameters
+    }
+
+    magic::add_dependency sky130::diode_recalc $device sky130 l w area peri
+
+    # magic::add_checkbox dummy "Add dummy" $parameters
+}
+
+#----------------------------------------------------------------
+# Diode total area and perimeter computation
+#----------------------------------------------------------------
+
+proc sky130::compute_aptot {parameters} {
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+    set area [magic::spice2float $area]
+    set area [magic::3digitpastdecimal $area]
+    set peri [magic::spice2float $peri]
+    set peri [magic::3digitpastdecimal $peri]
+
+    # Compute total area
+    catch {set magic::atot_val [expr ($area * $nx * $ny)]}
+    # Compute total perimeter
+    catch {set magic::ptot_val [expr ($peri * $nx * $ny)]}
+}
+
+#----------------------------------------------------------------
+# diode: Check device parameters for out-of-bounds values
+#----------------------------------------------------------------
+
+proc sky130::diode_check {parameters} {
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Normalize distance units to microns
+    set l [magic::spice2float $l]
+    set l [magic::3digitpastdecimal $l] 
+    set w [magic::spice2float $w]
+    set w [magic::3digitpastdecimal $w] 
+
+    set area [magic::spice2float $area]
+    set area [magic::3digitpastdecimal $area] 
+    set peri [magic::spice2float $peri]
+    set peri [magic::3digitpastdecimal $peri] 
+
+    if {$l == 0} {
+        # Calculate L from W and area
+	set l [expr ($area / $w)]
+	dict set parameters l [magic::float2spice $l]
+    } elseif {$w == 0} {
+        # Calculate W from L and area
+	set w [expr ($area / $l)]
+	dict set parameters w [magic::float2spice $w]
+    }
+    if {$w < $wmin} {
+	puts stderr "Diode width must be >= $wmin"
+	dict set parameters w $wmin
+    } 
+    if {$l < $lmin} {
+	puts stderr "Diode length must be >= $lmin"
+	dict set parameters l $lmin
+    } 
+    # Calculate area and perimeter from L and W
+    set area [expr ($l * $w)]
+    dict set parameters area [magic::float2spice $area]
+    set peri [expr (2 * ($l + $w))]
+    dict set parameters peri [magic::float2spice $peri]
+    sky130::compute_aptot $parameters
+
+    return $parameters
+}
+
+#------------------------------------------------------------------
+# NOTE:  ndiode_lvt, ndiode_native, pdiode_lvt, and pdiode_hvt are
+# all considered parasitic diodes.  They may be generated by
+# invoking the build procedure on the command line.  To enable them
+# in the PDK, add them to the appropriate compatible {} list.
+#------------------------------------------------------------------
+
+proc sky130::ndiode_defaults {} {
+    return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
+	compatible {ndiode ndiode_h} full_metal 1}
+}
+
+proc sky130::ndiode_lvt_defaults {} {
+    return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
+	full_metal 1}
+}
+
+proc sky130::pdiode_defaults {} {
+    return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 \
+	glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
+	compatible {pdiode pdiode_h} full_metal 1}
+}
+
+proc sky130::pdiode_lvt_defaults {} {
+    return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 \
+	glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
+	full_metal 1}
+}
+
+proc sky130::pdiode_hvt_defaults {} {
+    return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 \
+	glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
+	full_metal 1}
+}
+
+proc sky130::ndiode_h_defaults {} {
+    return {w 0.45 l 0.45 area 0.2024 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
+	compatible {ndiode ndiode_h} full_metal 1}
+}
+
+proc sky130::ndiode_native_defaults {} {
+    return {w 0.45 l 0.45 area 0.2024 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
+	full_metal 1}
+}
+
+proc sky130::pdiode_h_defaults {} {
+    return {w 0.45 l 0.45 area 0.2024 peri 1.8 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+	elc 1 erc 1 etc 1 ebc 1 \
+	glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
+	compatible {pdiode pdiode_h} full_metal 1}
+}
+
+#----------------------------------------------------------------
+
+proc sky130::ndiode_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+proc sky130::ndiode_lvt_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+proc sky130::pdiode_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+proc sky130::pdiode_lvt_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+proc sky130::pdiode_hvt_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+proc sky130::ndiode_h_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+proc sky130::ndiode_native_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+proc sky130::pdiode_h_convert {parameters} {
+    return [sky130::diode_convert $parameters]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::ndiode_dialog {parameters} {
+    sky130::diode_dialog ndiode $parameters
+}
+
+proc sky130::ndiode_lvt_dialog {parameters} {
+    sky130::diode_dialog ndiode_lvt $parameters
+}
+
+proc sky130::pdiode_dialog {parameters} {
+    sky130::diode_dialog pdiode $parameters
+}
+
+proc sky130::pdiode_lvt_dialog {parameters} {
+    sky130::diode_dialog pdiode_lvt $parameters
+}
+
+proc sky130::pdiode_hvt_dialog {parameters} {
+    sky130::diode_dialog pdiode_hvt $parameters
+}
+
+proc sky130::ndiode_h_dialog {parameters} {
+    sky130::diode_dialog ndiode_h $parameters
+}
+
+proc sky130::ndiode_native_dialog {parameters} {
+    sky130::diode_dialog ndiode_native $parameters
+}
+
+proc sky130::pdiode_h_dialog {parameters} {
+    sky130::diode_dialog pdiode_h $parameters
+}
+
+#----------------------------------------------------------------
+
+proc sky130::ndiode_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+proc sky130::ndiode_lvt_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+proc sky130::pdiode_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+proc sky130::pdiode_lvt_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+proc sky130::pdiode_hvt_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+proc sky130::ndiode_h_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+proc sky130::ndiode_native_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+proc sky130::pdiode_h_check {parameters} {
+    sky130::diode_check $parameters
+}
+
+#----------------------------------------------------------------
+# Diode: Draw a single device
+#----------------------------------------------------------------
+
+proc sky130::diode_device {parameters} {
+    # Epsilon for avoiding round-off errors
+    set eps  0.0005
+
+    # Set local default values if they are not in parameters
+    set dev_surround 0
+    set dev_sub_type ""
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # If there is no end_sub_surround, set it to sub_surround
+    if {![dict exists $parameters end_sub_surround]} {
+	set end_sub_surround $sub_surround
+    }
+
+    # Draw the device
+    pushbox
+    box size 0 0
+
+    set hw [/ $w 2.0]
+    set hl [/ $l 2.0]
+
+    # Calculate ring size (measured to contact center)
+    set gx [+ $w [* 2.0 [+ $dev_spacing $dev_surround]] $contact_size]
+    set gy [+ $l [* 2.0 [+ $dev_spacing $dev_surround]] $contact_size]
+
+    # Draw the ring first, because diode may occupy well/substrate plane
+    set guardparams $parameters
+    dict set guardparams plus_diff_type $end_type
+    dict set guardparams plus_contact_type $end_contact_type
+    dict set guardparams diff_surround $end_surround
+    dict set guardparams sub_type $end_sub_type
+    dict set guardparams sub_surround $sub_surround
+    dict set guardparams guard_sub_surround $end_sub_surround
+    dict set guardparams glc $elc
+    dict set guardparams grc $erc
+    dict set guardparams gtc $etc
+    dict set guardparams gbc $ebc
+    set cext [sky130::guard_ring $gx $gy $guardparams]
+
+    pushbox
+    box grow n ${hl}um
+    box grow s ${hl}um
+    box grow e ${hw}um
+    box grow w ${hw}um
+    paint ${dev_type}
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+
+    if {$dev_sub_type != ""} {
+	box grow n ${sub_surround}um
+	box grow s ${sub_surround}um
+	box grow e ${sub_surround}um
+	box grow w ${sub_surround}um
+	paint ${dev_sub_type}
+    }
+    popbox
+
+    if {${w} < ${l}} {
+	set orient vert
+    } else {
+	set orient horz
+    }
+
+    # Reduce width by surround amount
+    set w [- $w [* ${dev_surround} 2.0]]
+    set l [- $l [* ${dev_surround} 2.0]]
+
+    set cext [sky130::unionbox $cext [sky130::draw_contact ${w} ${l} \
+		${dev_surround} ${metal_surround} ${contact_size} \
+		${dev_type} ${dev_contact_type} li ${orient}]]
+
+    popbox
+    return $cext
+}
+
+#----------------------------------------------------------------
+# Diode: Draw the tiled device
+#----------------------------------------------------------------
+
+proc sky130::diode_draw {parameters} {
+    tech unlock *
+
+    # Set defaults if they are not in parameters
+    set doverlap 0	;# overlap diodes at contacts
+    set guard 0		;# draw a guard ring
+    set prohibit_overlap false  ;# don't prohibit overlaps
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Normalize distance units to microns
+    set w [magic::spice2float $w]
+    set l [magic::spice2float $l]
+
+    pushbox
+    box values 0 0 0 0
+
+    # Determine the base device dimensions by drawing one device
+    # while all layers are locked (nothing drawn).  This allows the
+    # base drawing routine to do complicated geometry without having
+    # to duplicate it here with calculations.
+
+    tech lock *
+    set bbox [sky130::diode_device $parameters]
+    # puts stdout "Diagnostic: Device bounding box e $bbox (um)"
+    tech unlock *
+
+    set fw [- [lindex $bbox 2] [lindex $bbox 0]]
+    set fh [- [lindex $bbox 3] [lindex $bbox 1]]
+    set lw [+ [lindex $bbox 2] [lindex $bbox 0]]
+    set lh [+ [lindex $bbox 3] [lindex $bbox 1]]
+
+    # If prohibit_overlap is true, then end overlapping is prohibited when
+    # nx or ny is > 1 to prevent DRC errors (typically from well spacing rule)
+    if {$prohibit_overlap == true} {
+        if {($nx > 1) || ($ny > 1)} {
+	    set doverlap 0
+	}
+    }
+
+    # Determine tile width and height (depends on overlap)
+
+    if {$doverlap == 0} {
+	set dx [+ $fw $end_spacing]
+        set dy [+ $fh $end_spacing]
+    } else {
+        # overlap contact
+        set dx [- $fw [+ [* 2.0 $sub_surround] [* 2.0 $end_surround] $contact_size]]
+        set dy [- $fh [+ [* 2.0 $sub_surround] [* 2.0 $end_surround] $contact_size]]
+    }
+
+    # Determine core width and height
+    set corex [+ [* [- $nx 1] $dx] $fw]
+    set corey [+ [* [- $ny 1] $dy] $fh]
+    set corellx [/ [+ [- $corex $fw] $lw] 2.0]
+    set corelly [/ [+ [- $corey $fh] $lh] 2.0]
+
+    if {$guard != 0} {
+	# Calculate guard ring size (measured to contact center)
+	set gx [+ $corex [* 2.0 [+ $diff_spacing $diff_surround]] $contact_size]
+	set gy [+ $corey [* 2.0 [+ $diff_spacing $diff_surround]] $contact_size]
+
+	# Draw the guard ring first, because diode may occupy well/substrate plane
+	sky130::guard_ring $gx $gy $parameters
+    }
+
+    pushbox
+    box move w ${corellx}um
+    box move s ${corelly}um
+    if {($nx > 1) || ($ny > 1)} {
+	pushbox
+	set hfw [/ $fw 2.0]
+	set hfh [/ $fh 2.0]
+	box move w ${hfw}um
+	box move s ${hfh}um
+	box size ${corex}um ${corey}um
+	paint $end_sub_type
+	popbox
+    }
+    for {set xp 0} {$xp < $nx} {incr xp} {
+	pushbox
+	for {set yp 0} {$yp < $ny} {incr yp} {
+	    sky130::diode_device $parameters
+            box move n ${dy}um
+        }
+	popbox
+        box move e ${dx}um
+    }
+    popbox
+    popbox
+
+    tech revert
+}
+
+#----------------------------------------------------------------
+
+proc sky130::ndiode_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    dev_type		ndiode \
+	    dev_contact_type	ndic \
+	    end_type		psd \
+	    end_contact_type	psc \
+	    end_sub_type	psub \
+	    dev_spacing		${diff_spacing} \
+	    dev_surround	${diff_surround} \
+	    end_spacing		${diff_spacing} \
+	    end_surround	0 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+} 
+
+#----------------------------------------------------------------
+# NOTE:  Use ppd instead of psd so that there is additional
+# diffusion around the contact, allowing more space for the
+# implant (likewise pdiode_lvt and pdiode_hvt).
+
+proc sky130::ndiode_lvt_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    dev_type		ndiodelvt \
+	    dev_contact_type	ndilvtc \
+	    end_type		ppd \
+	    end_contact_type	psc \
+	    end_sub_type	psub \
+	    dev_spacing		${diff_spacing} \
+	    dev_surround	${diff_surround} \
+	    end_spacing		${diff_spacing} \
+	    end_surround	${diff_surround} \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+} 
+
+#----------------------------------------------------------------
+
+proc sky130::pdiode_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    dev_type		pdiode \
+	    guard		1 \
+	    dev_contact_type	pdic \
+	    end_type		nsd \
+	    end_contact_type	nsc \
+	    end_sub_type	nwell \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    sub_type		psub \
+	    dev_spacing		${diff_spacing} \
+	    dev_surround	${diff_surround} \
+	    end_spacing		${diff_spacing} \
+	    end_surround	0 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::pdiode_lvt_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    dev_type		pdiodelvt \
+	    guard		1 \
+	    dev_contact_type	pdilvtc \
+	    end_type		nnd \
+	    end_contact_type	nsc \
+	    end_sub_type	nwell \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    sub_type		psub \
+	    dev_spacing		${diff_spacing} \
+	    dev_surround	${diff_surround} \
+	    end_spacing		${diff_spacing} \
+	    end_surround	${diff_surround} \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::pdiode_hvt_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    dev_type		pdiodehvt \
+	    guard		1 \
+	    dev_contact_type	pdihvtc \
+	    end_type		nnd \
+	    end_contact_type	nsc \
+	    end_sub_type	nwell \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    sub_type		psub \
+	    dev_spacing		${diff_spacing} \
+	    dev_surround	${diff_surround} \
+	    end_spacing		${diff_spacing} \
+	    end_surround	${diff_surround} \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::ndiode_h_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    dev_type		mvndiode \
+	    dev_contact_type	mvndic \
+	    end_type		mvpsd \
+	    end_contact_type	mvpsc \
+	    end_sub_type	psub \
+	    diff_spacing	0.37 \
+	    dev_spacing		0.39 \
+	    dev_surround	${diff_surround} \
+	    end_spacing		0.36 \
+	    end_surround	${diff_surround} \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+}
+
+
+proc sky130::ndiode_native_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    dev_type		nndiode \
+	    dev_contact_type	nndic \
+	    end_type		mvpsd \
+	    end_contact_type	mvpsc \
+	    end_sub_type	psub \
+	    dev_spacing		0.37 \
+	    dev_surround	${diff_surround} \
+	    end_spacing		0.30 \
+	    end_surround	${diff_surround} \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+} 
+
+
+#----------------------------------------------------------------
+
+proc sky130::pdiode_h_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    guard		1 \
+	    dev_type 		mvpdiode \
+	    dev_contact_type	mvpdic \
+	    end_type		mvnsd \
+	    end_contact_type	mvnsc \
+	    end_sub_type	nwell \
+	    plus_diff_type	mvpsd \
+	    plus_contact_type	mvpsc \
+	    sub_type		psub \
+	    diff_spacing	0.58 \
+	    dev_spacing		0.37 \
+	    dev_surround	${diff_surround} \
+	    end_spacing		0.30 \
+	    end_sub_surround	0.33 \
+	    end_surround	${diff_surround} \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::diode_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+# Drawn capactitor routines
+# NOTE:  Work in progress.  These values need to be corrected.
+#----------------------------------------------------------------
+
+#ifdef MIM
+proc sky130::xcmimc1_defaults {} {
+    return {w 2.00 l 2.00 val 4.0 carea 1.00 cperi 0.17 \
+		nx 1 ny 1 dummy 0 square 0 lmin 2.00 wmin 2.00 \
+		lmax 30.0 wmax 30.0 dc 0 bconnect 1 tconnect 1}
+}
+proc sky130::xcmimc2_defaults {} {
+    return {w 2.00 l 2.00 val 4.0 carea 1.00 cperi 0.17 \
+		nx 1 ny 1 dummy 0 square 0 lmin 2.00 wmin 2.00 \
+		lmax 30.0 wmax 30.0 dc 0 bconnect 1 tconnect 1}
+}
+#endif (MIM)
+
+
+#----------------------------------------------------------------
+# Recalculate capacitor values from GUI entries.
+# Recomputes W/L and Value as long as 2 of them are present
+# (To be completed)
+#----------------------------------------------------------------
+
+proc sky130::cap_recalc {field parameters} {
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+    switch  $field {
+	val { puts stdout "value changed" }
+	w   { puts stdout "width changed" }
+	l   { puts stdout "length changed" }
+    }
+    dict set parameters val $val
+    dict set parameters w $w
+    dict set parameters l $l
+}
+
+#----------------------------------------------------------------
+# Capacitor defaults:
+#----------------------------------------------------------------
+#  w      Width of drawn cap
+#  l      Length of drawn cap
+#  nx     Number of devices in X
+#  ny     Number of devices in Y
+#  val    Default cap value
+#  carea  Area
+#  cperi  Perimeter
+#  dummy  Add dummy cap
+#  square Make square capacitor
+#
+#  (not user-editable)
+#
+#  wmin   Minimum allowed width
+#  lmin   Minimum allowed length
+#  dc     Area to remove to calculated area 
+#----------------------------------------------------------------
+
+#----------------------------------------------------------------
+# capacitor: Conversion from SPICE netlist parameters to toolkit
+#----------------------------------------------------------------
+
+proc sky130::cap_convert {parameters} {
+    set pdkparams [dict create]
+    dict for {key value} $parameters {
+	switch -nocase $key {
+	    l -
+	    w {
+		# Length and width are converted to units of microns
+		set value [magic::spice2float $value]
+		# set value [expr $value * 1e6]
+		set value [magic::3digitpastdecimal $value]
+		dict set pdkparams [string tolower $key] $value
+	    }
+	    m {
+                # Convert m to ny
+		dict set pdkparams ny $value
+	    }
+	}
+    }
+    return $pdkparams
+}
+
+#ifdef MIM
+proc sky130::xcmimc1_convert {parameters} {
+    return [cap_convert $parameters]
+}
+proc sky130::xcmimc2_convert {parameters} {
+    return [cap_convert $parameters]
+}
+#endif (MIM)
+
+#----------------------------------------------------------------
+# capacitor: Interactively specifies the fixed layout parameters
+#----------------------------------------------------------------
+
+proc sky130::cap_dialog {device parameters} {
+    # Editable fields:      w, l, nx, ny, val
+    # Checked fields:  	    square, dummy
+
+    magic::add_entry val "Value (fF)" $parameters
+    sky130::compute_ctot $parameters
+    magic::add_message ctot "Total capacitance (pF)" $parameters
+    magic::add_entry l "Length (um)" $parameters
+    magic::add_entry w "Width (um)" $parameters
+    magic::add_entry nx "X Repeat" $parameters
+    magic::add_entry ny "Y Repeat" $parameters
+
+    if {[dict exists $parameters square]} {
+	magic::add_checkbox square "Square capacitor" $parameters
+    }
+    if {[dict exists $parameters bconnect]} {
+	magic::add_checkbox bconnect "Connect bottom plates in array" $parameters
+    }
+    if {[dict exists $parameters tconnect]} {
+	magic::add_checkbox tconnect "Connect top plates in array" $parameters
+    }
+    if {[dict exists $parameters guard]} {
+	magic::add_checkbox guard "Add guard ring" $parameters
+    }
+
+    magic::add_dependency sky130::cap_recalc $device sky130 l w val
+
+    # magic::add_checkbox dummy "Add dummy" $parameters
+}
+
+#ifdef MIM
+proc sky130::xcmimc1_dialog {parameters} {
+    sky130::cap_dialog xcmimc1 $parameters
+}
+proc sky130::xcmimc2_dialog {parameters} {
+    sky130::cap_dialog xcmimc2 $parameters
+}
+#endif (MIM)
+
+#----------------------------------------------------------------
+# Capacitor total capacitance computation
+#----------------------------------------------------------------
+
+proc sky130::compute_ctot {parameters} {
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+    set val [magic::spice2float $val]
+    set val [magic::3digitpastdecimal $val]
+
+    # Compute total capacitance (and convert fF to pF)
+    catch {set magic::ctot_val [expr (0.001 * $val * $nx * $ny)]}
+}
+
+#----------------------------------------------------------------
+# Capacitor: Draw a single device
+#----------------------------------------------------------------
+
+proc sky130::cap_device {parameters} {
+    # Epsilon for avoiding round-off errors
+    set eps  0.0005
+
+    # Set local default values if they are not in parameters
+    set cap_surround 0
+    set bot_surround 0
+    set top_surround 0
+    set bconnect 0	    ;# bottom plates are connected in array
+    set cap_spacing 0	    ;# cap spacing in array
+    set top_metal_space 0   ;# top metal spacing (if larger than cap spacing)
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    if {![dict exists $parameters top_metal_space]} {
+	set top_metal_space $metal_spacing
+    }
+
+    # Draw the device
+    pushbox
+    box size 0 0
+
+    pushbox
+    set hw [/ $w 2.0]
+    set hl [/ $l 2.0]
+    box grow e ${hw}um
+    box grow w ${hw}um
+    box grow n ${hl}um
+    box grow s ${hl}um
+    paint ${cap_type}
+    pushbox
+    box grow n -${cap_surround}um
+    box grow s -${cap_surround}um
+    box grow e -${cap_surround}um
+    box grow w -${cap_surround}um
+    paint ${cap_contact_type}
+    pushbox
+    box grow n ${top_surround}um
+    box grow s ${top_surround}um
+    box grow e ${top_surround}um
+    box grow w ${top_surround}um
+    paint ${top_type}
+    set cext [sky130::getbox]
+    popbox
+    popbox
+    pushbox
+    box grow n ${bot_surround}um
+    box grow s ${bot_surround}um
+    box grow e ${bot_surround}um
+    box grow w ${bot_surround}um
+
+    paint ${bot_type}
+    # Create boundary using properties
+    property FIXED_BBOX [box values]
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+
+    # Extend bottom metal under contact to right
+    box grow e ${end_spacing}um
+    set chw [/ ${contact_size} 2.0]
+    box grow e ${chw}um
+    box grow e ${end_surround}um
+    paint ${bot_type}
+
+    popbox
+    popbox
+
+    # Draw contact to right.  Reduce contact extent if devices are not
+    # wired together and the top metal spacing rule limits the distance
+    set lcont $l
+    if {($bconnect == 0) && ($ny > 1)} {
+	if {$cap_spacing < $top_metal_space} {
+	    set cspace [- $top_metal_space $cap_spacing]
+	    set lcont [- $l $cspace]
+	}
+    }
+
+    pushbox
+    box move e ${hw}um
+    box move e ${bot_surround}um
+    box move e ${end_spacing}um
+    set cl [- [+ ${lcont} [* ${bot_surround} 2.0]] [* ${end_surround} 2.0]]
+    set cl [- ${cl} ${metal_surround}]  ;# see below
+    set cext [sky130::unionbox $cext [sky130::draw_contact 0 ${cl} \
+		${end_surround} ${metal_surround} ${contact_size} \
+		${bot_type} ${top_contact_type} ${top_type} full]]
+    popbox
+    popbox
+
+    return $cext
+
+    # cl shrinks top and bottom to accomodate larger bottom metal
+    # surround rule for contacts near a MiM cap.  This should be its
+    # own variable, but metal_surround is sufficient.
+}
+
+#----------------------------------------------------------------
+# Metal plate sandwich capacitor:  Draw a single device
+#----------------------------------------------------------------
+
+proc sky130::sandwich_cap_device {parameters} {
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    pushbox
+    box size 0 0
+
+    set hw [/ $w 2.0]
+    set hl [/ $l 2.0]
+
+    set cw [- [* $hw [/ 2.0 3]] [* $cont_surround 2.0]]
+    set cl [- [* $hl [/ 2.0 3]] [* $cont_surround 2.0]]
+
+    # plate capacitor defines layers p0, p1, etc.
+    for {set i 0} {$i < 20} {incr i} {
+        if {[catch {set layer [subst \$p${i}_type]}]} {break}  ;# no more layers defined
+	pushbox
+	box grow e ${hw}um
+	box grow w ${hw}um
+	box grow n ${hl}um
+	box grow s ${hl}um
+        if {![catch {set shrink [subst \$p${i}_shrink]}]} {
+	    box grow e -${shrink}um
+	    box grow w -${shrink}um
+	    box grow n -${shrink}um
+	    box grow s -${shrink}um
+	    set cutout_spacing [+ [* ${shrink} 2.0] [/ $via_size 2.0] $cont_surround]
+	} else {
+	    set cutout_spacing 0
+	}
+
+	paint ${layer}
+
+	if {$i == 1} {
+	    # Note that cap_type geometry is coincident with p1_type.
+	    # Typically, this will define a layer that outputs as both
+	    # poly and a capacitor definition layer.
+	    if {[dict exists $parameters cap_type]} {
+		paint $cap_type
+	    }
+	}
+	popbox
+
+	# Even layers connect at corners, odd layers connect at sides.
+	# Even layers cut out the sides, odd layers cut out the corners.
+	# Layer zero has no side contacts or cutout.
+
+	if {[% $i 2] == 0} {
+	    set cornercmd  paint
+	    set cornersize $cutout_spacing
+	    set sidecmd    erase
+	    set nssidelong   [+ $cutout_spacing [/ $hw 3.0]]
+	    set ewsidelong   [+ $cutout_spacing [/ $hl 3.0]]
+	    set sideshort    $cutout_spacing
+	} else {
+	    set cornercmd  erase
+	    set cornersize $cutout_spacing
+	    set sidecmd    paint
+	    set nssidelong   [/ $hw 3.0]
+	    set ewsidelong   [/ $hl 3.0]
+	    set sideshort    $cutout_spacing
+	}
+
+	if {$i > 0} {
+	    pushbox
+	    box move e ${hw}um
+	    box grow n ${ewsidelong}um
+	    box grow s ${ewsidelong}um
+	    box grow w ${sideshort}um
+	    ${sidecmd} ${layer}
+	    popbox
+	    pushbox
+	    box move n ${hl}um
+	    box grow e ${nssidelong}um
+	    box grow w ${nssidelong}um
+	    box grow s ${sideshort}um
+	    ${sidecmd} ${layer}
+	    popbox
+	    pushbox
+	    box move w ${hw}um
+	    box grow n ${ewsidelong}um
+	    box grow s ${ewsidelong}um
+	    box grow e ${sideshort}um
+	    ${sidecmd} ${layer}
+	    popbox
+	    pushbox
+	    box move s ${hl}um
+	    box grow e ${nssidelong}um
+	    box grow w ${nssidelong}um
+	    box grow n ${sideshort}um
+	    ${sidecmd} ${layer}
+	    popbox
+
+	    pushbox
+	    box move n ${hl}um
+	    box move e ${hw}um
+	    box grow s ${cornersize}um
+	    box grow w ${cornersize}um
+	    ${cornercmd} ${layer}
+	    popbox
+	    pushbox
+	    box move n ${hl}um
+	    box move w ${hw}um
+	    box grow s ${cornersize}um
+	    box grow e ${cornersize}um
+	    ${cornercmd} ${layer}
+	    popbox
+	    pushbox
+	    box move s ${hl}um
+	    box move e ${hw}um
+	    box grow n ${cornersize}um
+	    box grow w ${cornersize}um
+	    ${cornercmd} ${layer}
+	    popbox
+	    pushbox
+	    box move s ${hl}um
+	    box move w ${hw}um
+	    box grow n ${cornersize}um
+	    box grow e ${cornersize}um
+	    ${cornercmd} ${layer}
+	    popbox
+	}
+    }
+
+    # Draw contacts after all layers have been drawn, so that erasing
+    # layers does not affect the contacts.
+
+    for {set i 0} {$i < 20} {incr i} {
+        if {![catch {set contact [subst \$p${i}_contact_type]}]} {
+	    set layer [subst \$p${i}_type]
+	    set j [+ $i 1]
+	    set toplayer [subst \$p${j}_type]
+
+	    # Draw corner contacts
+	    pushbox
+	    box move e ${hw}um
+	    box move n ${hl}um
+	    sky130::draw_contact 0 0 \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+	    popbox
+	    pushbox
+	    box move w ${hw}um
+	    box move n ${hl}um
+	    sky130::draw_contact 0 0 \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+	    popbox
+	    pushbox
+	    box move e ${hw}um
+	    box move s ${hl}um
+	    sky130::draw_contact 0 0 \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+	    popbox
+	    pushbox
+	    box move w ${hw}um
+	    box move s ${hl}um
+	    sky130::draw_contact 0 0 \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+	    popbox
+
+	    # Draw side contacts (except on poly)
+	    if {$i > 0} {
+		pushbox
+		box move w ${hw}um
+		sky130::draw_contact 0 ${cl} \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+		popbox
+		pushbox
+		box move e ${hw}um
+		sky130::draw_contact 0 ${cl} \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+		popbox
+		pushbox
+		box move n ${hl}um
+		sky130::draw_contact ${cw} 0 \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+		popbox
+		pushbox
+		box move s ${hl}um
+		sky130::draw_contact ${cw} 0 \
+			${cont_surround} ${cont_surround} ${via_size} \
+			${layer} ${contact} ${toplayer} full
+		popbox
+	    }
+	} else {
+	    break
+	}
+    }
+
+    popbox
+    # Bounding box is the same as the device length and width
+    set cext [list -$hw -$hl $hw $hl]
+    return $cext
+}
+
+#----------------------------------------------------------------
+# Capacitor: Draw the tiled device
+#----------------------------------------------------------------
+
+proc sky130::cap_draw {parameters} {
+    tech unlock *
+    set savesnap [snap]
+    snap internal
+
+    # Set defaults if they are not in parameters
+    set coverlap 0	;# overlap capacitors at contacts
+    set guard 0		;# draw a guard ring
+    set sandwich 0	;# this is not a plate sandwich capacitor
+    set cap_spacing 0	;# abutted caps if spacing is zero
+    set cap_diff_spacing 0
+    set wide_cap_spacing 0  ;# additional spacing for wide metal rule
+    set wide_cap_width 0
+    set end_spacing 0
+    set end_surround 0
+    set bot_surround 0
+    set top_metal_width 0
+    set bconnect 0	;# connect bottom plates in array
+    set tconnect 0	;# connect top plates in array
+    set top_type ""
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Normalize distance units to microns
+    set w [magic::spice2float $w]
+    set l [magic::spice2float $l]
+
+    pushbox
+    box values 0 0 0 0
+
+    # Determine the base device dimensions by drawing one device
+    # while all layers are locked (nothing drawn).  This allows the
+    # base drawing routine to do complicated geometry without having
+    # to duplicate it here with calculations.
+
+    tech lock *
+    if {$sandwich == 1} {
+	set bbox [sky130::sandwich_cap_device $parameters]
+    } else {
+	set bbox [sky130::cap_device $parameters]
+    }
+    # puts stdout "Diagnostic: Device bounding box e $bbox (um)"
+    tech unlock *
+
+    set fw [- [lindex $bbox 2] [lindex $bbox 0]]
+    set fh [- [lindex $bbox 3] [lindex $bbox 1]]
+    set lw [+ [lindex $bbox 2] [lindex $bbox 0]]
+    set lh [+ [lindex $bbox 3] [lindex $bbox 1]]
+
+    set dwide 0
+    if {($fw >= $wide_cap_width) && ($fh >= $wide_cap_width)} {
+	set dwide $wide_cap_spacing
+    }
+
+    # Determine tile width and height (depends on overlap)
+    if {$coverlap == 0} {
+        set dy [+ $fh $cap_spacing $dwide]
+    } else {
+        # overlap at end contact
+        set dy [- $fh [+ $end_surround $end_surround $contact_size]]
+    }
+    # Contact is placed on right so spacing is determined by end_spacing.
+    set dx [+ $fw $end_spacing $dwide]
+
+    # Determine core width and height
+    set corex [+ [* [- $nx 1] $dx] $fw]
+    set corey [+ [* [- $ny 1] $dy] $fh]
+    set corellx [/ [+ [- $corex $fw] $lw] 2.0]
+    set corelly [/ [+ [- $corey $fh] $lh] 2.0]
+
+    if {$guard != 0} {
+	# Calculate guard ring size (measured to contact center)
+	set gx [+ $corex [* 2.0 [+ $cap_diff_spacing $diff_surround]] $contact_size]
+	set gy [+ $corey [* 2.0 [+ $end_spacing $diff_surround]] $contact_size]
+
+	# Draw the guard ring first.
+	sky130::guard_ring $gx $gy $parameters
+    }
+
+    set twidth [+ ${contact_size} ${end_surround} ${end_surround}]
+    if {${twidth} < ${top_metal_width}} {
+	set twidth ${top_metal_width}
+    }
+    set hmw [/ $twidth 2.0]
+    set hdy [/ $dy 2.0]
+    set cdx [+ [/ ${w} 2.0] ${bot_surround} ${end_spacing}]
+
+    pushbox
+    box move w ${corellx}um
+    box move s ${corelly}um
+    for {set xp 0} {$xp < $nx} {incr xp} {
+	pushbox
+	for {set yp 0} {$yp < $ny} {incr yp} {
+	    if {$sandwich == 1} {
+		sky130::sandwich_cap_device $parameters
+	    } else {
+		sky130::cap_device $parameters
+	    }
+	    if {$ny > 1} {
+		pushbox
+		box grow e ${hmw}um
+		box grow w ${hmw}um
+		box grow n ${hdy}um
+		box grow s ${hdy}um
+		if {($top_type != "") && ($tconnect == 1)} {
+		    paint ${top_type}
+		}
+		if {($top_type != "") && ($bconnect == 1)} {
+		    box move e ${cdx}um
+		    paint ${top_type}
+		}
+		popbox
+	    }
+            box move n ${dy}um
+        }
+	popbox
+        box move e ${dx}um
+    }
+    popbox
+    popbox
+
+    snap $savesnap
+    tech revert
+}
+
+#----------------------------------------------------------------
+
+#ifdef MIM
+proc sky130::xcmimc1_draw {parameters} {
+    set newdict [dict create \
+	    top_type 		m4 \
+	    top_contact_type	via3 \
+	    cap_type 		mimcap \
+	    cap_contact_type	mimcc \
+	    bot_type 		m3 \
+	    bot_surround	0.5 \
+	    cap_spacing		0.5 \
+	    cap_surround	0.2 \
+	    top_surround	0.005 \
+	    end_surround	0.1 \
+	    end_spacing		0.60 \
+	    contact_size	0.32 \
+	    metal_surround	0.08 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::cap_draw $drawdict]
+}
+
+proc sky130::xcmimc2_draw {parameters} {
+    set newdict [dict create \
+	    top_type 		m5 \
+	    top_contact_type	via4 \
+	    cap_type 		mimcap2 \
+	    cap_contact_type	mim2cc \
+	    bot_type 		m4 \
+	    bot_surround	0.5 \
+	    cap_spacing		0.5 \
+	    cap_surround	0.2 \
+	    top_surround	0.12 \
+	    end_surround	0.1 \
+	    end_spacing		2.10 \
+	    contact_size	1.18 \
+	    metal_surround	0.21 \
+	    top_metal_width	1.6 \
+	    top_metal_space	1.7 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::cap_draw $drawdict]
+}
+
+#endif (MIM)
+
+#----------------------------------------------------------------
+# capacitor: Check device parameters for out-of-bounds values
+#----------------------------------------------------------------
+
+proc sky130::cap_check {parameters} {
+    # In case wmax and/or lmax are undefined
+    set lmax 0
+    set wmax 0
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Normalize distance units to microns
+    set l [magic::spice2float $l]
+    set l [magic::3digitpastdecimal $l] 
+    set w [magic::spice2float $w]
+    set w [magic::3digitpastdecimal $w] 
+
+    set val   [magic::spice2float $val]
+    set carea [magic::spice2float $carea]
+    set cperi [magic::spice2float $cperi]
+    set dc    [magic::spice2float $dc]
+
+    if {$square == 1} {
+        # Calculate L and W from value
+	set a $carea
+	set b [expr $cperi * 4]
+	set c [expr -4 * $dc - $val]
+	set l [expr ((-$b + sqrt($b * $b - (4 * $a * $c))) / (2 * $a))]
+	dict set parameters l [magic::float2spice $l]
+	set w $l
+	dict set parameters w [magic::float2spice $w]
+    } elseif {$l == 0} {
+        # Calculate L from W and value
+	set l [expr (($val + 4 * $dc - 2 * $w * $cperi) / ($w * $carea + 2 * $cperi))]
+	dict set parameters l [magic::float2spice $l]
+    } elseif {$w == 0} {
+        # Calculate W from L and value
+	set w [expr (($val + 4 * $dc - 2 * $l * $cperi) / ($l * $carea + 2 * $cperi))]
+	dict set parameters w [magic::float2spice $w]
+    }
+    if {$w < $wmin} {
+	puts stderr "Capacitor width must be >= $wmin"
+	dict set parameters w $wmin
+	set w $wmin
+    } 
+    if {$l < $lmin} {
+	puts stderr "Capacitor length must be >= $lmin"
+	dict set parameters l $lmin
+	set l $lmin
+    } 
+    if {($wmax > 0) && ($w > $wmax)} {
+	puts stderr "Capacitor width must be <= $wmax"
+	dict set parameters w $wmax
+	set w $wmax
+    } 
+    if {($lmax > 0) && ($l > $lmax)} {
+	puts stderr "Capacitor length must be <= $lmax"
+	dict set parameters l $lmax
+	set l $lmax
+    } 
+    # Calculate value from L and W
+    set cval [expr ($l * $w * $carea + 2 * ($l + $w) * $cperi - 4 * $dc)]
+    dict set parameters val [magic::float2spice $cval]
+    sky130::compute_ctot $parameters
+
+    return $parameters
+}
+
+#ifdef MIM
+proc sky130::xcmimc1_check {parameters} {
+    return [sky130::cap_check $parameters]
+}
+proc sky130::xcmimc2_check {parameters} {
+    return [sky130::cap_check $parameters]
+}
+#endif (MIM)
+
+#----------------------------------------------------------------
+# Drawn resistors
+#----------------------------------------------------------------
+
+#----------------------------------------------------------------
+# Resistor defaults:
+#----------------------------------------------------------------
+# User editable values:
+#
+#  val   Resistor value in ohms
+#  w	 Width
+#  l	 Length
+#  t	 Number of turns
+#  m	 Number devices in Y
+#  nx	 Number devices in X
+#  snake Use snake geometry (if not present, snake geometry not allowed)
+#  dummy Flag to mark addition of dummy resistor
+#
+# Non-user editable values:
+#
+#  wmin  Minimum allowed width
+#  lmin  Minimum allowed length
+#  rho	 Resistance in ohms per square
+#  dw    Delta width
+#  term  Resistance per terminal
+#  sterm Additional resistance per terminal for snake geometry
+#----------------------------------------------------------------
+
+#----------------------------------------------------------------
+# xpwres: Specify all user-editable default values and those
+# needed by xpwres_check
+# NOTE:  Work in progress.  These values need to be corrected.
+#----------------------------------------------------------------
+
+proc sky130::xpwres_defaults {} {
+    return {w 2.650 l 26.50 m 1 nx 1 wmin 2.650 lmin 26.50 \
+	 	rho 975 val 4875 dummy 0 dw 0.25 term 1.0 \
+		endcov 100 full_metal 1}
+}
+
+#----------------------------------------------------------------
+# rpp1: Specify all user-editable default values and those
+# needed by rp1_check
+#----------------------------------------------------------------
+
+proc sky130::mrp1_defaults {} {
+    return {w 0.330 l 1.650 m 1 nx 1 wmin 0.330 lmin 1.650 \
+		rho 48.2 val 241 dummy 0 dw 0.0 term 0.0 \
+		sterm 0.0 caplen 0.4 snake 0 \
+		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
+		full_metal 1}
+}
+
+# "term" is rho * 0.06, the distance between xpc edge and CONT.
+proc sky130::xhrpoly_defaults {} {
+    return {w 0.350 l 0.50 m 1 nx 1 wmin 0.350 lmin 0.50 \
+		rho 319.8 val 456.857 dummy 0 dw 0.0 term 19.188 \
+		sterm 0.0 caplen 0 glc 1 grc 1 gtc 1 gbc 1 \
+		full_metal 1}
+}
+
+# "term" is rho * 0.06, the distance between xpc edge and CONT.
+proc sky130::uhrpoly_defaults {} {
+    return {w 0.350 l 0.50 m 1 nx 1 wmin 0.350 lmin 0.50 \
+		rho 2000 val 2875.143 dummy 0 dw 0.0 term 120 \
+		sterm 0.0 caplen 0 \
+		glc 1 grc 1 gtc 1 gbc 1 full_metal 1}
+}
+
+#----------------------------------------------------------------
+# mrdn: Specify all user-editable default values and those
+# needed by rdn_check
+#----------------------------------------------------------------
+
+proc sky130::mrdn_defaults {} {
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+		rho 120 val 600.0 dummy 0 dw 0.05 term 0.0 \
+		sterm 0.0 caplen 0.4 snake 0 \
+		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
+		full_metal 1}
+}
+
+proc sky130::mrdn_hv_defaults {} {
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+		rho 120 val 600.0 dummy 0 dw 0.02 term 0.0 \
+		sterm 0.0 caplen 0.4 snake 0 \
+		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
+		full_metal 1}
+}
+
+#----------------------------------------------------------------
+# mrdp: Specify all user-editable default values and those
+# needed by rdp_check
+#----------------------------------------------------------------
+
+proc sky130::mrdp_defaults {} {
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+		rho 197 val 985.0 dummy 0 dw 0.02 term 0.0 \
+		sterm 0.0 caplen 0.60 snake 0 \
+		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
+		full_metal 1}
+}
+
+proc sky130::mrdp_hv_defaults {} {
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+		rho 197 val 985.0 dummy 0 dw 0.02 term 0.0 \
+		sterm 0.0 caplen 0.60 snake 0 \
+		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
+		full_metal 1}
+}
+
+#----------------------------------------------------------------
+# mrl1: Specify all user-editable default values and those needed
+# by mrl1_check
+#----------------------------------------------------------------
+
+proc sky130::mrl1_defaults {} {
+    return {w 0.170 l 0.170 m 1 nx 1 wmin 0.17 lmin 0.17 \
+		rho 12.8 val 12.8 dummy 0 dw 0.0 term 0.0 snake 0 \
+		roverlap 0}
+}
+
+#----------------------------------------------------------------
+# mrm1: Specify all user-editable default values and those needed
+# by mrm1_check
+#----------------------------------------------------------------
+
+proc sky130::mrm1_defaults {} {
+    return {w 0.140 l 0.140 m 1 nx 1 wmin 0.14 lmin 0.14 \
+		rho 0.125 val 0.125 dummy 0 dw 0.0 term 0.0 \
+		roverlap 0}
+}
+
+#----------------------------------------------------------------
+# mrm2: Specify all user-editable default values and those needed
+# by mrm2_check
+#----------------------------------------------------------------
+
+proc sky130::mrm2_defaults {} {
+    return {w 0.140 l 0.140 m 1 nx 1 wmin 0.14 lmin 0.14 \
+		rho 0.125 val 0.125 dummy 0 dw 0.0 term 0.0 \
+		roverlap 0}
+}
+
+#----------------------------------------------------------------
+# mrm3: Specify all user-editable default values and those needed
+# by mrm3_check
+#----------------------------------------------------------------
+
+proc sky130::mrm3_defaults {} {
+    return {w 0.300 l 0.300 m 1 nx 1 wmin 0.30 lmin 0.30 \
+		rho 0.047 val 0.047 dummy 0 dw 0.0 term 0.0 \
+		roverlap 0}
+}
+
+#----------------------------------------------------------------
+# Additional entries for mrm4 and mrm5, depending on the
+# back-end metal stack.
+#----------------------------------------------------------------
+
+#ifdef METAL5
+proc sky130::mrm4_defaults {} {
+    return {w 0.300 l 0.300 m 1 nx 1 wmin 0.30 lmin 0.30 \
+		rho 0.047 val 0.047 dummy 0 dw 0.0 term 0.0 \
+		roverlap 0}
+}
+proc sky130::mrm5_defaults {} {
+    return {w 1.600 l 1.600 m 1 nx 1 wmin 1.60 lmin 1.60 \
+		rho 0.029 val 0.029 dummy 0 dw 0.0 term 0.0 \
+		roverlap 0}
+}
+#endif (METAL5)
+
+#----------------------------------------------------------------
+# resistor: Conversion from SPICE netlist parameters to toolkit
+#----------------------------------------------------------------
+
+proc sky130::res_convert {parameters} {
+    set pdkparams [dict create]
+    dict for {key value} $parameters {
+	switch -nocase $key {
+	    l -
+	    w {
+		# Length and width are converted to units of microns
+		set value [magic::spice2float $value]
+		# set value [expr $value * 1e6]
+		set value [magic::3digitpastdecimal $value]
+		dict set pdkparams [string tolower $key] $value
+	    }
+	}
+    }
+    return $pdkparams
+}
+
+#----------------------------------------------------------------
+
+proc sky130::xpwres_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrp1_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::xhrpoly_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::uhrpoly_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrdn_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrdp_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrdn_hv_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrdp_hv_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrl1_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrm1_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrm2_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+proc sky130::mrm3_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+
+#ifdef METAL5
+proc sky130::mrm4_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+proc sky130::mrm5_convert {parameters} {
+    return [sky130::res_convert $parameters]
+}
+#endif (METAL5)
+
+#----------------------------------------------------------------
+# resistor: Interactively specifies the fixed layout parameters
+#----------------------------------------------------------------
+
+proc sky130::res_dialog {device parameters} {
+    # Editable fields:      w, l, t, nx, m, val
+    # Checked fields:  
+
+    magic::add_entry val "Value (ohms)" $parameters
+    if {[dict exists $parameters snake]} {
+	sky130::compute_ltot $parameters
+	magic::add_message ltot "Total length (um)" $parameters
+    }
+    magic::add_entry l "Length (um)" $parameters
+    magic::add_entry w "Width (um)" $parameters
+    magic::add_entry nx "X Repeat" $parameters
+    magic::add_entry m "Y Repeat" $parameters
+    if {[dict exists $parameters endcov]} {
+	magic::add_entry endcov "End contact coverage (%)" $parameters
+    }
+
+    # magic::add_checkbox dummy "Add dummy" $parameters
+
+    if {[dict exists $parameters snake]} {
+	magic::add_checkbox snake "Use snake geometry" $parameters
+    }
+    if {[dict exists $parameters roverlap]} {
+	if {[dict exists $parameters endcov]} {
+            magic::add_checkbox roverlap "Overlap at end contact" $parameters
+	} else {
+            magic::add_checkbox roverlap "Overlap at ends" $parameters
+	}
+    }
+    magic::add_checkbox guard "Add guard ring" $parameters
+
+    if {[dict exists $parameters full_metal]} {
+	magic::add_checkbox full_metal "Full metal guard ring" $parameters
+    }
+    if {[dict exists $parameters glc]} {
+	magic::add_checkbox glc "Add left guard ring contact" $parameters
+    }
+    if {[dict exists $parameters grc]} {
+	magic::add_checkbox grc "Add right guard ring contact" $parameters
+    }
+    if {[dict exists $parameters gtc]} {
+	magic::add_checkbox gtc "Add top guard ring contact" $parameters
+    }
+    if {[dict exists $parameters gbc]} {
+	magic::add_checkbox gbc "Add bottom guard ring contact" $parameters
+    }
+
+    if {[dict exists $parameters snake]} {
+       magic::add_dependency sky130::res_recalc $device sky130 l w val nx snake
+    } else {
+       magic::add_dependency sky130::res_recalc $device sky130 l w val nx
+    }
+}
+
+#----------------------------------------------------------------
+
+proc sky130::xpwres_dialog {parameters} {
+    sky130::res_dialog xpwres $parameters
+}
+
+proc sky130::mrp1_dialog {parameters} {
+    sky130::res_dialog mrp1 $parameters
+}
+
+proc sky130::xhrpoly_dialog {parameters} {
+    sky130::res_dialog xhrpoly $parameters
+}
+
+proc sky130::uhrpoly_dialog {parameters} {
+    sky130::res_dialog uhrpoly $parameters
+}
+
+proc sky130::mrdn_dialog {parameters} {
+    sky130::res_dialog mrdn $parameters
+}
+
+proc sky130::mrdp_dialog {parameters} {
+    sky130::res_dialog mrdp $parameters
+}
+
+proc sky130::mrdn_hv_dialog {parameters} {
+    sky130::res_dialog mrdn_hv $parameters
+}
+
+proc sky130::mrdp_hv_dialog {parameters} {
+    sky130::res_dialog mrdp_hv $parameters
+}
+
+proc sky130::mrl1_dialog {parameters} {
+    sky130::res_dialog mrl1 $parameters
+}
+
+proc sky130::mrm1_dialog {parameters} {
+    sky130::res_dialog mrm1 $parameters
+}
+
+proc sky130::mrm2_dialog {parameters} {
+    sky130::res_dialog mrm2 $parameters
+}
+
+proc sky130::mrm3_dialog {parameters} {
+    sky130::res_dialog mrm3 $parameters
+}
+
+#ifdef METAL5
+proc sky130::mrm4_dialog {parameters} {
+    sky130::res_dialog mrm4 $parameters
+}
+proc sky130::mrm5_dialog {parameters} {
+    sky130::res_dialog mrm5 $parameters
+}
+#endif (METAL5)
+
+#----------------------------------------------------------------
+# Resistor: Draw a single device in straight geometry
+#----------------------------------------------------------------
+
+proc sky130::res_device {parameters} {
+    # Epsilon for avoiding round-off errors
+    set eps  0.0005
+
+    # Set local default values if they are not in parameters
+    set endcov 0	 	;# percent coverage of end contacts
+    set roverlap 0		;# overlap resistors at end contacts
+    set well_res_overlap 0 	;# not a well resistor
+    set end_contact_type ""	;# no contacts for metal resistors
+    set end_overlap_cont 0	;# additional end overlap on sides
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    if {![dict exists $parameters end_contact_size]} {
+	set end_contact_size $contact_size
+    }
+
+    # Draw the resistor and endcaps
+    pushbox
+    box size 0 0
+    pushbox
+    set hw [/ $w 2.0]
+    set hl [/ $l 2.0]
+    box grow n ${hl}um
+    box grow s ${hl}um
+    box grow e ${hw}um
+    box grow w ${hw}um
+
+    pushbox
+    box grow n ${res_to_endcont}um
+    box grow s ${res_to_endcont}um
+    if {$well_res_overlap > 0} {
+	set well_extend [+ ${well_res_overlap} [/ ${end_contact_size} 2.0] ${end_surround}]
+	box grow n ${well_extend}um
+	box grow s ${well_extend}um
+	paint ${well_res_type}
+    } else {
+	paint ${end_type}
+    }
+    set cext [sky130::getbox]
+    popbox
+
+    if {$well_res_overlap > 0} {
+	erase ${well_res_type}
+    } else {
+	erase ${end_type}
+    }
+    paint ${res_type}
+    popbox
+
+    # Reduce contact sizes by (end type) surround so that
+    # the contact area edges match the device type width.
+    # (Minimum dimensions will be enforced by the contact drawing routine)
+    set epl [- ${w} [* ${end_surround} 2]]     	    ;# end contact width
+
+    # Reduce end material size for well resistor types
+    if {$well_res_overlap > 0} {
+	set epl [- ${epl} [* ${well_res_overlap} 2]]
+    }
+
+    # Reduce by coverage percentage unless overlapping at contacts
+    if {(${roverlap} == 0) && (${endcov} > 0)} {
+	set cpl [* ${epl} [/ ${endcov} 100.0]]
+    } else {
+	set cpl $epl
+    }
+
+    # Ensure additional overlap of diffusion contact if required
+    set dov [* ${end_overlap_cont} 2]
+    if {[- ${epl} ${cpl}] < $dov} {
+	set cpl [- ${epl} $dov]    ;# additional end contact width
+    }
+
+    set hepl [+ [/ ${epl} 2.0] ${end_surround}]
+    set hesz [/ ${end_contact_size} 2.0]
+
+    # LV substrate diffusion types have a different surround requirement
+    set lv_sub_types {"psd" "nsd"}
+    if {[lsearch $lv_sub_types $end_type] < 0} {
+	set hesz [+ ${hesz} ${end_surround}]
+    }
+
+    # Top end material & contact
+    pushbox
+    box move n ${hl}um
+    box move n ${res_to_endcont}um
+
+    pushbox
+    box size 0 0
+    box grow n ${hesz}um
+    box grow s ${hesz}um
+    box grow e ${hepl}um
+    box grow w ${hepl}um
+    paint ${end_type}
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+    popbox
+
+    if {${end_contact_type} != ""} {
+	set cext [sky130::unionbox $cext [sky130::draw_contact ${cpl} 0 \
+		${end_surround} ${metal_surround} ${end_contact_size} \
+		${end_type} ${end_contact_type} li horz]]
+    }
+    popbox
+
+    # Bottom end material & contact
+    pushbox
+    box move s ${hl}um
+    box move s ${res_to_endcont}um
+
+    pushbox
+    box size 0 0
+    box grow n ${hesz}um
+    box grow s ${hesz}um
+    box grow e ${hepl}um
+    box grow w ${hepl}um
+    paint ${end_type}
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+    popbox
+
+    if {${end_contact_type} != ""} {
+	set cext [sky130::unionbox $cext [sky130::draw_contact ${cpl} 0 \
+		${end_surround} ${metal_surround} ${end_contact_size} \
+		${end_type} ${end_contact_type} li horz]]
+    }
+    popbox
+
+    popbox
+    return $cext
+}
+
+#----------------------------------------------------------------
+# Resistor: Draw a single device in snake geometry
+#----------------------------------------------------------------
+
+proc sky130::res_snake_device {nf parameters} {
+    # nf is the number of fingers of the snake geometry
+
+    # Epsilon for avoiding round-off errors
+    set eps  0.0005
+
+    # Set local default values if they are not in parameters
+    set endcov 100	 	;# percent coverage of end contacts
+    set well_res_overlap 0 	;# not a well resistor
+    set end_contact_type ""	;# no contacts for metal resistors
+    set mask_clearance 0	;# additional length to clear mask
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    if {![dict exists $parameters end_contact_size]} {
+	set end_contact_size $contact_size
+    }
+
+    # Compute half width and length
+    set hw [/ $w 2.0]
+    set hl [/ $l 2.0]
+
+    # Reduce contact sizes by (end type) surround so that
+    # the contact area edges match the device type width.
+    # (Minimum dimensions will be enforced by the contact drawing routine)
+    set epl [- ${w} [* ${end_surround} 2]]     	    ;# end contact width
+
+    # Reduce contact size for well resistor types
+    if {$well_res_overlap > 0} {
+	set epl [- ${epl} [* ${well_res_overlap} 2]]
+    }
+
+    # Reduce contact part of end by coverage percentage
+    if {${endcov} > 0} {
+	set cpl [* ${epl} [/ ${endcov} 100.0]]
+    } else {
+	set cpl $epl
+    }
+
+    set hepl [+ [/ ${epl} 2.0] ${end_surround}]
+    set hesz [+ [/ ${end_contact_size} 2.0] ${end_surround}]
+
+    pushbox
+    box size 0 0	;# Position is taken from caller
+
+    # Front end contact (always bottom)
+    pushbox
+    box move s ${hl}um
+    pushbox
+    box move s ${mask_clearance}um
+    box move s ${res_to_endcont}um
+
+    pushbox
+    box size 0 0
+    box grow n ${hesz}um
+    box grow s ${hesz}um
+    box grow e ${hepl}um
+    box grow w ${hepl}um
+    paint ${end_type}
+    set cext [sky130::getbox]
+    popbox
+
+    if {${end_contact_type} != ""} {
+	set cext [sky130::draw_contact ${cpl} 0 \
+		${end_surround} ${metal_surround} ${end_contact_size} \
+		${end_type} ${end_contact_type} li horz]
+    }
+    popbox
+
+    # Draw portion between resistor end and contact.
+    box grow e ${hw}um
+    box grow w ${hw}um
+    pushbox
+    box grow s ${mask_clearance}um
+    paint ${res_type}
+    popbox
+    box move s ${mask_clearance}um
+    box grow s ${res_to_endcont}um
+    if {$well_res_overlap > 0} {
+	set well_extend [+ ${well_res_overlap} [/ ${end_contact_size} 2.0] ${end_surround}]
+	box grow s ${well_extend}um
+	paint ${well_res_type}
+    } else {
+	paint ${end_type}
+    }
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+    popbox
+
+    # Draw the resistor and endcaps
+    pushbox
+    box grow n ${hl}um
+    box grow s ${hl}um
+    box grow e ${hw}um
+    box grow w ${hw}um
+
+    # Capture these extents in the bounding box in case both contacts
+    # are on one side.
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+
+    set deltax [+ ${res_spacing} ${w}]
+    set deltay [- ${l} ${w}]
+    for {set i 0} {$i < [- $nf 1]} {incr i} {
+	paint ${res_type}
+ 	pushbox
+	if {[% $i 2] == 0} {
+	    box move n ${deltay}um
+	}
+	box height ${w}um
+	box width ${deltax}um
+	paint ${res_type}
+ 	popbox
+	box move e ${deltax}um
+    }
+    paint ${res_type}
+    # Capture these extents in the bounding box
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+    popbox
+
+    # Move box to last finger
+    set lastf [* [- $nf 1] $deltax]
+    box move e ${lastf}um
+
+    # Back-end contact (top or bottom, depending if odd or even turns)
+    pushbox
+
+    if {[% $nf 2] == 1} {
+	set dir n
+    } else {
+	set dir s
+    }
+    box move $dir ${hl}um
+    pushbox
+    box move $dir ${mask_clearance}um
+    box move $dir ${res_to_endcont}um
+
+    pushbox
+    box size 0 0
+    box grow n ${hesz}um
+    box grow s ${hesz}um
+    box grow e ${hepl}um
+    box grow w ${hepl}um
+    paint ${end_type}
+    set cext [sky130::unionbox $cext [sky130::getbox]]
+    popbox
+
+    if {${end_contact_type} != ""} {
+	set cext [sky130::unionbox $cext [sky130::draw_contact ${cpl} 0 \
+		${end_surround} ${metal_surround} ${end_contact_size} \
+		${end_type} ${end_contact_type} li horz]]
+    }
+    popbox
+    # Draw portion between resistor end and contact.
+    box grow e ${hw}um
+    box grow w ${hw}um
+    pushbox
+    box grow $dir ${mask_clearance}um
+    paint ${res_type}
+    popbox
+    box move $dir ${mask_clearance}um
+    box grow $dir ${res_to_endcont}um
+
+    if {$well_res_overlap > 0} {
+	set well_extend [+ ${well_res_overlap} [/ ${end_contact_size} 2.0] ${end_surround}]
+	box grow $dir ${well_extend}um
+	paint ${well_res_type}
+    } else {
+	paint ${end_type}
+    }
+    popbox
+
+    popbox
+    return $cext
+}
+
+#----------------------------------------------------------------
+# Resistor: Draw the tiled device
+#----------------------------------------------------------------
+
+proc sky130::res_draw {parameters} {
+    tech unlock *
+    set savesnap [snap]
+    snap internal
+
+    # Set defaults if they are not in parameters
+    set snake 0		;# some resistors don't allow snake geometry
+    set roverlap 0	;# overlap resistors at contacts
+    set guard 1		;# draw a guard ring
+    set plus_diff_type   nsd	;# guard ring diffusion type
+    set overlap_compress 0	;# special Y distance compression
+    set well_res_overlap 0	;# additional well extension behind contact
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # For devices where inter-device space is smaller than device-to-guard ring
+    if {![dict exists $parameters end_to_end_space]} {
+	set end_to_end_space $end_spacing
+    }
+
+    if {![dict exists $parameters end_contact_size]} {
+	set end_contact_size $contact_size
+    }
+
+    # Normalize distance units to microns
+    set w [magic::spice2float $w]
+    set l [magic::spice2float $l]
+
+    pushbox
+    box values 0 0 0 0
+
+    # Determine the base device dimensions by drawing one device
+    # while all layers are locked (nothing drawn).  This allows the
+    # base drawing routine to do complicated geometry without having
+    # to duplicate it here with calculations.
+
+    tech lock *
+    set nf $nx
+    if {($snake == 1) && ($nx == 1)} {set snake 0}
+    if {$snake == 1} {
+	set bbox [sky130::res_snake_device $nf $parameters]
+	set nx 1
+    } else {
+	set bbox [sky130::res_device $parameters]
+    }
+    # puts stdout "Diagnostic: Device bounding box e $bbox (um)"
+    tech unlock *
+
+    set fw [- [lindex $bbox 2] [lindex $bbox 0]]
+    set fh [- [lindex $bbox 3] [lindex $bbox 1]]
+    set lw [+ [lindex $bbox 2] [lindex $bbox 0]]
+    set lh [+ [lindex $bbox 3] [lindex $bbox 1]]
+
+    # Determine tile width and height (depends on overlap)
+    # Snake resistors cannot overlap.
+    # However, snake resistors with an odd number of fingers can
+    # compress the space if overlap_compress is defined
+
+    if {($roverlap == 1) && ($snake == 1) && ([% $nf 2] == 1) && ($m > 1)} {
+        set dy [- $fh $overlap_compress]
+    } elseif {($roverlap == 0) || ($snake == 1)} {
+        set dy [+ $fh $end_to_end_space]
+    } else {
+        # overlap poly
+        set dy [- $fh [+ [* [+ $end_surround $well_res_overlap] 2.0] $end_contact_size]]
+    }
+    set dx [+ $fw $res_spacing]
+
+    # Determine core width and height
+    set corex [+ [* [- $nx 1] $dx] $fw]
+    set corey [+ [* [- $m 1] $dy] $fh]
+    set corellx [/ [+ [- $corex $fw] $lw] 2.0]
+    set corelly [/ [+ [- $corey $fh] $lh] 2.0]
+
+    set lv_sub_types {"psd" "nsd"}
+    if {[lsearch $lv_sub_types $plus_diff_type] >= 0} {
+	set guard_diff_surround 0
+    } else {
+	set guard_diff_surround ${diff_surround}
+    }
+
+    if {$guard != 0} {
+	# Calculate guard ring size (measured to contact center)
+	set gx [+ $corex [* 2.0 [+ $res_diff_spacing $guard_diff_surround]] $contact_size]
+	set gy [+ $corey [* 2.0 [+ $end_spacing $guard_diff_surround]] $contact_size]
+
+	# Draw the guard ring first, because well resistors are on the substrate plane
+	sky130::guard_ring $gx $gy $parameters
+    }
+
+    pushbox
+    box move w ${corellx}um
+    box move s ${corelly}um
+    # puts "Device position at = [sky130::getbox]"
+    for {set xp 0} {$xp < $nx} {incr xp} {
+	pushbox
+	for {set yp 0} {$yp < $m} {incr yp} {
+	    if {$snake == 1} {
+		sky130::res_snake_device $nf $parameters
+	    } else {
+		sky130::res_device $parameters
+	    }
+            box move n ${dy}um
+        }
+	popbox
+        box move e ${dx}um
+    }
+    popbox
+    popbox
+
+    snap $savesnap
+    tech revert
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrp1_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    res_type		npres \
+	    end_type 		poly \
+	    end_contact_type	pc \
+	    plus_diff_type	nsd \
+	    plus_contact_type	nsc \
+	    sub_type		nwell \
+	    end_surround	$poly_surround \
+	    end_spacing		0.48 \
+	    end_to_end_space	0.52 \
+	    res_to_endcont	$res_to_cont \
+	    res_spacing		$poly_spacing \
+	    res_diff_spacing	0.48 \
+	    mask_clearance	0.52 \
+	    overlap_compress	0.36 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::xhrpoly_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    res_type		ppres \
+	    end_type 		xpc \
+	    end_contact_type	xpc \
+	    end_contact_size	0 \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    sub_type		psub \
+	    end_surround	$poly_surround \
+	    end_spacing		0.48 \
+	    end_to_end_space	0.52 \
+	    end_contact_size	0.19 \
+	    res_to_endcont	1.985 \
+	    res_spacing		1.24 \
+	    res_diff_spacing	0.48 \
+	    mask_clearance	0.52 \
+	    overlap_compress	0.36 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::uhrpoly_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    res_type		xpres \
+	    end_type 		xpc \
+	    end_contact_type	xpc \
+	    end_contact_size	0 \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    sub_type		psub \
+	    end_surround	$poly_surround \
+	    end_spacing		0.48 \
+	    end_to_end_space	0.52 \
+	    end_contact_size	0.19 \
+	    res_to_endcont	1.985 \
+	    res_spacing		1.24 \
+	    res_diff_spacing	0.48 \
+	    mask_clearance	0.52 \
+	    overlap_compress	0.36 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrdn_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    res_type		rdn \
+	    end_type 		ndiff \
+	    end_contact_type	ndc \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    sub_type		psub \
+	    end_surround	$diff_surround \
+	    end_spacing		0.44 \
+	    res_to_endcont	0.37 \
+	    res_spacing		0.30 \
+	    res_diff_spacing	0.44 \
+	    mask_clearance	0.22 \
+	    overlap_compress	0.36 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrdn_hv_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    res_type		mvrdn \
+	    end_type 		mvndiff \
+	    end_contact_type	mvndc \
+	    plus_diff_type	mvpsd \
+	    plus_contact_type	mvpsc \
+	    sub_type		psub \
+	    end_surround	$diff_surround \
+	    end_spacing		0.44 \
+	    res_to_endcont	0.37 \
+	    res_spacing		0.30 \
+	    res_diff_spacing	0.44 \
+	    mask_clearance	0.22 \
+	    overlap_compress	0.36 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrdp_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    res_type		rdp \
+	    end_type 		pdiff \
+	    end_contact_type	pdc \
+	    plus_diff_type	nsd \
+	    plus_contact_type	nsc \
+	    sub_type		nwell \
+	    end_surround	$diff_surround \
+	    end_spacing		0.44 \
+	    res_to_endcont	0.37 \
+	    res_spacing		$diff_spacing \
+	    res_diff_spacing	0.44 \
+	    mask_clearance	0.22 \
+	    overlap_compress	0.36 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrdp_hv_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    res_type		mvrdp \
+	    end_type 		mvpdiff \
+	    end_contact_type	mvpdc \
+	    plus_diff_type	mvnsd \
+	    plus_contact_type	mvnsc \
+	    sub_type		nwell \
+	    end_surround	$diff_surround \
+	    guard_sub_surround	0.33 \
+	    end_spacing		0.44 \
+	    res_to_endcont	0.37 \
+	    res_spacing		0.30 \
+	    res_diff_spacing	0.44 \
+	    mask_clearance	0.22 \
+	    overlap_compress	0.36 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::xpwres_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    well_res_type	pwell \
+	    res_type		rpw \
+	    end_type 		psd \
+	    end_contact_type	psc \
+	    plus_diff_type	nsd \
+	    plus_contact_type	nsc \
+	    sub_type		dnwell \
+	    sub_surround	0.23 \
+	    guard_sub_type	nwell \
+	    guard_sub_surround	0.63 \
+	    end_surround	$diff_surround \
+	    end_spacing		0.63 \
+	    end_to_end_space	1.15 \
+	    end_overlap_cont	0.06 \
+	    end_contact_size	0.53 \
+	    overlap_compress	-0.17 \
+	    res_to_endcont	0.265 \
+	    res_spacing		1.4 \
+	    res_diff_spacing	0.63 \
+	    well_res_overlap	0.2 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrl1_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    guard		0 \
+	    res_type		rli \
+	    end_type 		li \
+	    end_surround	0.0 \
+	    end_spacing		0.0 \
+	    res_to_endcont	0.2 \
+	    end_to_end_space	0.23 \
+	    res_spacing		$metal_spacing \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrm1_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    guard		0 \
+	    res_type		rm1 \
+	    end_type 		m1 \
+	    end_surround	0.0 \
+	    end_spacing		0.0 \
+	    end_to_end_space	0.28 \
+	    res_to_endcont	0.2 \
+	    res_spacing		$mmetal_spacing \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrm2_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    guard		0 \
+	    res_type		rm2 \
+	    end_type 		m2 \
+	    end_surround	0.0 \
+	    end_spacing		0.0 \
+	    end_to_end_space	0.28 \
+	    res_to_endcont	0.2 \
+	    res_spacing		$mmetal_spacing \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+proc sky130::mrm3_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    guard		0 \
+	    res_type		rm3 \
+	    end_type 		m3 \
+	    end_surround	0.0 \
+	    end_spacing		0.0 \
+	    end_to_end_space	0.28 \
+	    res_to_endcont	0.2 \
+	    res_spacing		$mmetal_spacing \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+
+#ifdef METAL5
+proc sky130::mrm4_draw {parameters} {
+
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    guard		0 \
+	    res_type		rm4 \
+	    end_type 		m4 \
+	    end_surround	0.0 \
+	    end_spacing		0.0 \
+	    end_to_end_space	0.28 \
+	    res_to_endcont	0.2 \
+	    res_spacing		$mmetal_spacing \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+
+proc sky130::mrm5_draw {parameters} {
+    # Set a local variable for each rule in ruleset
+    foreach key [dict keys $sky130::ruleset] {
+        set $key [dict get $sky130::ruleset $key]
+    }
+
+    set newdict [dict create \
+	    guard		0 \
+	    res_type		rm5 \
+	    end_type 		m5 \
+	    end_surround	0.0 \
+	    end_spacing		0.0 \
+	    end_to_end_space	1.6 \
+	    res_to_endcont	0.2 \
+	    res_spacing		$mmetal_spacing \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::res_draw $drawdict]
+}
+#endif (METAL5)
+
+#----------------------------------------------------------------
+# Resistor total length computation
+#----------------------------------------------------------------
+
+proc sky130::compute_ltot {parameters} {
+    # In case snake not defined
+    set snake 0
+    set caplen 0
+
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    set l [magic::spice2float $l]
+    set l [magic::3digitpastdecimal $l]
+
+    # Compute total length.  Use catch to prevent error in batch/scripted mode.
+    if {$snake == 1} {
+	catch {set magic::ltot_val [expr ($caplen * ($nx - 1)) + ($l * $nx) + ($nx - 1)]}
+    } else {
+	catch {set magic::ltot_val $l}
+    }
+}
+
+#----------------------------------------------------------------
+# resistor: Check device parameters for out-of-bounds values
+#----------------------------------------------------------------
+
+proc sky130::res_check {device parameters} {
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    set snake 0
+    set sterm 0.0
+    set caplen 0
+
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Normalize distance units to microns
+    set w [magic::spice2float $w]
+    set w [magic::3digitpastdecimal $w]
+    set l [magic::spice2float $l]
+    set l [magic::3digitpastdecimal $l]
+
+    set val  [magic::spice2float $val]
+    set rho  [magic::spice2float $rho]
+
+    # nf, m must be integer
+    if {![string is int $nx]} {
+	puts stderr "X repeat must be an integer!"
+        dict set parameters nx 1
+    }
+    if {![string is int $m]} {
+	puts stderr "Y repeat must be an integer!"
+        dict set parameters m 1
+    }
+
+    # Width always needs to be specified
+    if {$w < $wmin} {
+	puts stderr "Resistor width must be >= $wmin um"
+	dict set parameters w $wmin
+    } 
+    # Val and W specified - no L
+    if {$l == 0}  {
+   	set l [expr ($w - $dw) * $val / $rho]
+        set l [magic::3digitpastdecimal $l]
+        set stringval [magic::float2spice $val]
+	dict set parameters l [magic::float2spice [expr $l * 1e-6]]
+	# L and W specified - ignore Val if specified
+    } else {
+	if {$snake == 0} {
+	    set val [expr (2 * $term + $l * $rho) / ($w - $dw)]
+	} else {
+	    set val [expr $rho * ($nx - 1) + ((2 * ($term + $sterm)) \
+			+ ($rho * $l * $nx) + ($rho * $caplen * ($nx - 1))) \
+			/ ($w - $dw)]
+	}
+	set val [magic::float2spice $val]
+        dict set parameters val $val
+    }
+    if {$l < $lmin} {
+	puts stderr "Resistor length must be >= $lmin um"
+	dict set parameters l $lmin
+    } 
+    if {$nx < 1} {
+	puts stderr "X repeat must be >= 1"
+	dict set parameters nx 1
+    } 
+    if {$m < 1} {
+	puts stderr "Y repeat must be >= 1"
+	dict set parameters m 1
+    } 
+
+    # Snake resistors cannot have width greater than length
+    if {$snake == 1} {
+	if {$w > $l} {
+	    puts stderr "Snake resistor width must be < length"
+	    dict set parameters w $l
+	}
+    }
+
+    # Diffusion resistors must satisfy diffusion-to-tap spacing of 20um.
+    # Therefore the maximum of guard ring width or height cannot exceed 40um.
+    # If in violation, reduce counts first, as these are easiest to recover
+    # by duplicating the device and overlapping the wells.
+    if {$device == "rdn" || $device == "rdp"} {
+       set origm $m
+       set orignx $nx
+       while true {
+	  set xext [expr ($w + 0.8) * $nx + 1.0]
+	  set yext [expr ($l + 1.7) * $m + 1.7]
+          if {[expr min($xext, $yext)] > 40.0} {
+              if {$yext > 40.0 && $m > 1} {
+		 incr m -1
+	      } elseif {$xext > 40.0 && $nx > 1} {
+		 incr nx -1
+	      } elseif {$yext > 40.0} {
+		 set l 36.6
+		 puts -nonewline stderr "Diffusion resistor length must be < 36.6 um"
+		 puts stderr " to avoid tap spacing violation."
+		 dict set parameters l $l
+	      } elseif {$xext > 40.0} {
+		 set w 38.2
+		 puts -nonewline stderr "Diffusion resistor width must be < 38.2 um"
+		 puts stderr " to avoid tap spacing violation."
+		 dict set parameters w $w
+	      }
+          } else {
+	      break
+	  }
+       }
+       if {$m != $origm} {
+	  puts stderr "Y repeat reduced to prevent tap distance violation"
+	  dict set parameters m $m
+       }
+       if {$nx != $orignx} {
+	  puts stderr "X repeat reduced to prevent tap distance violation"
+	  dict set parameters nx $nx
+       }
+    }
+    sky130::compute_ltot $parameters
+    return $parameters
+}
+
+#----------------------------------------------------------------
+
+proc sky130::xpwres_check {parameters} {
+    return [sky130::res_check xpwres $parameters]
+}
+
+proc sky130::mrp1_check {parameters} {
+    return [sky130::res_check mrp1 $parameters]
+}
+
+proc sky130::xhrpoly_check {parameters} {
+    return [sky130::res_check xhrpoly $parameters]
+}
+
+proc sky130::uhrpoly_check {parameters} {
+    return [sky130::res_check uhrpoly $parameters]
+}
+
+proc sky130::mrdn_check {parameters} {
+    return [sky130::res_check mrdn $parameters]
+}
+
+proc sky130::mrdp_check {parameters} {
+    return [sky130::res_check mrdp $parameters]
+}
+
+proc sky130::mrdn_hv_check {parameters} {
+    return [sky130::res_check mrdn_hv $parameters]
+}
+
+proc sky130::mrdp_hv_check {parameters} {
+    return [sky130::res_check mrdp_hv $parameters]
+}
+
+proc sky130::mrl1_check {parameters} {
+    return [sky130::res_check mrl1 $parameters]
+}
+
+proc sky130::mrm1_check {parameters} {
+    return [sky130::res_check mrm1 $parameters]
+}
+
+proc sky130::mrm2_check {parameters} {
+    return [sky130::res_check mrm2 $parameters]
+}
+
+proc sky130::mrm3_check {parameters} {
+    return [sky130::res_check mrm3 $parameters]
+}
+
+#ifdef METAL5
+proc sky130::mrm4_check {parameters} {
+    return [sky130::res_check mrm4 $parameters]
+}
+proc sky130::mrm5_check {parameters} {
+    return [sky130::res_check mrm5 $parameters]
+}
+#endif (METAL5)
+
+#----------------------------------------------------------------
+# MOS defaults:
+#----------------------------------------------------------------
+#    w       = Gate width
+#    l       = Gate length
+#    m	     = Multiplier
+#    nf	     = Number of fingers
+#    diffcov = Diffusion contact coverage
+#    polycov = Poly contact coverage
+#    topc    = Top gate contact
+#    botc    = Bottom gate contact
+#    guard   = Guard ring
+#
+# (not user-editable)
+#
+#    lmin    = Gate minimum length
+#    wmin    = Gate minimum width
+#----------------------------------------------------------------
+
+#----------------------------------------------------------------
+# pmos: Specify all user-editable default values and those
+# needed by mos_check
+#----------------------------------------------------------------
+
+proc sky130::pshort_defaults {} {
+    return {w 0.42 l 0.15 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		compatible {pshort plowvt phighvt phv} full_metal 1}
+}
+
+proc sky130::plowvt_defaults {} {
+    return {w 0.42 l 0.35 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.35 wmin 0.42 \
+		compatible {pshort plowvt phighvt phv} full_metal 1}
+}
+
+proc sky130::phighvt_defaults {} {
+    return {w 0.42 l 0.15 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		compatible {pshort plowvt phighvt phv} full_metal 1}
+}
+
+proc sky130::phv_defaults {} {
+    return {w 0.42 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 0.42 \
+		compatible {pshort plowvt phighvt phv} full_metal 1}
+}
+
+#----------------------------------------------------------------
+# nmos: Specify all user-editable default values and those
+# needed by mos_check
+#----------------------------------------------------------------
+
+proc sky130::nshort_defaults {} {
+    return {w 0.420 l 0.150 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		compatible {nshort nlowvt sonos_e nhv nhvnative} full_metal 1}
+}
+
+proc sky130::nlowvt_defaults {} {
+    return {w 0.420 l 0.150 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		compatible {nshort nlowvt sonos_e nhv nhvnative} full_metal 1}
+}
+
+proc sky130::sonos_e_defaults {} {
+    return {w 0.420 l 0.150 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		compatible {nshort nlowvt sonos_e nhv nhvnative} full_metal 1}
+}
+
+proc sky130::nhv_defaults {} {
+    return {w 0.42 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 0.42 \
+		compatible {nshort nlowvt sonos_e nhv nhvnative} full_metal 1}
+}
+
+proc sky130::nhvnative_defaults {} {
+    return {w 0.42 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 0.42 \
+		compatible {nshort nlowvt sonos_e nhv nhvnative} full_metal 1}
+}
+
+#----------------------------------------------------------------
+# mos varactor: Specify all user-editable default values and those
+# needed by mosvc_check
+#----------------------------------------------------------------
+
+proc sky130::xcnwvc_defaults {} {
+    return {w 1.0 l 0.18 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.18 wmin 1.0 \
+		compatible {xcnwvc xcnwvc2 xchvnwc} full_metal 1}
+}
+
+proc sky130::xcnwvc2_defaults {} {
+    return {w 1.0 l 0.18 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.18 wmin 1.0 \
+		compatible {xcnwvc xcnwvc2 xchvnwc} full_metal 1}
+}
+
+proc sky130::xchvnwc_defaults {} {
+    return {w 1.0 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 1.0 \
+		compatible {xcnwvc xcnwvc2 xchvnwc} full_metal 1}
+}
+
+#----------------------------------------------------------------
+# mos: Conversion from SPICE netlist parameters to toolkit
+#----------------------------------------------------------------
+
+proc sky130::mos_convert {parameters} {
+    set pdkparams [dict create]
+    dict for {key value} $parameters {
+	switch -nocase $key {
+	    l -
+	    w {
+		# Length and width are converted to units of microns
+		set value [magic::spice2float $value]
+		# set value [expr $value * 1e6]
+		set value [magic::3digitpastdecimal $value]
+		dict set pdkparams [string tolower $key] $value
+	    }
+	    m {
+		# M value in an expression like '1*1' convert to
+		# M and NF
+		if {[regexp {\'([0-9]+)\*([0-9]+)\'} $value valid m nf]} {
+		    dict set pdkparams [string tolower $key] $m
+		    dict set pdkparams nf $nf
+		} else {
+		    dict set pdkparams [string tolower $key] $value
+		}
+	    }
+	}
+    }
+    return $pdkparams
+}
+
+#----------------------------------------------------------------
+
+proc sky130::nshort_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::nlowvt_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::sonos_e_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::nhv_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::nhvnative_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::pshort_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::plowvt_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::phighvt_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::phv_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::xcnwvc_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::xcnwvc2_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+proc sky130::xchvnwc_convert {parameters} {
+    return [sky130::mos_convert $parameters]
+}
+
+#----------------------------------------------------------------
+# mos: Interactively specifies the fixed layout parameters
+#----------------------------------------------------------------
+
+proc sky130::mos_dialog {device parameters} {
+    # Editable fields:      w, l, nf, m, diffcov, polycov
+    # Checked fields:  topc, botc
+    # For specific devices, gate type is a selection list
+
+    magic::add_entry w "Width (um)" $parameters
+    magic::add_entry l "Length (um)" $parameters
+    magic::add_entry nf "Fingers" $parameters
+    magic::add_entry m "M" $parameters
+
+    if {[dict exists $parameters compatible]} {
+       set sellist [dict get $parameters compatible]
+       magic::add_selectlist gencell "Device type" $sellist $parameters $device
+    }
+
+    magic::add_entry diffcov "Diffusion contact coverage (%)" $parameters
+    magic::add_entry polycov "Poly contact coverage (%)" $parameters
+    magic::add_entry rlcov "Guard ring contact coverage (%)" $parameters
+    if {[dict exists $parameters gbc]} {
+	magic::add_entry tbcov "Guard ring top/bottom contact coverage (%)" $parameters
+    }
+
+    magic::add_checkbox poverlap "Overlap at poly contact" $parameters
+    magic::add_checkbox doverlap "Overlap at diffusion contact" $parameters
+    magic::add_checkbox topc "Add top gate contact" $parameters
+    magic::add_checkbox botc "Add bottom gate contact" $parameters
+
+    magic::add_checkbox guard "Add guard ring" $parameters
+    magic::add_checkbox full_metal "Full metal guard ring" $parameters
+    magic::add_checkbox glc "Add left guard ring contact" $parameters
+    magic::add_checkbox grc "Add right guard ring contact" $parameters
+    if {[dict exists $parameters gbc]} {
+	magic::add_checkbox gbc "Add bottom guard ring contact" $parameters
+    }
+    if {[dict exists $parameters gtc]} {
+	magic::add_checkbox gtc "Add top guard ring contact" $parameters
+    }
+}
+
+#----------------------------------------------------------------
+
+proc sky130::nshort_dialog {parameters} {
+    sky130::mos_dialog nshort $parameters
+}
+
+proc sky130::nlowvt_dialog {parameters} {
+    sky130::mos_dialog nlowvt $parameters
+}
+
+proc sky130::sonos_e_dialog {parameters} {
+    sky130::mos_dialog sonos_e $parameters
+}
+
+proc sky130::nhv_dialog {parameters} {
+    sky130::mos_dialog nhv $parameters
+}
+
+proc sky130::nhvnative_dialog {parameters} {
+    sky130::mos_dialog nhvnative $parameters
+}
+
+proc sky130::pshort_dialog {parameters} {
+    sky130::mos_dialog pshort $parameters
+}
+
+proc sky130::plowvt_dialog {parameters} {
+    sky130::mos_dialog plowvt $parameters
+}
+
+proc sky130::phighvt_dialog {parameters} {
+    sky130::mos_dialog phighvt $parameters
+}
+
+proc sky130::phv_dialog {parameters} {
+    sky130::mos_dialog phv $parameters
+}
+
+proc sky130::xcnwvc_dialog {parameters} {
+    sky130::mos_dialog xcnwvc $parameters
+}
+
+proc sky130::xcnwvc2_dialog {parameters} {
+    sky130::mos_dialog xcnwvc2 $parameters
+}
+
+proc sky130::xchvnwc_dialog {parameters} {
+    sky130::mos_dialog xchvnwc $parameters
+}
+
+#----------------------------------------------------------------
+# getbox:  Get the current cursor box, in microns
+#----------------------------------------------------------------
+
+proc sky130::getbox {} {
+    set curbox [box values]
+    set newbox []
+    set oscale [cif scale out]
+    for {set i 0} {$i < 4} {incr i} {
+        set v [* [lindex $curbox $i] $oscale]
+        lappend newbox $v
+    }
+    return $newbox
+}
+
+#----------------------------------------------------------------
+# unionbox:  Get the union bounding box of box1 and box2
+#----------------------------------------------------------------
+
+proc sky130::unionbox {box1 box2} {
+    set newbox []
+    for {set i 0} {$i < 2} {incr i} {
+        set v [lindex $box1 $i]
+        set o [lindex $box2 $i]
+        if {$v < $o} {
+            lappend newbox $v
+        } else {
+            lappend newbox $o
+        }
+    }
+    for {set i 2} {$i < 4} {incr i} {
+        set v [lindex $box1 $i]
+        set o [lindex $box2 $i]
+        if {$v > $o} {
+            lappend newbox $v
+        } else {
+            lappend newbox $o
+        }
+    }
+    return $newbox
+}
+
+#----------------------------------------------------------------
+# Draw a contact
+#----------------------------------------------------------------
+
+proc sky130::draw_contact {w h s o x atype ctype mtype {orient vert}} {
+
+    # Draw a minimum-size diff contact centered at current position
+    # w is width, h is height.  Minimum size ensured.
+    # x is contact size
+    # s is contact diffusion (or poly) surround
+    # o is contact metal surround
+    # atype is active (e.g., ndiff) or bottom metal if a via
+    # ctype is contact (e.g., ndc)
+    # mtype is metal (e.g., m1) or top metal if a via
+    # orient is the orientation of the contact
+
+    # Set orientations for the bottom material based on material type.
+    # Substrate diffusions (tap) need not overlap the contact in all
+    # directions, but other (diff) types do.  The metal (local
+    # interconnect) layer always overlaps in two directions only.
+
+    set lv_sub_types {"psd" "nsd"}
+    if {[lsearch $lv_sub_types $atype] >= 0} {
+	set aorient $orient
+    } else {
+	set aorient "full"
+    }
+
+    pushbox
+    box size 0 0
+    if {$w < $x} {set w $x}
+    if {$h < $x} {set h $x}
+    set hw [/ $w 2.0]
+    set hh [/ $h 2.0]
+    box grow n ${hh}um
+    box grow s ${hh}um
+    box grow e ${hw}um
+    box grow w ${hw}um
+    paint ${ctype}
+    pushbox
+    # Bottom layer surrounded on sides as declared by aorient
+    if {($aorient == "vert") || ($aorient == "full")} {
+	box grow n ${s}um
+	box grow s ${s}um
+    }
+    if {($aorient == "horz") || ($aorient == "full")} {
+	box grow e ${s}um
+	box grow w ${s}um
+    }
+    paint ${atype}
+    set extents [sky130::getbox]
+    popbox
+    # Top layer surrounded on sides as declared by orient
+    if {($orient == "vert") || ($orient == "full")} {
+        box grow n ${o}um
+        box grow s ${o}um
+    }
+    if {($orient == "horz") || ($orient == "full")} {
+        box grow e ${o}um
+        box grow w ${o}um
+    }
+    paint ${mtype}
+    popbox
+    return $extents
+}
+
+#----------------------------------------------------------------
+# Draw a guard ring
+#----------------------------------------------------------------
+
+proc sky130::guard_ring {gw gh parameters} {
+
+    # Set local default values if they are not in parameters
+    set rlcov 100	;# Right-left contact coverage percentage
+    set tbcov 100	;# Top-bottom contact coverage percentage
+    set grc 1		;# Draw right side contact
+    set glc 1		;# Draw left side contact
+    set gtc 1		;# Draw right side contact
+    set gbc 1		;# Draw left side contact
+    set full_metal 1	;# Draw full (continuous) metal ring
+    set guard_sub_type	 pwell	;# substrate type under guard ring
+    set guard_sub_surround  0	;# substrate type surrounds guard ring
+    set plus_diff_type   nsd	;# guard ring diffusion type
+    set plus_contact_type nsc	;# guard ring diffusion contact type
+    set sub_type	 pwell	;# substrate type
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Set guard_sub_type to sub_type if it is not defined
+    if {![dict exists $parameters guard_sub_type]} {
+	set guard_sub_type $sub_type
+    }
+
+    set hx [/ $contact_size 2.0]
+    set hw [/ $gw 2.0]
+    set hh [/ $gh 2.0]
+
+    # Watch for (LV) substrate diffusion types, which have a different
+    # contact surround amount depending on the direction
+
+    set lv_sub_types {"psd" "nsd"}
+    if {[lsearch $lv_sub_types $plus_diff_type] >= 0} {
+	set diff_surround 0
+    }
+
+    # Compute diffusion width
+    set difft [+ $contact_size $diff_surround $diff_surround]
+    set hdifft [/ $difft 2.0]
+    # Compute guard ring diffusion width and height
+    set hdiffw [/ [+ $gw $difft] 2.0]
+    set hdiffh [/ [+ $gh $difft] 2.0]
+
+    pushbox
+    box size 0 0
+
+    pushbox
+    box move n ${hh}um
+    box grow n ${hdifft}um
+    box grow s ${hdifft}um
+    box grow e ${hdiffw}um
+    box grow w ${hdiffw}um
+    paint $plus_diff_type
+    if {$guard_sub_surround > 0} {
+	box grow c ${guard_sub_surround}um
+	paint $guard_sub_type
+    }
+    popbox
+    pushbox
+    box move s ${hh}um
+    box grow n ${hdifft}um
+    box grow s ${hdifft}um
+    box grow e ${hdiffw}um
+    box grow w ${hdiffw}um
+    paint $plus_diff_type
+    if {$guard_sub_surround > 0} {
+	box grow c ${guard_sub_surround}um
+	paint $guard_sub_type
+    }
+    popbox
+    pushbox
+    box move e ${hw}um
+    box grow e ${hdifft}um
+    box grow w ${hdifft}um
+    box grow n ${hdiffh}um
+    box grow s ${hdiffh}um
+    paint $plus_diff_type
+    if {$guard_sub_surround > 0} {
+	box grow c ${guard_sub_surround}um
+	paint $guard_sub_type
+    }
+    popbox
+    pushbox
+    box move w ${hw}um
+    box grow e ${hdifft}um
+    box grow w ${hdifft}um
+    box grow n ${hdiffh}um
+    box grow s ${hdiffh}um
+    paint $plus_diff_type
+    if {$guard_sub_surround > 0} {
+	box grow c ${guard_sub_surround}um
+	paint $guard_sub_type
+    }
+    popbox
+
+    if {$full_metal} {
+	set hmetw [/ [+ $gw $contact_size] 2.0]
+	set hmeth [/ [+ $gh $contact_size] 2.0]
+	pushbox
+	box move n ${hh}um
+	box grow n ${hx}um
+	box grow s ${hx}um
+	box grow e ${hmetw}um
+	box grow w ${hmetw}um
+	paint li
+	popbox
+	pushbox
+	box move s ${hh}um
+	box grow n ${hx}um
+	box grow s ${hx}um
+	box grow e ${hmetw}um
+	box grow w ${hmetw}um
+	paint li
+	popbox
+	pushbox
+	box move e ${hw}um
+	box grow e ${hx}um
+	box grow w ${hx}um
+	box grow n ${hmeth}um
+	box grow s ${hmeth}um
+	paint li
+	popbox
+	pushbox
+	box move w ${hw}um
+	box grow e ${hx}um
+	box grow w ${hx}um
+	box grow n ${hmeth}um
+	box grow s ${hmeth}um
+	paint li
+	popbox
+    }
+
+    # Set guard ring height so that contact metal reaches to end, scale by $per
+    # set ch [* [+ $gh $contact_size [* $metal_surround -2.0]] [/ $rlcov 100.0]]
+    set ch [* [- $gh $contact_size [* [+ $metal_surround $metal_spacing] \
+		2.0]] [/ $rlcov 100.0]]
+    if {$ch < $contact_size} {set ch $contact_size}
+
+    # Set guard ring width so that contact metal reaches to side contacts
+    set cw [* [- $gw $contact_size [* [+ $metal_surround $metal_spacing] \
+		2.0]] [/ $tbcov 100.0]]
+    if {$cw < $contact_size} {set cw $contact_size}
+
+    if {$tbcov > 0.0} {
+        if {$gtc == 1} {
+            pushbox
+            box move n ${hh}um
+            sky130::draw_contact $cw 0 $diff_surround $metal_surround \
+		$contact_size $plus_diff_type $plus_contact_type li horz
+            popbox
+	}
+	if {$gbc == 1} {
+	    pushbox
+	    box move s ${hh}um
+	    sky130::draw_contact $cw 0 $diff_surround $metal_surround \
+		$contact_size $plus_diff_type $plus_contact_type li horz
+	    popbox
+	}
+    }
+    if {$rlcov > 0.0} {
+        if {$grc == 1} {
+            pushbox
+            box move e ${hw}um
+            sky130::draw_contact 0 $ch $diff_surround $metal_surround \
+		$contact_size $plus_diff_type $plus_contact_type li vert
+            popbox
+        }
+        if {$glc == 1} {
+            pushbox
+            box move w ${hw}um
+            sky130::draw_contact 0 $ch $diff_surround $metal_surround \
+		$contact_size $plus_diff_type $plus_contact_type li vert
+            popbox
+        }
+    }
+
+    pushbox
+    box grow e ${hw}um
+    box grow w ${hw}um
+    box grow n ${hh}um
+    box grow s ${hh}um
+    # Create boundary using properties
+    property FIXED_BBOX [box values]
+    box grow c ${hx}um  ;# to edge of contact
+    box grow c ${diff_surround}um  ;# to edge of diffusion
+    box grow c ${sub_surround}um  ;# sub/well overlap of diff (NOT guard_sub)
+    paint $sub_type
+    set cext [sky130::getbox]
+    popbox
+    popbox
+
+    return $cext
+}
+
+#----------------------------------------------------------------
+# MOSFET: Draw a single device
+#----------------------------------------------------------------
+
+proc sky130::mos_device {parameters} {
+
+    # Epsilon for avoiding round-off errors
+    set eps  0.0005
+
+    # Set local default values if they are not in parameters
+    set diffcov 100	;# percent coverage of diffusion contact
+    set polycov 100	;# percent coverage of poly contact
+    set topc 1		;# draw top poly contact
+    set botc 1		;# draw bottom poly contact
+    set evenodd 1	;# even or odd numbered device finger, in X
+    set dev_sub_type ""	;# device substrate type (if different from guard ring)
+    set min_effl 0	;# gate length below which finger pitch must be stretched
+    set diff_overlap_cont 0	;# extra overlap of end contact by diffusion
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Draw the diffusion and poly
+    pushbox
+    box size 0 0
+    pushbox
+    set hw [/ $w 2.0]
+    set hl [/ $l 2.0]
+    set he [/ $min_effl 2.0]
+    if {$nf == 1 || $he < $hl} {set he $hl}
+    box grow n ${hw}um
+    box grow s ${hw}um
+    box grow e ${hl}um
+    box grow w ${hl}um
+    pushbox
+    if {${diff_extension} > ${gate_to_diffcont}} {
+        box grow e ${diff_extension}um
+        box grow w ${diff_extension}um
+    } else {
+        box grow e ${gate_to_diffcont}um
+        box grow w ${gate_to_diffcont}um
+    }
+    paint ${diff_type}
+    popbox
+    pushbox
+    if {${gate_extension} > ${gate_to_polycont}} {
+	box grow n ${gate_extension}um
+	box grow s ${gate_extension}um
+    } else {
+	if {$topc} {
+	    box grow n ${gate_to_polycont}um
+	} else {
+	    box grow n ${gate_extension}um
+	}
+	if {$botc} {
+	    box grow s ${gate_to_polycont}um
+	} else {
+	    box grow s ${gate_extension}um
+	}
+    }
+    paint ${poly_type}
+    set cext [sky130::getbox]
+    popbox
+    # save gate area now and paint later, so that diffusion surrounding the
+    # contact does not paint over the gate area, in case the gate type is
+    # not part of a "compose" entry in the techfile.
+    set gaterect [box values]
+    popbox
+
+    # Adjust position of contacts for dogbone geometry
+    # Rule 1: Minimize diffusion length.  Contacts only move out
+    # if width <  contact diffusion height.  They move out enough
+    # that the diffusion-to-poly spacing is satisfied.
+
+    set ddover 0
+    set cdwmin [+ ${contact_size} [* ${diff_surround} 2]]
+    set cstem [- ${gate_to_diffcont} [/ ${cdwmin} 2.0]]
+    set cgrow [- ${diff_poly_space} ${cstem}]
+    if {[+ ${w} ${eps}] < ${cdwmin}} {
+        if {${cgrow} > 0} {
+            set gate_to_diffcont [+ ${gate_to_diffcont} ${cgrow}]
+        }
+	set ddover [/ [- ${cdwmin} ${w}] 2.0]
+    }
+
+    # Rule 2: Minimum poly width.  Poly contacts only move out
+    # if length < contact poly width.  They move out enough
+    # that the diffusion-to-poly spacing is satisfied.
+
+    set gporig ${gate_to_polycont}
+    set cplmin [+ ${contact_size} [* ${poly_surround} 2]]
+    set cstem [- ${gate_to_polycont} [/ ${cplmin} 2.0]]
+    set cgrow [- ${diff_poly_space} ${cstem}]
+    if {[+ ${l} ${eps}] < ${cplmin}} {
+        if {${cgrow} > 0} {
+            set gate_to_polycont [+ ${gate_to_polycont} ${cgrow}]
+        }
+    }
+
+    # Rule 3: If both poly and diffusion are dogboned, then move
+    # poly out further to clear spacing to the diffusion contact
+
+    if {[+ ${w} ${eps}] < ${cdwmin}} {
+        if {[+ ${l} ${eps}] < ${cplmin}} {
+            set cgrow [/ [- ${cplmin} ${w}] 2.0]
+            set gate_to_polycont [+ ${gate_to_polycont} ${cgrow}]
+        }
+    }
+
+    # Rule 4: If M > 1 and poly contacts overlap, then increase the
+    # transistor-to-poly-contact distance by the amount of any
+    # diffusion dogbone overhang.
+
+    if {($poverlap == 1) && ($m > 1)} {
+	if {${gate_to_polycont} - $gporig < $ddover} {
+	    set gate_to_polycont [+ ${gporig} ${ddover}]
+	}
+    }
+
+    # Reduce contact sizes by poly or diffusion surround so that
+    # the contact area edges match the device diffusion or poly.
+    # (Minimum dimensions will be enforced by the contact drawing routine)
+    set tsurround [+ ${diff_surround} ${diff_overlap_cont}]
+    set cdw [- ${w} [* ${tsurround} 2]]		;# diff contact height
+    set cpl [- ${l} [* ${poly_surround} 2]]     ;# poly contact width
+
+    # Reduce by coverage percentage.  NOTE:  If overlapping multiple devices,
+    # keep maximum poly contact coverage.
+
+    set cdw [* ${cdw} [/ ${diffcov} 100.0]]
+    if {($poverlap == 0) || ($m == 1)} {
+	set cpl [* ${cpl} [/ ${polycov} 100.0]]
+    }
+
+    # Right diffusion contact
+    pushbox
+    box move e ${he}um
+    box move e ${gate_to_diffcont}um
+    set cext [sky130::unionbox $cext [sky130::draw_contact 0 ${cdw} \
+		${diff_surround} ${metal_surround} ${contact_size}\
+		${diff_type} ${diff_contact_type} li vert]]
+    popbox
+    # Left diffusion contact
+    pushbox
+    box move w ${he}um
+    box move w ${gate_to_diffcont}um
+    set cext [sky130::unionbox $cext [sky130::draw_contact 0 ${cdw} \
+		${diff_surround} ${metal_surround} ${contact_size} \
+		${diff_type} ${diff_contact_type} li vert]]
+    set diffarea $cext
+    popbox
+    # Top poly contact
+    if {$topc} {
+       pushbox
+       box move n ${hw}um
+       box move n ${gate_to_polycont}um
+       set cext [sky130::unionbox $cext [sky130::draw_contact ${cpl} 0 \
+		${poly_surround} ${metal_surround} ${contact_size} \
+		${poly_type} ${poly_contact_type} li horz]]
+       popbox
+    }
+    # Bottom poly contact
+    if {$botc} {
+       pushbox
+       box move s ${hw}um
+       box move s ${gate_to_polycont}um
+       set cext [sky130::unionbox $cext [sky130::draw_contact ${cpl} 0 \
+		${poly_surround} ${metal_surround} ${contact_size} \
+		${poly_type} ${poly_contact_type} li horz]]
+       popbox
+    }
+
+    # Now draw the gate, after contacts have been drawn
+    pushbox
+    box values {*}${gaterect}
+    # gate_type need not be defined if poly over diff paints the right type.
+    catch {paint ${gate_type}}
+    # sub_surround_dev, if defined, may create a larger area around the gate
+    # than sub_surround creates around the diffusion/poly area.
+    if [dict exists $parameters sub_surround_dev] {
+	box grow n ${sub_surround_dev}um
+	box grow s ${sub_surround_dev}um
+	box grow e ${sub_surround_dev}um
+	box grow w ${sub_surround_dev}um
+	paint ${dev_sub_type}
+	set cext [sky130::unionbox $cext [sky130::getbox]]
+    }
+    popbox
+
+    if {$dev_sub_type != ""} {
+	box values [lindex $diffarea 0]um [lindex $diffarea 1]um \
+	    [lindex $diffarea 2]um [lindex $diffarea 3]um
+	box grow n ${sub_surround}um
+	box grow s ${sub_surround}um
+	box grow e ${sub_surround}um
+	box grow w ${sub_surround}um
+	paint ${dev_sub_type}
+	set cext [sky130::unionbox $cext [sky130::getbox]]
+        # puts stdout "Diagnostic:  bounding box is $cext"
+    }
+
+    popbox
+    return $cext
+}
+
+#----------------------------------------------------------------
+# MOSFET: Draw the tiled device
+#----------------------------------------------------------------
+
+proc sky130::mos_draw {parameters} {
+    tech unlock *
+    set savesnap [snap]
+    snap internal
+
+    # Set defaults if they are not in parameters
+    set poverlap 0	;# overlap poly contacts when tiling
+    set doverlap 1	;# overlap diffusion contacts when tiling
+    set dev_sub_dist 0	;# substrate to guard ring, if dev_sub_type defined
+    set dev_sub_space 0	;# distance between substrate areas for arrayed devices
+    set min_allc 0	;# gate length below which poly contacts must be interleaved
+    set id_type ""	;# additional type covering everything
+    set id_surround 0	;# amount of surround on above type
+    set id2_type ""	;# additional type covering everything
+    set id2_surround 0	;# amount of surround on above type
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Diff-to-tap spacing is by default the same as diff spacing
+    if {![dict exist $parameters diff_tap_space]} {
+	set diff_tap_space $diff_spacing
+    }
+
+    # If poverlap is 1 then both poly contacts must be present
+    if {$poverlap == 1} {
+	set topc 1
+	set botc 1
+	dict set parameters topc 1
+	dict set parameters botc 1
+    }
+
+    # Normalize distance units to microns
+    set w [magic::spice2float $w]
+    set l [magic::spice2float $l]
+
+    pushbox
+    box values 0 0 0 0
+
+    # If dx < (poly contact space + poly contact width), then there is not
+    # enough room for a row of contacts, so force alternating contacts
+
+    if {$nf > 1 && $l < $min_allc} {
+	set intc 1
+	set evenodd 1
+	set topc 1
+	set botc 1
+	dict set parameters topc 1
+	dict set parameters botc 1
+	set poverlap 0
+    } else {
+	set intc 0
+    }
+
+    # Determine the base device dimensions by drawing one device
+    # while all layers are locked (nothing drawn).  This allows the
+    # base drawing routine to do complicated geometry without having
+    # to duplicate it here with calculations.
+
+    tech lock *
+    set bbox [sky130::mos_device $parameters]
+    # puts stdout "Diagnostic: Device bounding box e $bbox (um)"
+    tech unlock *
+
+    set fw [- [lindex $bbox 2] [lindex $bbox 0]]
+    set fh [- [lindex $bbox 3] [lindex $bbox 1]]
+    set lw [+ [lindex $bbox 2] [lindex $bbox 0]]
+    set lh [+ [lindex $bbox 3] [lindex $bbox 1]]
+
+    # If dev_sub_dist > 0 then each device must be in its own substrate
+    # (well) area, and overlaps are disallowed.  dev_sub_space determines
+    # the distance between individual devices in an array.
+
+    if {$dev_sub_dist > 0} {
+        set poverlap 0
+        set doverlap 0
+
+	if {$dev_sub_space > $poly_spacing} {
+	    set dx [+ $fw $dev_sub_space]
+	    set dy [+ $fh $dev_sub_space]
+	} else {
+	    set dx [+ $fw $poly_spacing]
+	    set dy [+ $fh $poly_spacing]
+	}
+
+    } else {
+
+	# Determine tile width and height (depends on overlap)
+	if {$poverlap == 0} {
+	    set dy [+ $fh $poly_spacing]
+	} else {
+	    # overlap poly
+	    set dy [- $fh [+ $poly_surround $poly_surround $contact_size]]
+	}
+
+	if {$doverlap == 0} {
+	    set dx [+ $fw $diff_spacing]
+	} else {
+	    # overlap diffusions
+	    set dx [- $fw [+ $diff_surround $diff_surround $contact_size]]
+	}
+    }
+
+    # Determine core width and height
+    set corex [+ [* [- $nf 1] $dx] $fw]
+    set corey [+ [* [- $m 1] $dy] $fh]
+    set corellx [/ [+ [- $corex $fw] $lw] 2.0]
+    set corelly [/ [+ [- $corey $fh] $lh] 2.0]
+
+    # If there is a diffusion dogbone, and no top poly contact, then
+    # increase the core height by the amount of the dogbone overhang.
+
+    if {$topc == 0} {
+	set cdwmin [+ ${contact_size} [* ${diff_surround} 2]]
+	if {${w} < ${cdwmin}} {
+	    set corey [+ $corey [/ [- ${cdwmin} ${w}] 2.0]]
+	}
+    }
+
+    if {$guard != 0} {
+	# Calculate guard ring size (measured to contact center)
+	if {($dev_sub_dist > 0) && ([+ $dev_sub_dist $sub_surround] > $diff_tap_space)} {
+	    set gx [+ $corex [* 2.0 [+ $dev_sub_dist $diff_surround]] $contact_size]
+	} else {
+	    set gx [+ $corex [* 2.0 [+ $diff_tap_space $diff_surround]] $contact_size]
+	}
+	if {($dev_sub_dist > 0) && ([+ $dev_sub_dist $sub_surround] > $diff_gate_space)} {
+	    set gy [+ $corey [* 2.0 [+ $dev_sub_dist $diff_surround]] $contact_size]
+	} else {
+	    set gy [+ $corey [* 2.0 [+ $diff_gate_space $diff_surround]] $contact_size]
+	}
+
+	# Somewhat tricky. . . if the width is small and the diffusion is 
+	# a dogbone, and the top or bottom poly contact is missing, then
+	# the spacing to the guard ring may be limited by diffusion spacing, not
+	# poly to diffusion.
+
+	set inset [/ [+ $contact_size [* 2.0 $diff_surround] -$w] 2.0]
+	set sdiff [- [+ $inset $diff_tap_space] [+ $gate_extension $diff_gate_space]]
+
+	if {$sdiff > 0} {
+	    if {$topc == 0} {
+		set gy [+ $gy $sdiff]
+		set corelly [+ $corelly [/ $sdiff 2.0]]
+	    }
+	    if {$botc == 0} {
+		set gy [+ $gy $sdiff]
+		set corelly [- $corelly [/ $sdiff 2.0]]
+	    }
+	}
+
+	# Draw the guard ring first, as MOS well may interact with guard ring substrate
+	sky130::guard_ring $gx $gy $parameters
+    }
+
+    pushbox
+    # If any surrounding identifier type is defined, draw it
+    if {${id_type} != ""} {
+	set hw [/ $gx 2]
+	set hh [/ $gy 2]
+	box grow e ${hw}um
+	box grow w ${hw}um
+	box grow n ${hh}um
+	box grow s ${hh}um
+	box grow c ${id_surround}um
+	paint ${id_type}
+    }
+    popbox
+    pushbox
+    box move w ${corellx}um
+    box move s ${corelly}um
+    for {set xp 0} {$xp < $nf} {incr xp} {
+        pushbox
+	if {$intc == 1} {
+	    set evenodd [- 1 $evenodd]
+	    if {$evenodd == 1} {
+		dict set parameters topc 1
+		dict set parameters botc 0
+	    } else {
+		dict set parameters topc 0
+		dict set parameters botc 1
+	    }
+	    set saveeo $evenodd
+	}
+        for {set yp 0} {$yp < $m} {incr yp} {
+            sky130::mos_device $parameters
+            box move n ${dy}um
+	    if {$intc == 1} {
+		set evenodd [- 1 $evenodd]
+		if {$evenodd == 1} {
+		    dict set parameters topc 1
+		    dict set parameters botc 0
+		} else {
+		    dict set parameters topc 0
+		    dict set parameters botc 1
+		}
+	    }
+        }
+	if {$intc == 1} {
+	    set evenodd $saveeo
+	}
+        popbox
+        box move e ${dx}um
+    }
+    popbox
+    popbox
+
+    snap $savesnap
+    tech revert
+}
+
+#-------------------
+# nMOS 1.8V
+#-------------------
+
+proc sky130::nshort_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		nfet \
+	    diff_type 		ndiff \
+	    diff_contact_type	ndc \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    min_effl		0.185 \
+	    min_allc		0.26 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+proc sky130::nlowvt_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		nfetlvt \
+	    diff_type 		ndiff \
+	    diff_contact_type	ndc \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    min_effl		0.185 \
+	    min_allc		0.26 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+proc sky130::sonos_e_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		nsonos \
+	    diff_type 		ndiff \
+	    diff_contact_type	ndc \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    id_type		dnwell \
+	    id_surround		1.355 \
+	    min_effl		0.185 \
+	    min_allc		0.26 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+#-------------------
+# pMOS 1.8V
+#-------------------
+
+proc sky130::pshort_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		pfet \
+	    diff_type 		pdiff \
+	    diff_contact_type	pdc \
+	    plus_diff_type	nsd \
+	    plus_contact_type	nsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		nwell \
+	    gate_to_polycont	0.32 \
+	    min_effl		0.185 \
+	    min_allc		0.26 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+proc sky130::plowvt_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		pfetlvt \
+	    diff_type 		pdiff \
+	    diff_contact_type	pdc \
+	    plus_diff_type	nsd \
+	    plus_contact_type	nsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		nwell \
+	    gate_to_polycont	0.32 \
+	    min_effl		0.185 \
+	    min_allc		0.26 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+proc sky130::phighvt_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		pfethvt \
+	    diff_type 		pdiff \
+	    diff_contact_type	pdc \
+	    plus_diff_type	nsd \
+	    plus_contact_type	nsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		nwell \
+	    gate_to_polycont	0.32 \
+	    min_effl		0.185 \
+	    min_allc		0.26 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+#-------------------
+# pMOS 5.0V
+#-------------------
+
+proc sky130::phv_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		mvpfet \
+	    diff_type 		mvpdiff \
+	    diff_contact_type	mvpdc \
+	    plus_diff_type	mvnsd \
+	    plus_contact_type	mvnsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		nwell \
+	    guard_sub_surround	0.33 \
+	    gate_to_polycont	0.32 \
+	    diff_spacing	0.31 \
+	    diff_tap_space	0.38 \
+	    diff_gate_space	0.38 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+#-------------------
+# nMOS 5.0V
+#-------------------
+
+proc sky130::nhv_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		mvnfet \
+	    diff_type 		mvndiff \
+	    diff_contact_type	mvndc \
+	    plus_diff_type	mvpsd \
+	    plus_contact_type	mvpsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    diff_spacing	0.31 \
+	    diff_tap_space	0.38 \
+	    diff_gate_space	0.38 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+proc sky130::nhvnative_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		mvnnfet \
+	    diff_type 		mvndiff \
+	    diff_contact_type	mvndc \
+	    plus_diff_type	mvpsd \
+	    plus_contact_type	mvpsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    diff_spacing	0.30 \
+	    diff_tap_space	0.38 \
+	    diff_gate_space	0.38 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+#------------------------
+# MOS varactor (1.8V)
+#------------------------
+
+proc sky130::xcnwvc_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		var \
+	    diff_type 		nnd \
+	    diff_contact_type	nsc \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    dev_sub_type	nwell \
+	    diff_overlap_cont	0.06 \
+	    dev_sub_dist	0.14 \
+	    dev_sub_space	1.27 \
+	    gate_to_diffcont	0.34 \
+	    diff_extension	0.485 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+proc sky130::xcnwvc2_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		varhvt \
+	    diff_type 		nnd \
+	    diff_contact_type	nsc \
+	    plus_diff_type	psd \
+	    plus_contact_type	psc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    dev_sub_type	nwell \
+	    diff_overlap_cont	0.06 \
+	    dev_sub_dist	0.14 \
+	    dev_sub_space	1.27 \
+	    gate_to_diffcont	0.34 \
+	    diff_extension	0.485 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+#---------------------------------------------------------
+# MOS varactor (5.0V)
+# NOTE:  dev_sub_space set to 2.0 assuming different nets.
+# Should have option for same-net with merged wells.
+#---------------------------------------------------------
+
+proc sky130::xchvnwc_draw {parameters} {
+    set newdict [dict create \
+	    gate_type		mvvar \
+	    diff_type 		mvnsd \
+	    diff_contact_type	mvnsc \
+	    plus_diff_type	mvpsd \
+	    plus_contact_type	mvpsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		psub \
+	    dev_sub_type	nwell \
+	    sub_surround	0.38 \
+	    sub_surround_dev	0.56 \
+	    guard_sub_surround	0.18 \
+	    diff_overlap_cont	0.06 \
+	    dev_sub_dist	0.785 \
+	    dev_sub_space	2.0 \
+	    gate_to_diffcont	0.34 \
+	    diff_extension	0.485 \
+    ]
+    set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+    return [sky130::mos_draw $drawdict]
+}
+
+#----------------------------------------------------------------
+# MOSFET: Check device parameters for out-of-bounds values
+#----------------------------------------------------------------
+
+proc sky130::mos_check {device parameters} {
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Normalize distance units to microns
+    set l [magic::spice2float $l] 
+    set l [magic::3digitpastdecimal $l]
+    set w [magic::spice2float $w] 
+    set w [magic::3digitpastdecimal $w]
+
+    # nf, m must be integer
+    if {![string is int $nf]} {
+	puts stderr "NF must be an integer!"
+        dict set parameters nf 1
+    }
+    if {![string is int $m]} {
+	puts stderr "M must be an integer!"
+        dict set parameters m 1
+    }
+    # diffcov, polycov must be numeric
+    if {[catch {expr abs($diffcov)}]} {
+	puts stderr "diffcov must be numeric!"
+	set diffcov 100
+    }
+    if {[catch {expr abs($polycov)}]} {
+	puts stderr "polycov must be numeric!"
+	set polycov 100
+    }
+
+    if {$l < $lmin} {
+	puts stderr "Mos length must be >= $lmin um"
+        dict set parameters l $lmin
+    } 
+    if {$w < $wmin} {
+	puts stderr "Mos width must be >= $wmin um"
+        dict set parameters w $wmin
+    } 
+    if {$nf < 1} {
+	puts stderr "NF must be >= 1"
+        dict set parameters nf 1
+    } 
+    if {$m < 1} {
+	puts stderr "M must be >= 1"
+        dict set parameters m 1
+    } 
+    if {$diffcov < 20 } {
+	puts stderr "Diffusion contact coverage must be at least 20%"
+        dict set parameters diffcov 20
+    } elseif {$diffcov > 100 } {
+	puts stderr "Diffusion contact coverage can't be more than 100%"
+        dict set parameters diffcov 100
+    }
+    if {$polycov < 20 } {
+	puts stderr "Poly contact coverage must be at least 20%"
+        dict set parameters polycov 20
+    } elseif {$polycov > 100 } {
+	puts stderr "Poly contact coverage can't be more than 100%"
+        dict set parameters polycov 100
+    }
+
+    # Values must satisfy diffusion-to-tap spacing of 20um.
+    # Therefore the maximum of guard ring width or height cannot exceed 40um.
+    # If in violation, reduce counts first, as these are easiest to recover
+    # by duplicating the device and overlapping the wells.
+    set origm $m
+    set orignf $nf
+    while true {
+       set yext [expr ($w + 3.0) * $m]
+       set xext [expr ($l + 1.0) * $nf + 1.1]
+       if {[expr min($xext, $yext)] > 40.0} {
+          if {$yext > 40.0 && $m > 1} {
+	     incr m -1
+	  } elseif {$xext > 40.0 && $nf > 1} {
+	     incr nf -1
+	  } elseif {$yext > 40.0} {
+	     set w 37
+	     puts -nonewline stderr "Transistor width must be < 37 um"
+	     puts stderr " to avoid tap spacing violation."
+	     dict set parameters w $w
+	  } elseif {$xext > 40.0} {
+	     set l 37.9
+	     puts -nonewline stderr "Transistor length must be < 37.9 um"
+	     puts stderr " to avoid tap spacing violation."
+	     dict set parameters l $l
+	  }
+       } else {
+	  break
+       }
+    }
+    if {$m != $origm} {
+       puts stderr "Y repeat reduced to prevent tap distance violation"
+       dict set parameters m $m
+    }
+    if {$nf != $orignf} {
+       puts stderr "X repeat reduced to prevent tap distance violation"
+       dict set parameters nf $nf
+    }
+
+    return $parameters
+}
+
+#----------------------------------------------------------------
+
+proc sky130::nshort_check {parameters} {
+   return [sky130::mos_check nshort $parameters]
+}
+
+proc sky130::nlowvt_check {parameters} {
+   return [sky130::mos_check nlowvt $parameters]
+}
+
+proc sky130::sonos_e_check {parameters} {
+   return [sky130::mos_check sonos_e $parameters]
+}
+
+proc sky130::nhv_check {parameters} {
+   return [sky130::mos_check nhv $parameters]
+}
+
+proc sky130::nhvnative_check {parameters} {
+   return [sky130::mos_check nhvnative $parameters]
+}
+
+proc sky130::pshort_check {parameters} {
+   return [sky130::mos_check pshort $parameters]
+}
+
+proc sky130::plowvt_check {parameters} {
+   return [sky130::mos_check plowvt $parameters]
+}
+
+proc sky130::phighvt_check {parameters} {
+   return [sky130::mos_check phighvt $parameters]
+}
+
+proc sky130::phv_check {parameters} {
+   return [sky130::mos_check phv $parameters]
+}
+
+proc sky130::xcnwvc_check {parameters} {
+   return [sky130::mos_check xcnwvc $parameters]
+}
+
+proc sky130::xcnwvc2_check {parameters} {
+   return [sky130::mos_check xcnwvc2 $parameters]
+}
+
+proc sky130::xchvnwc_check {parameters} {
+   return [sky130::mos_check xchvnwc $parameters]
+}
+
+#----------------------------------------------------------------
+# Fixed device: Specify all user-editable default values
+#
+# deltax --- Additional horizontal space between devices
+# deltay --- Additional vertical space between devices
+# nx     --- Number of arrayed devices in X
+# ny     --- Number of arrayed devices in Y
+#
+# Note that these values, specifically nx, ny, deltax,
+# and deltay, are properties of the instance, not the cell.
+# They translate to the instance array x and y counts;  while
+# deltax is the x pitch less the cell width, and deltay is the
+# y pitch less the cell height.
+#
+# non-user-editable
+#
+# nocell --- Indicates that this cell has a predefined layout
+#	     and therefore there is no cell to draw.
+# xstep  --- Width of the cell (nominal array pitch in X)
+# ystep  --- Height of the cell (nominal array pitch in Y)
+#----------------------------------------------------------------
+
+# Fixed-layout devices (from sky130_fd_pr_base, _rf, and _rf2 libraries)
+#
+# Bipolar transistors:
+#
+# sky130_fd_pr_rf_npn_1x1
+# sky130_fd_pr_rf_npn_1x2
+# sky130_fd_pr_rf_pnp5x
+#
+# Parallel Plate Capacitors:
+#
+# sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield
+# sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield
+# sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield
+# sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield
+# sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield
+# sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield
+# sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield
+# sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield
+# sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield
+# sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4
+# sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield
+# sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield
+# sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield
+# sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield
+# sky130_fd_pr_rf_xcmvpp2
+# sky130_fd_pr_rf_xcmvpp2_nwell
+# sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield
+# sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield
+# sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield
+# sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield
+#
+# Inductors:
+#
+# balun
+# xind4_011
+# xind4_02
+
+proc sky130::sky130_fd_pr_rf_npn_1x1_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 7.03}
+}
+
+proc sky130::sky130_fd_pr_rf_npn_1x2_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 8.03}
+}
+
+proc sky130::sky130_fd_pr_rf_pnp5x_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.44 ystep 6.44}
+}
+
+proc sky130::balun_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 292 ystep 292}
+}
+
+proc sky130::xind4_02_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 258 ystep 258}
+}
+
+proc sky130::xind4_011_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 290 ystep 404}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.05 ystep 4.26}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.47 ystep 5.76}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.47 ystep 5.76}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 7.51}
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 10.41 ystep 11.54}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 1.77 ystep 1.77}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.88 ystep 3.88}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.55 ystep 4.76}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_nwell_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.55 ystep 4.76}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.05 ystep 4.26}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.05 ystep 4.26}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 7.51}
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield_defaults {} {
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 7.51}
+}
+
+#----------------------------------------------------------------
+# Fixed device: Conversion from SPICE netlist parameters to toolkit
+#----------------------------------------------------------------
+
+proc sky130::fixed_convert {parameters} {
+    set pdkparams [dict create]
+    dict for {key value} $parameters {
+	switch -nocase $key {
+	    m {
+		 dict set pdkparams nx $value
+	    }
+	}
+    }
+    return $pdkparams
+}
+
+#----------------------------------------------------------------
+
+proc sky130::sky130_fd_pr_rf_npn_1x1_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_npn_1x2_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_pnp5x_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::balun_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::xind4_011_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::xind4_02_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_nwell_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield_convert {parameters} {
+    return [sky130::fixed_convert $parameters]
+}
+
+#----------------------------------------------------------------
+# Fixed device: Interactively specifies the fixed layout parameters
+#----------------------------------------------------------------
+
+proc sky130::fixed_dialog {parameters} {
+    # Instance fields:	    nx, ny, pitchx, pitchy
+    # Editable fields:	    nx, ny, deltax, deltay
+    # Non-editable fields:  nocell, xstep, ystep
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # "nocell" field causes nx and ny to be dropped in from
+    # "array count".  Also "pitchx" and "pitchy" are passed
+    # in internal units.  Convert these to microns and generate
+    # If there is no pitchx and pitchy, then the device has not
+    # yet been created, so keep the deltax and deltay defaults.
+
+    if [dict exists $parameters pitchx] {
+	set pitchux [magic::i2u $pitchx]
+	set stepux [magic::spice2float $xstep]
+        set deltax [magic::3digitpastdecimal [expr $pitchux - $stepux]] 
+        # An array size 1 should not cause deltax to go negative
+	if {$deltax < 0.0} {set deltax 0.0}
+	dict set parameters deltax $deltax
+    }
+    if [dict exists $parameters pitchy] {
+	set pitchuy [magic::i2u $pitchy]
+	set stepuy [magic::spice2float $ystep]
+        set deltay [magic::3digitpastdecimal [expr $pitchuy - $stepuy]] 
+        # An array size 1 should not cause deltay to go negative
+	if {$deltay < 0.0} {set deltay 0.0}
+	dict set parameters deltay $deltay
+    }
+
+    magic::add_entry nx "NX" $parameters
+    magic::add_entry ny "NY" $parameters
+    magic::add_entry deltax "X step (um)" $parameters
+    magic::add_entry deltay "Y step (um)" $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_npn_1x1_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_npn_1x2_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_pnp5x_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::balun_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::xind4_011_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::xind4_02_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_nwell_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield_dialog {parameters} {
+    sky130::fixed_dialog $parameters
+}
+
+#----------------------------------------------------------------
+# Fixed device: Draw the device
+#----------------------------------------------------------------
+
+proc sky130::fixed_draw {devname parameters} {
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # This cell declares "nocell" in parameters, so it needs to
+    # instance the cell and set properties.
+
+    # Instantiate the cell.  The name corresponds to the cell in the sky130_fd_pr_* directory.
+    set instname [getcell ${devname}]
+
+    set deltax [magic::spice2float $deltax] 
+    set deltay [magic::spice2float $deltay] 
+    set xstep [magic::spice2float $xstep] 
+    set ystep [magic::spice2float $ystep] 
+
+    # Array stepping
+    if {$nx > 1 || $ny > 1} {
+        set xstep [expr $xstep + $deltax]
+        set ystep [expr $ystep + $deltay]
+        box size ${xstep}um ${ystep}um
+	array $nx $ny
+    }
+    select cell $instname
+    expand
+    return $instname
+}
+
+#----------------------------------------------------------------
+# No additional parameters declared for drawing
+#----------------------------------------------------------------
+
+proc sky130::sky130_fd_pr_rf_npn_1x1_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_npn_1x1 $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_npn_1x2_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_npn_1x2 $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_pnp5x_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_pnp5x $parameters]
+}
+
+proc sky130::balun_draw {parameters} {
+    return [sky130::fixed_draw balun $parameters]
+}
+
+proc sky130::xind4_011_draw {parameters} {
+    return [sky130::fixed_draw xind4_011 $parameters]
+}
+
+proc sky130::xind4_02_draw {parameters} {
+    return [sky130::fixed_draw xind4_02 $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4 $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp2 $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_nwell_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp2_nwell $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield_draw {parameters} {
+    return [sky130::fixed_draw sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield $parameters]
+}
+
+#----------------------------------------------------------------
+# Fixed device: Check device parameters for out-of-bounds values
+#----------------------------------------------------------------
+
+proc sky130::fixed_check {parameters} {
+
+    # Set a local variable for each parameter (e.g., $l, $w, etc.)
+    foreach key [dict keys $parameters] {
+        set $key [dict get $parameters $key]
+    }
+
+    # Normalize distance units to microns
+    set deltax [magic::spice2float $deltax -1] 
+    set deltax [magic::3digitpastdecimal $deltax]
+    set deltay [magic::spice2float $deltay -1] 
+    set deltay [magic::3digitpastdecimal $deltay]
+
+    # nx, ny must be integer
+    if {![string is int $nx]} {
+	puts stderr "NX must be an integer!"
+        dict set parameters nx 1
+    }
+    if {![string is int $ny]} {
+	puts stderr "NY must be an integer!"
+        dict set parameters nx 1
+    }
+
+    # Number of devices in X and Y must be at least 1
+    if {$nx < 1} {
+	puts stderr "NX must be >= 1"
+        dict set parameters nx 1
+    }
+    if {$ny < 1} {
+	puts stderr "NY must be >= 1"
+        dict set parameters nx 1
+    }
+    # Step less than zero violates DRC
+    if {$deltax < 0} {
+	puts stderr "X step must be >= 0"
+        dict set parameters deltax 0
+    }
+    if {$deltay < 0} {
+	puts stderr "Y step must be >= 0"
+        dict set parameters deltay 0
+    }
+    return $parameters
+}
+
+#----------------------------------------------------------------
+
+proc sky130::sky130_fd_pr_rf_npn_1x1_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_npn_1x2_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_pnp5x_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::balun_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::xind4_011_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::xind4_02_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp2_nwell_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
+proc sky130::sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield_check {parameters} {
+    return [sky130::fixed_check $parameters]
+}
+
diff --git a/sky130/sky130.tech b/sky130/sky130.tech
new file mode 100644
index 0000000..881eee2
--- /dev/null
+++ b/sky130/sky130.tech
@@ -0,0 +1,4004 @@
+###
+###	Source file sky130.tech
+###	Process this file with the preproc.py macro processor
+###	Note that the tech name is always TECHNAME for
+###	magic;  this keeps compatibility between layouts
+###	for all process variants.
+###
+#----------------------------------------------------------
+# Copyright (c) 2020 R. Timothy Edwards
+# Revisions:  See below
+#
+# This file is an Open Source foundry process describing
+# the SkyWater S8 hybrid 0.18um / 0.13um fabrication
+# process.  The file may be distributed under the terms
+# of the (Apache 2.0(?)) license agreement.
+#
+#----------------------------------------------------------
+# This file is designed to be used with magic versions
+# 8.3.24 or newer.
+#----------------------------------------------------------
+tech
+  format 35
+  TECHNAME
+end
+
+version
+ version REVISION
+ description "SkyWater SKY130: PRE ALPHA Vendor Open Source rules and DRC"
+end
+
+#----------------------------------------------------------
+# Status: 3/17/19: s8.tech created from xh018.tech
+#
+# Status: 3/20/19: Rev 0 (pre-alpha):
+# Work in progress.  Converted from original techfile to S8
+# with all sections updated with as much information as could
+# be immediately gleaned from the documentation.  Cifinput and
+# DRC sections have been checked against one standard cell
+# library.
+#
+# Status 5/5/20: Rev 1 (alpha):
+# Changed name from s8 to sky130
+#--------------------------------------------------------------
+
+#--------------------------------------------------------------
+# Supported device types
+#--------------------------------------------------------------
+# device name   magic ID layer  description
+#-------------------------------------------------------------
+# nshort	nfet		standard nFET
+# nshort	scnfet		standard nFET in standard cell**
+# nlowvt	nfetlvt		low Vt nFET
+# sonos_p/e	nsonos		SONOS nFET
+# pshort	pfet		standard pFET
+# pshort	scpfet		standard pFET in standard cell**
+# plowvt	pfetlvt		low Vt pFET
+# phighvt	pfethvt		high Vt pFET
+# ntvnative	---		native nFET
+# phv		mvpfet		thickox pFET
+# nhv		mvnfet		thickox nFET
+# nhvnative	mvnnfet		thickox native nFET
+# ndiode	ndiode		n+ diff diode
+# ndiode_h	mvndiode	thickox n+ diff diode
+# pdiode	pdiode		p+ diff diode
+# pdiode_h	mvpdiode	thickox p+ diff diode
+# ndiode_native	nndiode		diode with nndiff
+# ndiode_lvt	ndiodelvt	low Vt n+ diff diode
+# pdiode_lvt	pdiodelvt	low Vt p+ diff diode
+# pdiode_hvt	pdiodehvt	high Vt p+ diff diode
+# nwdiode	---		nwell diode
+# dnwdiode_psub	---		deep nwell diode to substrate
+# dnwdiode_pw	---		deep nwell diode to pwell
+# xcmimc1	mimcap		MiM cap 1st plate
+# xcmimc2	mimcap2		MiM cap 2nd plate
+# mrdn		rdn		n+ diff resistor
+# mrdn_hv	mvrdn		thickox n+ diff resistor
+# mrdp		rdp		p+ diff resistor
+# mrdp_hv	mvrdp		thickox p+ diff resistor
+# mrl1		rli		local interconnect resistor
+# mrp1		npres		n+ poly resistor
+# xhrpoly_*	ppres (*)	p+ poly resistor (300 Ohms/sq)
+# uhrpoly_*	xres (*)	p+ poly resistor (2k Ohms/sq)
+# xcnwvc	varactor	varactor (low Vt?)
+# xcnwvc2	varactorhvt	high Vt varactor
+# xchvnwc	mvvaractor	thickox varactor
+# xpwres	rpw		pwell resistor (in deep nwell)
+#
+# (*) Note that ppres may extract into some generic type
+# called "xhrpoly", but only specific sizes of xhrpoly are
+# allowed, and these are created from fixed layouts like the
+# types below.
+#
+# (**) nFET and pFET in standard cells are the same as devices
+# outside of the standard cell except for the DRC rule for
+# FET to diffusion contact spacing (which is 0.05um, not 0.055um)
+#
+# To avoid creating a large number of types, a few ID layers are
+# used in conjunction with standard devices types:  "lvt" for
+# low threshold voltage, and "hvt" for high threshold voltage.
+# "dnwell" is used as an identifier layer where appropriate.
+# Layer HVI (thick oxide) is treated differently, and types
+# "mv*" are defined where thick oxide is required.
+#
+#-------------------------------------------------------------
+# The following devices are not extracted but are represented
+# only by script-generated subcells in the PDK.
+#-------------------------------------------------------------
+# nshortesd			ESD nFET
+# nhvesd			ESD thickox nFET
+# nhvnativeesd			ESD native nFET
+# phvesd			ESD thickox pFET
+# fnpass			flash nFET device
+# npnpar1x*			parasitic NPN
+# npn_1x1_2p0_hv		thickox gated parasitic NPN
+# pnppar			parasitic PNP
+# pnppar5x			parasitic PNP
+# xesd_ndiode_h_***		ESD n+ diode
+# xesd_pdiode_h_***		ESD p+ diode
+# reslocsub			local substrate island indicator
+# xcmvpp			Vpp cap
+# xcmvpp_2			Vpp cap
+# xcmvpp_*			Vpp cap
+# xcmvpp*			Vpp cap
+# balun				balun inductor
+# ind4				inductor
+# fuse				metal fuse device
+#--------------------------------------------------------------
+
+#-----------------------------------------------------
+# Tile planes
+#-----------------------------------------------------
+
+planes
+  dwell,dw
+  well,w
+  active,a
+  locali,li1,li
+  metal1,m1
+  metal2,m2
+  metal3,m3
+#ifdef METAL5
+#ifdef MIM
+  cap1,c1
+#endif (MIM)
+  metal4,m4
+#ifdef MIM
+  cap2,c2
+#endif (MIM)
+  metal5,m5
+#endif (METAL5)
+#ifdef REDISTRIBUTION
+  metali,mi
+#endif
+  block,b
+  comment,c
+end
+
+#-----------------------------------------------------
+# Tile types
+#-----------------------------------------------------
+
+types
+# Deep nwell
+  dwell dnwell,dnw
+
+# Wells
+  well nwell,nw
+ -well pwell,pw
+ -well rpw,rpwell
+ -well obswell
+
+# Transistors
+  active nmos,ntransistor,nfet
+ -active scnmos,scntransistor,scnfet
+  active pmos,ptransistor,pfet
+ -active scpmos,scptransistor,scpfet
+ -active nnmos,nntransistor
+  active mvnmos,mvntransistor,mvnfet
+  active mvpmos,mvptransistor,mvpfet
+ -active mvnnmos,mvnntransistor,mvnnfet,nnfet
+ -active varactor,varact,var
+ -active mvvaractor,mvvaract,mvvar
+
+ -active pmoslvt,pfetlvt
+ -active pmoshvt,pfethvt
+ -active nmoslvt,nfetlvt
+ -active varactorhvt,varacthvt,varhvt
+ -active nsonos,sonos
+
+# Diffusions
+  active ndiff,ndiffusion,ndif
+  active pdiff,pdiffusion,pdif
+ -active mvndiff,mvndiffusion,mvndif
+ -active mvpdiff,mvpdiffusion,mvpdif
+  active ndiffc,ndcontact,ndc
+  active pdiffc,pdcontact,pdc
+ -active mvndiffc,mvndcontact,mvndc
+ -active mvpdiffc,mvpdcontact,mvpdc
+  active psubdiff,psubstratepdiff,ppdiff,ppd,psd
+  active nsubdiff,nsubstratendiff,nndiff,nnd,nsd
+ -active mvpsubdiff,mvpsubstratepdiff,mvppdiff,mvppd,mvpsd
+ -active mvnsubdiff,mvnsubstratendiff,mvnndiff,mvnnd,mvnsd
+  active psubdiffcont,psubstratepcontact,psc
+  active nsubdiffcont,nsubstratencontact,nsc
+ -active mvpsubdiffcont,mvpsubstratepcontact,mvpsc
+ -active mvnsubdiffcont,mvnsubstratencontact,mvnsc
+ -active obsactive
+ -active mvobsactive
+
+# Poly
+  active poly,p,polysilicon
+  active polycont,pc,pcontact,polycut,polyc
+  active xpolycontact,xpolyc,xpc
+
+# Resistors
+ -active npolyres,npres,mrp1
+ -active ppolyres,ppres,xhrpoly
+ -active xpolyres,xpres,xres,uhrpoly
+ -active ndiffres,rnd,rdn,rndiff
+ -active pdiffres,rpd,rdp,rpdiff
+ -active mvndiffres,mvrnd,mvrdn,mvrndiff
+ -active mvpdiffres,mvrpd,mvrdp,mvrpdiff
+ -active rmp
+
+# Diodes
+ -active pdiode,pdi
+ -active ndiode,ndi
+ -active nndiode,nndi
+ -active pdiodec,pdic
+ -active ndiodec,ndic
+ -active nndiodec,nndic
+ -active mvpdiode,mvpdi
+ -active mvndiode,mvndi
+ -active mvpdiodec,mvpdic
+ -active mvndiodec,mvndic
+ -active pdiodelvt,pdilvt
+ -active pdiodehvt,pdihvt
+ -active ndiodelvt,ndilvt
+ -active pdiodelvtc,pdilvtc
+ -active pdiodehvtc,pdihvtc
+ -active ndiodelvtc,ndilvtc
+
+# Local Interconnect 
+  locali locali,li1,li
+ -locali corelocali,coreli1,coreli
+ -locali rlocali,rli1,rli
+  locali viali,vial,lic,licon,m1c,v0
+ -locali obsli1,obsli
+ -locali obsli1c,obslic,obslicon
+
+# Metal 1
+  metal1 metal1,m1,met1
+ -metal1 rmetal1,rm1,rmet1
+  metal1 via1,m2contact,m2cut,m2c,via,v,v1
+ -metal1 obsm1
+ -metal1 padl
+
+# Metal 2
+  metal2 metal2,m2,met2
+ -metal2 rmetal2,rm2,rmet2
+  metal2 via2,m3contact,m3cut,m3c,v2
+ -metal2 obsm2
+
+# Metal 3
+  metal3 metal3,m3,met3
+ -metal3 rmetal3,rm3,rmet3
+ -metal3 obsm3
+#ifdef METAL5
+  metal3 via3,v3
+
+#ifdef MIM
+ -cap1 mimcap,mim,capm
+ -cap1 mimcapcontact,mimcapc,mimcc,capmc
+#endif
+
+# Metal 4
+  metal4 metal4,m4,met4
+ -metal4 rmetal4,rm4,rmet4
+ -metal4 obsm4
+  metal4 via4,v4
+
+#ifdef MIM
+ -cap2 mimcap2,mim2,capm2
+ -cap2 mimcap2contact,mimcap2c,mim2cc,capm2c
+#endif
+
+# Metal 5
+  metal5 metal5,m5,met5
+ -metal5 rm5,rmetal5,rmet5
+ -metal5 obsm5
+#endif (METAL5)
+
+#ifdef REDISTRIBUTION
+ -metal5 mrdlcontact,mrdlc
+ -metali metalrdl,mrdl,metrdl
+ -metali obsmrdl
+#endif (REDISTRIBUTION)
+
+# Miscellaneous
+ -block  glass
+ -block  fillblock
+ -comment comment
+ -comment obscomment
+
+end
+
+#-----------------------------------------------------
+# Magic contact types
+#-----------------------------------------------------
+
+contact
+  pc       poly       locali
+  ndc      ndiff      locali
+  pdc      pdiff      locali
+  nsc      nsd        locali
+  psc      psd        locali
+  ndic     ndiode     locali
+  ndilvtc  ndiodelvt  locali
+  nndic    nndiode    locali
+  pdic     pdiode     locali
+  pdilvtc  pdiodelvt  locali
+  pdihvtc  pdiodehvt  locali
+  xpc      xpc        locali
+
+  mvndc   mvndiff   locali
+  mvpdc   mvpdiff   locali
+  mvnsc   mvnsd     locali
+  mvpsc   mvpsd     locali
+  mvndic  mvndiode  locali
+  mvpdic  mvpdiode  locali
+
+  lic locali metal1
+  obslic obsli obsm1
+
+  via1   metal1 metal2
+  via2   metal2 metal3
+#ifdef METAL5
+  via3   metal3 metal4
+  via4   metal4 metal5
+#endif (METAL5)
+  stackable
+
+#ifdef METAL5
+#ifdef MIM
+  # MiM cap contacts are not stackable!
+  mimcc  mimcap metal4
+  mim2cc mimcap2 metal5
+#endif (MIM)
+
+  padl m1 m2 m3 m4 m5 glass
+#else
+  padl m1 m2 m3 glass
+#endif  (!METAL5)
+
+#ifdef REDISTRIBUTION
+  mrdlc metal5 mrdl
+#endif (REDISTRIBUTION)
+end
+
+#-----------------------------------------------------
+# Layer aliases
+#-----------------------------------------------------
+
+aliases
+
+  allwellplane     nwell
+  allnwell	   nwell,obswell
+
+  allnfets	   nfet,scnfet,mvnfet,mvnnfet,nfetlvt,nsonos
+  allpfets	   pfet,scpfet,mvpfet,pfethvt,pfetlvt
+  allfets	   allnfets,allpfets,varactor,mvvaractor,varhvt
+
+  allnactivenonfet *ndiff,*nsd,*ndiode,*nndiode,*mvndiff,*mvnsd,*mvndiode,*ndiodelvt
+  allnactive	   allnactivenonfet,allnfets
+  allnactivenontap *ndiff,*ndiode,*nndiode,*mvndiff,*mvndiode,*ndiodelvt,allnfets
+  allnactivetap	   *nsd,*mvnsd,var,varhvt,mvvar
+
+  allpactivenonfet *pdiff,*psd,*pdiode,*mvpdiff,*mvpsd,*mvpdiode,*pdiodelvt,*pdiodehvt
+  allpactive	   allpactivenonfet,allpfets
+  allpactivenontap *pdiff,*pdiode,*mvpdiff,*mvpdiode,*pdiodelvt,*pdiodehvt,allpfets
+  allpactivetap    *psd,*mvpsd
+
+  allactivenonfet  allnactivenonfet,allpactivenonfet
+  allactive	   allactivenonfet,allfets
+
+  allactiveres	   ndiffres,pdiffres,mvndiffres,mvpdiffres
+
+  allndifflv       *ndif,*nsd,*ndiode,ndiffres,nfet,scnfet,nfetlvt,nsonos
+  allpdifflv       *pdif,*psd,*pdiode,pdiffres,pfet,scpfet,pfetlvt,pfethvt
+  alldifflv        allndifflv,allpdifflv
+  allndifflvnonfet *ndif,*nsd,*ndiode,*nndiode,ndiffres,*ndiodelvt
+  allpdifflvnonfet *pdif,*psd,*pdiode,pdiffres,*pdiodelvt,*pdiodehvt
+  alldifflvnonfet  allndifflvnonfet,allpdifflvnonfet
+
+  allndiffmv       *mvndif,*mvnsd,*mvndiode,*nndiode,mvndiffres,mvnfet,mvnnfet
+  allpdiffmv       *mvpdif,*mvpsd,*mvpdiode,mvpdiffres,mvpfet
+  alldiffmv        allndiffmv,allpdiffmv
+  allndiffmvnontap *mvndif,*mvndiode,*nndiode,mvndiffres,mvnfet,mvnnfet
+  allpdiffmvnontap *mvpdif,*mvpdiode,mvpdiffres,mvpfet
+  alldiffmvnontap  allndiffmvnontap,allpdiffmvnontap
+  allndiffmvnonfet *mvndif,*mvnsd,*mvndiode,*nndiode,mvndiffres
+  allpdiffmvnonfet *mvpdif,*mvpsd,*mvpdiode,mvpdiffres
+  alldiffmvnonfet  allndiffmvnonfet,allpdiffmvnonfet
+
+  alldiffnonfet	   alldifflvnonfet,alldiffmvnonfet
+  alldiff	   alldifflv,alldiffmv
+
+  allpolyres	   mrp1,xhrpoly,uhrpoly,rmp
+  allpolynonfet	   *poly,allpolyres,xpc
+  allpolynonres	   *poly,allfets,xpc
+
+  allpoly	   allpolynonfet,allfets
+  allpolynoncap	   *poly,xpc,allfets,allpolyres
+
+  allndiffcontlv   ndc,nsc,ndic,nndic,ndilvtc
+  allpdiffcontlv   pdc,psc,pdic,pdilvtc,pdihvtc
+  allndiffcontmv   mvndc,mvnsc,mvndic
+  allpdiffcontmv   mvpdc,mvpsc,mvpdic
+  allndiffcont	   allndiffcontlv,allndiffcontmv
+  allpdiffcont	   allpdiffcontlv,allpdiffcontmv
+  alldiffcontlv	   allndiffcontlv,allpdiffcontlv
+  alldiffcontmv	   allndiffcontmv,allpdiffcontmv
+  alldiffcont	   alldiffcontlv,alldiffcontmv
+
+  allcont	alldiffcont,pc
+
+  allres	allpolyres,allactiveres
+
+  allli		*locali,coreli,rli
+  allm1		*m1,rm1
+  allm2		*m2,rm2
+  allm3		*m3,rm3
+#ifdef METAL5
+  allm4	   	*m4,rm4
+  allm5	   	*m5,rm5
+#endif (METAL5)
+
+  allpad	padl
+
+  psub		pwell
+  
+end
+
+#-----------------------------------------------------
+# Layer drawing styles
+#-----------------------------------------------------
+
+styles
+ styletype mos
+  dnwell    cwell
+  nwell     nwell
+  pwell	    pwell
+  rpwell    pwell 	ptransistor_stripes
+  ndiff     ndiffusion
+  pdiff     pdiffusion
+  nsd       ndiff_in_nwell
+  psd       pdiff_in_pwell
+  nfet      ntransistor    ntransistor_stripes
+  scnfet    ntransistor    ntransistor_stripes
+  pfet      ptransistor    ptransistor_stripes
+  scpfet    ptransistor    ptransistor_stripes
+  var       polysilicon    ndiff_in_nwell
+  ndc       ndiffusion     metal1  contact_X'es
+  pdc       pdiffusion     metal1  contact_X'es
+  nsc       ndiff_in_nwell metal1  contact_X'es
+  psc       pdiff_in_pwell metal1  contact_X'es
+
+  pfetlvt   ptransistor	ptransistor_stripes implant1
+  pfethvt   ptransistor ptransistor_stripes implant2
+  nfetlvt   ntransistor ntransistor_stripes implant1
+  nsonos    ntransistor implant3
+  varhvt    polysilicon ndiff_in_nwell implant2
+
+  mvndiff   ndiffusion     hvndiff_mask
+  mvpdiff   pdiffusion     hvpdiff_mask
+  mvnsd     ndiff_in_nwell hvndiff_mask
+  mvpsd     pdiff_in_pwell hvpdiff_mask
+  mvnfet    ntransistor    ntransistor_stripes hvndiff_mask
+  mvnnfet   ntransistor    ndiff_in_nwell hvndiff_mask
+  mvpfet    ptransistor    ptransistor_stripes
+  mvvar     polysilicon    ndiff_in_nwell hvndiff_mask
+  mvndc     ndiffusion     metal1  contact_X'es hvndiff_mask
+  mvpdc     pdiffusion     metal1  contact_X'es hvpdiff_mask
+  mvnsc     ndiff_in_nwell metal1  contact_X'es hvndiff_mask
+  mvpsc     pdiff_in_pwell metal1  contact_X'es hvpdiff_mask
+
+  poly      polysilicon 
+  pc        polysilicon    metal1  contact_X'es
+  npolyres  polysilicon    silicide_block nselect2
+  ppolyres  polysilicon    silicide_block pselect2
+  xpc	    polysilicon	   pselect2  metal1  contact_X'es
+  rmp	    polysilicon	   poly_resist_stripes
+
+  pdiode    pdiffusion     pselect2
+  ndiode    ndiffusion     nselect2
+  pdiodec   pdiffusion     pselect2 metal1 contact_X'es
+  ndiodec   ndiffusion     nselect2 metal1 contact_X'es
+
+  nndiode   ndiffusion  nselect2 implant3
+  ndiodelvt ndiffusion	nselect2 implant1
+  pdiodelvt pdiffusion  pselect2 implant1
+  pdiodehvt pdiffusion  pselect2 implant2
+  pdilvtc   pdiffusion  pselect2 implant1 metal1 contact_X'es
+  pdihvtc   pdiffusion  pselect2 implant2 metal1 contact_X'es
+  ndilvtc   ndiffusion  nselect2 implant1 metal1 contact_X'es
+
+  mvpdiode    pdiffusion     pselect2 hvpdiff_mask
+  mvndiode    ndiffusion     nselect2 hvndiff_mask
+  mvpdiodec   pdiffusion     pselect2 metal1 contact_X'es hvpdiff_mask
+  mvndiodec   ndiffusion     nselect2 metal1 contact_X'es hvndiff_mask
+  nndiodec    ndiff_in_nwell nselect2 metal1 contact_X'es hvndiff_mask
+
+  locali    metal1
+  coreli    metal1
+  rli       metal1         poly_resist_stripes
+  lic	    metal1	   metal2 via1arrow
+  obsli     metal1
+  obslic    metal1	   metal2 via1arrow
+
+  metal1    metal2
+  rm1       metal2         poly_resist_stripes
+  obsm1     metal2
+  m2c       metal2         metal3  via2arrow
+  metal2    metal3
+  rm2       metal3         poly_resist_stripes
+  obsm2     metal3
+  m3c       metal3         metal4  via3alt
+  metal3    metal4
+  rm3       metal4         poly_resist_stripes
+  obsm3     metal4
+#ifdef METAL5
+#ifdef MIM
+  mimcap    metal3         mems
+  mimcc     metal3         contact_X'es mems
+  mimcap2   metal4         mems
+  mim2cc    metal4         contact_X'es mems
+#endif (MIM)
+  via3      metal4         metal5  via4
+  metal4    metal5
+  rm4       metal5         poly_resist_stripes
+  obsm4     metal5
+  via4      metal5         metal6  via5
+  metal5    metal6
+  rm5       metal6         poly_resist_stripes
+  obsm5     metal6
+#endif (METAL5)
+#ifdef REDISTRIBUTION
+  mrdlc	    metal6  metal7  via6
+  metalrdl  metal7
+  obsmrdl   metal7
+#endif (REDISTRIBUTION)
+
+  glass	    overglass
+  mrp1      poly_resist    poly_resist_stripes
+  xhrpoly   poly_resist    silicide_block
+  uhrpoly   poly_resist
+  ndiffres  ndiffusion	   ndop_stripes
+  pdiffres  pdiffusion	   pdop_stripes
+  mvndiffres  ndiffusion hvndiff_mask   ndop_stripes
+  mvpdiffres  pdiffusion hvpdiff_mask   pdop_stripes
+  comment   comment
+  error_p   error_waffle
+  error_s   error_waffle
+  error_ps  error_waffle
+  fillblock cwell
+
+  obswell   cwell
+  obsactive implant4
+
+#ifndef METAL5
+  padl      metal4 via4 overglass
+#else
+  padl      metal6 via6 overglass
+#endif
+
+  magnet    substrate_field_implant
+  rotate    via3alt
+  fence     via5
+end
+
+#-----------------------------------------------------
+# Special paint/erase rules
+#-----------------------------------------------------
+
+compose
+  compose  nfet  poly  ndiff
+  compose  pfet  poly  pdiff
+  compose  var   poly  nsd
+
+  compose  mvnfet  poly  mvndiff
+  compose  mvpfet  poly  mvpdiff
+  compose  mvvar   poly  mvnsd
+  
+  paint  ndc     nwell  pdc
+  paint  nfet    nwell  pfet
+  paint  scnfet  nwell  scpfet
+  paint  ndiff   nwell  pdiff
+  paint  psd     nwell  nsd
+  paint  psc     nwell  nsc
+
+  paint  pdc     pwell  ndc
+  paint  pfet    pwell  nfet
+  paint  scpfet  pwell  scnfet
+  paint  pdiff   pwell  ndiff
+  paint  nsd     pwell  psd
+  paint  nsc     pwell  psc
+
+  paint  pdc	 coreli pdc
+  paint  ndc	 coreli ndc
+  paint  pc	 coreli pc
+  paint  nsc 	 coreli pc
+  paint  psc 	 coreli pc
+  paint  viali 	 coreli viali
+
+  paint  coreli  pdc    pdc
+  paint  coreli  ndc    ndc
+  paint  coreli  pc     pc
+  paint  coreli  nsc    nsc
+  paint  coreli  psc    psc
+  paint  coreli  viali  viali
+
+#ifdef METAL5
+  paint  m4      obsm4  m4
+  paint  m5      obsm5  m5
+#endif (METAL5)
+end
+
+#-----------------------------------------------------
+# Electrical connectivity
+#-----------------------------------------------------
+
+connect
+  *nwell,*nsd,*mvnsd,dnwell *nwell,*nsd,*mvnsd,dnwell
+  pwell,*psd,*mvpsd  pwell,*psd,*mvpsd
+  *li,coreli	*li,coreli
+  *m1	*m1
+  *m2	*m2
+  *m3	*m3
+#ifdef METAL5
+  *m4	*m4
+  *m5	*m5
+#ifdef MIM
+  *mimcap     *mimcap
+  *mimcap2    *mimcap2
+#endif (MIM)
+#endif (METAL5)
+   allnactivenonfet	allnactivenonfet
+   allpactivenonfet	allpactivenonfet
+  *poly,xpc,allfets	*poly,xpc,allfets
+#ifdef REDISTRIBUTION
+  # RDL connects to m5 (i.e., padl) through glass cut
+  *mrdl			*mrdl
+  glass			metrdl
+#endif (REDISTRIBUTION)
+end
+
+#-----------------------------------------------------
+# CIF/GDS output layer definitions
+#-----------------------------------------------------
+# NOTE:  All values in this section MUST be multiples of 25 
+# or else magic will scale below the allowed layout grid size
+
+cifoutput
+
+#----------------------------------------------------------------
+style gdsii
+# NOTE: This section is used for actual GDS output
+#----------------------------------------------------------------
+ scalefactor 10  nanometers
+ options calma-permissive-labels
+ gridlimit 5
+
+#----------------------------------------------------------------
+# Create a temp layer from the cell bounding box for use in
+# generating ID layers.  Note that "boundary", unlike "bbox",
+# requires the FIXED_BBOX property (abutment box) in the cell.
+#----------------------------------------------------------------
+ templayer CELLBOUND
+	boundary
+
+#----------------------------------------------------------------
+# BOUND
+#----------------------------------------------------------------
+ layer 	BOUND CELLBOUND
+	calma 235 4
+
+# Create a boundary outside of an abutment box, so that layers
+# can be made to stretch to the abutment box edges.  First strink
+# so that any box that would be so small as to interact with
+# itself will be removed.
+
+ templayer CELLRING CELLBOUND
+	shrink 345
+	grow 545
+	and-not CELLBOUND
+
+#----------------------------------------------------------------
+# DNWELL
+#----------------------------------------------------------------
+
+ layer DNWELL	dnwell
+	calma	64 18
+
+ layer PWRES    rpw
+	and	dnwell
+	calma	64 13
+
+#----------------------------------------------------------------
+# NWELL
+#----------------------------------------------------------------
+
+ layer NWELL 	allnwell
+	bloat-all rpw dnwell
+	and-not rpw,pwell
+ 	calma 	64 20
+
+ layer WELLTXT
+ 	labels allnwell noport
+	calma 64 16
+
+ layer WELLPIN
+ 	labels allnwell port
+	calma 64 5
+
+#----------------------------------------------------------------
+# SUB (text/port only)
+#----------------------------------------------------------------
+
+ layer SUBTXT
+ 	labels pwell noport
+	calma 122 16
+
+ layer SUBPIN
+ 	labels pwell port
+	calma 64 59
+
+#----------------------------------------------------------------
+# DIFF
+#----------------------------------------------------------------
+
+ layer DIFF 	allnactivenontap,allpactivenontap,allactiveres
+ 	labels 	allnactivenontap,allpactivenontap
+ 	calma 	65 20
+
+#----------------------------------------------------------------
+# TAP
+#----------------------------------------------------------------
+
+ layer TAP 	allnactivetap,allpactivetap
+ 	labels 	allnactivetap,allpactivetap
+ 	calma 	65 44
+
+#----------------------------------------------------------------
+# PPLUS, NPLUS (PSDM, NSDM)
+#----------------------------------------------------------------
+
+ templayer basePPLUS pdiffres,mvpdiffres
+	grow	15
+	or	xhrpoly,uhrpoly,xpc
+	grow	110
+	bloat-or allpactivetap * 125 allnactivenontap 0
+	bloat-or allpactivenontap * 125 allnactivetap 0
+	bridge	380 380
+
+ templayer extendPPLUS  basePPLUS,CELLRING
+	grow	185
+	shrink	185
+	and-not	CELLRING
+
+ layer PPLUS basePPLUS,extendPPLUS 
+	close   265000
+	calma	94 20
+
+ templayer baseNPLUS ndiffres,mvndiffres
+ 	grow	125
+	bloat-or allnactivetap * 125 allpactivenontap 0
+	bloat-or allnactivenontap * 125 allpactivetap 0
+	bridge	380 380
+
+ templayer extendNPLUS  baseNPLUS,CELLRING
+ 	grow	185
+ 	shrink	185
+	and-not	CELLRING
+
+ layer NPLUS baseNPLUS,extendNPLUS
+ 	close   265000
+ 	calma	93 44
+
+#----------------------------------------------------------------
+# LVTN
+#----------------------------------------------------------------
+
+ layer LVTN  pfetlvt,nfetlvt,mvvar,mvnnfet,nsonos,*pdiodelvt,*ndiodelvt,*nndiode
+        grow 180
+	bridge	380 380
+	grow	185
+	shrink	185
+	close  265000
+	calma 125 44
+
+#----------------------------------------------------------------
+# HVTP
+#----------------------------------------------------------------
+
+ layer HVTP pfethvt,varhvt,*pdiodehvt
+        grow 180
+	bridge	380 380
+	grow	185
+	shrink	185
+	close 265000
+	calma 78 44
+
+#----------------------------------------------------------------
+# SONOS
+#----------------------------------------------------------------
+
+ layer SONOS nsonos
+	grow 100
+	grow-min 410
+	bridge 500 410
+	grow 250
+	shrink 250
+	calma 80 20
+
+#----------------------------------------------------------------
+# SONOS requires COREID around area (areaid.ce).  Also, the
+# coreli layer indicates a cell needing COREID.
+#----------------------------------------------------------------
+
+ layer COREID
+	bloat-all nsonos,coreli CELLBOUND
+	calma 81 2
+
+#----------------------------------------------------------------
+# STDCELL applies to all cells containing scnfet or scpfet.
+#----------------------------------------------------------------
+
+ layer STDCELL scnfet
+	bloat-all scpfet,scnfet CELLBOUND
+	calma 81 4
+
+#----------------------------------------------------------------
+# RPM
+#----------------------------------------------------------------
+
+ layer RPM
+	bloat-all xhrpoly xpc
+	grow 200
+	grow-min 1270
+	grow 420
+	shrink 420
+	calma 86 20
+
+#----------------------------------------------------------------
+# URPM (2kOhms/sq. poly implant)
+#----------------------------------------------------------------
+
+ layer URPM
+	bloat-all uhrpoly xpc
+	grow 200
+	grow-min 1270
+	grow 420
+	shrink 420
+	calma 79 20
+
+#----------------------------------------------------------------
+# LDNTM (Tip implant for SONOS FETs)
+#----------------------------------------------------------------
+
+ layer LDNTM
+	bloat-all nsonos *ndiff
+	grow 185
+ 	grow 	345
+ 	shrink 	345
+	calma 11 44
+
+#----------------------------------------------------------------
+# HVNTM (Tip implant for MV ndiff devices)
+#----------------------------------------------------------------
+
+ templayer hvntm_block *mvpsd
+	grow 185
+
+ layer HVNTM
+	bloat-all mvnfet,mvnnfet,*mvndiode,mvrdn,*nndiode *mvndiff
+	bloat-all mvvaractor *mvnsd
+	and-not hvntm_block
+        grow 185
+ 	grow 	345
+ 	shrink 	345
+	calma 125 20
+
+#----------------------------------------------------------------
+# POLY
+#----------------------------------------------------------------
+
+ layer POLY 	allpoly
+ 	calma 	66 20
+
+ layer POLYTXT
+	labels  allpoly noport
+	calma	66 16
+
+ layer POLYPIN
+	labels  allpoly port
+	calma	66 5
+
+#----------------------------------------------------------------
+# THKOX (HVI) (includes rules NWELL 8-11 and DIFFTAP 14-26)
+#----------------------------------------------------------------
+
+ templayer baseTHKOX 	*mvpsd
+	grow-min 470
+	or alldiffmv,mvvar
+	grow	185
+        bloat-all alldiffmv nwell
+	grow-min 600
+	bridge	700 600
+
+ templayer extendTHKOX	baseTHKOX,CELLRING
+ 	grow 	345
+ 	shrink 	345
+	and-not	CELLRING
+
+ layer THKOX	baseTHKOX,extendTHKOX
+ 	calma 	75 20
+
+#----------------------------------------------------------------
+# CONT (LICON)
+#----------------------------------------------------------------
+
+ layer CONT allcont
+ 	squares-grid 0 170 170
+ 	calma	66 44
+
+ # Contact for pres is different than other LICON contacts
+ # See rules LICON 1b, 1c (width/length) and 2b (spacing)
+ templayer xpc_horiz xpc
+	shrink 1007
+	grow 1007
+
+ layer CONT xpc
+	and-not xpc_horiz
+	# Force long edge vertical for contacts narrower than 2um
+	# Minimum space is 350 but 520 satisfies no. of contacts rule
+ 	slots 80 190 520 80 2000 350
+ 	calma	66 44
+
+ layer CONT xpc
+	and xpc_horiz
+	# Force long edge vertical for contacts wider than 2um
+	# Minimum space is 350 but 520 satisfies no. of contacts rule
+ 	slots 80 2000 350 80 190 520
+ 	calma	66 44
+
+#----------------------------------------------------------------
+# NPC (Nitride poly cut)
+# surrounds CONT (LICON) on poly only (i.e., pc)
+#----------------------------------------------------------------
+
+ layer NPC pc
+ 	squares-grid 0 170 170
+	grow 100
+	bridge 270 270
+	grow 130
+	shrink 130
+	calma  95 20
+
+ # NPC is also generated on xhrpoly and uhrpoly resistors
+
+ layer NPC xpc,xhrpoly,uhrpoly
+        # xpc surrounds precision_resistor by 0.095um
+	grow 95
+	grow 130
+	shrink 130
+	calma  95 20
+
+#----------------------------------------------------------------
+# Device markers
+#----------------------------------------------------------------
+
+ layer DIFFRES rdn,mvrdn,rdp,mvrdp
+	calma 65 13
+
+ layer POLYRES mrp1
+	calma 66 13
+
+ # POLYSHORT is a poly layer resistor like rli, rm1, etc., for metal layers
+ layer POLYSHORT rmp
+	calma 66 15
+
+ # POLYRES extends to edge of contact cut
+ layer POLYRES xhrpoly,uhrpoly
+	grow 60
+	and xpc
+	or xhrpoly,uhrpoly
+	calma 66 13
+
+ layer DIODE *pdi,*ndi,*nndi,*mvpdi,*mvndi,*pdilvt,*pdihvt,*ndilvt
+        # To be done:  Expand to include anode, cathode, and guard ring
+	calma 81 23
+
+#----------------------------------------------------------------
+# LI
+#----------------------------------------------------------------
+ layer LI allli
+	calma 67 20
+
+ layer LITXT
+ 	labels *locali,coreli noport
+	calma 67 16
+
+ layer LIPIN
+ 	labels *locali,coreli port
+	calma 67 5
+
+ layer LIRES rli
+	labels rli
+	calma 67 13
+
+#----------------------------------------------------------------
+# MCON
+#----------------------------------------------------------------
+ layer MCON lic
+ 	squares-grid 0 170 190
+ 	calma 	67 44
+
+#----------------------------------------------------------------
+# MET1
+#----------------------------------------------------------------
+ layer MET1 	allm1
+ 	calma 	68 20
+
+ layer MET1TXT
+	labels	allm1 noport
+	calma 	68 16
+
+ layer MET1PIN
+	labels	allm1 port
+	calma 	68 5
+
+ layer MET1RES rm1
+	labels rm1
+	calma 68 13
+
+#----------------------------------------------------------------
+# VIA1
+#----------------------------------------------------------------
+ layer VIA1 	via1
+ 	squares-grid 55 150 170
+ 	calma 	68 44
+
+#----------------------------------------------------------------
+# MET2
+#----------------------------------------------------------------
+ layer MET2 	allm2
+ 	calma 	69 20
+
+ layer MET2TXT
+	labels	allm2 noport
+	calma	69 16
+
+ layer MET2PIN
+	labels	allm2 port
+	calma	69 5
+
+ layer MET2RES rm2
+	labels rm2
+	calma 69 13
+
+#----------------------------------------------------------------
+# VIA2
+#----------------------------------------------------------------
+ layer VIA2 	via2
+ 	squares-grid 40 200 200
+ 	calma 	69 44
+
+#----------------------------------------------------------------
+# MET3
+#----------------------------------------------------------------
+ layer MET3 	allm3
+ 	calma 	70 20
+
+ layer MET3TXT
+ 	labels 	allm3 noport
+	calma	70 16 
+
+ layer MET3PIN
+	labels	allm3 port
+	calma	70 5
+
+ layer MET3RES rm3
+	labels rm3
+	calma 70 13
+
+#ifdef METAL5
+#----------------------------------------------------------------
+# VIA3
+#----------------------------------------------------------------
+ layer VIA3	via3
+#ifdef MIM
+	or mimcc
+#endif (MIM)
+ 	squares-grid 60 200 200
+ 	calma 	70 44
+
+#----------------------------------------------------------------
+# MET4
+#----------------------------------------------------------------
+ layer MET4 	allm4
+ 	calma 	71 20
+
+ layer MET4TXT
+	labels	allm4 noport
+	calma	71 16
+
+ layer MET4PIN
+	labels	allm4 port
+	calma	71 5
+
+ layer MET4RES rm4
+	labels rm4
+	calma 71 13
+
+#----------------------------------------------------------------
+# VIA4
+#----------------------------------------------------------------
+ layer VIA4	via4
+#ifdef MIM
+	or mim2cc
+#endif (MIM)
+ 	squares-grid 190 800 800
+ 	calma 	71 44
+
+#----------------------------------------------------------------
+# MET5
+#----------------------------------------------------------------
+ layer MET5 	allm5
+ 	calma 	72 20
+
+ layer MET5TXT
+	labels	allm5 noport
+	calma	72 16
+
+ layer MET5PIN
+	labels	allm5 port
+	calma	72 5
+
+ layer MET5RES rm5
+	labels rm5
+	calma 72 13
+
+#endif (METAL5)
+
+#ifdef REDISTRIBUTION
+#----------------------------------------------------------------
+# RDL
+#----------------------------------------------------------------
+  layer RDL	*metrdl
+	calma   74 20
+
+  layer RDLTXT
+	labels	*metrdl noport
+	calma	74 16
+
+  layer RDLPIN
+	labels  *metrdl port
+	calma	74 5
+
+#endif REDISTRIBUTION
+
+#----------------------------------------------------------------
+# GLASS
+#----------------------------------------------------------------
+ layer GLASS 	glass
+ 	calma 	76 20
+
+#ifdef MIM
+#----------------------------------------------------------------
+# CAPM
+#----------------------------------------------------------------
+ layer CAPM 	*mimcap
+ 	labels 	mimcap
+ 	calma 	89 44
+
+ layer CAPM2 	*mimcap2
+ 	labels 	mimcap2
+ 	calma 	97 44
+#endif (MIM)
+
+#----------------------------------------------------------------
+# Chip top level marker for DRC latchup rules to check 15um
+# distance to taps (otherwise 6um is used)
+#----------------------------------------------------------------
+
+ layer LOWTAPDENSITY
+	bbox top
+	# Clear 200um for pads + 50um for required high tap density
+	# in critical area.
+	shrink 250000
+	calma	81 14
+
+#----------------------------------------------------------------
+# FILLBLOCK
+#----------------------------------------------------------------
+ layer FILLOBSM1 fillblock
+ 	calma 	62 24
+
+ layer FILLOBSM2 fillblock
+ 	calma 	105 52
+
+ layer FILLOBSM3 fillblock
+ 	calma 	107 24
+
+ layer FILLOBSM4 fillblock
+ 	calma 	112 4
+
+ render	DNWELL 	cwell       -0.1    0.1
+ render	NWELL	nwell        0.0    0.2062
+ render DIFF	ndiffusion   0.2062 0.12
+ render TAP	pdiffusion   0.2062 0.12
+ render POLY	polysilicon  0.3262 0.18
+ render CONT	via          0.5062 0.43
+ render LI	metal1       0.9361 0.10
+ render MCON	via          1.0361 0.34
+ render MET1	metal2       1.3761 0.36
+ render VIA1	via          1.7361 0.27
+ render MET2	metal3       2.0061 0.36
+ render VIA2	via          2.3661 0.42
+ render MET3	metal4       2.7861 0.845
+#ifdef METAL5
+ render VIA3	via          3.6311 0.39
+ render MET4	metal5       4.0211 0.845
+ render VIA4	via          4.8661 0.505
+ render MET5	metal6       5.3711 1.26
+ render CAPM	metal8       2.4661 0.2
+ render CAPM2	metal9       3.7311 0.2
+#ifdef REDISTRIBUTION
+ render RDL	metal7      11.8834 4.0
+#endif (!REDISTRIBUTION)
+#endif (!METAL5)
+
+#----------------------------------------------------------------
+style drc
+#----------------------------------------------------------------
+# NOTE:  This style is used for DRC only, not for GDS output
+#----------------------------------------------------------------
+ scalefactor 10  nanometers
+ options calma-permissive-labels
+
+ # Ensure nwell overlaps dnwell at least 0.4um outside and 1.03um inside
+ templayer dnwell_shrink dnwell
+ shrink 1030
+
+ templayer nwell_missing dnwell
+ grow 400
+ and-not dnwell_shrink
+ and-not nwell
+
+ # SONOS nFET devices must be in deep nwell
+ templayer dnwell_missing nsonos
+ and-not dnwell
+
+ # Define MiM cap bottom plate for spacing rule
+ templayer mim_bottom
+ bloat-all *mimcap *metal3
+
+ # Define MiM2 cap bottom plate for spacing rule
+ templayer mim2_bottom
+ bloat-all *mimcap2 *metal4
+
+ # Note that metal fill is performed by the foundry and so is not
+ # an option for a cifoutput style.
+
+ # Check latchup rule (15um minimum from tap LICON center to any
+ # non-tap diffusion.  Note that to count as a tap, the diffusion
+ # must be contacted to LI
+
+ templayer ptap_reach psc,mvpsc
+ and-not dnwell
+ # grow total is 15um.  grow in 0.84um increments to ensure that
+ # no nwell ring is crossed
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 840
+ and-not nwell,dnwell
+ grow 635
+ and-not nwell,dnwell
+
+ templayer ptap_missing *ndiff,*mvndiff
+ and-not dnwell
+ and-not ptap_reach
+
+ templayer ntap_reach nsc,mvnsc
+ # grow total is 15um.  grow in 1.27um increments to ensure that
+ # no nwell ring is crossed.  There is no difference between
+ # ntaps in and out of deep nwell.
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 1270
+ and nwell
+ grow 945
+ and nwell
+ 
+ templayer ntap_missing *pdiff,*mvpdiff
+ and-not dnwell
+ and-not ntap_reach
+
+ templayer dptap_reach psc,mvpsc
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 840
+ and-not nwell
+ and dnwell
+ grow 635
+ and-not nwell
+ and dnwell
+
+ templayer dptap_missing *ndiff,*mvndiff
+ and dnwell
+ and-not dptap_reach
+
+ templayer m1_small_hole *m1
+ close   140000
+
+ templayer m1_hole_empty m1_small_hole
+ and-not *m1
+
+ templayer m2_small_hole *m2
+ close   140000
+
+ templayer m2_hole_empty m2_small_hole
+ and-not *m2
+
+#ifdef EXPERIMENTAL
+#----------------------------------------------------------------
+style paint
+#----------------------------------------------------------------
+# NOTE:  This style is used for database manipulations only via
+# the "cif paint" command.
+#----------------------------------------------------------------
+
+ scalefactor 10  nanometers
+
+ templayer m1grow *m1
+    grow 290
+
+ # layer listrap:  Use the following set of commands to strap local
+ # interconnect wires with metal1 (inside the cursor box) to satisfy
+ # the maximum aspect ratio rule for local interconnect:
+ #
+ #    tech unlock *
+ #    cif ostyle paint
+ #    cif paint m1strap comment
+ #    cif paint m1strap m1
+ #    cif paint listrap licon
+ #    erase comment
+
+ templayer m1strap *li
+    and-not m1grow
+    grow 30
+
+ templayer listrap comment
+    slots 30 170 170 60
+
+#endif (EXPERIMENTAL)
+
+end
+
+#-----------------------------------------------------------------------
+cifinput
+#-----------------------------------------------------------------------
+# NOTE:  All values in this section MUST be multiples of 25 
+# or else magic will scale below the allowed layout grid size
+#-----------------------------------------------------------------------
+
+style  vendorimport
+ scalefactor 10 nanometers
+ gridlimit 5
+
+ options ignore-unknown-layer-labels no-reconnect-labels
+
+#ifndef MIM
+ ignore CAPM
+ ignore CAPM2
+#endif (!MIM)
+#ifndef METAL5
+ ignore MET4,VIA3
+ ignore MET5,VIA4
+#endif
+ ignore NPC
+ ignore SEALID
+ ignore NPNID
+ ignore PNPID
+ ignore CAPID
+ ignore LDNTM
+ ignore HVNTM
+ ignore POLYMOD
+ ignore LOWTAPDENSITY
+
+ layer nwell NWELL,WELLTXT,WELLPIN
+ labels NWELL
+ labels WELLTXT text
+ labels WELLPIN port
+
+ layer pwell SUBTXT,SUBPIN
+ labels SUBTXT text
+ labels SUBPIN port
+
+ layer dnwell DNWELL
+ labels DNWELL
+
+ layer rpw PWRES
+ and DNWELL
+ labels PWRES
+
+ templayer ndiffarea DIFF,DIFFTXT,DIFFPIN
+ and-not POLY
+ and-not NWELL
+ and-not PPLUS
+ and-not DIODE
+ and-not DIFFRES
+ and-not THKOX
+ and NPLUS
+ copyup ndifcheck
+ labels DIFF
+ labels DIFFTXT text
+ labels DIFFPIN port
+ labels TAPPIN port
+
+ layer ndiff ndiffarea
+
+ # Copy ndiff areas up for contact checks
+ templayer xndifcheck ndifcheck
+ copyup ndifcheck
+
+ templayer mvndiffarea DIFF,DIFFTXT,DIFFPIN
+ and-not POLY
+ and-not NWELL
+ and-not PPLUS
+ and-not DIODE
+ and-not DIFFRES
+ and THKOX
+ and NPLUS
+ copyup ndifcheck
+ labels DIFF
+ labels DIFFTXT text
+ labels DIFFPIN port
+
+ layer mvndiff mvndiffarea
+
+ # Copy ndiff areas up for contact checks
+ templayer mvxndifcheck mvndifcheck
+ copyup mvndifcheck
+
+ layer ndiode DIFF
+ and NPLUS
+ and DIODE
+ and-not NWELL
+ and-not POLY
+ and-not PPLUS
+ and-not THKOX
+ and-not LVTN
+ labels DIFF
+
+ layer ndiodelvt DIFF
+ and NPLUS
+ and DIODE
+ and-not NWELL
+ and-not POLY
+ and-not PPLUS
+ and-not THKOX
+ and LVTN
+ labels DIFF
+
+ templayer ndiodearea DIODE
+ and NPLUS
+ and-not THKOX
+ and-not NWELL
+ copyup DIODE,NPLUS
+
+ layer ndiffres DIFFRES
+ and NPLUS
+ and-not THKOX
+ labels DIFF
+
+ templayer pdiffarea DIFF,DIFFTXT,DIFFPIN
+ and-not POLY
+ and NWELL
+ and-not NPLUS
+ and-not DIODE
+ and-not THKOX
+ and PPLUS
+ copyup pdifcheck
+ labels DIFF 
+ labels DIFFTXT text
+ labels DIFFPIN port
+
+ layer pdiff pdiffarea
+
+ layer mvndiode DIFF
+ and NPLUS
+ and DIODE
+ and THKOX
+ and-not POLY
+ and-not PPLUS
+ and-not LVTN
+ labels DIFF
+
+ layer nndiode DIFF
+ and NPLUS
+ and DIODE
+ and THKOX
+ and-not POLY
+ and-not PPLUS
+ and LVTN
+ labels DIFF
+
+ templayer mvndiodearea DIODE
+ and NPLUS
+ and THKOX
+ and-not NWELL
+ copyup DIODE,NPLUS
+
+ layer mvndiffres DIFFRES
+ and NPLUS
+ and THKOX
+ labels DIFF
+
+ templayer mvpdiffarea DIFF,DIFFTXT,DIFFPIN
+ and-not POLY
+ and NWELL
+ and-not NPLUS
+ and THKOX
+ and-not DIODE
+ and-not DIFFRES
+ and PPLUS
+ copyup mvpdifcheck
+ labels DIFF
+ labels DIFFTXT text
+ labels DIFFPIN port
+
+ layer mvpdiff mvpdiffarea
+
+ # Copy pdiff areas up for contact checks
+ templayer xpdifcheck pdifcheck
+ copyup pdifcheck
+
+ layer pdiode DIFF
+ and PPLUS
+ and-not POLY
+ and-not NPLUS
+ and-not THKOX
+ and-not LVTN
+ and-not HVTP
+ and DIODE
+ labels DIFF
+
+ layer pdiodelvt DIFF
+ and PPLUS
+ and-not POLY
+ and-not NPLUS
+ and-not THKOX
+ and LVTN
+ and-not HVTP
+ and DIODE
+ labels DIFF
+
+ layer pdiodehvt DIFF
+ and PPLUS
+ and-not POLY
+ and-not NPLUS
+ and-not THKOX
+ and-not LVTN
+ and HVTP
+ and DIODE
+ labels DIFF
+
+ templayer pdiodearea DIODE
+ and PPLUS
+ and-not THKOX
+ copyup DIODE,PPLUS
+
+ # Define pfet areas as known pdiff, regardless of the presence of a well.
+
+ templayer pfetarea DIFF
+ and-not NPLUS
+ and-not THKOX
+ and POLY
+
+ layer pfet pfetarea
+ and-not LVTN
+ and-not HVTP
+ and-not STDCELL
+ labels DIFF
+
+ layer scpfet pfetarea
+ and-not LVTN
+ and-not HVTP
+ and STDCELL
+ labels DIFF
+
+ layer pfetlvt pfetarea
+ and LVTN
+ labels DIFF
+
+ layer pfethvt pfetarea
+ and HVTP
+ labels DIFF
+
+ # Always force nwell under pfet (nwell encloses pdiff by 0.18)
+ layer nwell pfetarea
+ grow 180
+
+ # Copy mvpdiff areas up for contact checks
+ templayer mvxpdifcheck mvpdifcheck
+ copyup mvpdifcheck
+
+ layer mvpdiode DIFF
+ and PPLUS
+ and-not POLY
+ and-not NPLUS
+ and THKOX
+ and DIODE
+ labels DIFF
+
+ templayer mvpdiodearea DIODE
+ and PPLUS
+ and THKOX
+ copyup DIODE,PPLUS
+
+ # Define pfet areas as known pdiff,
+ # regardless of the presence of a
+ # well.
+
+ templayer mvpfetarea DIFF
+ and-not NPLUS
+ and THKOX
+ and POLY
+
+ layer mvpfet mvpfetarea
+ labels DIFF
+
+ layer pdiff DIFF,DIFFTXT,DIFFPIN
+ and-not NPLUS
+ and-not POLY
+ and-not THKOX
+ and-not DIODE
+ and-not DIFFRES
+ labels DIFF
+ labels DIFFTXT text
+ labels DIFFPIN port
+
+ layer pdiffres DIFFRES
+ and PPLUS
+ and NWELL
+ and-not THKOX
+ labels DIFF
+
+ layer nfet DIFF
+ and POLY
+ and-not PPLUS
+ and NPLUS
+ and-not THKOX
+ and-not LVTN
+ and-not SONOS
+ and-not STDCELL
+ labels DIFF
+
+ layer scnfet DIFF
+ and POLY
+ and-not PPLUS
+ and NPLUS
+ and-not THKOX
+ and-not LVTN
+ and-not SONOS
+ and STDCELL
+ labels DIFF
+
+ layer nfetlvt DIFF
+ and POLY
+ and-not PPLUS
+ and NPLUS
+ and-not THKOX
+ and LVTN
+ and-not SONOS
+ labels DIFF
+
+ layer nsonos DIFF
+ and POLY
+ and-not PPLUS
+ and NPLUS
+ and-not THKOX
+ and LVTN
+ and SONOS
+ labels DIFF
+
+ templayer nsdarea DIFF
+ and NPLUS
+ and NWELL
+ and-not POLY
+ and-not PPLUS
+ and-not THKOX
+ copyup nsubcheck
+
+ layer nsd nsdarea
+ labels DIFF
+
+ layer nsd TAP,TAPPIN
+ and NPLUS
+ labels TAP
+ labels TAPPIN port
+
+ templayer nsdexpand nsdarea
+ grow 500
+
+ # Copy nsub areas up for contact checks
+ templayer xnsubcheck nsubcheck
+ copyup nsubcheck
+
+ templayer psdarea DIFF
+ and PPLUS
+ and-not NWELL
+ and-not POLY
+ and-not NPLUS
+ and-not THKOX
+ and-not pfetexpand
+ copyup psubcheck
+
+ layer psd psdarea
+ labels DIFF
+
+ layer psd TAP,TAPPIN
+ and PPLUS
+ and-not THKOX
+ labels TAP
+ labels TAPPIN port
+
+ templayer psdexpand psdarea
+ grow 500
+
+ layer mvpdiff DIFF,DIFFTXT,DIFFPIN
+ and-not NPLUS
+ and-not POLY
+ and THKOX
+ and mvpfetexpand
+ labels DIFF
+ labels DIFFTXT text
+ labels DIFFPIN port
+
+ layer mvpdiffres DIFFRES
+ and PPLUS
+ and NWELL
+ and THKOX
+ and-not mvrdpioedge
+ labels DIFF
+
+ layer mvnfet DIFF
+ and POLY
+ and-not PPLUS
+ and NPLUS
+ and-not LVTN
+ and THKOX
+ labels DIFF
+
+ layer mvnnfet DIFF
+ and POLY
+ and-not PPLUS
+ and NPLUS
+ and LVTN
+ and THKOX
+ labels DIFF
+
+ templayer mvnsdarea DIFF
+ and NPLUS
+ and NWELL
+ and-not POLY
+ and-not PPLUS
+ and THKOX
+ copyup mvnsubcheck
+
+ layer mvnsd mvnsdarea
+ labels DIFF
+
+ layer mvnsd TAP,TAPPIN
+ and NPLUS
+ and THKOX
+ labels TAP
+ labels TAPPIN port
+
+ templayer mvnsdexpand mvnsdarea
+ grow 500
+
+ # Copy nsub areas up for contact checks
+ templayer mvxnsubcheck mvnsubcheck
+ copyup mvnsubcheck
+
+ templayer mvpsdarea DIFF
+ and PPLUS
+ and-not NWELL
+ and-not POLY
+ and-not NPLUS
+ and THKOX
+ and-not mvpfetexpand
+ copyup mvpsubcheck
+
+ layer mvpsd mvpsdarea
+ labels DIFF
+
+ layer mvpsd TAP,TAPPIN
+ and PPLUS
+ and THKOX
+ labels TAP
+ labels TAPPIN port
+
+ templayer mvpsdexpand mvpsdarea
+ grow 500
+
+ # Copy psub areas up for contact checks
+ templayer xpsubcheck psubcheck
+ copyup psubcheck
+
+ templayer mvxpsubcheck mvpsubcheck
+ copyup mvpsubcheck
+
+ layer psd DIFF
+ and-not PPLUS
+ and-not NPLUS
+ and-not POLY
+ and-not THKOX
+ and-not pfetexpand
+ and psdexpand
+
+ layer nsd DIFF
+ and-not PPLUS
+ and-not NPLUS
+ and-not POLY
+ and-not THKOX
+ and nsdexpand
+
+ layer mvpsd DIFF
+ and-not PPLUS
+ and-not NPLUS
+ and-not POLY
+ and THKOX
+ and-not mvpfetexpand
+ and mvpsdexpand
+
+ layer mvnsd DIFF
+ and-not PPLUS
+ and-not NPLUS
+ and-not POLY
+ and THKOX
+ and mvnsdexpand
+
+ templayer hresarea POLY
+ and RPM
+ grow 3000
+
+ templayer uresarea POLY
+ and URPM
+ grow 3000
+
+ templayer diffresarea DIFFRES
+ and-not THKOX
+ grow 3000
+
+ templayer mvdiffresarea DIFFRES
+ and THKOX
+ grow 3000
+
+ templayer resarea diffresarea,mvdiffresarea,hresarea,uresarea
+
+ layer pfet POLY
+ and DIFF
+ and diffresarea
+ and-not NPLUS
+ and-not STDCELL
+
+ layer scpfet POLY
+ and DIFF
+ and diffresarea
+ and-not NPLUS
+ and STDCELL
+
+ templayer xpolyterm RPM,URPM
+ and POLY
+ and-not POLYRES
+ # add back the 0.06um contact surround in the direction of the resistor
+ grow 60
+ and POLY
+
+ layer xpc xpolyterm
+
+ templayer polyarea POLY
+ and-not POLYRES
+ and-not POLYSHORT
+ and-not DIFF
+ and-not RPM
+ and-not URPM
+ copyup polycheck
+
+ layer poly polyarea,POLYTXT,POLYPIN
+ labels POLY
+ labels POLYTXT text
+ labels POLYPIN port
+
+ # Copy (non-resistor) poly areas up for contact checks
+ templayer xpolycheck polycheck
+ copyup polycheck
+
+ layer mrp1 POLY
+ and POLYRES
+ and-not RPM
+ and-not URPM
+ labels POLY
+
+ layer rmp POLY
+ and POLYSHORT
+ labels POLY
+
+ layer xhrpoly POLY
+ and POLYRES
+ and RPM
+ and-not URPM
+ and PPLUS
+ and NPC
+ and-not xpolyterm
+ labels POLY
+
+ layer uhrpoly POLY
+ and POLYRES
+ and URPM
+ and-not RPM
+ and NPC
+ and-not xpolyterm
+ labels POLY
+
+ templayer ndcbase CONT
+ and DIFF
+ and NPLUS
+ and-not NWELL
+ and LI
+ and-not THKOX
+
+ layer ndc ndcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or ndcbase
+ labels CONT
+
+ templayer nscbase CONT
+ and DIFF,TAP
+ and NPLUS
+ and NWELL
+ and LI
+ and-not THKOX
+
+ layer nsc nscbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or nscbase
+ labels CONT
+
+ templayer pdcbase CONT
+ and DIFF
+ and PPLUS
+ and NWELL
+ and LI
+ and-not THKOX
+
+ layer pdc pdcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pdcbase
+ labels CONT
+
+ templayer pdcnowell CONT
+ and DIFF
+ and PPLUS
+ and pfetexpand
+ and LI
+ and-not THKOX
+
+ layer pdc pdcnowell
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pdcnowell
+ labels CONT
+
+ templayer pscbase CONT
+ and DIFF,TAP
+ and PPLUS
+ and-not NWELL
+ and-not pfetexpand
+ and LI
+ and-not THKOX
+
+ layer psc pscbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pscbase
+ labels CONT
+
+ templayer pcbase CONT
+ and POLY
+ and-not DIFF
+ and-not RPM,URPM
+ and LI
+
+ layer pc pcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pcbase
+ labels CONT
+
+ templayer ndicbase CONT
+ and DIFF
+ and NPLUS
+ and DIODE
+ and-not POLY
+ and-not PPLUS
+ and-not THKOX
+ and-not LVTN
+
+ layer ndic ndicbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or ndicbase
+ labels CONT
+
+ templayer ndilvtcbase CONT
+ and DIFF
+ and NPLUS
+ and DIODE
+ and-not POLY
+ and-not PPLUS
+ and-not THKOX
+ and LVTN
+
+ layer ndilvtc ndilvtcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or ndilvtcbase
+ labels CONT
+
+ templayer pdicbase CONT
+ and DIFF
+ and PPLUS
+ and DIODE
+ and-not POLY
+ and-not NPLUS
+ and-not THKOX
+ and-not LVTN
+ and-not HVTP
+
+ layer pdic pdicbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pdicbase
+ labels CONT
+
+ templayer pdilvtcbase CONT
+ and DIFF
+ and PPLUS
+ and DIODE
+ and-not POLY
+ and-not NPLUS
+ and-not THKOX
+ and LVTN
+ and-not HVTP
+
+ layer pdilvtc pdilvtcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pdilvtcbase
+ labels CONT
+
+ templayer pdihvtcbase CONT
+ and DIFF
+ and PPLUS
+ and DIODE
+ and-not POLY
+ and-not NPLUS
+ and-not THKOX
+ and-not LVTN
+ and HVTP
+
+ layer pdihvtc pdihvtcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pdihvtcbase
+ labels CONT
+
+ templayer mvndcbase CONT
+ and DIFF
+ and NPLUS
+ and-not NWELL
+ and LI
+ and THKOX
+
+ layer mvndc mvndcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvndcbase
+ labels CONT
+
+ templayer mvnscbase CONT
+ and DIFF,TAP
+ and NPLUS
+ and NWELL
+ and LI
+ and THKOX
+
+ layer mvnsc mvnscbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvnscbase
+ labels CONT
+
+ templayer mvpdcbase CONT
+ and DIFF
+ and PPLUS
+ and NWELL
+ and LI
+ and THKOX
+
+ layer mvpdc mvpdcbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvpdcbase
+ labels CONT
+
+ templayer mvpdcnowell CONT
+ and DIFF
+ and PPLUS
+ and mvpfetexpand
+ and MET1
+ and THKOX
+
+ layer mvpdc mvpdcnowell
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvpdcnowell
+ labels CONT
+
+ templayer mvpscbase CONT
+ and DIFF,TAP
+ and PPLUS
+ and-not NWELL
+ and-not mvpfetexpand
+ and LI
+ and THKOX
+
+ layer mvpsc mvpscbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvpscbase
+ labels CONT
+
+ templayer mvndicbase CONT
+ and DIFF
+ and NPLUS
+ and DIODE
+ and-not POLY
+ and-not PPLUS
+ and-not LVTN
+ and THKOX
+
+ layer mvndic mvndicbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvndicbase
+ labels CONT
+
+ templayer nndicbase CONT
+ and DIFF
+ and NPLUS
+ and DIODE
+ and-not POLY
+ and-not PPLUS
+ and LVTN
+ and THKOX
+
+ layer nndic nndicbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or nndicbase
+ labels CONT
+
+ templayer mvpdicbase CONT
+ and DIFF
+ and PPLUS
+ and DIODE
+ and-not POLY
+ and-not NPLUS
+ and THKOX
+
+ layer mvpdic mvpdicbase
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvpdicbase
+ labels CONT
+
+ layer locali LI,LITXT,LIPIN
+ and-not LIRES,LISHORT
+ and-not COREID
+ labels LI
+ labels LITXT text
+ labels LIPIN port
+
+ layer coreli LI,LITXT,LIPIN
+ and-not LIRES,LISHORT
+ and COREID
+ labels LI
+ labels LITXT text
+ labels LIPIN port
+
+ layer rli LI
+ and LIRES,LISHORT
+ labels LIRES,LISHORT
+
+ layer lic MCON
+ grow 95
+ shrink 95
+ shrink 85
+ grow 85
+ or MCON
+ labels MCON
+
+ layer m1 MET1,MET1TXT,MET1PIN
+ and-not MET1RES,MET1SHORT
+ labels MET1
+ labels MET1TXT text
+ labels MET1PIN port
+
+ layer rm1 MET1
+ and MET1RES,MET1SHORT
+ labels MET1RES,MET1SHORT
+
+#ifdef MIM
+ layer mimcap MET3
+ and CAPM
+ labels CAPM
+
+ layer mimcc VIA3
+ and CAPM
+ grow 60
+ grow 40
+ shrink 40
+ labels CAPM
+
+ layer mimcap2 MET4
+ and CAPM2
+ labels CAPM2
+
+ layer mim2cc VIA4
+ and CAPM2
+ grow 190
+ grow 210
+ shrink 210
+ labels CAPM2
+
+#endif (MIM)
+
+ templayer m2cbase VIA1
+ grow 55
+
+ layer m2c m2cbase
+ grow 30
+ shrink 30
+ shrink 130
+ grow 130
+ or m2cbase
+
+ layer m2 MET2,MET2TXT,MET2PIN
+ and-not MET2RES,MET2SHORT
+ labels MET2
+ labels MET2TXT text
+ labels MET2PIN port
+
+ layer rm2 MET2
+ and MET2RES,MET2SHORT
+ labels MET2RES,MET2SHORT
+
+ templayer m3cbase VIA2
+ grow 40
+
+ layer m3c m3cbase
+ grow 60
+ shrink 60
+ shrink 140 
+ grow 140
+ or m3cbase
+
+ layer m3 MET3,MET3TXT,MET3PIN
+ and-not MET3RES,MET3SHORT
+#ifdef MIM
+ and-not CAPM
+#endif (MIM)
+ labels MET3
+ labels MET3TXT text
+ labels MET3PIN port
+
+ layer rm3 MET3
+ and MET3RES,MET3SHORT
+ labels MET3RES,MET3SHORT
+
+#ifdef (METAL5)
+
+ templayer via3base VIA3
+#ifdef MIM
+ and-not CAPM
+#endif (MIM)
+ grow 60
+
+ layer via3 via3base
+ grow 40
+ shrink 40
+ shrink 160
+ grow 160
+ or via3base
+
+ layer m4 MET4,MET4TXT,MET4PIN
+ and-not MET4RES,MET4SHORT
+#ifdef MIM
+ and-not CAPM2
+#endif (MIM)
+ labels MET4
+ labels MET4TXT text
+ labels MET4PIN port
+
+ layer rm4 MET4
+ and MET4RES,MET4SHORT
+ labels MET4RES,MET4SHORT
+
+ layer m5 MET5,MET5TXT,MET5PIN
+ and-not MET5RES,MET5SHORT
+ labels MET5
+ labels MET5TXT text
+ labels MET5PIN port
+
+ layer rm5 MET5
+ and MET5RES,MET5SHORT
+ labels MET5RES,MET5SHORT
+
+ templayer via4base VIA4
+#ifdef MIM
+ and-not CAPM2
+#endif (MIM)
+ grow 190
+
+ layer via4 via4base
+ grow 210
+ shrink 210
+ shrink 590
+ grow 590
+ or via4base
+#endif (METAL5)
+
+#ifdef REDISTRIBUTION
+ layer metrdl RDL,RDLTXT,RDLPIN
+ labels RDL
+ labels RDLTXT text
+ labels RDLPIN port
+#endif
+
+ # Find diffusion not covered in
+ # NPLUS or PPLUS and pull it into
+ # the next layer up
+
+ templayer gentrans DIFF
+ and-not PPLUS
+ and-not NPLUS
+ and POLY
+ copyup DIFF,POLY
+
+ templayer gendiff DIFF,TAP
+ and-not PPLUS
+ and-not NPLUS
+ and-not POLY
+ copyup DIFF
+
+ # Handle contacts found by copyup
+
+ templayer ndiccopy CONT
+ and LI
+ and DIODE
+ and NPLUS
+ and-not THKOX
+
+ layer ndic ndiccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or ndiccopy
+ labels CONT
+
+ templayer mvndiccopy CONT
+ and LI
+ and DIODE
+ and NPLUS
+ and THKOX
+
+ layer mvndic mvndiccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvndiccopy
+ labels CONT
+
+ templayer pdiccopy CONT
+ and LI
+ and DIODE
+ and PPLUS
+ and-not THKOX
+
+ layer pdic pdiccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pdiccopy
+ labels CONT
+
+ templayer mvpdiccopy CONT
+ and LI
+ and DIODE
+ and PPLUS
+ and THKOX
+
+ layer mvpdic mvpdiccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvpdiccopy
+ labels CONT
+
+ templayer ndccopy CONT
+ and ndifcheck
+
+ layer ndc ndccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or ndccopy
+ labels CONT
+
+ templayer mvndccopy CONT
+ and mvndifcheck
+
+ layer mvndc mvndccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvndccopy
+ labels CONT
+
+ templayer pdccopy CONT
+ and pdifcheck
+
+ layer pdc pdccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pdccopy
+ labels CONT
+
+ templayer mvpdccopy CONT
+ and mvpdifcheck
+
+ layer mvpdc mvpdccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvpdccopy
+ labels CONT
+
+ templayer pccopy CONT
+ and polycheck
+
+ layer pc pccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or pccopy
+ labels CONT
+
+ templayer nsccopy CONT
+ and nsubcheck
+
+ layer nsc nsccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or nsccopy
+ labels CONT
+
+ templayer mvnsccopy CONT
+ and mvnsubcheck
+
+ layer mvnsc mvnsccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvnsccopy
+ labels CONT
+
+ templayer psccopy CONT
+ and psubcheck
+
+ layer psc psccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or psccopy
+ labels CONT
+
+ templayer mvpsccopy CONT
+ and mvpsubcheck
+
+ layer mvpsc mvpsccopy
+ grow 85
+ shrink 85
+ shrink 85
+ grow 85
+ or mvpsccopy
+ labels CONT
+
+ # Find contacts not covered in
+ # metal and pull them into the
+ # next layer up
+ 
+ templayer gencont CONT
+ and LI
+ and-not DIFF,TAP
+ and-not POLY
+ and-not DIODE
+ and-not nsubcheck
+ and-not psubcheck
+ and-not mvnsubcheck
+ and-not mvpsubcheck
+ copyup CONT,LI
+
+ templayer barecont CONT
+ and-not LI
+ and-not nsubcheck
+ and-not psubcheck
+ and-not mvnsubcheck
+ and-not mvpsubcheck
+ copyup CONT
+
+ layer glass GLASS,PADTXT,PADPIN
+ labels GLASS
+ labels PADTXT text
+ labels PADPIN port
+
+ templayer boundary BOUND,STDCELL,PADCELL
+ boundary
+
+ layer comment LVSTEXT
+ labels LVSTEXT text
+
+ layer comment TTEXT
+ labels TTEXT text
+
+ layer fillblock  FILLOBSM1,FILLOBSM2,FILLOBSM3,FILLOBSM4
+ labels FILLOBSM1,FILLOBSM2,FILLOBSM3,FILLOBSM4
+
+# MOS Varactor
+
+ layer var POLY
+ and DIFF
+ and NPLUS
+ and NWELL
+ and-not THKOX
+ and-not HVTP
+ grow 25
+ labels POLY
+
+ layer varhvt POLY
+ and DIFF
+ and NPLUS
+ and NWELL
+ and-not THKOX
+ and HVTP
+ grow 25
+ labels POLY
+
+ layer mvvar POLY
+ and DIFF
+ and NPLUS
+ and NWELL
+ and THKOX
+ grow 25
+ labels POLY
+
+ calma NWELL 64 20
+ calma DIFF 65 20
+ calma DNWELL 64 18
+ calma PWRES 64 13
+ calma TAP  65 44
+ # LVTN
+ calma LVTN 125 44
+ # HVTP
+ calma HVTP 78 44
+ # SONOS (TUNM)
+ calma SONOS 80 20
+ # NPLUS = NSDM
+ calma NPLUS 93 44
+ # PPLUS = PSDM
+ calma PPLUS 94 20
+ # HVI
+ calma THKOX 75 20
+ # NPC
+ calma NPC 95 20
+ # P+ POLY MASK
+ calma RPM 86 20
+ calma URPM 79 20
+ calma LDNTM 11 44
+ calma HVNTM 125 20
+ # Poly resistor ID mark
+ calma POLYRES 66 13
+ # Diffusion resistor ID mark
+ calma DIFFRES 65 13
+ calma POLY 66 20
+ calma POLYMOD 66 83
+ # Diode ID mark
+ calma DIODE 81 23
+ # Bipolar NPN mark
+ calma NPNID 82 20
+ # Bipolar PNP mark
+ calma PNPID 82 20
+ # Capacitor ID
+ calma CAPID 82 64
+ # Core area ID mark
+ calma COREID 81 2
+ # Standard cell ID mark
+ calma STDCELL 81 4
+ # Padframe cell ID mark
+ calma PADCELL 81 3
+ # Seal ring ID mark
+ calma SEALID 81 1
+ # Low tap density ID mark
+ calma LOWTAPDENSITY 81 14
+ 
+ # LICON
+ calma CONT 66 44
+ calma LI   67 20
+ calma MCON 67 44
+
+ calma MET1 68 20
+ calma VIA1 68 44
+ calma MET2 69 20
+ calma VIA2 69 44
+ calma MET3 70 20
+#ifdef METAL5
+ calma VIA3 70 44
+ calma MET4 71 20
+ calma VIA4 71 44
+ calma MET5 72 20
+#endif
+#ifdef REDISTRIBUTION
+ calma RDL 74 20
+#endif
+ calma GLASS 76 20
+
+ calma SUBPIN  64 59
+ calma PADPIN  76 5
+ calma DIFFPIN 65 6
+ calma TAPPIN  65 5
+ calma WELLPIN  64 5
+ calma LIPIN 67 5
+ calma POLYPIN 66 5
+ calma MET1PIN 68 5
+ calma MET2PIN 69 5
+ calma MET3PIN 70 5
+#ifdef METAL5
+ calma MET4PIN 71 5
+ calma MET5PIN 72 5
+#endif
+#ifdef REDISTRIBUTION
+ calma RDLPIN 74 5
+#endif
+
+ calma LIRES 67 13
+ calma MET1RES 68 13
+ calma MET2RES 69 13
+ calma MET3RES 70 13
+#ifdef METAL5
+ calma MET4RES 71 13
+ calma MET5RES 72 13
+#endif
+
+ calma POLYSHORT 66 15
+ calma LISHORT 67 15
+ calma MET1SHORT 68 15
+ calma MET2SHORT 69 15
+ calma MET3SHORT 70 15
+#ifdef METAL5
+ calma MET4SHORT 71 15
+ calma MET5SHORT 72 15
+#endif
+
+ calma SUBTXT 122 16
+ calma PADTXT 76 16
+ calma DIFFTXT 65 16
+ calma POLYTXT 66 16
+ calma WELLTXT 64 16
+ calma LITXT 67 16
+ calma MET1TXT 68 16
+ calma MET2TXT 69 16
+ calma MET3TXT 70 16
+#ifdef METAL5
+ calma MET4TXT 71 16
+ calma MET5TXT 72 16
+#endif
+#ifdef REDISTRIBUTION
+ calma RDLPIN 74 16
+#endif
+
+ calma BOUND 235 4
+
+ calma LVSTEXT 83 44
+
+#ifdef (MIM)
+ calma CAPM 89 44
+ calma CAPM2 97 44
+#endif (MIM)
+
+ calma FILLOBSM1  62  24
+ calma FILLOBSM2  105 52
+ calma FILLOBSM3  107 24
+ calma FILLOBSM4  112 4
+
+end
+
+#-----------------------------------------------------
+# Digital flow maze router cost parameters
+#-----------------------------------------------------
+
+mzrouter
+end
+
+#-----------------------------------------------------
+# Vendor DRC rules
+#-----------------------------------------------------
+
+drc
+
+ style drc variants (fast),(full),(routing)
+
+ scalefactor 10 
+
+ cifstyle drc
+
+ variants (fast),(full)
+
+#-----------------------------
+# DNWELL
+#-----------------------------
+
+ width dnwell 3000 "Deep N-well width < %d (Dnwell 2)"
+ spacing dnwell dnwell 6300 touching_ok "Deep N-well spacing < %d (Dnwell 3)"
+ spacing dnwell allnwell 4500 surround_ok \
+	"Deep N-well spacing to N-well < %d (Nwell 7)"
+ cifmaxwidth nwell_missing 0 bend_illegal \
+	"N-well overlap of Deep N-well < 0.4um outside, 1.03um inside (Nwell 5a, 7)"
+ cifmaxwidth dnwell_missing 0 bend_illegal \
+	"SONOS nFET must be in Deep N-well (Tunm 6a)"
+
+#-----------------------------
+# NWELL
+#-----------------------------
+
+ width allnwell 840 "N-well width < %d (Nwell 1)"
+ spacing allnwell allnwell 1270 touching_ok "N-well spacing < %d (Nwell 2a)"
+
+#-----------------------------
+# DIFF
+#-----------------------------
+
+ width *ndiff,nfet,scnfet,*nsd,*ndiode,ndiffres,*pdiff,pfet,scpfet,*psd,*pdiode,pdiffres \
+	150 "Diffusion width < %d (Diff/tap 1)"
+ width *mvndiff,mvnfet,mvnnfet,*mvndiode,*nndiode,mvndiffres,*mvpdiff,mvpfet,*mvpdiode 290 \
+	"MV Diffusion width < %d (Diff/tap 14)"
+ width *mvnsd,*mvpsd 150 "MV Tap width < %d (Diff/tap 1)"
+ extend *mvpsd *mvndiff 700 "MV Butting tap length < %d (Diff/tap 16)"
+ extend *mvnsd *mvpdiff 700 "MV Butting tap length < %d (Diff/tap 16)"
+ extend *psd *ndiff 290 "Butting tap length < %d (Diff/tap 4)"
+ extend *nsd *pdiff 290 "Butting tap length < %d (Diff/tap 4)"
+ width mvpdiffres 150 "MV P-Diffusion resistor width < %d (Diff/tap 14a)"
+ spacing alldifflv,var,varhvt alldifflv,var,varhvt 270 touching_ok \
+	"Diffusion spacing < %d (Diff/tap 3)"
+ spacing alldiffmvnontap,mvvar alldiffmvnontap,mvvar 300 touching_ok \
+	"MV Diffusion spacing < %d (Diff/tap 15a)"
+ spacing alldiffmv *mvnsd,*mvpsd 270 touching_ok \
+	"MV Diffusion to MV tap spacing < %d (Diff/tap 3)"
+ spacing *mvndiff,mvnfet,mvnnfet,*mvndiode,*nndiode,mvndiffres,mvvar *mvpsd 370 \
+	touching_ok "MV P-Diffusion to MV N-tap spacing < %d (Diff/tap 15b)"
+ spacing *mvnsd,*mvpdiff,mvpfet,mvvar,*mvpdiode *mvpsd,*psd 760 touching_illegal \
+	"MV Diffusion in N-well to P-tap spacing < %d (Diff/tap 20 + Diff/tap 17,19)"
+ spacing *ndiff,*ndiode,nfet allnwell 340 touching_illegal \
+	"N-Diffusion spacing to N-well < %d (Diff/tap 9)"
+ spacing *mvndiff,*mvndiode,mvnfet,mvnnfet allnwell 340 touching_illegal \
+	"N-Diffusion spacing to N-well < %d (Diff/tap 9)"
+ spacing *psd allnwell 130 touching_illegal \
+	"P-tap spacing to N-well < %d (Diff/tap 11)"
+ spacing *mvpsd allnwell 130 touching_illegal \
+	"P-tap spacing to N-well < %d (Diff/tap 11)"
+ surround *nsd allnwell 180 absence_illegal \
+	"N-well overlap of N-tap < %d (Diff/tap 10)"
+ surround *mvnsd allnwell 330 absence_illegal \
+	"N-well overlap of MV N-tap < %d (Diff/tap 19)"
+ surround *pdiff,*pdiode,pfet,scpfet allnwell 180 absence_illegal \
+	"N-well overlap of P-Diffusion < %d (Diff/tap 8)"
+ surround *mvpdiff,*mvpdiode,mvpfet allnwell 330 absence_illegal \
+	"N-well overlap of P-Diffusion < %d (Diff/tap 17)"
+ surround mvvar allnwell 560 absence_illegal \
+	"N-well overlap of MV varactor < %d (LVTN 10 + LVTN 4b)"
+ spacing *mvndiode *mvndiode 1070 touching_ok \
+	"MV N-diode spacing < %d (HVNTM.2 + 2 * HVNTM.3)"
+
+ # Butting junction rules
+ edge4way (*psd)/a ~(*ndiff,*psd)/a 125 ~(*ndiff)/a (*ndiff)/a 125 \
+	"N-Diffusion to P-tap spacing < %d across butted junction"
+ edge4way (*ndiff)/a ~(*ndiff,*psd)/a 125 ~(*psd)/a (*psd)/a 125 \
+	"N-Diffusion to P-tap spacing < %d across butted junction"
+ edge4way (*nsd)/a ~(*pdiff,*nsd)/a 125 ~(*pdiff)/a (*pdiff)/a 125 \
+	"P-Diffusion to N-tap spacing < %d across butted junction"
+ edge4way (*pdiff)/a ~(*pdiff,*nsd)/a 125 ~(*nsd)/a (*nsd)/a 125 \
+	"P-Diffusion to N-tap spacing < %d across butted junction"
+
+ edge4way (*mvpsd)/a ~(*mvndiff,*mvpsd)/a 125 ~(*mvndiff)/a (*mvndiff)/a 125 \
+	"MV N-Diffusion to MV P-tap spacing < %d across butted junction"
+ edge4way (*mvndiff)/a ~(*mvndiff,*mvpsd)/a 125 ~(*mvpsd)/a (*mvpsd)/a 125 \
+	"MV N-Diffusion to MV P-tap spacing < %d across butted junction"
+ edge4way (*mvnsd)/a ~(*mvpdiff,*mvnsd)/a 125 ~(*mvpdiff)/a (*mvpdiff)/a 125 \
+	"MV P-Diffusion to MV N-tap spacing < %d across butted junction"
+ edge4way (*mvpdiff)/a ~(*mvpdiff,*mvnsd)/a 125 ~(*mvnsd)/a (*mvnsd)/a 125 \
+	"MV P-Diffusion to MV N-tap spacing < %d across butted junction"
+
+ variants (full)
+
+ # Latchup rules
+ cifmaxwidth ptap_missing 0 bend_illegal \
+	"N-diff distance to P-tap must be < 15.0um (LU 2)"
+ cifmaxwidth dptap_missing 0 bend_illegal \
+	"N-diff distance to P-tap in deep Nwell must be < 15.0um (LU 2.1)"
+ cifmaxwidth ntap_missing 0 bend_illegal \
+	"P-diff distance to N-tap must be < 15.0um (LU 3)"
+
+ variants *
+
+#-----------------------------
+# POLY
+#-----------------------------
+
+ width allpoly 150 "Poly width < %d (Poly 1a)"
+ spacing allpoly allpoly 210 touching_ok "Poly spacing < %d (Poly 2)"
+ spacing allpolynonfet alldifflvnonfet 75 corner_ok allfets \
+	"Poly spacing to Diffusion < %d (Poly 4a)"
+ spacing npres *nsd 480 touching_illegal \
+	"Poly resistor spacing to N-tap < %d (Poly 9)"
+ overhang *ndiff,rndiff nfet,scnfet 250 "N-Diffusion overhang of nmos < %d (Poly 7)"
+ overhang *mvndiff,mvrndiff mvnfet,mvnnfet 250 \
+	"N-Diffusion overhang of nmos < %d (Poly 7)"
+ overhang *pdiff,rpdiff pfet,scpfet 250 "P-Diffusion overhang of pmos < %d (Poly 7)"
+ overhang *mvpdiff,mvrpdiff mvpfet 250 "P-Diffusion overhang of pmos < %d (Poly 7)"
+ overhang *poly allfets 130 "Poly overhang of transistor < %d (Poly 8)"
+ rect_only allfets "No bends in transistors (Poly 11)"
+ rect_only xhrpoly,uhrpoly "No bends in poly resistors (Poly 11)"
+ extend  xpc/a xhrpoly,uhrpoly 2160 \
+ 	"Poly contact extends poly resistor by < %d (LIcon 1c + LI 5)"
+ spacing xhrpoly,uhrpoly xhrpoly,uhrpoly 1240 touching_illegal \
+	"Distance between precision resistors < %d (RPM 2 + 2 * RPM 3)"
+
+#--------------------------------------------------------------------
+# NPC (Nitride Poly Cut)
+#--------------------------------------------------------------------
+
+# Layer NPC is defined automatically around poly contacts (grow 0.1um)
+
+#--------------------------------------------------------------------
+# CONT (LICON, contact between poly/diff and LI)
+#--------------------------------------------------------------------
+
+ width ndc/li 170 "N-diffusion contact width < %d (LIcon 1)"
+ width nsc/li 170 "N-tap contact width     < %d (LIcon 1)"
+ width pdc/li 170 "P-diffusion contact width < %d (LIcon 1)"
+ width psc/li 170 "P-tap contact width     < %d (LIcon 1)"
+ width ndic/li 170 "N-diode contact width < %d (LIcon 1)"
+ width pdic/li 170 "P-diode contact width < %d (LIcon 1)"
+ width pc/li  170 "Poly contact width        < %d (LIcon 1)"
+
+ width xpc/li  350 "Poly resistor contact width < %d (LIcon 1b + 2 * LI 5)"
+
+ width mvndc/li 170 "N-diffusion contact width < %d (LIcon 1)"
+ width mvnsc/li 170 "N-tap contact width     < %d (LIcon 1)"
+ width mvpdc/li 170 "P-diffusion contact width < %d (LIcon 1)"
+ width mvpsc/li 170 "P-tap contact width     < %d (LIcon 1)"
+ width mvndic/li 170 "N-diode contact width < %d (LIcon 1)"
+ width mvpdic/li 170 "P-diode contact width < %d (LIcon 1)"
+
+ spacing allpdiffcont allndiffcont 170 touching_illegal \
+	"Diffusion contact spacing < %d (LIcon 2)"
+ spacing allndiffcont allndiffcont 170 touching_ok \
+	"Diffusion contact spacing < %d (LIcon 2)"
+ spacing allpdiffcont allpdiffcont 170 touching_ok \
+	"Diffusion contact spacing < %d (LIcon 2)"
+ spacing pc pc 170 touching_ok "Poly1 contact spacing < %d (LIcon 2)"
+
+ spacing pc alldiff 190 touching_illegal \
+	"Poly contact spacing to diffusion < %d (LIcon 14)"
+ spacing pc allpfets 235 touching_illegal \
+	"Poly contact spacing to pFET < %d (LIcon 9 + PSDM 5a)"
+
+ spacing ndc,pdc nfet,pfet 55 touching_illegal \
+	"Diffusion contact to gate < %d (LIcon 11)"
+ spacing ndc,pdc scnfet,scpfet 50 touching_illegal \
+	"Diffusion contact to standard cell gate < %d (LIcon 11)"
+ spacing mvndc,mvpdc mvnfet,mvnnfet,mvpfet 55 touching_illegal \
+	"Diffusion contact to gate < %d (LIcon 11)"
+ spacing ndc,mvndc rnd,mvrnd 60 touching_illegal "Diffusion contact to rndiff < %d ()"
+ spacing pdc,mvpdc rdp,mvrdp 60 touching_illegal "Diffusion contact to rndiff < %d ()"
+ spacing nsc varactor,varhvt 250 touching_illegal \
+	"Diffusion contact to varactor gate < %d (LIcon 10)"
+ spacing mvnsc mvvar 250 touching_illegal \
+	"Diffusion contact to varactor gate < %d (LIcon 10)"
+
+ surround ndc/a *ndiff,nfet,scnfet,nfetlvt 40 absence_illegal \
+	"N-diffusion overlap of N-diffusion contact < %d (LIcon 5a)"
+ surround pdc/a *pdiff,pfet,scpfet,pfethvt,pfetlvt 40 absence_illegal \
+	"P-diffusion overlap of P-diffusion contact < %d (LIcon 5a)"
+ surround ndic/a *ndi 40 absence_illegal \
+	"N-diode overlap of N-diode contact < %d (LIcon 5a)"
+ surround pdic/a *pdi 40 absence_illegal \
+	"P-diode overlap of N-diode contact < %d (LIcon 5a)"
+
+ surround ndc/a *ndiff,nfet,scnfet,nfetlvt 60 directional \
+	"N-diffusion overlap of N-diffusion contact < %d in one direction (LIcon 5c)"
+ surround pdc/a *pdiff,pfet,scpfet,pfethvt,pfetlvt 60 directional \
+	"P-diffusion overlap of P-diffusion contact < %d in one direction (LIcon 5c)"
+ surround ndic/a *ndi 60 directional \
+	"N-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
+ surround pdic/a *pdi 60 directional \
+	"P-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
+
+ surround nsc/a *nsd 120 directional \
+	"N-tap overlap of N-tap contact < %d in one direction (LIcon 7)"
+ surround psc/a *psd 120 directional \
+	"P-tap overlap of P-tap contact < %d in one direction (LIcon 7)"
+
+ surround mvndc/a *mvndiff,mvnfet 40 absence_illegal \
+	"N-diffusion overlap of N-diffusion contact < %d (LIcon 5a)"
+ surround mvpdc/a *mvpdiff,mvpfet 40 absence_illegal \
+	"P-diffusion overlap of P-diffusion contact < %d (LIcon 5a)"
+ surround mvndic/a *mvndi 40 absence_illegal \
+	"N-diode overlap of N-diode contact < %d (LIcon 5a)"
+ surround mvpdic/a *mvpdi 40 absence_illegal \
+	"P-diode overlap of N-diode contact < %d (LIcon 5a)"
+
+ surround mvndc/a *mvndiff,mvnfet 60 directional \
+	"N-diffusion overlap of N-diffusion contact < %d in one direction (LIcon 5c)"
+ surround mvpdc/a *mvpdiff,mvpfet 60 directional \
+	"P-diffusion overlap of P-diffusion contact < %d in one direction (LIcon 5c)"
+ surround mvndic/a *mvndi 60 directional \
+	"N-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
+ surround mvpdic/a *mvpdi 60 directional \
+	"P-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
+
+ surround mvnsc/a *mvnsd 120 directional \
+	"N-tap overlap of N-tap contact < %d in one direction (LIcon 7)"
+ surround mvpsc/a *mvpsd 120 directional \
+	"P-tap overlap of P-tap contact < %d in one direction (LIcon 7)"
+
+ surround pc/a *poly,mrp1,xhrpoly,uhrpoly 50 absence_illegal \
+	"Poly overlap of poly contact < %d (LIcon 8)"
+ surround pc/a *poly,mrp1,xhrpoly,uhrpoly 80 directional \
+	"Poly overlap of poly contact < %d in one direction (LIcon 8a)"
+
+ exact_overlap ndc/a,pdc/a,psc/a,nsc/a,pc/a,ndic/a,pdic/a
+ exact_overlap mvndc/a,mvpdc/a,mvpsc/a,mvnsc/a,mvndic/a,mvpdic/a
+
+#-------------------------------------------------------------
+# LI - Local interconnect layer
+#-------------------------------------------------------------
+
+ width *li,rli 170 "Local interconnect width < %d (LI 1)"
+ width coreli 140 "Core local interconnect width < %d (LI c1)"
+ spacing allli allli,*obsli 170 touching_ok  "Local interconnect spacing < %d (LI 3)"
+ spacing coreli allli,*obsli 140 touching_ok  "Core local interconnect spacing < %d (LI c2)"
+
+ surround pc/li *li 80 directional \
+	"Local interconnect overlap of poly contact < %d in one direction (LI 5)"
+
+ surround ndc/li,nsc/li,pdc/li,psc/li,ndic/li,pdic/li,mvndc/li,mvnsc/li,mvpdc/li,mvpsc/li,mvndic/li,mvpdic/li \
+	*li,rli 80 directional \
+	"Local interconnect overlap of diffusion contact < %d in one direction (LI 5)"
+
+ area allli,*obsli 56100 170 "Local interconnect minimum area < %a (LI 6)"
+
+#-------------------------------------------------------------
+# MCON - Contact between local interconnect and metal1
+#-------------------------------------------------------------
+
+ width lic/m1 170 "Mcon width < %d (Mcon 1)"
+ spacing lic/m1 lic/m1,obslic/m1 170 touching_ok "Mcon spacing < %d (Mcon 2)"
+
+ exact_overlap lic/m1
+
+#-------------------------------------------------------------
+# METAL1 -
+#-------------------------------------------------------------
+
+ width *m1,rm1 140 "Metal1 width < %d (Met1 1)"
+ spacing allm1 allm1,*obsm1 140 touching_ok "Metal1 spacing < %d (Met1 2)"
+ area allm1,*obsm1 83000 140 "Metal1 minimum area < %a (Met1 6)"
+
+ surround lic/m1 *met1 30 absence_illegal \
+	"Metal1 overlap of local interconnect contact < %d (Met1 4)"
+ surround lic/m1 *met1 60 directional \
+	"Metal1 overlap of local interconnect contact < %d in one direction (Met1 5)"
+
+variants (fast),(full)
+ widespacing allm1 3000 allm1,*obsm1 280 touching_ok \
+	"Metal1 > 3um spacing to unrelated m1 < %d (Met1 3a)"
+ widespacing *obsm1 3000 allm1 280 touching_ok \
+	"Metal1 > 3um spacing to unrelated m1 < %d (Met1 3a)"
+
+variants (full)
+ cifmaxwidth m1_hole_empty 0 bend_illegal \
+	"Min area of metal1 holes > 0.14um^2 (Met1 7)"
+variants *
+
+#--------------------------------------------------
+# VIA1
+#--------------------------------------------------
+
+ width v1/m1 260 "Via1 width < %d (Via 1a + 2 * Via 4a)"
+ spacing v1 v1 60 touching_ok "Via1 spacing < %d (Via 2 - 2 * Via 4a)"
+ surround v1/m1 *m1 30 directional \
+	"Metal1 overlap of Via1 < %d in one direction (Via 5a - Via 4a)"
+ surround v1/m2 *m2 30 directional \
+	"Metal2 overlap of Via1 < %d in one direction (Met2 5 - Met2 4)"
+
+ exact_overlap v1/m2
+
+#--------------------------------------------------
+# METAL2 - 
+#--------------------------------------------------
+
+ width allm2 140 "Metal2 width < %d (Met2 1)"
+ spacing allm2  allm2,obsm2 140 touching_ok       "Metal2 spacing < %d (Met2 2)"
+ area allm2,obsm2 67600 140 "Metal2 minimum area < %a (Met2 6)"
+
+variants (fast),(full)
+ widespacing allm2 3000 allm2,obsm2  280 touching_ok \
+	"Metal2 > 3um spacing to unrelated m2 < %d (Met2 3)"
+ widespacing obsm2 3000 allm2  280 touching_ok \
+	"Metal2 > 3um spacing to unrelated m2 < %d (Met2 3)"
+
+variants (full)
+ cifmaxwidth m2_hole_empty 0 bend_illegal \
+	"Min area of metal2 holes > 0.14um^2 (Met2 7)"
+variants *
+
+#--------------------------------------------------
+# VIA2
+#--------------------------------------------------
+
+ width v2/m2 280 "Via2 width < %d (Via2 1a + 2 * Via2 4)"
+
+ spacing v2 v2 120 touching_ok "Via2 spacing < 0.24um (Via2 2 - 2 * Via2 4)"
+
+ surround v2/m2 *m2 45 directional \
+	"Metal2 overlap of Via2 < %d in one direction (Via2 4a - Via2 4)"
+ surround v2/m3 *m3 25 absence_illegal "Metal3 overlap of Via2 < %d (Met3 4)"
+
+ exact_overlap v2/m2
+
+#--------------------------------------------------
+# METAL3 - 
+#--------------------------------------------------
+
+ width allm3 300 "Metal3 width < %d (Met3 1)"
+ spacing allm3 allm3,obsm3  300 touching_ok "Metal3 spacing < %d (Met3 2)"
+ area allm3,obsm3 240000 300 "Metal3 minimum area < %a (Met3 6)"
+
+variants (fast),(full)
+ widespacing allm3 3000 allm3,obsm3  400 touching_ok \
+	"Metal3 > 3um spacing to unrelated m3 < %d (Met3 3d)"
+ widespacing obsm3 3000 allm3  400 touching_ok \
+	"Metal3 > 3um spacing to unrelated m3 < %d (Met3 3d)"
+variants *
+
+
+#ifdef METAL5
+#--------------------------------------------------
+# VIA3 - Requires METAL5 Module
+#--------------------------------------------------
+
+ width v3/m3 320 "Via3 width < %d (Via3 1 + 2 * Via3 4)"
+ spacing v3 v3 80 touching_ok "Via3 spacing < %d (Via3 2 - 2 * Via3 4)"
+ surround v3/m3 *m3 30 directional \
+	"Metal3 overlap of Via3 in one direction < %d (Via3 5 - Via3 4)"
+ surround v3/m4 *m4 5 directional \
+	"Metal4 overlap of Via3 in one direction < %d (Met4 3 - Via3 4)"
+
+ exact_overlap v3/m3
+
+#-----------------------------
+# METAL4 - METAL4 Module
+#-----------------------------
+
+variants *
+
+ width allm4 300 "Metal4 width < %d (Met4 1)"
+ spacing allm4  allm4,obsm4 300 touching_ok      "Metal4 spacing < %d (Met4 2)"
+ area allm4,obsm4 240000 300 "Metal4 minimum area < %a (Met4 4a)"
+
+variants (fast),(full)
+ widespacing allm4 3000 allm4,obsm4  400 touching_ok \
+	"Metal4 > 3um spacing to unrelated m4 < %d (S2M4)"
+ widespacing obsm4 3000 allm4  400 touching_ok \
+	"Metal4 > 3um spacing to unrelated m4 < %d (S2M4)"
+variants *
+
+#--------------------------------------------------
+# VIA4 - Requires METAL5 Module
+#--------------------------------------------------
+
+ width v4/m4 1180 "Via4 width < %d (Via4 1 + 2 * Via4 4)"
+ spacing v4 v4 420 touching_ok "Via4 spacing < %d (Via4 2 - 2 * Via4 4)"
+ surround v4/m5 *m5 120 absence_illegal \
+	"Metal5 overlap of Via4 < %d (Met5 3 - Via4 4)"
+
+ exact_overlap v4/m4
+
+#-----------------------------
+# METAL5 - METAL5 Module
+#-----------------------------
+
+ width allm5 1600 "Metal5 width < %d (Met5 1)"
+ spacing allm5  allm5,obsm5 1600 touching_ok "Metal5 spacing < %d (Met5 2)"
+ area allm5,obsm5 4000000 1600 "Metal5 minimum area < %a (Met5 4)"
+
+#endif (METAL5)
+
+#ifdef REDISTRIBUTION
+
+variants (full)
+
+ width metrdl 10000 "RDL width < %d (Rdl 1)"
+ spacing metrdl metrdl 10000 touching_ok "RDL spacing < %d (Rdl 2)"
+ surround glass metrdl 10750 absence_ok "RDL must surround glass cut by %d (Rdl 3)"
+ spacing metrdl padl 19660 surround_ok "RDL spacing to unrelated pad < %d (Rdl 6)"
+
+variants *
+
+#endif (REDISTRIBUTION)
+
+#--------------------------------------------------
+# NMOS, PMOS
+#--------------------------------------------------
+
+ extend allfets *poly 420 "Transistor width < %d (Diff/tap 2)"
+ # Except:  Note that standard cells allow transistor width minimum 0.36um
+ width pfetlvt 350 "LVT PMOS gate length < %d (Poly 1b)"
+
+ spacing *nsd,*mvnsd allpolynonfet 55 touching_illegal \
+	"N-tap spacing to field poly < %d (Poly 5)"
+ spacing *psd,*mvpsd allpolynonfet 55 touching_illegal \
+	"P-tap spacing to field poly < %d (Poly 5)"
+
+ # Full edge rule required to describe FET to butted tap distance
+ edge4way *psd *ndiff 300 *ndiff *psd 300 \
+	"Butting P-tap spacing to NMOS gate < %d (Poly 6)"
+ edge4way *nsd *pdiff 300 *pdiff *nsd 300 \
+	"Butting N-tap spacing to PMOS gate < %d (Poly 6)"
+ edge4way *mvpsd *mvndiff 300 *mvndiff *mvpsd 300 \
+	"Butting MV P-tap spacing to MV NMOS gate < %d (Poly 6)"
+ edge4way *mvnsd *mvpdiff 300 *mvpdiff *mvnsd 300 \
+	"Butting MV N-tap spacing to MV PMOS gate < %d (Poly 6)"
+
+ # No LV FETs in HV diff
+ spacing pfet,scpfet,pfetlvt,pfethvt,*pdiff *mvpdiff 360 touching_illegal \
+	"LV P-diffusion to MV P-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
+
+ spacing nfet,scnfet,nfetlvt,varactor,varhvt,*ndiff *mvndiff 360 touching_illegal \
+	"LV N-diffusion to MV N-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
+
+ # No HV FETs in LV diff
+ spacing mvpfet,*mvpdiff *pdiff 360 touching_illegal \
+	"MV P-diffusion to LV P-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
+
+ spacing mvnfet,mvvaractor,*mvndiff *ndiff 360 touching_illegal \
+	"MV N-diffusion to LV N-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
+
+ # Minimum length of MV FETs.  Note that this is larger than the minimum
+ # width (0.29um), so an edge rule is required
+
+ edge4way mvndiff mvnfet 500 mvnfet 0 0 \
+	"MV NMOS minimum length < %d (Poly 13)"
+
+ edge4way mvnsd mvvaractor 500 mvvaractor 0 0 \
+	"MV Varactor minimum length < %d (Poly 13)"
+
+ edge4way mvpdiff mvpfet 500 mvpfet 0 0 \
+	"MV PMOS minimum length < %d (Poly 13)"
+
+#--------------------------------------------------
+# mrp1 (N+ poly resistor)
+#--------------------------------------------------
+
+  width mrp1 330 "mrp1 resistor width < %d (Poly 3)"
+
+#--------------------------------------------------
+# xhrpoly (P+ poly resistor)
+#--------------------------------------------------
+
+  width xhrpoly 350 "xhrpoly resistor width < %d (P+ Poly 1a)"
+  # NOTE: xhrpoly resistor requires choice of discrete widths 0.35, 0.69, ... up to 1.27.
+
+#--------------------------------------------------
+# uhrpoly (P+ poly resistor, 2kOhm/sq)
+#--------------------------------------------------
+
+  width uhrpoly 350 "uhrpoly resistor width < %d"
+  spacing xhrpoly,uhrpoly,xpc alldiff 480 touching_illegal \
+	"xhrpoly/uhrpoly resistor spacing to diffusion < %d (Poly 9)"
+
+#------------------------------------
+# MOS Varactor device rules
+#------------------------------------
+
+ overhang *nsd var,varhvt 250 \
+ "N-Tap overhang of Varactor < %d (Var 4)"
+
+ overhang *mvnsd mvvar 250 \
+ "N-Tap overhang of Varactor < %d (Var 4)"
+
+ width var,varhvt,mvvar 180 "Varactor length < %d (Var 1)"
+ extend var,varhvt,mvvar *poly 1000 "Varactor width < %d (Var 2)"
+
+#ifdef MIM
+#-----------------------------------------------------------
+# MiM CAP (CAPM) - 
+#-----------------------------------------------------------
+
+ width *mimcap 2000 "MiM cap width < %d (Capm 1)"
+ spacing *mimcap *mimcap 840 touching_ok "MiM cap spacing < %d (Capm 2a)"
+ spacing *mimcap via2/m3 1270 touching_illegal \
+	"MiM cap spacing to via2 < %d (Capm 5)"
+ surround *mimcc *mimcap 200 absence_illegal \
+	"MiM cap must surround MiM cap contact by %d (Capm 4)"
+ rect_only *mimcap "MiM cap must be rectangular (Capm 7)
+
+ surround *mimcap *metal3/m3 140 absence_illegal \
+	"Metal3 must surround MiM cap by %d (Capm 3)"
+ spacing via2 *mimcap 50 touching_illegal "MiM cap cannot overlap via2 (Capm 8)"
+ spacing via3 *mimcap 50 touching_illegal "MiM cap cannot overlap via3 (Capm 8)"
+ # (resolve scaling issue!)
+ # cifspacing mim_bottom mim_bottom 1200 touching_ok \
+ #	"MiM cap bottom plate spacing < %d (Capm 2b)"
+
+ # MiM cap contact rules (VIA3)
+
+ width mimcc/m3 320 "MiM cap contact width < %d (Via3 1 + 2 * Via3 4)"
+ spacing mimcc mimcc 80 touching_ok "MiM cap contact spacing < %d (Via3 2 - 2 * Via3 4)"
+ surround mimcc/m4 *m4 5 directional \
+	"Metal4 overlap of MiM cap contact in one direction < %d (Met4 3 - Via3 4)"
+ exact_overlap mimcc/m3
+
+ width *mimcap2 2000 "MiM cap width < %d (Cap2m 1)"
+ spacing *mimcap2 *mimcap2 840 touching_ok "MiM cap spacing < %d (Cap2m 2a)"
+ spacing *mimcap2 via3/m4 1270 touching_illegal \
+	"MiM cap spacing to via3 < %d (Cap2m 5)"
+ surround *mim2cc *mimcap2 200 absence_illegal \
+	"MiM cap must surround MiM cap contact by %d (Cap2m 4)"
+ rect_only *mimcap2 "MiM cap must be rectangular (Cap2m 7)
+
+ surround *mimcap2 *metal4/m4 140 absence_illegal \
+	"Metal4 must surround MiM cap by %d (Cap2m 3)"
+ spacing via3 *mimcap2 50 touching_illegal "MiM cap cannot overlap via3 (Cap2m 8)"
+ spacing via4 *mimcap2 50 touching_illegal "MiM cap cannot overlap via4 (Cap2m 8)"
+ # (resolve scaling issue!)
+ # cifspacing mim2_bottom mim2_bottom 1200 touching_ok \
+ #	"MiM2 cap bottom plate spacing < %d (Cap2m 2b)"
+
+ # MiM cap contact rules (VIA4)
+
+ width mim2cc/m4 1180 "MiM2 cap contact width < %d (Via4 1 + 2 * Via4 4)"
+ spacing mim2cc mim2cc 420 touching_ok \
+	"MiM2 cap contact spacing < %d (Via4 2 - 2 * Via4 4)"
+ surround mim2cc/m5 *m5 120 absence_illegal \
+	"Metal5 overlap of MiM2 cap contact < %d (Met5 3 - Via4 4)"
+ exact_overlap mim2cc/m4
+
+#endif (MIM)
+
+#----------------------------
+# End DRC style
+#----------------------------
+
+end
+
+#----------------------------
+# LEF format definitions
+#----------------------------
+
+lef
+
+ routing li	li1 LI1 LI li
+
+ routing m1	met1 MET1 m1
+ routing m2	met2 MET2 m2
+ routing m3	met3 MET3 m3
+#ifdef METAL5
+ routing m4	met4 MET4 m4
+ routing m5	met5 MET5 m5
+#endif (METAL5)
+#ifdef REDISTRIBUTION
+ routing mrdl	met6 MET6 m6 MRDL METRDL
+#endif
+
+ cut lic  mcon MCON Mcon
+ cut m2c  via via1 VIA VIA1 cont2 via12
+ cut m3c  via2 VIA2 cont3 via23
+#ifdef METAL5
+ cut via3 via3 VIA3 cont4 via34
+ cut via4 via4 VIA4 cont5 via45
+#endif (METAL5)
+
+ obs obsli   li1
+ obs obsm1   met1
+ obs obsm2   met2
+ obs obsm3   met3
+
+#ifdef METAL5
+ obs obsm4   met4
+ obs obsm5   met5
+#endif (METAL5)
+#ifdef REDISTRIBUTION
+ obs obsmrdl met6
+#endif
+
+ obs obslic mcon
+
+end
+
+#-----------------------------------------------------
+# Device and Parasitic extraction
+#-----------------------------------------------------
+
+
+extract
+ style ngspice variants (lvs),(sim),(si)
+ cscale 1
+ # NOTE: SkyWater SPICE libraries use .option scale 1E6 so all
+ # dimensions must be in units of microns in the extract file.
+ # Use extract style "ngspice(si)" to override this and produce
+ # a file with SI units for length/area.
+
+ variants (lvs),(sim)
+ lambda  1E6
+ variants (si)
+ lambda 1.0
+ variants *
+
+ units	microns
+ step   7
+ sidehalo 2
+
+ # NOTE:  MiM cap layers have been purposely put out of order,
+ # may want to reconsider.
+
+ planeorder dwell 	0
+ planeorder well 	1
+ planeorder active 	2
+ planeorder locali 	3
+ planeorder metal1 	4
+ planeorder metal2 	5
+ planeorder metal3 	6
+#ifdef METAL5
+ planeorder metal4 	7
+ planeorder metal5 	8
+#ifdef REDISTRIBUTION
+ planeorder metali	9
+ planeorder block      10
+ planeorder comment    11
+ planeorder cap1       12
+ planeorder cap2       13
+#else (!REDISTRIBUTION)
+ planeorder block       9	
+ planeorder comment    10
+ planeorder cap1       11
+ planeorder cap2       12
+#endif (!REDISTRIBUTION)
+#else (!METAL5)
+#ifdef REDISTRIBUTION
+ planeorder metali     7
+ planeorder block      8
+ planeorder comment    9
+ planeorder cap1       10
+ planeorder cap2       11
+#else (!REDISTRIBUTION)
+ planeorder block      7
+ planeorder comment    8
+ planeorder cap1       9
+ planeorder cap2       10
+#endif (!REDISTRIBUTION)
+#endif (!METAL5)
+
+ height	dnwell 	    -0.1    0.1
+ height	nwell,pwell  0.0    0.2062
+ height alldiff	     0.2062 0.12
+ height allpoly	     0.3262 0.18
+ height alldiffcont  0.3262 0.61
+ height pc	     0.5062 0.43
+ height allli	     0.9361 0.10
+ height lic	     1.0361 0.34
+ height allm1	     1.3761 0.36
+ height v1	     1.7361 0.27
+ height allm2	     2.0061 0.36
+ height v2	     2.3661 0.42
+ height allm3	     2.7861 0.845
+#ifdef METAL5
+ height v3	     3.6311 0.39
+ height allm4	     4.0211 0.845
+ height v4	     4.8661 0.505
+ height allm5	     5.3711 1.26
+ height mimcap	     2.4661 0.2
+ height mimcap2	     3.7311 0.2
+ height mimcc	     2.6661 0.12
+ height mim2cc	     3.9311 0.09
+#ifdef REDISTRIBUTION
+ height mrdlc	     6.6311 5.2523
+ height mrdl	    11.8834 4.0
+#endif (!REDISTRIBUTION)
+#endif (!METAL5)
+
+ # Antenna check parameters
+ # Note that checks w/diode diffusion are not modeled
+ model partial
+ antenna poly sidewall 50 none
+ antenna allcont surface 3 none
+ antenna li sidewall 75 0 450
+ antenna lic surface 3 0 18
+ antenna m1,m2,m3 sidewall 400 2600 400
+ antenna v1 surface 3 0 18
+ antenna v2 surface 6 0 36
+#ifdef METAL5
+ antenna m4,m5 sidewall 400 2600 400
+ antenna v3,v4 surface 6 0 36
+#endif (METAL5)
+
+ tiedown alldiffnonfet
+
+ substrate *ppdiff,*mvppdiff,space/w,pwell well $SUB -dnwell
+
+# Layer resistance: Use document xp018-PDS-v4_2_1.pdf
+
+# Resistances are in milliohms per square
+# Optional 3rd argument is the corner adjustment fraction
+# Device values come from trtc.cor (typical corner)
+ resist (dnwell)/dwell          2200000
+ resist (pwell)/well            3050000
+ resist (nwell)/well            1700000
+ resist (rpw)/well              3050000 0.5
+ resist (*ndiff,nsd)/active 	 120000
+ resist (*pdiff,*psd)/active	 197000
+ resist (*mvndiff,mvnsd)/active  114000
+ resist (*mvpdiff,*mvpsd)/active 191000
+
+ resist ndiffres/active 	120000 0.5
+ resist pdiffres/active 	197000 0.5
+ resist mvndiffres/active 	114000 0.5
+ resist mvpdiffres/active 	191000 0.5
+ resist mrp1/active		 48200 0.5
+ resist xhrpoly/active	        319800 0.5
+ resist uhrpoly/active	       2000000 0.5
+
+ resist (allpolynonres)/active   48200
+ resist rmp/active   		 48200
+
+ resist (allli)/locali		 12200
+ resist (allm1)/metal1		   125
+ resist (allm2)/metal2		   125
+ resist (allm3)/metal3	            47
+#ifdef METAL5
+ resist (allm4)/metal4  	    47
+ resist (allm5)/metal5  	    29
+#endif (METAL5)
+#ifdef REDISTRIBUTION
+ resist mrdl/metali		     5
+#endif (REDISTRIBUTION)
+
+ contact ndc,nsc		 15000
+ contact pdc,psc		 15000
+ contact mvndc,mvnsc		 15000
+ contact mvpdc,mvpsc	  	 15000
+ contact pc			 15000
+ contact lic			152000
+ contact m2c			  4500
+ contact m3c			  3410
+#ifdef METAL5
+#ifdef MIM
+ contact mimcc			  4500
+ contact mim2cc			  3410
+#endif (MIM)
+ contact via3			  3410
+ contact via4			   380
+#endif (METAL5)
+#ifdef REDISTRIBUTION
+ contact mrdlc			     6
+#endif (REDISTRIBUTION)
+
+#-------------------------------------------------------------------------
+# Parasitic capacitance values:  Use document (...)
+#-------------------------------------------------------------------------
+# This uses the new "default" definitions that determine the intervening
+# planes from the planeorder stack, take care of the reflexive sideoverlap
+# definitions, and generally clean up the section and make it more readable.
+#
+# Also uses "units microns" statement, so all parasitic capacitance values
+# are taken directly from the source document PDS_035_03, in units of
+# aF/um^2 for area caps and aF/um for perimeter and sidewall caps.
+#-------------------------------------------------------------------------
+# Remember that device capacitances to substrate are taken care of by the
+# models.  Thus, active and poly definitions ignore all "fet" types.
+# fet types are excluded when computing parasitic capacitance to
+# active from layers above them because poly is a shield; fet types are
+# included for parasitics from layers above to poly.  Resistor types
+# should be removed from all parasitic capacitance calculations, or else
+# they just create floating caps.  Technically, the capacitance probably
+# should be split between the two terminals.  Unsure of the correct model.
+#-------------------------------------------------------------------------
+
+#n-well
+# NOTE:  This value not found in PEX files
+defaultareacap     nwell well 120
+
+#n-active 
+# Rely on device models to capture *ndiff area cap
+# Do not extract parasitics from resistors
+# defaultareacap     allnactivenonfet active 790
+# defaultperimeter   allnactivenonfet active 280
+
+#p-active
+# Rely on device models to capture *pdiff area cap
+# Do not extract parasitics from resistors
+# defaultareacap     allpactivenonfet active 810
+# defaultperimeter   allpactivenonfet active 300
+
+#poly
+# Do not extract parasitics from resistors
+# defaultsidewall    allpolynonfet active  22
+# defaultareacap     allpolynonfet active  105
+# defaultperimeter   allpolynonfet active   57
+
+ defaultsidewall    *poly active  63
+ defaultareacap     *poly active nwell,obswell,pwell well  63
+ defaultperimeter   *poly active nwell,obswell,pwell well  16
+
+#locali
+ defaultsidewall    allm1 metal1       113
+ defaultareacap     allm1 metal1 nwell,obswell,pwell well  37
+ defaultperimeter   allm1 metal1 nwell,obswell,pwell well  8
+ defaultoverlap     allm1 metal1 nwell well 37
+
+#locali->diff
+ defaultoverlap     allm1 metal1 allactivenonfet active 36
+ defaultsideoverlap allm1 metal1 allactivenonfet active 9
+
+#locali->poly
+ defaultoverlap     allm1 metal1 allpolynonres active 46
+ defaultsideoverlap allm1 metal1 allpolynonres active 10
+
+#metal1
+ defaultsidewall    allm1 metal1       113
+ defaultareacap     allm1 metal1 nwell,obswell,pwell well  17
+ defaultperimeter   allm1 metal1 nwell,obswell,pwell well  8
+ defaultoverlap     allm1 metal1 nwell well 26
+
+#metal1->locali
+ defaultoverlap     allm1 metal1 allactivenonfet active 36
+ defaultsideoverlap allm1 metal1 allactivenonfet active 9
+
+#metal1->diff
+ defaultoverlap     allm1 metal1 allactivenonfet active 36
+ defaultsideoverlap allm1 metal1 allactivenonfet active 9
+
+#metal1->poly
+ defaultoverlap     allm1 metal1 allpolynonres active 46
+ defaultsideoverlap allm1 metal1 allpolynonres active 10
+
+#metal2
+ defaultsidewall    allm2 metal2      101
+ defaultareacap     allm2 metal2 nwell,obswell,pwell well 12
+ defaultperimeter   allm2 metal2 nwell,obswell,pwell well 6
+ defaultoverlap     allm2 metal2 nwell well 13
+
+#metal2->diff
+ defaultoverlap     allm2 metal2 allactivenonfet active 14
+ defaultsideoverlap allm2 metal2 allactivenonfet active 7
+
+#metal2->poly
+ defaultoverlap     allm2 metal2 allpolynonres active 16
+ defaultsideoverlap allm2 metal2 allpolynonres active 7
+
+#metal2->metal1
+ defaultoverlap     allm2 metal2 allm1 metal1 39
+ defaultsideoverlap allm2 metal2 allm1 metal1 10
+
+#metal3
+ defaultsidewall    allm3 metal3     102
+ defaultoverlap     allm3 metal3 nwell well 8
+ defaultareacap     allm3 metal3 nwell,obswell,pwell well 8
+ defaultperimeter   allm3 metal3 nwell,obswell,pwell well 5
+
+#metal3->diff
+ defaultoverlap     allm3 metal3 allactive active 9
+ defaultsideoverlap allm3 metal3 allactive active 6
+
+#metal3->poly
+ defaultoverlap     allm3 metal3 allpolynonres active 10
+ defaultsideoverlap allm3 metal3 allpolynonres active 6
+
+#metal3->metal1
+ defaultoverlap     allm3 metal3 allm1 metal1 15
+ defaultsideoverlap allm3 metal3 allm1 metal1 7
+
+#metal3->metal2
+ defaultoverlap     allm3 metal3 allm2 metal2 39
+ defaultsideoverlap allm3 metal3 allm2 metal2 10
+
+#ifdef METAL5
+#metal4
+ defaultsidewall    allm4 metal4       102
+# defaultareacap     alltopm metal4 well  6
+ areacap     	    allm4/m4 8
+ defaultoverlap     allm4 metal4 nwell well 8
+ defaultperimeter   allm4 metal4 well  5
+
+#metal4->diff
+ defaultoverlap     allm4 metal4 allactivenonfet active 7
+ defaultsideoverlap allm4 metal4 allactivenonfet active 7
+
+#metal4->poly
+ defaultoverlap     allm4 metal4 allpolynonres active 7
+ defaultsideoverlap allm4 metal4 allpolynonres active 5
+
+#metal4->metal1
+ defaultoverlap     allm4 metal4 allm1 metal1 9
+ defaultsideoverlap allm4 metal4 allm1 metal1 6
+
+#metal4->metal2
+ defaultoverlap     allm4 metal4 allm2 metal2 15
+ defaultsideoverlap allm4 metal4 allm2 metal2 7
+
+#metal4->metal3
+ defaultoverlap     allm4 metal4 allm3 metal3 39
+ defaultsideoverlap allm4 metal4 allm3 metal3 10
+
+#metal5
+ defaultsidewall    allm5 metal5       103
+# defaultareacap     allm5 metal5 well  6
+ areacap     	    allm5/m5 6
+ defaultoverlap     allm5 metal5 nwell well 6
+ defaultperimeter   allm5 metal5 well  5
+
+#metal5->diff
+ defaultoverlap     allm5 metal5 allactivenonfet active 5
+ defaultsideoverlap allm5 metal5 allactivenonfet active 5
+
+#metal5->poly
+ defaultoverlap     allm5 metal5 allpolynonres active 5
+ defaultsideoverlap allm5 metal5 allpolynonres active 5
+
+#metal5->metal1
+ defaultoverlap     allm5 metal5 allm1 metal1 7
+ defaultsideoverlap allm5 metal5 allm1 metal1 5
+
+#metal5->metal2
+ defaultoverlap     allm5 metal5 allm2 metal2 9
+ defaultsideoverlap allm5 metal5 allm2 metal2 6
+
+#metal5->metal3
+ defaultoverlap     allm5 metal5 allm3 metal3 15
+ defaultsideoverlap allm5 metal5 allm3 metal3 7
+
+#metal5->metal4
+ defaultoverlap     allm5 metal5 allm4 metal4 39
+ defaultsideoverlap allm5 metal5 allm4 metal4 10
+#endif (METAL5)
+
+# Devices:  Use document (...)
+
+variants (sim)
+
+ device msubcircuit pshort pfet,scpfet *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+ device msubcircuit plowvt pfetlvt *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+ device msubcircuit phighvt pfethvt *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+
+ device msubcircuit nshort nfet,scnfet *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device msubcircuit nlowvt nfetlvt *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device msubcircuit sonos_e nsonos *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device subcircuit xcnwvc varactor *nndiff nwell error l=l w=w
+ device subcircuit xcnwvc2 varhvt *nndiff nwell error l=l w=w
+ device subcircuit xchvnwc mvvaractor *mvnndiff nwell error l=l w=w
+
+ device msubcircuit phv mvpfet *mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w
+ device msubcircuit nhv mvnfet *mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
+ device msubcircuit nhvnative mvnnfet *mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
+
+ device rsubcircuit short rmp     *poly	 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rli1    *li,coreli space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rmetal1 *metal1 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rmetal2 *metal2 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rmetal3 *metal3 space/w,pwell,nwell error l=l w=w
+#ifdef METAL5
+ device rsubcircuit short rm4 *m4 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rm5 *m5 space/w,pwell,nwell error l=l w=w
+#endif (METAL5)
+
+ device rsubcircuit xhrpoly  xhrpoly xpc pwell,space/w error l=l w=w
+ device rsubcircuit uhrpoly  uhrpoly xpc pwell,space/w error l=l w=w
+ device rsubcircuit mrp1     mrp1    *poly pwell,space/w error 	l=l w=w
+
+ device rsubcircuit mrdn     ndiffres *ndiff pwell,space/w  error l=l w=w
+ device rsubcircuit mrdp     pdiffres *pdiff nwell    error l=l w=w
+ device rsubcircuit xpwres   rpw       pwell dnwell error l=l w=w
+
+ device rsubcircuit mrdn_hv  mvndiffres *mvndiff pwell,space/w error l=l w=w
+ device rsubcircuit mrdp_hv  mvpdiffres *mvpdiff nwell   error l=l w=w
+
+ device subcircuit  pdiode *pdiode nwell a=a p=p
+ device msubcircuit ndiode *ndiode pwell,space/w a=a p=p
+ device subcircuit  pdiode_h *mvpdiode nwell a=a p=p
+ device msubcircuit ndiode_h *mvndiode pwell,space/w a=a p=p
+
+ # These are parasitic devices
+ device msubcircuit ndiode_lvt *ndiodelvt pwell,space/w a=a p=p
+ device subcircuit  pdiode_lvt *pdiodelvt nwell a=a p=p
+ device subcircuit  pdiode_hvt *pdiodehvt nwell a=a p=p
+ device msubcircuit ndiode_native *nndiode pwell,space/w a=a p=p
+
+#ifdef MIM
+ device subcircuit xcmimc1 *mimcap  m3 nwell,pwell,space/w error a=a p=p s=subs
+ device subcircuit xcmimc2 *mimcap2 m4,mimcc/m4 nwell,pwell,space/w error a=a p=p s=subs
+#endif (MIM)
+
+ variants (lvs),(si)
+
+ device mosfet pshort scpfet,pfet pdiff,pdiffres,pdc nwell 
+ device mosfet plowvt pfetlvt pdiff,pdiffres,pdc nwell 
+ device mosfet phighvt pfethvt pdiff,pdiffres,pdc nwell 
+ device mosfet nshort scnfet,nfet ndiff,ndiffres,ndc pwell,space/w
+ device mosfet nlowvt nfetlvt ndiff,ndiffres,ndc pwell,space/w
+ device mosfet sonos_e nsonos ndiff,ndiffres,ndc pwell,space/w
+ device mosfet phv mvpfet mvpdiff,mvpdiffres,mvpdc nwell 
+ device mosfet nhv mvnfet mvndiff,mvndiffres,mvndc pwell,space/w
+ device mosfet nhvnative mvnnfet *mvndiff,mvndiffres pwell,space/w
+
+ # These devices always extract as subcircuits
+ device subcircuit xcnwvc varactor *nndiff nwell error l=l w=w
+ device subcircuit xcnwvc2 varhvt *nndiff nwell error l=l w=w
+ device subcircuit xchvnwc mvvaractor *mvnndiff nwell error l=l w=w
+
+ device resistor short rmp     *poly
+ device resistor short rli1    *li,coreli
+ device resistor short rmetal1 *metal1
+ device resistor short rmetal2 *metal2
+ device resistor short rmetal3 *metal3
+#ifdef METAL5
+ device resistor short rm4 *m4
+ device resistor short rm5 *m5
+#endif (METAL5)
+
+ device resistor xhrpoly xhrpoly xpc 
+ device resistor uhrpoly uhrpoly xpc 
+ device resistor mrp1 mrp1       *poly 
+ device resistor mrdn  ndiffres *ndiff 
+ device resistor mrdp  pdiffres *pdiff 
+ device resistor mrdn_hv   mvndiffres *mvndiff 
+ device resistor mrdp_hv   mvpdiffres *mvpdiff 
+ device resistor xpwres   rpw    pwell
+
+ device pdiode pdiode *pdiode nwell a=a p=p
+ device ndiode ndiode *ndiode pwell,space/w a=a p=p
+ device pdiode pdiode_h *mvpdiode nwell a=a p=p
+ device ndiode ndiode_h *mvndiode pwell,space/w a=a p=p
+
+ # These are parasitic devices
+ device ndiode ndiode_lvt *ndiodelvt pwell,space/w a=a p=p
+ device pdiode pdiode_lvt *pdiodelvt nwell a=a p=p
+ device pdiode pdiode_hvt *pdiodehvt nwell a=a p=p
+ device ndiode ndiode_native *nndiode pwell,space/w a=a p=p
+
+ device subcircuit  pdiode_h *mvpdiode nwell a=a p=p
+ device msubcircuit ndiode_h *mvndiode pwell,space/w a=a p=p
+
+
+#ifdef MIM
+ device capacitor xcmimc1 *mimcap  *m3 1
+ device capacitor xcmimc2 *mimcap2 *m4 1
+#endif (MIM)
+
+end
+
+#-----------------------------------------------------
+# Wiring tool definitions
+#-----------------------------------------------------
+
+wiring
+ # All wiring values are in nanometers
+ scalefactor 10
+
+ contact lic 170 li 0  0 m1 30 60
+ contact v1  260 m1 0 30 m2  0 30  
+ contact v2  280 m2 0 45 m3 25  0
+#ifdef METAL5
+ contact v3  320 m3 0 30 m4  0  5
+ contact v4 1180 m4 0    m5 120 
+#endif (METAL5)
+
+ contact pc  170  poly 50 80 li 0 80
+ contact pdc 170 pdiff 40 60 li 0 80
+ contact ndc 170 ndiff 40 60 li 0 80
+ contact psc 170   psd 40 60 li 0 80
+ contact nsc 170   nsd 40 60 li 0 80
+
+end
+
+#-----------------------------------------------------
+# Plain old router. . . 
+#-----------------------------------------------------
+
+router
+end
+
+#------------------------------------------------------------
+# Plowing (restored in magic 8.2, need to fill this section)
+#------------------------------------------------------------
+
+plowing
+end
+
+#-----------------------------------------------------------------
+# No special plot layers defined (use default PNM color choices)
+#-----------------------------------------------------------------
+
+plot
+  style pnm
+     default
+     draw fillblock no_color_at_all
+     draw nwell cwell
+end
+
diff --git a/sky130/sky130_fd_sc_hd_config.tcl b/sky130/sky130_fd_sc_hd_config.tcl
new file mode 100644
index 0000000..4d9393a
--- /dev/null
+++ b/sky130/sky130_fd_sc_hd_config.tcl
@@ -0,0 +1,41 @@
+set current_folder [file dirname [file normalize [info script]]]
+# Technology lib
+
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(PDK_VARIANT)/sky130_fd_sc_hd_tt_1.80v_25C.lib"
+set ::env(LIB_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(PDK_VARIANT)/sky130_fd_sc_hd_ff_1.95v_-40C.lib"
+set ::env(LIB_MIN) "$::env(PDK_ROOT)$::env(PDK)/libs.ref/lib/$::env(PDK_VARIANT)/sky130_fd_sc_hd_ss_1.60v_100C.lib"
+
+
+set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
+
+# welltap and endcap cells
+set ::env(FP_WELLTAP_CELL) "sky130_fd_sc_hd_tapvpwrvgnd_1"
+set ::env(FP_ENDCAP_CELL) "sky130_fd_sc_hd_decap_3"
+
+# defaults (can be overridden by designs):
+set ::env(SYNTH_DRIVING_CELL) "sky130_fd_sc_hd_inv_8"
+#capacitance : 0.017653;
+set ::env(SYNTH_DRIVING_CELL_PIN) "Y"
+# update these
+set ::env(SYNTH_CAP_LOAD) "17.65" ; # femtofarad _inv_8 pin A cap
+set ::env(SYNTH_MIN_BUF_PORT) "sky130_fd_sc_hd_buf_2 A X"
+set ::env(SYNTH_TIEHI_PORT) "sky130_fd_sc_hd_conb_1 HI"
+set ::env(SYNTH_TIELO_PORT) "sky130_fd_sc_hd_conb_1 LO"
+
+# cts defaults
+set ::env(CTS_ROOT_BUFFER) sky130_fd_sc_hd_clkbuf_16
+set ::env(CELL_CLK_PORT) CLK
+
+# Placement defaults
+set ::env(PL_LIB) $::env(LIB_TYPICAL)
+
+# Fillcell insertion
+set ::env(FILL_CELL) "sky130_fd_sc_hd_decap_ sky130_fd_sc_hd_fill_"
+
+set ::env(CELL_PAD) 2
+set ::env(CELL_PAD_EXECLUDE) "$::env(PDK_VARIANT)_tap* $::env(PDK_VARIANT)_decap* $::env(PDK_VARIANT)_fill*"
+
+set ::env(ROOT_CLK_BUFFER) $::env(PDK_VARIANT)_clkbuf_16
+set ::env(CLK_BUFFER) $::env(PDK_VARIANT)_clkbuf_4
+set ::env(CLK_BUFFER_INPUT) A
+set ::env(CLK_BUFFER_OUTPUT) X
diff --git a/sky130/sky130_make_torture.tcl b/sky130/sky130_make_torture.tcl
new file mode 100644
index 0000000..580dc0f
--- /dev/null
+++ b/sky130/sky130_make_torture.tcl
@@ -0,0 +1,313 @@
+#---------------------------------------
+# Torture test generator for EFS8
+# (Specifically for EFS8B)
+# (work in progress)
+#---------------------------------------
+
+namespace path {::tcl::mathop ::tcl::mathfunc}
+
+# Set random seed so that torture test is not random from run to run.
+srand 1234567
+
+# NxN array MOSFET devices
+
+proc mos_array {n devname startx starty {deltax 12700} {deltay 254}} {
+   suspendall
+   box position $startx $starty
+   set i 0
+   for {set x 0} {$x < $n} {incr x} {
+      for {set y 0} {$y < $n} {incr y} {
+
+         set r [int [* [rand] 20]]
+         set w [+ 0.22 [* 0.5 $r]]
+         set r [int [* [rand] 20]]
+         set l [+ 0.18 [* 0.3 $r]]
+         set m [int [+ 1 [* [rand] 8]]]
+         set nf [int [+ 1 [* [rand] 8]]]
+
+         set r [int [* [rand] 8]]
+         set dcov [+ 20 [* 10 $r]]
+         set r [int [* [rand] 8]]
+         set pcov [+ 20 [* 10 $r]]
+         set r [int [* [rand] 8]]
+         set rlcov [+ 20 [* 10 $r]]
+
+         if {[rand] > 0.5} {set pov 1} else {set pov 0}
+         if {[rand] > 0.5} {set dov 1} else {set dov 0}
+         if {[rand] > 0.5} {set tc 1} else {set tc 0}
+         if {[rand] > 0.5} {set bc 1} else {set bc 0}
+         if {[rand] > 0.5} {set fm 1} else {set fm 0}
+         if {[rand] > 0.5} {set gl 1} else {set gl 0}
+         if {[rand] > 0.5} {set gr 1} else {set gr 0}
+         if {[rand] > 0.5} {set gt 1} else {set gt 0}
+         if {[rand] > 0.5} {set gb 1} else {set gb 0}
+
+         magic::gencell sky130::${devname} ${devname}_$i \
+		w $w l $l m $m nf $nf diffcov $dcov polycov $pcov \
+		rlcov $rlcov poverlap $pov doverlap $dov topc $tc \
+		botc $bc full_metal $fm glc $gl grc $gr gbc $gb gtc $gt
+         select cell ${devname}_$i
+         set bh [box height]
+         set bh [+ $bh $deltay]
+         box move n $bh
+         incr i
+      }
+      set bp [box position]
+      set bpx [lindex $bp 0]
+      box position $bpx $starty
+      box move e $deltax
+   }
+   resumeall
+}
+
+# NxN array resistor devices
+
+proc res_array {n devname startx starty {deltax 12700} {deltay 254}} {
+   suspendall
+   box position $startx $starty
+   set i 0
+   for {set x 0} {$x < $n} {incr x} {
+      for {set y 0} {$y < $n} {incr y} {
+
+         set r [int [* [rand] 10]]
+         set w [+ 0.42 [* 0.5 $r]]
+         set r [int [* [rand] 50]]
+         set l [+ 2.10 [* 2.0 $r]]
+         set m [int [+ 1 [* [rand] 2]]]
+         set nx [int [+ 1 [* [rand] 10]]]
+
+         set r [int [* [rand] 8]]
+         set ecov [+ 20 [* 10 $r]]
+
+         if {[rand] > 0.5} {set rov 1} else {set rov 0}
+	 if {[rand] > 0.5} {set sn 1} else {set sn 0}
+         if {[rand] > 0.5} {set fm 1} else {set fm 0}
+         if {[rand] > 0.5} {set gl 1} else {set gl 0}
+         if {[rand] > 0.5} {set gr 1} else {set gr 0}
+         if {[rand] > 0.5} {set gt 1} else {set gt 0}
+         if {[rand] > 0.5} {set gb 1} else {set gb 0}
+
+	 # Snake geometry does not apply to xhrpoly, uhrpoly, and xpwres, and
+	 # roverlap and endcov are prohibited.
+	 if {$devname == "xhrpoly" || $devname == "uhrpoly" || $devname == "xpwres"} {
+	    magic::gencell sky130::${devname} ${devname}_$i \
+		w $w l $l m $m nx $nx full_metal $fm \
+		glc $gl grc $gr gbc $gb gtc $gt
+	 } else {
+	    magic::gencell sky130::${devname} ${devname}_$i \
+		w $w l $l m $m nx $nx endcov $ecov roverlap $rov \
+		snake $sn full_metal $fm glc $gl grc $gr gbc $gb gtc $gt
+	 }
+         select cell ${devname}_$i
+         set bh [box height]
+         set bh [+ $bh $deltay]
+         box move n $bh
+         incr i
+      }
+      set bp [box position]
+      set bpx [lindex $bp 0]
+      box position $bpx $starty
+      box move e $deltax
+   }
+   resumeall
+}
+
+# NxN array diode devices
+
+proc diode_array {n devname startx starty} {
+   suspendall
+   box position $startx $starty
+   set i 0
+   for {set x 0} {$x < $n} {incr x} {
+      for {set y 0} {$y < $n} {incr y} {
+
+         set r [int [* [rand] 10]]
+         set w [+ 0.42 [* 0.5 $r]]
+         set r [int [* [rand] 10]]
+         set l [+ 0.42 [* 0.5 $r]]
+         set nx [int [+ 1 [* [rand] 4]]]
+         set ny [int [+ 1 [* [rand] 4]]]
+
+         if {[rand] > 0.5} {set dov 1} else {set dov 0}
+         if {[rand] > 0.5} {set el 1} else {set el 0}
+         if {[rand] > 0.5} {set er 1} else {set er 0}
+         if {[rand] > 0.5} {set et 1} else {set et 0}
+         if {[rand] > 0.5} {set eb 1} else {set eb 0}
+         if {[rand] > 0.5} {set fm 1} else {set fm 0}
+         if {[rand] > 0.5} {set gl 1} else {set gl 0}
+         if {[rand] > 0.5} {set gr 1} else {set gr 0}
+         if {[rand] > 0.5} {set gt 1} else {set gt 0}
+         if {[rand] > 0.5} {set gb 1} else {set gb 0}
+
+         magic::gencell sky130::${devname} ${devname}_$i \
+		w $w l $l nx $nx ny $ny doverlap $dov \
+		full_metal $fm elc $el erc $er etc $et \
+		ebc $eb glc $gl grc $gr gbc $gb gtc $gt
+         select cell ${devname}_$i
+         set bh [box height]
+         set bh [+ $bh 254]
+         box move n $bh
+         incr i
+      }
+      set bp [box position]
+      set bpx [lindex $bp 0]
+      box position $bpx $starty
+      box move e 12700
+   }
+   resumeall
+}
+
+# NxN array cap devices
+
+proc cap_array {n devname startx starty {deltax 12700} {deltay 160}} {
+   suspendall
+   box position $startx $starty
+   set i 0
+   for {set x 0} {$x < $n} {incr x} {
+      for {set y 0} {$y < $n} {incr y} {
+
+         set r [int [* [rand] 10]]
+         set w [+ 2.00 [* 1.0 $r]]
+         set r [int [* [rand] 10]]
+         set l [+ 2.00 [* 1.0 $r]]
+         set nx [int [+ 1 [* [rand] 4]]]
+         set ny [int [+ 1 [* [rand] 4]]]
+
+         if {[rand] > 0.5} {set bc 1} else {set bc 0}
+         if {[rand] > 0.5} {set tc 1} else {set tc 0}
+
+         magic::gencell sky130::${devname} ${devname}_$i \
+		w $w l $l nx $nx ny $ny bconnect $bc tconnect $tc
+         select cell ${devname}_$i
+         set bh [box height]
+         set bh [+ $bh $deltay]
+         box move n $bh
+         incr i
+      }
+      set bp [box position]
+      set bpx [lindex $bp 0]
+      box position $bpx $starty
+      box move e $deltax
+   }
+   resumeall
+}
+
+# NxN fixed devices
+
+proc fixed_array {n devname startx starty} {
+   suspendall
+   box position $startx $starty
+   set i 0
+   for {set x 0} {$x < $n} {incr x} {
+      for {set y 0} {$y < $n} {incr y} {
+
+         set nx [int [+ 1 [* [rand] 4]]]
+         set ny [int [+ 1 [* [rand] 4]]]
+
+         # Do not change the deltas---this will cause DRC problems
+         set r 0
+         # set r [int [* [rand] 10]]
+         set deltax [/ $r 10.0]
+         # set r [int [* [rand] 10]]
+         set deltay [/ $r 10.0]
+
+         magic::gencell sky130::${devname} ${devname}_$i \
+		nx $nx ny $ny deltax $deltax deltay $deltay
+         select cell ${devname}_$i
+         set bh [box height]
+         set bh [* $bh [+ $ny 1]]
+         box move n $bh
+         incr i
+      }
+      set bp [box position]
+      set bpx [lindex $bp 0]
+      box position $bpx $starty
+      box move e 20000
+   }
+   resumeall
+}
+
+snap int
+box size 0 0
+ 
+# Layout:
+#  phv
+#        mrl1     mrp1   mrdp   mrdp_hv  
+#  nhv                                  pdiode_h
+#                                       ndiode_h
+#  pshort                               nndiode
+#        xhrpoly  xpwres mrdn   mrdn_hv  pdiode
+#  nshort                               ndiode
+#
+
+mos_array 6 nshort 0 0
+mos_array 6 pshort 0 75000
+mos_array 6 nhv 0 150000 
+mos_array 6 phv 0 225000
+mos_array 6 nlowvt 0 300000
+mos_array 6 sonos_e 0 375000 12700 1650
+mos_array 6 plowvt 0 450000
+mos_array 6 phighvt 0 525000
+mos_array 6 nhvnative 0 600000 
+
+res_array 6 xhrpoly 100000 0
+res_array 6 mrl1 100000 180000
+res_array 6 uhrpoly 100000 360000
+
+res_array 6 xpwres 200000 0 13500 1100
+res_array 6 mrp1 200000 200000
+
+res_array 6 mrdn 300000 0
+res_array 6 mrdp 300000 180000
+
+res_array 6 mrdn_hv 400000 0
+res_array 6 mrdp_hv 400000 180000
+ 
+diode_array 6 ndiode 500000 0
+diode_array 6 pdiode 500000 30000 
+diode_array 6 ndiode_h 500000 60000
+diode_array 6 pdiode_h 500000 90000 
+
+cap_array 6 xcmimc1 600000 0
+cap_array 6 xcmimc2 600000 70000 18000 650
+
+mos_array 6 xcnwvc 700000 0 15000 254
+mos_array 6 xchvnwc 700000 70000 18000 254
+mos_array 6 xcnwvc2 700000 140000 15000 254
+
+fixed_array 2 sky130_fd_pr_rf_npn_1x1 850000 0
+fixed_array 2 sky130_fd_pr_rf_npn_1x2 850000 30000
+fixed_array 2 sky130_fd_pr_rf_pnp5x 850000 60000
+
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp11p5x11p7_lim5shield 900000 0
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp11p5x11p7_m3_lim5shield 900000 30000
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp11p5x11p7_m4shield 900000 60000
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym4shield 900000 90000
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp4p4x4p6_m3_lim5shield 900000 120000
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp6p8x6p1_lim4shield 900000 150000
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp6p8x6p1_polym4shield 900000 180000
+fixed_array 2 sky130_fd_pr_rf2_xcmvpp8p6x7p9_m3_lim5shield 900000 210000
+fixed_array 2 sky130_fd_pr_rf2_xcmvppx4_2xnhvnative10x4 900000 240000
+# fixed_array 2 sky130_fd_pr_rf2_xcmvpp11p5x11p7_polym50p4shield 900000 270000
+
+fixed_array 2 sky130_fd_pr_rf_xcmvpp11p5x11p7_m3_lishield 950000 0
+fixed_array 2 sky130_fd_pr_rf_xcmvpp11p5x11p7_m3shield 950000 30000
+fixed_array 2 sky130_fd_pr_rf_xcmvpp2 950000 60000
+fixed_array 2 sky130_fd_pr_rf_xcmvpp2_nwell 950000 90000
+fixed_array 2 sky130_fd_pr_rf_xcmvpp4p4x4p6_m3_lishield 950000 120000
+fixed_array 2 sky130_fd_pr_rf_xcmvpp4p4x4p6_m3shield 950000 150000
+fixed_array 2 sky130_fd_pr_rf_xcmvpp8p6x7p9_m3_lishield 950000 180000
+fixed_array 2 sky130_fd_pr_rf_xcmvpp8p6x7p9_m3shield 950000 210000
+# fixed_array 2 sky130_fd_pr_rf_xcmvpp1p8x1p8_lishield 950000 240000
+# fixed_array 2 sky130_fd_pr_rf_xcmvpp1p8x1p8_m3shield 950000 270000
+
+fixed_array 1 balun 1000000 0
+fixed_array 1 xind4_02 1000000 200000
+fixed_array 1 xind4_011 1250000 0
+
+# Draw a deep nwell region around the sonos transistor block
+box values -5200i 369500i 76800i 427500i
+sky130::deep_nwell_draw
+
+save torture_test_sky130
+gds write torture_test_sky130
diff --git a/sky130/sky130_setup.tcl b/sky130/sky130_setup.tcl
new file mode 100644
index 0000000..af90784
--- /dev/null
+++ b/sky130/sky130_setup.tcl
@@ -0,0 +1,296 @@
+###
+###     Source file sky130_setup.tcl
+###     Process this file with the preproc.py processor
+###
+#---------------------------------------------------------------
+# Setup file for netgen LVS
+# SkyWater TECHNAME
+#---------------------------------------------------------------
+permute default
+property default
+property parallel none
+
+#---------------------------------------------------------------
+# For the following, get the cell lists from
+# circuit1 and circuit2.
+#---------------------------------------------------------------
+
+set cells1 [cells list -all -circuit1]
+set cells2 [cells list -all -circuit2]
+
+# NOTE:  In accordance with the LVS manager GUI, the schematic is
+# always circuit2, so some items like property "par1" only need to
+# be specified for circuit2.
+
+#-------------------------------------------
+# Resistors (except metal)
+#-------------------------------------------
+
+set devices {xpwres mrp1 xhrpoly uhrpoly mrdn mrdp mrdn_hv mrdp_hv}
+
+foreach dev $devices {
+    if {[lsearch $cells1 $dev] >= 0} {
+	permute "-circuit1 $dev" 1 2
+	property "-circuit1 $dev" series enable
+	property "-circuit1 $dev" series {w critical}
+	property "-circuit1 $dev" series {l add}
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {l critical}
+	property "-circuit1 $dev" parallel {w add}
+	property "-circuit1 $dev" parallel {value par}
+	property "-circuit1 $dev" tolerance {l 0.01} {w 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 pm
+    }
+    if {[lsearch $cells2 $dev] >= 0} {
+	permute "-circuit2 $dev" 1 2
+	property "-circuit1 $dev" series enable
+	property "-circuit1 $dev" series {w critical}
+	property "-circuit1 $dev" series {l add}
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {l critical}
+	property "-circuit1 $dev" parallel {w add}
+	property "-circuit1 $dev" parallel {value par}
+	property "-circuit1 $dev" tolerance {l 0.01} {w 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 pm
+    }
+}
+
+#-------------------------------------------
+# MRM (metal) resistors
+#-------------------------------------------
+
+set devices {mrl1 mrm1 mrm2 mrm3}
+#ifdef METAL5
+lappend devices mrm4
+lappend devices mrm5
+#endif (METAL5)
+
+foreach dev $devices {
+    if {[lsearch $cells1 $dev] >= 0} {
+	permute "-circuit1 $dev" 1 2
+	property "-circuit1 $dev" series enable
+	property "-circuit1 $dev" series {w critical}
+	property "-circuit1 $dev" series {l add}
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {l critical}
+	property "-circuit1 $dev" parallel {w add}
+	property "-circuit1 $dev" parallel {value par}
+	property "-circuit1 $dev" tolerance {l 0.01} {w 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 pm
+    }
+    if {[lsearch $cells2 $dev] >= 0} {
+	permute "-circuit2 $dev" 1 2
+	property "-circuit1 $dev" series enable
+	property "-circuit1 $dev" series {w critical}
+	property "-circuit1 $dev" series {l add}
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {l critical}
+	property "-circuit1 $dev" parallel {w add}
+	property "-circuit1 $dev" parallel {value par}
+	property "-circuit1 $dev" tolerance {l 0.01} {w 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 pm
+    }
+}
+
+#-------------------------------------------
+# (MOS) transistors
+#-------------------------------------------
+
+set devices {nshort nlowvt sonos_e nhvnative nhv pshort plowvt phighvt phv}
+lappend devices xcnwvc
+lappend devices xcnwvc2
+lappend devices xchvnwc
+
+foreach dev $devices {
+    if {[lsearch $cells1 $dev] >= 0} {
+	permute "-circuit1 $dev" 1 3
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {l critical}
+	property "-circuit1 $dev" parallel {w add}
+	property "-circuit1 $dev" tolerance {w 0.01} {l 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 NRD NRS
+    }
+    if {[lsearch $cells2 $dev] >= 0} {
+	permute "-circuit2 $dev" 1 3
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {l critical}
+	property "-circuit1 $dev" parallel {w add}
+	property "-circuit2 $dev" tolerance {w 0.01} {l 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 NRD NRS
+    }
+}
+
+#-------------------------------------------
+# diodes
+#-------------------------------------------
+
+set devices {ndiode ndiode_lvt pdiode pdiode_lvt pdiode_hvt ndiode_h pdiode_h}
+lappend devices ndiode_native
+
+foreach dev $devices {
+    if {[lsearch $cells1 $dev] >= 0} {
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {area add}
+	property "-circuit1 $dev" parallel {value add}
+	property "-circuit1 $dev" tolerance {area 0.02}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 peri
+    }
+    if {[lsearch $cells2 $dev] >= 0} {
+	property "-circuit2 $dev" parallel enable
+	property "-circuit1 $dev" parallel {area add}
+	property "-circuit1 $dev" parallel {value add}
+	property "-circuit2 $dev" tolerance {area 0.02}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 peri
+    }
+}
+
+#-------------------------------------------
+# capacitors
+# MiM capacitors
+#-------------------------------------------
+
+set devices {xcmimc1 xcmimc2}
+
+foreach dev $devices {
+    if {[lsearch $cells1 $dev] >= 0} {
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {area add}
+	property "-circuit1 $dev" parallel {value add}
+	property "-circuit1 $dev" tolerance {l 0.01} {w 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 pm
+    }
+    if {[lsearch $cells2 $dev] >= 0} {
+	property "-circuit1 $dev" parallel enable
+	property "-circuit1 $dev" parallel {area add}
+	property "-circuit1 $dev" parallel {value add}
+	property "-circuit1 $dev" tolerance {l 0.01} {w 0.01}
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1 pm
+    }
+}
+
+#-------------------------------------------
+# Fixed-layout devices
+# bipolar transistors,
+# VPP capacitors
+#-------------------------------------------
+
+set devices {sky130rf_npn_1x1 sky130rf_npn_1x2 sky130rf_pnp5x}
+#ifdef METAL5
+lappend devices balun xint4_011 xind4_02
+lappend devices sky130rf2_xcmvpp11p5x11p7_lim5shield
+lappend devices sky130rf2_xcmvpp11p5x11p7_m3_lim5shield
+lappend devices sky130rf2_xcmvpp11p5x11p7_m4shield
+lappend devices sky130rf2_xcmvpp11p5x11p7_polym4shield
+lappend devices sky130rf2_xcmvpp11p5x11p7_polym50p4shield
+lappend devices sky130rf2_xcmvpp4p4x4p6_m3_lim5shield
+lappend devices sky130rf2_xcmvpp6p8x6p1_lim4shield
+lappend devices sky130rf2_xcmvpp6p8x6p1_polym4shield
+#endif (METAL5)
+lappend devices sky130rf2_xcmvpp8p6x7p9_m3_lim5shield
+lappend devices sky130rf2_xcmvppx4_2xnhvnative10x4
+lappend devices sky130rf_xcmvpp11p5x11p7_m3_lishield
+lappend devices sky130rf_xcmvpp11p5x11p7_m3shield
+lappend devices sky130rf_xcmvpp1p8x1p8_lishield
+lappend devices sky130rf_xcmvpp1p8x1p8_m3shield
+lappend devices sky130rf_xcmvpp2
+lappend devices sky130rf_xcmvpp2_nwell
+lappend devices sky130rf_xcmvpp4p4x4p6_m3_lishield
+lappend devices sky130rf_xcmvpp4p4x4p6_m3shield
+lappend devices sky130rf_xcmvpp8p6x7p9_m3_lishield
+lappend devices sky130rf_xcmvpp8p6x7p9_m3shield
+
+foreach dev $devices {
+    if {[lsearch $cells1 $dev] >= 0} {
+	property "-circuit1 $dev" parallel enable
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1
+    }
+    if {[lsearch $cells2 $dev] >= 0} {
+	property "-circuit2 $dev" parallel enable
+	# Ignore these properties
+	property "-circuit2 $dev" delete par1
+    }
+}
+
+#---------------------------------------------------------------
+# Digital cells (ignore decap, fill, and tap cells)
+# Make a separate list for each supported library
+#---------------------------------------------------------------
+# e.g., ignore class "-circuit2 sky130_fc_sc_hd_decap_3"
+#---------------------------------------------------------------
+
+foreach cell $cells1 {
+    if {[regexp "sky130_fc_sc_hd_decap_\[0-9\]+" $cell match]} {
+        ignore class "-circuit1 $cell"
+    }
+    if {[regexp "sky130_fc_sc_hd_fill_\[0-9\]+" $cell match]} {
+        ignore class "-circuit1 $cell"
+    }
+}
+foreach cell $cells2 {
+    if {[regexp "sky130_fc_sc_hd_decap_\[0-9\]+" $cell match]} {
+        ignore class "-circuit2 $cell"
+    }
+    if {[regexp "sky130_fc_sc_hd_fill_\[0-9\]+" $cell match]} {
+        ignore class "-circuit2 $cell"
+    }
+}
+
+#---------------------------------------------------------------
+# Handle cells captured from Electric
+#
+# Find cells of the form "<library>__<cellname>" in the netlist
+# from Electric where the extracted layout netlist has only
+# "<cellname>".  Cross-check by ensuring that the full name
+# "<library>__<cellname>" does not exist in both cells, and that
+# the truncated name "<cellname>" does not exist in both cells.
+#---------------------------------------------------------------
+# e.g., hydra_spi_controller__hydra_spi_controller
+#---------------------------------------------------------------
+foreach cell $cells1 {
+    if {[regexp "(.+)__(.+)" $cell match library cellname]} {
+        if {([lsearch $cells2 $cell] < 0) && \
+                ([lsearch $cells2 $cellname] >= 0) && \
+                ([lsearch $cells1 $cellname] < 0)} {
+            equate classes "-circuit1 $cell" "-circuit2 $cellname"
+	    puts stdout "Matching pins of $cell in circuit 1 and $cellname in circuit 2"
+	    equate pins "-circuit1 $cell" "-circuit2 $cellname"
+        }
+    }
+}
+
+foreach cell $cells2 {
+    if {[regexp "(.+)__(.+)" $cell match library cellname]} {
+        if {([lsearch $cells1 $cell] < 0) && \
+                ([lsearch $cells1 $cellname] >= 0) && \
+                ([lsearch $cells2 $cellname] < 0)} {
+            equate classes "-circuit1 $cellname" "-circuit2 $cell"
+	    puts stdout "Matching pins of $cellname in circuit 1 and $cell in circuit 2"
+	    equate pins "-circuit1 $cellname" "-circuit2 $cell"
+        }
+    }
+}
+
+# Match pins on black-box cells if LVS is called with "-blackbox"
+if {[model blackbox]} {
+    foreach cell $cells1 {
+	if {[model "-circuit1 $cell"] == "blackbox"} {
+	    if {[lsearch $cells2 $cell] >= 0} {
+		puts stdout "Matching pins of $cell in circuits 1 and 2"
+		equate pins "-circuit1 $cell" "-circuit2 $cell"
+	    }
+	}
+    }
+}
+
+#---------------------------------------------------------------
diff --git a/sky130/sky130gds.tech b/sky130/sky130gds.tech
new file mode 100644
index 0000000..8beebdc
--- /dev/null
+++ b/sky130/sky130gds.tech
@@ -0,0 +1,689 @@
+tech
+    format 32
+    TECHNAME-GDS
+end
+
+version
+    version REVISION
+    description "SkyWater S8: Vendor GDS layers"
+end
+
+planes
+ p1
+ p2
+ p3
+ p4
+ p5
+ p6
+ p7
+ p8
+ p9
+ p10
+ p11
+ p12
+ p13
+ p14
+ p15
+ p16
+ p17
+ p18
+ p19
+ p20
+ p21
+ p22
+ p23
+ p24
+ p25
+ p26
+ p27
+ p28
+ p29
+ p30
+ p31
+ p32
+ p33
+ p34
+ p35
+ p36
+ p37
+ p38
+ p39
+ p40
+ p41
+ p42
+end
+
+types
+ p1  NWELL,l1
+ p1  NWELLT,l60
+ p1  NWELLP,l62
+ p2  DNWELL,l2
+ p3  DIFF,l3
+ p3  TAP,l4
+ p4  LVTN,l5
+ p4  HVTP,l6
+ p5  HVI,l7
+ p6  TUNM,l8
+ p7  POLY,l9
+ p7  POLYP,l63
+ p7  POLYT,l70
+ p8  NPC,l10
+ p9  PSDM,l11
+ p9  NSDM,l12
+ p10 LICON1,l13
+ p11 LI1,l14
+ p11 LI1T,l15
+ p11 LI1P,l16
+ p12 MCON,l17
+ p12 MET1,l18
+ p12 MET1T,l19
+ p12 MET1P,l20
+ p13 VIA1,l21
+ p13 MET2,l22
+ p13 MET2T,l23
+ p13 MET2P,l24
+ p14 VIA2,l25
+ p14 MET3,l26
+ p14 MET3T,l27
+ p14 MET3P,l28
+ p15 VIA3,l29
+ p15 MET4,l30
+ p15 MET4T,l31
+ p15 MET4P,l32
+ p16 VIA4,l33
+ p16 MET5,l34
+ p16 MET5T,l35
+ p16 MET5P,l36
+ p17 PAD,l37
+ p17 PADT,l38
+ p17 PADP,l39
+ p18 AREAID,l40
+ p19 TEXT,l41
+ p20 HVTR,l42
+ p21 NCM,l43
+ p22 RPM,l44
+ p23 NSM,l45
+ p24 RDL,l46
+ p25 VHVI,l47
+ p26 LDNTM,l48
+ p26 HVNTM,l49
+ p27 PMM,l50
+ p28 PNP,l51
+ p29 CAP,l52
+ p30 IND,l53
+ p31 PWRES,l54
+ p32 POLYRES,l55
+ p33 DIFFRES,l56
+ p34 DIODE,l57
+ p35 POLYM,l58
+ p36 COREID,l59
+ p37 PWELLT,l61
+ p37 PWELLP,l64
+ p38 CFOMDROP,l65
+ p39 CLI1MADD,l66
+ p40 CNTMADD,l67
+ p41 CP1MADD,l68
+ p42 BOUND,l69
+end
+
+contact
+end
+
+styles
+    styletype	mos
+ l1   nwell
+ l2   cwell
+ l3   ndiffusion
+ l4   pdiffusion
+ l5   implant1
+ l6   implant2
+ l7   implant3
+ l8   subcircuit
+ l9    polysilicon
+ l10   implant4
+ l11   pdop_stripes
+ l12   ndop_stripes
+ l13   obsmetal1 contact_X'es
+ l14   metal1
+ l15   metal1
+ l16   metal1
+ l17   metal1 metal2 via1
+ l18   metal2
+ l19   metal2
+ l20   metal2
+ l21   metal2 metal3 via2
+ l22   metal3
+ l23   metal3
+ l24   metal3
+ l25   metal3 metal4 via3
+ l26   metal4
+ l27   metal4
+ l28   metal4
+ l29   metal4 metal5 via4
+ l30   metal5
+ l31   metal5
+ l32   metal5
+ l33   metal5 metal6 via5
+ l34   metal6
+ l35   metal6
+ l36   metal6
+ l37   overglass
+ l38   overglass
+ l39   overglass
+ l40   subcircuit
+ l41   comment
+ l42   implant1
+ l43   mim_top
+ l44   mim_bottom
+ l45   ntransistor_stripes
+ l46   metal7
+ l47   electrode
+ l48   nwell_field_implant
+ l49   hvndiff_mask
+ l50   poly_light
+ l51   mvpdiff
+ l52   mvndiff
+ l53   hvpdiff
+ l54   cwellnsc
+ l55   poly_resist poly_resist_stripes
+ l56   ptransistor_stripes
+ l57   hvpdiff_mask
+ l58   poly_resist
+ l59   subcircuit
+ l60   nwell
+ l61   pwell
+ l62   nwell
+ l63   polysilicon
+ l64   pwell
+ l65   implant1
+ l66   implant2
+ l67   implant3
+ l68   implant4
+ l69   subcircuit
+ l70   polysilicon
+end
+
+compose
+   paint  MCON    MET1  MCON
+   paint  VIA1    MET2  VIA1
+   paint  VIA2    MET3  VIA2
+   paint  VIA3    MET4  VIA3
+   paint  VIA4    MET5  VIA4
+end
+
+connect
+end
+
+cifoutput
+style gdsii
+  scalefactor 50 nanometers
+  options calma-permissive-labels
+ layer  NWELL NWELL,NWELLT,NWELLP
+ calma 64 20
+
+ layer NWELLT
+ labels NWELLT noport
+ calma 64 16
+
+ layer NWELLP
+ labels NWELLP port
+ calma 64 5
+
+ layer  DNWELL DNWELL
+ labels DNWELL 
+ calma 64 18
+
+ layer  DIFF DIFF
+ labels DIFF 
+ calma 65 20
+
+ layer  TAP TAP
+ labels TAP 
+ calma 65 44
+
+ layer  POLY POLY,POLYP,POLYT
+ calma 66 20
+
+ layer POLYT
+ labels POLYT noport
+ calma 66 16
+
+ layer POLYP
+ labels POLYP port
+ calma 66 5
+
+ layer  LVTN LVTN
+ labels LVTN 
+ calma 125 44
+
+ layer  HVTP HVTP
+ labels HVTP 
+ calma 78 44
+
+ layer  HVI HVI
+ labels HVI 
+ calma 75 20
+
+ layer  TUNM TUNM
+ labels TUNM 
+ calma 80 20
+
+ layer  NPC NPC
+ labels NPC 
+ calma 95 20
+
+ layer  PSDM PSDM
+ labels PSDM 
+ calma 94 20
+
+ layer  NSDM NSDM
+ labels NSDM 
+ calma 93 44
+
+ layer  LICON1 LICON1
+ labels LICON1 
+ calma 66 44
+
+ # Note: LICON1 not on LI1 plane, may not be coincident with LI1.
+ layer  LI1 LI1,LI1T,LI1P
+ calma 67 20
+
+ layer  LI1T
+ labels LI1T noport
+ calma 67 16
+
+ layer  LI1P
+ labels LI1P port
+ calma 67 5
+
+ layer  MET1 MET1,MET1T,MET1P,MCON
+ calma 68 20
+
+ layer  MET1T
+ labels MET1T noport
+ calma 68 16
+
+ layer  MET1P
+ labels MET1P port
+ calma 68 5
+
+ layer  MCON MCON
+ labels MCON 
+ calma 67 44
+
+ layer  MET2 MET2,MET2T,MET2P,VIA1
+ calma 69 20
+
+ layer  MET2T
+ labels MET2T noport
+ calma 69 16
+
+ layer  MET2P
+ labels MET2P port
+ calma 69 5
+
+ layer  VIA1 VIA1
+ labels VIA1 
+ calma 68 44
+
+ layer  MET3 MET3,MET3T,MET3P,VIA2
+ calma 70 20
+
+ layer  MET3T
+ labels MET3T noport
+ calma 70 16
+
+ layer  MET3P
+ labels MET3P port
+ calma 70 5
+
+ layer  VIA2 VIA2
+ labels VIA2 
+ calma 69 44
+
+ layer  MET4 MET4,MET4T,MET4P,VIA3
+ calma 71 20
+
+ layer  MET4T
+ labels MET4T noport
+ calma 71 16
+
+ layer  MET4P
+ labels MET4P port
+ calma 71 5
+
+ layer  VIA3 VIA3
+ labels VIA3 
+ calma 70 44
+
+ layer  MET5 MET5,MET5T,MET5P,VIA4
+ calma 72 20
+
+ layer  MET5T
+ labels MET5T noport
+ calma 72 16
+
+ layer  MET5P
+ labels MET5P port
+ calma 72 5
+
+ layer  VIA4 VIA4
+ labels VIA4 
+ calma 71 44
+
+ layer  PAD PAD,PADT,PADP
+ calma 76 20
+
+ layer  PADT
+ labels PADT noport
+ calma 76 16
+
+ layer  PADP
+ labels PADP port
+ calma 76 5
+
+ layer  AREAID AREAID
+ labels AREAID
+ calma 81 4
+
+ layer  TEXT TEXT
+ labels TEXT
+ calma 83 44
+
+ layer HVTR HVTR
+ labels HVTR
+ calma 18 20
+
+ layer NCM NCM
+ labels NCM
+ calma 92 44
+
+ layer RPM RPM
+ labels RPM
+ calma 86 20
+
+ layer NSM NSM
+ labels NSM
+ calma 61 20
+
+ layer RDL RDL
+ labels RDL
+ calma 74 20
+
+ layer VHVI VHVI
+ labels VHVI
+ calma 74 21
+
+ layer LDNTM LDNTM
+ labels LDNTM
+ calma 11 44
+
+ layer HVNTM HVNTM
+ labels HVNTM
+ calma 125 20
+
+ layer PMM PMM
+ labels PMM
+ calma 85 44
+
+ layer PNP PNP
+ labels PNP
+ calma 82 44
+
+ layer CAP CAP
+ labels CAP
+ calma 82 64
+
+ layer IND IND
+ labels IND
+ calma 82 24
+
+ layer PWRES PWRES
+ labels PWRES
+ calma 64 13
+
+ layer POLYRES POLYRES
+ labels POLYRES
+ calma 66 13
+
+ layer DIFFRES DIFFRES
+ labels DIFFRES
+ calma 65 13
+
+ layer DIODE DIODE
+ labels DIODE
+ calma 81 23
+
+ layer POLYM POLYM
+ labels POLYM
+ calma 66 83
+
+ layer COREID COREID
+ labels COREID
+ calma 81 2
+
+ layer PWELLT PWELLT
+ labels PWELLT noport
+ calma 122 16
+
+ layer PWELLP PWELLP
+ labels PWELLP port
+ calma 64 59
+
+ layer CFOMDROP CFOMDROP
+ labels CFOMDROP
+ calma 22 22
+
+ layer CLI1MADD CLI1MADD
+ labels CLI1MADD
+ calma 115 43
+
+ layer CNTMADD CNTMADD
+ labels CNTMADD
+ calma 22 21
+
+ layer CP1MADD CP1MADD
+ labels CP1MADD
+ calma 33 43
+
+ layer BOUND BOUND
+ labels BOUND
+ calma 235 4
+end
+
+cifinput
+style ProgName
+  scalefactor 50 nanometers
+ layer l1  NWELL
+ layer l2  DNWELL
+ layer l3  DIFF
+ layer l4  TAP
+ layer l5  LVTN
+ layer l6  HVTP
+ layer l7  HVI
+ layer l8  TUNM
+ layer l9  POLY
+ layer l10 NPC
+ layer l11 PSDM
+ layer l12 NSDM
+ layer l13 LICON1
+ layer l14 LI1
+ layer l15 LI1T
+ layer l16 LI1P
+ layer l17 MCON
+ layer l18 MET1
+ layer l19 MET1T
+ layer l20 MET1P
+ layer l21 VIA1
+ layer l22 MET2
+ layer l23 MET2T
+ layer l24 MET2P
+ layer l25 VIA2
+ layer l26 MET3
+ layer l27 MET3T
+ layer l28 MET3P
+ layer l29 VIA3
+ layer l30 MET4
+ layer l31 MET4T
+ layer l32 MET4P
+ layer l33 VIA4
+ layer l34 MET5
+ layer l35 MET5T
+ layer l36 MET5P
+ layer l37 PAD
+ layer l38 PADT
+ layer l39 PADP
+ layer l40 AREAID
+ layer l41 TEXT
+ layer l42 HVTR
+ layer l43 NCM
+ layer l44 RPM
+ layer l45 NSM
+ layer l46 RDL
+ layer l47 VHVI
+ layer l48 LDNTM
+ layer l49 HVNTM
+ layer l50 PMM
+ layer l51 PNP
+ layer l52 CAP
+ layer l53 IND
+ layer l54 PWRES
+ layer l55 POLYRES
+ layer l56 DIFFRES
+ layer l57 DIODE
+ layer l58 POLYM
+ layer l59 COREID
+ layer l60 NWELLT
+ layer l61 PWELLT
+ layer l62 NWELLP
+ layer l63 POLYP
+ layer l64 PWELLP
+ layer l65 CFOMDROP
+ layer l66 CLI1MADD
+ layer l67 CNTMADD
+ layer l68 CP1MADD
+ layer l69 BOUND
+ layer l70 POLYT
+ calma NWELL  64 20
+ calma DNWELL 64 18
+ calma DIFF   65 20
+ calma TAP    65 44
+ calma LVTN  125 44
+ calma HVTP   78 44
+ calma HVI    75 20
+ calma TUNM   80 20
+ calma POLY   66 20
+ calma NPC    95 20
+ calma PSDM   94 20
+ calma NSDM   93 44
+ calma LICON1 66 44
+ calma LI1    67 20
+ calma LI1T   67 16
+ calma LI1P   67 5
+ calma MCON   67 44
+ calma MET1   68 20
+ calma MET1T  68 16
+ calma MET1P  68 5
+ calma VIA1   68 44
+ calma MET2   69 20
+ calma MET2T  69 16
+ calma MET2P  69 5
+ calma VIA2   69 44
+ calma MET3   70 20
+ calma MET3T  70 16
+ calma MET3P  70 5
+ calma VIA3   70 44
+ calma MET4   71 20
+ calma MET4T  71 16
+ calma MET4P  71 5
+ calma VIA4   71 44
+ calma MET5   72 20
+ calma MET5T  72 16
+ calma MET5P  72 5
+ calma PAD    76 20
+ calma PADT   76 16
+ calma PADP   76 5
+ calma AREAID 81 4
+ calma TEXT   83 44
+ calma HVTR   18 20
+ calma NCM    92 44
+ calma RPM    86 20
+ calma NSM    61 20
+ calma RDL    74 20
+ calma VHVI   74 21
+ calma LDNTM  11 44
+ calma HVNTM 125 20
+ calma PMM    85 44
+ calma PNP    82 44
+ calma CAP    82 64
+ calma IND    82 24
+ calma PWRES  64 13
+ calma POLYRES 66 13
+ calma DIFFRES 65 13
+ calma DIODE  81 23
+ calma POLYM  66 83
+ calma COREID 81 2
+ calma NWELLT  64 16
+ calma PWELLT 122 16
+ calma NWELLP  64 5
+ calma POLYP  66 5
+ calma PWELLP 64 59
+ calma CFOMDROP 22 22
+ calma CLI1MADD 115 43
+ calma CNTMADD  22 21
+ calma CP1MADD  33 43
+ calma BOUND  235 4
+ calma POLYT  66 16
+end
+ 
+mzrouter
+end
+
+drc
+end
+
+extract
+style default
+ planeorder p1 0
+ planeorder p2 1
+ planeorder p3 2
+ planeorder p4 3
+ planeorder p5 4
+ planeorder p6 5
+ planeorder p7 6
+ planeorder p8 7
+ planeorder p9 8
+ planeorder p10 9
+ planeorder p11 10
+ planeorder p12 11
+ planeorder p13 12
+ planeorder p14 13
+ planeorder p15 14
+ planeorder p16 15
+ planeorder p17 16
+ planeorder p18 17
+ planeorder p19 18
+ planeorder p20 19
+ planeorder p21 20
+ planeorder p22 21
+ planeorder p23 22
+ planeorder p24 23
+ planeorder p25 24
+ planeorder p26 25
+ planeorder p27 26
+ planeorder p28 27
+ planeorder p29 28
+ planeorder p30 29
+ planeorder p31 30
+ planeorder p32 31
+ planeorder p33 32
+ planeorder p34 33
+ planeorder p35 34
+ planeorder p36 35
+ planeorder p37 36
+ planeorder p38 37
+ planeorder p39 38
+ planeorder p40 39
+ planeorder p41 40
+ planeorder p42 41
+end
diff --git a/sky130/sky130osu.sh b/sky130/sky130osu.sh
new file mode 100644
index 0000000..4afd9bd
--- /dev/null
+++ b/sky130/sky130osu.sh
@@ -0,0 +1,93 @@
+#!/bin/tcsh
+#---------------------------------------------------------------
+# Shell script setting up all variables used by the qflow scripts
+# for this project
+#---------------------------------------------------------------
+
+# The LEF file containing standard cell macros
+
+#ifdef EF_FORMAT
+set leffile=STAGING_PATH/TECHNAME/libs.ref/lef/sky130_osu130/sky130_osu130.lef
+#else (!EF_FORMAT)
+set leffile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/lef/sky130_osu130.lef
+#endif (!EF_FORMAT)
+
+# The SPICE netlist containing subcell definitions for all the standard cells
+#ifdef EF_FORMAT
+set spicefile=STAGING_PATH/TECHNAME/libs.ref/spice/sky130_osu130/sky130_osu130.spice
+#else (!EF_FORMAT)
+set spicefile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/spice/sky130_osu130.spice
+#endif (!EF_FORMAT)
+
+# The liberty format file containing standard cell timing and function information
+#ifdef EF_FORMAT
+set libertyfile=STAGING_PATH/TECHNAME/libs.ref/lib/sky130_osu130/sky130_osu130.lib
+#else (!EF_FORMAT)
+set libertyfile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/lib/sky130_osu130.lib
+#endif (!EF_FORMAT)
+
+# If there is another LEF file containing technology information
+# that is separate from the file containing standard cell macros,
+# set this.  Otherwise, leave it defined as an empty string.
+
+#ifdef METAL5
+#ifdef EF_FORMAT
+set techleffile=STAGING_PATH/TECHNAME/libs.ref/techLEF/sky130_osu130/sky130_osu130_tech.lef
+#else (!EF_FORMAT)
+set techleffile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/techLEF/sky130_osu130_tech.lef
+#endif (!EF_FORMAT)
+#else
+# NOTE:  There is no technology LEF file for the 3-metal stack!
+#endif
+
+# All cells below should be the lowest output drive strength value,
+# if the standard cell set has multiple cells with different drive
+# strengths.  Comment out any cells that do not exist.
+
+set bufcell=BUFX2		;# Minimum drive strength buffer cell
+set bufpin_in=A			;# Name of input port to buffer cell
+set bufpin_out=Y		;# Name of output port to buffer cell
+set clkbufcell=BUFX2		;# Minimum drive strength buffer cell
+set clkbufpin_in=A		;# Name of input port to buffer cell
+set clkbufpin_out=Y		;# Name of output port to buffer cell
+
+set fillcell=FILL		;# Spacer (filler) cell (prefix, if more than one)
+set decapcell=""		;# Decap (filler) cell (prefix, if more than one)
+set antennacell=""		;# Antenna (filler) cell (prefix, if more than one)
+set antennapin_in=""		;# Antenna cell input connection
+set bodytiecell=""		;# Body tie (filler) cell (prefix, if more than one)
+
+# yosys tries to eliminate use of these; depends on source .v
+set tiehi=""			;# Cell to connect to power, if one exists
+set tiehipin_out=""		;# Output pin name of tiehi cell, if it exists
+set tielo=""			;# Cell to connect to ground, if one exists
+set tielopin_out=""		;# Output pin name of tielo cell, if it exists
+
+set gndnet="vdd"		;# Name used for ground pins in standard cells
+set vddnet="vss"		;# Name used for power pins in standard cells
+
+set separator=""		;# Separator between gate names and drive strengths
+set techfile=STAGING_PATH/TECHNAME/MAGIC_CURRENT/TECHNAME.tech	    ;# magic techfile
+set magicrc=STAGING_PATH/TECHNAME/MAGIC_CURRENT/TECHNAME.magicrc    ;# magic startup script
+set magic_display="XR" 	;# magic display, defeat display query and OGL preference
+set netgen_setup=STAGING_PATH/TECHNAME/libs.tech/netgen/TECHNAME_setup.tcl	;# netgen setup file for LVS
+#ifdef EF_FORMAT
+set gdsfile=STAGING_PATH/TECHNAME/libs.ref/gds/sky130_osu130/sky130_osu130.gds	;# GDS database of standard cells
+set verilogfile=STAGING_PATH/TECHNAME/libs.ref/verilog/sky130_osu130/sky130_osu130.v	;# Verilog models of standard cells
+#else (!EF_FORMAT)
+set gdsfile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/gds/sky130_osu130.gds	;# GDS database of standard cells
+set verilogfile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/verilog/sky130_osu130.v	;# Verilog models of standard cells
+#endif (!EF_FORMAT)
+
+# Set a conditional default in the project_vars.sh file for this process
+set postproc_options=""
+#ifdef METAL5
+# Normally one does not want to use the top metal for signal routing
+set route_layers = 5
+#else
+set route_layers = 3
+#endif
+set fill_ratios="100,0,0,0"
+set fanout_options="-l 100 -c 10"
+set addspacers_options="-stripe 1.6 40.0 PG"
+set xspice_options="-io_time=250p -time=50p -idelay=20p -odelay=50p -cload=250f"
