diff --git a/src/grt/src/GlobalRouter.cpp b/src/grt/src/GlobalRouter.cpp index 9731b6c935..201b5e7014 100644 --- a/src/grt/src/GlobalRouter.cpp +++ b/src/grt/src/GlobalRouter.cpp @@ -3181,8 +3181,7 @@ bool GlobalRouter::isCoveringPin(Net* net, GSegment& segment) int seg_x = segment.final_x; int seg_y = segment.final_y; if (pin.getConnectionLayer() == seg_top_layer - && pin.getOnGridPosition() == odb::Point(seg_x, seg_y) - && (pin.isPort() || pin.isConnectedToPadOrMacro())) { + && pin.getOnGridPosition() == odb::Point(seg_x, seg_y)) { return true; } } diff --git a/src/grt/src/fastroute/include/FastRoute.h b/src/grt/src/fastroute/include/FastRoute.h index 21e1d2ac3e..9f5f00538b 100644 --- a/src/grt/src/fastroute/include/FastRoute.h +++ b/src/grt/src/fastroute/include/FastRoute.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -294,6 +295,11 @@ class FastRouteCore void writeCongestionMap(const std::string& filename); private: + void convertGridsToSegments( + const std::vector& grids, + int grid_count, + std::unordered_set& net_segs, + GRoute& route); int getEdgeCapacity(FrNet* net, int x1, int y1, EdgeDirection direction); void getNetId(odb::dbNet* db_net, int& net_id, bool& exists); void clearNetRoute(int netID); diff --git a/src/grt/src/fastroute/src/FastRoute.cpp b/src/grt/src/fastroute/src/FastRoute.cpp index 7af83464a8..8500b81e13 100644 --- a/src/grt/src/fastroute/src/FastRoute.cpp +++ b/src/grt/src/fastroute/src/FastRoute.cpp @@ -1115,6 +1115,40 @@ void FastRouteCore::getPlanarRoute(odb::dbNet* db_net, GRoute& route) } } +void FastRouteCore::convertGridsToSegments( + const std::vector& grids, + int grid_count, + std::unordered_set& net_segs, + GRoute& route) +{ + int lastX = (tile_size_ * (grids[0].x + 0.5)) + x_corner_; + int lastY = (tile_size_ * (grids[0].y + 0.5)) + y_corner_; + int lastL = grids[0].layer; + + for (int i = 1; i <= grid_count; i++) { + const int xreal = (tile_size_ * (grids[i].x + 0.5)) + x_corner_; + const int yreal = (tile_size_ * (grids[i].y + 0.5)) + y_corner_; + const int currentL = grids[i].layer; + + if (lastX == xreal && lastY == yreal && lastL == currentL) { + continue; + } + + GSegment segment + = GSegment(lastX, lastY, lastL + 1, xreal, yreal, currentL + 1); + segment.setIs3DRoute(true); + + if (net_segs.find(segment) == net_segs.end()) { + net_segs.insert(segment); + route.push_back(segment); + } + + lastX = xreal; + lastY = yreal; + lastL = currentL; + } +} + void FastRouteCore::get3DRoute(odb::dbNet* db_net, GRoute& route) { int netID; @@ -1206,39 +1240,23 @@ void FastRouteCore::get3DRoute(odb::dbNet* db_net, GRoute& route) } } - int lastX = (tile_size_ * (filled_grids[0].x + 0.5)) + x_corner_; - int lastY = (tile_size_ * (filled_grids[0].y + 0.5)) + y_corner_; - int lastL = filled_grids[0].layer; - - for (int i = 1; i < filled_grids.size(); i++) { - const int xreal = (tile_size_ * (filled_grids[i].x + 0.5)) + x_corner_; - const int yreal = (tile_size_ * (filled_grids[i].y + 0.5)) + y_corner_; - const int currentL = filled_grids[i].layer; - - // Prevent adding segments that are effectively zero-length vias on the - // same layer - if (lastX == xreal && lastY == yreal && lastL == currentL) { - // Skip this segment as it's a redundant via on the same layer - lastX = xreal; - lastY = yreal; - lastL = currentL; - continue; - } - - GSegment segment - = GSegment(lastX, lastY, lastL + 1, xreal, yreal, currentL + 1); - segment.setIs3DRoute(true); - - // Only add segment if it's not a duplicate - if (net_segs.find(segment) == net_segs.end()) { - net_segs.insert(segment); - route.push_back(segment); - } - - lastX = xreal; - lastY = yreal; - lastL = currentL; - } + convertGridsToSegments( + filled_grids, filled_grids.size() - 1, net_segs, route); + } else if (treeedge->route.routelen > 0) { + // Handle zero-length edges (len == 0) that carry via route grids. + // These arise in two situations: + // (a) fillVIA created a via stack for co-located terminal pins on + // different layers (e.g. two pins in the same gcell on layers 2 + // and 3). + // (b) ensurePinCoverage appended a new TreeEdge with a via route to + // reach an uncovered pin. + // In both cases len is 0 and n1a/n2a are not set by layerAssignment + // (which only processes len>0 edges), so the grids are converted + // directly to GSegments without the pin-via-stack logic used above. + // Without this branch the via is silently dropped, leaving RSZ unable + // to build a connected tree (RSZ-0074). + convertGridsToSegments( + treeedge->route.grids, treeedge->route.routelen, net_segs, route); } } } diff --git a/src/grt/src/fastroute/src/utility.cpp b/src/grt/src/fastroute/src/utility.cpp index b0abf16a83..5e2113c150 100644 --- a/src/grt/src/fastroute/src/utility.cpp +++ b/src/grt/src/fastroute/src/utility.cpp @@ -288,29 +288,48 @@ void FastRouteCore::fillVIA() treeedge.route.type = RouteType::MazeRoute; treeedge.route.routelen = newCNT - 1; } - } else if ((treenodes[treeedge.n1].hID == BIG_INT - && treenodes[treeedge.n1].lID == BIG_INT) - || (treenodes[treeedge.n2].hID == BIG_INT - && treenodes[treeedge.n2].lID == BIG_INT)) { + } else { + // Handle zero-length edges (len == 0) that may need via grids. + // These arise when two pins share the same gcell (x,y) but sit on + // different layers. STT creates zero-length Steiner edges between + // them (directly or through a Steiner node at the same position). + // + // For Steiner nodes co-located with terminals, layerAssignment + // updates botL/topL on the stackAlias (a terminal), not on the + // Steiner node itself. Resolve through stackAlias to obtain + // meaningful layer information. int node1 = treeedge.n1; int node2 = treeedge.n2; - if ((treenodes[node1].botL == num_layers_ - && treenodes[node1].topL == -1) - || (treenodes[node2].botL == num_layers_ - && treenodes[node2].topL == -1)) { + int effective_node1 = (treenodes[node1].botL == num_layers_ + && treenodes[node1].topL == -1) + ? treenodes[node1].stackAlias + : node1; + int effective_node2 = (treenodes[node2].botL == num_layers_ + && treenodes[node2].topL == -1) + ? treenodes[node2].stackAlias + : node2; + + // Skip if both resolved nodes still lack layer information. + if ((treenodes[effective_node1].botL == num_layers_ + && treenodes[effective_node1].topL == -1) + && (treenodes[effective_node2].botL == num_layers_ + && treenodes[effective_node2].topL == -1)) { continue; } - int16_t l1 = treenodes[node1].botL; - int16_t l2 = treenodes[node2].botL; - int16_t bottom_layer = std::min(l1, l2); - int16_t top_layer = std::max(l1, l2); - if (node1 < num_terminals) { - extendLayerRange(node1, bottom_layer, top_layer); + int16_t bottom_layer = std::min(treenodes[effective_node1].botL, + treenodes[effective_node2].botL); + int16_t top_layer = std::max(treenodes[effective_node1].botL, + treenodes[effective_node2].botL); + if (effective_node1 < num_terminals) { + extendLayerRange(effective_node1, bottom_layer, top_layer); + } + if (effective_node2 < num_terminals) { + extendLayerRange(effective_node2, bottom_layer, top_layer); } - if (node2 < num_terminals) { - extendLayerRange(node2, bottom_layer, top_layer); + if (top_layer <= bottom_layer) { + continue; } treeedge.route.grids.resize(top_layer - bottom_layer + 1); diff --git a/src/grt/test/BUILD b/src/grt/test/BUILD index 828b751764..df84e59055 100644 --- a/src/grt/test/BUILD +++ b/src/grt/test/BUILD @@ -11,6 +11,7 @@ TESTS = [ "clock_route_alpha", "clock_route_error1", "clock_route_error2", + "colocated_pins", "congestion1", "congestion2", "congestion3", diff --git a/src/grt/test/CMakeLists.txt b/src/grt/test/CMakeLists.txt index ce64381e52..400eb29ba1 100644 --- a/src/grt/test/CMakeLists.txt +++ b/src/grt/test/CMakeLists.txt @@ -8,6 +8,7 @@ or_integration_tests( clock_route_alpha clock_route_error1 clock_route_error2 + colocated_pins congestion1 congestion2 congestion3 diff --git a/src/grt/test/colocated_pins.def b/src/grt/test/colocated_pins.def new file mode 100644 index 0000000000..29f4422c08 --- /dev/null +++ b/src/grt/test/colocated_pins.def @@ -0,0 +1,60 @@ +VERSION 5.8 ; +NAMESCASESENSITIVE ON ; +DIVIDERCHAR "/" ; +BUSBITCHARS "[]" ; +DESIGN colocated_pins ; +UNITS DISTANCE MICRONS 2000 ; +DIEAREA ( 0 0 ) ( 60000 60000 ) ; +ROW ROW_0 FreePDK45_38x28_10R_NP_162NW_34O 3800 2800 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_1 FreePDK45_38x28_10R_NP_162NW_34O 3800 5600 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_2 FreePDK45_38x28_10R_NP_162NW_34O 3800 8400 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_3 FreePDK45_38x28_10R_NP_162NW_34O 3800 11200 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_4 FreePDK45_38x28_10R_NP_162NW_34O 3800 14000 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_5 FreePDK45_38x28_10R_NP_162NW_34O 3800 16800 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_6 FreePDK45_38x28_10R_NP_162NW_34O 3800 19600 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_7 FreePDK45_38x28_10R_NP_162NW_34O 3800 22400 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_8 FreePDK45_38x28_10R_NP_162NW_34O 3800 25200 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_9 FreePDK45_38x28_10R_NP_162NW_34O 3800 28000 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_10 FreePDK45_38x28_10R_NP_162NW_34O 3800 30800 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_11 FreePDK45_38x28_10R_NP_162NW_34O 3800 33600 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_12 FreePDK45_38x28_10R_NP_162NW_34O 3800 36400 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_13 FreePDK45_38x28_10R_NP_162NW_34O 3800 39200 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_14 FreePDK45_38x28_10R_NP_162NW_34O 3800 42000 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_15 FreePDK45_38x28_10R_NP_162NW_34O 3800 44800 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_16 FreePDK45_38x28_10R_NP_162NW_34O 3800 47600 FS DO 137 BY 1 STEP 380 0 ; +ROW ROW_17 FreePDK45_38x28_10R_NP_162NW_34O 3800 50400 N DO 137 BY 1 STEP 380 0 ; +ROW ROW_18 FreePDK45_38x28_10R_NP_162NW_34O 3800 53200 FS DO 137 BY 1 STEP 380 0 ; +TRACKS X 190 DO 158 STEP 380 LAYER metal1 ; +TRACKS Y 140 DO 214 STEP 280 LAYER metal1 ; +TRACKS X 190 DO 158 STEP 380 LAYER metal2 ; +TRACKS Y 140 DO 214 STEP 280 LAYER metal2 ; +TRACKS X 190 DO 158 STEP 380 LAYER metal3 ; +TRACKS Y 140 DO 214 STEP 280 LAYER metal3 ; +TRACKS X 190 DO 107 STEP 560 LAYER metal4 ; +TRACKS Y 140 DO 107 STEP 560 LAYER metal4 ; +TRACKS X 190 DO 107 STEP 560 LAYER metal5 ; +TRACKS Y 140 DO 107 STEP 560 LAYER metal5 ; +TRACKS X 190 DO 107 STEP 560 LAYER metal6 ; +TRACKS Y 140 DO 107 STEP 560 LAYER metal6 ; +TRACKS X 190 DO 38 STEP 1600 LAYER metal7 ; +TRACKS Y 140 DO 38 STEP 1600 LAYER metal7 ; +TRACKS X 190 DO 38 STEP 1600 LAYER metal8 ; +TRACKS Y 140 DO 38 STEP 1600 LAYER metal8 ; +TRACKS X 190 DO 19 STEP 3200 LAYER metal9 ; +TRACKS Y 140 DO 19 STEP 3200 LAYER metal9 ; +TRACKS X 190 DO 19 STEP 3200 LAYER metal10 ; +TRACKS Y 140 DO 19 STEP 3200 LAYER metal10 ; +COMPONENTS 6 ; + - load_tl BUF_X1 + PLACED ( 3800 53200 ) N ; + - load_tr BUF_X1 + PLACED ( 52060 53200 ) N ; + - load_bl BUF_X1 + PLACED ( 3800 2800 ) N ; + - load_br BUF_X1 + PLACED ( 52060 2800 ) N ; + - u_m4 CELL_M4_PIN + PLACED ( 28500 25200 ) N ; + - u_m3 CELL_M3_PIN + PLACED ( 30020 25200 ) N ; +END COMPONENTS +PINS 0 ; +END PINS +NETS 1 ; + - test_net ( load_tl A ) ( load_tr A ) ( load_bl A ) ( load_br A ) ( u_m4 A ) ( u_m3 Z ) + USE SIGNAL ; +END NETS +END DESIGN diff --git a/src/grt/test/colocated_pins.guideok b/src/grt/test/colocated_pins.guideok new file mode 100644 index 0000000000..264bdda1eb --- /dev/null +++ b/src/grt/test/colocated_pins.guideok @@ -0,0 +1,17 @@ +test_net +( +0 22800 5700 60000 metal2 +0 51300 5700 60000 metal1 +28500 22800 60000 28500 metal3 +51300 22800 60000 28500 metal2 +51300 22800 60000 60000 metal2 +51300 51300 60000 60000 metal1 +0 0 5700 28500 metal2 +0 0 5700 5700 metal1 +28500 22800 34200 28500 metal3 +28500 22800 34200 28500 metal4 +51300 0 60000 28500 metal2 +51300 0 60000 5700 metal1 +0 22800 5700 28500 metal2 +0 22800 34200 28500 metal3 +) diff --git a/src/grt/test/colocated_pins.lef b/src/grt/test/colocated_pins.lef new file mode 100644 index 0000000000..b54a120e7f --- /dev/null +++ b/src/grt/test/colocated_pins.lef @@ -0,0 +1,79 @@ +VERSION 5.6 ; +BUSBITCHARS "[]" ; +DIVIDERCHAR "/" ; + +# Cells with signal pins on metal4 and metal3 respectively. +# Used to test that fillVIA creates a via stack when two pins from +# different cells land in the same gcell on different routing layers. + +MACRO CELL_M4_PIN + CLASS CORE ; + ORIGIN 0 0 ; + FOREIGN CELL_M4_PIN 0 0 ; + SIZE 0.76 BY 1.4 ; + SYMMETRY X Y ; + SITE FreePDK45_38x28_10R_NP_162NW_34O ; + PIN A + DIRECTION INPUT ; + USE SIGNAL ; + PORT + LAYER metal4 ; + RECT 0.28 0.525 0.42 0.875 ; + END + END A + PIN VDD + DIRECTION INOUT ; + USE POWER ; + SHAPE ABUTMENT ; + PORT + LAYER metal1 ; + RECT 0 1.315 0.76 1.485 ; + END + END VDD + PIN VSS + DIRECTION INOUT ; + USE GROUND ; + SHAPE ABUTMENT ; + PORT + LAYER metal1 ; + RECT 0 -0.085 0.76 0.085 ; + END + END VSS +END CELL_M4_PIN + +MACRO CELL_M3_PIN + CLASS CORE ; + ORIGIN 0 0 ; + FOREIGN CELL_M3_PIN 0 0 ; + SIZE 0.76 BY 1.4 ; + SYMMETRY X Y ; + SITE FreePDK45_38x28_10R_NP_162NW_34O ; + PIN Z + DIRECTION OUTPUT ; + USE SIGNAL ; + PORT + LAYER metal3 ; + RECT 0.28 0.525 0.42 0.875 ; + END + END Z + PIN VDD + DIRECTION INOUT ; + USE POWER ; + SHAPE ABUTMENT ; + PORT + LAYER metal1 ; + RECT 0 1.315 0.76 1.485 ; + END + END VDD + PIN VSS + DIRECTION INOUT ; + USE GROUND ; + SHAPE ABUTMENT ; + PORT + LAYER metal1 ; + RECT 0 -0.085 0.76 0.085 ; + END + END VSS +END CELL_M3_PIN + +END LIBRARY diff --git a/src/grt/test/colocated_pins.ok b/src/grt/test/colocated_pins.ok new file mode 100644 index 0000000000..92eb02ff4c --- /dev/null +++ b/src/grt/test/colocated_pins.ok @@ -0,0 +1,67 @@ +[INFO ODB-0227] LEF file: Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells +[INFO ODB-0227] LEF file: colocated_pins.lef, created 2 library cells +[INFO ODB-0128] Design: colocated_pins +[INFO ODB-0131] Created 6 components and 22 component-terminals. +[INFO ODB-0133] Created 1 nets and 6 connections. +[WARNING GRT-0300] Timing is not available, setting critical nets percentage to 0. +[INFO GRT-0020] Min routing layer: metal2 +[INFO GRT-0021] Max routing layer: metal10 +[INFO GRT-0022] Global adjustment: 0% +[INFO GRT-0023] Grid origin: (0, 0) +[INFO GRT-0088] Layer metal1 Track-Pitch = 0.1400 line-2-Via Pitch: 0.1350 +[INFO GRT-0088] Layer metal2 Track-Pitch = 0.1900 line-2-Via Pitch: 0.1400 +[INFO GRT-0088] Layer metal3 Track-Pitch = 0.1400 line-2-Via Pitch: 0.1400 +[INFO GRT-0088] Layer metal4 Track-Pitch = 0.2800 line-2-Via Pitch: 0.2800 +[INFO GRT-0088] Layer metal5 Track-Pitch = 0.2800 line-2-Via Pitch: 0.2800 +[INFO GRT-0088] Layer metal6 Track-Pitch = 0.2800 line-2-Via Pitch: 0.2800 +[INFO GRT-0088] Layer metal7 Track-Pitch = 0.8000 line-2-Via Pitch: 0.8000 +[INFO GRT-0088] Layer metal8 Track-Pitch = 0.8000 line-2-Via Pitch: 0.8000 +[INFO GRT-0088] Layer metal9 Track-Pitch = 1.6000 line-2-Via Pitch: 1.6000 +[INFO GRT-0088] Layer metal10 Track-Pitch = 1.6000 line-2-Via Pitch: 1.6000 +[INFO GRT-0003] Macros: 0 +[INFO GRT-0004] Blockages: 0 +[INFO GRT-0019] Found 0 clock nets. +[INFO GRT-0001] Minimum degree: 6 +[INFO GRT-0002] Maximum degree: 6 + +[INFO GRT-0053] Routing resources analysis: + Routing Original Derated Resource +Layer Direction Resources Resources Reduction (%) +--------------------------------------------------------------- +metal1 Horizontal 0 0 0.00% +metal2 Vertical 1422 1422 0.00% +metal3 Horizontal 1923 1923 0.00% +metal4 Vertical 962 962 0.00% +metal5 Horizontal 963 963 0.00% +metal6 Vertical 963 963 0.00% +metal7 Horizontal 342 342 0.00% +metal8 Vertical 342 342 0.00% +metal9 Horizontal 171 171 0.00% +metal10 Vertical 171 171 0.00% +--------------------------------------------------------------- + +[INFO GRT-0197] Via related to pin nodes: 9 +[INFO GRT-0198] Via related Steiner nodes: 1 +[INFO GRT-0199] Via filling finished. +[INFO GRT-0111] Final number of vias: 13 +[INFO GRT-0112] Final usage 3D: 70 + +[INFO GRT-0096] Final congestion report: +Layer Resource Demand Usage (%) Max H / Max V / Total Overflow +--------------------------------------------------------------------------------------- +metal1 0 0 0.00% 0 / 0 / 0 +metal2 1422 18 1.27% 0 / 0 / 0 +metal3 1923 13 0.68% 0 / 0 / 0 +metal4 962 0 0.00% 0 / 0 / 0 +metal5 963 0 0.00% 0 / 0 / 0 +metal6 963 0 0.00% 0 / 0 / 0 +metal7 342 0 0.00% 0 / 0 / 0 +metal8 342 0 0.00% 0 / 0 / 0 +metal9 171 0 0.00% 0 / 0 / 0 +metal10 171 0 0.00% 0 / 0 / 0 +--------------------------------------------------------------------------------------- +Total 7259 31 0.43% 0 / 0 / 0 + +[INFO GRT-0018] Total wirelength: 94 um +[INFO GRT-0014] Routed nets: 1 +No differences found. diff --git a/src/grt/test/colocated_pins.tcl b/src/grt/test/colocated_pins.tcl new file mode 100644 index 0000000000..8f676701b8 --- /dev/null +++ b/src/grt/test/colocated_pins.tcl @@ -0,0 +1,25 @@ +# Test that global routing creates a via between co-located pins on +# different layers within the same gcell. +# +# The net has six pins in an H topology: four metal1 BUF_X1 loads at +# the corners form two horizontal bars (top and bottom), connected by +# a vertical spine through the center where a metal4 pin and a metal3 +# pin sit adjacent in the same gcell. FLUTE creates zero-length +# Steiner edges between the co-located center pins; without the +# fillVIA fix for stackAlias resolution these edges are skipped, the +# via between metal3 and metal4 is never created, and RSZ later fails +# with RSZ-0074. +source "helpers.tcl" +read_lef "Nangate45/Nangate45.lef" +read_lef "colocated_pins.lef" +read_def "colocated_pins.def" + +set_routing_layers -signal metal2-metal10 + +set guide_file [make_result_file colocated_pins.guide] + +global_route -verbose + +write_guides $guide_file + +diff_file colocated_pins.guideok $guide_file diff --git a/src/grt/test/overlapping_edges.guideok b/src/grt/test/overlapping_edges.guideok index b14d36b2fe..6debed624a 100644 --- a/src/grt/test/overlapping_edges.guideok +++ b/src/grt/test/overlapping_edges.guideok @@ -56638,6 +56638,7 @@ net1 165600 414000 179400 420900 met1 172500 414000 179400 420900 li1 158700 400200 165600 407100 li1 +158700 400200 165600 407100 met1 172500 386400 179400 393300 li1 165600 386400 179400 393300 met1 172500 345000 179400 351900 li1 @@ -56650,12 +56651,15 @@ net1 151800 372600 158700 379500 met1 151800 358800 158700 379500 met2 151800 358800 158700 365700 met1 +151800 358800 158700 365700 met1 151800 358800 158700 365700 li1 165600 338100 172500 345000 li1 +165600 338100 172500 345000 met1 179400 358800 193200 365700 met1 179400 365700 186300 372600 li1 179400 365700 193200 372600 met1 179400 593400 186300 600300 li1 +179400 593400 186300 600300 met1 165600 593400 186300 600300 met1 165600 607200 179400 614100 met1 172500 607200 179400 614100 li1 @@ -56663,15 +56667,23 @@ net1 172500 579600 179400 586500 li1 172500 621000 186300 627900 met1 158700 579600 165600 586500 li1 +158700 579600 165600 586500 met1 +172500 517500 179400 524400 li1 +172500 517500 179400 524400 met1 165600 510600 172500 517500 met1 165600 510600 172500 524400 met2 165600 517500 172500 524400 met1 165600 517500 172500 524400 li1 +179400 496800 186300 503700 li1 +179400 496800 186300 503700 met1 +158700 510600 165600 517500 li1 +158700 510600 165600 517500 met1 172500 434700 186300 441600 met1 179400 434700 186300 441600 li1 179400 434700 186300 441600 met1 179400 434700 186300 448500 met2 179400 441600 186300 448500 met1 +179400 441600 186300 448500 met1 179400 441600 186300 448500 li1 172500 448500 193200 455400 met1 186300 448500 193200 455400 li1 @@ -56682,14 +56694,17 @@ net1 186300 524400 200100 531300 met1 193200 524400 200100 531300 li1 186300 552000 200100 558900 met1 +193200 552000 200100 558900 met1 193200 552000 200100 558900 li1 193200 372600 207000 379500 met1 179400 565800 193200 572700 met1 +186300 565800 193200 572700 met1 186300 565800 193200 572700 li1 200100 365700 213900 372600 met1 207000 365700 213900 372600 li1 186300 338100 193200 345000 li1 186300 338100 200100 345000 met1 +193200 338100 200100 345000 met1 193200 338100 200100 345000 li1 193200 386400 207000 393300 met1 200100 372600 213900 379500 met1 @@ -56703,24 +56718,31 @@ net1 131100 407100 138000 420900 met2 131100 407100 138000 414000 met1 131100 427800 138000 434700 li1 +131100 427800 138000 434700 met1 131100 455400 138000 462300 li1 +131100 455400 138000 462300 met1 144900 469200 151800 476100 li1 +144900 469200 151800 476100 met1 138000 455400 144900 462300 li1 138000 455400 151800 462300 met1 144900 455400 151800 462300 li1 144900 455400 151800 462300 met1 +144900 455400 151800 462300 met1 144900 448500 151800 462300 met2 144900 448500 151800 455400 met1 144900 448500 151800 455400 li1 158700 407100 172500 414000 met1 200100 338100 207000 345000 li1 +200100 338100 207000 345000 met1 179400 338100 193200 345000 met1 193200 579600 200100 586500 li1 193200 579600 200100 586500 met1 193200 572700 200100 586500 met2 193200 572700 200100 579600 met1 200100 379500 207000 386400 li1 +200100 379500 207000 386400 met1 207000 393300 213900 400200 li1 +207000 393300 213900 400200 met1 186300 393300 213900 400200 met1 200100 365700 207000 372600 met1 200100 358800 207000 372600 met2 @@ -56752,6 +56774,7 @@ net1 186300 462300 193200 469200 li1 186300 483000 193200 489900 li1 186300 483000 193200 489900 met1 +186300 483000 193200 489900 met1 186300 476100 193200 489900 met2 186300 476100 193200 483000 met1 186300 476100 193200 483000 li1 @@ -56761,7 +56784,9 @@ net1 186300 593400 193200 600300 li1 186300 593400 200100 600300 met1 138000 483000 144900 489900 li1 +138000 483000 144900 489900 met1 131100 489900 138000 496800 li1 +131100 489900 138000 496800 met1 138000 538200 144900 545100 met1 138000 538200 144900 552000 met2 138000 545100 144900 552000 met1 @@ -56801,18 +56826,21 @@ net1 138000 372600 151800 379500 met1 144900 372600 151800 379500 li1 131100 365700 138000 372600 li1 +131100 365700 138000 372600 met1 158700 517500 165600 524400 li1 -158700 510600 165600 517500 li1 +158700 517500 165600 524400 met1 151800 552000 158700 565800 met2 151800 558900 158700 565800 met1 151800 558900 158700 565800 li1 151800 558900 172500 565800 met1 +165600 558900 172500 565800 met1 165600 558900 172500 565800 li1 193200 593400 207000 600300 met1 200100 593400 207000 600300 li1 179400 614100 186300 621000 met1 179400 614100 186300 627900 met2 179400 621000 186300 627900 met1 +179400 621000 186300 627900 met1 179400 621000 186300 627900 li1 172500 641700 186300 648600 met1 179400 641700 186300 648600 li1 @@ -56822,8 +56850,10 @@ net1 172500 627900 179400 634800 met1 172500 627900 179400 634800 li1 200100 634800 213900 641700 met1 +207000 634800 213900 641700 met1 207000 634800 213900 641700 li1 172500 648600 186300 655500 met1 +179400 648600 186300 655500 met1 179400 648600 186300 655500 li1 179400 662400 193200 669300 met1 186300 662400 193200 669300 met1 @@ -56833,11 +56863,14 @@ net1 207000 648600 213900 655500 met1 207000 648600 213900 662400 met2 207000 655500 213900 662400 met1 +207000 655500 213900 662400 met1 207000 655500 213900 662400 li1 186300 669300 193200 683100 met2 186300 676200 193200 683100 met1 +186300 676200 193200 683100 met1 186300 676200 193200 683100 li1 193200 676200 200100 683100 li1 +193200 676200 200100 683100 met1 193200 648600 200100 655500 met1 193200 648600 200100 662400 met2 193200 655500 200100 662400 met1 @@ -56848,12 +56881,14 @@ net1 172500 648600 179400 655500 met1 172500 648600 179400 655500 li1 207000 607200 213900 614100 li1 +207000 607200 213900 614100 met1 200100 607200 213900 614100 met1 179400 655500 186300 662400 met1 179400 655500 186300 669300 met2 179400 662400 186300 669300 met1 179400 662400 186300 669300 li1 172500 634800 186300 641700 met1 +179400 634800 186300 641700 met1 179400 634800 186300 641700 li1 200100 648600 213900 655500 met1 144900 400200 151800 407100 met1 @@ -56864,6 +56899,7 @@ net1 151800 379500 158700 393300 met2 151800 379500 158700 386400 met1 131100 386400 138000 393300 li1 +131100 386400 138000 393300 met1 158700 345000 172500 351900 met1 144900 372600 158700 379500 met1 151800 345000 158700 351900 li1 @@ -56874,7 +56910,6 @@ net1 158700 358800 165600 365700 li1 138000 510600 144900 517500 met1 138000 503700 144900 517500 met2 -172500 517500 179400 524400 li1 172500 517500 186300 524400 met1 172500 545100 179400 552000 li1 165600 545100 179400 552000 met1 @@ -56890,6 +56925,7 @@ net1 207000 669300 220800 676200 met1 186300 676200 200100 683100 met1 207000 676200 213900 683100 li1 +207000 676200 213900 683100 met1 179400 648600 200100 655500 met1 186300 607200 207000 614100 met1 172500 627900 179400 641700 met2 @@ -56909,6 +56945,8 @@ net1 131100 372600 144900 379500 met1 131100 386400 144900 393300 met1 138000 386400 144900 393300 li1 +138000 414000 144900 420900 li1 +138000 414000 144900 420900 met1 144900 400200 165600 407100 met1 165600 400200 179400 407100 met1 165600 427800 172500 434700 met1 @@ -56947,7 +56985,6 @@ net1 179400 462300 186300 469200 met1 179400 489900 193200 496800 met1 186300 489900 193200 496800 li1 -179400 496800 186300 503700 li1 165600 510600 179400 517500 met1 172500 510600 179400 517500 li1 172500 510600 186300 517500 met1 @@ -56989,7 +57026,6 @@ net1 138000 441600 144900 455400 met2 131100 427800 144900 434700 met1 131100 414000 144900 420900 met1 -138000 414000 144900 420900 li1 138000 427800 144900 434700 met1 138000 420900 144900 434700 met2 138000 420900 144900 427800 met1 @@ -57003,6 +57039,7 @@ net1 200100 331200 207000 338100 met1 200100 331200 207000 338100 li1 193200 372600 200100 379500 li1 +193200 372600 200100 379500 met1 186300 365700 193200 379500 met2 193200 351900 207000 358800 met1 200100 372600 207000 379500 met1 @@ -57021,6 +57058,7 @@ net1 179400 607200 186300 614100 met1 179400 607200 186300 621000 met2 165600 441600 172500 448500 li1 +165600 441600 172500 448500 met1 172500 448500 179400 462300 met2 172500 455400 179400 462300 met1 179400 510600 186300 517500 met1 @@ -58054,8 +58092,9 @@ net82 13800 379500 20700 393300 met2 13800 379500 20700 386400 met1 13800 379500 20700 386400 li1 -13800 372600 27600 379500 met1 13800 372600 20700 379500 li1 +13800 372600 20700 379500 met1 +13800 372600 27600 379500 met1 13800 338100 27600 345000 met1 20700 338100 27600 345000 li1 13800 345000 27600 351900 met1 @@ -58065,19 +58104,23 @@ net82 13800 310500 20700 324300 met2 13800 289800 20700 296700 li1 13800 289800 20700 296700 met1 +13800 289800 20700 296700 met1 13800 289800 20700 303600 met2 13800 282900 20700 296700 met2 13800 269100 20700 282900 met2 13800 276000 20700 282900 li1 13800 276000 20700 282900 met1 +13800 276000 20700 282900 met1 13800 262200 20700 276000 met2 13800 262200 20700 269100 met1 13800 262200 20700 269100 li1 +13800 248400 20700 255300 li1 +13800 248400 20700 255300 met1 13800 241500 20700 248400 li1 13800 241500 20700 248400 met1 +13800 241500 20700 248400 met1 13800 241500 20700 255300 met2 13800 248400 20700 255300 met1 -13800 248400 20700 255300 li1 13800 234600 20700 241500 met1 13800 227700 20700 241500 met2 13800 227700 20700 234600 met1 @@ -58087,19 +58130,23 @@ net82 13800 110400 20700 117300 li1 13800 89700 20700 96600 li1 13800 89700 20700 96600 met1 +13800 89700 20700 96600 met1 13800 89700 20700 110400 met2 13800 103500 20700 110400 met1 13800 75900 20700 82800 li1 13800 75900 20700 82800 met1 +13800 75900 20700 82800 met1 13800 75900 20700 89700 met2 13800 82800 20700 89700 met1 13800 69000 20700 75900 li1 13800 69000 20700 75900 met1 13800 69000 20700 82800 met2 13800 55200 20700 62100 li1 +13800 55200 20700 62100 met1 20700 62100 34500 69000 met1 27600 62100 34500 69000 li1 13800 62100 27600 69000 met1 +20700 62100 27600 69000 met1 20700 62100 27600 69000 li1 13800 82800 34500 89700 met1 27600 82800 34500 89700 li1 @@ -58110,6 +58157,7 @@ net82 48300 276000 55200 282900 met1 48300 269100 55200 282900 met2 48300 269100 55200 276000 met1 +48300 269100 55200 276000 met1 48300 269100 55200 276000 li1 41400 269100 55200 276000 met1 27600 296700 34500 303600 li1 @@ -58118,6 +58166,7 @@ net82 13800 317400 20700 324300 met1 13800 317400 20700 331200 met2 13800 324300 20700 331200 met1 +13800 324300 20700 331200 met1 13800 324300 20700 331200 li1 13800 338100 20700 345000 met1 13800 331200 20700 345000 met2 @@ -58127,6 +58176,7 @@ net82 27600 351900 34500 358800 met1 27600 351900 34500 365700 met2 27600 358800 34500 365700 met1 +27600 358800 34500 365700 met1 27600 358800 34500 365700 li1 34500 331200 48300 338100 met1 41400 331200 48300 338100 li1 @@ -58141,6 +58191,8 @@ net82 55200 262200 62100 269100 met1 55200 262200 62100 269100 li1 48300 269100 62100 276000 met1 +41400 262200 48300 269100 li1 +41400 262200 48300 269100 met1 27600 358800 34500 372600 met2 27600 365700 34500 372600 met1 20700 372600 27600 379500 li1 @@ -58168,7 +58220,6 @@ net82 41400 255300 48300 262200 met1 41400 255300 48300 269100 met2 41400 262200 48300 269100 met1 -41400 262200 48300 269100 li1 55200 276000 62100 282900 li1 48300 276000 62100 282900 met1 34500 303600 48300 310500 met1 @@ -58178,6 +58229,7 @@ net82 13800 331200 41400 338100 met1 20700 351900 34500 358800 met1 20700 310500 27600 317400 li1 +20700 310500 27600 317400 met1 13800 310500 27600 317400 met1 27600 255300 41400 262200 met1 13800 255300 27600 262200 met1 @@ -58194,12 +58246,14 @@ net82 13800 248400 20700 262200 met2 13800 255300 20700 269100 met2 13800 269100 20700 276000 li1 +13800 269100 20700 276000 met1 13800 282900 20700 289800 li1 13800 282900 20700 289800 met1 13800 276000 20700 289800 met2 13800 269100 20700 276000 met1 6900 282900 20700 289800 met1 13800 310500 20700 317400 li1 +13800 310500 20700 317400 met1 13800 303600 20700 310500 li1 13800 303600 20700 310500 met1 13800 303600 20700 317400 met2 @@ -58210,6 +58264,7 @@ net82 13800 345000 20700 351900 met1 13800 345000 20700 365700 met2 13800 358800 20700 365700 met1 +13800 358800 20700 365700 met1 13800 358800 20700 365700 li1 6900 338100 20700 345000 met1 13800 372600 20700 386400 met2 @@ -58248,6 +58303,7 @@ net83 220800 248400 227700 262200 met2 220800 248400 227700 255300 met1 234600 248400 241500 255300 li1 +234600 248400 241500 255300 met1 220800 241500 234600 248400 met1 227700 241500 234600 248400 li1 227700 227700 241500 234600 met1 @@ -58263,6 +58319,7 @@ net83 227700 220800 234600 227700 li1 220800 220800 227700 227700 li1 220800 220800 227700 227700 met1 +220800 220800 227700 227700 met1 220800 220800 227700 234600 met2 220800 227700 227700 234600 met1 227700 89700 234600 96600 li1 @@ -58298,6 +58355,7 @@ net83 213900 69000 234600 75900 met1 200100 41400 207000 48300 li1 200100 41400 207000 48300 met1 +200100 41400 207000 48300 met1 200100 34500 207000 48300 met2 200100 34500 207000 41400 met1 200100 34500 207000 41400 li1 @@ -58311,10 +58369,13 @@ net83 207000 13800 220800 20700 met1 213900 13800 220800 20700 li1 200100 20700 207000 27600 li1 +200100 20700 207000 27600 met1 179400 13800 193200 20700 met1 +186300 13800 193200 20700 met1 186300 13800 193200 20700 li1 200100 13800 213900 20700 met1 200100 27600 213900 34500 met1 +207000 27600 213900 34500 met1 207000 27600 213900 34500 li1 227700 48300 234600 55200 met1 227700 41400 234600 55200 met2 @@ -58322,6 +58383,7 @@ net83 227700 34500 241500 41400 met1 234600 34500 241500 41400 li1 213900 13800 227700 20700 met1 +220800 13800 227700 20700 met1 220800 13800 227700 20700 li1 227700 48300 248400 55200 met1 241500 48300 248400 55200 li1 @@ -58351,20 +58413,26 @@ net83 358800 103500 365700 124200 met2 234600 89700 365700 96600 met1 234600 269100 241500 276000 li1 +234600 269100 241500 276000 met1 241500 276000 255300 282900 met1 +248400 276000 255300 282900 met1 248400 276000 255300 282900 li1 +234600 255300 241500 262200 li1 +234600 255300 241500 262200 met1 248400 276000 255300 282900 met1 248400 276000 255300 289800 met2 248400 282900 255300 289800 met1 248400 282900 255300 289800 li1 213900 276000 227700 282900 met1 213900 262200 220800 269100 li1 +213900 262200 220800 269100 met1 213900 262200 227700 269100 met1 220800 269100 227700 276000 li1 220800 269100 227700 276000 met1 220800 262200 227700 276000 met2 220800 262200 227700 269100 met1 213900 276000 220800 282900 li1 +213900 276000 220800 282900 met1 234600 276000 241500 282900 li1 227700 276000 241500 282900 met1 207000 282900 227700 289800 met1 @@ -58385,6 +58453,7 @@ net83 220800 62100 234600 69000 met1 179400 20700 200100 27600 met1 179400 13800 186300 20700 li1 +179400 13800 186300 20700 met1 193200 13800 200100 27600 met2 193200 13800 200100 20700 met1 193200 13800 200100 20700 li1 @@ -58411,12 +58480,15 @@ net83 220800 117300 227700 138000 met2 220800 234600 227700 248400 met2 220800 234600 227700 241500 met1 +220800 234600 227700 241500 met1 220800 234600 227700 241500 li1 220800 262200 234600 269100 met1 227700 262200 234600 269100 li1 234600 234600 241500 241500 li1 +234600 234600 241500 241500 met1 241500 255300 255300 262200 met1 213900 269100 220800 276000 li1 +213900 269100 220800 276000 met1 220800 282900 234600 289800 met1 227700 282900 234600 289800 li1 220800 282900 227700 289800 met1 @@ -58437,7 +58509,6 @@ net83 151800 69000 158700 75900 met1 151800 69000 158700 75900 li1 213900 269100 227700 276000 met1 -234600 255300 241500 262200 li1 234600 255300 248400 262200 met1 227700 55200 234600 69000 met2 186300 13800 200100 20700 met1 @@ -58464,8 +58535,11 @@ net84 220800 448500 227700 455400 li1 220800 462300 227700 469200 li1 213900 462300 227700 469200 met1 +213900 427800 220800 434700 li1 +213900 427800 220800 434700 met1 234600 407100 248400 414000 met1 213900 400200 220800 407100 li1 +213900 400200 220800 407100 met1 227700 420900 241500 427800 met1 220800 414000 227700 420900 li1 213900 414000 227700 420900 met1 @@ -58500,21 +58574,28 @@ net84 193200 303600 207000 310500 met1 193200 296700 207000 303600 met1 200100 282900 207000 289800 li1 +200100 282900 207000 289800 met1 193200 282900 207000 289800 met1 200100 296700 207000 303600 li1 +200100 296700 207000 303600 met1 193200 296700 200100 303600 met1 193200 289800 200100 303600 met2 193200 289800 200100 296700 met1 193200 289800 200100 296700 li1 +213900 303600 220800 310500 li1 +213900 303600 220800 310500 met1 200100 303600 213900 310500 met1 200100 303600 207000 310500 li1 -213900 303600 220800 310500 li1 +200100 303600 207000 310500 met1 241500 296700 248400 303600 li1 +241500 296700 248400 303600 met1 241500 303600 248400 310500 li1 241500 303600 248400 310500 met1 +241500 303600 248400 310500 met1 241500 296700 248400 310500 met2 241500 296700 248400 303600 met1 234600 282900 241500 289800 li1 +234600 282900 241500 289800 met1 227700 296700 248400 303600 met1 234600 324300 241500 331200 li1 234600 324300 241500 331200 met1 @@ -58524,11 +58605,15 @@ net84 213900 351900 227700 358800 met1 220800 351900 227700 358800 li1 213900 372600 227700 379500 met1 +220800 372600 227700 379500 met1 220800 372600 227700 379500 li1 241500 365700 248400 372600 li1 241500 365700 248400 372600 met1 +241500 365700 248400 372600 met1 241500 365700 248400 379500 met2 241500 372600 248400 379500 met1 +241500 358800 248400 365700 li1 +241500 358800 248400 365700 met1 234600 386400 241500 393300 li1 234600 386400 248400 393300 met1 241500 345000 255300 351900 met1 @@ -58539,32 +58624,37 @@ net84 234600 331200 241500 338100 met1 234600 331200 241500 338100 li1 234600 324300 248400 331200 met1 +241500 324300 248400 331200 met1 241500 324300 248400 331200 li1 234600 345000 241500 351900 li1 234600 345000 241500 351900 met1 234600 331200 241500 351900 met2 241500 303600 255300 310500 met1 +248400 303600 255300 310500 met1 248400 303600 255300 310500 li1 241500 324300 262200 331200 met1 248400 345000 262200 351900 met1 262200 345000 269100 351900 li1 255300 345000 269100 351900 met1 -241500 358800 248400 365700 li1 241500 358800 248400 365700 met1 241500 351900 248400 365700 met2 +248400 351900 255300 358800 li1 +248400 351900 255300 358800 met1 241500 351900 255300 358800 met1 262200 345000 276000 351900 met1 +269100 345000 276000 351900 met1 269100 345000 276000 351900 li1 227700 386400 241500 393300 met1 213900 400200 227700 407100 met1 234600 358800 241500 365700 li1 +234600 358800 241500 365700 met1 227700 358800 241500 365700 met1 241500 358800 248400 372600 met2 220800 386400 234600 393300 met1 269100 351900 282900 358800 met1 262200 351900 276000 358800 met1 -248400 351900 255300 358800 li1 262200 351900 269100 358800 li1 +262200 351900 269100 358800 met1 255300 351900 269100 358800 met1 248400 338100 262200 345000 met1 241500 303600 248400 317400 met2 @@ -58613,8 +58703,9 @@ net84 213900 379500 220800 386400 li1 207000 372600 213900 386400 met2 207000 372600 213900 379500 met1 -207000 386400 220800 393300 met1 213900 386400 220800 393300 li1 +213900 386400 220800 393300 met1 +207000 386400 220800 393300 met1 213900 393300 220800 400200 met1 213900 386400 220800 400200 met2 213900 386400 220800 393300 met1 @@ -58633,7 +58724,6 @@ net84 234600 420900 241500 427800 met1 234600 414000 241500 427800 met2 234600 414000 241500 420900 met1 -213900 427800 220800 434700 li1 213900 427800 220800 434700 met1 213900 414000 220800 434700 met2 213900 414000 220800 420900 met1 @@ -58651,6 +58741,7 @@ net84 213900 496800 220800 503700 met1 213900 476100 220800 503700 met2 255300 351900 262200 358800 li1 +255300 351900 262200 358800 met1 234600 407100 241500 420900 met2 234600 407100 241500 414000 met1 234600 407100 241500 414000 li1 @@ -58707,10 +58798,12 @@ net85 303600 469200 310500 476100 li1 289800 469200 296700 476100 li1 289800 469200 296700 476100 met1 +289800 469200 296700 476100 met1 289800 469200 296700 483000 met2 289800 476100 296700 483000 met1 289800 476100 296700 483000 li1 296700 489900 303600 496800 li1 +296700 489900 303600 496800 met1 296700 441600 303600 448500 li1 296700 441600 310500 448500 met1 317400 441600 324300 448500 li1 @@ -58753,22 +58846,26 @@ net85 338100 414000 351900 420900 met1 358800 407100 365700 414000 li1 358800 407100 365700 414000 met1 +358800 407100 365700 414000 met1 358800 400200 365700 414000 met2 358800 400200 365700 407100 met1 358800 400200 365700 407100 li1 351900 407100 365700 414000 met1 345000 407100 358800 414000 met1 +351900 407100 358800 414000 met1 351900 407100 358800 414000 li1 358800 386400 365700 407100 met2 358800 386400 365700 393300 met1 358800 386400 372600 393300 met1 365700 386400 372600 393300 li1 296700 455400 303600 462300 li1 +296700 455400 303600 462300 met1 289800 455400 303600 462300 met1 289800 462300 296700 469200 li1 289800 462300 296700 469200 met1 289800 462300 296700 476100 met2 317400 448500 324300 455400 li1 +317400 448500 324300 455400 met1 303600 441600 310500 448500 met1 303600 434700 310500 448500 met2 303600 434700 310500 441600 met1