@tscircuit/schematic-trace-solver 0.0.112 → 0.0.113

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/dist/index.d.ts CHANGED
@@ -244,6 +244,7 @@ declare class TraceOverlapIssueSolver extends BaseSolver {
244
244
  overlappingTraceSegments: OverlappingTraceSegmentLocator[];
245
245
  interactionKind: TraceInteractionKind;
246
246
  traceNetIslands: Record<ConnNetId$1, Array<SolvedTracePath>>;
247
+ traceIdsToShift?: Set<MspConnectionPairId>;
247
248
  obstacleRects: ReturnType<typeof getObstacleRects>;
248
249
  SHIFT_DISTANCE: number;
249
250
  correctedTraceMap: Record<MspConnectionPairId, SolvedTracePath>;
@@ -252,6 +253,7 @@ declare class TraceOverlapIssueSolver extends BaseSolver {
252
253
  overlappingTraceSegments: OverlappingTraceSegmentLocator[];
253
254
  interactionKind: TraceInteractionKind;
254
255
  traceNetIslands: Record<ConnNetId$1, Array<SolvedTracePath>>;
256
+ traceIdsToShift?: Set<MspConnectionPairId>;
255
257
  });
256
258
  _step(): void;
257
259
  private applyOffsets;
@@ -284,6 +286,7 @@ declare class TraceOverlapShiftSolver extends BaseSolver {
284
286
  inputProblem: InputProblem;
285
287
  inputTracePaths: Array<SolvedTracePath>;
286
288
  globalConnMap: ConnectivityMap;
289
+ traceIdsToShift?: Set<MspConnectionPairId>;
287
290
  activeSubSolver: TraceOverlapIssueSolver | null;
288
291
  /**
289
292
  * A traceNetIsland is a set of traces that are connected via the globalConnMap
@@ -295,6 +298,7 @@ declare class TraceOverlapShiftSolver extends BaseSolver {
295
298
  inputProblem: InputProblem;
296
299
  inputTracePaths: Array<SolvedTracePath>;
297
300
  globalConnMap: ConnectivityMap;
301
+ traceIdsToShift?: Set<MspConnectionPairId>;
298
302
  });
299
303
  getConstructorParams(): ConstructorParameters<typeof TraceOverlapShiftSolver>[0];
300
304
  computeTraceNetIslands(): Record<ConnNetId, Array<SolvedTracePath>>;
@@ -1071,6 +1075,7 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
1071
1075
  traceCleanupSolver?: TraceCleanupSolver;
1072
1076
  example28Solver?: Example28Solver;
1073
1077
  availableNetOrientationSolver?: AvailableNetOrientationSolver;
1078
+ postLabelTraceOverlapShiftSolver?: TraceOverlapShiftSolver;
1074
1079
  railNetLabelCornerPlacementSolver?: RailNetLabelCornerPlacementSolver;
1075
1080
  traceAnchoredNetLabelOverlapSolver?: TraceAnchoredNetLabelOverlapSolver;
1076
1081
  preAlignmentNetLabelTraceCollisionSolver?: NetLabelTraceCollisionSolver;
package/dist/index.js CHANGED
@@ -1744,6 +1744,7 @@ var TraceOverlapIssueSolver = class extends BaseSolver {
1744
1744
  overlappingTraceSegments;
1745
1745
  interactionKind;
1746
1746
  traceNetIslands;
1747
+ traceIdsToShift;
1747
1748
  obstacleRects;
1748
1749
  SHIFT_DISTANCE = 0.1;
1749
1750
  correctedTraceMap = {};
@@ -1752,6 +1753,7 @@ var TraceOverlapIssueSolver = class extends BaseSolver {
1752
1753
  this.overlappingTraceSegments = params.overlappingTraceSegments;
1753
1754
  this.interactionKind = params.interactionKind;
1754
1755
  this.traceNetIslands = params.traceNetIslands;
1756
+ this.traceIdsToShift = params.traceIdsToShift;
1755
1757
  this.obstacleRects = getObstacleRects(params.inputProblem);
1756
1758
  for (const { connNetId, pathsWithOverlap } of this.overlappingTraceSegments) {
1757
1759
  for (const {
@@ -1769,7 +1771,13 @@ var TraceOverlapIssueSolver = class extends BaseSolver {
1769
1771
  return path.tracePath.length === 2;
1770
1772
  });
1771
1773
  const groupShouldStayInPlace = this.overlappingTraceSegments.map(
1772
- containsStraightPinToPinTrace
1774
+ (group) => {
1775
+ if (!this.traceIdsToShift) return containsStraightPinToPinTrace(group);
1776
+ return group.pathsWithOverlap.every(({ solvedTracePathIndex }) => {
1777
+ const path = this.traceNetIslands[group.connNetId][solvedTracePathIndex];
1778
+ return !this.traceIdsToShift.has(path.mspPairId);
1779
+ });
1780
+ }
1773
1781
  );
1774
1782
  const someGroupCanShift = groupShouldStayInPlace.some(
1775
1783
  (shouldStay) => !shouldStay
@@ -2049,6 +2057,7 @@ var TraceOverlapShiftSolver = class extends BaseSolver {
2049
2057
  inputProblem;
2050
2058
  inputTracePaths;
2051
2059
  globalConnMap;
2060
+ traceIdsToShift;
2052
2061
  /**
2053
2062
  * A traceNetIsland is a set of traces that are connected via the globalConnMap
2054
2063
  */
@@ -2060,6 +2069,7 @@ var TraceOverlapShiftSolver = class extends BaseSolver {
2060
2069
  this.inputProblem = params.inputProblem;
2061
2070
  this.inputTracePaths = params.inputTracePaths;
2062
2071
  this.globalConnMap = params.globalConnMap;
2072
+ this.traceIdsToShift = params.traceIdsToShift;
2063
2073
  for (const tracePath of this.inputTracePaths) {
2064
2074
  const { mspPairId } = tracePath;
2065
2075
  this.correctedTraceMap[mspPairId] = tracePath;
@@ -2070,7 +2080,8 @@ var TraceOverlapShiftSolver = class extends BaseSolver {
2070
2080
  return {
2071
2081
  inputProblem: this.inputProblem,
2072
2082
  inputTracePaths: this.inputTracePaths,
2073
- globalConnMap: this.globalConnMap
2083
+ globalConnMap: this.globalConnMap,
2084
+ traceIdsToShift: this.traceIdsToShift
2074
2085
  };
2075
2086
  }
2076
2087
  computeTraceNetIslands() {
@@ -2158,6 +2169,9 @@ var TraceOverlapShiftSolver = class extends BaseSolver {
2158
2169
  if (!aVert && !aHorz) continue;
2159
2170
  for (let pb = 0; pb < pathsB.length; pb++) {
2160
2171
  const pathB = pathsB[pb];
2172
+ if (this.traceIdsToShift && !this.traceIdsToShift.has(pathA.mspPairId) && !this.traceIdsToShift.has(pathB.mspPairId)) {
2173
+ continue;
2174
+ }
2161
2175
  const ptsB = pathB.tracePath;
2162
2176
  for (let sb = 0; sb < ptsB.length - 1; sb++) {
2163
2177
  const b1 = ptsB[sb];
@@ -2307,7 +2321,8 @@ var TraceOverlapShiftSolver = class extends BaseSolver {
2307
2321
  inputProblem: this.inputProblem,
2308
2322
  interactionKind,
2309
2323
  overlappingTraceSegments,
2310
- traceNetIslands: this.traceNetIslands
2324
+ traceNetIslands: this.traceNetIslands,
2325
+ traceIdsToShift: this.traceIdsToShift
2311
2326
  });
2312
2327
  }
2313
2328
  visualize() {
@@ -10632,6 +10647,7 @@ var SchematicTracePipelineSolver = class extends BaseSolver {
10632
10647
  traceCleanupSolver;
10633
10648
  example28Solver;
10634
10649
  availableNetOrientationSolver;
10650
+ postLabelTraceOverlapShiftSolver;
10635
10651
  railNetLabelCornerPlacementSolver;
10636
10652
  traceAnchoredNetLabelOverlapSolver;
10637
10653
  preAlignmentNetLabelTraceCollisionSolver;
@@ -10807,6 +10823,22 @@ var SchematicTracePipelineSolver = class extends BaseSolver {
10807
10823
  }
10808
10824
  ]
10809
10825
  ),
10826
+ definePipelineStep(
10827
+ "postLabelTraceOverlapShiftSolver",
10828
+ TraceOverlapShiftSolver,
10829
+ (instance) => [
10830
+ {
10831
+ inputProblem: instance.inputProblem,
10832
+ inputTracePaths: instance.availableNetOrientationSolver.traces,
10833
+ globalConnMap: instance.mspConnectionPairSolver.globalConnMap,
10834
+ traceIdsToShift: new Set(
10835
+ instance.availableNetOrientationSolver.traces.filter(
10836
+ (trace) => trace.mspPairId.startsWith("available-net-orientation-")
10837
+ ).map((trace) => trace.mspPairId)
10838
+ )
10839
+ }
10840
+ ]
10841
+ ),
10810
10842
  definePipelineStep(
10811
10843
  "railNetLabelCornerPlacementSolver",
10812
10844
  RailNetLabelCornerPlacementSolver,
@@ -10814,7 +10846,9 @@ var SchematicTracePipelineSolver = class extends BaseSolver {
10814
10846
  return [
10815
10847
  {
10816
10848
  inputProblem: instance.inputProblem,
10817
- traces: instance.availableNetOrientationSolver.traces,
10849
+ traces: Object.values(
10850
+ instance.postLabelTraceOverlapShiftSolver.correctedTraceMap
10851
+ ),
10818
10852
  netLabelPlacements: instance.availableNetOrientationSolver.outputNetLabelPlacements
10819
10853
  }
10820
10854
  ];
@@ -10826,7 +10860,9 @@ var SchematicTracePipelineSolver = class extends BaseSolver {
10826
10860
  (instance) => [
10827
10861
  {
10828
10862
  inputProblem: instance.inputProblem,
10829
- traces: instance.availableNetOrientationSolver.traces,
10863
+ traces: Object.values(
10864
+ instance.postLabelTraceOverlapShiftSolver.correctedTraceMap
10865
+ ),
10830
10866
  netLabelPlacements: instance.railNetLabelCornerPlacementSolver.outputNetLabelPlacements
10831
10867
  }
10832
10868
  ]
@@ -10837,7 +10873,9 @@ var SchematicTracePipelineSolver = class extends BaseSolver {
10837
10873
  (instance) => [
10838
10874
  {
10839
10875
  inputProblem: instance.inputProblem,
10840
- traces: instance.availableNetOrientationSolver.traces,
10876
+ traces: Object.values(
10877
+ instance.postLabelTraceOverlapShiftSolver.correctedTraceMap
10878
+ ),
10841
10879
  netLabelPlacements: instance.traceAnchoredNetLabelOverlapSolver.outputNetLabelPlacements
10842
10880
  }
10843
10881
  ]
@@ -79,6 +79,7 @@ export class SchematicTracePipelineSolver extends BaseSolver {
79
79
  traceCleanupSolver?: TraceCleanupSolver
80
80
  example28Solver?: Example28Solver
81
81
  availableNetOrientationSolver?: AvailableNetOrientationSolver
82
+ postLabelTraceOverlapShiftSolver?: TraceOverlapShiftSolver
82
83
  railNetLabelCornerPlacementSolver?: RailNetLabelCornerPlacementSolver
83
84
  traceAnchoredNetLabelOverlapSolver?: TraceAnchoredNetLabelOverlapSolver
84
85
  preAlignmentNetLabelTraceCollisionSolver?: NetLabelTraceCollisionSolver
@@ -280,6 +281,24 @@ export class SchematicTracePipelineSolver extends BaseSolver {
280
281
  },
281
282
  ],
282
283
  ),
284
+ definePipelineStep(
285
+ "postLabelTraceOverlapShiftSolver",
286
+ TraceOverlapShiftSolver,
287
+ (instance) => [
288
+ {
289
+ inputProblem: instance.inputProblem,
290
+ inputTracePaths: instance.availableNetOrientationSolver!.traces,
291
+ globalConnMap: instance.mspConnectionPairSolver!.globalConnMap,
292
+ traceIdsToShift: new Set(
293
+ instance
294
+ .availableNetOrientationSolver!.traces.filter((trace) =>
295
+ trace.mspPairId.startsWith("available-net-orientation-"),
296
+ )
297
+ .map((trace) => trace.mspPairId),
298
+ ),
299
+ },
300
+ ],
301
+ ),
283
302
  definePipelineStep(
284
303
  "railNetLabelCornerPlacementSolver",
285
304
  RailNetLabelCornerPlacementSolver,
@@ -287,7 +306,9 @@ export class SchematicTracePipelineSolver extends BaseSolver {
287
306
  return [
288
307
  {
289
308
  inputProblem: instance.inputProblem,
290
- traces: instance.availableNetOrientationSolver!.traces,
309
+ traces: Object.values(
310
+ instance.postLabelTraceOverlapShiftSolver!.correctedTraceMap,
311
+ ),
291
312
  netLabelPlacements:
292
313
  instance.availableNetOrientationSolver!.outputNetLabelPlacements,
293
314
  },
@@ -300,7 +321,9 @@ export class SchematicTracePipelineSolver extends BaseSolver {
300
321
  (instance) => [
301
322
  {
302
323
  inputProblem: instance.inputProblem,
303
- traces: instance.availableNetOrientationSolver!.traces,
324
+ traces: Object.values(
325
+ instance.postLabelTraceOverlapShiftSolver!.correctedTraceMap,
326
+ ),
304
327
  netLabelPlacements:
305
328
  instance.railNetLabelCornerPlacementSolver!
306
329
  .outputNetLabelPlacements,
@@ -313,7 +336,9 @@ export class SchematicTracePipelineSolver extends BaseSolver {
313
336
  (instance) => [
314
337
  {
315
338
  inputProblem: instance.inputProblem,
316
- traces: instance.availableNetOrientationSolver!.traces,
339
+ traces: Object.values(
340
+ instance.postLabelTraceOverlapShiftSolver!.correctedTraceMap,
341
+ ),
317
342
  netLabelPlacements:
318
343
  instance.traceAnchoredNetLabelOverlapSolver!
319
344
  .outputNetLabelPlacements,
@@ -26,6 +26,7 @@ export class TraceOverlapIssueSolver extends BaseSolver {
26
26
  overlappingTraceSegments: OverlappingTraceSegmentLocator[]
27
27
  interactionKind: TraceInteractionKind
28
28
  traceNetIslands: Record<ConnNetId, Array<SolvedTracePath>>
29
+ traceIdsToShift?: Set<MspConnectionPairId>
29
30
  obstacleRects: ReturnType<typeof getObstacleRects>
30
31
 
31
32
  SHIFT_DISTANCE = 0.1
@@ -37,11 +38,13 @@ export class TraceOverlapIssueSolver extends BaseSolver {
37
38
  overlappingTraceSegments: OverlappingTraceSegmentLocator[]
38
39
  interactionKind: TraceInteractionKind
39
40
  traceNetIslands: Record<ConnNetId, Array<SolvedTracePath>>
41
+ traceIdsToShift?: Set<MspConnectionPairId>
40
42
  }) {
41
43
  super()
42
44
  this.overlappingTraceSegments = params.overlappingTraceSegments
43
45
  this.interactionKind = params.interactionKind
44
46
  this.traceNetIslands = params.traceNetIslands
47
+ this.traceIdsToShift = params.traceIdsToShift
45
48
  this.obstacleRects = getObstacleRects(params.inputProblem)
46
49
 
47
50
  // Only add the relevant traces to the correctedTraceMap
@@ -76,7 +79,14 @@ export class TraceOverlapIssueSolver extends BaseSolver {
76
79
  })
77
80
 
78
81
  const groupShouldStayInPlace = this.overlappingTraceSegments.map(
79
- containsStraightPinToPinTrace,
82
+ (group) => {
83
+ if (!this.traceIdsToShift) return containsStraightPinToPinTrace(group)
84
+ return group.pathsWithOverlap.every(({ solvedTracePathIndex }) => {
85
+ const path =
86
+ this.traceNetIslands[group.connNetId][solvedTracePathIndex]!
87
+ return !this.traceIdsToShift!.has(path.mspPairId)
88
+ })
89
+ },
80
90
  )
81
91
  const someGroupCanShift = groupShouldStayInPlace.some(
82
92
  (shouldStay) => !shouldStay,
@@ -34,6 +34,7 @@ export class TraceOverlapShiftSolver extends BaseSolver {
34
34
  inputProblem: InputProblem
35
35
  inputTracePaths: Array<SolvedTracePath>
36
36
  globalConnMap: ConnectivityMap
37
+ traceIdsToShift?: Set<MspConnectionPairId>
37
38
 
38
39
  declare activeSubSolver: TraceOverlapIssueSolver | null
39
40
 
@@ -50,11 +51,13 @@ export class TraceOverlapShiftSolver extends BaseSolver {
50
51
  inputProblem: InputProblem
51
52
  inputTracePaths: Array<SolvedTracePath>
52
53
  globalConnMap: ConnectivityMap
54
+ traceIdsToShift?: Set<MspConnectionPairId>
53
55
  }) {
54
56
  super()
55
57
  this.inputProblem = params.inputProblem
56
58
  this.inputTracePaths = params.inputTracePaths
57
59
  this.globalConnMap = params.globalConnMap
60
+ this.traceIdsToShift = params.traceIdsToShift
58
61
 
59
62
  for (const tracePath of this.inputTracePaths) {
60
63
  const { mspPairId } = tracePath
@@ -71,6 +74,7 @@ export class TraceOverlapShiftSolver extends BaseSolver {
71
74
  inputProblem: this.inputProblem,
72
75
  inputTracePaths: this.inputTracePaths,
73
76
  globalConnMap: this.globalConnMap,
77
+ traceIdsToShift: this.traceIdsToShift,
74
78
  }
75
79
  }
76
80
 
@@ -211,6 +215,13 @@ export class TraceOverlapShiftSolver extends BaseSolver {
211
215
 
212
216
  for (let pb = 0; pb < pathsB.length; pb++) {
213
217
  const pathB = pathsB[pb]!
218
+ if (
219
+ this.traceIdsToShift &&
220
+ !this.traceIdsToShift.has(pathA.mspPairId) &&
221
+ !this.traceIdsToShift.has(pathB.mspPairId)
222
+ ) {
223
+ continue
224
+ }
214
225
  const ptsB = pathB.tracePath
215
226
  for (let sb = 0; sb < ptsB.length - 1; sb++) {
216
227
  const b1 = ptsB[sb]!
@@ -392,6 +403,7 @@ export class TraceOverlapShiftSolver extends BaseSolver {
392
403
  interactionKind,
393
404
  overlappingTraceSegments,
394
405
  traceNetIslands: this.traceNetIslands,
406
+ traceIdsToShift: this.traceIdsToShift,
395
407
  })
396
408
  }
397
409
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/schematic-trace-solver",
3
3
  "main": "dist/index.js",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "start": "cosmos",
@@ -1,4 +1,4 @@
1
- <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-4.3400000000000025,-7.364455349999998 -4.140000000000002,-7.364455349999998 -4.140000000000002,-6.844727674999999 -4.890000000000002,-6.844727674999999 -4.890000000000002,-6.324999999999998" data-type="line" data-label="" points="241.17494151286712,455.8294775149467 246.99766051468674,455.8294775149467 246.99766051468674,440.6983364699766 225.16246425786323,440.6983364699766 225.16246425786323,425.5671954250065" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.6400000000000023,-7.364455349999998 -4.3400000000000025,-7.364455349999998" data-type="line" data-label="" points="261.5544580192357,455.8294775149467 241.17494151286712,455.8294775149467" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.808910699999998,-1.705000000000001 -9.808910699999998,-1.9050000000000002 -10.4289107,-1.9050000000000002 -10.4289107,-4.214999999999999 -9.808910699999998,-4.214999999999999 -9.808910699999998,-4.015" data-type="line" data-label="" points="81.95529025214461,291.0623864829738 81.95529025214461,296.88510548479337 63.90486134650382,296.88510548479337 63.90486134650382,364.1375099558097 81.95529025214461,364.1375099558097 81.95529025214461,358.31479095399015" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-11.05,-8.129999999999999 -11.25,-8.129999999999999 -11.25,-7.227499999999999 -10.475,-7.227499999999999 -10.475,-6.324999999999999" data-type="line" data-label="" points="45.82271900181962,478.1172344164284 40,478.1172344164284 40,451.8422149207174 62.56303613205097,451.8422149207174 62.56303613205097,425.5671954250065" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-11.05,-8.329999999999998 -11.25,-8.329999999999998 -11.25,-8.129999999999999 -11.05,-8.129999999999999" data-type="line" data-label="" points="45.82271900181962,483.93995341824797 40,483.93995341824797 40,478.1172344164284 45.82271900181962,478.1172344164284" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.05,-8.129999999999999 -8.850000000000001,-8.129999999999999 -8.850000000000001,-8.329999999999998 -9.05,-8.329999999999998" data-type="line" data-label="" points="104.0499090200156,478.1172344164284 109.87262802183517,478.1172344164284 109.87262802183517,483.93995341824797 104.0499090200156,483.93995341824797" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.8300000000000005,-0.09999999999999959 -1.5050000000000008,-0.09999999999999964" data-type="line" data-label="" points="343.36365999480114,244.33506649337147 323.71198336366,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.130000000000001,3.2594553499999996 -2.505000000000001,3.2594553499999996 -2.505000000000001,2.7199999999999998 -1.8800000000000003,2.7199999999999998 -1.8800000000000003,2.92" data-type="line" data-label="" points="276.40239147387575,146.52924398232392 294.59838835456196,146.52924398232392 294.59838835456196,162.23472856771514 312.7943852352482,162.23472856771514 312.7943852352482,156.41200956589552" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,0.10000000000000042 1.8449999999999998,0.10000000000000016" data-type="line" data-label="" points="401.5908500129972,238.51234749155188 421.2425266441383,238.51234749155188" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,1.3500000000000003 1.1699999999999995,0.7250000000000003 1.3699999999999994,0.7250000000000003 1.3699999999999994,0.10000000000000042 1.1699999999999995,0.10000000000000042" data-type="line" data-label="" points="401.5908500129972,202.12035373017937 401.5908500129972,220.31635061086564 407.41356901481674,220.31635061086564 407.41356901481674,238.51234749155188 401.5908500129972,238.51234749155188" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.08000000000000074,1.6894553499999998 0.5449999999999994,1.6894553499999998 0.5449999999999994,1.1500000000000004 1.1699999999999995,1.1500000000000004 1.1699999999999995,1.3500000000000003" data-type="line" data-label="" points="365.19885625162465,192.23758814660778 383.3948531323109,192.23758814660778 383.3948531323109,207.943072731999 401.5908500129972,207.943072731999 401.5908500129972,202.12035373017937" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.210000000000001,-2.1794553499999987 4.210000000000001,-1.659727674999999 3.460000000000001,-1.659727674999999 3.460000000000001,-1.1399999999999992 3.660000000000001,-1.1399999999999992" data-type="line" data-label="" points="490.0961788406551,304.8754873927736 490.0961788406551,289.74434634780346 468.2609825838316,289.74434634780346 468.2609825838316,274.61320530283336 474.0837015856512,274.61320530283336" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999982,-6.119999999999999 1.8449999999999984,-6.119999999999999" data-type="line" data-label="" points="401.5908500129971,419.5989084481414 421.24252664413825,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999973,-7.469999999999999 1.1699999999999973,-6.794999999999999 1.3699999999999983,-6.794999999999999 1.3699999999999983,-6.119999999999999 1.1699999999999982,-6.119999999999999" data-type="line" data-label="" points="401.59085001299707,458.9022617104237 401.59085001299707,439.2505850792826 407.41356901481674,439.2505850792826 407.41356901481674,419.5989084481414 401.5908500129971,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.4199999999999973,-7.699455349999998 2.174727674999997,-7.699455349999998 2.174727674999997,-7.269999999999999 1.1699999999999973,-7.269999999999999 1.1699999999999973,-7.469999999999999" data-type="line" data-label="" points="437.9828437743696,465.5825318429945 430.84208463737974,465.5825318429945 430.84208463737974,453.0795427086041 401.59085001299707,453.0795427086041 401.59085001299707,458.9022617104237" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.3100000000000005,-0.09999999999999964 -2.6350000000000007,-0.09999999999999964" data-type="line" data-label="" points="271.1619443722381,244.33506649337147 290.81362100337924,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.660000000000001,1.6800000000000002 -2.9850000000000003,1.6800000000000002" data-type="line" data-label="" points="260.9721861190538,192.51286737717703 280.623862750195,192.51286737717703" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.9499999999999997,1.35 2.9499999999999997,0.7250000000000005 3.175,0.7250000000000005 3.175,0.10000000000000053 2.9749999999999996,0.10000000000000053" data-type="line" data-label="" points="453.41304912919156,202.12035373017937 453.41304912919156,220.3163506108656 459.96360800623864,220.3163506108656 459.96360800623864,238.51234749155188 454.140889004419,238.51234749155188" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.41,-2.92 2.4099999999999997,-2.244999999999999" data-type="line" data-label="" points="437.6917078242787,326.43540441902786 437.6917078242787,306.7837277878867" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.249999999999997,-6.119999999999999 2.9749999999999983,-6.119999999999999" data-type="line" data-label="" points="491.2607226410189,419.5989084481414 454.140889004419,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.200000000000001,-10.398910699999997 -7.400000000000001,-10.398910699999997 -7.400000000000001,-10.198910699999997 -7.200000000000001,-10.198910699999997" data-type="line" data-label="" points="157.9100597868469,544.1733816480373 152.08734078502727,544.1733816480373 152.08734078502727,538.3506626462179 157.9100597868469,538.3506626462179" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.200000000000001,-10.198910699999997 -5.000000000000001,-10.198910699999997 -5.000000000000001,-10.398910699999997 -5.200000000000001,-10.398910699999997" data-type="line" data-label="" points="216.13724980504287,538.3506626462179 221.9599688068625,538.3506626462179 221.9599688068625,544.1733816480373 216.13724980504287,544.1733816480373" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-4.760000000000001,1.6800000000000002 -4.960000000000001,1.6800000000000002 -4.960000000000001,-0.09999999999999964 -4.410000000000001,-0.09999999999999964" data-type="line" data-label="" points="228.947231609046,192.51286737717703 223.12451260722642,192.51286737717703 223.12451260722642,244.33506649337147 239.1369898622303,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,2.45 1.1699999999999995,2.6500000000000004 2.9499999999999997,2.6500000000000004 2.9499999999999997,2.4500000000000006" data-type="line" data-label="" points="401.5908500129972,170.0953992201716 401.5908500129972,164.27268021835198 453.41304912919156,164.27268021835198 453.41304912919156,170.09539922017157" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.5994553499999995,-1.3305446499999976 -7.5994553499999995,-0.42804464999999814 -8.965,-0.42804464999999814 -8.965,0.4744553500000013 -7.965000000000001,0.4744553500000013" data-type="line" data-label="" points="146.28047850272944,280.1606450740837 146.28047850272944,253.88562557837272 106.52456459578895,253.88562557837272 106.52456459578895,227.6106060826618 135.63815960488694,227.6106060826618" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.3494553499999995,-4.019999999999998 -6.3494553499999995,-4.219999999999998 -7.5994553499999995,-4.219999999999998 -7.5994553499999995,-2.430544649999999" data-type="line" data-label="" points="182.67247226410194,358.4603589290356 182.67247226410194,364.2830779308552 146.28047850272944,364.2830779308552 146.28047850272944,312.1855995840915" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.65,-5.8199999999999985 -6.450000000000001,-5.8199999999999985 -6.450000000000001,-6.914727674999998 -7.950000000000001,-6.914727674999998 -7.950000000000001,-8.009455349999998 -7.750000000000001,-8.009455349999998" data-type="line" data-label="" points="173.9225370418508,410.864829945412 179.7452560436704,410.864829945412 179.7452560436704,442.73628812061344 136.07486353002338,442.73628812061344 136.07486353002338,474.6077462958149 141.897582531843,474.6077462958149" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-8.650000000000002,-5.8199999999999985 -9.5625,-5.8199999999999985 -9.5625,-5.024999999999999 -10.475,-5.024999999999999 -10.475,-5.224999999999998" data-type="line" data-label="" points="115.69534702365476,410.864829945412 89.12919157785291,410.864829945412 89.12919157785291,387.71952191317905 62.56303613205097,387.71952191317905 62.56303613205097,393.5422409149987" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999982,-5.92 1.5074999999999983,-5.92 1.5074999999999983,-5.329999999999999 2.41,-5.329999999999999 2.41,-4.02" data-type="line" data-label="" points="401.5908500129971,413.77618944632184 411.4166883285677,413.77618944632184 411.4166883285677,396.599168390954 437.6917078242787,396.599168390954 437.6917078242787,358.46035892903564" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-4.890000000000002,-5.224999999999999 -4.890000000000002,-3.8324999999999996 -1.86945535,-3.8324999999999996 -1.86945535,-2.44" data-type="line" data-label="" points="225.16246425786323,393.54224091499873 225.16246425786323,353.00155986482974 313.10137790486095,353.00155986482974 313.10137790486095,312.4608788146608" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.808910699999998,-0.6049999999999982 -9.808910699999998,0.4744553500000017 -7.965000000000001,0.4744553500000017" data-type="line" data-label="" points="81.95529025214461,259.0374319729659 81.95529025214461,227.6106060826618 135.63815960488694,227.6106060826618" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.3494553499999995,-2.919999999999998 -6.3494553499999995,-1.6794553499999996 -4.2194553500000005,-1.6794553499999996" data-type="line" data-label="" points="182.67247226410194,326.4354044190278 182.67247226410194,290.31868988822464 244.68442963348065,290.31868988822464" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="7.0649999999999995,0.3272767499999982 7.265,0.3272767499999982 7.265,1.3167320999999976 5.765,1.3167320999999976 5.765,2.3061874499999973 5.965,2.3061874499999973" data-type="line" data-label="" points="573.2154925916299,231.89550423706794 579.0382115934494,231.89550423706794 579.0382115934494,203.08890189758262 535.3678190798025,203.08890189758262 535.3678190798025,174.28229955809732 541.1905380816221,174.28229955809732" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="7.0649999999999995,-1.6516339500000008 7.265,-1.6516339500000008 7.265,-0.6621786000000013 5.765,-0.6621786000000013 5.765,0.3272767499999982 5.965,0.3272767499999982" data-type="line" data-label="" points="573.2154925916299,289.50870891603853 579.0382115934494,289.50870891603853 579.0382115934494,260.7021065765532 535.3678190798025,260.7021065765532 535.3678190798025,231.89550423706794 541.1905380816221,231.89550423706794" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="7.0649999999999995,-3.63054465 7.265,-3.63054465 7.265,-2.6410893000000004 5.765,-2.6410893000000004 5.765,-1.6516339500000008 5.965,-1.6516339500000008" data-type="line" data-label="" points="573.2154925916299,347.1219135950091 579.0382115934494,347.1219135950091 579.0382115934494,318.31531125552385 535.3678190798025,318.31531125552385 535.3678190798025,289.50870891603853 541.1905380816221,289.50870891603853" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.119455350000001,-1.6794553499999991 -2.9194553500000007,-1.6794553499999991 -2.9194553500000007,-1.3399999999999994 -1.8694553500000004,-1.3399999999999994" data-type="line" data-label="" points="276.7093841434884,290.3186898882246 282.53210314530804,290.3186898882246 282.53210314530804,280.435924304653 313.10137790486095,280.435924304653" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.4099999999999997,-1.1149999999999993 2.4099999999999997,-0.9149999999999994 3.460000000000001,-0.9149999999999994 3.460000000000001,-1.1399999999999992" data-type="line" data-label="" points="437.6917078242787,273.88536542760596 437.6917078242787,268.06264642578634 468.2609825838316,268.06264642578634 468.2609825838316,274.61320530283336" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.8694553500000004,-1.3399999999999994 -1.8694553500000004,-0.7199999999999995 -1.3050000000000008,-0.7199999999999995 -1.3050000000000008,-0.09999999999999964 -1.5050000000000008,-0.09999999999999964" data-type="line" data-label="" points="313.10137790486095,280.435924304653 313.10137790486095,262.38549539901226 329.5347023654796,262.38549539901226 329.5347023654796,244.33506649337147 323.71198336366,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,-1.0999999999999996 1.9909999999999992,-1.0999999999999994 1.9909999999999992,-0.6999999999999995 1.1699999999999995,-0.6999999999999995" data-type="line" data-label="" points="401.5908500129972,273.44866150246946 425.4931115154666,273.44866150246946 425.4931115154666,261.8032234988303 401.5908500129972,261.8032234988303" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.8300000000000005,-0.8999999999999996 -1.0300000000000005,-0.8999999999999996 -1.0300000000000005,-0.49999999999999967 -0.8300000000000005,-0.49999999999999967" data-type="line" data-label="" points="343.36365999480114,267.6259425006499 337.5409409929816,267.6259425006499 337.5409409929816,255.98050449701068 343.36365999480114,255.98050449701068" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,-0.2999999999999995 1.4699999999999998,-0.2999999999999995 1.4699999999999998,-3.1599999999999997 -1.7710000000000017,-3.1599999999999997 -1.7710000000000017,-6.019999999999999 -0.8300000000000018,-6.02" data-type="line" data-label="" points="401.5908500129972,250.15778549519106 410.3249285157266,250.15778549519106 410.3249285157266,333.4226672212113 315.9677670912399,333.4226672212113 315.9677670912399,416.68754894723156 343.36365999480114,416.6875489472316" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.8300000000000005,0.10000000000000042 -1.3425000000000005,0.10000000000000042 -1.3425000000000005,1.6800000000000002 -1.8550000000000004,1.6800000000000002" data-type="line" data-label="" points="343.36365999480114,238.51234749155188 328.44294255263844,238.51234749155188 328.44294255263844,192.51286737717703 313.5222251104757,192.51286737717703" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.760000000000001,-1.1399999999999992 5.549999999999997,-1.1399999999999992 5.549999999999997,-3.43054465 5.024,-3.43054465 5.024,-3.83054465 5.549999999999997,-3.83054465 5.549999999999997,-6.119999999999999 5.349999999999997,-6.119999999999999" data-type="line" data-label="" points="506.108656095659,274.61320530283336 529.1083961528464,274.61320530283336 529.1083961528464,341.29919459318955 513.7946451780608,341.29919459318955 513.7946451780608,352.94463259682874 529.1083961528464,352.94463259682874 529.1083961528464,419.5989084481414 523.2856771510267,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-8.850000000000001,-8.129999999999999 -8.59,-8.129999999999999 -8.59,-8.130999999999998" data-type="line" data-label="" points="109.87262802183517,478.1172344164284 117.4421627242007,478.1172344164284 117.4421627242007,478.14634801143745" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.965000000000001,0.4744553500000013 -5.7540000000000004,0.4744553500000013 -5.7540000000000004,0.27345535000000126" data-type="line" data-label="" points="193.86534962308292,227.6106060826618 200.0083181700026,227.6106060826618 200.0083181700026,233.4624386794905" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.6400000000000023,-7.564455349999998 -3.851000000000002,-7.564455349999998 -3.851000000000002,-7.765455349999998" data-type="line" data-label="" points="261.5544580192357,461.65219651676625 255.41148947231605,461.65219651676625 255.41148947231605,467.504029113595" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.808910699999998,-2.9149999999999983 -9.808910699999998,-1.763999999999998 -10.259910699999997,-1.763999999999998" data-type="line" data-label="" points="81.95529025214461,326.2898364439823 81.95529025214461,292.7800885885105 68.82505890304145,292.7800885885105" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.8800000000000003,4.0200000000000005 -1.8800000000000003,5.321000000000001 -2.9310000000000005,5.321000000000001" data-type="line" data-label="" points="312.7943852352482,124.38705505588771 312.7943852352482,86.51026794905121 282.19599688068627,86.51026794905121" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999973,-8.57 1.1699999999999973,-8.671 0.9689999999999974,-8.671" data-type="line" data-label="" points="401.59085001299707,490.92721622043155 401.59085001299707,493.8676893163504 395.7390174161684,493.8676893163504" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.210000000000001,-3.2794553499999983 4.210000000000001,-3.8304553499999985 4.159000000000001,-3.8304553499999985" data-type="line" data-label="" points="490.0961788406551,336.9004419027814 490.0961788406551,352.9420327527944 488.6113854951911,352.9420327527944" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-6.200000000000001" data-y="-10.298910699999997" x="157.9100597868469" y="532.5279436443982" width="58.227190018195984" height="17.468157005458806" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-10.05" data-y="-8.229999999999999" x="45.82271900181962" y="472.2945154146088" width="58.227190018195984" height="17.468157005458806" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-7.650000000000001" data-y="-5.8199999999999985" x="115.69534702365476" y="405.04211094359243" width="58.22719001819604" height="11.645438003639129" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-6.965000000000001" data-y="0.4744553500000013" x="135.63815960488694" y="221.7878870808422" width="58.227190018195984" height="11.645438003639185" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-2.6400000000000023" data-y="-7.464455349999998" x="261.55445801923565" y="450.0067585131271" width="58.22719001819604" height="17.46815700545875" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="0.16999999999999948" data-y="-0.49999999999999956" x="343.3636599948011" y="232.68962848973229" width="58.22719001819604" height="46.5817520145568" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_6" data-x="0.16999999999999815" data-y="-6.02" x="343.36365999480114" y="405.04211094359243" width="58.227190018195984" height="23.29087600727837" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_7" data-x="-9.6714107" data-y="-3.464999999999999" x="69.72758034832336" y="326.28983644398227" width="32.46165843514433" height="32.02495451000783" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_8" data-x="-10.337499999999999" data-y="-5.774999999999999" x="50.33532622822983" y="393.54224091499873" width="32.46165843514433" height="32.02495451000783" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_9" data-x="-9.551410699999998" data-y="-1.154999999999999" x="69.72758034832344" y="259.0374319729659" width="39.448921237327795" height="32.02495451000783" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_10" data-x="-4.597500000000002" data-y="-5.774999999999999" x="219.50116995061086" y="393.54224091499873" width="28.35404169482706" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_11" data-x="-7.200000000000001" data-y="-8.009455349999998" x="141.897582531843" y="463.2693009617884" width="32.024954510007774" height="22.67689066805292" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_12" data-x="-7.306955349999999" data-y="-1.8805446499999983" x="140.6191841954771" y="280.1606450740836" width="28.35404169482706" height="32.02495451000783" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_13" data-x="-4.890000000000002" data-y="-7.364455349999998" x="209.14998700285935" y="443.32648838055627" width="32.0249545100078" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_14" data-x="6.515" data-y="-3.63054465" x="541.1905380816221" y="335.78346826098266" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_15" data-x="6.515" data-y="-1.6516339500000008" x="541.1905380816221" y="278.170263582012" width="32.024954510007774" height="22.676890668053034" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_16" data-x="6.515" data-y="0.3272767499999982" x="541.1905380816221" y="220.55705890304142" width="32.024954510007774" height="22.676890668053005" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_17" data-x="6.515" data-y="2.3061874499999973" x="541.1905380816221" y="162.94385422407083" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_18" data-x="-5.9969553499999995" data-y="-3.469999999999998" x="177.01117795684956" y="326.4354044190278" width="31.84767309591885" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_19" data-x="-3.6694553500000007" data-y="-1.6794553499999991" x="244.68442963348065" y="277.81570075383416" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_20" data-x="-3.6800000000000006" data-y="3.2594553499999996" x="244.37743696386798" y="134.0262548479335" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_21" data-x="-0.6300000000000008" data-y="1.6894553499999998" x="333.1739017416169" y="179.73459901221736" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_22" data-x="4.502500000000001" data-y="-2.7294553499999985" x="484.4348845334028" y="304.8754873927736" width="28.35404169482706" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_23" data-x="2.9699999999999975" data-y="-7.699455349999998" x="437.9828437743696" y="454.24408650896805" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_24" data-x="-1.5869553500000007" data-y="-1.8899999999999997" x="307.4400835976085" y="280.435924304653" width="27.771769794645138" height="32.02495451000783" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_25" data-x="-1.6475000000000004" data-y="3.47" x="307.1330909279959" y="124.38705505588773" width="24.860410293735356" height="32.0249545100078" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_26" data-x="1.4024999999999994" data-y="1.9000000000000004" x="395.92955570574475" y="170.0953992201716" width="24.860410293735356" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_27" data-x="4.210000000000001" data-y="-1.1399999999999992" x="474.0837015856512" y="262.11021616844295" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_28" data-x="1.4524999999999972" data-y="-8.02" x="395.9295557057447" y="458.9022617104238" width="27.771769794645138" height="32.02495451000783" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_29" data-x="-2.0700000000000007" data-y="-0.09999999999999964" x="290.81362100337924" y="227.15804543800363" width="32.89836236028077" height="34.35404211073566" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_30" data-x="-3.8600000000000008" data-y="-0.09999999999999962" x="239.13698986223034" y="232.99662115934495" width="32.0249545100078" height="22.676890668053005" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_31" data-x="-2.4200000000000004" data-y="1.6800000000000002" x="280.62386275019503" y="175.33584632180919" width="32.898362360280714" height="34.35404211073566" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_32" data-x="-4.210000000000001" data-y="1.6800000000000002" x="228.947231609046" y="181.17442204315054" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_33" data-x="2.4099999999999997" data-y="0.10000000000000009" x="421.24252664413837" y="221.33532643618406" width="32.898362360280714" height="34.354042110735634" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_34" data-x="3.2424999999999997" data-y="1.9000000000000004" x="447.75175482193924" y="170.0953992201716" width="28.354041694827117" height="32.0249545100078" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_35" data-x="2.6525" data-y="-1.6799999999999993" x="428.2297894463218" y="273.88536542760596" width="33.04393033532625" height="32.898362360280714" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_36" data-x="2.7525000000000004" data-y="-3.4699999999999998" x="432.0304135170263" y="326.43540441902786" width="31.2654011957369" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_37" data-x="2.4099999999999984" data-y="-6.119999999999999" x="421.24252664413825" y="402.42188739277356" width="32.89836236028077" height="34.354042110735634" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_38" data-x="4.799999999999997" data-y="-6.119999999999999" x="491.2607226410189" y="407.095919313751" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="MY_18650_02" data-x="-6.140000000000001" data-y="-10.728910699999997" x="169.5554977904861" y="551.1606444502208" width="38.429945412009374" height="5.240447101637756" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="J_BAT_POS" data-x="-6.260000000000001" data-y="-9.868910699999997" x="169.55549779048613" y="526.1229527423966" width="31.442682609825823" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="MY_18650_02" data-x="-9.99" data-y="-8.659999999999998" x="57.46815700545881" y="490.9272162204315" width="38.429945412009374" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="J_BAT_NEG" data-x="-10.11" data-y="-7.799999999999999" x="57.468157005458835" y="465.8895245126073" width="31.442682609825795" height="5.240447101637585" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="BAT54WS" data-x="-7.830000000000002" data-y="-6.149999999999999" x="127.34078502729396" y="417.8520927475955" width="24.4554198076423" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="D_PROT" data-x="-7.890000000000002" data-y="-5.489999999999998" x="127.34078502729398" y="398.63712004159083" width="20.96178840655051" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="BAT54WS" data-x="-7.145000000000001" data-y="0.14445535000000126" x="147.28359760852612" y="234.59786888484533" width="24.4554198076423" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="D_SENSE_CLAMP" data-x="-6.785000000000001" data-y="0.8044553500000013" x="147.28359760852612" y="215.38289617884064" width="45.41720821419287" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="LM4040D25FTA" data-x="-2.5200000000000022" data-y="-7.894455349999998" x="273.1998960228749" y="468.63945931894983" width="41.92357681310108" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="U_REF" data-x="-2.940000000000002" data-y="-7.034455349999998" x="273.1998960228749" y="443.6017676111255" width="17.46815700545875" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="LMV339IDR" data-x="0.10999999999999943" data-y="-1.4299999999999997" x="355.0090979984403" y="280.435924304653" width="31.44268260982585" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="U1" data-x="-0.3100000000000006" data-y="0.4300000000000005" x="355.0090979984403" y="226.2846375877307" width="6.987262802183523" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="LMV331IDBVR" data-x="0.22999999999999798" data-y="-6.55" x="355.0090979984403" y="429.49753075123476" width="38.42994541200932" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="U2" data-x="-0.31000000000000194" data-y="-5.489999999999999" x="355.0090979984403" y="398.6371200415909" width="6.987262802183523" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="netId: BAT_RAW
1
+ <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-4.3400000000000025,-7.364455349999998 -4.140000000000002,-7.364455349999998 -4.140000000000002,-6.844727674999999 -4.890000000000002,-6.844727674999999 -4.890000000000002,-6.324999999999998" data-type="line" data-label="" points="241.17494151286712,455.8294775149467 246.99766051468674,455.8294775149467 246.99766051468674,440.6983364699766 225.16246425786323,440.6983364699766 225.16246425786323,425.5671954250065" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.6400000000000023,-7.364455349999998 -4.3400000000000025,-7.364455349999998" data-type="line" data-label="" points="261.5544580192357,455.8294775149467 241.17494151286712,455.8294775149467" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.808910699999998,-1.705000000000001 -9.808910699999998,-1.9050000000000002 -10.4289107,-1.9050000000000002 -10.4289107,-4.214999999999999 -9.808910699999998,-4.214999999999999 -9.808910699999998,-4.015" data-type="line" data-label="" points="81.95529025214461,291.0623864829738 81.95529025214461,296.88510548479337 63.90486134650382,296.88510548479337 63.90486134650382,364.1375099558097 81.95529025214461,364.1375099558097 81.95529025214461,358.31479095399015" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-11.05,-8.129999999999999 -11.25,-8.129999999999999 -11.25,-7.227499999999999 -10.475,-7.227499999999999 -10.475,-6.324999999999999" data-type="line" data-label="" points="45.82271900181962,478.1172344164284 40,478.1172344164284 40,451.8422149207174 62.56303613205097,451.8422149207174 62.56303613205097,425.5671954250065" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-11.05,-8.329999999999998 -11.25,-8.329999999999998 -11.25,-8.129999999999999 -11.05,-8.129999999999999" data-type="line" data-label="" points="45.82271900181962,483.93995341824797 40,483.93995341824797 40,478.1172344164284 45.82271900181962,478.1172344164284" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.05,-8.129999999999999 -8.850000000000001,-8.129999999999999 -8.850000000000001,-8.329999999999998 -9.05,-8.329999999999998" data-type="line" data-label="" points="104.0499090200156,478.1172344164284 109.87262802183517,478.1172344164284 109.87262802183517,483.93995341824797 104.0499090200156,483.93995341824797" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.8300000000000005,-0.09999999999999959 -1.5050000000000008,-0.09999999999999964" data-type="line" data-label="" points="343.36365999480114,244.33506649337147 323.71198336366,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.130000000000001,3.2594553499999996 -2.505000000000001,3.2594553499999996 -2.505000000000001,2.7199999999999998 -1.8800000000000003,2.7199999999999998 -1.8800000000000003,2.92" data-type="line" data-label="" points="276.40239147387575,146.52924398232392 294.59838835456196,146.52924398232392 294.59838835456196,162.23472856771514 312.7943852352482,162.23472856771514 312.7943852352482,156.41200956589552" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,0.10000000000000042 1.8449999999999998,0.10000000000000016" data-type="line" data-label="" points="401.5908500129972,238.51234749155188 421.2425266441383,238.51234749155188" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,1.3500000000000003 1.1699999999999995,0.7250000000000003 1.3699999999999994,0.7250000000000003 1.3699999999999994,0.10000000000000042 1.1699999999999995,0.10000000000000042" data-type="line" data-label="" points="401.5908500129972,202.12035373017937 401.5908500129972,220.31635061086564 407.41356901481674,220.31635061086564 407.41356901481674,238.51234749155188 401.5908500129972,238.51234749155188" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.08000000000000074,1.6894553499999998 0.5449999999999994,1.6894553499999998 0.5449999999999994,1.1500000000000004 1.1699999999999995,1.1500000000000004 1.1699999999999995,1.3500000000000003" data-type="line" data-label="" points="365.19885625162465,192.23758814660778 383.3948531323109,192.23758814660778 383.3948531323109,207.943072731999 401.5908500129972,207.943072731999 401.5908500129972,202.12035373017937" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.210000000000001,-2.1794553499999987 4.210000000000001,-1.659727674999999 3.460000000000001,-1.659727674999999 3.460000000000001,-1.1399999999999992 3.660000000000001,-1.1399999999999992" data-type="line" data-label="" points="490.0961788406551,304.8754873927736 490.0961788406551,289.74434634780346 468.2609825838316,289.74434634780346 468.2609825838316,274.61320530283336 474.0837015856512,274.61320530283336" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999982,-6.119999999999999 1.8449999999999984,-6.119999999999999" data-type="line" data-label="" points="401.5908500129971,419.5989084481414 421.24252664413825,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999973,-7.469999999999999 1.1699999999999973,-6.794999999999999 1.3699999999999983,-6.794999999999999 1.3699999999999983,-6.119999999999999 1.1699999999999982,-6.119999999999999" data-type="line" data-label="" points="401.59085001299707,458.9022617104237 401.59085001299707,439.2505850792826 407.41356901481674,439.2505850792826 407.41356901481674,419.5989084481414 401.5908500129971,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.4199999999999973,-7.699455349999998 2.174727674999997,-7.699455349999998 2.174727674999997,-7.269999999999999 1.1699999999999973,-7.269999999999999 1.1699999999999973,-7.469999999999999" data-type="line" data-label="" points="437.9828437743696,465.5825318429945 430.84208463737974,465.5825318429945 430.84208463737974,453.0795427086041 401.59085001299707,453.0795427086041 401.59085001299707,458.9022617104237" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.3100000000000005,-0.09999999999999964 -2.6350000000000007,-0.09999999999999964" data-type="line" data-label="" points="271.1619443722381,244.33506649337147 290.81362100337924,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.660000000000001,1.6800000000000002 -2.9850000000000003,1.6800000000000002" data-type="line" data-label="" points="260.9721861190538,192.51286737717703 280.623862750195,192.51286737717703" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.9499999999999997,1.35 2.9499999999999997,0.7250000000000005 3.175,0.7250000000000005 3.175,0.10000000000000053 2.9749999999999996,0.10000000000000053" data-type="line" data-label="" points="453.41304912919156,202.12035373017937 453.41304912919156,220.3163506108656 459.96360800623864,220.3163506108656 459.96360800623864,238.51234749155188 454.140889004419,238.51234749155188" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.41,-2.92 2.4099999999999997,-2.244999999999999" data-type="line" data-label="" points="437.6917078242787,326.43540441902786 437.6917078242787,306.7837277878867" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.249999999999997,-6.119999999999999 2.9749999999999983,-6.119999999999999" data-type="line" data-label="" points="491.2607226410189,419.5989084481414 454.140889004419,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.200000000000001,-10.398910699999997 -7.400000000000001,-10.398910699999997 -7.400000000000001,-10.198910699999997 -7.200000000000001,-10.198910699999997" data-type="line" data-label="" points="157.9100597868469,544.1733816480373 152.08734078502727,544.1733816480373 152.08734078502727,538.3506626462179 157.9100597868469,538.3506626462179" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.200000000000001,-10.198910699999997 -5.000000000000001,-10.198910699999997 -5.000000000000001,-10.398910699999997 -5.200000000000001,-10.398910699999997" data-type="line" data-label="" points="216.13724980504287,538.3506626462179 221.9599688068625,538.3506626462179 221.9599688068625,544.1733816480373 216.13724980504287,544.1733816480373" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-4.760000000000001,1.6800000000000002 -4.960000000000001,1.6800000000000002 -4.960000000000001,-0.09999999999999964 -4.410000000000001,-0.09999999999999964" data-type="line" data-label="" points="228.947231609046,192.51286737717703 223.12451260722642,192.51286737717703 223.12451260722642,244.33506649337147 239.1369898622303,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,2.45 1.1699999999999995,2.6500000000000004 2.9499999999999997,2.6500000000000004 2.9499999999999997,2.4500000000000006" data-type="line" data-label="" points="401.5908500129972,170.0953992201716 401.5908500129972,164.27268021835198 453.41304912919156,164.27268021835198 453.41304912919156,170.09539922017157" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.5994553499999995,-1.3305446499999976 -7.5994553499999995,-0.42804464999999814 -8.965,-0.42804464999999814 -8.965,0.4744553500000013 -7.965000000000001,0.4744553500000013" data-type="line" data-label="" points="146.28047850272944,280.1606450740837 146.28047850272944,253.88562557837272 106.52456459578895,253.88562557837272 106.52456459578895,227.6106060826618 135.63815960488694,227.6106060826618" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.3494553499999995,-4.019999999999998 -6.3494553499999995,-4.219999999999998 -7.5994553499999995,-4.219999999999998 -7.5994553499999995,-2.430544649999999" data-type="line" data-label="" points="182.67247226410194,358.4603589290356 182.67247226410194,364.2830779308552 146.28047850272944,364.2830779308552 146.28047850272944,312.1855995840915" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.65,-5.8199999999999985 -6.450000000000001,-5.8199999999999985 -6.450000000000001,-6.914727674999998 -7.950000000000001,-6.914727674999998 -7.950000000000001,-8.009455349999998 -7.750000000000001,-8.009455349999998" data-type="line" data-label="" points="173.9225370418508,410.864829945412 179.7452560436704,410.864829945412 179.7452560436704,442.73628812061344 136.07486353002338,442.73628812061344 136.07486353002338,474.6077462958149 141.897582531843,474.6077462958149" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-8.650000000000002,-5.8199999999999985 -9.5625,-5.8199999999999985 -9.5625,-5.024999999999999 -10.475,-5.024999999999999 -10.475,-5.224999999999998" data-type="line" data-label="" points="115.69534702365476,410.864829945412 89.12919157785291,410.864829945412 89.12919157785291,387.71952191317905 62.56303613205097,387.71952191317905 62.56303613205097,393.5422409149987" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999982,-5.92 1.5074999999999983,-5.92 1.5074999999999983,-5.329999999999999 2.41,-5.329999999999999 2.41,-4.02" data-type="line" data-label="" points="401.5908500129971,413.77618944632184 411.4166883285677,413.77618944632184 411.4166883285677,396.599168390954 437.6917078242787,396.599168390954 437.6917078242787,358.46035892903564" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-4.890000000000002,-5.224999999999999 -4.890000000000002,-3.8324999999999996 -1.86945535,-3.8324999999999996 -1.86945535,-2.44" data-type="line" data-label="" points="225.16246425786323,393.54224091499873 225.16246425786323,353.00155986482974 313.10137790486095,353.00155986482974 313.10137790486095,312.4608788146608" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.808910699999998,-0.6049999999999982 -9.808910699999998,0.4744553500000017 -7.965000000000001,0.4744553500000017" data-type="line" data-label="" points="81.95529025214461,259.0374319729659 81.95529025214461,227.6106060826618 135.63815960488694,227.6106060826618" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.3494553499999995,-2.919999999999998 -6.3494553499999995,-1.6794553499999996 -4.2194553500000005,-1.6794553499999996" data-type="line" data-label="" points="182.67247226410194,326.4354044190278 182.67247226410194,290.31868988822464 244.68442963348065,290.31868988822464" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="7.0649999999999995,0.3272767499999982 7.265,0.3272767499999982 7.265,1.3167320999999976 5.765,1.3167320999999976 5.765,2.3061874499999973 5.965,2.3061874499999973" data-type="line" data-label="" points="573.2154925916299,231.89550423706794 579.0382115934494,231.89550423706794 579.0382115934494,203.08890189758262 535.3678190798025,203.08890189758262 535.3678190798025,174.28229955809732 541.1905380816221,174.28229955809732" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="7.0649999999999995,-1.6516339500000008 7.265,-1.6516339500000008 7.265,-0.6621786000000013 5.765,-0.6621786000000013 5.765,0.3272767499999982 5.965,0.3272767499999982" data-type="line" data-label="" points="573.2154925916299,289.50870891603853 579.0382115934494,289.50870891603853 579.0382115934494,260.7021065765532 535.3678190798025,260.7021065765532 535.3678190798025,231.89550423706794 541.1905380816221,231.89550423706794" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="7.0649999999999995,-3.63054465 7.265,-3.63054465 7.265,-2.6410893000000004 5.765,-2.6410893000000004 5.765,-1.6516339500000008 5.965,-1.6516339500000008" data-type="line" data-label="" points="573.2154925916299,347.1219135950091 579.0382115934494,347.1219135950091 579.0382115934494,318.31531125552385 535.3678190798025,318.31531125552385 535.3678190798025,289.50870891603853 541.1905380816221,289.50870891603853" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.119455350000001,-1.6794553499999991 -2.9194553500000007,-1.6794553499999991 -2.9194553500000007,-1.3399999999999994 -1.8694553500000004,-1.3399999999999994" data-type="line" data-label="" points="276.7093841434884,290.3186898882246 282.53210314530804,290.3186898882246 282.53210314530804,280.435924304653 313.10137790486095,280.435924304653" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.4099999999999997,-1.1149999999999993 2.4099999999999997,-0.9149999999999994 3.460000000000001,-0.9149999999999994 3.460000000000001,-1.1399999999999992" data-type="line" data-label="" points="437.6917078242787,273.88536542760596 437.6917078242787,268.06264642578634 468.2609825838316,268.06264642578634 468.2609825838316,274.61320530283336" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.8694553500000004,-1.3399999999999994 -1.8694553500000004,-0.7199999999999995 -1.3050000000000008,-0.7199999999999995 -1.3050000000000008,-0.09999999999999964 -1.5050000000000008,-0.09999999999999964" data-type="line" data-label="" points="313.10137790486095,280.435924304653 313.10137790486095,262.38549539901226 329.5347023654796,262.38549539901226 329.5347023654796,244.33506649337147 323.71198336366,244.33506649337147" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,-1.0999999999999996 1.9909999999999992,-1.0999999999999994 1.9909999999999992,-0.6999999999999995 1.1699999999999995,-0.6999999999999995" data-type="line" data-label="" points="401.5908500129972,273.44866150246946 425.4931115154666,273.44866150246946 425.4931115154666,261.8032234988303 401.5908500129972,261.8032234988303" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.8300000000000005,-0.8999999999999996 -1.0300000000000005,-0.8999999999999996 -1.0300000000000005,-0.49999999999999967 -0.8300000000000005,-0.49999999999999967" data-type="line" data-label="" points="343.36365999480114,267.6259425006499 337.5409409929816,267.6259425006499 337.5409409929816,255.98050449701068 343.36365999480114,255.98050449701068" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999995,-0.2999999999999995 1.4699999999999998,-0.2999999999999995 1.4699999999999998,-3.1599999999999997 -1.7710000000000017,-3.1599999999999997 -1.7710000000000017,-6.019999999999999 -0.8300000000000018,-6.02" data-type="line" data-label="" points="401.5908500129972,250.15778549519106 410.3249285157266,250.15778549519106 410.3249285157266,333.4226672212113 315.9677670912399,333.4226672212113 315.9677670912399,416.68754894723156 343.36365999480114,416.6875489472316" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.8300000000000005,0.10000000000000042 -1.3425000000000005,0.10000000000000042 -1.3425000000000005,1.6800000000000002 -1.8550000000000004,1.6800000000000002" data-type="line" data-label="" points="343.36365999480114,238.51234749155188 328.44294255263844,238.51234749155188 328.44294255263844,192.51286737717703 313.5222251104757,192.51286737717703" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.760000000000001,-1.1399999999999992 5.549999999999997,-1.1399999999999992 5.549999999999997,-3.43054465 5.024,-3.43054465 5.024,-3.83054465 5.549999999999997,-3.83054465 5.549999999999997,-6.119999999999999 5.349999999999997,-6.119999999999999" data-type="line" data-label="" points="506.108656095659,274.61320530283336 529.1083961528464,274.61320530283336 529.1083961528464,341.29919459318955 513.7946451780608,341.29919459318955 513.7946451780608,352.94463259682874 529.1083961528464,352.94463259682874 529.1083961528464,419.5989084481414 523.2856771510267,419.5989084481414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-8.850000000000001,-8.129999999999999 -8.59,-8.129999999999999 -8.59,-8.130999999999998" data-type="line" data-label="" points="109.87262802183517,478.1172344164284 117.4421627242007,478.1172344164284 117.4421627242007,478.14634801143745" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.965000000000001,0.4744553500000013 -5.7540000000000004,0.4744553500000013 -5.7540000000000004,0.27345535000000126" data-type="line" data-label="" points="193.86534962308292,227.6106060826618 200.0083181700026,227.6106060826618 200.0083181700026,233.4624386794905" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.6400000000000023,-7.564455349999998 -3.851000000000002,-7.564455349999998 -3.851000000000002,-7.765455349999998" data-type="line" data-label="" points="261.5544580192357,461.65219651676625 255.41148947231605,461.65219651676625 255.41148947231605,467.504029113595" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.808910699999998,-2.9149999999999983 -9.808910699999998,-2.814999999999998 -9.708910699999999,-2.814999999999998 -9.708910699999999,-1.763999999999998 -10.259910699999997,-1.763999999999998" data-type="line" data-label="" points="81.95529025214461,326.2898364439823 81.95529025214461,323.3784769430725 84.86664975305439,323.3784769430725 84.86664975305439,292.7800885885105 68.82505890304145,292.7800885885105" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.8800000000000003,4.0200000000000005 -1.8800000000000003,5.321000000000001 -2.9310000000000005,5.321000000000001" data-type="line" data-label="" points="312.7943852352482,124.38705505588771 312.7943852352482,86.51026794905121 282.19599688068627,86.51026794905121" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1699999999999973,-8.57 1.1699999999999973,-8.671 0.9689999999999974,-8.671" data-type="line" data-label="" points="401.59085001299707,490.92721622043155 401.59085001299707,493.8676893163504 395.7390174161684,493.8676893163504" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="4.210000000000001,-3.2794553499999983 4.210000000000001,-3.8304553499999985 4.159000000000001,-3.8304553499999985" data-type="line" data-label="" points="490.0961788406551,336.9004419027814 490.0961788406551,352.9420327527944 488.6113854951911,352.9420327527944" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-6.200000000000001" data-y="-10.298910699999997" x="157.9100597868469" y="532.5279436443982" width="58.227190018195984" height="17.468157005458806" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-10.05" data-y="-8.229999999999999" x="45.82271900181962" y="472.2945154146088" width="58.227190018195984" height="17.468157005458806" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-7.650000000000001" data-y="-5.8199999999999985" x="115.69534702365476" y="405.04211094359243" width="58.22719001819604" height="11.645438003639129" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-6.965000000000001" data-y="0.4744553500000013" x="135.63815960488694" y="221.7878870808422" width="58.227190018195984" height="11.645438003639185" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-2.6400000000000023" data-y="-7.464455349999998" x="261.55445801923565" y="450.0067585131271" width="58.22719001819604" height="17.46815700545875" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="0.16999999999999948" data-y="-0.49999999999999956" x="343.3636599948011" y="232.68962848973229" width="58.22719001819604" height="46.5817520145568" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_6" data-x="0.16999999999999815" data-y="-6.02" x="343.36365999480114" y="405.04211094359243" width="58.227190018195984" height="23.29087600727837" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_7" data-x="-9.6714107" data-y="-3.464999999999999" x="69.72758034832336" y="326.28983644398227" width="32.46165843514433" height="32.02495451000783" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_8" data-x="-10.337499999999999" data-y="-5.774999999999999" x="50.33532622822983" y="393.54224091499873" width="32.46165843514433" height="32.02495451000783" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_9" data-x="-9.551410699999998" data-y="-1.154999999999999" x="69.72758034832344" y="259.0374319729659" width="39.448921237327795" height="32.02495451000783" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_10" data-x="-4.597500000000002" data-y="-5.774999999999999" x="219.50116995061086" y="393.54224091499873" width="28.35404169482706" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_11" data-x="-7.200000000000001" data-y="-8.009455349999998" x="141.897582531843" y="463.2693009617884" width="32.024954510007774" height="22.67689066805292" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_12" data-x="-7.306955349999999" data-y="-1.8805446499999983" x="140.6191841954771" y="280.1606450740836" width="28.35404169482706" height="32.02495451000783" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_13" data-x="-4.890000000000002" data-y="-7.364455349999998" x="209.14998700285935" y="443.32648838055627" width="32.0249545100078" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_14" data-x="6.515" data-y="-3.63054465" x="541.1905380816221" y="335.78346826098266" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_15" data-x="6.515" data-y="-1.6516339500000008" x="541.1905380816221" y="278.170263582012" width="32.024954510007774" height="22.676890668053034" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_16" data-x="6.515" data-y="0.3272767499999982" x="541.1905380816221" y="220.55705890304142" width="32.024954510007774" height="22.676890668053005" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_17" data-x="6.515" data-y="2.3061874499999973" x="541.1905380816221" y="162.94385422407083" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_18" data-x="-5.9969553499999995" data-y="-3.469999999999998" x="177.01117795684956" y="326.4354044190278" width="31.84767309591885" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_19" data-x="-3.6694553500000007" data-y="-1.6794553499999991" x="244.68442963348065" y="277.81570075383416" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_20" data-x="-3.6800000000000006" data-y="3.2594553499999996" x="244.37743696386798" y="134.0262548479335" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_21" data-x="-0.6300000000000008" data-y="1.6894553499999998" x="333.1739017416169" y="179.73459901221736" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_22" data-x="4.502500000000001" data-y="-2.7294553499999985" x="484.4348845334028" y="304.8754873927736" width="28.35404169482706" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_23" data-x="2.9699999999999975" data-y="-7.699455349999998" x="437.9828437743696" y="454.24408650896805" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_24" data-x="-1.5869553500000007" data-y="-1.8899999999999997" x="307.4400835976085" y="280.435924304653" width="27.771769794645138" height="32.02495451000783" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_25" data-x="-1.6475000000000004" data-y="3.47" x="307.1330909279959" y="124.38705505588773" width="24.860410293735356" height="32.0249545100078" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_26" data-x="1.4024999999999994" data-y="1.9000000000000004" x="395.92955570574475" y="170.0953992201716" width="24.860410293735356" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_27" data-x="4.210000000000001" data-y="-1.1399999999999992" x="474.0837015856512" y="262.11021616844295" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_28" data-x="1.4524999999999972" data-y="-8.02" x="395.9295557057447" y="458.9022617104238" width="27.771769794645138" height="32.02495451000783" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_29" data-x="-2.0700000000000007" data-y="-0.09999999999999964" x="290.81362100337924" y="227.15804543800363" width="32.89836236028077" height="34.35404211073566" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_30" data-x="-3.8600000000000008" data-y="-0.09999999999999962" x="239.13698986223034" y="232.99662115934495" width="32.0249545100078" height="22.676890668053005" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_31" data-x="-2.4200000000000004" data-y="1.6800000000000002" x="280.62386275019503" y="175.33584632180919" width="32.898362360280714" height="34.35404211073566" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_32" data-x="-4.210000000000001" data-y="1.6800000000000002" x="228.947231609046" y="181.17442204315054" width="32.024954510007774" height="22.676890668052977" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_33" data-x="2.4099999999999997" data-y="0.10000000000000009" x="421.24252664413837" y="221.33532643618406" width="32.898362360280714" height="34.354042110735634" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_34" data-x="3.2424999999999997" data-y="1.9000000000000004" x="447.75175482193924" y="170.0953992201716" width="28.354041694827117" height="32.0249545100078" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_35" data-x="2.6525" data-y="-1.6799999999999993" x="428.2297894463218" y="273.88536542760596" width="33.04393033532625" height="32.898362360280714" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_36" data-x="2.7525000000000004" data-y="-3.4699999999999998" x="432.0304135170263" y="326.43540441902786" width="31.2654011957369" height="32.024954510007774" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_37" data-x="2.4099999999999984" data-y="-6.119999999999999" x="421.24252664413825" y="402.42188739277356" width="32.89836236028077" height="34.354042110735634" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="schematic_component_38" data-x="4.799999999999997" data-y="-6.119999999999999" x="491.2607226410189" y="407.095919313751" width="32.024954510007774" height="25.005978268780837" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="MY_18650_02" data-x="-6.140000000000001" data-y="-10.728910699999997" x="169.5554977904861" y="551.1606444502208" width="38.429945412009374" height="5.240447101637756" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="J_BAT_POS" data-x="-6.260000000000001" data-y="-9.868910699999997" x="169.55549779048613" y="526.1229527423966" width="31.442682609825823" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="MY_18650_02" data-x="-9.99" data-y="-8.659999999999998" x="57.46815700545881" y="490.9272162204315" width="38.429945412009374" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="J_BAT_NEG" data-x="-10.11" data-y="-7.799999999999999" x="57.468157005458835" y="465.8895245126073" width="31.442682609825795" height="5.240447101637585" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="BAT54WS" data-x="-7.830000000000002" data-y="-6.149999999999999" x="127.34078502729396" y="417.8520927475955" width="24.4554198076423" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="D_PROT" data-x="-7.890000000000002" data-y="-5.489999999999998" x="127.34078502729398" y="398.63712004159083" width="20.96178840655051" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="BAT54WS" data-x="-7.145000000000001" data-y="0.14445535000000126" x="147.28359760852612" y="234.59786888484533" width="24.4554198076423" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="D_SENSE_CLAMP" data-x="-6.785000000000001" data-y="0.8044553500000013" x="147.28359760852612" y="215.38289617884064" width="45.41720821419287" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="LM4040D25FTA" data-x="-2.5200000000000022" data-y="-7.894455349999998" x="273.1998960228749" y="468.63945931894983" width="41.92357681310108" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="U_REF" data-x="-2.940000000000002" data-y="-7.034455349999998" x="273.1998960228749" y="443.6017676111255" width="17.46815700545875" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="LMV339IDR" data-x="0.10999999999999943" data-y="-1.4299999999999997" x="355.0090979984403" y="280.435924304653" width="31.44268260982585" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="U1" data-x="-0.3100000000000006" data-y="0.4300000000000005" x="355.0090979984403" y="226.2846375877307" width="6.987262802183523" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="LMV331IDBVR" data-x="0.22999999999999798" data-y="-6.55" x="355.0090979984403" y="429.49753075123476" width="38.42994541200932" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="U2" data-x="-0.31000000000000194" data-y="-5.489999999999999" x="355.0090979984403" y="398.6371200415909" width="6.987262802183523" height="5.240447101637642" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="netId: BAT_RAW
2
2
  globalConnNetId: connectivity_net12" data-x="-7.880000000000001" data-y="-10.398910699999997" x="124.1382895762932" y="541.2620221471275" width="27.94905120873409" height="5.822719001819564" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="netId: BAT_RAW
3
3
  globalConnNetId: connectivity_net12" data-x="-4.520000000000001" data-y="-10.198910699999997" x="221.95996880686243" y="535.439303145308" width="27.94905120873412" height="5.822719001819564" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="netId: BAT_RAW
4
4
  globalConnNetId: connectivity_net12" data-x="-5.970000000000001" data-y="-5.8199999999999985" x="179.7452560436704" y="407.9534704445022" width="27.94905120873409" height="5.822719001819564" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.03434821428571429"/></g><g><rect data-type="rect" data-label="netId: GND
@@ -1,4 +1,4 @@
1
- <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="13.45,16 8.9,14.5" data-type="line" data-label="" points="439.8389477922427,115.96732009126299 97.87142665414046,228.70386552140667" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="14.55,16 8.9,15.1" data-type="line" data-label="" points="522.5124144410149,115.96732009126299 97.87142665414046,183.6092473493493" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="13.45,14 11.1,13.1" data-type="line" data-label="" points="439.8389477922427,266.28271399812115 263.2183599516844,333.92464125620734" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="8.9,15.1 8.9,14.7" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 97.87142665414046,213.67232613072088" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,15.1 11.1,13.3" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 263.2183599516844,318.89310186552143" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,15.1 14.55,14" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 522.5124144410149,266.28271399812115" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,15.1 14.55,16" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 11.1,13.3" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 263.2183599516844,318.89310186552143" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 14.55,14" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 522.5124144410149,266.28271399812115" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 14.55,16" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,13.3 14.55,14" data-type="line" data-label="" points="263.2183599516844,318.89310186552143 522.5124144410149,266.28271399812115" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,13.3 14.55,16" data-type="line" data-label="" points="263.2183599516844,318.89310186552143 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="14.55,14 14.55,16" data-type="line" data-label="" points="522.5124144410149,266.28271399812115 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 8.9,14.5" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 97.87142665414046,228.70386552140667" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 11.1,12.7" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 263.2183599516844,363.98772003757904" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 13.14,10" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 416.54006173667983,566.9135018118375" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 13.45,16" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 11.1,12.7" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 263.2183599516844,363.98772003757904" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 13.14,10" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 416.54006173667983,566.9135018118375" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 13.45,16" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,12.7 13.14,10" data-type="line" data-label="" points="263.2183599516844,363.98772003757904 416.54006173667983,566.9135018118375" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,12.7 13.45,16" data-type="line" data-label="" points="263.2183599516844,363.98772003757904 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="13.14,10 13.45,16" data-type="line" data-label="" points="416.54006173667983,566.9135018118375 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,15.5 14.86,10" data-type="line" data-label="" points="263.2183599516844,153.54616856797747 545.8113004965778,566.9135018118375" fill="none" stroke="hsl(50, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 8.600000000000001,14.5 8.600000000000001,14.9 8.9,14.9" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 75.32411756811189,228.70386552140667 75.32411756811189,198.64078674003486 97.87142665414046,198.64078674003486" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="14.55,16 14.75,16 14.75,14 14.55,14" data-type="line" data-label="" points="522.5124144410149,115.96732009126299 537.5439538317005,115.96732009126299 537.5439538317005,266.28271399812115 522.5124144410149,266.28271399812115" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="8.9,14.7 8.8,14.7 8.8,15.1 8.9,15.1" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 90.35565695879757,213.67232613072088 90.35565695879757,183.6092473493493 97.87142665414046,183.6092473493493" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="13.45,16 12.274999999999999,16 12.274999999999999,13.299999999999999 13.630999999999998,13.299999999999999 13.630999999999998,12.9 12.274999999999999,12.9 12.274999999999999,12.7 11.1,12.7" data-type="line" data-label="" points="439.8389477922427,115.96732009126299 351.52865387196346,115.96732009126299 351.52865387196346,318.89310186552154 453.4424909408133,318.89310186552154 453.4424909408133,348.95618064689313 351.52865387196346,348.95618064689313 351.52865387196346,363.98772003757904 263.2183599516844,363.98772003757904" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="14.75,16 15.010000000000002,16 15.010000000000002,15.999" data-type="line" data-label="" points="537.5439538317005,115.96732009126299 557.0849550395922,115.96732009126299 557.0849550395922,116.04247778821627" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="11.1,13.3 13.860999999999999,13.3 13.860999999999999,12.799000000000001" data-type="line" data-label="" points="263.2183599516844,318.89310186552143 470.72876124010213,318.89310186552143 470.72876124010213,356.5471080391894" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="8.600000000000001,14.5 8.34,14.5 8.34,14.501" data-type="line" data-label="" points="75.32411756811189,228.70386552140667 55.783116360220106,228.70386552140667 55.783116360220106,228.62870782445316" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="13.14,10 12.929,10 12.929,10.401" data-type="line" data-label="" points="416.54006173667983,566.9135018118375 400.6817876795062,566.9135018118375 400.6817876795062,536.7752653335124" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="10" data-y="14" x="97.87142665414046" y="138.51462917729174" width="165.34693329754396" height="255.53616964165883" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="14" data-y="14" x="439.83894779224266" y="219.68494188699515" width="82.6734666487722" height="93.19554422225201" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="14" data-y="10" x="416.5400617366798" y="537.6429346396459" width="129.27123875989798" height="58.54113434438318" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="14" data-y="16" x="439.83894779224266" y="69.36954798013699" width="82.6734666487722" height="93.19554422225201" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="ATMEGA328P_AU" data-x="10.080000000000002" data-y="12.17" x="127.93450543551216" y="397.05710669708776" width="117.24600724734955" height="13.528385451617169" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="U_MCU" data-x="9.600000000000001" data-y="15.83" x="127.93450543551222" y="121.97993584753738" width="45.094618172057494" height="13.528385451617169" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="netId: GND
1
+ <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="13.45,16 8.9,14.5" data-type="line" data-label="" points="439.8389477922427,115.96732009126299 97.87142665414046,228.70386552140667" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="14.55,16 8.9,15.1" data-type="line" data-label="" points="522.5124144410149,115.96732009126299 97.87142665414046,183.6092473493493" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="13.45,14 11.1,13.1" data-type="line" data-label="" points="439.8389477922427,266.28271399812115 263.2183599516844,333.92464125620734" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="8.9,15.1 8.9,14.7" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 97.87142665414046,213.67232613072088" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,15.1 11.1,13.3" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 263.2183599516844,318.89310186552143" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,15.1 14.55,14" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 522.5124144410149,266.28271399812115" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,15.1 14.55,16" data-type="line" data-label="" points="97.87142665414046,183.6092473493493 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 11.1,13.3" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 263.2183599516844,318.89310186552143" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 14.55,14" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 522.5124144410149,266.28271399812115" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 14.55,16" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,13.3 14.55,14" data-type="line" data-label="" points="263.2183599516844,318.89310186552143 522.5124144410149,266.28271399812115" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,13.3 14.55,16" data-type="line" data-label="" points="263.2183599516844,318.89310186552143 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="14.55,14 14.55,16" data-type="line" data-label="" points="522.5124144410149,266.28271399812115 522.5124144410149,115.96732009126299" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 8.9,14.5" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 97.87142665414046,228.70386552140667" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 11.1,12.7" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 263.2183599516844,363.98772003757904" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 13.14,10" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 416.54006173667983,566.9135018118375" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 13.45,16" data-type="line" data-label="" points="97.87142665414046,198.64078674003486 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 11.1,12.7" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 263.2183599516844,363.98772003757904" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 13.14,10" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 416.54006173667983,566.9135018118375" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 13.45,16" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,12.7 13.14,10" data-type="line" data-label="" points="263.2183599516844,363.98772003757904 416.54006173667983,566.9135018118375" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,12.7 13.45,16" data-type="line" data-label="" points="263.2183599516844,363.98772003757904 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="13.14,10 13.45,16" data-type="line" data-label="" points="416.54006173667983,566.9135018118375 439.8389477922427,115.96732009126299" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,15.5 14.86,10" data-type="line" data-label="" points="263.2183599516844,153.54616856797747 545.8113004965778,566.9135018118375" fill="none" stroke="hsl(50, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 8.600000000000001,14.5 8.600000000000001,14.9 8.9,14.9" data-type="line" data-label="" points="97.87142665414046,228.70386552140667 75.32411756811189,228.70386552140667 75.32411756811189,198.64078674003486 97.87142665414046,198.64078674003486" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="14.55,16 14.75,16 14.75,14 14.55,14" data-type="line" data-label="" points="522.5124144410149,115.96732009126299 537.5439538317005,115.96732009126299 537.5439538317005,266.28271399812115 522.5124144410149,266.28271399812115" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="8.9,14.7 8.8,14.7 8.8,15.1 8.9,15.1" data-type="line" data-label="" points="97.87142665414046,213.67232613072088 90.35565695879757,213.67232613072088 90.35565695879757,183.6092473493493 97.87142665414046,183.6092473493493" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="13.45,16 12.274999999999999,16 12.274999999999999,13.299999999999999 13.630999999999998,13.299999999999999 13.630999999999998,12.9 12.274999999999999,12.9 12.274999999999999,12.7 11.1,12.7" data-type="line" data-label="" points="439.8389477922427,115.96732009126299 351.52865387196346,115.96732009126299 351.52865387196346,318.89310186552154 453.4424909408133,318.89310186552154 453.4424909408133,348.95618064689313 351.52865387196346,348.95618064689313 351.52865387196346,363.98772003757904 263.2183599516844,363.98772003757904" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="14.75,16 15.010000000000002,16 15.010000000000002,15.999" data-type="line" data-label="" points="537.5439538317005,115.96732009126299 557.0849550395922,115.96732009126299 557.0849550395922,116.04247778821627" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="11.1,13.3 11.2,13.3 11.2,13.280000000000001 13.860999999999999,13.280000000000001 13.860999999999999,12.799000000000001" data-type="line" data-label="" points="263.2183599516844,318.89310186552143 270.7341296470273,318.89310186552143 270.7341296470273,320.39625580459006 470.72876124010213,320.39625580459006 470.72876124010213,356.5471080391894" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="8.600000000000001,14.5 8.34,14.5 8.34,14.501" data-type="line" data-label="" points="75.32411756811189,228.70386552140667 55.783116360220106,228.70386552140667 55.783116360220106,228.62870782445316" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="13.14,10 12.929,10 12.929,10.401" data-type="line" data-label="" points="416.54006173667983,566.9135018118375 400.6817876795062,566.9135018118375 400.6817876795062,536.7752653335124" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="10" data-y="14" x="97.87142665414046" y="138.51462917729174" width="165.34693329754396" height="255.53616964165883" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="14" data-y="14" x="439.83894779224266" y="219.68494188699515" width="82.6734666487722" height="93.19554422225201" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="14" data-y="10" x="416.5400617366798" y="537.6429346396459" width="129.27123875989798" height="58.54113434438318" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="14" data-y="16" x="439.83894779224266" y="69.36954798013699" width="82.6734666487722" height="93.19554422225201" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="ATMEGA328P_AU" data-x="10.080000000000002" data-y="12.17" x="127.93450543551216" y="397.05710669708776" width="117.24600724734955" height="13.528385451617169" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="U_MCU" data-x="9.600000000000001" data-y="15.83" x="127.93450543551222" y="121.97993584753738" width="45.094618172057494" height="13.528385451617169" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="netId: GND
2
2
  globalConnNetId: connectivity_net1" data-x="15.010000000000002" data-y="15.759" x="541.301838679372" y="116.04247778821627" width="31.566232720440212" height="36.075694537646086" fill="#00000066" stroke="#000000" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="netId: GND
3
3
  globalConnNetId: connectivity_net1" data-x="13.860999999999999" data-y="12.559000000000001" x="454.945644879882" y="356.54710803918937" width="31.566232720440212" height="36.07569453764597" fill="#00000066" stroke="#000000" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="netId: VCC_3V3
4
4
  globalConnNetId: connectivity_net0" data-x="12.862499999999999" data-y="16.48" x="379.9006844718829" y="43.81593101597093" width="31.566232720440325" height="72.15138907529195" fill="#ef444466" stroke="#ef4444" stroke-width="0.013305357142857141"/></g><g><rect data-type="rect" data-label="netId: VCC_3V3
@@ -0,0 +1,70 @@
1
+ <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-11.342500000000001,-18.990000000000002 -9.797500000000001,-18.815" data-type="line" data-label="" points="428.00799467022,320.5969353764158 543.2911392405065,307.53897401732183" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-11.342500000000001,-18.990000000000002 -9.797500000000001,-20.625000000000004" data-type="line" data-label="" points="428.00799467022,320.5969353764158 543.2911392405065,442.5956029313793" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-9.797500000000001,-18.815 -9.797500000000001,-20.625000000000004" data-type="line" data-label="" points="543.2911392405065,307.53897401732183 543.2911392405065,442.5956029313793" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-11.342500000000001,-18.04 -9.797500000000001,-18.215" data-type="line" data-label="" points="428.00799467022,249.7108594270485 543.2911392405065,262.76882078614244" fill="none" stroke="hsl(273, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-11.342500000000001,-18.240000000000002 -9.797500000000001,-20.025000000000002" data-type="line" data-label="" points="428.00799467022,264.6342438374418 543.2911392405065,397.8254497001999" fill="none" stroke="hsl(274, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-9.797500000000001,-18.815 -9.797500000000001,-18.990000000000002 -11.342500000000001,-18.990000000000002" data-type="line" data-label="" points="543.2911392405065,307.53897401732183 543.2911392405065,320.5969353764158 428.00799467022,320.5969353764158" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.797500000000001,-20.625000000000004 -9.797500000000001,-20.825000000000003 -10.322500000000002,-20.825000000000003 -10.322500000000002,-19.015 -9.797500000000001,-19.015 -9.797500000000001,-18.815" data-type="line" data-label="" points="543.2911392405065,442.5956029313793 543.2911392405065,457.51898734177234 504.1172551632246,457.51898734177234 504.1172551632246,322.4623584277149 543.2911392405065,322.4623584277149 543.2911392405065,307.53897401732183" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-11.342500000000001,-18.04 -9.797500000000001,-18.04 -9.797500000000001,-18.215" data-type="line" data-label="" points="428.00799467022,249.7108594270485 543.2911392405065,249.7108594270485 543.2911392405065,262.76882078614244" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-11.342500000000001,-17.29 -11.041500000000001,-17.29 -11.041500000000001,-17.139" data-type="line" data-label="" points="428.00799467022,193.74816788807448 450.46768820786156,193.74816788807448 450.46768820786156,182.48101265822766" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.797500000000001,-20.025000000000002 -9.797500000000001,-19.925 -9.697500000000002,-19.925 -9.697500000000002,-18.874 -10.1485,-18.874" data-type="line" data-label="" points="543.2911392405065,397.8254497001999 543.2911392405065,390.36375749500326 550.752831445703,390.36375749500326 550.752831445703,311.9413724183876 517.1005996002667,311.9413724183876" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_16" data-x="-13.9425" data-y="-18.14" x="40.000000000000284" y="182.55562958027986" width="388.0079946702198" height="149.23384410393055" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="schematic_component_17" data-x="-9.580000000000002" data-y="-18.515" x="519.0406395736176" y="262.76882078614244" width="80.95936042638255" height="44.77015323117939" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="schematic_component_18" data-x="-9.580000000000002" data-y="-20.325000000000003" x="519.0406395736176" y="397.8254497001999" width="80.95936042638255" height="44.77015323117939" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="U3" data-x="-16.0225" data-y="-17.025000000000002" x="65.36975349766828" y="164.6475682878082" width="26.862091938707408" height="18.654230512991262" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="netId: VBUS
2
+ globalConnNetId: connectivity_net3" data-x="-11.041500000000001" data-y="-16.929" x="428.08261159227186" y="151.14190539640208" width="44.77015323117939" height="31.339107261825575" fill="#ef444466" stroke="#ef4444" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="netId: D_PLUS
3
+ globalConnNetId: connectivity_net2" data-x="-10.921500000000002" data-y="-17.490000000000002" x="428.08261159227186" y="201.20986009327112" width="62.67821452365092" height="14.923384410393282" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="netId: D_MINUS
4
+ globalConnNetId: connectivity_net1" data-x="-10.861500000000001" data-y="-17.69" x="428.08261159227186" y="216.13324450366417" width="71.6322451698868" height="14.923384410393282" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="netId: CC1
5
+ globalConnNetId: connectivity_net4" data-x="-9.557500000000001" data-y="-18.04" x="543.2911392405065" y="242.24916722185185" width="35.8161225849434" height="14.923384410393282" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="netId: CC2
6
+ globalConnNetId: connectivity_net5" data-x="-11.101500000000001" data-y="-18.240000000000002" x="428.0826115922719" y="257.17255163224513" width="35.8161225849434" height="14.923384410393282" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="netId: CC2
7
+ globalConnNetId: connectivity_net5" data-x="-10.3885" data-y="-18.874" x="481.28447701532326" y="304.47968021319093" width="35.8161225849434" height="14.923384410393282" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013401785714285713"/></g><g><rect data-type="rect" data-label="netId: GND
8
+ globalConnNetId: connectivity_net0" data-x="-9.797500000000001" data-y="-21.035000000000004" x="525.3830779480347" y="457.51898734177234" width="35.8161225849434" height="31.339107261825575" fill="#00000066" stroke="#000000" stroke-width="0.013401785714285713"/></g><g><circle data-type="point" data-label="schematic_port_83
9
+ x+" data-x="-11.342500000000001" data-y="-17.29" cx="428.00799467022" cy="193.74816788807448" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_84
10
+ x+" data-x="-11.342500000000001" data-y="-17.490000000000002" cx="428.00799467022" cy="208.67155229846776" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_85
11
+ x+" data-x="-11.342500000000001" data-y="-17.69" cx="428.00799467022" cy="223.5949367088608" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_86
12
+ x+" data-x="-11.342500000000001" data-y="-18.04" cx="428.00799467022" cy="249.7108594270485" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_87
13
+ x+" data-x="-11.342500000000001" data-y="-18.240000000000002" cx="428.00799467022" cy="264.6342438374418" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_88
14
+ x+" data-x="-11.342500000000001" data-y="-18.59" cx="428.00799467022" cy="290.75016655562945" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_89
15
+ x+" data-x="-11.342500000000001" data-y="-18.79" cx="428.00799467022" cy="305.6735509660225" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_90
16
+ x+" data-x="-11.342500000000001" data-y="-18.990000000000002" cx="428.00799467022" cy="320.5969353764158" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_91
17
+ y+" data-x="-9.797500000000001" data-y="-18.215" cx="543.2911392405065" cy="262.76882078614244" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_92
18
+ y-" data-x="-9.797500000000001" data-y="-18.815" cx="543.2911392405065" cy="307.53897401732183" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_93
19
+ y+" data-x="-9.797500000000001" data-y="-20.025000000000002" cx="543.2911392405065" cy="397.8254497001999" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_94
20
+ y-" data-x="-9.797500000000001" data-y="-20.625000000000004" cx="543.2911392405065" cy="442.5956029313793" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
21
+ orientation: y+" data-x="-11.041500000000001" data-y="-17.139" cx="450.46768820786156" cy="182.48101265822766" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
22
+ orientation: x+" data-x="-11.342500000000001" data-y="-17.490000000000002" cx="428.00799467022" cy="208.67155229846776" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
23
+ orientation: x+" data-x="-11.342500000000001" data-y="-17.69" cx="428.00799467022" cy="223.5949367088608" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
24
+ orientation: x+" data-x="-9.797500000000001" data-y="-18.04" cx="543.2911392405065" cy="249.7108594270485" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
25
+ orientation: x+" data-x="-11.342500000000001" data-y="-18.240000000000002" cx="428.00799467022" cy="264.6342438374418" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
26
+ orientation: x-" data-x="-10.1485" data-y="-18.874" cx="517.1005996002667" cy="311.9413724183876" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
27
+ orientation: y-" data-x="-9.797500000000001" data-y="-20.825000000000003" cx="543.2911392405065" cy="457.51898734177234" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="640" 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[
28
+ document.currentScript.parentElement.addEventListener('mousemove', (e) => {
29
+ const svg = e.currentTarget;
30
+ const rect = svg.getBoundingClientRect();
31
+ const x = e.clientX - rect.left;
32
+ const y = e.clientY - rect.top;
33
+ const crosshair = svg.getElementById('crosshair');
34
+ const h = svg.getElementById('crosshair-h');
35
+ const v = svg.getElementById('crosshair-v');
36
+ const coords = svg.getElementById('coordinates');
37
+
38
+ crosshair.style.display = 'block';
39
+ h.setAttribute('x1', '0');
40
+ h.setAttribute('x2', '640');
41
+ h.setAttribute('y1', y);
42
+ h.setAttribute('y2', y);
43
+ v.setAttribute('x1', x);
44
+ v.setAttribute('x2', x);
45
+ v.setAttribute('y1', '0');
46
+ v.setAttribute('y2', '640');
47
+
48
+ // Calculate real coordinates using inverse transformation
49
+ const matrix = {"a":74.61692205196536,"c":0,"e":1274.3504330446372,"b":0,"d":-74.61692205196536,"f":-1096.3784143904065};
50
+ // Manually invert and apply the affine transform
51
+ // Since we only use translate and scale, we can directly compute:
52
+ // x' = (x - tx) / sx
53
+ // y' = (y - ty) / sy
54
+ const sx = matrix.a;
55
+ const sy = matrix.d;
56
+ const tx = matrix.e;
57
+ const ty = matrix.f;
58
+ const realPoint = {
59
+ x: (x - tx) / sx,
60
+ y: (y - ty) / sy // Flip y back since we used negative scale
61
+ }
62
+
63
+ coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
64
+ coords.setAttribute('x', (x + 5).toString());
65
+ coords.setAttribute('y', (y - 5).toString());
66
+ });
67
+ document.currentScript.parentElement.addEventListener('mouseleave', () => {
68
+ document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
69
+ });
70
+ ]]></script></svg>
@@ -0,0 +1,164 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_16",
5
+ "center": {
6
+ "x": -13.9425,
7
+ "y": -18.14
8
+ },
9
+ "width": 5.199999999999999,
10
+ "height": 2,
11
+ "pins": [
12
+ {
13
+ "pinId": "schematic_port_83",
14
+ "x": -11.342500000000001,
15
+ "y": -17.29
16
+ },
17
+ {
18
+ "pinId": "schematic_port_84",
19
+ "x": -11.342500000000001,
20
+ "y": -17.490000000000002
21
+ },
22
+ {
23
+ "pinId": "schematic_port_85",
24
+ "x": -11.342500000000001,
25
+ "y": -17.69
26
+ },
27
+ {
28
+ "pinId": "schematic_port_86",
29
+ "x": -11.342500000000001,
30
+ "y": -18.04
31
+ },
32
+ {
33
+ "pinId": "schematic_port_87",
34
+ "x": -11.342500000000001,
35
+ "y": -18.240000000000002
36
+ },
37
+ {
38
+ "pinId": "schematic_port_88",
39
+ "x": -11.342500000000001,
40
+ "y": -18.59
41
+ },
42
+ {
43
+ "pinId": "schematic_port_89",
44
+ "x": -11.342500000000001,
45
+ "y": -18.79
46
+ },
47
+ {
48
+ "pinId": "schematic_port_90",
49
+ "x": -11.342500000000001,
50
+ "y": -18.990000000000002
51
+ }
52
+ ],
53
+ "sectionId": "usb"
54
+ },
55
+ {
56
+ "chipId": "schematic_component_17",
57
+ "center": {
58
+ "x": -9.580000000000002,
59
+ "y": -18.515
60
+ },
61
+ "width": 1.084999999999999,
62
+ "height": 0.6000000000000014,
63
+ "pins": [
64
+ {
65
+ "pinId": "schematic_port_91",
66
+ "x": -9.797500000000001,
67
+ "y": -18.215,
68
+ "_facingDirection": "y+"
69
+ },
70
+ {
71
+ "pinId": "schematic_port_92",
72
+ "x": -9.797500000000001,
73
+ "y": -18.815,
74
+ "_facingDirection": "y-"
75
+ }
76
+ ],
77
+ "sectionId": "usb"
78
+ },
79
+ {
80
+ "chipId": "schematic_component_18",
81
+ "center": {
82
+ "x": -9.580000000000002,
83
+ "y": -20.325000000000003
84
+ },
85
+ "width": 1.084999999999999,
86
+ "height": 0.6000000000000014,
87
+ "pins": [
88
+ {
89
+ "pinId": "schematic_port_93",
90
+ "x": -9.797500000000001,
91
+ "y": -20.025000000000002,
92
+ "_facingDirection": "y+"
93
+ },
94
+ {
95
+ "pinId": "schematic_port_94",
96
+ "x": -9.797500000000001,
97
+ "y": -20.625000000000004,
98
+ "_facingDirection": "y-"
99
+ }
100
+ ],
101
+ "sectionId": "usb"
102
+ }
103
+ ],
104
+ "directConnections": [],
105
+ "netConnections": [
106
+ {
107
+ "netId": "GND",
108
+ "netLabelWidth": 0.42,
109
+ "netLabelHeight": 0.48,
110
+ "pinIds": [
111
+ "schematic_port_90",
112
+ "schematic_port_92",
113
+ "schematic_port_94"
114
+ ]
115
+ },
116
+ {
117
+ "netId": "D_MINUS",
118
+ "netLabelWidth": 0.96,
119
+ "pinIds": ["schematic_port_85"]
120
+ },
121
+ {
122
+ "netId": "D_PLUS",
123
+ "netLabelWidth": 0.84,
124
+ "pinIds": ["schematic_port_84"]
125
+ },
126
+ {
127
+ "netId": "VBUS",
128
+ "netLabelWidth": 0.42,
129
+ "netLabelHeight": 0.6,
130
+ "pinIds": ["schematic_port_83"]
131
+ },
132
+ {
133
+ "netId": "CC1",
134
+ "netLabelWidth": 0.48,
135
+ "pinIds": ["schematic_port_86", "schematic_port_91"]
136
+ },
137
+ {
138
+ "netId": "CC2",
139
+ "netLabelWidth": 0.48,
140
+ "pinIds": ["schematic_port_87", "schematic_port_93"]
141
+ }
142
+ ],
143
+ "textBoxes": [
144
+ {
145
+ "chipId": "schematic_component_16",
146
+ "center": {
147
+ "x": -16.0225,
148
+ "y": -17.025000000000002
149
+ },
150
+ "width": 0.35999999999999943,
151
+ "height": 0.25,
152
+ "text": "U3"
153
+ }
154
+ ],
155
+ "availableNetLabelOrientations": {
156
+ "D_MINUS": ["x-", "x+"],
157
+ "D_PLUS": ["x-", "x+"],
158
+ "GND": ["y-"],
159
+ "VBUS": ["y+"],
160
+ "CC1": ["x-", "x+"],
161
+ "CC2": ["x-", "x+"]
162
+ },
163
+ "maxMspPairDistance": 2.4
164
+ }
@@ -0,0 +1,95 @@
1
+ import { expect, test } from "bun:test"
2
+ import { SchematicTracePipelineSolver } from "lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver"
3
+ import type { SolvedTracePath } from "lib/solvers/SchematicTraceLinesSolver/SchematicTraceLinesSolver"
4
+ import inputProblem from "./assets/repro-rp2040-usb-cc2-ground-overlap.input.json"
5
+
6
+ const EPS = 1e-6
7
+
8
+ const pathsHavePositiveLengthCollinearOverlap = (
9
+ first: SolvedTracePath,
10
+ second: SolvedTracePath,
11
+ ) => {
12
+ for (
13
+ let firstIndex = 0;
14
+ firstIndex < first.tracePath.length - 1;
15
+ firstIndex++
16
+ ) {
17
+ const firstStart = first.tracePath[firstIndex]!
18
+ const firstEnd = first.tracePath[firstIndex + 1]!
19
+ const firstIsVertical = Math.abs(firstStart.x - firstEnd.x) < EPS
20
+ const firstIsHorizontal = Math.abs(firstStart.y - firstEnd.y) < EPS
21
+
22
+ for (
23
+ let secondIndex = 0;
24
+ secondIndex < second.tracePath.length - 1;
25
+ secondIndex++
26
+ ) {
27
+ const secondStart = second.tracePath[secondIndex]!
28
+ const secondEnd = second.tracePath[secondIndex + 1]!
29
+ const secondIsVertical = Math.abs(secondStart.x - secondEnd.x) < EPS
30
+ const secondIsHorizontal = Math.abs(secondStart.y - secondEnd.y) < EPS
31
+
32
+ if (
33
+ firstIsVertical &&
34
+ secondIsVertical &&
35
+ Math.abs(firstStart.x - secondStart.x) < EPS
36
+ ) {
37
+ const overlapLength =
38
+ Math.min(
39
+ Math.max(firstStart.y, firstEnd.y),
40
+ Math.max(secondStart.y, secondEnd.y),
41
+ ) -
42
+ Math.max(
43
+ Math.min(firstStart.y, firstEnd.y),
44
+ Math.min(secondStart.y, secondEnd.y),
45
+ )
46
+ if (overlapLength > EPS) return true
47
+ }
48
+
49
+ if (
50
+ firstIsHorizontal &&
51
+ secondIsHorizontal &&
52
+ Math.abs(firstStart.y - secondStart.y) < EPS
53
+ ) {
54
+ const overlapLength =
55
+ Math.min(
56
+ Math.max(firstStart.x, firstEnd.x),
57
+ Math.max(secondStart.x, secondEnd.x),
58
+ ) -
59
+ Math.max(
60
+ Math.min(firstStart.x, firstEnd.x),
61
+ Math.min(secondStart.x, secondEnd.x),
62
+ )
63
+ if (overlapLength > EPS) return true
64
+ }
65
+ }
66
+ }
67
+
68
+ return false
69
+ }
70
+
71
+ test("avoids RP2040 USB-C CC2 label connector overlapping GND", () => {
72
+ const solver = new SchematicTracePipelineSolver(inputProblem as any)
73
+
74
+ solver.solve()
75
+ expect(solver).toMatchSolverSnapshot(import.meta.path)
76
+
77
+ const traces = solver.netLabelTraceCollisionSolver!.getOutput().traces
78
+ const cc2LabelConnector = traces.find(
79
+ (trace) =>
80
+ trace.userNetId === "CC2" &&
81
+ trace.mspPairId.startsWith("available-net-orientation-"),
82
+ )
83
+
84
+ expect(cc2LabelConnector).toBeDefined()
85
+
86
+ const overlappingDifferentNetTraceIds = traces
87
+ .filter(
88
+ (trace) =>
89
+ trace.globalConnNetId !== cc2LabelConnector!.globalConnNetId &&
90
+ pathsHavePositiveLengthCollinearOverlap(trace, cc2LabelConnector!),
91
+ )
92
+ .map((trace) => trace.mspPairId)
93
+
94
+ expect(overlappingDifferentNetTraceIds).toEqual([])
95
+ })