@tscircuit/schematic-trace-solver 0.0.148 → 0.0.150

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.
Files changed (164) hide show
  1. package/.agents/skills/schematic-trace-visualization/SKILL.md +7 -2
  2. package/dist/index.d.ts +31 -2
  3. package/dist/index.js +127 -46
  4. package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +115 -6
  5. package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +17 -1
  6. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +2 -0
  7. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +2 -0
  8. package/lib/types/InputProblem.ts +27 -1
  9. package/package.json +8 -1
  10. package/site/examples/example51.page.tsx +4 -0
  11. package/tests/assets/example51.json +5102 -0
  12. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +751 -5
  13. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +660 -5
  14. package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +44 -5
  15. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +394 -5
  16. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +170 -5
  17. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +79 -5
  18. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +219 -5
  19. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +65 -5
  20. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +142 -5
  21. package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +100 -5
  22. package/tests/bug-reports/bug-report-20260708T053736Z/__snapshots__/bug-report-20260708T053736Z.snap.svg +23 -5
  23. package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +58 -5
  24. package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +86 -5
  25. package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +226 -5
  26. package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +191 -5
  27. package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +30 -5
  28. package/tests/bug-reports/bug-report-20260717T042845Z/__snapshots__/bug-report-20260717T042845Z.snap.svg +37 -5
  29. package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +580 -2
  30. package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +44 -5
  31. package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +107 -5
  32. package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +114 -5
  33. package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +121 -5
  34. package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +51 -5
  35. package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +212 -5
  36. package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +569 -5
  37. package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +37 -5
  38. package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +289 -5
  39. package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +289 -5
  40. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +149 -5
  41. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +93 -5
  42. package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +79 -5
  43. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +244 -2
  44. package/tests/examples/__snapshots__/example01.snap.svg +44 -5
  45. package/tests/examples/__snapshots__/example02.snap.svg +51 -5
  46. package/tests/examples/__snapshots__/example03.snap.svg +86 -5
  47. package/tests/examples/__snapshots__/example04.snap.svg +30 -5
  48. package/tests/examples/__snapshots__/example05.snap.svg +30 -5
  49. package/tests/examples/__snapshots__/example06.snap.svg +30 -5
  50. package/tests/examples/__snapshots__/example07.snap.svg +58 -5
  51. package/tests/examples/__snapshots__/example08.snap.svg +37 -5
  52. package/tests/examples/__snapshots__/example09.snap.svg +149 -5
  53. package/tests/examples/__snapshots__/example10.snap.svg +65 -5
  54. package/tests/examples/__snapshots__/example11.snap.svg +51 -5
  55. package/tests/examples/__snapshots__/example12.snap.svg +51 -5
  56. package/tests/examples/__snapshots__/example13.snap.svg +72 -5
  57. package/tests/examples/__snapshots__/example14.snap.svg +79 -5
  58. package/tests/examples/__snapshots__/example15.snap.svg +86 -5
  59. package/tests/examples/__snapshots__/example16.snap.svg +51 -5
  60. package/tests/examples/__snapshots__/example17.snap.svg +51 -5
  61. package/tests/examples/__snapshots__/example18.snap.svg +58 -5
  62. package/tests/examples/__snapshots__/example19.snap.svg +44 -5
  63. package/tests/examples/__snapshots__/example20.snap.svg +44 -5
  64. package/tests/examples/__snapshots__/example21.snap.svg +72 -5
  65. package/tests/examples/__snapshots__/example22.snap.svg +51 -5
  66. package/tests/examples/__snapshots__/example23.snap.svg +51 -5
  67. package/tests/examples/__snapshots__/example24.snap.svg +51 -5
  68. package/tests/examples/__snapshots__/example25.snap.svg +86 -5
  69. package/tests/examples/__snapshots__/example26.snap.svg +51 -5
  70. package/tests/examples/__snapshots__/example27.snap.svg +72 -5
  71. package/tests/examples/__snapshots__/example28.snap.svg +44 -5
  72. package/tests/examples/__snapshots__/example29.snap.svg +324 -5
  73. package/tests/examples/__snapshots__/example30.snap.svg +107 -5
  74. package/tests/examples/__snapshots__/example31.snap.svg +37 -5
  75. package/tests/examples/__snapshots__/example32.snap.svg +149 -5
  76. package/tests/examples/__snapshots__/example33.snap.svg +93 -5
  77. package/tests/examples/__snapshots__/example34.snap.svg +51 -5
  78. package/tests/examples/__snapshots__/example35.snap.svg +58 -5
  79. package/tests/examples/__snapshots__/example36.snap.svg +44 -5
  80. package/tests/examples/__snapshots__/example37.snap.svg +72 -5
  81. package/tests/examples/__snapshots__/example38.snap.svg +30 -5
  82. package/tests/examples/__snapshots__/example39.snap.svg +37 -5
  83. package/tests/examples/__snapshots__/example40.snap.svg +100 -5
  84. package/tests/examples/__snapshots__/example41.snap.svg +44 -5
  85. package/tests/examples/__snapshots__/example42.snap.svg +65 -5
  86. package/tests/examples/__snapshots__/example43.snap.svg +58 -5
  87. package/tests/examples/__snapshots__/example44.snap.svg +107 -5
  88. package/tests/examples/__snapshots__/example45.snap.svg +51 -5
  89. package/tests/examples/__snapshots__/example46.snap.svg +93 -5
  90. package/tests/examples/__snapshots__/example47.snap.svg +93 -5
  91. package/tests/examples/__snapshots__/example48.snap.svg +65 -5
  92. package/tests/examples/__snapshots__/example49.snap.svg +177 -5
  93. package/tests/examples/__snapshots__/example50.snap.svg +93 -5
  94. package/tests/examples/__snapshots__/example51.snap.svg +952 -0
  95. package/tests/examples/example51.test.ts +12 -0
  96. package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +219 -0
  97. package/tests/fixtures/convertSolverOutputToCircuitJson.ts +1058 -0
  98. package/tests/fixtures/matcher.ts +45 -8
  99. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +762 -2
  100. package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +111 -2
  101. package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +167 -2
  102. package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +65 -5
  103. package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +30 -5
  104. package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +79 -5
  105. package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +65 -5
  106. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +149 -5
  107. package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +55 -2
  108. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +160 -2
  109. package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +135 -5
  110. package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +69 -2
  111. package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +86 -5
  112. package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +44 -5
  113. package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +44 -5
  114. package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +260 -0
  115. package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +335 -2
  116. package/tests/repros/__snapshots__/repro-ground-label-on-lower-rail-end.snap.svg +48 -2
  117. package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +149 -5
  118. package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +72 -5
  119. package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +100 -5
  120. package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +51 -5
  121. package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +90 -2
  122. package/tests/repros/__snapshots__/repro-power-group-rail-labels.snap.svg +37 -5
  123. package/tests/repros/__snapshots__/repro-rectifier-trace-overlap.snap.svg +44 -5
  124. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +237 -2
  125. package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +72 -5
  126. package/tests/repros/__snapshots__/repro-rp2040-v3v3-label-placement.snap.svg +51 -5
  127. package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +30 -5
  128. package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +79 -5
  129. package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +27 -2
  130. package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1150 -5
  131. package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +51 -5
  132. package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +30 -5
  133. package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +30 -5
  134. package/tests/repros/__snapshots__/repro-type-c-vbus-led-ground-label.snap.svg +44 -5
  135. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +685 -2
  136. package/tests/repros/__snapshots__/repro-vcc-pin1-detour.snap.svg +27 -2
  137. package/tests/repros/__snapshots__/repro129-host-custom-symbol-passives.snap.svg +51 -5
  138. package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +100 -5
  139. package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +107 -5
  140. package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +51 -5
  141. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +104 -2
  142. package/tests/repros/__snapshots__/repro5-escape-padded-text-obstacles.snap.svg +30 -5
  143. package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +65 -5
  144. package/tests/repros/__snapshots__/repro84-stacked-gnd-label-orientation.snap.svg +27 -2
  145. package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +58 -5
  146. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +37 -5
  147. package/tests/repros/assets/repro-core-tb67s579ftg-inline-label-routing.input.json +900 -0
  148. package/tests/repros/repro-core-tb67s579ftg-inline-label-routing.test.ts +40 -0
  149. package/tests/solvers/InlineNetLabelSolver/__snapshots__/fallback-net-label-width.snap.svg +25 -7
  150. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-anchored-label-clearance.snap.svg +34 -2
  151. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-port-stub.snap.svg +23 -5
  152. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-two-pin-net.snap.svg +23 -5
  153. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label01.snap.svg +23 -5
  154. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +23 -5
  155. package/tests/solvers/InlineNetLabelSolver/__snapshots__/terminal-stub-trace-clearance.snap.svg +71 -0
  156. package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
  157. package/tests/solvers/InlineNetLabelSolver/terminal-stub-trace-clearance.test.ts +102 -0
  158. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +23 -5
  159. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_repro47-short-opposing-pins.snap.svg +20 -2
  160. package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +44 -5
  161. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +79 -5
  162. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +44 -5
  163. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +23 -5
  164. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +30 -5
@@ -1,4 +1,6 @@
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="1.2000000000000002,-0.30000000000000004 1.6,1.7049999999999998" data-type="line" data-label="" points="308.80000000000007,443.42400000000004 353.6,218.86400000000003" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.09999999999999998 1.6,1.9049999999999998" data-type="line" data-label="" points="308.80000000000007,398.624 353.6,196.46400000000003" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.6,2.105" data-type="line" data-label="" points="308.80000000000007,376.224 353.6,174.06400000000002" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.09999999999999998 1.3,0.09999999999999998 1.3,1.5049999999999997 1.049,1.5049999999999997 1.049,1.905 1.6,1.9049999999999998" data-type="line" data-label="" points="308.80000000000007,398.624 320,398.624 320,241.26400000000004 291.88800000000003,241.26400000000004 291.88800000000003,196.464 353.6,196.46400000000003" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.2489999999999999,0.30000000000000004 1.2489999999999999,1.2049999999999996 0.749,1.2049999999999996 0.749,2.105 1.6,2.105" data-type="line" data-label="" points="308.80000000000007,376.224 314.288,376.224 314.288,274.86400000000003 258.288,274.86400000000003 258.288,174.06400000000002 353.6,174.06400000000002" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.3010000000000002,-0.30000000000000004 1.3010000000000002,-0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,443.42400000000004 320.1120000000001,443.42400000000004 320.1120000000001,465.93600000000004" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,1.7049999999999998 1.449,1.7049999999999998 1.449,1.654" data-type="line" data-label="" points="353.6,218.86400000000003 336.68800000000005,218.86400000000003 336.68800000000005,224.57600000000002" 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="40" y="353.824" width="268.80000000000007" height="112" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.7" data-y="1.9049999999999998" x="353.6000000000001" y="151.66400000000004" width="246.39999999999998" height="89.59999999999997" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
1
+ <svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
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="1.2000000000000002,-0.30000000000000004 1.6,1.7049999999999998" data-type="line" data-label="" points="308.80000000000007,443.42400000000004 353.6,218.86400000000003" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.09999999999999998 1.6,1.9049999999999998" data-type="line" data-label="" points="308.80000000000007,398.624 353.6,196.46400000000003" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.6,2.105" data-type="line" data-label="" points="308.80000000000007,376.224 353.6,174.06400000000002" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.09999999999999998 1.3,0.09999999999999998 1.3,1.5049999999999997 1.049,1.5049999999999997 1.049,1.905 1.6,1.9049999999999998" data-type="line" data-label="" points="308.80000000000007,398.624 320,398.624 320,241.26400000000004 291.88800000000003,241.26400000000004 291.88800000000003,196.464 353.6,196.46400000000003" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.2489999999999999,0.30000000000000004 1.2489999999999999,1.2049999999999996 0.749,1.2049999999999996 0.749,2.105 1.6,2.105" data-type="line" data-label="" points="308.80000000000007,376.224 314.288,376.224 314.288,274.86400000000003 258.288,274.86400000000003 258.288,174.06400000000002 353.6,174.06400000000002" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.3010000000000002,-0.30000000000000004 1.3010000000000002,-0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,443.42400000000004 320.1120000000001,443.42400000000004 320.1120000000001,465.93600000000004" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,1.7049999999999998 1.449,1.7049999999999998 1.449,1.654" data-type="line" data-label="" points="353.6,218.86400000000003 336.68800000000005,218.86400000000003 336.68800000000005,224.57600000000002" 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="40" y="353.824" width="268.80000000000007" height="112" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.7" data-y="1.9049999999999998" x="353.6000000000001" y="151.66400000000004" width="246.39999999999998" height="89.59999999999997" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
2
4
  globalConnNetId: connectivity_net0" data-x="1.3010000000000002" data-y="-0.7260000000000001" x="308.91200000000003" y="465.93600000000004" width="22.400000000000034" height="50.39999999999998" fill="#00000066" stroke="#000000" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
3
5
  globalConnNetId: connectivity_net0" data-x="1.449" data-y="1.4289999999999998" x="325.48800000000006" y="224.57600000000002" width="22.399999999999977" height="50.400000000000034" fill="#00000066" stroke="#000000" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: OUT
4
6
  globalConnNetId: connectivity_net1" data-x="1.5250000000000001" data-y="0.09999999999999998" x="320" y="387.42400000000004" width="50.40000000000009" height="22.399999999999977" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: VCC
@@ -27,7 +29,7 @@ orientation: y+" data-x="0.749" data-y="2.105" cx="258.288" cy="174.064000000000
27
29
  const h = svg.getElementById('crosshair-h');
28
30
  const v = svg.getElementById('crosshair-v');
29
31
  const coords = svg.getElementById('coordinates');
30
-
32
+
31
33
  crosshair.style.display = 'block';
32
34
  h.setAttribute('x1', '0');
33
35
  h.setAttribute('x2', '640');
@@ -46,13 +48,13 @@ orientation: y+" data-x="0.749" data-y="2.105" cx="258.288" cy="174.064000000000
46
48
  // y' = (y - ty) / sy
47
49
  const sx = matrix.a;
48
50
  const sy = matrix.d;
49
- const tx = matrix.e;
51
+ const tx = matrix.e;
50
52
  const ty = matrix.f;
51
53
  const realPoint = {
52
54
  x: (x - tx) / sx,
53
55
  y: (y - ty) / sy // Flip y back since we used negative scale
54
56
  }
55
-
57
+
56
58
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
57
59
  coords.setAttribute('x', (x + 5).toString());
58
60
  coords.setAttribute('y', (y - 5).toString());
@@ -60,4 +62,48 @@ orientation: y+" data-x="0.749" data-y="2.105" cx="258.288" cy="174.064000000000
60
62
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
61
63
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
62
64
  });
63
- ]]></script></svg>
65
+ ]]></script>
66
+ </g>
67
+ <g transform="translate(1216, 200)">
68
+ <style>
69
+ .boundary { fill: rgb(245, 241, 237); }
70
+ .schematic-boundary { fill: none; stroke: #fff; }
71
+ .component { fill: none; stroke: rgb(132, 0, 0); }
72
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
73
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
74
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
75
+ .pin-number { fill: rgb(169, 0, 0); }
76
+ .port-label { fill: rgb(0, 100, 100); }
77
+ .component-name { fill: rgb(0, 100, 100); }
78
+
79
+ </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 627.273553744 527.6402315222 L 645.4559229066999 527.6402315222 L 645.4559229066999 272.177944786265 L 599.818176308323 272.177944786265 L 599.818176308323 199.44846813546496 L 700.0030303947999 199.44846813546502" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.091790660319997px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 627.273553744 527.6402315222 L 645.4559229066999 527.6402315222 L 645.4559229066999 272.177944786265 L 599.818176308323 272.177944786265 L 599.818176308323 199.44846813546496 L 700.0030303947999 199.44846813546502" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6364738325399997px" 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 627.273553744 491.27549319679997 L 636.1829146337229 491.27549319679997 L 636.1829146337229 326.725052274365 L 545.271068820223 326.725052274365 L 545.271068820223 163.083729810065 L 700.0030303947999 163.083729810065" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.091790660319997px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 627.273553744 491.27549319679997 L 636.1829146337229 491.27549319679997 L 636.1829146337229 326.725052274365 L 545.271068820223 326.725052274365 L 545.271068820223 163.083729810065 L 700.0030303947999 163.083729810065" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6364738325399997px" 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 627.273553744 600.3697081729999 L 645.637746598327 600.3697081729999 L 645.637746598327 636.9162701900269" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.091790660319997px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 627.273553744 600.3697081729999 L 645.637746598327 600.3697081729999 L 645.637746598327 636.9162701900269" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6364738325399997px" 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 700.0030303947999 235.813206460865 L 672.547652959123 235.813206460865 L 672.547652959123 245.08621473384198" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.091790660319997px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 700.0030303947999 235.813206460865 L 672.547652959123 235.813206460865 L 672.547652959123 245.08621473384198" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6364738325399997px" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="263.62617048999994" y="454.91075487139994" width="290.9179066032001" height="181.82369162700002" stroke-width="3.6364738325399997px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="263.62617048999994" y="454.91075487139994" width="290.9179066032001" height="181.82369162700002" fill="transparent"/><text class="sch-text" x="409.0851237916" y="545.8226006849" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="32.72826449286px" transform="rotate(0, 409.0851237916, 545.8226006849)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="554.5440770932" y1="600.3697081729999" x2="627.273553744" y2="600.3697081729999" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="623.63707991146" y="596.73323434046" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="590.9088154185999" y="596.73323434046" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="263.62617048999994" y1="600.3697081729999" x2="194.53316767173996" y2="600.3697081729999" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="190.89669383919997" cy="600.3697081729999" r="3.6364738325399997" stroke-width="3.6364738325399997px"/><rect x="187.26022000665998" y="596.73323434046" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="227.26143216459997" y="596.73323434046" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="554.5440770932" y1="527.6402315222" x2="627.273553744" y2="527.6402315222" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="623.63707991146" y="524.00375768966" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="590.9088154185999" y="524.00375768966" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="263.62617048999994" y1="491.27549319679997" x2="194.53316767173996" y2="491.27549319679997" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="190.89669383919997" cy="491.27549319679997" r="3.6364738325399997" stroke-width="3.6364738325399997px"/><rect x="187.26022000665998" y="487.63901936426" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="227.26143216459997" y="487.6390193642599" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="263.62617048999994" y1="527.6402315222" x2="194.53316767173996" y2="527.6402315222" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="190.89669383919997" cy="527.6402315222" r="3.6364738325399997" stroke-width="3.6364738325399997px"/><rect x="187.26022000665998" y="524.00375768966" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="227.26143216459997" y="524.00375768966" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="263.62617048999994" y1="564.0049698475999" x2="194.53316767173996" y2="564.0049698475999" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="190.89669383919997" cy="564.0049698475999" r="3.6364738325399997" stroke-width="3.6364738325399997px"/><rect x="187.26022000665998" y="560.3684960150599" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="227.26143216459997" y="560.3684960150599" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="554.5440770932" y1="564.0049698475999" x2="623.63707991146" y2="564.0049698475999" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="627.273553744" cy="564.0049698475999" r="3.6364738325399997" stroke-width="3.6364738325399997px"/><rect x="623.63707991146" y="560.3684960150599" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="590.9088154185999" y="560.3684960150599" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="554.5440770932" y1="491.27549319679997" x2="627.273553744" y2="491.27549319679997" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="623.63707991146" y="487.63901936426" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="590.9088154185999" y="487.6390193642599" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">8</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="772.7325070456" y="126.71899148466503" width="254.55316827780007" height="145.4589533016" stroke-width="3.6364738325399997px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="772.7325070456" y="126.71899148466503" width="254.55316827780007" height="145.4589533016" fill="transparent"/><text class="sch-text" x="900.0090911845" y="199.44846813546502" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="32.72826449286px" transform="rotate(0, 900.0090911845, 199.44846813546502)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="772.7325070456" y1="163.083729810065" x2="700.0030303947999" y2="163.083729810065" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="696.3665565622599" y="159.447255977525" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="736.3677687202" y="159.447255977525" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="772.7325070456" y1="199.44846813546502" x2="700.0030303947999" y2="199.44846813546502" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="696.3665565622599" y="195.81199430292503" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="736.3677687202" y="195.81199430292503" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="772.7325070456" y1="235.813206460865" x2="700.0030303947999" y2="235.813206460865" stroke-width="3.6364738325399997px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="696.3665565622599" y="232.176732628325" width="7.272947665079999" height="7.272947665079999" opacity="0"/></g><text class="pin-number sch-pin-number" x="736.3677687202" y="232.176732628325" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.273553744049998px" transform="">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="627.273553744" cy="600.3697081729999" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="190.89669383919997" cy="600.3697081729999" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="627.273553744" cy="527.6402315222" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="190.89669383919997" cy="491.27549319679997" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="190.89669383919997" cy="527.6402315222" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="190.89669383919997" cy="564.0049698475999" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="627.273553744" cy="564.0049698475999" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="627.273553744" cy="491.27549319679997" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="700.0030303947999" cy="163.083729810065" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="700.0030303947999" cy="199.44846813546502" r="7.272947665079999" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="700.0030303947999" cy="235.813206460865" r="7.272947665079999" 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="
80
+ M 645.637746598327,636.9162701900269
81
+ L 663.820115761027,646.7347495378849
82
+ L 663.820115761027,709.0881541865041
83
+ L 627.455377435627,709.0881541865041
84
+ L 627.455377435627,646.7347495378849
85
+ Z
86
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.6364738325399997px"/><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="645.637746598327" y="653.2804024364569" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="32.72826449286px" transform="rotate(90 645.637746598327 653.2804024364569)">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="
87
+ M 672.547652959123,245.08621473384198
88
+ L 690.7300221218229,254.90469408169997
89
+ L 690.7300221218229,317.25809873031915
90
+ L 654.365283796423,317.25809873031915
91
+ L 654.365283796423,254.90469408169997
92
+ Z
93
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.6364738325399997px"/><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="672.547652959123" y="261.450346980272" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="32.72826449286px" transform="rotate(90 672.547652959123 261.450346980272)">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="
94
+ M 645.4559229066999,527.6402315222
95
+ L 655.2744022545579,509.4578623595
96
+ L 717.6278069031771,509.4578623595
97
+ L 717.6278069031771,545.8226006849
98
+ L 655.2744022545579,545.8226006849
99
+ Z
100
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.6364738325399997px"/><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="661.8200551531299" y="527.6402315222" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="32.72826449286px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
101
+ M 545.271068820223,163.083729810065
102
+ L 527.0886996575231,153.265250462207
103
+ L 527.0886996575231,90.9118458135878
104
+ L 563.453437982923,90.9118458135878
105
+ L 563.453437982923,153.265250462207
106
+ Z
107
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.6364738325399997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="545.271068820223" y="146.719597563635" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="32.72826449286px" transform="rotate(-90 545.271068820223 146.719597563635)">XX</text>
108
+ </g>
109
+ </svg>
@@ -1,4 +1,6 @@
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="1.15,-0.30000000000000004 1.8499999999999996,-0.3000000000000007" data-type="line" data-label="" points="336.1256544502618,395.86387434554973 387.43455497382195,395.8638743455498" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="2.95,-0.3000000000000007 3.6500000000000004,-0.3000000000000007" data-type="line" data-label="" points="468.0628272251309,395.8638743455498 519.3717277486911,395.8638743455498" fill="none" stroke="hsl(48, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.30000000000000004 -1.1500000000000004,1.15" data-type="line" data-label="" points="167.5392670157068,351.8848167539267 167.5392670157068,289.58115183246076" fill="none" stroke="hsl(280, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.10000000000000003 -1.85,0.10000000000000002" data-type="line" data-label="" points="167.5392670157068,366.5445026178011 116.2303664921466,366.5445026178011" fill="none" stroke="hsl(48, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.15,-0.30000000000000004 1.8499999999999996,-0.3000000000000007" data-type="line" data-label="" points="336.1256544502618,395.86387434554973 387.43455497382195,395.8638743455498" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.95,-0.3000000000000007 3.6500000000000004,-0.3000000000000007" data-type="line" data-label="" points="468.0628272251309,395.8638743455498 519.3717277486911,395.8638743455498" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.30000000000000004 -1.3499999999999999,0.30000000000000004 -1.3499999999999999,0.7250000000000001 -1.1500000000000004,0.7250000000000001 -1.1500000000000004,1.15" data-type="line" data-label="" points="167.5392670157068,351.8848167539267 152.87958115183247,351.8848167539267 152.87958115183247,320.73298429319374 167.5392670157068,320.73298429319374 167.5392670157068,289.58115183246076" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.10000000000000003 -1.85,0.10000000000000002" data-type="line" data-label="" points="167.5392670157068,366.5445026178011 116.2303664921466,366.5445026178011" 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="167.5392670157068" y="337.22513089005236" width="168.58638743455498" height="73.29842931937173" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-1.1500000000000004" data-y="1.6700000000000002" x="129.4240837696335" y="213.3507853403141" width="76.2303664921466" height="76.23036649214663" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-2.37" data-y="0.10000000000000009" x="40.000000000000014" y="346.75392670157066" width="76.2303664921466" height="39.58115183246076" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="2.4" data-y="-0.3000000000000007" x="387.43455497382195" y="365.07853403141365" width="80.62827225130894" height="61.57068062827227" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="4.2" data-y="-0.3000000000000007" x="519.371727748691" y="365.07853403141365" width="80.62827225130889" height="61.57068062827227" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="netId: .U1 .OUT1 to .D1 .pin1
1
+ <svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
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="1.15,-0.30000000000000004 1.8499999999999996,-0.3000000000000007" data-type="line" data-label="" points="336.1256544502618,395.86387434554973 387.43455497382195,395.8638743455498" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="2.95,-0.3000000000000007 3.6500000000000004,-0.3000000000000007" data-type="line" data-label="" points="468.0628272251309,395.8638743455498 519.3717277486911,395.8638743455498" fill="none" stroke="hsl(48, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.30000000000000004 -1.1500000000000004,1.15" data-type="line" data-label="" points="167.5392670157068,351.8848167539267 167.5392670157068,289.58115183246076" fill="none" stroke="hsl(280, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.10000000000000003 -1.85,0.10000000000000002" data-type="line" data-label="" points="167.5392670157068,366.5445026178011 116.2303664921466,366.5445026178011" fill="none" stroke="hsl(48, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.15,-0.30000000000000004 1.8499999999999996,-0.3000000000000007" data-type="line" data-label="" points="336.1256544502618,395.86387434554973 387.43455497382195,395.8638743455498" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.95,-0.3000000000000007 3.6500000000000004,-0.3000000000000007" data-type="line" data-label="" points="468.0628272251309,395.8638743455498 519.3717277486911,395.8638743455498" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.30000000000000004 -1.3499999999999999,0.30000000000000004 -1.3499999999999999,0.7250000000000001 -1.1500000000000004,0.7250000000000001 -1.1500000000000004,1.15" data-type="line" data-label="" points="167.5392670157068,351.8848167539267 152.87958115183247,351.8848167539267 152.87958115183247,320.73298429319374 167.5392670157068,320.73298429319374 167.5392670157068,289.58115183246076" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.15,0.10000000000000003 -1.85,0.10000000000000002" data-type="line" data-label="" points="167.5392670157068,366.5445026178011 116.2303664921466,366.5445026178011" 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="167.5392670157068" y="337.22513089005236" width="168.58638743455498" height="73.29842931937173" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-1.1500000000000004" data-y="1.6700000000000002" x="129.4240837696335" y="213.3507853403141" width="76.2303664921466" height="76.23036649214663" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-2.37" data-y="0.10000000000000009" x="40.000000000000014" y="346.75392670157066" width="76.2303664921466" height="39.58115183246076" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="2.4" data-y="-0.3000000000000007" x="387.43455497382195" y="365.07853403141365" width="80.62827225130894" height="61.57068062827227" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="4.2" data-y="-0.3000000000000007" x="519.371727748691" y="365.07853403141365" width="80.62827225130889" height="61.57068062827227" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="netId: .U1 .OUT1 to .D1 .pin1
2
4
  globalConnNetId: connectivity_net2" data-x="-1.575" data-y="0.30000000000000004" x="119.89528795811518" y="344.5549738219895" width="32.98429319371729" height="14.659685863874358" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="netId: .U1 .OUT2 to .D2 .pin1
3
5
  globalConnNetId: connectivity_net3" data-x="-1.3499999999999999" data-y="-0.12499999999999997" x="145.5497382198953" y="366.5445026178011" width="14.659685863874358" height="32.984293193717235" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="netId: .U1 .VCC to .C1 .pin1
4
6
  globalConnNetId: connectivity_net0" data-x="1.4999999999999998" data-y="-0.07500000000000037" x="354.4502617801047" y="362.87958115183244" width="14.659685863874358" height="32.98429319371729" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013642857142857144"/></g><g><rect data-type="rect" data-label="netId: .C1 .pin2 to .C2 .pin1
@@ -32,7 +34,7 @@ orientation: y+" data-x="3.3000000000000003" data-y="-0.3000000000000007" cx="49
32
34
  const h = svg.getElementById('crosshair-h');
33
35
  const v = svg.getElementById('crosshair-v');
34
36
  const coords = svg.getElementById('coordinates');
35
-
37
+
36
38
  crosshair.style.display = 'block';
37
39
  h.setAttribute('x1', '0');
38
40
  h.setAttribute('x2', '640');
@@ -51,13 +53,13 @@ orientation: y+" data-x="3.3000000000000003" data-y="-0.3000000000000007" cx="49
51
53
  // y' = (y - ty) / sy
52
54
  const sx = matrix.a;
53
55
  const sy = matrix.d;
54
- const tx = matrix.e;
56
+ const tx = matrix.e;
55
57
  const ty = matrix.f;
56
58
  const realPoint = {
57
59
  x: (x - tx) / sx,
58
60
  y: (y - ty) / sy // Flip y back since we used negative scale
59
61
  }
60
-
62
+
61
63
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
62
64
  coords.setAttribute('x', (x + 5).toString());
63
65
  coords.setAttribute('y', (y - 5).toString());
@@ -65,4 +67,48 @@ orientation: y+" data-x="3.3000000000000003" data-y="-0.3000000000000007" cx="49
65
67
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
66
68
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
67
69
  });
68
- ]]></script></svg>
70
+ ]]></script>
71
+ </g>
72
+ <g transform="translate(1216, 200)">
73
+ <style>
74
+ .boundary { fill: rgb(245, 241, 237); }
75
+ .schematic-boundary { fill: none; stroke: #fff; }
76
+ .component { fill: none; stroke: rgb(132, 0, 0); }
77
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
78
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
79
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
80
+ .pin-number { fill: rgb(169, 0, 0); }
81
+ .port-label { fill: rgb(0, 100, 100); }
82
+ .component-name { fill: rgb(0, 100, 100); }
83
+
84
+ </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 612.541254125415 531.6281628162301 L 704.950495049485 531.6281628162301" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.122112211216px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 612.541254125415 531.6281628162301 L 704.950495049485 531.6281628162301" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.640264026402px" 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 850.165016501595 531.6281628162301 L 942.5742574256651 531.6281628162301" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.122112211216px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 850.165016501595 531.6281628162301 L 942.5742574256651 531.6281628162301" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.640264026402px" 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 308.91089108918504 452.42024202417 L 282.5082508251651 452.42024202417 L 282.5082508251651 396.3146314631275 L 308.91089108918493 396.3146314631275 L 308.91089108918493 340.20902090208506" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.122112211216px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 308.91089108918504 452.42024202417 L 282.5082508251651 452.42024202417 L 282.5082508251651 396.3146314631275 L 308.91089108918493 396.3146314631275 L 308.91089108918493 340.20902090208506" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.640264026402px" 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 308.91089108918504 478.82288228819004 L 216.501650165115 478.82288228819004" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.122112211216px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 308.91089108918504 478.82288228819004 L 216.501650165115 478.82288228819004" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.640264026402px" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="361.71617161722503" y="426.01760176015" width="198.01980198015002" height="132.01320132010005" stroke-width="2.640264026402px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="361.71617161722503" y="426.01760176015" width="198.01980198015002" height="132.01320132010005" fill="transparent"/><text class="sch-text" x="460.7260726073" y="492.0242024202" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.762376237618px" transform="rotate(0, 460.7260726073, 492.0242024202)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="361.71617161722503" y1="452.42024202417" x2="308.91089108918504" y2="452.42024202417" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="306.27062706278303" y="449.779977997768" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="335.313531353205" y="449.779977997768" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="361.71617161722503" y1="478.82288228819004" x2="308.91089108918504" y2="478.82288228819004" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="306.27062706278303" y="476.18261826178804" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="335.313531353205" y="476.18261826178804" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="361.71617161722503" y1="505.22552255221" x2="311.551155115587" y2="505.22552255221" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="308.91089108918504" cy="505.22552255221" r="2.640264026402" stroke-width="2.640264026402px"/><rect x="306.27062706278303" y="502.585258525808" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="335.313531353205" y="502.585258525808" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="361.71617161722503" y1="531.6281628162301" x2="311.551155115587" y2="531.6281628162301" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="308.91089108918504" cy="531.6281628162301" r="2.640264026402" stroke-width="2.640264026402px"/><rect x="306.27062706278303" y="528.9878987898281" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="335.313531353205" y="528.987898789828" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="559.735973597375" y1="531.6281628162301" x2="612.541254125415" y2="531.6281628162301" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="609.900990099013" y="528.9878987898281" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="586.138613861395" y="528.987898789828" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="559.735973597375" y1="505.22552255221" x2="609.900990099013" y2="505.22552255221" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="612.541254125415" cy="505.22552255221" r="2.640264026402" stroke-width="2.640264026402px"/><rect x="609.900990099013" y="502.585258525808" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="586.138613861395" y="502.58525852580806" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="559.735973597375" y1="478.82288228819004" x2="609.900990099013" y2="478.82288228819004" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="612.541254125415" cy="478.82288228819004" r="2.640264026402" stroke-width="2.640264026402px"/><rect x="609.900990099013" y="476.18261826178804" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="586.138613861395" y="476.18261826178804" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="559.735973597375" y1="452.42024202417" x2="609.900990099013" y2="452.42024202417" stroke-width="2.640264026402px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="612.541254125415" cy="452.42024202417" r="2.640264026402" stroke-width="2.640264026402px"/><rect x="609.900990099013" y="449.779977997768" width="5.280528052804" height="5.280528052804" opacity="0"/></g><text class="pin-number sch-pin-number" x="586.138613861395" y="449.779977997768" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.801980198015px" transform="">8</text></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="290.42904290437093" y="202.91529152918102" width="35.64356435642702" height="137.29372937290404" fill="transparent"/><path class="sch-component-symbol-path" d="M 308.91089108918493 253.08030803081903 L 326.07260726079795 287.403740374045" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 290.42904290437093 287.403740374045 L 308.91089108918493 253.08030803081903" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 326.07260726079795 287.403740374045 L 290.42904290437093 287.403740374045" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 290.42904290437093 253.08030803081903 L 326.07260726079795 253.08030803081903" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 308.91089108918493 287.403740374045 L 308.91089108918493 340.20902090208506" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 308.91089108918493 202.91529152918102 L 308.91089108918493 251.76017601761805" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="278.5478547855619" y="272.88228822883406" stroke="rgb(245, 241, 237)" stroke-width="2.640264026402px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="end" dominant-baseline="middle" font-size="23.762376237618px">D1</text><text class="sch-component-text" x="349.8349834984159" y="271.562156215633" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="23.762376237618px"></text><circle class="component-pin sch-component-pin" cx="308.91089108918493" cy="202.91529152918102" r="2.640264026402px" stroke-width="2.640264026402px" 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="79.20792079221101" y="461.661166116577" width="137.293729372904" height="35.643564356426964" fill="transparent"/><path class="sch-component-symbol-path" d="M 129.37293729384902 478.82288228819 L 163.696369637075 461.661166116577" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 163.696369637075 497.304730473004 L 129.37293729384902 478.82288228819" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 163.696369637075 461.661166116577 L 163.696369637075 497.304730473004" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 129.37293729384902 497.304730473004 L 129.37293729384902 461.661166116577" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 163.696369637075 478.82288228819 L 216.50165016511502 478.82288228819" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 79.20792079221101 478.82288228819 L 128.05280528064802 478.82288228819" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="149.17491749186402" y="509.185918591813" stroke="rgb(245, 241, 237)" stroke-width="2.640264026402px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="23.762376237618px">D2</text><text class="sch-component-text" x="147.85478547866302" y="437.898789878959" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="23.762376237618px"></text><circle class="component-pin sch-component-pin" cx="79.20792079221101" cy="478.82288228819" r="2.640264026402px" stroke-width="2.640264026402px" fill="none" stroke="rgb(132, 0, 0)"/></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="704.950495049485" y="492.8994499449523" width="145.21452145211015" height="77.45742574255547" fill="transparent"/><path class="sch-component-symbol-path" d="M 850.1650165015951 531.6281628162301 L 792.0792079207511 531.6281628162301" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 763.036303630329 531.6281628162301 L 704.950495049485 531.6281628162301" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 792.0792079207511 492.8994499449523 L 792.0792079207511 570.3568756875078" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 763.036303630329 492.8994499449523 L 763.036303630329 570.3568756875078" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="777.55775577554" y="473.54235423538603" stroke="rgb(245, 241, 237)" stroke-width="2.640264026402px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="23.762376237618px">C1</text><text class="sch-component-text" x="777.55775577554" y="589.7139713970741" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="23.762376237618px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component-overlay sch-component-overlay" x="942.5742574256651" y="492.8994499449524" width="145.21452145210992" height="77.45742574255542" fill="transparent"/><path class="sch-component-symbol-path" d="M 1087.788778877775 531.6281628162301 L 1029.702970296931 531.6281628162301" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1000.660066006509 531.6281628162301 L 942.5742574256651 531.6281628162301" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1029.702970296931 492.8994499449524 L 1029.702970296931 570.3568756875078" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1000.660066006509 492.8994499449524 L 1000.660066006509 570.3568756875078" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.640264026402px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="1015.1815181517201" y="473.5423542353861" stroke="rgb(245, 241, 237)" stroke-width="2.640264026402px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="23.762376237618px">C2</text><text class="sch-component-text" x="1015.1815181517201" y="589.713971397074" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="23.762376237618px"></text><circle class="component-pin sch-component-pin" cx="1087.788778877775" cy="531.6281628162301" r="2.640264026402px" stroke-width="2.640264026402px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="308.91089108918504" cy="452.42024202417" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="308.91089108918504" cy="478.82288228819004" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="308.91089108918504" cy="505.22552255221" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="308.91089108918504" cy="531.6281628162301" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="612.541254125415" cy="531.6281628162301" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="612.541254125415" cy="505.22552255221" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="612.541254125415" cy="478.82288228819004" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="612.541254125415" cy="452.42024202417" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="308.91089108918493" cy="340.20902090208506" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="308.91089108918493" cy="202.91529152918105" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="216.501650165115" cy="478.82288228819004" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="79.20792079221098" cy="478.82288228819" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="737.95379537951" cy="531.6281628162301" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="883.1683168316201" cy="531.6281628162301" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="975.57755775569" cy="531.6281628162301" r="5.280528052804" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="1120.7920792078" cy="531.6281628162301" r="5.280528052804" 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="
85
+ M 282.5082508251651,452.42024202417
86
+ L 275.37953795387966,465.62156215618
87
+ L 230.10781078117338,465.62156215618
88
+ L 230.10781078117338,439.21892189216004
89
+ L 275.37953795387966,439.21892189216004
90
+ Z
91
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.640264026402px"/><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="270.62706270635607" y="452.42024202417" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.762376237618px" transform="">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="
92
+ M 282.5082508251651,478.82288228819004
93
+ L 295.70957095717506,485.95159515947546
94
+ L 295.70957095717506,531.2233223321817
95
+ L 269.3069306931551,531.2233223321817
96
+ L 269.3069306931551,485.95159515947546
97
+ Z
98
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.640264026402px"/><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="282.5082508251651" y="490.70407040699905" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.762376237618px" transform="rotate(90 282.5082508251651 490.70407040699905)">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="
99
+ M 658.74587458745,531.6281628162301
100
+ L 645.54455445544,524.4994499449447
101
+ L 645.54455445544,479.2277227722384
102
+ L 671.94719471946,479.2277227722384
103
+ L 671.94719471946,524.4994499449447
104
+ Z
105
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.640264026402px"/><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="658.74587458745" y="519.7469746974211" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.762376237618px" transform="rotate(-90 658.74587458745 519.7469746974211)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
106
+ M 896.36963696363,531.6281628162301
107
+ L 883.16831683162,524.4994499449447
108
+ L 883.16831683162,479.2277227722384
109
+ L 909.57095709564,479.2277227722384
110
+ L 909.57095709564,524.4994499449447
111
+ Z
112
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.640264026402px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="896.36963696363" y="519.7469746974211" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.762376237618px" transform="rotate(-90 896.36963696363 519.7469746974211)">XX</text>
113
+ </g>
114
+ </svg>
@@ -1,4 +1,6 @@
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="-2.3148566499999994,0.5512093000000002 -1.4,0.42500000000000004" data-type="line" data-label="" points="129.39607886784347,254.98535194000064 211.29957848579102,266.28437168733643" fill="none" stroke="hsl(256, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-2.31430995,-0.5512093000000002 -1.4,-0.42500000000000004" data-type="line" data-label="" points="129.44502275784095,353.6805315442789 211.29957848579102,342.38151179694313" fill="none" stroke="hsl(256, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,1.2 1.4,0.5" data-type="line" data-label="" points="493.97982495355666,196.90168511681264 461.9725106115543,259.56991814825346" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,-2.2 -1.757519574999999,-2.2" data-type="line" data-label="" points="493.97982495355666,501.29024555523955 179.29226414378866,501.29024555523955" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.4,-0.3" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 461.9725106115543,331.1907558984716" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.4,-0.5" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 461.9725106115543,349.0959653360261" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 129.39607886784347,254.98535194000064" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 1.4,-0.5" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 461.9725106115543,349.0959653360261" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 129.39607886784347,254.98535194000064" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.5 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="461.9725106115543,349.0959653360261 129.39607886784347,254.98535194000064" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.5 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="461.9725106115543,349.0959653360261 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.3148566499999994,0.5512093000000002 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="129.39607886784347,254.98535194000064 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,-0.42500000000000004 -2.31430995,-0.5512093000000002" data-type="line" data-label="" points="211.29957848579102,342.38151179694313 129.44502275784095,353.6805315442789" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,0.5 1.757519574999999,1.2" data-type="line" data-label="" points="461.9725106115543,259.56991814825346 493.97982495355666,196.90168511681264" fill="none" stroke="hsl(304, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 -1.8574283249999997,0.42500000000000004 -1.8574283249999997,0.7512093000000004 -2.3148566499999994,0.7512093000000004 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 170.34782867681724,266.28437168733643 170.34782867681724,237.0801425024461 129.39607886784347,237.0801425024461 129.39607886784347,254.98535194000064" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.4,-0.3 1.5790330374999988,-0.3 1.5790330374999988,2.5025814000000004 1.7580660749999977,2.5025814000000004 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 478.0006307749495,331.1907558984716 478.0006307749495,80.28672123449769 494.0287509383446,80.28672123449769 494.0287509383446,98.19193067205222" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.4,-0.5 1.5790330374999988,-0.5 1.5790330374999988,-0.3 1.4,-0.3" data-type="line" data-label="" points="461.9725106115543,349.0959653360261 478.0006307749495,349.0959653360261 478.0006307749495,331.1907558984716 461.9725106115543,331.1907558984716" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.31430995,-0.5512093000000002 -2.31430995,-0.7512093000000004 -1.857154975,-0.7512093000000004 -1.857154975,-0.42500000000000004 -1.4,-0.42500000000000004" data-type="line" data-label="" points="129.44502275784095,353.6805315442789 129.44502275784095,371.58574098183345 170.37230062181598,371.58574098183345 170.37230062181598,342.38151179694313 211.29957848579102,342.38151179694313" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,1.2 1.757519574999999,0.5 1.4,0.5" data-type="line" data-label="" points="493.97982495355666,196.90168511681264 493.97982495355666,259.56991814825346 461.9725106115543,259.56991814825346" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,-2.2 1.757519574999999,-2 -1.757519574999999,-2 -1.757519574999999,-2.2" data-type="line" data-label="" points="493.97982495355666,501.29024555523955 493.97982495355666,483.385036117685 179.29226414378866,483.385036117685 179.29226414378866,501.29024555523955" 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="211.29957848579102" y="241.66470871069896" width="250.67293212576328" height="125.33646606288164" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-2.3145833" data-y="0" x="105.73345381194562" y="254.98535194000067" width="47.37419400179317" height="98.69517960427825" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="1.7577928249999983" data-y="1.7512907000000002" x="479.8777200491088" y="98.19193067205221" width="28.25313579368361" height="98.70975444476042" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.7577928249999983" data-y="-2.7512907" x="165.1412332545529" y="501.2902455552395" width="28.253135793683583" height="98.70975444476045" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="1.7577928249999983" data-y="-2.7512907" x="479.8777200491088" y="501.2902455552395" width="28.25313579368361" height="98.70975444476045" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="netId: V3_3
1
+ <svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
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="-2.3148566499999994,0.5512093000000002 -1.4,0.42500000000000004" data-type="line" data-label="" points="129.39607886784347,254.98535194000064 211.29957848579102,266.28437168733643" fill="none" stroke="hsl(256, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-2.31430995,-0.5512093000000002 -1.4,-0.42500000000000004" data-type="line" data-label="" points="129.44502275784095,353.6805315442789 211.29957848579102,342.38151179694313" fill="none" stroke="hsl(256, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,1.2 1.4,0.5" data-type="line" data-label="" points="493.97982495355666,196.90168511681264 461.9725106115543,259.56991814825346" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,-2.2 -1.757519574999999,-2.2" data-type="line" data-label="" points="493.97982495355666,501.29024555523955 179.29226414378866,501.29024555523955" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.4,-0.3" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 461.9725106115543,331.1907558984716" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.4,-0.5" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 461.9725106115543,349.0959653360261" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 129.39607886784347,254.98535194000064" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 1.4,-0.5" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 461.9725106115543,349.0959653360261" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 129.39607886784347,254.98535194000064" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.5 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="461.9725106115543,349.0959653360261 129.39607886784347,254.98535194000064" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.5 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="461.9725106115543,349.0959653360261 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.3148566499999994,0.5512093000000002 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="129.39607886784347,254.98535194000064 494.0287509383446,98.19193067205222" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,-0.42500000000000004 -2.31430995,-0.5512093000000002" data-type="line" data-label="" points="211.29957848579102,342.38151179694313 129.44502275784095,353.6805315442789" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,0.5 1.757519574999999,1.2" data-type="line" data-label="" points="461.9725106115543,259.56991814825346 493.97982495355666,196.90168511681264" fill="none" stroke="hsl(304, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 -1.8574283249999997,0.42500000000000004 -1.8574283249999997,0.7512093000000004 -2.3148566499999994,0.7512093000000004 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="211.29957848579102,266.28437168733643 170.34782867681724,266.28437168733643 170.34782867681724,237.0801425024461 129.39607886784347,237.0801425024461 129.39607886784347,254.98535194000064" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.4,-0.3 1.5790330374999988,-0.3 1.5790330374999988,2.5025814000000004 1.7580660749999977,2.5025814000000004 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="461.9725106115543,331.1907558984716 478.0006307749495,331.1907558984716 478.0006307749495,80.28672123449769 494.0287509383446,80.28672123449769 494.0287509383446,98.19193067205222" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.4,-0.5 1.5790330374999988,-0.5 1.5790330374999988,-0.3 1.4,-0.3" data-type="line" data-label="" points="461.9725106115543,349.0959653360261 478.0006307749495,349.0959653360261 478.0006307749495,331.1907558984716 461.9725106115543,331.1907558984716" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.31430995,-0.5512093000000002 -2.31430995,-0.7512093000000004 -1.857154975,-0.7512093000000004 -1.857154975,-0.42500000000000004 -1.4,-0.42500000000000004" data-type="line" data-label="" points="129.44502275784095,353.6805315442789 129.44502275784095,371.58574098183345 170.37230062181598,371.58574098183345 170.37230062181598,342.38151179694313 211.29957848579102,342.38151179694313" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,1.2 1.757519574999999,0.5 1.4,0.5" data-type="line" data-label="" points="493.97982495355666,196.90168511681264 493.97982495355666,259.56991814825346 461.9725106115543,259.56991814825346" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,-2.2 1.757519574999999,-2 -1.757519574999999,-2 -1.757519574999999,-2.2" data-type="line" data-label="" points="493.97982495355666,501.29024555523955 493.97982495355666,483.385036117685 179.29226414378866,483.385036117685 179.29226414378866,501.29024555523955" 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="211.29957848579102" y="241.66470871069896" width="250.67293212576328" height="125.33646606288164" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-2.3145833" data-y="0" x="105.73345381194562" y="254.98535194000067" width="47.37419400179317" height="98.69517960427825" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="1.7577928249999983" data-y="1.7512907000000002" x="479.8777200491088" y="98.19193067205221" width="28.25313579368361" height="98.70975444476042" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.7577928249999983" data-y="-2.7512907" x="165.1412332545529" y="501.2902455552395" width="28.253135793683583" height="98.70975444476045" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="1.7577928249999983" data-y="-2.7512907" x="479.8777200491088" y="501.2902455552395" width="28.25313579368361" height="98.70975444476045" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="netId: V3_3
2
4
  globalConnNetId: connectivity_net0" data-x="-2.3148566499999994" data-y="0.9762093000000004" x="120.4434741490662" y="196.79342126794842" width="17.905209437554532" height="40.28672123449769" fill="#ef444466" stroke="#ef4444" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="netId: V3_3
3
5
  globalConnNetId: connectivity_net0" data-x="1.7580660749999977" data-y="2.7275814000000005" x="485.07614621956736" y="40" width="17.90520943755456" height="40.28672123449769" fill="#ef444466" stroke="#ef4444" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="netId: GND
4
6
  globalConnNetId: connectivity_net1" data-x="-2.31430995" data-y="-0.9762093000000004" x="120.49241803906368" y="371.58574098183345" width="17.905209437554532" height="40.28672123449769" fill="#00000066" stroke="#000000" stroke-width="0.011169933571428573"/></g><g><rect data-type="rect" data-label="netId: FLASH_N_CS
@@ -34,7 +36,7 @@ orientation: x+" data-x="1.757519574999999" data-y="-2" cx="493.97982495355666"
34
36
  const h = svg.getElementById('crosshair-h');
35
37
  const v = svg.getElementById('crosshair-v');
36
38
  const coords = svg.getElementById('coordinates');
37
-
39
+
38
40
  crosshair.style.display = 'block';
39
41
  h.setAttribute('x1', '0');
40
42
  h.setAttribute('x2', '640');
@@ -53,13 +55,13 @@ orientation: x+" data-x="1.757519574999999" data-y="-2" cx="493.97982495355666"
53
55
  // y' = (y - ty) / sy
54
56
  const sx = matrix.a;
55
57
  const sy = matrix.d;
56
- const tx = matrix.e;
58
+ const tx = matrix.e;
57
59
  const ty = matrix.f;
58
60
  const realPoint = {
59
61
  x: (x - tx) / sx,
60
62
  y: (y - ty) / sy // Flip y back since we used negative scale
61
63
  }
62
-
64
+
63
65
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
64
66
  coords.setAttribute('x', (x + 5).toString());
65
67
  coords.setAttribute('y', (y - 5).toString());
@@ -67,4 +69,55 @@ orientation: x+" data-x="1.757519574999999" data-y="-2" cx="493.97982495355666"
67
69
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
68
70
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
69
71
  });
70
- ]]></script></svg>
72
+ ]]></script>
73
+ </g>
74
+ <g transform="translate(1216, 200)">
75
+ <style>
76
+ .boundary { fill: rgb(245, 241, 237); }
77
+ .schematic-boundary { fill: none; stroke: #fff; }
78
+ .component { fill: none; stroke: rgb(132, 0, 0); }
79
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
80
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
81
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
82
+ .pin-number { fill: rgb(169, 0, 0); }
83
+ .port-label { fill: rgb(0, 100, 100); }
84
+ .component-name { fill: rgb(0, 100, 100); }
85
+
86
+ </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 481.20128602988 315.039043787835 L 432.7537928994867 315.039043787835 L 432.7537928994867 280.48931882093353 L 384.30629976909347 280.48931882093353 L 384.30629976909347 301.67186939009355" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.946040455328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 481.20128602988 315.039043787835 L 432.7537928994867 315.039043787835 L 432.7537928994867 280.48931882093353 L 384.30629976909347 280.48931882093353 L 384.30629976909347 301.67186939009355" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.118255056916px" 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 777.7569939981199 391.82578960104 L 796.7188758500902 391.82578960104 L 796.7188758500902 94.99667845260382 L 815.6807577020604 94.99667845260382 L 815.6807577020604 116.17922902176386" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.946040455328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 777.7569939981199 391.82578960104 L 796.7188758500902 391.82578960104 L 796.7188758500902 94.99667845260382 L 815.6807577020604 94.99667845260382 L 815.6807577020604 116.17922902176386" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.118255056916px" 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 777.7569939981199 413.00834017020003 L 796.7188758500902 413.00834017020003 L 796.7188758500902 391.82578960104 L 777.7569939981199 391.82578960104" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.946040455328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 777.7569939981199 413.00834017020003 L 796.7188758500902 413.00834017020003 L 796.7188758500902 391.82578960104 L 777.7569939981199 391.82578960104" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.118255056916px" 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 384.3642022710742 418.4320581045065 L 384.3642022710742 439.6146086736665 L 432.78274415047713 439.6146086736665 L 432.78274415047713 405.06488370676504 L 481.20128602988 405.06488370676504" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.946040455328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 384.3642022710742 418.4320581045065 L 384.3642022710742 439.6146086736665 L 432.78274415047713 439.6146086736665 L 432.78274415047713 405.06488370676504 L 481.20128602988 405.06488370676504" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.118255056916px" 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 815.6228763826304 232.95666033234002 L 815.6228763826304 307.0955873244 L 777.7569939981199 307.0955873244" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.946040455328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 815.6228763826304 232.95666033234002 L 815.6228763826304 307.0955873244 L 777.7569939981199 307.0955873244" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.118255056916px" 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_5__stack1"><path d="M 815.6228763826304 593.0600200080601 L 815.6228763826304 571.8774694389 L 443.33540364536964 571.8774694389 L 443.33540364536964 593.0600200080601" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.946040455328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 815.6228763826304 593.0600200080601 L 815.6228763826304 571.8774694389 L 443.33540364536964 571.8774694389 L 443.33540364536964 593.0600200080601" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.118255056916px" 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"><circle cx="777.7569939981199" cy="391.82578960104" r="3.177382585374" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/><circle cx="796.7188758500902" cy="391.82578960104" r="3.177382585374" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/></g><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="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="523.5663871682" y="285.91303675524" width="211.82550569160003" height="148.27785398412004" stroke-width="2.118255056916px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="523.5663871682" y="285.91303675524" width="211.82550569160003" height="148.27785398412004" fill="transparent"/><text class="sch-text" x="629.479140014" y="360.0519637473" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.064295512243998px" transform="rotate(0, 629.479140014, 360.0519637473)">U3</text><line class="component-pin sch-component-pin sch-port-line" x1="523.5663871682" y1="315.039043787835" x2="481.20128602988" y2="315.039043787835" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="479.083030972964" y="312.920788730919" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="502.38383659904" y="312.920788730919" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">8</text><line class="component-pin sch-component-pin sch-port-line" x1="523.5663871682" y1="405.06488370676504" x2="481.20128602988" y2="405.06488370676504" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="479.083030972964" y="402.94662864984906" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="502.38383659904" y="402.946628649849" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="735.3918928598" y1="307.0955873244" x2="777.7569939981199" y2="307.0955873244" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="775.6387389412039" y="304.97733226748403" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="756.57444342896" y="304.97733226748403" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="735.3918928598" y1="328.27813789356003" x2="775.638738941204" y2="328.27813789356003" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="777.7569939981199" cy="328.27813789356003" r="2.118255056916" stroke-width="2.118255056916px"/><rect x="775.6387389412039" y="326.15988283664404" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="756.57444342896" y="326.159882836644" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="735.3918928598" y1="349.46068846272" x2="775.638738941204" y2="349.46068846272" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="777.7569939981199" cy="349.46068846272" r="2.118255056916" stroke-width="2.118255056916px"/><rect x="775.6387389412039" y="347.342433405804" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="756.57444342896" y="347.342433405804" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="735.3918928598" y1="370.64323903188" x2="775.638738941204" y2="370.64323903188" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="777.7569939981199" cy="370.64323903188" r="2.118255056916" stroke-width="2.118255056916px"/><rect x="775.6387389412039" y="368.524983974964" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="756.57444342896" y="368.524983974964" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="735.3918928598" y1="391.82578960104" x2="777.7569939981199" y2="391.82578960104" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><rect x="775.6387389412039" y="389.70753454412403" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="756.57444342896" y="389.70753454412403" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="735.3918928598" y1="413.00834017020003" x2="777.7569939981199" y2="413.00834017020003" stroke-width="2.118255056916px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="775.6387389412039" y="410.89008511328404" width="4.236510113832" height="4.236510113832" opacity="0"/></g><text class="pin-number sch-pin-number" x="756.57444342896" y="410.89008511328404" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.88691292687px" transform="">7</text></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="353.16635360989346" y="301.6718693900936" width="62.279892318400016" height="116.76020307161616" fill="transparent"/><path class="sch-component-symbol-path" d="M 384.30629976909347 418.43207246170977 L 384.30629976909347 371.7279912330633" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 384.30629976909347 348.3759506187401 L 384.30629976909347 301.6718693900936" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 415.4462459282935 371.7279912330633 L 353.16635360989346 371.7279912330633" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 415.4462459282935 348.3759506187401 L 353.16635360989346 348.3759506187401" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="406.6853386911532" y="321.131903235363" stroke="rgb(245, 241, 237)" stroke-width="2.118255056916px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="ideographic" font-size="19.064295512243998px">C20</text><text class="sch-component-text" x="406.6853386911532" y="398.9720386164404" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="hanging" font-size="19.064295512243998px"></text></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="800.1143241962278" y="116.17922902176385" width="31.132867011665212" height="116.77744565515842" fill="transparent"/><path class="sch-component-symbol-path" d="M 815.6807577020604 116.17922902176385 L 815.6807577020604 135.64602921247877" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 815.6807577020604 213.48987448620733 L 815.6807577020604 232.95667467692226" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 831.247191207893 135.64602921247877 L 831.247191207893 213.48987448620733 L 800.1143241962278 213.48987448620733 L 800.1143241962278 135.64602921247877 L 831.247191207893 135.64602921247877" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="846.8214098767693" y="143.42729967463413" stroke="rgb(245, 241, 237)" stroke-width="2.118255056916px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="19.064295512243998px">R11</text><text class="sch-component-text" x="846.8214098767693" y="205.70860402405197" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="19.064295512243998px"></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="427.76897013953703" y="593.0600200080601" width="31.132867011665212" height="116.77744565515832" fill="transparent"/><path class="sch-component-symbol-path" d="M 443.33540364536964 709.8374656632184 L 443.33540364536964 690.3706654725036" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 443.33540364536964 612.5268201987749 L 443.33540364536964 593.0600200080601" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 427.76897013953703 690.3706654725036 L 427.76897013953703 612.5268201987749 L 458.90183715120224 612.5268201987749 L 458.90183715120224 690.3706654725036 L 427.76897013953703 690.3706654725036" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="474.47605582007856" y="620.3080906609304" stroke="rgb(245, 241, 237)" stroke-width="2.118255056916px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="19.064295512243998px">R12</text><text class="sch-component-text" x="474.47605582007856" y="682.5893950103481" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="19.064295512243998px"></text><circle class="component-pin sch-component-pin" cx="443.33540364536964" cy="709.8374656632184" r="2.118255056916px" stroke-width="2.118255056916px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component-overlay sch-component-overlay" x="800.0564428767977" y="593.0600200080601" width="31.132867011665212" height="116.77744565515832" fill="transparent"/><path class="sch-component-symbol-path" d="M 815.6228763826304 709.8374656632184 L 815.6228763826304 690.3706654725036" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 815.6228763826304 612.5268201987749 L 815.6228763826304 593.0600200080601" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 800.0564428767977 690.3706654725036 L 800.0564428767977 612.5268201987749 L 831.189309888463 612.5268201987749 L 831.189309888463 690.3706654725036 L 800.0564428767977 690.3706654725036" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.118255056916px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="846.7635285573392" y="620.3080906609304" stroke="rgb(245, 241, 237)" stroke-width="2.118255056916px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="19.064295512243998px">R13</text><text class="sch-component-text" x="846.7635285573392" y="682.5893950103481" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="19.064295512243998px"></text><circle class="component-pin sch-component-pin" cx="815.6228763826304" cy="709.8374656632184" r="2.118255056916px" stroke-width="2.118255056916px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="481.20128602988" cy="315.039043787835" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="481.20128602988" cy="405.06488370676504" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="777.7569939981199" cy="307.0955873244" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="777.7569939981199" cy="328.27813789356003" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="777.7569939981199" cy="349.46068846272" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="777.7569939981199" cy="370.64323903188" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="777.7569939981199" cy="391.82578960104" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="777.7569939981199" cy="413.00834017020003" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="384.30629976909347" cy="328.2781450721617" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="384.3642022710742" cy="445.0383337865746" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="815.6807577020604" cy="142.79412599560305" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="815.6228763826304" cy="259.5715573061792" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="443.2775223259396" cy="736.4523482924753" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="443.33540364536964" cy="619.6749169818993" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="815.6807577020604" cy="736.4523482924753" r="4.236510113832" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="815.6228763826304" cy="619.6749169818993" r="4.236510113832" 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="
87
+ M 384.30629976909347,280.48931882093353
88
+ L 373.7150244845135,274.77003016726036
89
+ L 373.7150244845135,238.44901679134065
90
+ L 394.89757505367345,238.44901679134065
91
+ L 394.89757505367345,274.77003016726036
92
+ Z
93
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.118255056916px"/><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="384.30629976909347" y="270.9571710648115" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.064295512243998px" transform="rotate(-90 384.30629976909347 270.9571710648115)">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="
94
+ M 815.6807577020604,94.99667845260382
95
+ L 805.0894824174804,89.27738979893061
96
+ L 805.0894824174804,52.956376423010944
97
+ L 826.2720329866404,52.956376423010944
98
+ L 826.2720329866404,89.27738979893061
99
+ Z
100
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.118255056916px"/><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="815.6807577020604" y="85.46453069648182" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.064295512243998px" transform="rotate(-90 815.6807577020604 85.46453069648182)">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="
101
+ M 384.3642022710742,439.6146086736665
102
+ L 394.95547755565417,445.3338973273397
103
+ L 394.95547755565417,481.65491070325936
104
+ L 373.7729269864942,481.65491070325936
105
+ L 373.7729269864942,445.3338973273397
106
+ Z
107
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.118255056916px"/><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="384.3642022710742" y="449.1467564297885" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.064295512243998px" transform="rotate(90 384.3642022710742 449.1467564297885)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
108
+ M 815.6228763826304,270.02612382837003
109
+ L 821.3421650363035,259.43484854379005
110
+ L 857.6631784122233,259.43484854379005
111
+ L 857.6631784122233,280.61739911295
112
+ L 821.3421650363035,280.61739911295
113
+ Z
114
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.118255056916px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="825.1550241387523" y="270.02612382837003" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.064295512243998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
115
+ M 815.6228763826304,571.8774694389
116
+ L 821.3421650363035,561.28619415432
117
+ L 857.6631784122233,561.28619415432
118
+ L 857.6631784122233,582.46874472348
119
+ L 821.3421650363035,582.46874472348
120
+ Z
121
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.118255056916px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="825.1550241387523" y="571.8774694389" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.064295512243998px" transform="">XX</text>
122
+ </g>
123
+ </svg>