@tscircuit/rectdiff 0.0.19 → 0.0.21
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.
- package/.github/workflows/bun-test.yml +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +28 -35
- package/lib/solvers/RectDiffExpansionSolver/RectDiffExpansionSolver.ts +6 -3
- package/lib/solvers/RectDiffGridSolverPipeline/buildObstacleIndexes.ts +2 -1
- package/lib/solvers/RectDiffSeedingSolver/RectDiffSeedingSolver.ts +2 -7
- package/lib/types/capacity-mesh-types.ts +1 -0
- package/lib/utils/expandRectFromSeed.ts +3 -0
- package/lib/utils/rectToTree.ts +5 -1
- package/lib/utils/resizeSoftOverlaps.ts +8 -16
- package/package.json +1 -1
- package/tests/solver/__snapshots__/rectDiffGridSolverPipeline.snap.svg +3 -3
- package/tests/solver/both-points-equivalent/__snapshots__/both-points-equivalent.snap.svg +44 -0
- package/tests/solver/both-points-equivalent/both-points-equivalent.srj.json +64 -0
- package/tests/solver/both-points-equivalent/both-points-equivalent.test.ts +92 -0
- package/tests/solver/bugreport01-be84eb/__snapshots__/bugreport01-be84eb.snap.svg +44 -0
- package/tests/solver/bugreport01-be84eb/bugreport01-be84eb.json +929 -0
- package/tests/solver/bugreport01-be84eb/bugreport01-be84eb.test.ts +93 -0
- package/tests/solver/bugreport02-bc4361/__snapshots__/bugreport02-bc4361.snap.svg +44 -0
- package/tests/solver/bugreport02-bc4361/bugreport02-bc4361.json +1276 -0
- package/tests/solver/bugreport02-bc4361/bugreport02-bc4361.test.ts +93 -0
- package/tests/solver/bugreport03-fe4a17/__snapshots__/bugreport03-fe4a17.snap.svg +44 -0
- package/tests/solver/bugreport03-fe4a17/bugreport03-fe4a17.json +986 -0
- package/tests/solver/bugreport03-fe4a17/bugreport03-fe4a17.test.ts +93 -0
- package/tests/solver/bugreport07-d3f3be/__snapshots__/bugreport07-d3f3be.snap.svg +44 -0
- package/tests/solver/bugreport07-d3f3be/bugreport07-d3f3be.json +1211 -0
- package/tests/solver/bugreport07-d3f3be/bugreport07-d3f3be.test.ts +93 -0
- package/tests/solver/bugreport08-e3ec95/__snapshots__/bugreport08-e3ec95.snap.svg +44 -0
- package/tests/solver/bugreport08-e3ec95/bugreport08-e3ec95.json +1511 -0
- package/tests/solver/bugreport08-e3ec95/bugreport08-e3ec95.test.ts +93 -0
- package/tests/solver/bugreport09-618e09/__snapshots__/bugreport09-618e09.snap.svg +44 -0
- package/tests/solver/bugreport09-618e09/bugreport09-618e09.json +2827 -0
- package/tests/solver/bugreport09-618e09/bugreport09-618e09.test.ts +93 -0
- package/tests/solver/bugreport10-71239a/__snapshots__/bugreport10-71239a.snap.svg +44 -0
- package/tests/solver/bugreport10-71239a/bugreport10-71239a.json +890 -0
- package/tests/solver/bugreport10-71239a/bugreport10-71239a.test.ts +93 -0
- package/tests/solver/bugreport11-b2de3c/__snapshots__/bugreport11-b2de3c.snap.svg +44 -0
- package/tests/solver/bugreport11-b2de3c/bugreport11-b2de3c.json +4315 -0
- package/tests/solver/bugreport11-b2de3c/bugreport11-b2de3c.test.ts +93 -0
- package/tests/solver/bugreport12-35ce1c/__snapshots__/bugreport12-35ce1c.snap.svg +44 -0
- package/tests/solver/bugreport12-35ce1c/bugreport12-35ce1c.json +475 -0
- package/tests/solver/bugreport12-35ce1c/bugreport12-35ce1c.test.ts +93 -0
- package/tests/solver/bugreport13-b9a758/__snapshots__/bugreport13-b9a758.snap.svg +44 -0
- package/tests/solver/bugreport13-b9a758/bugreport13-b9a758.json +15815 -0
- package/tests/solver/bugreport13-b9a758/bugreport13-b9a758.test.ts +93 -0
- package/tests/solver/bugreport16-d95f38/__snapshots__/bugreport16-d95f38.snap.svg +44 -0
- package/tests/solver/bugreport16-d95f38/bugreport16-d95f38.json +623 -0
- package/tests/solver/bugreport16-d95f38/bugreport16-d95f38.test.ts +93 -0
- package/tests/solver/bugreport18-1b2d06/__snapshots__/bugreport18-1b2d06.snap.svg +44 -0
- package/tests/solver/bugreport18-1b2d06/bugreport18-1b2d06.json +543 -0
- package/tests/solver/bugreport18-1b2d06/bugreport18-1b2d06.test.ts +93 -0
- package/tests/solver/bugreport19/__snapshots__/bugreport19.snap.svg +44 -0
- package/tests/solver/bugreport19/bugreport19.json +678 -0
- package/tests/solver/bugreport19/bugreport19.test.ts +93 -0
- package/tests/solver/bugreport20-obstacle-clipping/__snapshots__/bugreport20-obstacle-clipping.snap.svg +44 -0
- package/tests/solver/bugreport20-obstacle-clipping/bugreport20-obstacle-clipping.json +109 -0
- package/tests/solver/bugreport20-obstacle-clipping/bugreport20-obstacle-clipping.test.ts +93 -0
- package/tests/solver/bugreport21-board-outline/__snapshots__/bugreport21-board-outline.snap.svg +44 -0
- package/tests/solver/bugreport21-board-outline/bugreport21-board-outline.json +148 -0
- package/tests/solver/bugreport21-board-outline/bugreport21-board-outline.test.ts +93 -0
- package/tests/solver/bugreport22-2a75ce/__snapshots__/bugreport22-2a75ce.snap.svg +44 -0
- package/tests/solver/bugreport22-2a75ce/bugreport22-2a75ce.json +1550 -0
- package/tests/solver/bugreport22-2a75ce/bugreport22-2a75ce.test.ts +93 -0
- package/tests/solver/bugreport23-LGA15x4/__snapshots__/bugreport23-LGA15x4.snap.svg +44 -0
- package/tests/solver/bugreport23-LGA15x4/bugreport23-LGA15x4.srj.json +2401 -0
- package/tests/solver/bugreport23-LGA15x4/bugreport23-LGA15x4.test.ts +92 -0
- package/tests/solver/bugreport24-05597c/__snapshots__/bugreport24-05597c.snap.svg +44 -0
- package/tests/solver/bugreport24-05597c/bugreport24-05597c.json +8427 -0
- package/tests/solver/bugreport24-05597c/bugreport24-05597c.test.ts +93 -0
- package/tests/solver/bugreport25-4b1d55/__snapshots__/bugreport25-4b1d55.snap.svg +44 -0
- package/tests/solver/bugreport25-4b1d55/bugreport25-4b1d55.json +119 -0
- package/tests/solver/bugreport25-4b1d55/bugreport25-4b1d55.test.ts +93 -0
- package/tests/solver/bugreport26-66b0b2/__snapshots__/bugreport26-66b0b2.snap.svg +44 -0
- package/tests/solver/bugreport26-66b0b2/bugreport26-66b0b2.json +1651 -0
- package/tests/solver/bugreport26-66b0b2/bugreport26-66b0b2.test.ts +93 -0
- package/tests/solver/bugreport27-dd3734/__snapshots__/bugreport27-dd3734.snap.svg +44 -0
- package/tests/solver/bugreport27-dd3734/bugreport27-dd3734.json +4116 -0
- package/tests/solver/bugreport27-dd3734/bugreport27-dd3734.test.ts +93 -0
- package/tests/solver/bugreport28-18a9ef/__snapshots__/bugreport28-18a9ef.snap.svg +44 -0
- package/tests/solver/bugreport28-18a9ef/bugreport28-18a9ef.json +4116 -0
- package/tests/solver/bugreport28-18a9ef/bugreport28-18a9ef.test.ts +93 -0
- package/tests/solver/bugreport29-7deae8/__snapshots__/bugreport29-7deae8.snap.svg +44 -0
- package/tests/solver/bugreport29-7deae8/bugreport29-7deae8.json +4118 -0
- package/tests/solver/bugreport29-7deae8/bugreport29-7deae8.test.ts +93 -0
- package/tests/solver/bugreport30-2174c8/__snapshots__/bugreport30-2174c8.snap.svg +44 -0
- package/tests/solver/bugreport30-2174c8/bugreport30-2174c8.json +4007 -0
- package/tests/solver/bugreport30-2174c8/bugreport30-2174c8.test.ts +93 -0
- package/tests/solver/bugreport33-213d45/__snapshots__/bugreport33-213d45.snap.svg +44 -0
- package/tests/solver/bugreport33-213d45/bugreport33-213d45.json +5089 -0
- package/tests/solver/bugreport33-213d45/bugreport33-213d45.test.ts +93 -0
- package/tests/solver/bugreport34-e9dea2/__snapshots__/bugreport34-e9dea2.snap.svg +44 -0
- package/tests/solver/bugreport34-e9dea2/bugreport34-e9dea2.json +3924 -0
- package/tests/solver/bugreport34-e9dea2/bugreport34-e9dea2.test.ts +93 -0
- package/tests/solver/bugreport35-191db9/__snapshots__/bugreport35-191db9.snap.svg +44 -0
- package/tests/solver/bugreport35-191db9/bugreport35-191db9.json +4237 -0
- package/tests/solver/bugreport35-191db9/bugreport35-191db9.test.ts +93 -0
- package/tests/solver/bugreport36-bf8303/__snapshots__/bugreport36-bf8303.snap.svg +44 -0
- package/tests/solver/bugreport36-bf8303/bugreport36-bf8303.json +29660 -0
- package/tests/solver/bugreport36-bf8303/bugreport36-bf8303.test.ts +93 -0
- package/tests/solver/interaction/__snapshots__/interaction.snap.svg +44 -0
- package/tests/solver/interaction/interaction.srj.json +58 -0
- package/tests/solver/interaction/interaction.test.ts +92 -0
- package/tests/solver/multi-point/__snapshots__/multi-point.snap.svg +44 -0
- package/tests/solver/multi-point/multi-point.srj.json +57 -0
- package/tests/solver/multi-point/multi-point.test.ts +92 -0
- package/tests/solver/no-better-path/__snapshots__/no-better-path.snap.svg +44 -0
- package/tests/solver/no-better-path/no-better-path.srj.json +48 -0
- package/tests/solver/no-better-path/no-better-path.test.ts +92 -0
- package/tests/solver/offboardconnects01/__snapshots__/offboardconnects01.snap.svg +44 -0
- package/tests/solver/offboardconnects01/offboardconnects01.srj.json +53 -0
- package/tests/solver/offboardconnects01/offboardconnects01.test.ts +92 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/__snapshots__/pcb_trace_id-should-return-root-connection-name.snap.svg +44 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/pcb_trace_id-should-return-root-connection-name.srj.json +129 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/pcb_trace_id-should-return-root-connection-name.test.ts +92 -0
- package/tests/solver/transitivity/__snapshots__/transitivity.snap.svg +44 -0
- package/tests/solver/transitivity/transitivity.srj.json +64 -0
- package/tests/solver/transitivity/transitivity.test.ts +92 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { expect, test } from "bun:test"
|
|
2
|
+
import srj_json from "./bugreport02-bc4361.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
|
+
test("bugreport02-bc4361", async () => {
|
|
18
|
+
const solver = new RectDiffPipeline({
|
|
19
|
+
simpleRouteJson: srj,
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
const outline = makeSimpleRouteOutlineGraphics(srj)
|
|
23
|
+
|
|
24
|
+
solver.solve()
|
|
25
|
+
|
|
26
|
+
const { meshNodes } = solver.getOutput()
|
|
27
|
+
const rectsByCombo = makeCapacityMeshNodeWithLayerInfo(meshNodes)
|
|
28
|
+
const allGraphicsObjects: GraphicsObject[] = []
|
|
29
|
+
|
|
30
|
+
for (const z of Array.from({ length: srj.layerCount }, (_, index) => index)) {
|
|
31
|
+
const layerRects: Rect[] = []
|
|
32
|
+
|
|
33
|
+
for (const [key, rects] of rectsByCombo) {
|
|
34
|
+
const layers = key
|
|
35
|
+
.split(",")
|
|
36
|
+
.map((value) => Number.parseInt(value, 10))
|
|
37
|
+
.filter((value) => !Number.isNaN(value))
|
|
38
|
+
|
|
39
|
+
if (layers.includes(z)) {
|
|
40
|
+
layerRects.push(...rects)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let labelY = 0
|
|
45
|
+
|
|
46
|
+
if (layerRects.length > 0) {
|
|
47
|
+
let maxY = -Infinity
|
|
48
|
+
|
|
49
|
+
for (const rect of layerRects) {
|
|
50
|
+
const top = rect.center.y + rect.height * (2 / 3)
|
|
51
|
+
|
|
52
|
+
if (top > maxY) maxY = top
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
labelY = maxY
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const graphics: GraphicsObject = {
|
|
59
|
+
title: `RectDiffPipeline - z${z}`,
|
|
60
|
+
texts: [
|
|
61
|
+
{
|
|
62
|
+
anchorSide: "top_right",
|
|
63
|
+
text: `Layer z=${z}`,
|
|
64
|
+
x: 0,
|
|
65
|
+
y: labelY,
|
|
66
|
+
fontSize: 0.5,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
coordinateSystem: "cartesian",
|
|
70
|
+
rects: layerRects,
|
|
71
|
+
points: [],
|
|
72
|
+
lines: [],
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
allGraphicsObjects.push(mergeGraphics(graphics, outline))
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const stackedGraphics = stackGraphicsVertically(allGraphicsObjects)
|
|
79
|
+
const bounds = getBounds(stackedGraphics)
|
|
80
|
+
const boundsWidth = Math.max(1, bounds.maxX - bounds.minX)
|
|
81
|
+
const boundsHeight = Math.max(1, bounds.maxY - bounds.minY)
|
|
82
|
+
const svgWidth = 640
|
|
83
|
+
const svgHeight = Math.max(
|
|
84
|
+
svgWidth,
|
|
85
|
+
Math.ceil((boundsHeight / boundsWidth) * svgWidth),
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
const svg = getSvgFromGraphicsObject(stackedGraphics, {
|
|
89
|
+
svgWidth,
|
|
90
|
+
svgHeight,
|
|
91
|
+
})
|
|
92
|
+
await expect(svg).toMatchSvgSnapshot(import.meta.path)
|
|
93
|
+
})
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<svg width="640" height="3304" viewBox="0 0 640 3304" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-6.35,-13.97 6.35,-13.97 6.35,13.97 -6.35,13.97 -6.35,-13.97" data-type="line" data-label="bounds" points="40,1491.3940944881888 600,1491.3940944881888 600,259.3940944881889 40,259.3940944881889 40,1491.3940944881888" fill="none" stroke="#111827" stroke-width="4.409448818897638"/></g><g><polyline data-points="-6.35,-50.393125000000005 6.35,-50.393125000000005 6.35,-22.453125000000007 -6.35,-22.453125000000007 -6.35,-50.393125000000005" data-type="line" data-label="bounds" points="40,3097.453149606299 600,3097.453149606299 600,1865.4531496062996 40,1865.4531496062996 40,3097.453149606299" fill="none" stroke="#111827" stroke-width="4.409448818897638"/></g><g><rect data-type="rect" data-label="node" data-x="8.881784197001252e-16" data-y="-3.920051349999939" x="137.4488188976378" y="963.1466544881836" width="365.1023622047245" height="170.20019590551703" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.3874999999999993" data-y="7.050750000000001" x="348" y="444.1940944881889" width="154.5511811023622" height="240.6015748031495" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="8.881784197001252e-16" data-y="-8.314499999999999" x="137.4488188976378" y="1177.441338582677" width="365.1023622047245" height="129.15275590551187" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-2.814988349999984" data-y="4.540249999999999" x="137.4488188976378" y="444.19409448818897" width="116.85142110236359" height="462" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-4.0005" data-y="-11.874500000000001" x="40" y="1306.5940944881888" width="207.2" height="184.80000000000018" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.264970400000024" data-y="2.343719400000027" x="337.1942400000021" y="729.9925196850393" width="165.3569411023601" height="84.11293480314725" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.814988349999985" data-y="-0.30008194999991256" x="385.69975999999866" y="814.1054544881865" width="116.85142110236353" height="149.04119999999705" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.7700000000000005" data-y="3.810000000000001" x="381.73228346456693" y="684.7956692913384" width="120.81889763779526" height="45.196850393700856" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-4.0005" data-y="11.8745" x="40" y="259.3940944881889" width="207.2" height="184.80000000000007" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.8955" data-y="-11.874500000000001" x="392.8" y="1306.5940944881888" width="109.75118110236218" height="184.80000000000018" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.8954999999999993" data-y="11.874500000000001" x="392.8" y="259.3940944881888" width="109.75118110236218" height="184.80000000000013" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9399587499999518" data-y="2.3437194000000265" x="254.30024000000137" y="729.9925196850393" width="48.505520000001496" height="84.11293480314725" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.4274883499999844" data-y="5.612" x="254.30024000000137" y="571.0759842519684" width="93.69975999999863" height="113.71968503937012" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.4274883499999844" data-y="9.05775" x="254.30024000000137" y="444.1940944881889" width="93.69975999999863" height="63.6062992125984" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="0" x="40" y="861.7248031496063" width="97.44881889763784" height="27.338582677165277" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-2.814988349999984" data-y="-1.3443013499999397" x="137.4488188976378" y="906.194094488189" width="116.85142110236359" height="56.952559999994605" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.0624883499999846" data-y="7.619000000000001" x="254.30024000000137" y="507.8003937007873" width="37.69975999999863" height="63.2755905511811" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-2.7699999999999996" data-y="-6.35" x="137.4488188976378" y="1133.3468503937006" width="120.81889763779526" height="44.09448818897636" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.7700000000000005" data-y="-6.35" x="381.73228346456693" y="1133.3468503937006" width="120.81889763779526" height="44.09448818897636" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.667688540711424e-14" data-y="2.643801349999939" x="302.80576000000286" y="729.9925196850393" width="34.38847999999922" height="57.649014803154955" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-13.525500000000001" x="247.2" y="1452.194094488189" width="145.60000000000002" height="39.200000000000045" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="13.525500000000001" x="247.2" y="259.3940944881888" width="145.60000000000002" height="39.20000000000016" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="3.3306690738754696e-16" data-y="-6.35" x="306.7716535433071" y="1133.3468503937006" width="26.456692913385837" height="44.09448818897636" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="3.3306690738754696e-16" data-y="3.8100000000000005" x="306.7716535433071" y="684.7956692913384" width="26.456692913385837" height="45.196850393700856" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9399587499999515" data-y="-1.690020749999909" x="254.30024000000137" y="936.6827344881863" width="48.50552000000155" height="26.4639199999973" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.9399587500000086" data-y="-1.690020749999909" x="337.19424000000214" y="936.6827344881863" width="48.505519999996466" height="26.4639199999973" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.079999999999998" data-y="12.5" x="502.5511811023622" y="282.7641732283463" width="82.8976377952755" height="82.89763779527573" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.079999999999998" data-y="10" x="502.5511811023622" y="393.00039370078724" width="82.8976377952755" height="82.89763779527573" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.079999999999998" data-y="7.500000000000001" x="502.5511811023622" y="503.2366141732282" width="82.8976377952755" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="5" x="502.5511811023622" y="613.4728346456693" width="82.8976377952755" height="82.8976377952755" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="2.5" x="502.5511811023622" y="723.7090551181102" width="82.8976377952755" height="82.8976377952755" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="0" x="502.5511811023622" y="833.9452755905511" width="82.8976377952755" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-2.5" x="502.5511811023622" y="944.1814960629921" width="82.8976377952755" height="82.8976377952755" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-5" x="502.5511811023622" y="1054.417716535433" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-7.5" x="502.5511811023622" y="1164.653937007874" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-10" x="502.5511811023622" y="1274.8901574803149" width="82.8976377952755" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-12.5" x="502.5511811023622" y="1385.1263779527558" width="82.8976377952755" height="82.89763779527584" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.080000000000002" data-y="-8.75" x="54.551181102362136" y="1219.7720472440944" width="82.89763779527556" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-6.25" x="54.55118110236225" y="1109.5358267716535" width="82.89763779527553" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-3.7499999999999996" x="54.55118110236225" y="999.2996062992125" width="82.89763779527553" height="82.8976377952755" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-1.25" x="54.55118110236225" y="889.0633858267715" width="82.89763779527553" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="1.25" x="54.55118110236225" y="778.8271653543306" width="82.89763779527553" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="3.75" x="54.55118110236225" y="668.5909448818898" width="82.89763779527553" height="82.8976377952755" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="6.25" x="54.55118110236225" y="558.3547244094487" width="82.89763779527553" height="82.8976377952755" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="8.75" x="54.55118110236225" y="448.11850393700774" width="82.89763779527553" height="82.89763779527561" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="11.43" x="247.2" y="298.59409448818894" width="145.60000000000002" height="145.59999999999997" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-11.43" x="247.2" y="1306.5940944881888" width="145.60000000000002" height="145.60000000000014" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="6.25" x="502.5511811023622" y="586.1342519685038" width="97.4488188976378" height="27.338582677165505" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="3.75" x="502.5511811023622" y="696.3704724409448" width="97.4488188976378" height="27.33858267716539" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-6.25" x="502.5511811023622" y="1137.3153543307085" width="97.4488188976378" height="27.338582677165505" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-1.25" x="502.5511811023622" y="916.8429133858267" width="97.4488188976378" height="27.33858267716539" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="1.25" x="502.5511811023622" y="806.6066929133857" width="97.4488188976378" height="27.33858267716539" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-13.705" x="502.5511811023622" y="1468.0240157480314" width="97.4488188976378" height="23.370078740157396" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="13.705000000000002" x="502.5511811023622" y="259.3940944881888" width="97.4488188976378" height="23.37007874015751" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="2.5" x="40" y="751.4885826771653" width="97.44881889763784" height="27.33858267716539" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="5" x="40" y="641.2523622047242" width="97.44881889763784" height="27.338582677165505" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-5" x="40" y="1082.197244094488" width="97.44881889763784" height="27.338582677165505" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-2.5" x="40" y="971.9610236220472" width="97.44881889763784" height="27.33858267716539" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245000000000001" data-y="-8.75" x="502.5511811023623" y="1247.5515748031496" width="97.4488188976377" height="27.338582677165277" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="8.75" x="502.5511811023622" y="475.89803149606297" width="97.4488188976378" height="27.33858267716522" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245000000000001" data-y="-3.75" x="502.5511811023623" y="1027.0791338582676" width="97.4488188976377" height="27.338582677165505" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="7.5" x="40" y="531.0161417322834" width="97.44881889763784" height="27.33858267716539" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-11.25" x="502.5511811023622" y="1357.7877952755905" width="97.4488188976378" height="27.338582677165277" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="11.25" x="502.5511811023622" y="365.661811023622" width="97.4488188976378" height="27.33858267716522" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-7.5" x="40" y="1192.4334645669292" width="97.44881889763784" height="27.338582677165277" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1102230246251565e-16" data-y="1.1625516499999393" x="283.62296000000134" y="816.9642544881942" width="72.75407999999732" height="14.335439999994719" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.6624891499999845" data-y="-0.042534399999978545" x="342.0472" y="831.299694488189" width="14.329839999998683" height="91.93986519684847" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1574779999999691" data-y="1.249934000000053" x="254.30024000000137" y="814.1054544881865" width="29.322719999999975" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1574779999999691" data-y="0.7500619999999569" x="254.30024000000137" y="836.1470544881907" width="29.322719999999975" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1574779999999691" data-y="0.24993599999993413" x="254.30024000000137" y="858.1998544881918" width="29.322719999999975" height="12.346879999999942" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1574779999999691" data-y="-0.2499359999998206" x="254.30024000000137" y="880.241454488181" width="29.322719999999975" height="12.346879999999942" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1574779999999691" data-y="-0.7500619999999574" x="254.30024000000137" y="902.294254488187" width="29.322719999999975" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1574779999999691" data-y="-1.2499339999999393" x="254.30024000000137" y="924.3358544881862" width="29.322719999999975" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.24993599999993413" data-y="-1.6576039999998784" x="302.8057600000029" y="933.8239344881836" width="12.346879999999999" height="29.322720000000004" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.249936000000048" data-y="-1.6576039999998784" x="324.84736000000214" y="933.8239344881836" width="12.346879999999999" height="29.322720000000004" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="-1.2499339999999393" x="356.37703999999866" y="924.3358544881862" width="29.322719999999947" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="-0.7500619999999572" x="356.37703999999866" y="902.294254488187" width="29.322719999999947" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="-0.24993599999982044" x="356.37703999999866" y="880.241454488181" width="29.322719999999947" height="12.346879999999942" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="0.2499359999999343" x="356.37703999999866" y="858.1998544881918" width="29.322719999999947" height="12.346879999999942" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="0.7500619999999572" x="356.37703999999866" y="836.1470544881907" width="29.322719999999947" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="1.249934000000053" x="356.37703999999866" y="814.1054544881865" width="29.322719999999947" height="12.346880000000056" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.2499360000000478" data-y="1.6576039999998784" x="324.8473600000021" y="787.6415344881942" width="12.346879999999999" height="29.322720000000004" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.24993599999993435" data-y="1.6576039999998784" x="302.8057600000029" y="787.6415344881942" width="12.346879999999999" height="29.322720000000004" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="0" x="297.9528" y="831.299694488189" width="44.09439999999995" height="88.1887999999999" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.8499999999999999" data-y="4.1850000000000005" x="333.2283464566929" y="684.7956692913385" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.8499999999999999" data-y="3.9349999999999996" x="333.2283464566929" y="695.8192913385826" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.8499999999999999" data-y="3.6849999999999996" x="333.2283464566929" y="706.8429133858267" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.8499999999999999" data-y="3.4349999999999996" x="333.2283464566929" y="717.8665354330708" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8499999999999999" data-y="4.1850000000000005" x="258.26771653543307" y="684.7956692913385" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8499999999999999" data-y="3.9349999999999996" x="258.26771653543307" y="695.8192913385826" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8499999999999999" data-y="3.6849999999999996" x="258.26771653543307" y="706.8429133858267" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8499999999999999" data-y="3.4349999999999996" x="258.26771653543307" y="717.8665354330708" width="48.503937007874015" height="12.125984251968475" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8499999999999999" data-y="-6.35" x="258.26771653543307" y="1133.3468503937006" width="48.503937007874015" height="44.09448818897636" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.8499999999999999" data-y="-6.35" x="333.2283464566929" y="1133.3468503937006" width="48.503937007874015" height="44.09448818897636" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="7.219" x="292" y="543.0759842519684" width="56" height="28" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="8.019" x="292" y="507.8003937007873" width="56" height="28.000000000000057" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.69266855876549e-14" data-y="-1.4950503499999392" x="315.1526400000029" y="919.4884944881888" width="9.694719999999222" height="43.65815999999472" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-2.220446049250313e-16" data-y="7.619" x="292" y="535.8003937007874" width="56" height="7.27559055118104" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9949878499999845" data-y="-0.49999899999988895" x="254.3002400000014" y="892.588334488181" width="43.65255999999863" height="9.705920000006017" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9949878499999845" data-y="5.676015213396113e-14" x="254.3002400000014" y="870.5467344881918" width="43.65255999999863" height="9.694719999989275" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9949878499999845" data-y="0.4999989999999455" x="254.3002400000014" y="848.4939344881908" width="43.65255999999863" height="9.705920000001015" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.157477999999969" data-y="0.9999980000000049" x="254.3002400000014" y="826.4523344881866" width="29.322720000000004" height="9.694720000004168" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4449883499999845" data-y="3.81" x="254.30024000000137" y="684.7956692913385" width="3.9674765354317003" height="45.19685039370074" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-9.7345" x="40" y="1302.66968503937" width="97.44881889763784" height="3.9244094488187784" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.6074600500000085" data-y="1.3575220499999658" x="337.1942400000021" y="814.1054544881865" width="19.182799999996575" height="2.8588000000077045" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="-0.9999979999999482" x="356.37703999999866" y="914.641134488187" width="29.322719999999947" height="9.694719999999165" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="-0.4999989999998888" x="356.37703999999866" y="892.588334488181" width="29.322719999999947" height="9.705920000006017" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="5.69266855876549e-14" x="356.37703999999866" y="870.5467344881918" width="29.322719999999947" height="9.694719999989275" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999691" data-y="0.4999989999999457" x="356.37703999999866" y="848.4939344881908" width="29.322719999999947" height="9.705920000001015" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="1.1574779999999694" data-y="0.999998000000005" x="356.37703999999866" y="826.4523344881866" width="29.322720000000004" height="9.694720000004168" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="9.7345" x="40" y="444.1940944881889" width="97.44881889763784" height="3.9244094488188352" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6074600499999518" data-y="1.3575220499999656" x="283.62296000000134" y="814.1054544881865" width="19.18280000000152" height="2.8588000000077045" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-1.2500000000000002" x="40" y="889.0633858267715" width="14.55118110236225" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="1.25" x="40" y="778.8271653543306" width="14.55118110236225" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9949878499999845" data-y="-0.9999979999999483" x="254.3002400000014" y="914.641134488187" width="43.65255999999863" height="9.694719999999165" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.670464098272987e-14" data-y="1.6576039999998784" x="315.1526400000029" y="787.6415344881942" width="9.694719999999165" height="29.322720000000004" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6074600499999516" data-y="-1.2499339999999393" x="283.62296000000134" y="924.3358544881862" width="19.182800000001578" height="12.346880000000056" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.6074600500000087" data-y="-1.2375027999999482" x="337.19424000000214" y="923.2395596850374" width="19.18279999999652" height="13.44317480314885" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="5" x="585.4488188976377" y="613.4728346456693" width="14.551181102362307" height="82.8976377952755" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.184999999999999" data-y="7.500000000000001" x="585.4488188976377" y="503.2366141732282" width="14.551181102362307" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="2.5" x="585.4488188976377" y="723.7090551181102" width="14.551181102362307" height="82.8976377952755" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-7.500000000000001" x="585.4488188976377" y="1164.653937007874" width="14.551181102362307" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-5" x="585.4488188976377" y="1054.417716535433" width="14.551181102362307" height="82.89763779527539" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-2.5" x="585.4488188976377" y="944.181496062992" width="14.551181102362307" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="0" x="585.4488188976377" y="833.9452755905511" width="14.551181102362307" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-12.5" x="585.4488188976377" y="1385.1263779527558" width="14.551181102362307" height="82.89763779527584" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.184999999999999" data-y="12.5" x="585.4488188976377" y="282.7641732283463" width="14.551181102362307" height="82.89763779527573" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="3.75" x="40" y="668.5909448818898" width="14.55118110236225" height="82.8976377952755" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="6.25" x="40" y="558.3547244094487" width="14.55118110236225" height="82.8976377952755" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-6.25" x="40" y="1109.5358267716535" width="14.55118110236225" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-3.7499999999999996" x="40" y="999.2996062992125" width="14.55118110236225" height="82.8976377952755" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-10" x="585.4488188976377" y="1274.8901574803149" width="14.551181102362307" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.184999999999999" data-y="10" x="585.4488188976377" y="393.00039370078724" width="14.551181102362307" height="82.89763779527573" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="8.75" x="40" y="448.11850393700774" width="14.55118110236225" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.1850000000000005" data-y="-8.75" x="40" y="1219.7720472440944" width="14.551181102362136" height="82.89763779527561" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6624891499999845" data-y="0.8050275999999785" x="283.62296000000134" y="831.2996944881888" width="14.329839999998683" height="17.19424000000197" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.30496510000002397" data-y="-1.0425323999999785" x="324.84736000000214" y="919.4884944881888" width="17.199839999997835" height="3.7510651968485718" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6624891499999845" data-y="0.24993599999993413" x="283.62296000000134" y="858.1998544881918" width="14.329839999998683" height="12.346879999999942" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6624891499999845" data-y="-0.2499359999998206" x="283.62296000000134" y="880.241454488181" width="14.329839999998683" height="12.346879999999942" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6624891499999845" data-y="-0.7500619999999574" x="283.62296000000134" y="902.294254488187" width="14.329839999998683" height="12.346880000000056" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.24993599999993413" data-y="-1.1625516499999393" x="302.8057600000029" y="919.4884944881888" width="12.346879999999999" height="14.335439999994719" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.249936000000048" data-y="-1.2050860499999176" x="324.84736000000214" y="923.2395596850374" width="12.346879999999999" height="10.584374803146147" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="8.881784197001252e-16" data-y="-40.34317634999994" x="137.4488188976378" y="2569.205709606294" width="365.1023622047245" height="170.20019590551738" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.3874999999999993" data-y="-29.372375000000005" x="348" y="2050.2531496062993" width="154.5511811023622" height="240.60157480314956" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="8.881784197001252e-16" data-y="-44.73762500000001" x="137.4488188976378" y="2783.5003937007878" width="365.1023622047245" height="129.15275590551164" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-2.814988349999984" data-y="-31.882875000000006" x="137.4488188976378" y="2050.2531496062993" width="116.85142110236359" height="462" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-4.0005" data-y="-48.29762500000001" x="40" y="2912.6531496062994" width="207.2" height="184.80000000000018" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.264970400000024" data-y="-34.07940559999998" x="337.1942400000021" y="2336.05157480315" width="165.3569411023601" height="84.11293480314725" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.814988349999985" data-y="-36.72320694999992" x="385.69975999999866" y="2420.164509606297" width="116.85142110236353" height="149.04119999999693" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.7700000000000005" data-y="-32.613125000000004" x="381.73228346456693" y="2290.854724409449" width="120.81889763779526" height="45.19685039370097" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-4.0005" data-y="-24.54862500000001" x="40" y="1865.4531496062996" width="207.2" height="184.80000000000018" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.8955" data-y="-48.29762500000001" x="392.8" y="2912.6531496062994" width="109.75118110236218" height="184.80000000000018" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.8954999999999993" data-y="-24.548625000000005" x="392.8" y="1865.4531496062991" width="109.75118110236218" height="184.80000000000018" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9399587499999518" data-y="-34.07940559999998" x="254.30024000000137" y="2336.05157480315" width="48.505520000001496" height="84.11293480314725" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.4274883499999844" data-y="-30.811125000000004" x="254.30024000000137" y="2177.1350393700786" width="93.69975999999863" height="113.71968503937023" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.4274883499999844" data-y="-27.365375000000007" x="254.30024000000137" y="2050.2531496062998" width="93.69975999999863" height="63.60629921259806" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-36.423125000000006" x="40" y="2467.783858267717" width="97.44881889763784" height="27.338582677165505" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-2.814988349999984" data-y="-37.767426349999944" x="137.4488188976378" y="2512.2531496062993" width="116.85142110236359" height="56.95255999999472" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-1.0624883499999846" data-y="-28.804125000000006" x="254.30024000000137" y="2113.859448818898" width="37.69975999999863" height="63.27559055118127" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-2.7699999999999996" data-y="-42.77312500000001" x="137.4488188976378" y="2739.4059055118114" width="120.81889763779526" height="44.09448818897636" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="2.7700000000000005" data-y="-42.77312500000001" x="381.73228346456693" y="2739.4059055118114" width="120.81889763779526" height="44.09448818897636" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.667688540711424e-14" data-y="-33.779323650000066" x="302.80576000000286" y="2336.05157480315" width="34.38847999999922" height="57.64901480315484" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-49.94862500000001" x="247.2" y="3058.2531496062993" width="145.60000000000002" height="39.20000000000027" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-22.897625000000005" x="247.2" y="1865.4531496062991" width="145.60000000000002" height="39.20000000000027" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="3.3306690738754696e-16" data-y="-42.77312500000001" x="306.7716535433071" y="2739.4059055118114" width="26.456692913385837" height="44.09448818897636" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="3.3306690738754696e-16" data-y="-32.613125000000004" x="306.7716535433071" y="2290.854724409449" width="26.456692913385837" height="45.19685039370097" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9399587499999515" data-y="-38.113145749999916" x="254.30024000000137" y="2542.7417896062966" width="48.50552000000155" height="26.463919999997415" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.9399587500000086" data-y="-38.113145749999916" x="337.19424000000214" y="2542.7417896062966" width="48.505519999996466" height="26.463919999997415" fill="#dbeafe" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.079999999999998" data-y="-23.923125000000006" x="502.5511811023622" y="1888.8232283464567" width="82.8976377952755" height="82.89763779527584" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.079999999999998" data-y="-26.423125000000006" x="502.5511811023622" y="1999.0594488188976" width="82.8976377952755" height="82.89763779527584" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.079999999999998" data-y="-28.923125000000006" x="502.5511811023622" y="2109.2956692913385" width="82.8976377952755" height="82.89763779527584" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-31.423125000000006" x="502.5511811023622" y="2219.53188976378" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-33.923125000000006" x="502.5511811023622" y="2329.7681102362208" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-36.423125000000006" x="502.5511811023622" y="2440.0043307086617" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-38.923125000000006" x="502.5511811023622" y="2550.2405511811025" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-41.423125000000006" x="502.5511811023622" y="2660.4767716535434" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-43.923125000000006" x="502.5511811023622" y="2770.7129921259843" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-46.423125000000006" x="502.5511811023622" y="2880.9492125984257" width="82.8976377952755" height="82.89763779527493" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.08" data-y="-48.923125000000006" x="502.5511811023622" y="2991.185433070866" width="82.8976377952755" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.080000000000002" data-y="-45.173125000000006" x="54.551181102362136" y="2825.831102362205" width="82.89763779527556" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-42.673125000000006" x="54.55118110236225" y="2715.594881889764" width="82.89763779527553" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-40.173125000000006" x="54.55118110236225" y="2605.358661417323" width="82.89763779527553" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-37.673125000000006" x="54.55118110236225" y="2495.1224409448823" width="82.89763779527553" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-35.173125000000006" x="54.55118110236225" y="2384.8862204724414" width="82.89763779527553" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-32.673125000000006" x="54.55118110236225" y="2274.65" width="82.89763779527553" height="82.89763779527539" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-30.173125000000006" x="54.55118110236225" y="2164.413779527559" width="82.89763779527553" height="82.89763779527584" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.08" data-y="-27.673125000000006" x="54.55118110236225" y="2054.1775590551183" width="82.89763779527553" height="82.89763779527584" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-24.993125000000006" x="247.2" y="1904.6531496062994" width="145.60000000000002" height="145.5999999999999" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-47.853125000000006" x="247.2" y="2912.6531496062994" width="145.60000000000002" height="145.5999999999999" fill="red" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245000000000001" data-y="-45.173125000000006" x="502.5511811023623" y="2853.6106299212597" width="97.4488188976377" height="27.33858267716596" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8499999999999999" data-y="-42.77312500000001" x="258.26771653543307" y="2739.4059055118114" width="48.503937007874015" height="44.09448818897636" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-33.923125000000006" x="40" y="2357.5476377952755" width="97.44881889763784" height="27.33858267716596" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-38.923125000000006" x="40" y="2578.0200787401577" width="97.44881889763784" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-31.423125000000006" x="40" y="2247.3114173228346" width="97.44881889763784" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-41.423125000000006" x="40" y="2688.2562992125986" width="97.44881889763784" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.8500000000000002" data-y="-42.77312500000001" x="333.2283464566929" y="2739.4059055118114" width="48.503937007874015" height="44.09448818897636" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.8500000000000002" data-y="-32.613125000000004" x="333.2283464566929" y="2290.854724409449" width="48.503937007874015" height="45.19685039370097" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="-30.173125000000006" x="502.5511811023622" y="2192.1933070866144" width="97.4488188976378" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-42.673125000000006" x="502.5511811023622" y="2743.374409448819" width="97.4488188976378" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-37.673125000000006" x="502.5511811023622" y="2522.901968503937" width="97.4488188976378" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-35.173125000000006" x="502.5511811023622" y="2412.665748031496" width="97.4488188976378" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-32.673125000000006" x="502.5511811023622" y="2302.4295275590553" width="97.4488188976378" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-28.804125000000006" x="292" y="2113.859448818898" width="56" height="63.27559055118127" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-50.128125000000004" x="502.5511811023622" y="3074.0830708661415" width="97.4488188976378" height="23.370078740157624" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="-22.718125000000004" x="502.5511811023622" y="1865.4531496062991" width="97.4488188976378" height="23.370078740157624" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-43.923125000000006" x="40" y="2798.4925196850395" width="97.44881889763784" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-28.923125000000006" x="40" y="2137.0751968503937" width="97.44881889763784" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245000000000001" data-y="-40.173125000000006" x="502.5511811023623" y="2633.138188976378" width="97.4488188976377" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="-27.673125000000006" x="502.5511811023622" y="2081.9570866141735" width="97.4488188976378" height="27.33858267716505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.245" data-y="-47.673125000000006" x="502.5511811023622" y="2963.8468503937006" width="97.4488188976378" height="27.338582677165505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.244999999999999" data-y="-25.173125000000006" x="502.5511811023622" y="1971.7208661417326" width="97.4488188976378" height="27.33858267716505" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8949883499999844" data-y="-32.613125000000004" x="254.30024000000137" y="2290.854724409449" width="52.471413543305715" height="45.19685039370097" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="5.667688540711424e-14" data-y="-36.423125000000006" x="302.80576000000286" y="2393.7005896063047" width="34.38847999999922" height="175.50511999998935" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9399587499999518" data-y="-36.42312499999995" x="254.30024000000137" y="2420.164509606297" width="48.505520000001496" height="122.57727999999952" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="0.9399587500000084" data-y="-36.42312499999995" x="337.1942400000021" y="2420.164509606297" width="48.50551999999652" height="122.57727999999952" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-46.15762500000001" x="40" y="2908.728740157481" width="97.44881889763784" height="3.924409448818551" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-5.244999999999999" data-y="-26.688625000000005" x="40" y="2050.2531496062993" width="97.44881889763784" height="3.9244094488190058" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-37.673125000000006" x="40" y="2495.1224409448823" width="14.55118110236225" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-35.173125000000006" x="40" y="2384.8862204724414" width="14.55118110236225" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-46.423125000000006" x="585.4488188976377" y="2880.949212598425" width="14.551181102362307" height="82.89763779527584" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-43.923125000000006" x="585.4488188976377" y="2770.7129921259843" width="14.551181102362307" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-32.673125000000006" x="40" y="2274.65" width="14.55118110236225" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-40.173125000000006" x="40" y="2605.358661417323" width="14.55118110236225" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-30.173125000000006" x="40" y="2164.413779527559" width="14.55118110236225" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-42.673125000000006" x="40" y="2715.594881889764" width="14.55118110236225" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-31.423125000000006" x="585.4488188976377" y="2219.53188976378" width="14.551181102362307" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.184999999999999" data-y="-28.923125000000006" x="585.4488188976377" y="2109.2956692913385" width="14.551181102362307" height="82.89763779527584" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-41.423125000000006" x="585.4488188976377" y="2660.4767716535434" width="14.551181102362307" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-38.923125000000006" x="585.4488188976377" y="2550.2405511811025" width="14.551181102362307" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-36.423125000000006" x="585.4488188976377" y="2440.0043307086617" width="14.551181102362307" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-33.923125000000006" x="585.4488188976377" y="2329.7681102362208" width="14.551181102362307" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.185" data-y="-48.923125000000006" x="585.4488188976377" y="2991.185433070866" width="14.551181102362307" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.184999999999999" data-y="-23.923125000000006" x="585.4488188976377" y="1888.8232283464567" width="14.551181102362307" height="82.89763779527584" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.1850000000000005" data-y="-45.173125000000006" x="40" y="2825.831102362205" width="14.551181102362136" height="82.89763779527539" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="-6.185" data-y="-27.673125000000006" x="40" y="2054.1775590551183" width="14.55118110236225" height="82.89763779527584" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><g><rect data-type="rect" data-label="node" data-x="6.184999999999999" data-y="-26.423125000000006" x="585.4488188976377" y="1999.0594488188976" width="14.551181102362307" height="82.89763779527584" fill="#fef3c7" stroke="black" stroke-width="0.02267857142857143"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="14.668500000000002" x="320" y="228.59409448818883" fill="black" font-size="22.04724409448819" 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="-21.754625000000004" x="320" y="1834.6531496062994" fill="black" font-size="22.04724409448819" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=1</text><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="3304" 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', '3304');
|
|
21
|
+
|
|
22
|
+
// Calculate real coordinates using inverse transformation
|
|
23
|
+
const matrix = {"a":44.09448818897638,"c":0,"e":320,"b":0,"d":-44.09448818897638,"f":875.3940944881889};
|
|
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>
|