From 6e161d938f259f0128a6114b98486369e7669ae2 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Fri, 27 Feb 2026 17:29:31 +0100 Subject: [PATCH] Bug fixes, new test data --- src/db/db/dbLayoutDiff.cc | 4 +- .../streamers/cif/unit_tests/dbCIFReader.cc | 14 ++-- .../dxf/unit_tests/dbDXFReaderTests.cc | 70 +++++++++--------- .../gds2/db_plugin/dbGDS2WriterBase.cc | 37 +-------- .../gds2/db_plugin/dbGDS2WriterBase.h | 1 - src/tl/tl/tlExpression.cc | 16 +++- testdata/algo/antenna_au1.gds | Bin 14850 -> 35134 bytes testdata/algo/bipolar_devices_nets.gds | Bin 19452 -> 18726 bytes testdata/algo/device_extract_au1.gds | Bin 8478 -> 8682 bytes testdata/algo/device_extract_au10.gds.1 | Bin 8894 -> 9098 bytes testdata/algo/device_extract_au10.gds.2 | Bin 8894 -> 0 bytes testdata/algo/device_extract_au10.gds.3 | Bin 8898 -> 0 bytes testdata/algo/device_extract_au10.gds.4 | Bin 8894 -> 0 bytes testdata/algo/device_extract_au10.gds.5 | Bin 8894 -> 0 bytes ...ice_extract_au1_dup_inst_with_rec_nets.gds | Bin 54738 -> 55222 bytes testdata/algo/device_extract_au1_flat.gds | Bin 78534 -> 79170 bytes .../algo/device_extract_au1_implicit_nets.gds | Bin 9160 -> 9364 bytes .../algo/device_extract_au1_join_nets.gds | Bin 10712 -> 10436 bytes .../algo/device_extract_au1_joined_nets.gds | Bin 11114 -> 11318 bytes .../algo/device_extract_au1_rebuild_ff.gds | Bin 3120 -> 3324 bytes .../algo/device_extract_au1_rebuild_fr.gds | Bin 7734 -> 6114 bytes .../algo/device_extract_au1_rebuild_nf.gds | Bin 3852 -> 4056 bytes .../algo/device_extract_au1_rebuild_nr.gds | Bin 9458 -> 9662 bytes .../algo/device_extract_au1_rebuild_pf.gds | Bin 49364 -> 49568 bytes .../algo/device_extract_au1_rebuild_pr.gds | Bin 29092 -> 29296 bytes .../algo/device_extract_au1_with_rec_nets.gds | Bin 50630 -> 51114 bytes testdata/algo/device_extract_au1a.gds | Bin 8330 -> 8534 bytes testdata/algo/device_extract_au9.gds | Bin 7982 -> 8186 bytes .../algo/device_extract_capres_nets.gds.1 | Bin 14282 -> 13904 bytes .../algo/device_extract_capres_nets.gds.2 | Bin 14282 -> 0 bytes .../device_extract_capres_with_bulk_nets.gds | Bin 15288 -> 14664 bytes testdata/algo/device_extract_issue954_au.gds | Bin 95980 -> 97618 bytes testdata/algo/diode_devices_nets.gds | Bin 5206 -> 5218 bytes testdata/algo/l2n_reader_au_p.oas | Bin 1604 -> 1560 bytes testdata/algo/l2n_writer_au.gds | Bin 6856 -> 7060 bytes testdata/algo/l2n_writer_au_2.gds | Bin 13330 -> 13534 bytes testdata/algo/soft_connections_au.gds | Bin 26174 -> 26402 bytes testdata/cif/issue_305_au.gds | Bin 426 -> 572 bytes testdata/cif/issue_972_au.gds | Bin 438 -> 642 bytes testdata/cif/lasi_au.gds.gz | Bin 187 -> 468 bytes testdata/drc/drcSimpleTests_au5.gds | Bin 9952 -> 14062 bytes testdata/drc/drcSimpleTests_au6.gds | Bin 3516 -> 4896 bytes testdata/drc/drcSimpleTests_au7.gds | Bin 22370 -> 47832 bytes testdata/drc/drcSimpleTests_au70.gds.1 | Bin 72504 -> 91124 bytes testdata/drc/drcSimpleTests_au70.gds.2 | Bin 72504 -> 0 bytes testdata/drc/drcSimpleTests_au70.gds.3 | Bin 72504 -> 0 bytes testdata/drc/drcSimpleTests_au70.gds.4 | Bin 72696 -> 0 bytes testdata/drc/drcSimpleTests_au70.gds.5 | Bin 72600 -> 0 bytes testdata/drc/drcSimpleTests_au70d.gds.1 | Bin 53058 -> 65378 bytes testdata/drc/drcSimpleTests_au70d.gds.2 | Bin 53058 -> 0 bytes testdata/drc/drcSimpleTests_au70d.gds.3 | Bin 53058 -> 0 bytes testdata/drc/drcSimpleTests_au70d.gds.4 | Bin 53058 -> 0 bytes testdata/drc/drcSimpleTests_au70d.gds.5 | Bin 53058 -> 0 bytes testdata/drc/drcSimpleTests_au71.gds | Bin 6092 -> 8018 bytes testdata/drc/drcSimpleTests_au71d.gds | Bin 4488 -> 6034 bytes testdata/dxf/issue_1173_au.gds.gz | Bin 1584 -> 1758 bytes testdata/dxf/issue_1422a_au.gds.gz | Bin 4687 -> 7990 bytes testdata/dxf/issue_1422b_au.gds.gz | Bin 1919 -> 3686 bytes testdata/dxf/issue_1422c_au.gds.gz | Bin 2000 -> 2234 bytes 59 files changed, 60 insertions(+), 82 deletions(-) delete mode 100644 testdata/algo/device_extract_au10.gds.2 delete mode 100644 testdata/algo/device_extract_au10.gds.3 delete mode 100644 testdata/algo/device_extract_au10.gds.4 delete mode 100644 testdata/algo/device_extract_au10.gds.5 delete mode 100644 testdata/algo/device_extract_capres_nets.gds.2 delete mode 100644 testdata/drc/drcSimpleTests_au70.gds.2 delete mode 100644 testdata/drc/drcSimpleTests_au70.gds.3 delete mode 100644 testdata/drc/drcSimpleTests_au70.gds.4 delete mode 100644 testdata/drc/drcSimpleTests_au70.gds.5 delete mode 100644 testdata/drc/drcSimpleTests_au70d.gds.2 delete mode 100644 testdata/drc/drcSimpleTests_au70d.gds.3 delete mode 100644 testdata/drc/drcSimpleTests_au70d.gds.4 delete mode 100644 testdata/drc/drcSimpleTests_au70d.gds.5 diff --git a/src/db/db/dbLayoutDiff.cc b/src/db/db/dbLayoutDiff.cc index d6023d159..28dea23db 100644 --- a/src/db/db/dbLayoutDiff.cc +++ b/src/db/db/dbLayoutDiff.cc @@ -1353,7 +1353,7 @@ PrintingDifferenceReceiver::print_cell_inst (const db::CellInstArrayWithProperti enough (tl::info) << "" << tl::noendl; } if (ci.properties_id () != 0) { - enough (tl::info) << " [" << ci.properties_id () << "]"; + enough (tl::info) << " " << db::properties (ci.properties_id ()).to_dict_var ().to_string (); } else { enough (tl::info) << ""; } @@ -1374,7 +1374,7 @@ PrintingDifferenceReceiver::print_cell_inst (const db::CellInstArrayWithProperti enough (tl::info) << "" << tl::noendl; } if (ci.properties_id () != 0) { - enough (tl::info) << " [" << ci.properties_id () << "]"; + enough (tl::info) << " " << db::properties (ci.properties_id ()).to_dict_var ().to_string (); } else { enough (tl::info) << ""; } diff --git a/src/plugins/streamers/cif/unit_tests/dbCIFReader.cc b/src/plugins/streamers/cif/unit_tests/dbCIFReader.cc index 4cb19a403..7f7273f6d 100644 --- a/src/plugins/streamers/cif/unit_tests/dbCIFReader.cc +++ b/src/plugins/streamers/cif/unit_tests/dbCIFReader.cc @@ -238,22 +238,22 @@ static void run_test2 (tl::TestBase *_this, const std::string &base, db::Layout TEST(1a) { - run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1a_au.gds.gz"); + run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1a_au2.gds.gz"); } TEST(1b) { - run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1b_au.gds.gz", 0, 0.01); + run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1b_au2.gds.gz", 0, 0.01); } TEST(1c) { - run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1b_au.gds.gz", 0, 0.01, true); + run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1b_au2.gds.gz", 0, 0.01, true); } TEST(1d) { - run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1b_au.gds.gz", 0, 0.01, false, true); + run_test (_this, tl::testdata_private (), "t1.cif.gz", "t1b_au2.gds.gz", 0, 0.01, false, true); } TEST(2) @@ -263,17 +263,17 @@ TEST(2) TEST(3a) { - run_test (_this, tl::testdata_private (), "t3.cif.gz", "t3a_au.gds.gz", "CAA:43,CCA:48,CCP:47,CMF:49,CMS:51,CPG:46,CSN:45,CSP:44,CVA:50,CWN:42,XP:26"); + run_test (_this, tl::testdata_private (), "t3.cif.gz", "t3a_au2.gds.gz", "CAA:43,CCA:48,CCP:47,CMF:49,CMS:51,CPG:46,CSN:45,CSP:44,CVA:50,CWN:42,XP:26"); } TEST(3b) { - run_test (_this, tl::testdata_private (), "t3.cif.gz", "t3b_au.gds.gz", "CAA:43,CCA:48,CCP:47,CMF:49,CMS:51,CPG:46,CSN:45,CSP:44,CVA:50,CWN:42,XP:26", 0.00012); + run_test (_this, tl::testdata_private (), "t3.cif.gz", "t3b_au2.gds.gz", "CAA:43,CCA:48,CCP:47,CMF:49,CMS:51,CPG:46,CSN:45,CSP:44,CVA:50,CWN:42,XP:26", 0.00012); } TEST(3c) { - run_test (_this, tl::testdata_private (), "t3.cif.gz", "t3c_au.gds.gz", "(CPG:1/0) +(CPG:1000/0) (CCP:1/0) (CMF:2/0) +(CMF:1000/0) (CVA:3/0)", 0.00012); + run_test (_this, tl::testdata_private (), "t3.cif.gz", "t3c_au2.gds.gz", "(CPG:1/0) +(CPG:1000/0) (CCP:1/0) (CMF:2/0) +(CMF:1000/0) (CVA:3/0)", 0.00012); } TEST(4) diff --git a/src/plugins/streamers/dxf/unit_tests/dbDXFReaderTests.cc b/src/plugins/streamers/dxf/unit_tests/dbDXFReaderTests.cc index 0ecfa2827..c7aea4f61 100644 --- a/src/plugins/streamers/dxf/unit_tests/dbDXFReaderTests.cc +++ b/src/plugins/streamers/dxf/unit_tests/dbDXFReaderTests.cc @@ -117,7 +117,7 @@ TEST(4) db::DXFReaderOptions opt; opt.layer_map = string2lm ("Metal:1,Metal2:5"); opt.create_other_layers = true; - run_test (_this, "t4.dxf.gz", "t4_au.gds.gz", opt); + run_test (_this, "t4.dxf.gz", "t4_au_2.gds.gz", opt); } TEST(5) @@ -127,7 +127,7 @@ TEST(5) TEST(6) { - run_test (_this, "t6.dxf.gz", "t6_au.gds.gz"); + run_test (_this, "t6.dxf.gz", "t6_au_2.gds.gz"); } TEST(7) @@ -140,7 +140,7 @@ TEST(8) db::DXFReaderOptions opt; opt.layer_map = string2lm ("Metal:4,Kommentare:3,Bemassung:2"); opt.create_other_layers = true; - run_test (_this, "t8.dxf.gz", "t8_au.gds.gz", opt); + run_test (_this, "t8.dxf.gz", "t8_au_2.gds.gz", opt); } TEST(9) @@ -148,7 +148,7 @@ TEST(9) db::DXFReaderOptions opt; opt.layer_map = string2lm ("Bemassung:2,Metal:5,Kommentare:4"); opt.create_other_layers = true; - run_test (_this, "t9.dxf.gz", "t9_au.gds.gz", opt); + run_test (_this, "t9.dxf.gz", "t9_au_2.gds.gz", opt); } TEST(10) @@ -156,7 +156,7 @@ TEST(10) db::DXFReaderOptions opt; opt.layer_map = string2lm ("METAL:1,KOMMENTARE:4"); opt.create_other_layers = true; - run_test (_this, "t10.dxf.gz", "t10_au.gds.gz", opt); + run_test (_this, "t10.dxf.gz", "t10_au_2.gds.gz", opt); } TEST(11) @@ -166,7 +166,7 @@ TEST(11) TEST(12) { - run_test (_this, "t12.dxf.gz", "t12_au.gds.gz"); + run_test (_this, "t12.dxf.gz", "t12_au_2.gds.gz"); } TEST(14) @@ -174,7 +174,7 @@ TEST(14) db::DXFReaderOptions opt; opt.layer_map = string2lm ("'A11-STRUKTUR__E_TYP_':10,A21_NITRID:11,'B11-KONTAKT':9,'B11-STRUKTUR':3,HELLFELD:7,MASKE:5,NORM_MIN_MAX_WAFER:6,RASTER:2,_BEGRENZUNG_A11_A21_A31_B1:8"); opt.create_other_layers = true; - run_test (_this, "t14.dxf.gz", "t14_au.gds.gz", opt); + run_test (_this, "t14.dxf.gz", "t14_au_2.gds.gz", opt); } TEST(15) @@ -182,7 +182,7 @@ TEST(15) db::DXFReaderOptions opt; opt.layer_map = string2lm ("TEXT:4,IGBT:5,Wire:7,Ceramic:11,LAYER_1:14,Diode:18,'DBC TOP Plate':19,'Terminal Position':20"); opt.create_other_layers = true; - run_test (_this, "t15.dxf.gz", "t15_au2_2.gds.gz", opt); + run_test (_this, "t15.dxf.gz", "t15_au2_3.gds.gz", opt); } TEST(16) @@ -190,7 +190,7 @@ TEST(16) db::DXFReaderOptions opt; opt.layer_map = string2lm ("TEXT:4,IGBT:5,Wire:7,Ceramic:11,LAYER_1:14,Diode:18,'DBC TOP Plate':19,'Terminal Position':20"); opt.create_other_layers = true; - run_test (_this, "t16.dxf.gz", "t16_au2_2.gds.gz", opt); + run_test (_this, "t16.dxf.gz", "t16_au2_3.gds.gz", opt); } TEST(17) @@ -198,32 +198,32 @@ TEST(17) db::DXFReaderOptions opt; opt.layer_map = string2lm ("TEXT:4,IGBT:5,Wire:7,Ceramic:11,LAYER_1:14,Diode:18,'DBC TOP Plate':19,'Terminal Position':20"); opt.create_other_layers = true; - run_test (_this, "t17.dxf.gz", "t17_au2_2.gds.gz", opt); + run_test (_this, "t17.dxf.gz", "t17_au2_3.gds.gz", opt); } TEST(18) { - run_test (_this, "t18.dxf.gz", "t18_au.gds.gz"); + run_test (_this, "t18.dxf.gz", "t18_au_2.gds.gz"); } TEST(19) { - run_test (_this, "t19.dxf.gz", "t19_au.gds.gz"); + run_test (_this, "t19.dxf.gz", "t19_au_2.gds.gz"); } TEST(20) { - run_test (_this, "t20.dxf.gz", "t20_au.gds.gz"); + run_test (_this, "t20.dxf.gz", "t20_au_2.gds.gz"); } TEST(21) { - run_test (_this, "t21.dxf.gz", "t21_au.gds.gz"); + run_test (_this, "t21.dxf.gz", "t21_au_2.gds.gz"); } TEST(22) { - run_test (_this, "t22.dxf.gz", "t22_au.gds.gz"); + run_test (_this, "t22.dxf.gz", "t22_au_2.gds.gz"); } TEST(23a) @@ -233,7 +233,7 @@ TEST(23a) opt.unit = 1; opt.polyline_mode = 0; opt.circle_points = 10; - run_test (_this, "t23.dxf.gz", "t23a_au.gds.gz", opt); + run_test (_this, "t23.dxf.gz", "t23a_au_2.gds.gz", opt); } TEST(23b) @@ -243,7 +243,7 @@ TEST(23b) opt.unit = 1; opt.polyline_mode = 1; opt.circle_points = 10; - run_test (_this, "t23.dxf.gz", "t23b_au.gds.gz", opt); + run_test (_this, "t23.dxf.gz", "t23b_au_2.gds.gz", opt); } TEST(23c) @@ -253,7 +253,7 @@ TEST(23c) opt.unit = 1; opt.polyline_mode = 2; opt.circle_points = 10; - run_test (_this, "t23.dxf.gz", "t23c_au.gds.gz", opt); + run_test (_this, "t23.dxf.gz", "t23c_au_2.gds.gz", opt); } TEST(23d) @@ -263,7 +263,7 @@ TEST(23d) opt.unit = 1; opt.polyline_mode = 3; opt.circle_points = 10; - run_test (_this, "t23.dxf.gz", "t23d_au.gds.gz", opt); + run_test (_this, "t23.dxf.gz", "t23d_au_2.gds.gz", opt); } TEST(23e) @@ -273,7 +273,7 @@ TEST(23e) opt.unit = 1; opt.polyline_mode = 4; opt.circle_points = 10; - run_test (_this, "t23.dxf.gz", "t23e_au.gds.gz", opt); + run_test (_this, "t23.dxf.gz", "t23e_au_2.gds.gz", opt); } TEST(26a) @@ -283,7 +283,7 @@ TEST(26a) opt.unit = 1; opt.polyline_mode = 0; opt.circle_points = 100; - run_test (_this, "t26.dxf.gz", "t26a_au.gds.gz", opt); + run_test (_this, "t26.dxf.gz", "t26a_au_2.gds.gz", opt); } TEST(26b) @@ -293,7 +293,7 @@ TEST(26b) opt.unit = 1; opt.polyline_mode = 1; opt.circle_points = 100; - run_test (_this, "t26.dxf.gz", "t26b_au.gds.gz", opt); + run_test (_this, "t26.dxf.gz", "t26b_au_2.gds.gz", opt); } TEST(26c) @@ -303,7 +303,7 @@ TEST(26c) opt.unit = 1; opt.polyline_mode = 2; opt.circle_points = 100; - run_test (_this, "t26.dxf.gz", "t26c_au.gds.gz", opt); + run_test (_this, "t26.dxf.gz", "t26c_au_2.gds.gz", opt); } TEST(26d) @@ -313,7 +313,7 @@ TEST(26d) opt.unit = 1; opt.polyline_mode = 3; opt.circle_points = 100; - run_test (_this, "t26.dxf.gz", "t26d_au.gds.gz", opt); + run_test (_this, "t26.dxf.gz", "t26d_au_2.gds.gz", opt); } TEST(26e) @@ -323,7 +323,7 @@ TEST(26e) opt.unit = 1; opt.polyline_mode = 4; opt.circle_points = 100; - run_test (_this, "t26.dxf.gz", "t26e_au.gds.gz", opt); + run_test (_this, "t26.dxf.gz", "t26e_au_2.gds.gz", opt); } TEST(27a) @@ -438,7 +438,7 @@ TEST(30) opt.polyline_mode = 4; opt.circle_points = 1000; opt.circle_accuracy = 0.001; - run_test (_this, "t30.dxf.gz", "t30d_au.gds.gz", opt); + run_test (_this, "t30.dxf.gz", "t30d_au_2.gds.gz", opt); } // accuracy @@ -449,16 +449,16 @@ TEST(31) opt.unit = 1000; opt.contour_accuracy = 0; - run_test (_this, "t31.dxf.gz", "t31a_au.gds.gz", opt); + run_test (_this, "t31.dxf.gz", "t31a_au_2.gds.gz", opt); opt.contour_accuracy = 0.005; - run_test (_this, "t31.dxf.gz", "t31b_au.gds.gz", opt); + run_test (_this, "t31.dxf.gz", "t31b_au_2.gds.gz", opt); opt.contour_accuracy = 0.01; - run_test (_this, "t31.dxf.gz", "t31c_au.gds.gz", opt); + run_test (_this, "t31.dxf.gz", "t31c_au_2.gds.gz", opt); opt.contour_accuracy = 0.02; - run_test (_this, "t31.dxf.gz", "t31d_au.gds.gz", opt); + run_test (_this, "t31.dxf.gz", "t31d_au_2.gds.gz", opt); } // issue #198 @@ -491,20 +491,20 @@ TEST(33) db::DXFReaderOptions opt; opt.polyline_mode = 3; - run_test (_this, "t33.dxf.gz", "t33a_au.gds.gz", opt); + run_test (_this, "t33.dxf.gz", "t33a_au_2.gds.gz", opt); opt.circle_accuracy = 1.0; - run_test (_this, "t33.dxf.gz", "t33b_au.gds.gz", opt); + run_test (_this, "t33.dxf.gz", "t33b_au_2.gds.gz", opt); opt.circle_accuracy = 50.0; - run_test (_this, "t33.dxf.gz", "t33c_au.gds.gz", opt); + run_test (_this, "t33.dxf.gz", "t33c_au_2.gds.gz", opt); opt.circle_accuracy = 0.0; opt.polyline_mode = 4; - run_test (_this, "t33.dxf.gz", "t33d_au.gds.gz", opt); + run_test (_this, "t33.dxf.gz", "t33d_au_2.gds.gz", opt); opt.polyline_mode = 2; - run_test (_this, "t33.dxf.gz", "t33e_au.gds.gz", opt); + run_test (_this, "t33.dxf.gz", "t33e_au_2.gds.gz", opt); } // issue #1173 diff --git a/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.cc b/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.cc index 55e45a43c..553741638 100644 --- a/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.cc +++ b/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.cc @@ -496,11 +496,10 @@ GDS2WriterBase::build_property_translations (const db::Layout &layout, const std for (auto l = layers.begin (); l != layers.end (); ++l) { const db::Shapes &shapes = cell.shapes (l->first); - for (auto s = shapes.begin (db::ShapeIterator::AllWithProperties); ! s.at_end (); ++s) { + for (auto s = shapes.begin (db::ShapeIterator::AllWithProperties); ! s.at_end (); s.finish_array ()) { if (s->prop_id () != 0) { prop_ids.insert (s->prop_id ()); } - s.finish_array (); } } @@ -1367,39 +1366,5 @@ GDS2WriterBase::write_string_record (short record, const std::string &t) write_string (t); } -void -GDS2WriterBase::collect_property_ids (std::set &property_ids, const db::Layout &layout, const std::vector &cells, const std::vector > &layers) -{ - if (layout.prop_id () != 0) { - property_ids.insert (layout.prop_id ()); - } - - for (auto cell = cells.begin (); cell != cells.end (); ++cell) { - - const db::Cell &cref (layout.cell (*cell)); - - if (cref.prop_id () != 0) { - property_ids.insert (cref.prop_id ()); - } - - for (db::Cell::const_iterator inst = cref.begin (); ! inst.at_end (); ++inst) { - if (inst->has_prop_id () && inst->prop_id () != 0) { - property_ids.insert (inst->prop_id ()); - } - } - - for (auto l = layers.begin (); l != layers.end (); ++l) { - db::ShapeIterator shape (cref.shapes (l->first).begin (db::ShapeIterator::Properties | db::ShapeIterator::Boxes | db::ShapeIterator::Polygons | db::ShapeIterator::Edges | db::ShapeIterator::Paths | db::ShapeIterator::Texts)); - while (! shape.at_end ()) { - if (shape->has_prop_id () && shape->prop_id () != 0) { - property_ids.insert (shape->prop_id ()); - } - shape.finish_array (); - } - } - - } -} - } // namespace db diff --git a/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.h b/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.h index 5d041aff2..f1fe59ff6 100644 --- a/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.h +++ b/src/plugins/streamers/gds2/db_plugin/dbGDS2WriterBase.h @@ -187,7 +187,6 @@ private: void write_cell (db::Layout &layout, const db::Cell &cref, const std::vector > &layers, const std::set &cell_set, double sf, short *time_data); void write_shape (const db::Layout &layout, int layer, int datatype, const db::Shape &shape, double sf); - void collect_property_ids (std::set &property_ids, const db::Layout &layout, const std::vector &cells, const std::vector > &layers); void build_property_translations (const db::Layout &layout, const std::vector > &layers, const std::vector &cells, const db::GDS2WriterOptions &gds2_options); void get_property_map_context (std::vector &context_strings); }; diff --git a/src/tl/tl/tlExpression.cc b/src/tl/tl/tlExpression.cc index ef7b8345a..a888c5bbf 100644 --- a/src/tl/tl/tlExpression.cc +++ b/src/tl/tl/tlExpression.cc @@ -3947,15 +3947,29 @@ Eval::eval_atomic (ExpressionParserContext &ex, std::unique_ptr } if (dbu_units) { + // round to integers and check whether that is possible double gg = g; g = floor (0.5 + g); if (fabs (g) < 1e12 && fabs (g - gg) > 1e-3) { throw EvalError (tl::to_string (tr ("Value is not a multiple of the database unit")), ex1); } + + n.reset (new ConstantExpressionNode (ex1, tl::Variant (g))); + + } else { + + tl::Variant v (g); + + // prefer integers + if (g - floor (g) == 0.0 && v.can_convert_to_long ()) { + n.reset (new ConstantExpressionNode (ex1, tl::Variant (v.to_long ()))); + } else { + n.reset (new ConstantExpressionNode (ex1, v)); + } + } - n.reset (new ConstantExpressionNode (ex1, tl::Variant (g))); } diff --git a/testdata/algo/antenna_au1.gds b/testdata/algo/antenna_au1.gds index 7527f097c95b37f34b811cc1a2c5cfed85d995c7..491fe26094267ca3ff7a10d61a25ba605b6de74d 100644 GIT binary patch literal 35134 zcmdU1Z)_Y#6@TYAmrLS=6j`XECUxt89dMT0+q=Ep;6@2Fhzd6jB}8siDY0UQwzzT> zToj~8iBKgdvVm9+37sv>G2DnX=>7NR4}1}z zbIH<8Tb?d|_4QxOnD?Lj{7XOGwFA1A2Dke}HoI=!x-SiF+p%?c$L$qoAtOzhwA zossb;$9lAld(AO*R4tmCu9fm*qxs(T_x1JknCr1uyvLdb?orq{R#Ho2`k1=6IHr%P zW|`l^uzLC9?69;(B4p>`Rv*gt5<#Mj{-%Y1F-yE47b8g1^UEya|7BzW)%l-E< zu*MT32X{06yT|tJ<27^8UCGRpYw}vleD~AySZnmLiBZAr+q`DhUsJ`JBmOa23inp@ ztQXvxj3AS?-8XhR%>%!qJ$6g{z0ypK_{XlzC$CO3!D~9BlJSkOPIJL(aXG=yisoR1 z4GE4#`yBx7%b=#st;l9~JhWxo*RiH;XW1Y-TQLK$q#Hn>WP+?GyM4~n{xsII|Do3a z`JX69Y=mhJnGS77o-2^T#|7&S$s4e{_^Dt;(&Y((LlzHvJ>Q^o6{Ha=P zUmdip+xJ&*3-Fi8T325k1h{KBsO{SWcy%i1>T?}#TYFBH%X4z~X3Lt{1910doX@8K zHWmena)$DpO6@J{Ux(;AA#c}?TmnbWYVyBz)Uqxe2YBl!PCe@8r6U4GIm3Yd0iHk2>phQc zsr~Pe14mI_yZzZN%eu84;A|J4gTJp6D9RZI_Wvx7`zQMW2-lv&{^wm3<%ogpe}BZX zK0wZdb2x@?PPr(`5#{zPUH!4FcRMU=7PXh~M!RMG`vn(8`Rrs+dmJmUtm`jvoO_OZ z0`_mCC`SzFAE0N3`r}CLK7E0=Cluv~0qwc0YY%el9=EKUKR{iyQIrdt&+)Z~BtO70 zIQuygx!}_t(6O#KXQG z*#1|jH|RZp@Kb0zubg#Jlnd`tP5zQCFCq0`#<3Jg{oB_A`+u)!S(j%32(KOic>gsQ zMLA+%`>B`t_!G{q0r%4b!Lhp56AiQmi50*%MvKcF){_Ve{UFI z^%~0}>^aJ!kb|Op^_t-J^M^=(u}{PgA3^^;>7ppF&|i=IPvtD@9kgGfc74P92knPWEY*%pj7Od#c7R!oJ;(vbxIs98G8dW*s z{;c6O0_T8tR}DogmjZfL6;+pdE+~a!P|poV=V*E!Yt6iSS^x}XQqfkD0ybi zaW(T=Wm7lMaaCt$6qSN1X^GEgz7da}I<`_@PbCIX>ghrmM5m_*~mx za*RnrgH`VFSahk!F4HfwOMGQw;YK)HWQ5;Rqn4d67Nv^mQ?W$vD--%?+|-=A8$NuG)+yba@y#eu6XzLK20f_O2Mwn zG^L;_1y@rl_t=i643dUNxPS6VRxlN_R4y52!Jv~=t%?PB_j^9cRE-@Nkk(%%`zY~U zOx5$&%xwIYtMU_B?|GM>bvVnFc*kYA@$-(ya%1J)Lj8B-ic9i6vx-fF?pVRj(w`_m%+92+bmvdO0n^H zElbs$)u&ggW_&_=rD`VDmz1KZ>m{|!0-|j#l^W=c_BC}-iu||P8c{L%)5-?c0geX7 z?gw!$&9YH8i#k3{b)Q^#?au27Yf3Gx3M!?pvqosc_XOQ{W;G`>>c1WiVAtfZsndF(2i=Bt$b8Pm!H$)`^b)m4CPBw#XE$zNEPo8Ym3XY z=F}9G9=6kL`rc2H-URUJhoKn!WT}dNu=4^(KhSPG?-n`w5w-tf^I$3^-PBY={8pDt zdIlS%WDmQVAL`_EH*LT30r_8SC#lBYf=-oy(^|TUB|Xf z>0N`EZ2O1J*tV+Uw#xY}bGFRi+HYY7M`LzsV4on|Wbqas1Te4GY@C)P3UBr4mnf`1 zNWVm3W4q2?0CppwqibmY0kPeuZ6#gd?+M!b47FJk?ZG&CoH^l>JIi%4C@X zJcCze92-@~)iXcaYgXzX#p5;X=b5eW8j?g&dX2P56rI;dfkX-0nj>-W`XWwSI~wQO zBiO^J2J^6$Pb}npMJ!S`kcB+7ozi zgZC1+=R9V>B0qtLhbfZ~Kp>S~Zl#Na}H-}l+XI&KKh_Q0`(?!mKkT{%w z!A0U=Uyqf;(-$zi{1E`c`9lCdA8=8WBSy_Z%0r9NKX_tAJ^$e05S@QmIEU!`!@@a4 z=N}f%Av*uCa1PP=hlO*9&Oa=iLv;Qj30?%cV?*Y&%GS4jG>BFz}97dUVJcuU6=g zBJU^DGbZ+4ES5afx^^Y9>X==nXiOUQHMRAK?a}Lwfye+$*%&lzD^ZNWvy0p|q8I}y zFD=wQ#`nf8KJ(NJ(_qPT8Xh&W9T$5FA8_Wu&h71bc1B%ZDf9Dwkx?g|y4K35Dh#h3>nM>JH-1%;WLrNidJcpC`dQ9)BJWb0-V1 zKjd>rpI5|80o5#;MM|y31Y41n;LGxpJUV;JCOE&=S*-`<*Vb6Qd*y1z+oxHsW@15_ z*b0k zezjh%c;Z*<<%%bMwO+1x;#ceCiYI=xUaolJS4-rQ^6f*#FFWg4D^|};)cEre{;bY@ z&r8m0Xf^}U!#qTUN*VJIF(_rsLqwUBF%J<(QpP+)q(~X_5V0U-%tLtl)-!)t%9jfL zUOztK4)Esz&$y%X=N{(K`SYZiN9WIzW*(hCPnvmj{yb^s(fRYFnMdc(lV%>BKTm+U z_~wJK&qr7!!aObfJ|pKh;F}F9Pn7I;me})d=etAbTOSJeO3(HwMwdG0PXGYe~%ZGnE(I) delta 1622 zcmaKrO=weD6vuDUByD&%i8j#~ea3IYGi8cHJ2DcS)ET3#saj2K6U6GKA_N($IGxS- z9I$>cho)?}QUH$&|ocp`y-q-ZO zwcy{UYbv6G!C_?wg01g4htwkVgUWuLRa-Dp?%l3bswKRw=hBwlbGH_L{_S4p=tT=tAOdvXaJi=L;WlwMlqyC7?dr`d}jck?|gy1s1C^e$(3&GpL} zO-GjF4HnJXzB_BPYl}N;i+g6JxV5afwXCMqtHdo=f-ibfrUPAvb3=^8VhnoieLF=HIbC=D!cQ>6z@kuRi9VQ5g5# z!nme?x@0DD(=Cig>2tT-@7Yh@`&{4Cu0IpG>6z@!)NYhMY?U)+Cw#Y2;J+7tqedZ4 z@>@fWQgxf`E&VdMF0@#wP^HW{_Ns0$PEy)@#)(gA6KD$^i zcZKkIeQi&U9;Z`uc2C`KYHyvU_PO+Kz@<<7U7EI2w4zccYtW^{L6>@}-YBLS#he`G zqpC&eVGP$^)P!aXujkI?Xz_@+AYAbG!(dT*?4ow#h!8H;a05=7HVrw3b0uNlPT_D> zxM@_l%oWypg-^~obTcorLCgm6iNIP_h|h~PJ`srdAm$$(6CZ>RJ~{~&rN=I6A5RJ4 zVhwlmxVRu(@ai96QF`p6_TWz;T&&HzU2y|UxFGHgp7=|Mdk5U2sV(r`(StiZAub3P bgbQZRdwq7NCyJ&vc|mIITFqa0D5SmsB1;08 diff --git a/testdata/algo/bipolar_devices_nets.gds b/testdata/algo/bipolar_devices_nets.gds index 9e813195c7f05357ce5afe96011bf9c0d15578d6..80d04c36c3b81eb9e736be7378b6c2562551e68f 100644 GIT binary patch delta 1329 zcma)6OH30{6umQ@zLx$NN`Y3;L8%n5nF%dWz(DwP3Z2pqQjy@IiE-gZV>B^g(V)hS zpBVKfh*1*~48(-pxNyT(iHUARV`2=fG%=d^St_ZoAE_*!VUn5m?mPF~d*{x%^ZPEh zbcdS-0z5wj4IFR!3_R2W&}YTJdoc54EII_>G8p>@uZCjJmcR9cpDGLYr_<12WbpNRpZ$m;s2Lr+J8jhgkr>XrRXKE^;VOZ1j`Vkz^{97>uhe!9b`h z)Y|6@tCP`TH4_c{K&S!`Oz_|0Y=nfpsl@FQTXl^0)-P~Iu8{$PrN~d=CGHsh;1^j@ zaK-S3iOmaa?27RIF<)f@}Nd6R^nvN@1`@@T_IsoK8g!Y zBVCPnOLmp^3U-SwT3wDJGluz$j1v|KGxNv zQ6+nV&H=4EEj^_%{eoTW^{ z!?K4~WGWv8@<-16^brSaI|c#gWXZa1cK|+-_jhjFo%!tawg6b1g+WRI6oe+8%H@7t zE=TGD+%(k;7ckG-PApW8Vk<@Q21;?7T6X$&gC0=kYS63>;97VHHT5E1i}a%=cH&kf zUQ*?`k`g;m8yUbGVi2=*T^)@T{YLC)83|(F==Hyf#cVWQ@LP=zV4oJp7utEuYIGkP PFDNA&>ml@4A_(vYL{SdX delta 2028 zcmd5*O=uHQ5T4!aZg$rs-P-Qj#3ap68!6OA6MqOoNVZ8ENt0}v1WPX!FS$vT9>j~q zo7h8j5TQ~K1Q*1DWj%Nl57LWTkctNd!GjkMqO}L{;4@XUhnEc~;$G(Q=G$-HH#6Vu ztIXHy%rpqVvQyw^Sm#@E)<6P3>^OtS3KPe5fL;fm&R#lNd~Ci?uLhnb|j z1{6Uk=j$`|iZP=%CW^qx0P^l_F#v*(0RY!tKC6)U{d4*GOzQwx6(jz(fHQW0D`F_n zjsftV7`8#I+af-QURrN3B=y_yr)?1niXF$Ss^W?y|8b=sJcDg}1}?<`kXW-`Nvm9~ zgSl54b@(;+a;Z{lJNM3pqT+?1Jk-HMkDVlI=0U^h!&uiR>YxrN{r|Tr zwV%o@Pq*cuN`KiKXfM4gYO#Oj*{W*i*;&=jvy18-Jg>!ZMRwy6Es4v{UDkc=Gf!>7 zLw~@g=baSw;%m;0FZL%%?8c>$I9?0PQ)>T47BMJz?;f$BpZfhNq<%-W5~C z-vV~24eQkKqKXM!$IWaS&*~S6jgx4OUdE4l2G7Zdu{m18xm*S}bL5`HX1;`9q$KVe oD`FzQjWJ0y$4V{CyD@?pFX5I-@ZB9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)c|#|f~p z`MHL~PfQ9F$KmgZr*7hsn!Jk6@x69L?E%LH!Y(zkhrU?lFK;Si2y zOaP{v`u_}UI&6l(lmSW|Tnr36LToN70lxmhDuxU^pft!hfq{YR0|Q*G5kf5&NUa}G zElB16|NjcW$rY~Bc=CJ^B`!GEWb=NJ?W~ixN!d*MF-0@;}|zF_f{GL~}qQ|o32*?Y_YYu1nt delta 683 zcmaFmJkKeLfsKKQDS|{L4=vr&au+loa2q>Wjq55d_e>VzzKm1u4>xXoFL-e3+kA<)lnJMyaRSje-0-Vv`d^6*l*ZZe^XU!)`p;RN8y;0coenIY9PTX@|+B fGQME(tuhXiO=W$-;-#{da_kKFlF?=!xqHk2^zD23 diff --git a/testdata/algo/device_extract_au10.gds.1 b/testdata/algo/device_extract_au10.gds.1 index 613e8b0ca8222841f361b7559dcdeec6a96ee58e..8aa950fc821a5cf5f88f994c290e0e58e69cbf46 100644 GIT binary patch delta 1167 zcmdnz+T~u)z{bGD6u}_F$i)7Nfr&wyL4ZM!!4#Rzz`?}kF4GT2G1_m7g zW*~<+z@`n-sG!3Z5ab^a@8{_2s$pzoZf34&tM1|&=IQJj@9Cn>z#_=Nz{1Xe*Kq=D zY<{jG@e`8*#c}w1;;Easq$clTys3&q8v`H2WKX}acomDua%^Ig&oLR}G)aOv9H(3x z^L3nZB`i4gZGOZe&WKCnW&t+bl9TP&uj0};S&QQ`PB{@yocbnl;ncSI6;~+}PBY7R z|1(-l7T^<|+|4J(4UGBv{|sz8Y=#Vz7w{<}_(lwq5Aexz!R3u7-{n(6a7{M<<(tVo z`I?aF2yVGkc;xIvaqHWJM@~&_E>5@H n!Xwuwj$5CT1a7%+c;r?|;`W1_R5?y}u91qyCAV2ldI38C7hAq> delta 972 zcmeBj-{%^|z{bGD6u}_F$i)7bfr~+ifq{XAK?|A9z`?}kiXbW;_FJ_bHEHb2*pcu&8ucooaZ0-R!# zvzU!>nzV&E9H*QT%XOS`0<1XoZLVV#XT+s(^BOkXl9O+-U&WG8dlfy+UCtnb5kYi`S7x$CbiNxZxTS*kR+%!CLTw=KO)!~u*BsLeP qTb7CAmWz_WEypK`Tka4ZxiYC(oNjp~RgP1xLOL3k+~!x(3)lgz;hNI` diff --git a/testdata/algo/device_extract_au10.gds.2 b/testdata/algo/device_extract_au10.gds.2 deleted file mode 100644 index 6b279ff1937d3fc78bccf465b7163456ca82f615..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8894 zcmc&)&1+m$6hHH3=4CRSPGXv-#zv_!f{Rj{rk{wVsVOwHrp3gf#S&a}>&m4Ci*@0~ ze?S5ev4ZYIMf{?O6ltYO-H0tEpbP0j>b76c-?`_Wckg@iX6C(z(m?oybMNn-k9+Pt z=RQIq1;I-+RSAavpmh`w(N=2ve^Vm}kIo+?8n4#(&%U$g$iDBj6F40uI zH*Yiy7Y;2gFTF6ku(;frp<06|Tp!S73fo4{Xf=wWx1#9o8Y5A43$&k6R5>Hn9wMp@ zQ2~8BVtqe3eMFTfqUio5!RS2jK6G1DInd~{_NMr-@g(!{yPNqARSxv|SA6|+9s18< zjqBjOK@`j>s@!04f2Xtj#aaP=F9}BHfj8J+L6!IRmwD{3U}ZP+*k3`F_x3l6?tO!~ z=NQ>f=PNS_g4Lcx2CYELHQ)tBl^e_xU0>U-SliX4 zHlpE;qOEmVv?;0_SXA52ENwUi2Uwe6>$02}MU|^Io4HsB)ms|HbK#qT4uC!`lQ~pAyw^ zyC|xBcw6CUxjV(nB#x5F6ca5zWgIO*l^gV}O?iv)ui0Dd;pgnFLzM&j@L|IdiB{#1 zL`zZSK%bwA7WD6zXjQ(KXbGyEF;}!&VK~=Wc>dU8Co@(!EvK*+PTjpz93%LNI_IA{ z8Bf^SH`cVueE7f0>&AQG``T4sS-`824 zj;#8>JT<#|Jh`jheNk#xJ$|>Z4|-SG*LYVwOH1vl$M5#^0q!dD*Yu+3B%4H|V}5r! zO|8)?td$>g8oK7}$T4T8dycK8fq!2oYjL_y(WuLXNK7F6H-{Z60h#&e(t=I93+P<*uxPN{ooPK!|v!Be< zH?gA1Q~oFT;-~XlML1MZvV@a+7;a%bATRlE+GX!G0f4|~p7$Ju}Mv_q8x zjn9R3ZjbxRgw8SO;}|p6?hs9W=TPOqQablxDVy5~o$dF5$`W$4l8f z)5GRA_L6O5WSd7mcBt}xab9;;;>^f#9=Ym}<7~%E*^Dq`#<_yHux*TNb8yk2%6r?4 zI~;bIuhKxaIr!V5%3*sMo97p>l+6wAenao`kLYBq-9ZoVgG1ISIXj~`7tXs?z-6ns)|^HZ@8Yu9;^1VZ)7#M zMtljv+sf2UPpf@LHJ?I#UXwTuwrJ`vy`bQAYPvAaLPFH!Fj{1P=j!7tI*B={wIIq!Q}vD#dkxuplp2%au@{%{C;xAR<>MQM;hWoT t@<&rIFz>|TVxM`fKl9JS7dKvSZm!RItT)d*Tg?XA$Me$bp;M^U=wF|Yo?8F_ diff --git a/testdata/algo/device_extract_au10.gds.3 b/testdata/algo/device_extract_au10.gds.3 deleted file mode 100644 index f0be9a440641265250e8ab9a107575f61e02cc47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8898 zcmc&(-HTOK6kqq;d(YgtUT3E3s7+2`af2Sj)KMpi#IX?^v{9N#N)qY8*PePzNV11s z`UhfQA~LAAsEEFh2nh`fdx??|>LGjxd-dz|TYK$w_C6o?-g6Fy1H*4vXaDy4*lX{# z_8tl;2wtS=S}^h_t)V&vG(!{q-_#1i!wdU~ChN_;b8pWcy71wRJ@a2Yx%%$$WtwjG z=S_s+;(_Ip%g@g(E}iVnP@_c@t_|oCg<}B`ZJDS?QS@dM-M+?1RNoBgX+@PYQsV)l z#t4UPZ$m!V_4&n*Z+!*xJ&qh&fu7%i=M`0MutOF{6AoUydG15So06f0ZUv3xQJLT2QQrM0o7h*QTLn9x z5H)eWD5`vPYw2jYQzfy>=(Ncc6D{6l94$eW8}zMBd5iB~vA0;m&)8dsDhCeWW2FvB zv}y+=T8b(M`utS1pntDKtM;8lOHk#Eg`(97!};Fgb4QkXxv|1-If1#b>+YQ37{O0e zI)B&6_k^tjV@<2fhySZQFK4Vl-`7lqW&NU;$6LPPvE1>8RM@uq8lO*|rIpSXj~{yy zTUa2g{x46>svb?Qs&`&gT2+sq_4R(QD*GC*s%L4XRrUB;Pw(TZB7aRcir%43G|~0@ z)9uumsKZ+MF}o=7`JwDEz^4)ie&-!^D{1)rJL*M^0-KbqPj}P5faaP`& z?!6U;=qx1@+g;7eyd2E=+P)!cj0_!^B{Tv^$Kd*C_8lKSa@!4*P zGuv74mXzS%!?%pd_$}kvgL4auctCNt6|aXT+VmFUg`8n*V(&kE%Av}ECTE7+7P30G z#T{lsXBYZ-jTjrZh^D@EsB&N>oqI5q&CP_)vG>GJM)q^!j6?R*ey^nSsXjWJbK)l> z``P);A^T~+SJFA#M`!ID@spALG+ibu0jdOE{#F>%f8(w$Fakk$p**w$7<}s`# z+s4Q?kALJ)<%8n9=8VLdk>fmm#UaPpey?OR!jK#18sfsXF|y6U1&1o{Z!>BD>@sIL zkZlhBaj0_GUd85xMNDOL!#m&5`}`|985_4y!@qaPI^}yIopMvbD{ULM&aT{AO#jSp zjC$Klf9syl{T4n{djkjGbaVfwsE_<(W@_DbqlZ)#u?DZWp2j}24zh22wXjCK1>w$O z>ZYgF-lW=3pg*`KaU5>Z^xwv3v(oWsbK{b3)thNDzSl{`=9M-liCbWqotWjv z71~tlVHG@&U#9EGVI48=T{Rw`BdY9l=sPPGYg}x@iuh7eRFJ|RxpN+rAkL$Uq z>%;1O9=}YFlgBU9*X8lc^s+X4;s3DgC3@slWba{WO@&8ZShm%`^6`dY_~sOw`oYu- pj61fpG+PpM&kvZ7^%fattJzTdcwBlubPA0I{RhVdp@jed diff --git a/testdata/algo/device_extract_au10.gds.4 b/testdata/algo/device_extract_au10.gds.4 deleted file mode 100644 index cf84d9b77ba13b65286c6a9d157c63b38a177127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8894 zcmc&(-HTOK6kqq;d(YgtUhhofs7+2`afKel9LL6nNE{o%K^vu+q$C-7@U^EN6O!zq zm;QkeCM1J;i;CzAiIC8+u$M@YfqDoZ!e0G4{nlQ4oxRVw=iYnHq42`+lePD6uaCX< zUTYsIq#$^iCM&_vAGD5IRHJRw_WwV-#hp2o!<6` ze+Fw@2k%XyU|vz>28;VUmE|wi3h;MHFgg#s!Tt)Wytlv1V}AuJGt6Uu1y$bL-zd8G z4d$LIOWd|FsMw$ho6z5UgXZuKly+lCA}3oX}x7Zg=)Fi&)SZ8Nd9 zt4VD{!y83g>#}H5R5`Gyw%u9Ua0>RZHo?|qIWdYVS8XX5@^8wYgg%v6H+y?-(QRU~tZ% z%2ToZ+0TT^2Jk;Yt^u1Lg1_FO%7Ol^(8XW(tngb;3tv&?K%f7M(;r2*ajJ%Q2(~^Y zs^fN1RQd3Z!qIYfikC?oC6g&8T71elT7oJ!=v$le7UN&Dx7fqa*;|Jy2lnB^hC>pq z$^nU%qRN3jKNT(L-z(9od@s=wR5@d=Xtly{zO(qkk)=*%tZ-URU@e@wdnY(X@Dp{; zKXo#mu(fZjX_fi#f0fsb_rmwJtG=>+(aZBK-|QjF%{qoZpuRTM*Z6+&EG>1vc>LIt z*uorH^?!M4cJ*j-SH1h9)UJB`ZeJhtuClN3u6mZ1+EtI=?db#DRphVfMbSw%iAKl# z?sSS;qg7ZdKXV$o=IqKbXS#cit)+o~UngsEx=+!l%dIdhU31m)!^gQJYmBh9w`p9g z24hW3uWn7;B{g4biC!?phmK;spvT9(Q@r<1@mW8wgTH*ecj)_Hq!+cj=JBEXI_}E< zrgv|IA^KR!#O9dhWmXPmj5cq{9wS5BlEtPc&dy(@oW5igyLp1T7LzM$d>72z``P;4A^T~^OX=LxLuch%@spALGIPPAVd+r;71(Z3<-k%l`GrG{xg9TM^KL9<u#gYCehnU`^sU*rLh5jL&AL6k(Q?g0waqmToj|U6Q#*6c%Xn+s zlbCn~7CDLC{J27!NWEU|c!NRN}nFVfd#@r(4bHhba!pzI}j>~&=CVQNf-M_yXC)xh%c z4a4xwZ8!0wsTY`cY-y>_yw;!j=i!SRuQxy6XFb-NXP&KQ1MTB^>GjYl)N1rE3W%Ts diff --git a/testdata/algo/device_extract_au10.gds.5 b/testdata/algo/device_extract_au10.gds.5 deleted file mode 100644 index 5a077c2fbb94ae5bc1cc05d2db230aaa68958467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8894 zcmc&(&5ImG6o1n*(>ptv?5>kd;+j>WjNl=}?1!5KF=XQgvLtSTy9N!0#Y3*1JQ^?< z4_^ESB(M^Upf^zwzX&2h5{VKoVnWD4L2{6I%~$(-_3Cw1_w>wkH%b!MbX<)boT}$QFSY%ClyuBNVSKE zYC}{&-*l|+C#R37@enNLgQRR%e@;f5?X>sZ3YG+sM?XP}xt7ov>Qc%x`*T@r1IDhC$THk+jlr(iE@6Kq|Q6Qihd)n<3D7aQiW@4~NK6~3U#U2H7h z+qpKAuSzC|-;hiSf@kE6g}v=_FGQhO*}!?_dqEH~BWEnE&D{!#O!DfSF-Fc{aMq#9 zQ?dQo-wBls;D3U>25f!^{(6Th2l}@{7k}Ne!f!nzd_|Q5ef}>_e-z!usT$rc*!q;H zj@w01<-^+xN6XzQ-cI5unVn*y#ixv;C8%XBqtz5Ak6Ry}^VuMaw_>}#A=&(cy^_4wVMKESME|C(MDon(_}tnGKF zQ`8!(!dm$;r=e@kbdEVQ-E(X$4gC8$S&P$sibh>-g<^R<@f1yg+JDAo&leB3+5d+!vV_47LT&DVQ}zW+sfQJXc758c;rSN=D> zdm{|d$I4D@wsl`-?ZJ%E<}JxFcIb%gV$&06?_qyN_73)EWbEIRmf7wdo|-W?aK^68 z8Sr$WV{W224xXni9Yv)z@)T+t%rrjg0zrv*Pa+?x=WzMjx+`mW8}zjp66?y|Aha(3I6KjiGk`9N=_y;RN~E5%22iuG7seC>R5cEnwL z?R>QpR#bVaBW^hVIdAYkXOCy&m*VH|s4aio=|@kBo|s<_jOI;v#-YknFA9$@{TjdO zxNl>=zD(q$qT`AEw=t<7{-ZzCdKG_S24+(uwvo+XVgr!TJ&KFT-|=DhHOb86Q?MZQg<}CTtrc+dTQ6LzVZl`QZ~1TSm_9awb@%U9I6`M0{Vr5o9GWow@SR*~JgI%0! z9!_YkdANOY&BM)_YaXgbu6d|vx#pqT=9-62AlJO99XaP^ytVB~OuPb%oWyQ^T%k>+ z9#p}z_(i&oEPjzrDT`mEyUXGi=}24gcd|_Z{*xVUu27wDJMcZTrM`E@{Ftv7IJMlq zoS<+5r&~^w)t>y`bQAYPvAaLPFH!Fj{1P=j!7tI*B={wIIq!Q}vD#~-wkL)4fE55KfxtAXX?8;0SV+iv1VQ!g;@ n=<;%(d96S4&%+ltUTs_E!u{4AKk?K#~)g&A`FL=Huzaz#ziRYUkK#?tN_e z2TPY7`U_@9g)qpl;?^g|#-^g8;_UAi;u;YW@9F2}59Bhia4;~i@iGDJVdGLIQ{zMg)LKJlI|>I@)t3=9hB z>db-aTwKFEon67ISOggq7+BaD@cCk5RHQhLfSGveCN8PTyBKlGZC=GB$%sqi=3C5o zB)M2QaqHA#yNOeBvJ?kS_e|#E^yCHxSp7c+HXSwthRJ)lv?teciXp^|7$*PWlAf%~ zsfG{(su{yc=K`fo zu)Oi)wFXKEuF2-J23edqJ?m$M$Fm0ZcqD~f@JN2~z$1ChH<)d*yb9~&c_G!4HA5cC z;V-NMTXIwBT->3(rA}HAr%#^E$0I3m ou$vjD&Rs`lv*VJSoO5P2F1gKeXYrKFe&-hBEP6L{TsXxF0No=o#Q*>R delta 1441 zcmdnCp83*h<|qa>1}3Hm1{p>s_NNRi3{ni@3_J|%$ZQ4{WCk6%)W>!1LPIK>L z%RgAU?9g8@J1T@hh83s2$#RU5;yBEl+{btmr(7KqPPxr_%#w__G;W^9f=BWkD<^K9 z@7QkQl$?Bz1E+f?pX2nLT*&J%Igv+vavPT>kk*>)%Oy6M-&%6A0=K#{iy#973p)ee za4O?=2b!TZxtm7}Y>o~O$Q%cf%#h)QxZ}K~u3`S?3~PZqo+yxH$U NJI*3!^P7vOSOL_q`riNm diff --git a/testdata/algo/device_extract_au1_flat.gds b/testdata/algo/device_extract_au1_flat.gds index 0c65698c9d6cf80e3e03f86bb8a84cc2f98661fb..9e4483748bcb15b83427ccc07380665c0496b047 100644 GIT binary patch delta 3808 zcma)83s6+&6~1>_7fM`_b%U_1%SsRxH?Vgv4>5ARt~_eV;v;LT#2{*9h*hEyHHnBT zwQXX+bo`iZwbamQhB}Vp>uR*A5~>YJRm7Mzjo1dCK+zJS#yFWY_WXA>?sn#8x-<9w z=bZ1H@BHVx|K8p9>-yvU`VE|c)9L1NR$dp`&*`{Cj-&ezLTxTeXLx$Lo8!z8L!_y% z=M=a9aWFUkNJjH-OTCdVnh;~uJCQ*hyQ%2L- z;B;MQgVS{#2u`=1RyJK%mk3WfO>u`!6@_D2JGHo#n(T|3Pf4ko)Ts%=EA56nB@h3R zWUQaE5t8iQDoaYOykA?5LiZrnOp}l~O~ygG{&7lBpU?JFqWZkLjz5@$R&|mK!AUAE z1t(cvpg9Q~g}V`7l!x<$vNEUWfKF><*nTvKl41!%i)E$0c%f#ZqA$6iIlgjd79D}6 z6Tv6Z{7gPRYt2y4Sh;r{_KqKdnRA}PMekbl^`_ar|7)gn&Dlw3_GFOD_mh0sj;UOV zJa?70m?!5A;_FfgM@nT(e3p(y`-5ZA{@_>~eIO>SOw7_xMf~$gBi@;RRZAOX-*Y!~ zxLBTt-;~RUU#NX1n->n?%pwW(i)0L4ETf*Trx&}GGmGES-tnd-yHHgz8EF-=va3ST zR=)a$ejRo!tJxZ%hi%zp_#zC7eYwQLR@JIlUvx*n_EIaXtK6`yYQ_9&H_EDguvJTF zT21z9vR4cEU8Pa6uF(xa*}BPFO$ON4O@d5o^SWA;)kv_`&erK9 zOLi^UwX$N}uuAg`pr!8oXpPq*7i}=)r<8bRJcCOKX6*afAuY{Ov+2AhR{8UfwJ>G& zFX|#p&&nJZJ;>23f5Uyw;4larR&0(p6*h;5#b9{y%!vpMu_9v%IiLYdfDp8&Z&L^PLx=K6S) zg~r5OHRfyx$rE!}%;e(K&v%Ss7KKCf5=AwQNll+eX=)b}lQA^xVvQa?u`nRmjU9%t zFzXhNlF*I0L>z1gnb|cF<}D$<=tO3y@5)AXXujw|Ak5FiolxJE32&$`W}`98p9pUl zzYEo&ex_4t-13^8eq{uB&UK(h7Gc~Qi#9m}9klM)>w|qIvtv-UQb5B#ik+!ZEc%(u9_&*sa zYZ9QB8_h`N4h4mG}uDl7`D+0FN@u2655B2ngy>PbyO@wW``X+WT z?3M?q*L?I>N~XU}ZRojH2ivO@zaB&X*(6k4_o0Wd)Vpm+?Ww~KhJEEhOHVB-E3>fe zW-yT*)L;PC2@V8tIWPvXYw~1dD$O`rknRMW(}iT<51?tFqc_o7Be%{ zJB;`F%|qGE$Zl#1BWP4DmeQ!Q#PDr??+8|5rdzt4@_!~zMfhm^H@<&>D4{j!j{>XTWdo8RgffYQ?%SbDs_()2) zJCBSwGHN7ZpiF%797PhTB#=mnCl`|UIEDMu2&W2vK;0*!3&b(HI2zA8lDf`L!q zD+8Fj)k0I4ZN!mXD*B6T#1U6U9L!is?TeDhu>Mr^e~`=0$%tM= zke!U9Y-d(7x+W3y1Z}~b%$g(-wRI_lMiJITM3IEyZUSXfncqB$@c9%jVq1zFPnfF4 zSi-#HDP$f;H*X4MscNLMVy4CzGE_AvGpI%y8#|2>RW(v5tg1m3{=gG#D~v8MhS7~- zYNRqX(t>Kx5UG4IQ-dDKlT@mz!3Lp3Jwxd!@6s@HS>1?vcf{Qv*} delta 3318 zcmaJ?dr(yO6}}g60aLmcg+&l$K?=%iSymggy18Dd2~qUcEEdr+2-X@$MT^8V8r(Q) z$0+MfKI>XCW2rF2K@%m{+Vv5JnAU{&U~9#R+G(w?A{r!GAK?$D=iD`>|J*RM=YHpR zzVn^O{`PXBFXH5lh;qRqgoTv}$zoXKHDQR5A_zjbVEKP6M1@&q7At}f7e2&2b<6WJ zPQE`du_)kZdav9gBo8soYkxR0F~LL=W0U$ZccdH1txg{FnyTpAQvW5I616$;x_`{MFkH-#@oL5z*fX7GWPM3y zn}}T>Q(vAKNaGaj>Tu#N;o!JU$n48Q_q-UWSqfVEoUoP?C);Hv2CiI_{d*BF<;sZ4 zRrI%W|6tyy?AVW-eA>bXPq*-au?6hSSCHkD(MQi^&QGwsU<$GdWV98m`o79|(RCSB zX46LW5zk*XUpvo~@{^w{X?fln9x0bGdY{9%4QHn*P>W;)>7x}XD8K07Z$zK<(`s{(&!_K4 zMO#Q<<%?7CUR!~2rSe~@4g21$b-#QWeKY88w(;GJ(KBXNngom##s5=|p7CEi`LEe{Jqw5fx<$>}76!cUimnguJG;<+P@~p(*FgS8#s5 zjIz_A%WFIB;;$NW&$x^WY@?^6GzJ$g(RpbUN`BF6+QrO@+hJIj~ErUQc*ERasvfKE~vQCj7u+ zDN3JJGW(TuCsr=DVbUfSj@e`2+Zc0vL8b0yWf$#XEDnmHM z;C2w_t!;^x;!Zw=cUzJrEBFk0q-W5UZ@~P9RN~t?2csJzjob=Dk#n(PTj=P8l?MBu zZ-iyOEYKeqW*&S7c^cz11?|2B3pZuBHVpWp`3Spxkw%E;3+2Q9^oYlyqe?9m?b{PA z&s{OxgWHoVT$jlNMeP~1d%uO4rIG6PMC{(qPrH%N{fCn9M2pm8-}$W_NmHHJ(r!gL zJ)`w^(0J&HzUy$9h{nJZEOk23btD%1oeo4Fqu_B0c5twhzzGI_A#jqx=LEiBaQX>$ zmyzh%SX?P{ptw60N!?yF28nQv3Fir1VDRN#BRaXpfv)aTc(`l=x;{Il@Aw-91It|~ z{=$k$E2yv24Jcem{y8g-);Ljo-ii_D*ER3>tElhjA@YJUmr>77^`g%22QGC8BV(3th*~Ah3!=KC)tP6^R@okwf*(J3pp)E%6T%Kj1}xxWye*xQ+^UHei=b z+O(icGUa@m`%y{r&QC=2=9BIb(ygQCr)RM9PxtjL7ZajTIY|G-1{5rq=R*9$VL0`( zJj6dP!JdD2V$XFMOA1{0-K`R&-Jw^YLioBBEjPSqxmk~@YclpyytH>V(r<0bk~b34^E(P4fSxZ1ck5D^U(}k>7Rzr zUd@KDe-0`ipFnasY2NoBK=GdYCAd03%cGq58NIfAO)D1N zq<0v_OK%g8;-yy`P<5vhy#=KA9}f!GQtnqzHLg#@!@)TH>fnlDel13n{i>BrkdZWu zQ7j`#^!n8wvdcy@T!U;xIYYA&MdGN$XPUudqz)51{hEzXFrK3cqRanjoLJ(Q;+SU` zBfu1ukv3d(`)9?8ieDN|ZqP>V+2QPRROK_(Mk?XSq@s@Gj1g=Si05P1mq_GbGBu>vQg8?1Q|(oMutENBQ{bR8>XnKjMxOnkkL|jgj8SW-@NyVQ90;EvPV^sliXOi-o}+A37nvX<$-yX>&+-_t zk(_LpqUJMV6D%O3B9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)c|#|f~p z`MHL~PfQ9F$KmgZr*7hsn!Jkg3oQ|<>Ixpe}waq3GD#3{E~NGK9# zsBLZ%j%MTrCaL=W3~V}Vh76PMh$tfXMhuhxh{$un<&7sxiYg(vCYvoqP1z=|lXjY1 fAZ@q!oiyWQJz1y8A7tz%=gFGla_r_^vV3d+INXKM delta 679 zcmbQ@dBQ!4fsKKQDS|{L4=vr&au$CX=P|aM zI3*`<B9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)c|#|f~p z`MHL~PfQ9F$KmgZr*7hsn!JkScq2H9fsKKQDS|{L4=vr&auHuaiFiaNUP?W{5!hl1bfC_?UY|i6|#Od+L_c-Nc@Ht^JqlDOGe=Z&Zu8`rPhB2F? zxMt#ZDi;r-(9$BPB9B9I@_%0L$$30aaV3<=S-h0nW56M$7(gfi0K-;t@&jIW{9(KK z8ShQpfpU$XZ~_rk11Csg+#@_$Mc_EDklD;6SjvP;a&n*We4KJFBDm##iOj~SZ;dEU yxy^B6xRdqfbK=pAljQ|iC-ZS>OwN-OoGiB9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)cL$ANTA zObQpr;qQqTVsS}Lc43UiDYuIew>~{4-1?T_k&|M+i_<YummfOaT)4t6b9L~(R9J;xQ8;|52K5N`M^@P4N;xyJqM3xnoc;v)naqH{DBgZC(TVI`=B~HJe!y_jrk6T|J9=UyZ z`XXAW{TQ!ZeR&q|DS!aCP>1?^5#A2>zDy)+TJk$ delta 1620 zcma)*ze_?<6vxl|Z7;#JSAsrY{zPdhiLh4?S~jR@ks|UU#8sN3&9%n5Lr_bbAkp$b zqB$D;3nEC`0;jgXDN_=cbD!IV&pDs(xtDX>m0sBZ5m>eYD#J=&FavG?*Z{}m8EmY$ zpVD0#!i!NRm^C%;emNmz**uDEnlpC@ZtHK818yJTuAR z-ZuAvX0~`dQxkA@EgYjxUc}j%h|f}&@VqXC9of)4^ToEyVS}2QodVAtTX<*3^~0dr zH^nD3kmUfoD5k@O{6R4s2VMf&qJjKhYgsw89!^*r`2LQxf5n#C!2qSBRG|o#m4g8a zd!=eP6Cc#d0OTe(M;Z}{$X*?LC}MbPLCQOgglps~xHwexDXOeGg=&4Q>Z$lto4zSj ziLvV4hpU#gTFCN(ah>>s3&R_BG~DG`!dacdo+(WB<4%LZS`^l&uxtR&yTzH=3pnw= r=!!@zx?-!*Cdtp+X6>%Qw;O#B@(}e9HRdFG%pc;Nmb-0U#2&d{tWWr4 diff --git a/testdata/algo/device_extract_au1_rebuild_ff.gds b/testdata/algo/device_extract_au1_rebuild_ff.gds index c6ec960bd6dbdadd47ef22a2f942500ed66efa97..80524d9c5e5b3e2149877a66749fd59638a0184a 100644 GIT binary patch delta 546 zcmdlW@kg?rfsKKQDS|B9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)c|$MLYS zxv2R0`uPW|7!p*>1ySrDOi1O#4Wf>?f)Q*;fG=S~HnTBaW)#O^%;XPD%ejHUQ2(ES zO^3~pVe&L)MFii7Ve&R+c`mrT@#M?QN(ipW=FiMx%#$nGD<(6t7i|8>-hk7d%^jR8 Fm;l?UO}qdA delta 365 zcmew(xj~|yfsKKQDS|^P}NgJ_VGv@~k46Nr%bOPy3$P$x=5Rh1zU3j+%SBT`tA zV4$}kRYGiC=oExl5fUI#CRC{dEG$S&Wn%!rJsV0FH(2t!cX!`?_q}`X`Pt9aAutfd zRmcls^ec!k1wd>3;2vTkyW%VW=%L8@=Do({*PDB1S}&?kHrD!(j|A6c88ZyS?zsK- zYJcFkiyd+y90OpoNPSpRgdspB6(Z;VJ~qb-rz@=6>vRWhbE!R3vl^!xv**gK_KIV- z2TrRDVHF@8g+s;ZjM+}let3OnGT_|k3ZDXV3*xn5Kpjjl)-v3s&az>Sl_CAbjzxN` z-2<${Lq_k>a`0GMLiT%2cX|B8G=E}O9e$T9mVq0g9DWE@@wSv2od`#Tz+qjA%%Po7 z@vW2-?v8dMxnL-ZTEv&eFCi6gMHs;`Dh0!z#b!O`iFgKY$SQW@Zvs`!OY?YNj^Q22 zAe+W_l1}nxMs{L1xPc{aCg{-(e*vp76L429{PQiq@A5HeKVQR4@_2RMtS1Exhjc0z4-^`TorecuQ@n|-MHO058M$O27kTuZM{n)Fd zZw1x2g|u(EV&2g76kDDY6Q3$YG?gq~IHD1|Ay{5lle!jZzfIaqFJgJeF?j@ECbOhf VqmG2<@(J=szU7gdqsRG2!f)8o(4PPR literal 7734 zcmb_h&ud&&6h1SVdGjMvjni~fgGiZzLagS86)Bd)MreqprHw^Hp#1|B1Vuzt0=A$O zLC{roQ3UIvt^}b_S0XObjSF`TQV`q~0$ruGd4A`eck=E#nK$?5#ewh*=f3Z|=bj(; z-g%*js?|4WtWs_KO%-~Sh}zV3zf-dsy*mFg(dbb9`0VE|Ed2h%#*1?|p1u0b@)C{J zi+Q6_bYlL@iPz_s&M%#rT|C>HB&s!uqJ34WQS?X^bB&J-5mgSw@z$DPd=0o2$BJqP z)*dV5Lur}$_&dt{4Al;F`H?$6tz-U+&{zlWBcke@qS_No_zl|KnkV}D481D;)&%2g zz`uCSf@&{bGxK=Of|aAp<24Jay?D)W{O}h%dy$dXin)7=YG;&~dDh%DdCpcmltmdc zd>Y69-eDvfdJ^7$tf+Rzpcy++G}l{v?bO-c1l2s=we?x=lZoo-U8wT2URBJWR6nBP z@zjaq{NlOE-Za(P=(_ICE{YCT5Wmjj_1O_1e>!9JndA$99~naK-a#X8NHqJYpe~`Z zI#2}_@nxoxc5d6v>DFDM)&a~0?A*fh`!iH~>p-sa8ZMt}p>)#s zfB2a2JI@PWQSHOWa{Q({|NYM}|B*Om?EFMj{~$xPw~h#Zm)V=zYxc03WXIWC_EaU! z-mts+t-HwFVaZSC|hUQdB!F z(Vh0j@Mo}k(jbm!MobA?asWDg$|z&f0rKO+NFnTMDY3F_-Bae{+Q+8OMwbKDXhsqS_H@H&b=D&o{pV{|flP#{1}( zPcl?{bS0=yMzXV>Ipgqzw*oYK{kk<=MSV$Y!0FaF ze((=>rC{fl)Pkbgi@TM1+>OGo+!nr|+8J{-;M5S}y+5h3)m4&a4)Xt^AQ28_CYBq^6K% zj1Snah>U`>b0)tUCirgQ(@1>CR&6yVLo_^oOoeEeY+FBqG(2kw(lC`($`4b4r8G>X zmeMd4T}s1Lekl#pA*D1-CzaCh)ams9P^Uo}o;nTE@YHFLhNn)0G(2@0q~WR4APrBQ z25ETeG)Ti!r$HK~PD`8&#)}dPCKe?WOh!s5n7SyTV5+l(g6WYG3Z_#_D44Ucgo0)VLHre1o>e)#A*cj;aN+NAEwVr`QcehkRPU7OZnkh zOOPL?=S%tFSxb-~X6Gp7hi5H8ewh8Ilpmh81o`3V{h)qv*OI z3*L|A-eYfmh378g{TQ%u3Gc_g$WZOk<=ndohfnn86!Qfem+)`7XP7Uj_Cfsf?+Txh zc^BT!kooDj`)(xn9(?m8_%rYy*ud}0W&9UIQSH%8&VPpw{im2O$h-?TgwLpU<>NPh Htw#R=r1*0f diff --git a/testdata/algo/device_extract_au1_rebuild_nf.gds b/testdata/algo/device_extract_au1_rebuild_nf.gds index a684cd03a5f7908810074b71067b92794b679abe..4465928290a558d3e562f92edd9a3f92addedc53 100644 GIT binary patch delta 886 zcmeB?yCGlCz{bGD6u}_F$i)7Nfr&wyfdNQzBC{DdnAm(gofsHIm|5){JI%e1E&pKY zvO|Bt?5Ge18CKl-#MszWR8*Y({X$$LLgGFB-28!D1{Mwm1~y(MpgnASObqo53_1eL zKn`($O&g?9L5D3M$Uh+7&(YUa!`R5&%v{q}-NiM`)7drN(?y+uMUa7kg`EMf9H(7vdDlWOr zd${m~>oab9Ms8rzssGQwro(2)Fj<9H(FD#n0wxwvg5hFd;1Yrc6$6g|^Z)<<3c#rn juF`mNBCnDeoNEHrNFb$gu(5^s2TW$<6W)A)*M|`RBNTP; delta 636 zcmca1-y;{rz{bGD6u}_F$i)7bfsug^h}jslk=YC!Ol&@$P7Dkp%&c~fo#x)hmVdBx z*`dE+c2o$13@c836TbzE<1lh^0^?Pjaz0F#amj5qV-{w_DVe~6N3x5R6}Qf1Y?pCL zPM*MVITwdN7=`GY&C5NRg->|0GM|DLiy#9b*D!Ffv4!{tOy0;R Kyt#+ZhYB9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)cL$ANTA zObQpr;qQqTVsS}Lc43UiDYuIew>~{4-1?T_k&|M+i_<YummfOaT)4t6b9ETZkIdn4<7aqww+`Dn>T*q6EThfMKmKm3wlM94I z>v5zR1}-)>7ZpEW|6qa%kO!nP0H{*Mkf2(ysUWp5l}^YR6qyZjKuD0IUogQOFxgEw z5vLdT;gK^F!L4r{9yv8p-1_F>krNZct*;M{9Gf_9eRblNIQ@POkDQzYZhd)p5b$I0d;g;L%CpD1~m*+Qslg2GMd7kWUoEi({VsV-}`HB2;ZeY<}|DS

rLzfb`yzg9&gWr3<_rAw__u0>M5kz3w1Mo7eWe5t`0E{m)`418+ zZl^Z@R8Ck=Hlo?b)<-OLw{mk;EPz))^GJeIiOghOh?mru63SkgGRpQ@TAoS7z*3%!P9)mTiU&|DDs&w(pjP(SE zeVdP~Bg+AbD5k=>on0*)0p0?%MFaUi)--Zt-J7u1@%GN*xQq|rcb zvrrDFBSx$YK(;)ygi{mP>`76rEKz1OmaUSc$4R~@nv7!#&Duyabl}~@ol|I{Bh9lD z*DSj#A=5`iVok4u^jx^cJs(5oR;92Gg~2nIsD-Siyve(;U^ E1z9%cfdBvi diff --git a/testdata/algo/device_extract_au1_rebuild_pf.gds b/testdata/algo/device_extract_au1_rebuild_pf.gds index 72911a17f451258f1d387ebe7b1e3803db577824..3d3b6e3721bf6e5dcefd0612696df5d0951717c5 100644 GIT binary patch delta 1744 zcma)6ZA?>V6n-g}t7F30bY@{BGDGI(2$m12cHnF&r7f4!3ndG22m~Et%4);>9s`_< zL#9-HNUfLGu1*2Rm|>||j4=z@4}KU!j3LIDB^t9Bvk*hfvJii`owmm9k7G?v&v~Br zIq!SUx$nI*2U4R4Q+tFeOr{2rlVV!*yD*8@h2Z}e{vC_OCRKCWg;~ zx88ASO>}5ey~s&>e%^9b&CAQH@KSwcLw&QGoL+`PSuBK_Vd8VtOq1vlB0npY!Tx^Hsght2dLart+=gB1@^|?ebNQ%JQw4;JL|9fzxU!zm zP-la;Is=*2%&j3@<(!T0N*vN9S{eIm2?He(jl6zOBTO*Y#Tv~*_;OtwD^R^*+$bch zUaMogTEigg_O6x4Eh4m*>c}Po6QvS<#)d`5tk=K;i^LViH`eL+xz<4LdWrO6Lb_GQ z<7xv9R*6ZE0&AfMvo69^SrYH|gpuV?(8v5lxsF#H2A-5h&{g0&7peHT?s?~xeT zB%$t;Sp9*-?fnu{>^+}LOf)KJYYZp6eSa8F8YOmrCSh!rxX>k0+9YwGb$uNKeS6a4 z@w}ff`H6<>O)4(myGr(6-Wq{jC!HpGqv>BJp^aJh4^5Pg}x> zY?q*|24*^VR9hvM_#-&UxQ`^lg%FXvzQKeaCe7--T=jV1AY^torJ7iguCqu zLha#%f7BU9!N(GB?v%L7zG)ZFe49jQcMx~J%7`@`T&AM!$UX#vX=obIP=m`1_MZI758E`6M?R z=R!W@eV4@BzD{cHv1alq_uwgK<~ka=4s}#Rc9`(+RMKvp(a>jT2n;D`IjbRytstVK z>*b-??Nfg(9{3IuKC!U7$G`}urbx^p{j0X=c|j>^NxZCdN%_oH{cqbP?K9Vq zb~)G7CE`#6WuEB`kym>6!|fScRQ_|f6S z&14n6RE~uV22Z+-{7jA^C-=$>T9FJcbF5W3GVL5uTRC3J=D3r~Fqb3a#%7MrEgbs` zIA%G+lVTY&B^-S_IUa0MV9pTOm#sp{F;JPpk)EreDiN8d;!&P~^;sO>Z&7h8 z-@qtoCJIytn*lH7pG;%OOw;j+BG9#+!MRHlynRjpl%k<5j|2O>G_2F;^{c^bo_kLpsXe6qr3sB!_jV zwJhj4o*5R*^LR{H{kA}$j$v1wj<$Dbjtvac^*;R8AduYHhkY6gjvuWtL2eSbbCTLU zspCeofUSk$@hKfMM+DZ@llU!$gc=36k0_{YFub(_-N*Wv2my$YsC^O(>%jUt4fdPGN5nFtoXN?R3sCMKBFy2^|| zdn0}s)G+4P@TIQdhaL^T8ya%jG~h$}K0@C|TQJq8zzSNqZjP?=9JhRQE&4gi103Fq z95a^`?;yvMt37D)x)Ir~z(evi9n>_XOrN72p|ntp^V61h@!&*Pb{LX%4!MV;%HYs0 za2OxZRr7L;U!@f!|4_U_H9i)!j#MWU;|COoUaH4XIw<4NWi@zz_+A*|MmUm3$!|u diff --git a/testdata/algo/device_extract_au1_rebuild_pr.gds b/testdata/algo/device_extract_au1_rebuild_pr.gds index ef85fab2d912f31249693a241c14a51d66150547..5a4d4be97e3b034e505b94e98d476aefb636f0bc 100644 GIT binary patch delta 2752 zcma*pL2S}s6bJCv0w36og>ASYFgLM=>Cg?(u_4YNWm+eN03s41(M6W%)tH5lH1Vdl zrI!Ugcv!M{@SycT7SA4x*BP_y<}T`GF&+#d(Xzz3%X_ScreFTw@3sBXysv9tx!oO3 z1qM7{1TV*1zXJ~*0ONe*;5FEIc0;}b;51q0;!h(BAJ%tgrRL;;H0#I24(VoWA6j zk_9=DtjLld%>4jnE07Q8WGo?P6D#)?hmrSwvu)+DOlxruu}rV?1Zo)@(Rz+X(0uaQH$X;6@J)W4#0{*>SjS$D!Wp!$ZyGz^gVK1Z?)>FgifM z;vf#U1_}7viNo4a0&^=7R85a&WTm<}b42LB*0hc{EY1c!R_I1zpx zCBk20L^$9h!l{!S-gd5uODfW?pqDX8R8r}j80^~pgnx6p&fKe-IZ#z4I{seS&g8CT zjhXpuT*)1}QQwq1TSy@!>aS1DqYI=9ehm-bjo-pU-x)%FnjmEKEFpK!5i&bP$aavB z55k0WULfR?X+j2O2-%n=q;!#xZ)1ck&k^$DWkNoR|KQPG__0KU%U6l8cAW_8sc-l_ z>lrG{QDK1!Z&P9U75-7j?hs+SvVzOCy9;>87B|sF(0<-u?=k+<)IY!iEC||a^~C>i e2()H(RM^kM+Gf=^xj#H_^n>m{Z@PQwneZ3&vU(-} delta 2559 zcmajgPe_w-9LMqR^SC|FTr=H#+LkO`HHt=IicKpLrxre}9+y5%8T5w&pFx+15b0vq zE|L6V4Z1``(j}rt#8b!U(6NTcKra!5hZtUhtO&e(KD#~e{=L2%Keq3)wW+<_(8^+n zuFpzJ)6ETuNV|x%N#E{g3F*c~dsM_~2@dBU4i-KvZ=D`r>wW&L>`E#K-BROr0*v$* zG*d%SRdo!LEd=HQ7_J2ftOqfiH3*zHG2Au@jJIM~Yb9_sjN#B80!tAL*CPZr+Av($ zi=kg_$5E|x;HkMNfo=@LdW^uIofytr1U}h^VLVRYKmx z3I9La^yJ^E#a&Yu@izT8_Rry_V|TuQJC%2)rRhn_Fvjeuu`9NF-F8a-8Q(r~0bY>* z>Zro8cx(p8_gNw<$BC?;Ao4*kkv~onS?ed#7$EZPDI&WEiTpT3WbO=+U(XWhoFj63 zn8>*iB0EOE>*x*b$Ig>zO^_HbkeGD7;m=H7X3=GFhQ%_AS6|~F_4+juYd4m#9JyJ* x@x`q#@DkLcxn-62(&|?>qvZ(Tv&UckN;olq`eKG(5 diff --git a/testdata/algo/device_extract_au1_with_rec_nets.gds b/testdata/algo/device_extract_au1_with_rec_nets.gds index 9768f35d580b9b12a167b58ea84160347d7f6ef4..0d97a09e70e4778f0eea30fc359d2f46dae30f86 100644 GIT binary patch delta 1936 zcmbu9&ubGw6vtn7lSy`y4GBo3rX(>&`z!XxMw?dC(xgesVw%(tN^PL&K|y-(B)v&M z5G*}teaC=!5S8FTU8BXs9z=Rj6!BJ3@LW9j2S|0Zlx}L7snk8}?sq?L=FR)=yjfr7 ztGDK zWWeA&19~nopt#`mQFlV@CIeo1u*_3Ox~df`4dR=p6&h2oK4YAf_tm0FZ-kYbH`})67n|*-^9Y`;1r2#hE!JLIFkc@(JI=JRtsf__oL)yFb+yB+9St5FO2y0%IF06fx0v;Y7A delta 1432 zcmZ40&wQ+#If{Xefr%-CL57iu{V@X%13v=;g8%~~GMj;eiOt8;iGe|cnbpp*)7<;m z@(-3SJM_c7kYDObmYQ*Lt}vm_%fjhpAO;E_DX%86U& zJGPrRB`4qG!0DdJ=Quql7xFqxPUI1v+{UE|q_rmda*0h|%j2NTBFMnN!p?v&3ck_sW&CuZinc+aRei>ef{pX2B^bA%REomkb`sJBoND_o?BLT%e6dvdI9CWQr*sNjIyr zxc#YRe;2o;oC_XFAx}J#Y<_qoe+A)@d>4*K@=**P$!m#tBu}N`k=&OpEr&BDeCWg@ zskEY-8K=%8t7o(0lAK(&c{VP&%^F+q6c`a(qZudf-=;A6^)|W5qT3ZVJ8s{~I@xTm z-Q+KO9443Sb(;KbukqwsUhc`)x=beT;^&)ew$A}5Z#;Q7KQ~Z~>Ev7<-pSv9Vjy+7 UJYaR3SL|oRS<-AiaNrdi0Q|84SpWb4 diff --git a/testdata/algo/device_extract_au1a.gds b/testdata/algo/device_extract_au1a.gds index 47ac063c7e903def18bd5df9938bcdc44bff5693..896f5edc5a9ea06e71f15ffdd9f04a2fe5092bf2 100644 GIT binary patch delta 901 zcmeBjyyjHTz{bGD6u}_F$i)7Nfr&wyfdNQzBC{DdnAm(gofsHIm|5){JI%e1E&pKY zvO|Bt?5Ge18CKl-#MszWR8*Y({X$$LLgGFB-28!D1{Mwm1~y(MpgnASObqo53_1eL zKn`($O&g?9L5D3M$Uh+7&(YUa!`R5&%v{q}-NiM`)7drN(?y+uMUa7kg`EMf;{@2) z{9HrgCng1oMdz`_vxkMi;va>983xOg<;9h~OJBOnxUU&jpt^p3E(xgy5QN z))v{$I$24|Zt??3hsg<2PLm%=8Bd-n=$?8mQU}vBFP{vY@ OodI9++FT)fj~M{iih&{k diff --git a/testdata/algo/device_extract_au9.gds b/testdata/algo/device_extract_au9.gds index f8c19fbd8fd9cc2435e62cf928a5d7bcbd9b653b..128913580b8e7e9f230d9a9c8c0e53dc2f119d1e 100644 GIT binary patch delta 832 zcmZ2y_shPXfsKKQDS|B9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)c|#|f~p z`MHL~PfQ9F$KmgZr*7hsn!Jkg3mOK$TQemr5LA{foc4UGQ!{|sz8 zY=#Vz>x2{$d?SX*^MvHN;PS?kcMB;YxF(x#3w>psEFkGL`I3a)`flO&8MyGl7sJ_=+9Ng7XPm9~__pL{mYk)Fg10KbfZEdT%j delta 647 zcmexmzs@d-fsKKQDS|CfY+_>OHP(hoI{B~*i?ta`Xfvs8D4`;euDU378(bJ& ziXSxGg^De7AqZJmVGxRL#f3!>iXi@kE<_hXkV1WFN+vE|aTasta^{|M?)&(3`^#z_ z2na$21}%bP9|Sl968Ip~`wdQk%oeT!$X5Hrl~1+3GFk^LU>IutqN!vyN$jtJgdg!bjA_ zew49Ev#1ampQ$Qt21Kl+83slCGu**DBgx3gE062$82+Le+>o8PMk7pe90vmZSW_hQ zipmk{$M{6t!ZojoVP-MP@McgnUVBvwH*2dej187^T4IASK~uu(;o{cNA5=*(*(XJl?Ns<&k zjw;6c*t#Xc+eIfK^V$MVN^;QCzCGmS(e?R9;sejkn24O_Z+1GAaGN?{EQLN>xk}6N zu+SU4N(cPyB*Y6{jWNItde+ob0pHP>S*HQN)3{k@01qfN>ns@2p-Un=ad)vc>cv$@ e0^R8%HUlcoFx+or=3$rH&2%_-w!`ga5B~xar~9h_ delta 1603 zcmcbRb1FZIfsKKQDS|g90*}frE+7$J2>{L4=vr&au65GoQq3J$maKL-blFFfg$3P2R;OHMxiD zGfoFj<5rZx=aR`=xz+G1;1pIM5T-!i*5k7S7z5PtEj*+Iz#--D6B!@m8mwZ-z&1Hg zn2iG#<&z79l_#&{7ey8jojjXg8CgJN@;QE<$fpm?-@BvjswziCU%qO7&lCgF>#uF&%|N!JQIh_ Ia;8R%0D8mYE&u=k diff --git a/testdata/algo/device_extract_capres_nets.gds.2 b/testdata/algo/device_extract_capres_nets.gds.2 deleted file mode 100644 index 15a993e30b28e7358d4fb53e42d1e9bc55a375c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14282 zcmeHNPl#976~6QDH@}SIIEon4PQaRpxDXnR5dSq*GXqNfGw4*T2)gJZ3l~{r;i3d7 zE>g%M3l~CNxF}SL3m2uha3LiWp=m2^7FlE=REU}(O;b~CGv@XC?z!K*bKlJS{j)7C z?GJ`;IPZP$+_a|^$-6s429>zvteym;r|cK{>Fj*dqY?~F!bu4 zAHDLOU;T7$`_%PsUjFfknJ_U_&l_(vrX~;WKX~f3Ju{P=Ll|s^&{*Cdej6HN{UL-+ z;{!$U_qU7U(I7E|=6nc4XN8gz!{Ex2f4f)yaA-N+F*n{)TRz%jX;jD3D1RoDyv=C4 z;I|oVwC>E|1K&G!Wcnz~E9?Hcv<|HKQBnNurs0<}F#k`ALMS=VTi5ZyJqbfxGi>aJ zmnQLygpv0qi>i8U2yl&$h3t?a#pF@;<5kK=x zv=j7mzU0OEMkJ5&lHc)M%P4YV#TxleX@6|ZdJ2f+f*QF_CGiND|Of#|(4xATCzKH)Xo#_lB zcwwf$uf}heGj;qWX1XrT6!B}m{4r_po9U$G1POCbm)A3c}pU&NOl-v8AH_B^8G_4-42 zVvJHF}1 z_2|E`H$&KdhR-pSyu#1wlP^9rdl6SY4q^K35@}DnZu;BgE*IyAzdP&VocmPhD9(%G z^9QC2aX!j568E^xov^=sHDmX@!kSnxr~c z@4Y92{o+nAI#CpVnOLw~w7j0s5&v$iZla$tg0A^1FO>YItrJ%tU`p?!s=H~(I9qko z;*2PHeLc@CX7>@FV5{7Xj3^{OUH5UG>EChD))jX#yfwykX()NbT0Yn1#!&Kzwfq-hKk{EhoRPQXmQeDN-$kBzx%--li$--% zFOfd_Ph2V4UbbcFb-J4a<}a@E5Q^f@Co(@}`w`zTxbG0T5Ap3xD0!vo$kxfSv>y;z zfi1sUBI6`o_kPaeoOy`xNMxL{QV~ktDo*=vSez0Wr%``G>QC3b{wz-WHWkGu2VjFu zwjaj%Z=@Y0j~Mx#$JzcvPaS7v&C;u%ouB9v*lE&`e&YL^P;&G}c7%H!#)ho_I#tj6Wu%vzSn8n@hwOL?Wn&G_8w$tRM(7kijc@(SO@x^>qcoHv|1 z8^SR5PNC#LzgAqVW4FM#AKWvXTMhmh@DoZ7^!zL*4V?vl9rOd|K0@CWd#_M(U=82a z_=EF?T(ev&Ldh%RclvEz-g{{H$u;8(CBOHuPCws(ZTv)zo3(?G<4@OX#&3S7y%+os zevAV?C&_`e{M{d#ej@e0cA-S-PuE-WsfYI|ZiJFo^k;9^z5ObkfTH*~@Qoil*l`+p zTPXR*$h%9QbcFCM=6nA*k^6TD>rV?Mk66p!aMkYHaMgI5F9{_t`EB+JbWvxI>^XE4 zz41!zm8vUL4!_K1(qC5b=D{z2PGlCb>dFv3!zd?a`~lDBuFKt#{ov-s5O-Ze$%z?% z(DS+La+f4Nxq?W-t}B!rRg<@*-na)xJ2aGsb9$coUXUl&pw_i zQAR_oJTMNEN30pY>5XHC{sFEe=od4qu&-CU(g&|0N?<9&+L_j_be;^;Q-=Rv>Hldf zy-lPv8x0&(!~Ki81#!=aXSHefd&VM3k z(&T05v}yj6B~Nmk+%q5UGkko3T?KRk6SDKjj))N7dmvL_daN&m;12HfbJ5Cp}e8sZv6}?xH;f z>!P{J)=279PYhMM(|6;TqR#eruS9*XDg<{+GlH1**?AhLIoB67SFXmhp4zLh6u+_1 zI4azor?abw@ht9Z=Eg5m^!9+!f~8ZC*o{cmqUHs?=uYS!be7uOG5K=aJGL%)hZ{*e zbz4f0yCS7Pdw-7a`!~$S9i63Q{2tDNGCnJ9^=kQ9JAGs@ojJ| zc850*O9^Xwua3{SA>UBFd7cl?Dj@pv}Q zown7P`BMCD&M21R_i&b%jlYMpyo}$?S>EFDTi#ROQhiLJPidw+$Flxjvp(vZoiXre2W5o52x?rgpyajlWThWvn#GH zxVqv($v;lDf77C&!nf7j$#-^(`8{>lo&FHI>8__J1;32u=MTj0JEGZ6UtKik_g#zM zPx8L_t*eV?*W<(&CaBEuW(l9==tW+%R@lh3Y;P;xxKhHuq1Pc?N)sxJfer6A>%(@v+~ z-cHEZmxMYs)hR0F6@Jz)@!65%mL1Z(l|B9VGd|}_`)S_s3k*DmD0yZ6j-O|DeJ?Cj z*01NAzoJ^0V@d-9*-_vAl!MqqyH(tjDh2mfXK9{jh$`!D9ddCPz7 zS2F(@B5y@`MDPEMAM+pXWBwzL`Onb!>AL5Sd;L7EW&Vw)wa3$GZA8f<*7CWZkRMNL S!HcK05hXAA=sXV&hJOIzqb64X diff --git a/testdata/algo/device_extract_capres_with_bulk_nets.gds b/testdata/algo/device_extract_capres_with_bulk_nets.gds index 42331829d10f8ea10a87b63c4b0433a17ed50fa8..9c3808c68ad04abd01d87627b327a226f7620284 100644 GIT binary patch delta 1361 zcma)6O=uHQ5T4y6FUdB$Nt>lfn&wBdnm(HvnrLE**2E;$*fuQ^rQ{OvqIl@Ri}axN zR8&-yQ4l3iLF~cfUfN6XAf-n^^dPiH74e|xp@I@$R%jynLKk*thM8|>zIpR@`SSXu zc_1K)Gte)H)=waUAAo)B?K;>*GEq7PpqebBxf|*6wWTka!g74^akT>d7Cx?*5KYta zQ{_r=rcx`F$EKJGW*Y#JMOKF>BFqECTqb7h>>-0qU^qsmPfbnN%DKtnKr)d|rRkAq zp?Id0FV;$hD44qe%vR{woJvSRn=IWs_rSy9jf(Ju>su4*eH#eMJK+a!aSbowxBwP23=Fv#93Za+Lh(vvz;n@#hE|jjz?63?JXxLl~iP{j79cPwQ{9E-=r60 zd?Y9FSICJ~b(l#RKgJz+O^PzT3!lXmd|~J^E*#3@J0n)cHKsRlbD42`&tjVKE15|g M8!=+^xsjv7Z(K?Ut^fc4 delta 2055 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 delta 7772 zcmaLZYfKbZ7zSYOsEdHRA{KFW5q4y!pi5P>S`^fJ1Cinl6fEKeQBf*dMFlBPK?GU% z#S63uR&5cviXx%`qD^Bp5!zq97{xYC3_-KCrfH~`&Ve8OAi z&izlF4R$Ve4i0g4zV;5Tf7rR%`PkXpIob{X|N6MW-|MYG^9wKgw|4|n+YeCXpfqGTLrLwq^=moH~ejpuB<#MxI8XFK(r-C!WB)sJY^>L=r_ zAJL2mizg7ph|uiM$mjlqM0x;GsaP}4NH7t;G%^D_WJV@WBqYp1G6Dh#I+)%G}OPnI!ZGG(hL6P-f1LNo1T1ch)jpM`MN z`W|OjOyTT5Q#ji`m9y)nQ8sD13_~boMfzc%*YUTFzO&6`cKj1!oIZa(3}5&OTkm*~ZnJT^>hSTO8G^Elx&zJk^az z53ZrQ5vgGQ(HwZzJtw)NSHs#%!jnB}Ildg|e0us#oFmZK0j|KuG0gK1}6o?pDsu z-^SS|+c;ahowLztl#SUb!*d5^MS5iiZK+;`^GT{#n9V9OLZrQrc3zS}atr7K;(9k5ltR>TRXwiS)Xavzg%RxH8WE zTE^L|6Pyh@$=OFIDcf6NMAa$EiZtRhXYI>5d#;?b8!Bi^^;-P})vMTR%9q@{iIwy` zBfhVsthh@Tp5g9kN)>fa6Sl94v&Ge%jXKNOXJyOQ5g8Y# zbGBWedTsie>Q$_`_ZzAkkxs9n=Na*H4QI}wTAPhXtRtuh-_$X( zv!0Rb8yM-=$jIA`jLd5yCDmtFGtsB`f(4g}VGu7<3tNb3Y8rqiE!0m>Jg_fbp{#f` zMqZ`niW|G8m9pa2Qr}8hv8(OZsDBsn1NCSlRu+fR+_vQHZ^TaW!X@}PYLPxq!GMz)&z$razSx8gCoRm8Zs?7aFv3ZPS4%ahi`L?$>MYM) z(H-MF=w3TY=v6;wRx0pZE!NT@I9`JX@#5MHcQvy)=+T{ILU{7ftPWQR*;)lQorLyb zI*c5n!Obz^+Kh%_>iWa8)cu~2tfwRtX>_<=Zc_i6 z@vu@sRF#B=Y6)hI7I)kv+&QnHVuX4uH3|}HC3IYpV5lEj@~1`xwZlX3rp1KqS0&tU z)gtM&E0$#r9ZhfR&{jP?B^=x0hS{m=QF&km_@W^3!<=wvG%zXMqVpN7VI;)MGw6l-0VqT`P99 H|1R@Cq^TlF;!q;OmCX%wYW;r(HXSxYhRJnYiU__D!{m9$d}D^q`?zLs0sz*h BIh+6h delta 374 zcmaE)aZN*kfsKKQDS|A)$)L!9RwA!R)921{qdd%D#k) zV%0x6fl*P0O^T6$fq_Sw)lmRQg8+{Vs{@$9Fu9&l3BQ8*1QcxE&v=U!hwbawX>I%D g{fttRXEO6{HsRRJh{F|sII}1BGWu-3&ehEc07qspY5)KL diff --git a/testdata/algo/l2n_reader_au_p.oas b/testdata/algo/l2n_reader_au_p.oas index 83a8f061a2b5a6bd09714f4b57d27748390a42d9..c2a0d61bb9c3ca2ff0d65019756429be494abe9a 100644 GIT binary patch literal 1560 zcmd^<|5FrY9LM+BZ@0I5%ii9xe2YR5zx2<_dzql-Y5eFLQOyivd3tBN%5?+dak69 zDyH|1QTmb+sh%NzXYy&XI;WA;&lS~HG53$m6&6*`xu}Ao68arx?ugXMHPTJe$g1q|L1Pb;`+5(4m~#{khs zc1mb=RWAThGh8(FZ{K58FZr?+Z6ua7wNn33OSx!dsosVB>E;ou`%k<3N!IxIYWSIb+9cs_dF{0>O#7ZQQ!)pU;_dxU@is+@HAz|CgAa45)!opz%Il+ z&rk>j84v{*MF6X|__ zw?!4OOEVM{migxP!#91-#O7!6d;1qpa#>Y)&>((}`gG&X4ZY{&F;?U$TYb%m3Ho-J z{xkTK)P$%jon{20Vb+1Rh~W`;c=sow^K~Kb5*FD?P}q*OdG`CY`HG?8s*P@Q7EzW0 z1Xz}mV#_Dp<9o@E_ENqE6TlHlbINRl0JJ9;EfJCKQ@;BEZtz<=VH0k`?SF}Vl%=S+ zc@Z}F)5<`o9;7HQ=VtRc-NIYtvme|bHNNV!vK_waEyZ|5a*=_}9y|NBD({-j>Z+Wl zW)AlsOc{|;_n#ykDF^#4)=RpnIBMp_c08k3y5Iap#7=`HfP!ei3UXGUS%G8)j1^!S zVg)Z&;8?+v6_l(MP=wu6zOn+L%SaE%&h>CI26n$=*k&2{X~H`f&Dwm2&z&ix#oq(s z)SJ~a-Cf6zK6kbEY8(2;f}{dnR0l{G;;`H5I9IzaargCa2kKgrzLBer)m877C;9{y z=%t#T^%)Ohb7sq4y7z-xZLT;p!_c50>2uyl758lo!*#(6yzOb=ycPNW9wyCI$7(y( z!{*xL(T{j@(|0k{(A#zF;4Xf2%+x)4cH0-`$>a-YbVb+8rjZUlzr$8pus37d$P<$g W48AA8MF4_8I{*-XbpNXbL4N}p05Tu| literal 1604 zcmd^9O-oc!7{2G6`!)B&nKSp?0f)Pa(E=;dY|$=rZZ?oJ;vKD47yBd(r7}>a$e>mc z%%Y+X0^RiC%0*e5=o&(`n^hPp-9^N-2owrZi#liKjyjsZptHH>dEe)Kp65LSQ|H+2 zsU4XXC*|l0K#eXvnhuxVyDw#d*mcITz_uR$)fs-e;xEBV_pXoa- zNj>hVv;92-A=KF16oQQx5SvDPD&5_L#I&8INsykjyHl;Un@n`HXPh-K&0vX@XhPvC zR-zH%bp={l<*?BzPPsr!5_8RTWjD?@ttkccAY`I>z4Sl0yMw5E)^OQEH2a3A0r$ZE zAdb^ozH~cIa7iWwL{kbdl@?GpL$pUrPOAV9?AN0tr*Mz>3F)o!Leg;sEdh$cB&V+S zYAUGI(-^u*=SoOrb1NuBa)?_36VftMkt@vG%t5N^iIurhkFV;XDip!<(Gk&az&;)o z$tRwh1#{qgy$bUPMj^Q@7U56fD=gM293*oz)iU@{uX1@5B}4MOc}-d{XA@*dVXHpo z#}c}Z{qTs0{hC#|Z~S_>MPXI$hEOecT_QtjS&r_dU|*wh1=VjTr~9mw<)X);=3WuV z1>r6nH?9hvRuC4%Vfx)hF0s(lp+%}ZZ$^zACjw8)TQnwn%lq zq4WsS2z@&C$Wz86{s$u4J#A7esgUU+e2I!0nd4`{!3+D z2q!fcl&Va|$yFtB1U_&2KCSNe@-YVX8VZsawHY)TuF$KQZFT8IzVZpJZs1sUY6&DuJ^ mUIcqO_7v=FD9sB(csDhGQ89R8mV$NdGQwb?5G diff --git a/testdata/algo/l2n_writer_au.gds b/testdata/algo/l2n_writer_au.gds index ed3ae89985680bc749def05202defb44cc35eb36..a2dac5c650d1b87301f79e8ab6a4c492ff0a7a71 100644 GIT binary patch delta 1143 zcmX?MI>o%6fsKKQDS|B9A7<2@f zfgIuhn>I+Jf(~0ikbgkDpQEpknYpH|x{GU=r?YFkr;9oRiy#973p)cL$ANTA zObQpr;qQqTVsS}Lc43UiDYuIew>~{4-1?T_k&|M^ZDt=HIVKj|`pWRgy<&;R>Ax6O zoN}Abu|8$OrE&8q4m^^_xNqXtxs9)w1*fqN!t)vHal|154;!0{il484u!+xg*u(2S;1dRo%3<+}d3nrX;fe!F<4T<*;b_S{iW~j+`MO$zNP=%N< zBTmUh;`WT(z-(3jpMgz>&5&X80|`Y0--uz7q&yc~+IX_8q>>q&YXY>Kh^)o|^p=0X N^+>@@d2w)}&o z%MSeov!g;7WLR81^9z-vz}BMBLEw_h3EhP diff --git a/testdata/algo/l2n_writer_au_2.gds b/testdata/algo/l2n_writer_au_2.gds index 37ba8147196b2a5aafc2120c7d75912fb4988554..781c1e7d262b6a6289b2c83b194d4cfb4d0a82e2 100644 GIT binary patch delta 1975 zcma)+%WKq76o*f4GIt)@(iR;HR_B#Iq@(kwI1E~4I*Af(GeaB3VWb2E#g6}gyR6%V zQ18->sL+jw5Es&g;-(8%t_5AVk^#k?E(Dtttlj)>nnlRrJKs6yUUKiFdtcT(;>1{& zCKMJQ5Tlbs!8>{In-YvKS_?$S)Y#?5dhN!}*3Y`}ru5`-&!LGJ_R^f|y54Nrj@flw z%f8wQLedgMe24{o_%I`ns5qhq!Qmc08;aQ?Z!fpnuH9HNXXdK43$-)z(}vlxnx<p1gE;Kf8-#h`t!Az>&kWZMe%&N1vgXV@E8vG-8L9@DV*K*D}#pW*tx z#&Ew5$Ls^Y1#4c4WA-wRXL*{y{nAOyHj=QP|0mg0;h>$N?}+)mVJ!NuN6#wI{5^IN zw)C&3e_^vbek$gHADE7EZs_(>Yela_o`=-G+{nzms_g?+J;@!gS2j$JEE{Ax%ME)a z`sfA&*rwy^*7+beMI_A3h*-_V#m4D6+G6oZ!d_*Miz}H9bVL3=f;Y1=|Gu>LwOm=s zpGo*2*MROqe(OkZV|ssy7kP!mw|wq@TqThxWK#QlPD~c^rTsA6+vsal^b2dS{XoL{ yy2O*P{^UID_g2Ejrm%MxGk<%kuAzp0Y8FG$E4_naxqJs6Y4M`64#malj2)l=iWQx=BF7KLo{RV7{cVY(Ihf{%I}z%B+@KIMA^xToie-eS&)sL zy<4)go5d(g*_f1Kr6jSjFi6?FXLhIF?|I+%oX(eB-Cvm_jbwS2swLU}K!xNYCzVn2 z|1&vcZG5Dk$grusk-e_5^yy1@@S^49crH%WD&+WHGFX?!Du6GqOAAoDml9B$kujH% zG1q5Xr~+N6T;r6>;49lOjBQkK?DtjA6ns@f#kG>^9n9R;aOSH(TeicCxk z3vib+ffmqV7wb?Tu)(6QMbAjH-itA4#auxNk_V;TFw%M~|G?y%yGGqXAE;2%2K~{A z$!UKZDRvSq2I+sZc_)8dWB*)t@V@=peh=rh%@v4GMWWM`cQRKXIuuX%M>=z}IuVz6 zV(4jk(-VeT+OsBFzDR??32z+Y8LtpeH5J~G`L ztaR{(sdC12@{{Q`6=&Y3<&b|BdY=olP@RAiXrVw4%u5QitUzn8ho07MeON(()=d)@ XIna6u!OzwuxS_n&z6U{fM_T#NFk7Oa3F~$; zrYOopu~1THO7&dfL{VFk(L%)RvX;XfGBt>zPJ_1izl#mEgrO*#K3$xy7sjU4eW_$- zI5RLB$*Setgj&yKBV=?D8O@|yoQ<)pQkZ&l)-LS=jf-niFNTlh9t__bbd(m84oov_ z%WLKlR4iXIUqMWaTdJ^D{-kRT33=8EnRsK}#HOn@EG*k~gp=JHs2Xw5*~E#TUC)q^ zFS{#{MSC#2r^9R>AMzAOJh)KtwYMoXz{rtpho{kk|TQ8~j`U z2GWU-%55AtzZVNHNAR@p!GTSb$b*Ab$ZlYEYY59O>ab5btQ^IjYdY-k{t9eiQHS|s zSU0c3e(JFEap)=D#RKr?3R_|~hR2f?8MP>u(#Nop4Zk%(<&TjS$)O#GjX%VqETJ8E zF1}*!v$kI)dH8^j$MSCRd-RkQ`kb3QBkyR762$L@!rkq4vgJ#B*&Eo(O8v|F5a`HC Qx3WYmpK-#RtJN3QzZ>T>4gdfE delta 1989 zcmZ2s_7@Dy3<3-c42%pc$ZQ4{WCk6%)W>!1LPIK>L z%RgAU?9g8@J1T@hh83s2jo(BW#c`OqS&0dcq#v^|Zk-h@cyumd#Upuv4Y#qAf3aKR za_nRuj%r+To9}T%<8i(NIys+9YVvti-^o>ipK*GoMQAThxd`D%oN_1d z$XSR)x)X42h^K43Q>c$OFu^k5ONyIsh|I(ppqo3yW-`{}vWX88Fd&;$j0xGpfUMex zplTt6*^?JY^y3UAH%Z(fxJ_~9aMP}Doaq664bC7XzKQAjv!MQe`d-DRjWGB9A7<2@f zfgIuhn>I+Jm=2qdpQEp{L4=vr&auWJ#30SU03k9yUG@sUyG)B#8rT+Dt&# ziRrNU_&NHzYMAI4XxgeL>LlqWt22P)7#SpBa>igejYNecg=9^LECWKP5kx0QQk{WC zkb!}PodK_3MA+Cgk`hzmlT&kYbP`p7Hfq9s!idu+TtIIjV}vikc0xk}qMsE@NQeM6 sAY<(MnQ+=K2h@O!vFm5Xsb2%A0U2Z0&w^9G5l{m%M$-=ra~2i`02)Uv*#H0l delta 100 zcmZo--Nqcnz{bGD6u}_F$i)7Pfr){Kfq{XSK^d9Nz`?}kWJ#30SU03k9yUG@sUyG)B#8rT+Dr_L z3?e#gK7NkAt{O%<2Aa0&zDDXmvw$){7s6x=Au@(Q85ThxW@o_bQVupYAID%%xZ4+?0086cKJ5Si literal 187 zcmV;s07U;EiwFph;T>8418iY)X)b4Ea{yytV_;&6V31*CVt>fM%^<@d&LF~|j?8A@ zU}E#}bYfr-VP>^+>@@d2w)}&o%MSeov!g;7WLWX&V`KAi4EAJT;b353<7HxCWMJcC zVqjp<5nyIuxOIR53_vvh0tSX>6$lz84g@TM3~>ESNctI7elRd3u7J=TI~W)(8W1#0 p97yBR&v5Mq14H-|2n|vX(+8qq;y@a#pB;!<7y#e#Tze`3007WFOw#}W diff --git a/testdata/drc/drcSimpleTests_au5.gds b/testdata/drc/drcSimpleTests_au5.gds index e89e303303c27ad24916b01fe95b98c5d9d57600..60b7fbc08617d70a6c368b405d2e9b4e63cc1ae5 100644 GIT binary patch literal 14062 zcmc(lzi%8x6vxNw^Il?^$N|d&#flDbi4)~GpYMmyITU1ronSC$C$f+UNRFjgD3SvR zU6I04DALeTq=O;_5>1K}6cjE}SV%yM6#M}cR8%Qwh%Q;?yYJ2JmJ#WE>EDZPSpKkyBGoI>K zV+DWt($ex;bN0jeQ4_YpOH#P#(XYaK`RspH*8P3fc7 zuWz*0H^()dK9kz*RmU-(t+zJDRpzKtnXEqMf9}Dc?_XMIURcsc@^$~p*S(1A_P2uI z>8DVohBlST{uOKHd;R&gPGs$`Qk>M}g{oO^w$(_%uN0>$_35+KdSz<5TAmEA;^q_O z7kvKwR1NCS#d>*~VgY_H6|41{Hp2DnMLGO{+=d?z-OHK;v{2BEYHFjP!}p{nFAd5Q zo8)#vlY#E!AF+b&%q^mXf(~&~la~hN#5TE2Y!lsNK2}iHG?h`%Ax>)Y(x7Y%ky~Sk z=-z6@3c49hWfXLXlbXCVD4Tc5t$CN|mPcX*-O3J8LP3W(smV)&a7k1&NK0z0rk^S~!=8a{VC%VoXpP@{s18|t# z_ClFZA0bScP&Xn>nNUw7Oqoz;Butr5eCGE^p-iY_O#Uza`-`bP zm4nruXDHLFJ-tw-S9^M)Ot1FzLYZFe>4h@A+S3bVdbQ{IDbuVy&rcc6J5qRO*$ZWQ zwda788}T|}5d3>T2p;E2+gm{p=+8#Y_mA^fyQB3m{SKsBnXE-iVqs+0dRVDAz2ACR z2Zer7G7JjR_LfqITc98{-^)`Rxk40BxWBR!D=0WFd@o+TM-)&{93P1l6dV_(cta5d z6cnef#tI6K3sbzgOcYR1lz)m96dV_(sNW$9C@9WlVg&`qg(+qq5d{Rc z7H5b83W|$A#0mjdPdFn-nR7EnJs}r z?_|&lckFO5YQC4JIQlhFK;e!Z3`Rl0anZks?hGCh1r+XBy)+66jtf(q%n=0??${q; z6cij6rYL<$6i~QhAB0g*a9o(8ai1ulaK}CeqoClpFva{ZQ9$92bz-BS;J7fw(iNhB z!X3LPjDmvW!W19hBMKd6zGKH}&3Eh-t@(~!o;BaG zKeOgLc2?GW$DYWV@7T>)^BwyTOTKdlVacbOk7stD+HcKwtlHLm$9ikccdV4we8(DR z&2P9>Cu_cAU9sjnRs?Il<5+IVcOHeq{2@JH>m3t%{4+Zy%=l?vXAa*3L^~$B-yL*q znXtG-qpWoWI2jini-lcy#1?kpab4JjM}J`#t`Wj6TuFpoxZVi6a8(j@F||wj+2`4< z=(R+%Q(+gbmclMvQ-xi)@(R0feHM1%DlY88wO-hTI|8dqI8Tcza`&uiuZqmOrLM)R z2GJZboGY5SqtS!SA#0s0()-ULJ1CsH7l)bb0VzJ0xfheAaK1}B!}h-y9TZ943s;J) IZp{L4=vr&au@pma8-*bTf#_3A?qL23K?v<91ffBOH3}yHvG`;=5l^t1XCe?e zph1&2N=Q!L#t)&vjso)Q#36i;SsNvQjs%JoNJ7NGj*@^n3MdXT3nULR>!PCM%rCf$iu|gCtpHhM<^h~?;){M6d~gB>gUx_et5@(&4m5R`9BU>% V`JJgIkapl^5oBOsVFzLs1^^Q}x(xsT diff --git a/testdata/drc/drcSimpleTests_au6.gds b/testdata/drc/drcSimpleTests_au6.gds index 752f13b5a6096b4066d73e1403e9fd2f777a31c5..47b06727f57eba1e715a4ce716ecb33ec62d6b8d 100644 GIT binary patch literal 4896 zcmcIn%}*0S6o1{8Y15zq(vT>G)TFTzo4Wnn(gaf!kowV*+887zwFhEIM2YEvg9#kG zc=O=R3pcMGJ$T??Jah05;NZyaPxJ)3^h?XAB~ z1CB5t85~ifBR0BQoxV{amAW=4=qko(PNOFreOSCgSQM*C zGfNF-l05GCO8I1xEK#b-;2JVXH;brHH3M4p#=Rz84~Bz*|J1asKzl$8Lw^uIOu#QHN7kVn$Ni}5YY$i z?;fHrgxvK-Flz_upL>5Lk3q)jbzvm&c5OU2ds(YLTBC@EZJVX{ku9=0o$yp#G zi_%XIk%f?JW^p~qSs)^do9{eC7DBF>#l${mfru=w6+J{2Lav#`=niLrh%Cl`d5A28 zTr-QP$yp#Gi{XzRA`2nc%7X672grgWvM}a33qTJM$U zyIqlWNA!ZEYfAMM`<+z3y2oX{4Mbw36E24TdTM;#; z*@~z{%~nLcYPI52^+n#_#O-6b&<{Y&Ej delta 292 zcmZ3Wwnw_2fsKKQDS|{L4=vr&au;FSlRFqsPHyCqn!J%|hByvqY))W~ zXPhj^BsE!{Rc*2$o8;srtm;780nFaO24YK2He-j-d!V!v2ZVnDO8apF`Am|NuW+hw jcI5iQHu)vH?f^Aurl33AzSFD$eJKa6g)3YNvT89{75_T_(~142ULz~==nxgjBh5GM{Cd_YJ+LW&T7Kn|QZ8A3v0f`|I*>FVyOo!7lp zGgTESTkh$q?)vrXdiCC`*WJiNv$HRvGc&XE|3I_oF@*5nMe*NgVb**8^3w>NI&$=> zi{DS4`_nJ)tv>VnC*SzROV`kuqw;pAJ#T4g>C+qQ*Dk$yZS(T_XEyLAnp;4~duSG) z$9tIkZ5}^@|HA(Bo|r`^(Nj(D%GHf4n=f2^{)?B+Er0!1|J%E-?w{Ygy}Nh*Tm4(F zZl7)UI@{eiPNM5UyBqYo(f0Dng>z@m#w+-&_!uY9(_@d(>a~(+t9`xGz0vAkzY*^w z>=>aRhDm#c9_Kh(8+)9nw}qQ`uWxS!@m3rqVVfN%@YCLW4EbY^67~Y#jGg&mbcVNC zzxeq}=UPz`w^lAJ-|p|<++C)9dk8HRYqW8Vy;rvP`?ofC`ZxA>Z?l@m(Bs9L@v!DH zyJ8^>Xz^s)>e%rkgTaG6IaM(pePi2O)d}gl2vyIYOaM zdK|7@-psViVDQ1+!QlQ9D?j|sU@*Y{PRsQ7`%6Tgum2OBYI>ocv|C}EbXVI+tJ7`M zJ^w)--a|*j>jU(urZ+(2wJ8 z!meJ9dWPs!Fg2CUF??LClkrtMjkQ0y@@aeYy+=HHXZ0F^k2}z8uzQ|s{EUBs-mzCNuYYy}-?8{^S~$t>N_rRZ z=_S1nbNd#rR z4OF6KDtz}oi*M;QR?g!q@X~7trDgiNw`La=LK|OUvLYps(X~HjC6N{1Ka^E*uuVo* z63r!%6+)MeGb&ONs?Y6bC86T`Eu-q)WmKdjRBKCFNvQaK%cz1qMny_O75^WS}WC86T`Eu(tuEk;F3LiO=>RuU?{-!iHbcNi5Z3DxPpXCmqFR`%P3ij{yRh3u)()PglR@%OIm))zRBkp&=1BFJJG1)h22OsBC?+4cxQ||}Y zJ5%om*I!faN2&+WMEk)b5<40q5(_l*h~*&-(7|@g`(yS)V-f;~vY5n_Il%VOI9pjc z2f(8j;S=+_v|k=hl9j#5lR@4l?T zF2UK^(PXU>fkK&8GI@%ddSnq#Ru%$AN_XNFNJ^3@EZQslWAMWxJ-n?BWF^jJ(_8@$FW49JHQs8m`^Q>OZ>9$A5HbUm^X zs8q^ox>PggYs%_h2*-8;pGQULlkM%;@5DhIb=c$Wv7XFEVN`t}JT-rxJhdK$e)>fH zJ7ha<`!VmK_>{YlRUq4Cnqqx8T?fTQ%lIEJJ2z$lE9^r;2Q z$}w-ebYs4MQoF^AGn+I$*^ytJu9ux4@N2Snt>M>X?JDM1XzL2H*JSHj!mh>AwS--Z zooflZ7Aw~hb}crpCG1)(Tua!s*tb@&YqD<5We+D|+s4pm=MH`ft@s3>3forT*Js-r z%#U+Zvu_ku_)gLY&#t%xFJ#{8c{*2x`~`k}@&{+vPyYV@QBC=?ugJChXf=vjVKf4h(6msqV$G#ZX4fz-A{>`2R2w29qm~BmZ^)A`l_VM?%#M~Hx zzLNBvqp#%G@-GMmQLx$xlLUXuE>4(+S1xd^T9dlxt)O@ z;7?EwKfF%Ab{*nO{q*D4G-<9v%6eFE1`8?cxeWXq3(vs+l}45{i65GNANo1xrhp=q z3eUcGfQ0J@2S~W4a)5;EOb1A~_I7}T&m#_y@EOf|l5}oGmXYx6`X6hE$12Yz7V_y; zN96>5Wf57M_#nUR7dga;!XG`h%fpd|xJy6q2+XMBev^`Ku zN!tT;fTTTmgwghVJrT>Vw4V5bM?AVn2wgD5PC)$y!=hb(z$#m=uYA4mP<^esAXv0t zp?&4!%8I`7F>FO&xxTQXuUt1-(O0eqt>`P)xmNU*>vs$Kn$9K2xW4igviCGZ%XF>~ z)rqwTjLPC=1~Y=~*Kt0Oa>hf(%mg_qiO+Pg%_f^!co21p1{` zGXi~Qiy2d!?9dT3)8-ERykM=Tk7<;!7(d8X%{0ABsg5Nl5Gu3e^kuXhl2Dl)rdT^>rODd-|}wIHa>vPVb9 zE-UC_f>2qOW5r+@LD5T*<$F*;^bkEp6ha!c)?WLlJ@~Z0z4qGYU$@!w{+H`ZU)ovW z5iZv@k(cK3eiMes6+$c&p@}S}x;$0uD}|UfMJualDUQ6l^L_d1fr74%+N~l_oBUpe z$Fp^Fg}p@xw^vN!sYyAgbiaX@+K=o>LP!mIcBVmHW)}Q4H27U?LWg88^rZ*jgW}$` z0hp6TK3<6K2tb|ULL&ejl7sL;**^NvcP9Ie-a}u-y=CYtS%c^d6NAczxNX5ZZ8{9u zAzTf}*hqT=HmEhO)tu;~|P2 zT4YJlPo@vJk_Pj-bB~{ZK&Ol@&A~8M2_DC>xrWm{KcTWJ#Sg z3w=@VHLj$aSjzjvQXOK;xCs6dA4Iof!g%g4(N)KZ$BRSk#7TT+1s90eiPc}iv7+r# zDK(rw!3}5ThO^)qR(s~`L_Of>~1 z1#hosLBVBw?k)tNRk8-{7tJv{y%>52`%n@Q$w6pUHY)5}#ne>&2K!P15yj81;I|cb zT}6M%8Z=)sQ<3Wf>9U%Q-8wwK#T{+z=3gU?cw;wrlx$8%iEHk1M~R(j((iFcrApA)e&NyLsWu`|WeuCx>V_-&lv iram8>ejI=`Pk54w23T|UQ*OlYQ%iSe^1qqeE&c)aPoOIR diff --git a/testdata/drc/drcSimpleTests_au70.gds.1 b/testdata/drc/drcSimpleTests_au70.gds.1 index ea3998d16e8dc18e13d095b6059aa4af50cdd7a1..74f0e58d89e4db724769371cc01163db58ec0910 100644 GIT binary patch literal 91124 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

Ig2kfW(`YQE4pw17#z*XjzD#2& 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

K-F1#F?xF3D;J0 z{8Ks~M;MWJV7$7^ek5|-=3|c$5rO1*hW8lbv#`gQ{3jtx_==J}M2?&68DTvAT&dyf z+QV`A|LZNQLXR=t?de@$Egwr)9Oy`UjH(lvyOVa8(qoKwQawhkBf6-x8z+8p?y^*5 zMi^&3pUaHs_|m@o*|`%8Fk-I6RxZ8stHl~~W?n@lAJeKzypaFS*OiVvM$8p3CVX|C zGwm*Agz@;xnNdAwO0|3*H=R_E5q^xVTs=nkX`L>nbw(6sR_5R_FWE`LAYX zAgV~YzL62N=jwZeiMW|D?K0(EP1GDP&M37fy~|+EDSB4x9XoVOr>8{Gaev1?!U!E9 z3EjXrBgZ%Eh*O1 zGjxOHGjcqnW0_@nwh3Ez7It;iwFkO&D@B(P7Kgf&Ax5yKkLcL#q`Hi$LOdI&6hn;A zFI6qkv0Kghj8Ep-wtF&X(CTfCX_v1DX5s2Rjp^(InfdGk`A+3}fbr<J-m5c{!U>kj5xgyVTLHGViPVNt6MI++=<$6;dKEwCWJ*IV_Ajbt=`OC(CL;jik zf&9RF=IXEWkClu#l7F~A{FLyM*?*PQ&%J;0`aA*91HTuJG!Amf%eT+L9##*mpbSzb+S9O$*l@9Ha zjQh`~uIw=~0~?vCbnGz>)(XYA|8~m0j;!*H>aQ4kIwC{(LFPF1Kr!y0vs)bpE1Y87 zKQpw9)DMWc=FC~eIO0dJbXGCN*z@CHT~mxbt97M?)rdP0o+#H9uW!og!!!0`4QmH_2&H3XPi$&Wyi)XLp^kN$FE`7)5!{wN z@mbi@5wVWV!k!=FwP%De7VD9G#GHZkV>P_D7V4e^{#>uu<+{qpUZsf7>xz!Ibl(HU zd4KbK+3ye~C(CuEV~7^xo+{)3)GbxmbYZ_dDvU;&=^Ck%?Q=SMKbvZrUY zUR_}=;!cFsL%o^tW1O+)$9N6zS)C$sCr4)P@;p5DkyYhqe+?5}!V@-MPCb+vGa$K+}Kd=gG l`ES$p19^-4Bz)f8f4cHIe-Jlt5fQ&~J;}@eis$5H`agiG72yB? diff --git a/testdata/drc/drcSimpleTests_au70.gds.4 b/testdata/drc/drcSimpleTests_au70.gds.4 deleted file mode 100644 index d6b609d4f9d01c14503fea228a8e423b2ebeade0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72696 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 diff --git a/testdata/drc/drcSimpleTests_au70d.gds.1 b/testdata/drc/drcSimpleTests_au70d.gds.1 index 64400f0af9db205c153d3a52046a4dc14731551e..5f609de5e15724c4709483ef9b91ceb966244d93 100644 GIT binary patch literal 65378 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 literal 53058 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 diff --git a/testdata/drc/drcSimpleTests_au70d.gds.2 b/testdata/drc/drcSimpleTests_au70d.gds.2 deleted file mode 100644 index f97c70db765ab39de4bb9a058c5c14b3d6ab7887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53058 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 C1}Pr^ diff --git a/testdata/drc/drcSimpleTests_au70d.gds.3 b/testdata/drc/drcSimpleTests_au70d.gds.3 deleted file mode 100644 index 8ae2681d6b87be398488c6d0e76b593ef93418c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53058 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%0ATYGDfjj*xhA}Uh!bktL)SP3rp5?SMj@a6&DMe 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 diff --git a/testdata/drc/drcSimpleTests_au71.gds b/testdata/drc/drcSimpleTests_au71.gds index d54a17202ed4e4717215c2a612311ca17d583ac5..f89a29fa4fd6cbd18fd63e49ba6f538b35989ef9 100644 GIT binary patch literal 8018 zcmcgxO=w(I6h8C!W|B-}Y^JF{SwtO}M5j3O@-j0Su-KZ4#n6NjB^05~Up59)q%9R( zxF}M=MV5jtTnKKv5OE>Wg-8}Ix^N-l(nWD0UAPqE`R;w^&Ad+Do15m6ftfEk@1FDB zbMDW%_dIeancSq=L^AsqCFxlr{v99un{r8K_2PM=LMn6i+^6+7fBxp-^2+xwfAz(c z4VukF>&-Y$u~>XGg{%|6acNpfhV?5tm2 zTfh4Dxz)EW%$MHVZhg3O8-XcUN*h>OYPwzSNZYG)+(mbB zd8?)^)k2n129~^L!*v_gR-@ACRhPU@$J3UULY9&SmKK|}EwATxYgMmP?`^qNzfWGs zQo_KJ%ib+Fs!QFadcEScTD7+B(_+XH8Ca?|J9V$xXuCXu)kdRIX=zJtU@841Q94Vp zb1&yOJks3GpKXc3*_Pej-~aDdqU<(NVwWiA35r~y;yFk^b4$0&+|qi^tAZkr*H7Kn z?NYb3UV2qfjR;OaS(*Q|2&f4`C97(p@(@O2z~!~q<-#mtq+7A;wA`v z|9PZ-;aiSXnKx9%v7d-eebh&hGe+u9PHBCG{}4^z;r|8MuKzq%KQ*V@r5TpR;Pm!F<5Z17x|H!Le2fYS#12fEA3ok(T0~yspNH@_+V`V@HrP z8gipG_F5qKd~nUN-;b_OtPLHbM`qRmZPo65e=wf;Af5wuBW41;((@>mDMB0G@Qyz` zmZ<~Baz&kY_n7fA(fGqYPCQRE^E;6s#&)`>$9TH9zrWu=^c1Sd@j&7n-5osH7-j~X zS&3dOJ4R<`f5(gB!#IIA$RH2&jvUD6)M?uapJC>->L1n@{0lOiWIT}CgUo2v zKgpPqK?Oz5XpPVC_;54gF$XHWy;vINqjZgOH5onFi@Frr7&+z7AjnD9=V~x-7 zW@C*Hw*~nkheh0ktnsDq8r__%@fqH%XXkjGEn<1zbABlgXio1CwG z9RE?v1t&fsI(?S&yN}pkadQzAJB&8^r|N1a@9}xz%YHw>2cGFWB3EdQufM-*`@#d% z6&Hop_{KluGZe=eh`3@r1VzqhjZf_lf0L?`AdV9oI-bC!FK4vI2fx50eu4*n39tYB zD17e^o*(<;r}Jda6SOvdA-;he9OPxo`8mWlA}`DR%33^+AwP%wJBIum;yZ@?9OAQ( zpNH$q;rmU9&qBUD6rY8BIb4a4@y|lOJQSaW`|0pIix~gZy{&Mh``e-Uj(C3?e!DZm zKe?yLy-iT$jB)$fq4?yis;b-+IBJIp z^(X%^bCkJw%ZQ4Gs^AIoN;&Zc%YDQ<1w0SX*Fz;drh+tT#YlhD2^FgaH9;Uw8}MCF n{L4=vr&au)O9XCV~X&8S>u;RlXHj28$;#g+{MBAO~HHy7C{CE7Iq+JVE_P8CaSIg diff --git a/testdata/drc/drcSimpleTests_au71d.gds b/testdata/drc/drcSimpleTests_au71d.gds index 03554c7d1c53e266ca56e58a89c94cd5f438ec75..3d5a5ecf9030340b4f527a91f2fcc7b2d0f398dd 100644 GIT binary patch literal 6034 zcmcgv&x>1C6h3)*xk;yEX~%JjI*Wn>X>E#=&t+SP6Tm;3^edch<9J%QiS$t?e-`>69C`EW=mPxoM|a&1eNk?wbQNyt83Lxw_h1q+7vrp3Om(CwOi@e);pE%`f9m1Cr+x7K&IjGel zw)Cm|Q$&8A60@w7+Tc|-tC?w8&E4S?KO_>2BwVx1o2uabOQ?!@T@^hd?`Kjkt6gSD zcNVTwe~xV};8eznq0;-~n#{jiH9?d8bDAdi$23j;QK*?5jp6V=c9V$lccQ{!1Vuh? z{G1dGzsc(l5Dml|(XcF@jd@dUQf^V7gz~(=zfU8C9G(fPw|Lz{4wgmP$2iHpzNuIX zn?U5U5QHdlM!ny9!RHHe%DslvcTq1Ut;+A|Q${jxef{Vu>I-+B==GAC&?(06WjwYq zK3f$ghU`21MGS!WSiLj8{3Bx*sAGK?A~aT?#5dl*68y8ZO+fH*o<;~ht9Qm{?;iod z$9H{%;IsN9zVRLw_iz6>+>NC3%&I3j&y(DxB)+Nnozb-mO7WABV`VxbcTLkPxf^g6 zA{~)6>Xi&9V}3cec>`JDk6!!Y7o4F|tW(6ge}2#OH{9jSJ<}-+idyNh#KTzb1Q}>7WX*e8y1O5;(by@w?{RL|kxgLD;eS#Qj*0b%-O*At-Xj=>A@GCJOyGb%^;4by)~Z*RuMg`k2*EVthx? zPhxyW&`)A~N6=4Ve371^^Y$G2$rvBzF7Sr6VroX@jLzx>HsuRGJe>ta?vl^HZ}@=V z(Q~v#@L9bx|1dMdE)aZ}egsAC(!au?;RAvP^&$v9t9Rz#iIZ&eF%b~Y1N28hkuy5w z!+R|FFj0YTgd#7v<->b0`0&01z7dLi(Jf#0jN!xkqki59iu{aQKFkU55ARpt8==UP z=Z7bHJ~)_HX7LS3?l)UxWYv delta 729 zcmbQF-=Q4Ez{bGD6u}_F$i)7FfrmkgfdPo+k=YC!Ol&@$P7Dkp%&c~fo#x)hmVdBx z*`dE+c2o$13@c83lO32!#c`Oq`3#dR69<0)4D5d>m(27J!j{EdA(BiOhIoe=*3kX161XLG0t zuxT>^0|8_YR6-CaaT}XNBAd))X-+IU7P81pcI4JUHhm$B^yCfPx;%VP_k*n5%*yiv z#R;l>5D!8vo{Gw4{L4=vr&auutfK8i;fssK&(brYOP{%;iR^25vtsp-$ucTO=0VL1BAOw>)0LvSwGq4CU SFtD&QU^{L4=vr&auO{{Q}$ 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⁣NXCr0Ce;4V$WyCvj0p3Nu-oO@Ijm&qL{Xh3A?|li^;c~nH`Ml>KalMLP z$FJbUxRCk&jra$U@dnuUx@RN(-L)6vsQR8t-ri^aA0l<>{}oO~`Xsv*H=y!$JNx2p zT!rj!{nt|;)?NR#u1>nnyyd>n&}X_oeHeK@{Uv0)Hu^>5w>^x!uWgQde~NJxPl|dg zzSbj1ysckD;%`06%_q6v%`eG0sQGHY(fkw23;9T_LGqJ0$K@+dUX;H$^H4tH>|e@n zywT-5Hh|)Yfo-@aXeySct8tcP#k4C~|D zi#X2bomNkAHwhHkMMr_C48R#3CE+K!tv>^@O|`K z_s%9qxQ@~8Eqd}=)@ zzgl0)x7M5Tul1*TXg#VvTA!+y)~o8L^{aYnJ*&Q2->SFP`^5U6*blU?<{4M}Y@UA5 zzI#;yw;<1JU%qM|Zo^UfjeV*x7oWu}{l>mt(0;)_UtpirzF*jZ#8Y^l_pQf071@_Z zcXB-;pN}=W`^Mfzo-5vfj8mj;8n<*e@*b}qSts7ZE)Jh_Q*rs5kT}Z?NZjRbxOt3M zyLpX&8JCmy!^nOZWXa!7+=Cs|aRzx;J=fwr_&PQOe$^S&X*=GG^g|WvoBi0Y8o@<@ zADJKS*M5X}*}whB#&AFPBQN6_TptMcdp|OYHGy9}iG64-oik!I^?N||*6#!LLG#gyeYk^bxw-N=>*C|z6@4H7e^*V7{TsM8><0h< literal 1919 zcmV-_2Y~n=iwFp!q0VFg19WY0UotXbW@R&DVJ>H6a{zsod2Ccw6o+r83xxy}0TCsF zNN^Vs5G8Ic)0wt2?MxSjfqg8A4HqIV zAcD{pXlLG?d4A`fA(EK**EjQ)bI&=yvpiE|0)eFIpBLz|&lHGgAkU?VtM(K)7G44eLHti0fKwpP)y{-B!@FTb z^K&d;!n(h?-Xq6{;a*6bb-S?FAMSwH!_Dwz_$J&7pToa_@Ig2p-T>#p5Znj{!@oHv z>wC60{0@$WufmDykG&g);bPbmzD`^}z>nY(h|V<=;Vwv=mUH7@L*k3ih1ic*!2J+C z?Vsd%Kl~Xkfao0?4I9x%t}le-(cS`+kUFUz1*H!9!t<$<6g&z3jQ`lFS_zlI+h7uk zZuPJf#vpa$)xawtI#gW_r$F@Z?uTc?wXhiOHYWN9_PfG&;RWzfSOx3gG$?-XUPSV> z0M3I;A?MhY##Ew{eFeS;sn5z4@HI%C+V_pAsD|iTJ}pOyb1N)?Tj06yV`%hx_(%9T zTo1p6i{WqZPS^^s@x2W79Y&`N^$;EoFM)#~@rHZDN$^Ca^kZhC_NRA4j`UY(m*yv2 z2#Gg*DZC1j2X8q3TnEWV1@U|6P_bQEIRc&sZ-nQ-XW(GC72;22i}qav{k<-bzDuXz zR7hP!q;Ge^S0Hgmwm|AEvKuafo!a-&9uU8y#Ff4Rj?ns#qIU{=(Hcm8qSRyR4LDW% zB{~CA7tvcFenw~N{5eK9r`)_U1wH>W&x#vlo^{-7Ov!;9(f8;+*b2#4iH{w0D(wYF z!J)o)82?N0=kS@3K5C~vOX;ij)8H?@*S5r%G329d0G!}^t*an)(t0sG9d0^=+^+rcSRe-zsh^yedL?@dyxK!EQ0h+lsR!Q1mA%yimHhIuliN*%lwt+Wvjp|SBaP_bDE%mqV9QD6$xyDo9Q{$_DK;y07uknwq)_jaz zqxng6(|jeU&(<>_b=0vqNAjI`5uILw&qC@qLA@Q>07ZY|NF>nddq_PUroR)^S$hWi zzeDP8EdI7%2=7C$?U1?B)&PmOjrm`{iF4nEcfsr6g^=rY)Njis_&B@+j)cRA_b2>s zhS+On?$!2()OXDWSO!JklgS(Vs_7s^m!?l)cSxPYmO|!uO!9T7?zyJvkond$8C~eR zrb()k{EvRE_oEZ^`N$r9KXR+utIVqX%K3U;M&b``(tLz&)BJ>nXuisJYyQfXYCg-Z(fpPT)_ez>HUGhlsz-34>Jw~G zy@C4R%$%$M~xM7?1CZ6ZC)Q9KGL})#p>Q_5IX7wU-{R_S4(+Ja43) z?=4q$ztpAVA1DUIdMxC<>U+3<)kj~+8b963`+pKeXT!+r>>Fo~{p0MjkKB3eCwD&k%K1}1UHxO9Ie*!2&i|0F@v#3~ ze4&9Fuk1&OU-qTsL-wcSNA{`YOZKbePxh_kQ}(aqSN5^wTlTZ$U-q@=A^ThOk$ocDze}*5fsKKQDS|{L4=vr&auutfK8i;ftf){ht0>&(brYOSjRxqR^25vtsp-$ucTO=0VL1FAO@2+0?Q}mSENGa z7!i66!E&Cdc_o=8nIL(vW(Ec!m}Ud80t0mh7C{CE7Ip@_ewAXIypUaDV<{WEIF4YP IJc->7053E*x&QzG delta 128 zcmdlbc!58PfsKKQDS|{L4=vr&au