@tscircuit/rectdiff 0.0.22 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,15 @@
1
1
  import type { GraphicsObject, Line } from "graphics-debug"
2
2
  import type { SimpleRouteJson } from "lib/types/srj-types"
3
+ export type SimpleRouteOutlineInput = {
4
+ bounds: SimpleRouteJson["bounds"]
5
+ outline?: SimpleRouteJson["outline"]
6
+ }
3
7
 
4
8
  /**
5
9
  * Creates a GraphicsObject that draws the SRJ outline (or bounds fallback).
6
10
  */
7
11
  export const makeSimpleRouteOutlineGraphics = (
8
- srj: SimpleRouteJson,
12
+ srj: SimpleRouteOutlineInput,
9
13
  ): GraphicsObject => {
10
14
  const lines: NonNullable<Line[]> = []
11
15
 
@@ -15,7 +15,15 @@ test("RectDiff expansion reproduces the two-node gap fixture", async () => {
15
15
  expect(meshNodes.length).toBeGreaterThanOrEqual(2)
16
16
 
17
17
  const finalGraphics = makeCapacityMeshNodeWithLayerInfo(meshNodes)
18
- const outline = makeSimpleRouteOutlineGraphics(input.srj)
18
+ const outline = makeSimpleRouteOutlineGraphics({
19
+ bounds: {
20
+ minX: input.bounds.x,
21
+ maxX: input.bounds.x + input.bounds.width,
22
+ minY: input.bounds.y,
23
+ maxY: input.bounds.y + input.bounds.height,
24
+ },
25
+ outline: undefined,
26
+ })
19
27
  const svg = getSvgFromGraphicsObject(
20
28
  mergeGraphics({ rects: finalGraphics.values().toArray().flat() }, outline),
21
29
  {
@@ -0,0 +1,44 @@
1
+ <svg width="640" height="3429" viewBox="0 0 640 3429" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-5,-5 5,-5 5,5 -5,5 -5,-5" data-type="line" data-label="bounds" points="40,846.1324999999999 600,846.1324999999999 600,286.13249999999994 40,286.13249999999994 40,846.1324999999999" fill="none" stroke="#111827" stroke-width="5.6000000000000005"/></g><g><polyline data-points="-5,-19.096875 5,-19.096875 5,-9.096875 -5,-9.096875 -5,-19.096875" data-type="line" data-label="bounds" points="40,1635.5575 600,1635.5575 600,1075.5575 40,1075.5575 40,1635.5575" fill="none" stroke="#111827" stroke-width="5.6000000000000005"/></g><g><polyline data-points="-5,-33.19375 5,-33.19375 5,-23.19375 -5,-23.19375 -5,-33.19375" data-type="line" data-label="bounds" points="40,2424.9825 600,2424.9825 600,1864.9825 40,1864.9825 40,2424.9825" fill="none" stroke="#111827" stroke-width="5.6000000000000005"/></g><g><polyline data-points="-5,-47.290625 5,-47.290625 5,-37.290625 -5,-37.290625 -5,-47.290625" data-type="line" data-label="bounds" points="40,3214.4075000000003 600,3214.4075000000003 600,2654.4075000000003 40,2654.4075000000003 40,3214.4075000000003" fill="none" stroke="#111827" stroke-width="5.6000000000000005"/></g><g><rect data-type="rect" data-label="node" data-x="0.8449999999999998" data-y="0" x="297.32" y="547.3725" width="140" height="37.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4100000000000006" data-y="0" x="184.75999999999993" y="547.3725" width="112.56000000000006" height="37.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-1.3400000000000003" x="301.24" y="584.8924999999999" width="37.51999999999998" height="112.56000000000006" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="2.9749999999999996" x="301.24" y="286.13249999999994" width="37.51999999999998" height="226.80000000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.1" data-y="0" x="437.32" y="547.3725" width="112.56" height="37.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.7075000000000005" data-y="0" x="40" y="547.3725" width="144.75999999999993" height="37.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-3.350000000000001" x="301.24" y="697.4525" width="37.51999999999998" height="112.56000000000006" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-4.6775" x="301.24" y="810.0124999999999" width="37.51999999999998" height="36.120000000000005" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5525" data-y="-5.551115123125783e-17" x="549.88" y="547.3725" width="50.120000000000005" height="37.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-5.551115123125783e-17" data-y="0.6425000000000001" x="301.24" y="512.9324999999999" width="37.51999999999998" height="34.440000000000055" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="2.6674999999999995" x="245.24" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="2.6674999999999995" x="357.24" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="2.6674999999999995" x="413.24" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="2.6674999999999995" x="469.24" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="2.6674999999999995" x="525.24" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="2.6674999999999995" x="77.24000000000001" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="2.6674999999999995" x="133.24" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="2.6674999999999995" x="189.24" y="286.1325" width="37.51999999999998" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="-2.6675" x="357.24" y="584.8924999999999" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="-2.6675" x="245.24" y="584.8924999999999" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="-2.6675" x="413.24" y="584.8924999999999" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="-2.6675" x="77.24000000000001" y="584.8924999999999" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="-2.6675" x="133.24" y="584.8924999999999" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-1.3400000000000003" x="189.24" y="584.8924999999999" width="37.51999999999998" height="112.56000000000006" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="-2.6675" x="469.24" y="584.8924999999999" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="-2.6675" x="525.24" y="584.8924999999999" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-3.6725000000000003" x="189.24" y="697.4525" width="37.51999999999998" height="148.67999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="2.6675" x="282.76" y="286.13249999999994" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.5" data-y="2.6675" x="338.76" y="286.13249999999994" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="2.6675" x="506.76" y="286.13249999999994" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="2.6675" x="114.75999999999999" y="286.13249999999994" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="2.6675" x="226.76" y="286.13249999999994" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-2.6675" x="114.75999999999999" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-2.6675" x="506.76" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-2.6675" x="170.76" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-2.6675" x="282.76" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-2.6675" x="450.76" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.5" data-y="-2.6675" x="338.76" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="2.6675" x="170.76" y="286.13249999999994" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="2.6675" x="450.76" y="286.13249999999994" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-2.6675" x="40" y="584.8924999999999" width="37.23999999999995" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-2.6675" x="562.76" y="584.8924999999999" width="37.24000000000001" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="2.6675" x="562.76" y="286.13249999999994" width="37.24000000000001" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="2.6675" x="40" y="286.13249999999994" width="37.23999999999995" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="2.6674999999999995" x="394.76" y="286.1325" width="18.480000000000018" height="261.23999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-2.6675" x="394.76" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-2.6675" x="226.76" y="584.8924999999999" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.8449999999999998" data-y="-14.096875" x="297.32" y="1336.7975" width="140" height="37.52000000000021" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4100000000000006" data-y="-14.096875" x="184.75999999999993" y="1336.7975" width="112.56000000000006" height="37.52000000000021" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-15.436875" x="301.24" y="1374.3174999999999" width="37.51999999999998" height="112.56000000000017" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-11.121875000000001" x="301.24" y="1075.5575" width="37.51999999999998" height="226.80000000000018" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.1" data-y="-14.096875" x="437.32" y="1336.7975" width="112.56" height="37.52000000000021" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.7075000000000005" data-y="-14.096875" x="40" y="1336.7975" width="144.75999999999993" height="37.52000000000021" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-17.446875000000002" x="301.24" y="1486.8775" width="37.51999999999998" height="112.55999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-18.774375" x="301.24" y="1599.4375" width="37.51999999999998" height="36.11999999999966" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5525" data-y="-14.096875" x="549.88" y="1336.7975" width="50.120000000000005" height="37.52000000000021" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-5.551115123125783e-17" data-y="-13.454375" x="301.24" y="1302.3575" width="37.51999999999998" height="34.43999999999983" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="-11.429375" x="245.24" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="-11.429375" x="357.24" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="-11.429375" x="413.24" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="-11.429375" x="469.24" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="-11.429375" x="525.24" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="-11.429375" x="77.24000000000001" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="-11.429375" x="133.24" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-11.429375" x="189.24" y="1075.5575" width="37.51999999999998" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="-16.764375" x="357.24" y="1374.3175" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="-16.764375" x="245.24" y="1374.3175" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="-16.764375" x="413.24" y="1374.3175" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="-16.764375" x="77.24000000000001" y="1374.3175" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="-16.764375" x="133.24" y="1374.3175" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-15.436875" x="189.24" y="1374.3174999999999" width="37.51999999999998" height="112.56000000000017" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="-16.764375" x="469.24" y="1374.3175" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="-16.764375" x="525.24" y="1374.3175" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-17.769375" x="189.24" y="1486.8775" width="37.51999999999998" height="148.67999999999984" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-11.429375" x="282.76" y="1075.5575" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.5" data-y="-11.429375" x="338.76" y="1075.5575" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-11.429375" x="506.76" y="1075.5575" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-11.429375" x="114.75999999999999" y="1075.5575" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-11.429375" x="226.76" y="1075.5575" width="18.480000000000018" height="261.24" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-16.764375" x="114.75999999999999" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-16.764375" x="506.76" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-16.764375" x="170.76" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-16.764375" x="282.76" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-16.764375" x="450.76" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.5" data-y="-16.764375" x="338.76" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-11.429375" x="170.76" y="1075.5575" width="18.480000000000018" height="261.24" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-11.429375" x="450.76" y="1075.5575" width="18.480000000000018" height="261.24" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-16.764375" x="40" y="1374.3175" width="37.23999999999995" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-11.429375" x="40" y="1075.5575" width="37.23999999999995" height="261.24" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-16.764375" x="562.76" y="1374.3175" width="37.24000000000001" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-11.429375" x="562.76" y="1075.5575" width="37.24000000000001" height="261.24" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-11.429375" x="394.76" y="1075.5575" width="18.480000000000018" height="261.24" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-16.764375" x="394.76" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-16.764375" x="226.76" y="1374.3175" width="18.480000000000018" height="261.2399999999998" fill="#fef3c7" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.8449999999999998" data-y="-28.19375" x="297.32" y="2126.2225" width="140" height="37.52000000000044" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4100000000000006" data-y="-28.19375" x="184.75999999999993" y="2126.2225" width="112.56000000000006" height="37.52000000000044" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-29.53375" x="301.24" y="2163.7425000000003" width="37.51999999999998" height="112.55999999999949" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-25.21875" x="301.24" y="1864.9825" width="37.51999999999998" height="226.79999999999973" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.1" data-y="-28.19375" x="437.32" y="2126.2225" width="112.56" height="37.52000000000044" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.7075000000000005" data-y="-28.19375" x="40" y="2126.2225" width="144.75999999999993" height="37.52000000000044" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-31.543750000000003" x="301.24" y="2276.3025000000002" width="37.51999999999998" height="112.55999999999995" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-32.87125" x="301.24" y="2388.8625" width="37.51999999999998" height="36.11999999999989" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5525" data-y="-28.19375" x="549.88" y="2126.2225" width="50.120000000000005" height="37.52000000000044" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-5.551115123125783e-17" data-y="-27.551250000000003" x="301.24" y="2091.7825000000003" width="37.51999999999998" height="34.4399999999996" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="-25.52625" x="245.24" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="-25.52625" x="357.24" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="-25.52625" x="413.24" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="-25.52625" x="469.24" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="-25.52625" x="525.24" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="-25.52625" x="77.24000000000001" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="-25.52625" x="133.24" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-25.52625" x="189.24" y="1864.9825" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="-30.861250000000002" x="357.24" y="2163.7425000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="-30.861250000000002" x="245.24" y="2163.7425000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="-30.861250000000002" x="413.24" y="2163.7425000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="-30.861250000000002" x="77.24000000000001" y="2163.7425000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="-30.861250000000002" x="133.24" y="2163.7425000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-29.53375" x="189.24" y="2163.7425000000003" width="37.51999999999998" height="112.55999999999949" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="-30.861250000000002" x="469.24" y="2163.7425000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="-30.861250000000002" x="525.24" y="2163.7425000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-31.86625" x="189.24" y="2276.3025" width="37.51999999999998" height="148.6800000000003" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-25.52625" x="338.76" y="1864.9825" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-25.52625" x="506.76" y="1864.9825" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-25.52625" x="114.75999999999999" y="1864.9825" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-25.52625" x="226.76" y="1864.9825" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-30.861250000000002" x="114.75999999999999" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-30.861250000000002" x="506.76" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-30.861250000000002" x="170.76" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-30.861250000000002" x="282.76" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-30.861250000000002" x="450.76" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.5" data-y="-30.861250000000002" x="338.76" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-25.52625" x="170.76" y="1864.9825" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-25.52625" x="450.76" y="1864.9825" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-30.861250000000002" x="40" y="2163.7425000000003" width="37.23999999999995" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-25.52625" x="40" y="1864.9825" width="37.23999999999995" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-30.861250000000002" x="562.76" y="2163.7425000000003" width="37.24000000000001" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-25.52625" x="562.76" y="1864.9825" width="37.24000000000001" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-25.21875" x="282.76" y="1864.9825" width="18.480000000000018" height="226.79999999999973" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-27.551250000000003" x="282.76" y="2091.7825000000003" width="18.480000000000018" height="34.4399999999996" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-25.52625" x="394.76" y="1864.9825" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-30.861250000000002" x="394.76" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-30.861250000000002" x="226.76" y="2163.7425000000003" width="18.480000000000018" height="261.2399999999998" fill="#d1fae5" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.8449999999999998" data-y="-42.290625" x="297.32" y="2915.6475" width="140" height="37.51999999999953" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4100000000000006" data-y="-42.290625" x="184.75999999999993" y="2915.6475" width="112.56000000000006" height="37.51999999999953" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-43.630625" x="301.24" y="2953.1674999999996" width="37.51999999999998" height="112.5600000000004" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-39.315625" x="301.24" y="2654.4075000000003" width="37.51999999999998" height="226.79999999999927" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.1" data-y="-42.290625" x="437.32" y="2915.6475" width="112.56" height="37.51999999999953" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.7075000000000005" data-y="-42.290625" x="40" y="2915.6475" width="144.75999999999993" height="37.51999999999953" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-45.640625" x="301.24" y="3065.7275" width="37.51999999999998" height="112.5600000000004" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-46.968125" x="301.24" y="3178.2875000000004" width="37.51999999999998" height="36.11999999999989" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5525" data-y="-42.290625" x="549.88" y="2915.6475" width="50.120000000000005" height="37.51999999999953" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-5.551115123125783e-17" data-y="-41.648125" x="301.24" y="2881.2075000000004" width="37.51999999999998" height="34.4399999999996" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="-39.623125" x="245.24" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="-39.623125" x="357.24" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="-39.623125" x="413.24" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="-39.623125" x="469.24" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="-39.623125" x="525.24" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="-39.623125" x="77.24000000000001" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="-39.623125" x="133.24" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-39.623125" x="189.24" y="2654.4075000000003" width="37.51999999999998" height="261.2399999999998" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.9999999999999999" data-y="-44.958124999999995" x="357.24" y="2953.1674999999996" width="37.51999999999998" height="261.2400000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1" data-y="-44.958124999999995" x="245.24" y="2953.1674999999996" width="37.51999999999998" height="261.2400000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2" data-y="-44.958124999999995" x="413.24" y="2953.1674999999996" width="37.51999999999998" height="261.2400000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4" data-y="-44.958124999999995" x="77.24000000000001" y="2953.1674999999996" width="37.51999999999998" height="261.2400000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3" data-y="-44.958124999999995" x="133.24" y="2953.1674999999996" width="37.51999999999998" height="261.2400000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-43.630625" x="189.24" y="2953.1674999999996" width="37.51999999999998" height="112.5600000000004" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3" data-y="-44.958124999999995" x="469.24" y="2953.1674999999996" width="37.51999999999998" height="261.2400000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4" data-y="-44.958124999999995" x="525.24" y="2953.1674999999996" width="37.51999999999998" height="261.2400000000007" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2" data-y="-45.963125" x="189.24" y="3065.7275" width="37.51999999999998" height="148.6800000000003" fill="#dbeafe" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-41.290625" x="562.76" y="2859.6475" width="37.24000000000001" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-40.290625" x="562.76" y="2803.6475" width="37.24000000000001" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-43.290625" x="562.76" y="2971.6475" width="37.24000000000001" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.6675" data-y="-44.290625" x="562.76" y="3027.6475" width="37.24000000000001" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-41.290625" x="40" y="2859.6475" width="37.23999999999995" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-40.290625" x="394.76" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-43.290625" x="40" y="2971.6475" width="37.23999999999995" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.6675" data-y="-40.290625" x="40" y="2803.6475" width="37.23999999999995" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-41.290625" x="394.76" y="2859.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-41.290625" x="282.76" y="2859.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-40.290625" x="282.76" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-37.790625" x="58.75999999999999" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-37.790625" x="114.75999999999999" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-37.790625" x="170.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-37.790625" x="226.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-37.790625" x="282.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-37.790625" x="338.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-37.790625" x="394.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-37.790625" x="450.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-37.790625" x="506.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-37.790625" x="562.76" y="2673.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-38.790625" x="58.75999999999999" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-38.790625" x="114.75999999999999" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-38.790625" x="170.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-38.790625" x="226.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-38.790625" x="282.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-38.790625" x="338.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-38.790625" x="394.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-38.790625" x="450.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-38.790625" x="506.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-38.790625" x="562.76" y="2729.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-39.790625" x="58.75999999999999" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-39.790625" x="114.75999999999999" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-39.790625" x="170.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-39.790625" x="226.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-39.790625" x="282.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-39.790625" x="338.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-39.790625" x="394.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-39.790625" x="450.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-39.790625" x="506.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-39.790625" x="562.76" y="2785.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-40.790625" x="58.75999999999999" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-40.790625" x="114.75999999999999" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-40.790625" x="170.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-40.790625" x="226.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-40.790625" x="282.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-40.790625" x="338.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-40.790625" x="394.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-40.790625" x="450.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-40.790625" x="506.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-40.790625" x="562.76" y="2841.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-41.790625" x="58.75999999999999" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-41.790625" x="114.75999999999999" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-41.790625" x="170.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-41.790625" x="226.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-41.790625" x="282.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-41.790625" x="338.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-41.790625" x="394.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-41.790625" x="450.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-41.790625" x="506.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-41.790625" x="562.76" y="2897.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-42.790625" x="58.75999999999999" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-42.790625" x="114.75999999999999" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-42.790625" x="170.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-42.790625" x="226.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-42.790625" x="282.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-42.790625" x="338.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-42.790625" x="394.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-42.790625" x="450.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-42.790625" x="506.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-42.790625" x="562.76" y="2953.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-43.790625" x="58.75999999999999" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-43.790625" x="114.75999999999999" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-43.790625" x="170.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-43.790625" x="226.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-43.790625" x="282.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-43.790625" x="338.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-43.790625" x="394.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-43.790625" x="450.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-43.790625" x="506.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-43.790625" x="562.76" y="3009.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-44.790625" x="58.75999999999999" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-44.790625" x="114.75999999999999" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-44.790625" x="170.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-44.790625" x="226.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-44.790625" x="282.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-44.790625" x="338.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-44.790625" x="394.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-44.790625" x="450.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-44.790625" x="506.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-44.790625" x="562.76" y="3065.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-45.790625" x="58.75999999999999" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-45.790625" x="114.75999999999999" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-45.790625" x="170.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-45.790625" x="226.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-45.790625" x="282.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-45.790625" x="338.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-45.790625" x="394.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-45.790625" x="450.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-45.790625" x="506.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-45.790625" x="562.76" y="3121.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-46.790625" x="58.75999999999999" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-46.790625" x="114.75999999999999" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-46.790625" x="170.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-46.790625" x="226.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-46.790625" x="282.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-46.790625" x="338.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-46.790625" x="394.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-46.790625" x="450.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-46.790625" x="506.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-46.790625" x="562.76" y="3177.1674999999996" width="18.480000000000018" height="18.480000000000473" fill="red" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-44.290625" x="282.76" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-43.290625" x="282.76" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-44.290625" x="338.76" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-43.290625" x="338.76" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-39.290625" x="282.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-38.290625" x="282.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-37.458124999999995" x="282.76" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-41.148125" x="338.76" y="2859.6475" width="18.480000000000018" height="21.5600000000004" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-40.290625" x="338.76" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-39.290625" x="338.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-38.290625" x="338.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-37.458124999999995" x="338.76" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.8325" data-y="-42.790625" x="40" y="2953.1674999999996" width="18.760000000000048" height="18.480000000000473" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.8325" data-y="-41.790625" x="40" y="2897.1674999999996" width="18.760000000000048" height="18.480000000000473" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-46.290625" x="282.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-45.290625" x="282.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-46.290625" x="338.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-45.290625" x="338.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5" data-y="-47.123125" x="282.76" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.49999999999999994" data-y="-47.123125" x="338.76" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.8325" data-y="-42.790625" x="581.24" y="2953.1674999999996" width="18.75999999999999" height="18.480000000000473" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.8325" data-y="-41.790625" x="581.24" y="2897.1674999999996" width="18.75999999999999" height="18.480000000000473" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="0.4999999999999999" data-y="-41.483125" x="338.76" y="2881.2075000000004" width="18.480000000000018" height="15.959999999999127" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-41.290625" x="226.76" y="2859.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-40.290625" x="226.76" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-39.290625" x="226.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-38.290625" x="226.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-37.458124999999995" x="226.76" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-39.290625" x="394.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-38.290625" x="394.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-37.458124999999995" x="394.76" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-41.290625" x="450.76" y="2859.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-40.290625" x="450.76" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-39.290625" x="450.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-38.290625" x="450.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-37.458124999999995" x="450.76" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-41.290625" x="506.76" y="2859.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-40.290625" x="506.76" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-39.290625" x="506.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-38.290625" x="506.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-37.458124999999995" x="506.76" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-41.290625" x="114.75999999999999" y="2859.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-40.290625" x="114.75999999999999" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-39.290625" x="114.75999999999999" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-38.290625" x="114.75999999999999" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-37.458124999999995" x="114.75999999999999" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-41.290625" x="170.76" y="2859.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-40.290625" x="170.76" y="2803.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-39.290625" x="170.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-38.290625" x="170.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-37.458124999999995" x="170.76" y="2654.4075000000003" width="18.480000000000018" height="18.75999999999931" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-47.123125" x="394.76" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-46.290625" x="394.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-45.290625" x="394.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-44.290625" x="394.76" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="1.5" data-y="-43.290625" x="394.76" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-47.123125" x="226.76" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-46.290625" x="226.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-45.290625" x="226.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-44.290625" x="226.76" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5" data-y="-43.290625" x="226.76" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-47.123125" x="450.76" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-46.290625" x="450.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-45.290625" x="450.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-44.290625" x="450.76" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="2.5" data-y="-43.290625" x="450.76" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-47.123125" x="114.75999999999999" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-46.290625" x="114.75999999999999" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-45.290625" x="114.75999999999999" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-44.290625" x="114.75999999999999" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-3.5" data-y="-43.290625" x="114.75999999999999" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-47.123125" x="170.76" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-46.290625" x="170.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-45.290625" x="170.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-44.290625" x="170.76" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-2.5" data-y="-43.290625" x="170.76" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-47.123125" x="506.76" y="3195.6475" width="18.480000000000018" height="18.76000000000022" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-46.290625" x="506.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-45.290625" x="506.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-44.290625" x="506.76" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="3.5" data-y="-43.290625" x="506.76" y="2971.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.8325" data-y="-40.790625" x="581.24" y="2841.1674999999996" width="18.75999999999999" height="18.480000000000473" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.8325" data-y="-43.790625" x="581.24" y="3009.1674999999996" width="18.75999999999999" height="18.480000000000473" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.8325" data-y="-40.790625" x="40" y="2841.1674999999996" width="18.760000000000048" height="18.480000000000473" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-38.290625" x="58.75999999999999" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-38.290625" x="562.76" y="2691.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-39.290625" x="58.75999999999999" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-39.290625" x="562.76" y="2747.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-44.290625" x="58.75999999999999" y="3027.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-45.290625" x="58.75999999999999" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-45.290625" x="562.76" y="3083.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-46.290625" x="58.75999999999999" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><g><rect data-type="rect" data-label="node" data-x="4.5" data-y="-46.290625" x="562.76" y="3139.6475" width="18.480000000000018" height="37.51999999999953" fill="#e9d5ff" stroke="black" stroke-width="0.017857142857142856"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="5.7775" x="320" y="242.59249999999997" fill="black" font-size="28" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=0</text><text data-type="text" data-label="Layer z=1" data-x="0" data-y="-8.319375" x="320" y="1032.0175" fill="black" font-size="28" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=1</text><text data-type="text" data-label="Layer z=2" data-x="0" data-y="-22.41625" x="320" y="1821.4425" fill="black" font-size="28" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=2</text><text data-type="text" data-label="Layer z=3" data-x="0" data-y="-36.513125" x="320" y="2610.8675000000003" fill="black" font-size="28" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=3</text><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="3429" stroke="#666" stroke-width="0.5"/><line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5"/><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text></g><script><![CDATA[
2
+ document.currentScript.parentElement.addEventListener('mousemove', (e) => {
3
+ const svg = e.currentTarget;
4
+ const rect = svg.getBoundingClientRect();
5
+ const x = e.clientX - rect.left;
6
+ const y = e.clientY - rect.top;
7
+ const crosshair = svg.getElementById('crosshair');
8
+ const h = svg.getElementById('crosshair-h');
9
+ const v = svg.getElementById('crosshair-v');
10
+ const coords = svg.getElementById('coordinates');
11
+
12
+ crosshair.style.display = 'block';
13
+ h.setAttribute('x1', '0');
14
+ h.setAttribute('x2', '640');
15
+ h.setAttribute('y1', y);
16
+ h.setAttribute('y2', y);
17
+ v.setAttribute('x1', x);
18
+ v.setAttribute('x2', x);
19
+ v.setAttribute('y1', '0');
20
+ v.setAttribute('y2', '3429');
21
+
22
+ // Calculate real coordinates using inverse transformation
23
+ const matrix = {"a":56,"c":0,"e":320,"b":0,"d":-56,"f":566.1324999999999};
24
+ // Manually invert and apply the affine transform
25
+ // Since we only use translate and scale, we can directly compute:
26
+ // x' = (x - tx) / sx
27
+ // y' = (y - ty) / sy
28
+ const sx = matrix.a;
29
+ const sy = matrix.d;
30
+ const tx = matrix.e;
31
+ const ty = matrix.f;
32
+ const realPoint = {
33
+ x: (x - tx) / sx,
34
+ y: (y - ty) / sy // Flip y back since we used negative scale
35
+ }
36
+
37
+ coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
38
+ coords.setAttribute('x', (x + 5).toString());
39
+ coords.setAttribute('y', (y - 5).toString());
40
+ });
41
+ document.currentScript.parentElement.addEventListener('mouseleave', () => {
42
+ document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
43
+ });
44
+ ]]></script></svg>
@@ -0,0 +1,97 @@
1
+ import { expect, test } from "bun:test"
2
+ import srj_json from "./bugreport11-b2de3c.json"
3
+ import {
4
+ getBounds,
5
+ getSvgFromGraphicsObject,
6
+ mergeGraphics,
7
+ stackGraphicsVertically,
8
+ type GraphicsObject,
9
+ type Rect,
10
+ } from "graphics-debug"
11
+ import { RectDiffPipeline } from "lib/RectDiffPipeline"
12
+ import { makeCapacityMeshNodeWithLayerInfo } from "tests/fixtures/makeCapacityMeshNodeWithLayerInfo"
13
+ import { makeSimpleRouteOutlineGraphics } from "tests/fixtures/makeSimpleRouteOutlineGraphics"
14
+
15
+ const srj = srj_json.simple_route_json ?? srj_json.simpleRouteJson ?? srj_json
16
+
17
+ // Same scenario as bugreport11-b2de3c but with obstacleClearance applied
18
+ const OBSTACLE_CLEARANCE = 0.015
19
+
20
+ test("bugreport11-b2de3c with clearance", async () => {
21
+ const solver = new RectDiffPipeline({
22
+ simpleRouteJson: srj,
23
+ obstacleClearance: OBSTACLE_CLEARANCE,
24
+ })
25
+
26
+ const outline = makeSimpleRouteOutlineGraphics(srj)
27
+
28
+ solver.solve()
29
+
30
+ const { meshNodes } = solver.getOutput()
31
+ const rectsByCombo = makeCapacityMeshNodeWithLayerInfo(meshNodes)
32
+ const allGraphicsObjects: GraphicsObject[] = []
33
+
34
+ for (const z of Array.from({ length: srj.layerCount }, (_, index) => index)) {
35
+ const layerRects: Rect[] = []
36
+
37
+ for (const [key, rects] of rectsByCombo) {
38
+ const layers = key
39
+ .split(",")
40
+ .map((value) => Number.parseInt(value, 10))
41
+ .filter((value) => !Number.isNaN(value))
42
+
43
+ if (layers.includes(z)) {
44
+ layerRects.push(...rects)
45
+ }
46
+ }
47
+
48
+ let labelY = 0
49
+
50
+ if (layerRects.length > 0) {
51
+ let maxY = -Infinity
52
+
53
+ for (const rect of layerRects) {
54
+ const top = rect.center.y + rect.height * (2 / 3)
55
+
56
+ if (top > maxY) maxY = top
57
+ }
58
+
59
+ labelY = maxY
60
+ }
61
+
62
+ const graphics: GraphicsObject = {
63
+ title: `RectDiffPipeline - z${z} (clearance ${OBSTACLE_CLEARANCE})`,
64
+ texts: [
65
+ {
66
+ anchorSide: "top_right",
67
+ text: `Layer z=${z}`,
68
+ x: 0,
69
+ y: labelY,
70
+ fontSize: 0.5,
71
+ },
72
+ ],
73
+ coordinateSystem: "cartesian",
74
+ rects: layerRects,
75
+ points: [],
76
+ lines: [],
77
+ }
78
+
79
+ allGraphicsObjects.push(mergeGraphics(graphics, outline))
80
+ }
81
+
82
+ const stackedGraphics = stackGraphicsVertically(allGraphicsObjects)
83
+ const bounds = getBounds(stackedGraphics)
84
+ const boundsWidth = Math.max(1, bounds.maxX - bounds.minX)
85
+ const boundsHeight = Math.max(1, bounds.maxY - bounds.minY)
86
+ const svgWidth = 640
87
+ const svgHeight = Math.max(
88
+ svgWidth,
89
+ Math.ceil((boundsHeight / boundsWidth) * svgWidth),
90
+ )
91
+
92
+ const svg = getSvgFromGraphicsObject(stackedGraphics, {
93
+ svgWidth,
94
+ svgHeight,
95
+ })
96
+ await expect(svg).toMatchSvgSnapshot(import.meta.path)
97
+ })