@tscircuit/schematic-trace-solver 0.0.193 → 0.0.195
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.js +22 -7
- package/lib/solvers/UnroutedTraceRecoverySolver/UnroutedTraceRecoverySolver.ts +26 -5
- package/package.json +1 -1
- package/site/SchematicTracePipelineSolver/repro-core-vertical-passive-ground-label-overlap.page.tsx +4 -0
- package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +35 -35
- package/tests/examples/__snapshots__/example46.snap.svg +21 -12
- package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +2 -2
- package/tests/repros/__snapshots__/repro-core-vertical-passive-ground-label-overlap.snap.svg +135 -0
- package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +17 -17
- package/tests/repros/__snapshots__/repro-manual-placement-detour.snap.svg +249 -0
- package/tests/repros/__snapshots__/repro-pmp11282-isolated-dcdc.snap.svg +91 -82
- package/tests/repros/__snapshots__/section-autolayout-mcu.snap.svg +139 -0
- package/tests/repros/assets/repro-core-vertical-passive-ground-label-overlap.input.json +353 -0
- package/tests/repros/repro-core-vertical-passive-ground-label-overlap.test.ts +39 -0
- package/tests/repros/repro-manual-placement-detour.input.json +853 -0
- package/tests/repros/repro-manual-placement-detour.test.ts +39 -0
- package/tests/repros/repro-pmp11282-isolated-dcdc.test.ts +4 -4
- package/tests/repros/section-autolayout-mcu.test.ts +374 -0
package/dist/index.js
CHANGED
|
@@ -13070,7 +13070,8 @@ var getOuterBounds = (obstacles) => {
|
|
|
13070
13070
|
};
|
|
13071
13071
|
var getPinConnectionCandidates = ({
|
|
13072
13072
|
connectionPair,
|
|
13073
|
-
obstacles
|
|
13073
|
+
obstacles,
|
|
13074
|
+
channelObstacles = obstacles
|
|
13074
13075
|
}) => {
|
|
13075
13076
|
const [firstPin, secondPin] = connectionPair.pins;
|
|
13076
13077
|
const firstEscapePoint = getEscapePoint({
|
|
@@ -13085,7 +13086,7 @@ var getPinConnectionCandidates = ({
|
|
|
13085
13086
|
const horizontalChannels = [
|
|
13086
13087
|
outerBounds.minY - ROUTE_CLEARANCE,
|
|
13087
13088
|
outerBounds.maxY + ROUTE_CLEARANCE,
|
|
13088
|
-
...
|
|
13089
|
+
...channelObstacles.flatMap((obstacle) => [
|
|
13089
13090
|
obstacle.minY - ROUTE_CLEARANCE,
|
|
13090
13091
|
obstacle.maxY + ROUTE_CLEARANCE
|
|
13091
13092
|
])
|
|
@@ -13093,7 +13094,7 @@ var getPinConnectionCandidates = ({
|
|
|
13093
13094
|
const verticalChannels = [
|
|
13094
13095
|
outerBounds.minX - ROUTE_CLEARANCE,
|
|
13095
13096
|
outerBounds.maxX + ROUTE_CLEARANCE,
|
|
13096
|
-
...
|
|
13097
|
+
...channelObstacles.flatMap((obstacle) => [
|
|
13097
13098
|
obstacle.minX - ROUTE_CLEARANCE,
|
|
13098
13099
|
obstacle.maxX + ROUTE_CLEARANCE
|
|
13099
13100
|
])
|
|
@@ -13426,14 +13427,21 @@ var UnroutedTraceRecoverySolver = class extends BaseSolver {
|
|
|
13426
13427
|
});
|
|
13427
13428
|
const pinConnectionCandidates = getPinConnectionCandidates({
|
|
13428
13429
|
connectionPair,
|
|
13429
|
-
obstacles
|
|
13430
|
+
obstacles,
|
|
13431
|
+
channelObstacles: []
|
|
13430
13432
|
});
|
|
13431
|
-
const candidates = [...junctionCandidates, ...pinConnectionCandidates]
|
|
13433
|
+
const candidates = [...junctionCandidates, ...pinConnectionCandidates].sort(
|
|
13434
|
+
(firstPath, secondPath) => getPathLength5(firstPath) - getPathLength5(secondPath)
|
|
13435
|
+
);
|
|
13432
13436
|
const rejectComponentBoundaryTravel = hasParallelFailedConnection({
|
|
13433
13437
|
connectionPair,
|
|
13434
13438
|
failedConnectionPairs: this.failedConnectionPairs
|
|
13435
13439
|
});
|
|
13440
|
+
let recoveredPath;
|
|
13436
13441
|
for (const tracePath of candidates) {
|
|
13442
|
+
if (recoveredPath && getPathLength5(tracePath) >= getPathLength5(recoveredPath)) {
|
|
13443
|
+
continue;
|
|
13444
|
+
}
|
|
13437
13445
|
if (pathCollidesWithObstacles({
|
|
13438
13446
|
path: tracePath,
|
|
13439
13447
|
obstacles,
|
|
@@ -13449,13 +13457,20 @@ var UnroutedTraceRecoverySolver = class extends BaseSolver {
|
|
|
13449
13457
|
})) {
|
|
13450
13458
|
continue;
|
|
13451
13459
|
}
|
|
13460
|
+
if (!recoveredPath) {
|
|
13461
|
+
candidates.push(
|
|
13462
|
+
...getPinConnectionCandidates({ connectionPair, obstacles })
|
|
13463
|
+
);
|
|
13464
|
+
}
|
|
13465
|
+
recoveredPath = tracePath;
|
|
13466
|
+
}
|
|
13467
|
+
if (recoveredPath) {
|
|
13452
13468
|
this.solvedUnroutedTraces.push({
|
|
13453
13469
|
...connectionPair,
|
|
13454
|
-
tracePath,
|
|
13470
|
+
tracePath: recoveredPath,
|
|
13455
13471
|
mspConnectionPairIds: [connectionPair.mspPairId],
|
|
13456
13472
|
pinIds: connectionPair.pins.map((pin) => pin.pinId)
|
|
13457
13473
|
});
|
|
13458
|
-
return;
|
|
13459
13474
|
}
|
|
13460
13475
|
}
|
|
13461
13476
|
getOutput() {
|
|
@@ -90,9 +90,11 @@ const getOuterBounds = (obstacles: ObstacleRect[]) => {
|
|
|
90
90
|
const getPinConnectionCandidates = ({
|
|
91
91
|
connectionPair,
|
|
92
92
|
obstacles,
|
|
93
|
+
channelObstacles = obstacles,
|
|
93
94
|
}: {
|
|
94
95
|
connectionPair: MspConnectionPair
|
|
95
96
|
obstacles: ObstacleRect[]
|
|
97
|
+
channelObstacles?: ObstacleRect[]
|
|
96
98
|
}): Point[][] => {
|
|
97
99
|
const [firstPin, secondPin] = connectionPair.pins
|
|
98
100
|
const firstEscapePoint = getEscapePoint({
|
|
@@ -107,7 +109,7 @@ const getPinConnectionCandidates = ({
|
|
|
107
109
|
const horizontalChannels = [
|
|
108
110
|
outerBounds.minY - ROUTE_CLEARANCE,
|
|
109
111
|
outerBounds.maxY + ROUTE_CLEARANCE,
|
|
110
|
-
...
|
|
112
|
+
...channelObstacles.flatMap((obstacle) => [
|
|
111
113
|
obstacle.minY - ROUTE_CLEARANCE,
|
|
112
114
|
obstacle.maxY + ROUTE_CLEARANCE,
|
|
113
115
|
]),
|
|
@@ -115,7 +117,7 @@ const getPinConnectionCandidates = ({
|
|
|
115
117
|
const verticalChannels = [
|
|
116
118
|
outerBounds.minX - ROUTE_CLEARANCE,
|
|
117
119
|
outerBounds.maxX + ROUTE_CLEARANCE,
|
|
118
|
-
...
|
|
120
|
+
...channelObstacles.flatMap((obstacle) => [
|
|
119
121
|
obstacle.minX - ROUTE_CLEARANCE,
|
|
120
122
|
obstacle.maxX + ROUTE_CLEARANCE,
|
|
121
123
|
]),
|
|
@@ -545,14 +547,25 @@ export class UnroutedTraceRecoverySolver extends BaseSolver {
|
|
|
545
547
|
const pinConnectionCandidates = getPinConnectionCandidates({
|
|
546
548
|
connectionPair,
|
|
547
549
|
obstacles,
|
|
550
|
+
channelObstacles: [],
|
|
548
551
|
})
|
|
549
|
-
const candidates = [...junctionCandidates, ...pinConnectionCandidates]
|
|
552
|
+
const candidates = [...junctionCandidates, ...pinConnectionCandidates].sort(
|
|
553
|
+
(firstPath, secondPath) =>
|
|
554
|
+
getPathLength(firstPath) - getPathLength(secondPath),
|
|
555
|
+
)
|
|
550
556
|
const rejectComponentBoundaryTravel = hasParallelFailedConnection({
|
|
551
557
|
connectionPair,
|
|
552
558
|
failedConnectionPairs: this.failedConnectionPairs,
|
|
553
559
|
})
|
|
554
560
|
|
|
561
|
+
let recoveredPath: Point[] | undefined
|
|
555
562
|
for (const tracePath of candidates) {
|
|
563
|
+
if (
|
|
564
|
+
recoveredPath &&
|
|
565
|
+
getPathLength(tracePath) >= getPathLength(recoveredPath)
|
|
566
|
+
) {
|
|
567
|
+
continue
|
|
568
|
+
}
|
|
556
569
|
if (
|
|
557
570
|
pathCollidesWithObstacles({
|
|
558
571
|
path: tracePath,
|
|
@@ -572,13 +585,21 @@ export class UnroutedTraceRecoverySolver extends BaseSolver {
|
|
|
572
585
|
) {
|
|
573
586
|
continue
|
|
574
587
|
}
|
|
588
|
+
if (!recoveredPath) {
|
|
589
|
+
// Local channels shorten valid routes without recovering new connections.
|
|
590
|
+
candidates.push(
|
|
591
|
+
...getPinConnectionCandidates({ connectionPair, obstacles }),
|
|
592
|
+
)
|
|
593
|
+
}
|
|
594
|
+
recoveredPath = tracePath
|
|
595
|
+
}
|
|
596
|
+
if (recoveredPath) {
|
|
575
597
|
this.solvedUnroutedTraces.push({
|
|
576
598
|
...connectionPair,
|
|
577
|
-
tracePath,
|
|
599
|
+
tracePath: recoveredPath,
|
|
578
600
|
mspConnectionPairIds: [connectionPair.mspPairId],
|
|
579
601
|
pinIds: connectionPair.pins.map((pin) => pin.pinId),
|
|
580
602
|
})
|
|
581
|
-
return
|
|
582
603
|
}
|
|
583
604
|
}
|
|
584
605
|
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
<svg width="1200" height="2016" viewBox="0 0 1200 2016" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on top and Circuit JSON schematic on the bottom">
|
|
2
2
|
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
-
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.4458008,0.00006220000000001225 1.1458008,1.1899378" data-type="line" data-label="" points="82.08836873900444,
|
|
4
|
-
globalConnNetId: connectivity_net0" data-x="-0.6458008" data-y="-0.2249378" x="40.00000000000004" y="
|
|
5
|
-
globalConnNetId: connectivity_net2" data-x="0.7958008" data-y="0.22493780000000008" x="242.24886571846247" y="
|
|
6
|
-
globalConnNetId: connectivity_net1" data-x="2.1058008000000004" data-y="1.4149378000000001" x="426.03474254544847" y="
|
|
7
|
-
x-" data-x="-0.4458008" data-y="0.00006220000000001225" cx="82.08836873900444" cy="
|
|
8
|
-
x+" data-x="0.4458008" data-y="-0.00006220000000001225" cx="207.1752251026255" cy="
|
|
9
|
-
x-" data-x="1.1458008" data-y="1.1899378" cx="305.38141882696914" cy="
|
|
10
|
-
x+" data-x="1.9058008000000002" data-y="1.1899378" cx="412.0052862991136" cy="
|
|
11
|
-
x+" data-x="3.0458008" data-y="-0.08006219999999957" cx="571.9410875073304" cy="
|
|
12
|
-
x-" data-x="2.4458008" data-y="-0.08006219999999949" cx="487.7643500293216" cy="
|
|
13
|
-
x+" data-x="1.7458008" data-y="-0.00006219999999993796" cx="389.55815630497796" cy="
|
|
14
|
-
x-" data-x="1.1458008" data-y="-0.00006219999999986448" cx="305.38141882696914" cy="
|
|
15
|
-
orientation: y-" data-x="-0.6458008" data-y="0.00006220000000001225" cx="54.029456246334846" cy="
|
|
16
|
-
orientation: y+" data-x="0.7958008" data-y="-0.00006219999999993836" cx="256.27832196479727" cy="
|
|
17
|
-
orientation: y+" data-x="2.1058008000000004" data-y="1.1899378" cx="440.06419879178327" cy="
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.4458008,0.00006220000000001225 1.1458008,1.1899378" data-type="line" data-label="" points="82.08836873900444,397.144556711271 305.38141882696914,230.21148002345726" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="3.0458008,-0.08006219999999957 1.9058008000000002,1.1899378" data-type="line" data-label="" points="571.9410875073304,408.3855743519092 412.0052862991136,230.21148002345726" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="2.4458008,-0.08006219999999949 0.4458008,-0.00006220000000001225" data-type="line" data-label="" points="487.7643500293216,408.3855743519092 207.1752251026255,397.1620093548414" fill="none" stroke="hsl(0, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.7458008,-0.00006219999999993796 1.9058008000000002,1.1899378" data-type="line" data-label="" points="389.55815630497796,397.1620093548414 412.0052862991136,230.21148002345726" fill="none" stroke="hsl(32, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.1458008,-0.00006219999999986448 0.4458008,-0.00006220000000001225" data-type="line" data-label="" points="305.38141882696914,397.1620093548414 207.1752251026255,397.1620093548414" fill="none" stroke="hsl(32, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.4458008,0.00006220000000001225 -0.6458008,0.00006220000000001225 -0.6458008,1.1899378 1.1458008,1.1899378" data-type="line" data-label="" points="82.08836873900444,397.144556711271 54.029456246334846,397.144556711271 54.029456246334846,230.21148002345726 305.38141882696914,230.21148002345726" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.9058008000000002,1.1899378 2.1058008000000004,1.1899378 2.1058008000000004,-0.00006219999999993796 1.7458008,-0.00006219999999993796" data-type="line" data-label="" points="412.0052862991136,230.21148002345726 440.06419879178327,230.21148002345726 440.06419879178327,397.1620093548414 389.55815630497796,397.1620093548414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.1458008,-0.00006219999999986448 0.4458008,-0.00006220000000001225" data-type="line" data-label="" points="305.38141882696914,397.1620093548414 207.1752251026255,397.1620093548414" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.0458008,-0.08006219999999957 3.2458008,-0.08006219999999957 3.2458008,0.5949378000000001 2.1058008000000004,0.5949378000000001" data-type="line" data-label="" points="571.9410875073304,408.3855743519092 600,408.3855743519092 600,313.68674468914935 440.06419879178327,313.68674468914935" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.9458008,-0.00006219999999986448 0.9458008,-0.5400621999999999 2.2458008,-0.5400621999999999 2.2458008,-0.08006219999999949 2.4458008,-0.08006219999999949" data-type="line" data-label="" points="277.32250633429953,397.1620093548414 277.32250633429953,472.92107308504933 459.70543753665197,472.92107308504933 459.70543753665197,408.3855743519092 487.7643500293216,408.3855743519092" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="82.08836873900444" y="334.5294660669541" width="125.08685636362105" height="125.24763393220417" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.007127860000000001"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="1.5258008" data-y="1.1899378" x="305.38141882696914" y="195.13783940762022" width="106.62386747214447" height="70.14728123167404" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.007127860000000001"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="2.7458008" data-y="-0.0800621999999995" x="487.7643500293216" y="349.46185811730305" width="84.17673747800882" height="117.84743246921232" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.007127860000000001"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="1.4458008" data-y="-0.00006219999999990122" x="305.38141882696914" y="349.4618581173031" width="84.17673747800882" height="95.40030247507661" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.007127860000000001"/></g><g><rect data-type="rect" data-label="netId: VS1.1 to SW1.1
|
|
4
|
+
globalConnNetId: connectivity_net0" data-x="-0.6458008" data-y="-0.2249378" x="40.00000000000004" y="397.144556711271" width="28.058912492669606" height="63.13255310850661" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007127860000000001"/></g><g><rect data-type="rect" data-label="netId: .R1 > .pin2 to VS1.2
|
|
5
|
+
globalConnNetId: connectivity_net2" data-x="0.7958008" data-y="0.22493780000000008" x="242.24886571846247" y="334.0294562463348" width="28.058912492669577" height="63.13255310850661" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007127860000000001"/></g><g><rect data-type="rect" data-label="netId: .R1 > .pin1 to SW1.2
|
|
6
|
+
globalConnNetId: connectivity_net1" data-x="2.1058008000000004" data-y="1.4149378000000001" x="426.03474254544847" y="167.0789269149506" width="28.058912492669606" height="63.13255310850664" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007127860000000001"/></g><g><circle data-type="point" data-label="VS1.1
|
|
7
|
+
x-" data-x="-0.4458008" data-y="0.00006220000000001225" cx="82.08836873900444" cy="397.144556711271" r="3" fill="hsl(103, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="VS1.2
|
|
8
|
+
x+" data-x="0.4458008" data-y="-0.00006220000000001225" cx="207.1752251026255" cy="397.1620093548414" r="3" fill="hsl(104, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="SW1.1
|
|
9
|
+
x-" data-x="1.1458008" data-y="1.1899378" cx="305.38141882696914" cy="230.21148002345726" r="3" fill="hsl(104, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="SW1.2
|
|
10
|
+
x+" data-x="1.9058008000000002" data-y="1.1899378" cx="412.0052862991136" cy="230.21148002345726" r="3" fill="hsl(105, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="C1.1
|
|
11
|
+
x+" data-x="3.0458008" data-y="-0.08006219999999957" cx="571.9410875073304" cy="408.3855743519092" r="3" fill="hsl(121, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="C1.2
|
|
12
|
+
x-" data-x="2.4458008" data-y="-0.08006219999999949" cx="487.7643500293216" cy="408.3855743519092" r="3" fill="hsl(122, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R1.1
|
|
13
|
+
x+" data-x="1.7458008" data-y="-0.00006219999999993796" cx="389.55815630497796" cy="397.1620093548414" r="3" fill="hsl(226, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R1.2
|
|
14
|
+
x-" data-x="1.1458008" data-y="-0.00006219999999986448" cx="305.38141882696914" cy="397.1620093548414" r="3" fill="hsl(227, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
15
|
+
orientation: y-" data-x="-0.6458008" data-y="0.00006220000000001225" cx="54.029456246334846" cy="397.144556711271" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
16
|
+
orientation: y+" data-x="0.7958008" data-y="-0.00006219999999993836" cx="256.27832196479727" cy="397.1620093548414" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
17
|
+
orientation: y+" data-x="2.1058008000000004" data-y="1.1899378" cx="440.06419879178327" cy="230.21148002345726" 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[
|
|
18
18
|
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
19
19
|
const svg = e.currentTarget;
|
|
20
20
|
const rect = svg.getBoundingClientRect();
|
|
@@ -36,7 +36,7 @@ orientation: y+" data-x="2.1058008000000004" data-y="1.1899378" cx="440.06419879
|
|
|
36
36
|
v.setAttribute('y2', '640');
|
|
37
37
|
|
|
38
38
|
// Calculate real coordinates using inverse transformation
|
|
39
|
-
const matrix = {"a":140.29456246334803,"c":0,"e":144.63179692081496,"b":0,"d":-140.29456246334803,"f":
|
|
39
|
+
const matrix = {"a":140.29456246334803,"c":0,"e":144.63179692081496,"b":0,"d":-140.29456246334803,"f":397.1532830330562};
|
|
40
40
|
// Manually invert and apply the affine transform
|
|
41
41
|
// Since we only use translate and scale, we can directly compute:
|
|
42
42
|
// x' = (x - tx) / sx
|
|
@@ -71,27 +71,27 @@ orientation: y+" data-x="2.1058008000000004" data-y="1.1899378" cx="440.06419879
|
|
|
71
71
|
.port-label { fill: rgb(0, 100, 100); }
|
|
72
72
|
.component-name { fill: rgb(0, 100, 100); }
|
|
73
73
|
|
|
74
|
-
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 190.41568060436208 499.57365929113297 L 142.81176045328206 499.57365929113297 L 142.81176045328206 216.35994403054093 L 569.2480579980179 216.35994403054093" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 190.41568060436208 499.57365929113297 L 142.81176045328206 499.57365929113297 L 142.81176045328206 216.35994403054093 L 569.2480579980179 216.35994403054093" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 750.142954572122 216.35994403054093 L 797.7468747232019 216.35994403054093 L 797.7468747232019 499.60326892946694 L 712.0598184512579 499.60326892946694" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 750.142954572122 216.35994403054093 L 797.7468747232019 216.35994403054093 L 797.7468747232019 499.60326892946694 L 712.0598184512579 499.60326892946694" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 569.2480579980179 499.60326892946694 L 402.6343374692379 499.603268929467" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 569.2480579980179 499.60326892946694 L 402.6343374692379 499.603268929467" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 1021.485299433278 518.6448369898989 L 1069.089219584358 518.6448369898989 L 1069.089219584358 357.98160648000396 L 797.7468747232019 357.98160648000396" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 1021.485299433278 518.6448369898989 L 1069.089219584358 518.6448369898989 L 1069.089219584358 357.98160648000396 L 797.7468747232019 357.98160648000396" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 878.6735389800381 518.6448369898989 L 831.069618828958 518.6448369898989 L 831.069618828958 666.2169894582469 L 485.9411977336279 666.2169894582469 L 485.9411977336279 499.60326892946694" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 878.6735389800381 518.6448369898989 L 831.069618828958 518.6448369898989 L 831.069618828958 666.2169894582469 L 485.9411977336279 666.2169894582469 L 485.9411977336279 499.60326892946694" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component-overlay sch-component-overlay" x="190.41568060436208" y="479.924625740144" width="212.20956235068138" height="51.08748723257139" fill="transparent"/><path class="sch-component-symbol-path" d="M 190.41568060436208 499.573659291133 L 237.57336112673573 497.60875593603413" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 353.5026590775709 497.60875593603413 L 402.62524295504346 497.60875593603413" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 316.1694953306918 479.924625740144 L 296.52046177970277 517.2577894870232 L 274.90652487361484 479.924625740144" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 296.52046177970277 531.0121129727154 L 310.27478526539505 527.0823062625176" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 310.27478526539505 527.0823062625176 L 324.0291087510874 531.0121129727154" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 267.04691145321925 531.0121129727154 L 282.7661382940105 527.0823062625176" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 282.7661382940105 527.0823062625176 L 296.52046177970277 531.0121129727154" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="296.52046177970277" y="425.0143502586103" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">VS1</text><text class="sch-component-text" x="296.52046177970277" y="585.9223884542491" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text><circle class="sch-component-symbol-circle" cx="296.52046177970277" cy="497.60875593603413" r="69.025684219066px" stroke-width="4.760392015108001px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component-overlay sch-component-overlay" x="569.2480579980179" y="183.03719992478491" width="180.894896574104" height="35.70294011331001" fill="transparent"/><path class="sch-component-symbol-path" d="M 569.2480579980179 216.35994403054093 L 631.1331541944219 218.74014003809492" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 643.0341342321918 213.97974802298694 L 683.4974663606099 183.03719992478491" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 688.2578583757179 218.74014003809492 L 750.1429545721219 216.35994403054093" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="659.6955062850699" y="156.85504384169093" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">SW1</text><text class="sch-component-text" x="659.6955062850699" y="275.86484421939093" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text><circle class="sch-component-symbol-circle" cx="683.4974663606099" cy="216.35994403054093" r="4.760392015108001px" stroke-width="4.760392015108001px" fill="none" stroke="rgb(132, 0, 0)"/><circle class="sch-component-symbol-circle" cx="635.8935462095299" cy="216.35994403054093" r="4.760392015108001px" stroke-width="4.760392015108001px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component-overlay sch-component-overlay" x="878.6735389800381" y="480.5569404770198" width="142.8117604532399" height="76.17579302575814" fill="transparent"/><path class="sch-component-symbol-path" d="M 1021.485299433278 518.6448369898989 L 964.360595251982 518.6448369898989" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 935.7982431613341 518.6448369898989 L 878.6735389800381 518.6448369898989" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 964.360595251982 480.5569404770198 L 964.360595251982 556.7327335027779" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 935.7982431613341 480.5569404770198 L 935.7982431613341 556.7327335027779" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="950.079419206658" y="461.5201328086029" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">C1</text><text class="sch-component-text" x="950.079419206658" y="575.7695411711949" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component-overlay sch-component-overlay" x="569.2480579980179" y="480.56646126105005" width="142.8117604532399" height="38.073615336833825" fill="transparent"/><path class="sch-component-symbol-path" d="M 712.0598184512578 499.60326892946694 L 688.2530979837028 499.60326892946694" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 593.0547784655729 499.60326892946694 L 569.2480579980179 499.60326892946694" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 688.2530979837028 518.6400765978839 L 593.0547784655729 518.6400765978839 L 593.0547784655729 480.56646126105005 L 688.2530979837028 480.56646126105005 L 688.2530979837028 518.6400765978839" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="640.6539382246378" y="461.5201328086029" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">R1</text><text class="sch-component-text" x="640.6539382246378" y="537.6864050503309" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="167.98987737178675" cy="498.3277813337677" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="380.20853423666256" cy="498.35739097210165" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="569.2480579980179" cy="216.35994403054093" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="750.142954572122" cy="216.35994403054093" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="1021.485299433278" cy="518.6448369898989" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="878.6735389800381" cy="518.6448369898989" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="712.0598184512579" cy="499.60326892946694" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="569.2480579980179" cy="499.60326892946694" r="9.520784030216001" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
75
|
-
M 142.81176045328206,
|
|
76
|
-
L 166.61372052882206,
|
|
77
|
-
L 166.61372052882206,
|
|
78
|
-
L 119.00980037774207,
|
|
79
|
-
L 119.00980037774207,
|
|
74
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 190.41568060436208 518.615227351533 L 142.81176045328206 518.615227351533 L 142.81176045328206 235.40151209094097 L 569.2480579980179 235.40151209094097" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 190.41568060436208 518.615227351533 L 142.81176045328206 518.615227351533 L 142.81176045328206 235.40151209094097 L 569.2480579980179 235.40151209094097" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 750.142954572122 235.40151209094097 L 797.7468747232019 235.40151209094097 L 797.7468747232019 518.644836989867 L 712.0598184512579 518.644836989867" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 750.142954572122 235.40151209094097 L 797.7468747232019 235.40151209094097 L 797.7468747232019 518.644836989867 L 712.0598184512579 518.644836989867" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 569.2480579980179 518.6448369898669 L 402.6343374692379 518.644836989867" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 569.2480579980179 518.6448369898669 L 402.6343374692379 518.644836989867" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 1021.485299433278 537.6864050502988 L 1069.089219584358 537.6864050502988 L 1069.089219584358 377.02317454040394 L 797.7468747232019 377.02317454040394" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 1021.485299433278 537.6864050502988 L 1069.089219584358 537.6864050502988 L 1069.089219584358 377.02317454040394 L 797.7468747232019 377.02317454040394" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 521.644137846938 518.6448369898669 L 521.644137846938 647.175421397783 L 831.069618828958 647.175421397783 L 831.069618828958 537.6864050502988 L 878.6735389800381 537.6864050502988" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.083136120864005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 521.644137846938 518.6448369898669 L 521.644137846938 647.175421397783 L 831.069618828958 647.175421397783 L 831.069618828958 537.6864050502988 L 878.6735389800381 537.6864050502988" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component-overlay sch-component-overlay" x="190.41568060436208" y="498.96619380054403" width="212.20956235068138" height="51.08748723257145" fill="transparent"/><path class="sch-component-symbol-path" d="M 190.41568060436208 518.615227351533 L 237.57336112673573 516.6503239964342" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 353.5026590775709 516.6503239964342 L 402.62524295504346 516.6503239964342" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 316.1694953306918 498.96619380054403 L 296.52046177970277 536.2993575474231 L 274.90652487361484 498.96619380054403" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 296.52046177970277 550.0536810331155 L 310.27478526539505 546.1238743229177" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 310.27478526539505 546.1238743229177 L 324.0291087510874 550.0536810331155" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 267.04691145321925 550.0536810331155 L 282.7661382940105 546.1238743229177" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 282.7661382940105 546.1238743229177 L 296.52046177970277 550.0536810331155" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="296.52046177970277" y="444.05591831901035" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">VS1</text><text class="sch-component-text" x="296.52046177970277" y="604.9639565146491" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text><circle class="sch-component-symbol-circle" cx="296.52046177970277" cy="516.6503239964342" r="69.025684219066px" stroke-width="4.760392015108001px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component-overlay sch-component-overlay" x="569.2480579980179" y="202.07876798518495" width="180.894896574104" height="35.70294011331001" fill="transparent"/><path class="sch-component-symbol-path" d="M 569.2480579980179 235.40151209094097 L 631.1331541944219 237.78170809849496" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 643.0341342321918 233.02131608338698 L 683.4974663606099 202.07876798518495" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 688.2578583757179 237.78170809849496 L 750.1429545721219 235.40151209094097" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="659.6955062850699" y="175.89661190209097" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">SW1</text><text class="sch-component-text" x="659.6955062850699" y="294.90641227979097" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text><circle class="sch-component-symbol-circle" cx="683.4974663606099" cy="235.40151209094097" r="4.760392015108001px" stroke-width="4.760392015108001px" fill="none" stroke="rgb(132, 0, 0)"/><circle class="sch-component-symbol-circle" cx="635.8935462095299" cy="235.40151209094097" r="4.760392015108001px" stroke-width="4.760392015108001px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component-overlay sch-component-overlay" x="878.6735389800381" y="499.5985085374198" width="142.8117604532399" height="76.17579302575814" fill="transparent"/><path class="sch-component-symbol-path" d="M 1021.485299433278 537.6864050502988 L 964.360595251982 537.6864050502988" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 935.7982431613341 537.6864050502988 L 878.6735389800381 537.6864050502988" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 964.360595251982 499.5985085374198 L 964.360595251982 575.7743015631779" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 935.7982431613341 499.5985085374198 L 935.7982431613341 575.7743015631779" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="950.079419206658" y="480.5617008690029" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">C1</text><text class="sch-component-text" x="950.079419206658" y="594.8111092315949" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component-overlay sch-component-overlay" x="569.2480579980179" y="499.60802932145003" width="142.8117604532399" height="38.073615336833825" fill="transparent"/><path class="sch-component-symbol-path" d="M 712.0598184512578 518.6448369898669 L 688.2530979837028 518.6448369898669" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 593.0547784655729 518.6448369898669 L 569.2480579980179 518.6448369898669" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 688.2530979837028 537.6816446582839 L 593.0547784655729 537.6816446582839 L 593.0547784655729 499.60802932145003 L 688.2530979837028 499.60802932145003 L 688.2530979837028 537.6816446582839" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.760392015108001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="640.6539382246378" y="480.5617008690029" stroke="rgb(245, 241, 237)" stroke-width="4.760392015108001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="42.843528135972px">R1</text><text class="sch-component-text" x="640.6539382246378" y="556.7279731107309" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="42.843528135972px"></text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="167.98987737178675" cy="517.3693493941678" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="380.20853423666256" cy="517.3989590325017" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="569.2480579980179" cy="235.40151209094097" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="750.142954572122" cy="235.40151209094097" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="1021.485299433278" cy="537.6864050502988" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="878.6735389800381" cy="537.6864050502988" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="712.0598184512579" cy="518.644836989867" r="9.520784030216001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="569.2480579980179" cy="518.6448369898669" r="9.520784030216001" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
75
|
+
M 142.81176045328206,518.615227351533
|
|
76
|
+
L 166.61372052882206,531.4682857923247
|
|
77
|
+
L 166.61372052882206,613.0931408780431
|
|
78
|
+
L 119.00980037774207,613.0931408780431
|
|
79
|
+
L 119.00980037774207,531.4682857923247
|
|
80
80
|
Z
|
|
81
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.760392015108001px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="142.81176045328206" y="
|
|
82
|
-
M 485.9411977336279,
|
|
83
|
-
L 462.1392376580879,
|
|
84
|
-
L 462.13923765808795,
|
|
85
|
-
L 509.74315780916794,
|
|
86
|
-
L 509.74315780916794,
|
|
81
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.760392015108001px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="142.81176045328206" y="540.036991419519" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="42.843528135972px" transform="rotate(90 142.81176045328206 540.036991419519)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
82
|
+
M 485.9411977336279,518.644836989867
|
|
83
|
+
L 462.1392376580879,505.79177854907545
|
|
84
|
+
L 462.13923765808795,424.1669234633569
|
|
85
|
+
L 509.74315780916794,424.1669234633569
|
|
86
|
+
L 509.74315780916794,505.79177854907545
|
|
87
87
|
Z
|
|
88
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.760392015108001px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="485.9411977336279" y="
|
|
89
|
-
M 797.7468747232019,
|
|
90
|
-
L 773.9449146476619,
|
|
91
|
-
L 773.9449146476619,
|
|
92
|
-
L 821.548834798742,
|
|
93
|
-
L 821.548834798742,
|
|
88
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.760392015108001px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="485.9411977336279" y="497.22307292188106" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="42.843528135972px" transform="rotate(-90 485.9411977336279 497.22307292188106)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
89
|
+
M 797.7468747232019,235.40151209094097
|
|
90
|
+
L 773.9449146476619,222.54845365014936
|
|
91
|
+
L 773.9449146476619,140.92359856443085
|
|
92
|
+
L 821.548834798742,140.92359856443085
|
|
93
|
+
L 821.548834798742,222.54845365014938
|
|
94
94
|
Z
|
|
95
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.760392015108001px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="797.7468747232019" y="
|
|
95
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.760392015108001px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="797.7468747232019" y="213.97974802295496" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="42.843528135972px" transform="rotate(-90 797.7468747232019 213.97974802295496)">XX</text>
|
|
96
96
|
</g>
|
|
97
97
|
</svg>
|