component
TMCS1123B1AQDVGR - Isolated Hall-Effect Current Sensor
Public Made by Adomby adom
Texas Instruments TMCS1123B1AQDVGR: isolated Hall-effect current sensor, 25 mV/A with a 1.65 V zero-current output (linear +-62 A at 3.3 V), 80 A RMS continuous, 250 kHz, overcurrent detection, reinforced isolation, SOIC-10 wide body (DVG). KiCad, Fusion and Altium libraries, 3D model and datasheet.
← Commit history
Add symbol, footprint, Fusion and Altium libraries, viewers, provenance, README
42 files changed
+12981−2
LICENSE+14README.md+232−2altium/TMCS1123B1AQDVGR.PcbLibaltium/TMCS1123B1AQDVGR.SchLibaltium/TMCS1123B1AQDVGR.adom-lbr.json+3729artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.320.pngartwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg+1models.json+225provenance/3d-model.json+167provenance/dims-model-signal.json+33provenance/dims-model.json+46provenance/footprint-check.json+246provenance/overlay-proof.json+30provenance/tmcs1123b1aqdvgr-features.json+26provenance/tools/build_dvg10.py+101provenance/tools/dims.py+45provenance/tools/dims_signal.py+15provenance/tools/footprint-create.json+99provenance/tools/fp_check.py+41provenance/tools/fp_finish.py+32provenance/tools/glb_batch.py+89provenance/tools/hero_png.py+20provenance/tools/hero_post_keepout.py+64provenance/tools/lbr_keepout.py+13provenance/tools/materials.py+30provenance/tools/overlay_proof.py+63provenance/tools/page_meta.py+166provenance/tools/params-low.json+1provenance/tools/params-superlow.json+1provenance/tools/pins.json+12provenance/tools/render_glb.py+71provenance/tools/render_sym.py+25provenance/tools/snap_symbol.py+26provenance/tools/svg_poly_png.py+16provenance/tools/symbol-create.json+118provenance/tools/write_page_json.py+59tmcs1123b1aqdvgr.kicad_mod+79tmcs1123b1aqdvgr.kicad_sym+211tmcs1123b1aqdvgr.lbr+630verification.json+275viewers/footprint.html+210viewers/symbol.html+5720LICENSEadded+14@@ -0,0 +1,14 @@+Creative Commons Attribution 4.0 International (CC BY 4.0)+https://creativecommons.org/licenses/by/4.0/++Copyright 2026 Adom Inc.++Applies to the files authored by Adom on this page: the KiCad symbol and footprint, the 3D models+(tmcs1123b1aqdvgr*.step, *.glb, lod/), the hero GLB artwork, the virtual MPN etch, the chip outline artwork,+the Fusion/EAGLE and Altium libraries, the provenance tools and data, and the README text.++Not covered (they keep their own terms):+- docs/tmcs1123b1aqdvgr-datasheet.pdf and the page images under docs/figures/: Texas Instruments+ Incorporated (SBOSA24D), redistributed for reference under TI's terms.+- The overlay and footprint-check images under docs/proof/ reproduce parts of TI's package drawings+ (SBOSA24D p.45, p.46) under TI's terms, with Adom's overlay on top.
README.md+232−2@@ -1,3 +1,233 @@-# TMCS1123B1AQDVGR - Isolated Hall-Effect Current Sensor+# TMCS1123B1AQDVGR -Texas Instruments TMCS1123B1AQDVGR: isolated Hall-effect current sensor, 25 mV/A with a 1.65 V zero-current output (linear +-62 A at 3.3 V), 80 A RMS continuous, 250 kHz, overcurrent detection, reinforced isolation, SOIC-10 wide body (DVG). KiCad, Fusion and Altium libraries, 3D model and datasheet.+**Texas Instruments** · Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output · SOIC-10 wide body (DVG)++TMCS1123B1AQDVGR is the B1A option of TI's TMCS1123: a galvanically isolated Hall-effect current sensor. The measured current flows through a 0.7 mOhm lead frame conductor between IN+ and IN-, on one side of a reinforced isolation barrier; the signal side runs from a single 3.0 V to 5.5 V supply and gives an analog output proportional to the current, a precision zero-current reference, a fast overcurrent comparator and a diagnostics output (SBOSA24D p.1, p.4). The B1A option has 25 mV/A sensitivity centred on 1.65 V, so on a 3.3 V supply it measures ±62 A linearly in both directions (p.3).++::adom-verified{src="/adom/tmcs1123b1aqdvgr/render/verification.json"}++## Key specifications++Values for TMCS1123BxA at VS = 3.3 V, TA = 25 C unless noted (TI characterizes the BxA parts at 3.3 V).++| Parameter | Value | Source |+|---|---|---|+| Sensitivity (B1A) | 25 mV/A; error ±0.1 % typ, ±0.4 % max | p.8 |+| Sensitivity drift | ±20 ppm/C typ, ±50 ppm/C max (thermal); ±0.2 % typ, ±0.5 % max (lifetime) | p.8 |+| Nonlinearity | ±0.1 % | p.8 |+| Zero-current output, VREF | 1.65 V; VREF error ±0.02 % typ, ±0.15 % max | p.8, p.9 |+| Offset error (x1A) | ±0.2 mV typ, ±1 mV max; drift ±2 uV/C typ, ±10 uV/C max | p.8 |+| Linear range (B1A) | ±62 A at VS = 3.3 V; -62 A to 130 A at VS = 5 V (output swing limit, not thermal) | p.3 |+| Conductor resistance | 0.7 mOhm (IN+ to IN-) | p.8 |+| Continuous current | 80 A RMS at 25 C, 44 A RMS at 125 C, on TI's TMCS1123xEVM (4 oz copper) | p.8, p.19, p.36 |+| Bandwidth, response | 250 kHz (-3 dB); 1 us response time; 110 ns propagation delay; 3 V/us slew | p.9 |+| Overcurrent detection | threshold VOC = S x IOC / 2.5 (0.3 V to VS); 100 ns typ, 250 ns max response; hysteresis 4.5 A (x1A); OC open-drain, active low | p.9, p.25 |+| ALERT diagnostics | open-drain, active low, 8 kHz PWM: 80 % duty thermal alert, 50 % sensor alert, 20 % both | p.9, p.28 |+| Supply | VS 3.0 V to 5.5 V; IQ 11 mA typ, 14 mA max (25 C); 14.5 mA max over temperature | p.5, p.9 |+| Power-on time | 34 ms from VS > 3 V to valid output | p.10 |+| Isolation | 5000 V RMS withstand (UL 1577, 60 s); reinforced working voltage 950 V RMS / 1343 V DC; VIORM 1697 V peak; VIOTM 7071 V peak; surge 10 kV peak | p.6 |+| Creepage, clearance, CTI | at least 8 mm external creepage and clearance; CTI at least 600 V, material group I | p.6 |+| CMTI | 150 kV/us | p.8 |+| Certifications | UL 1577 (file E181974); IEC/CB 62368-1 | p.6 |+| ESD | HBM ±4000 V, CDM ±1000 V | p.5 |+| Temperature | -40 C to +125 C operating; TJ max 165 C | p.5 |+| Thermal | RthJA 27.9 C/W, RthJB 10.1 C/W (on the EVM) | p.5 |+| Package | DVG (SOIC-10 wide body), 7.5 x 10.3 mm body, 10.3 x 10.3 mm with leads, 2.65 mm max height | p.1, p.45 |+| Moisture sensitivity, marking | MSL 2, 260 C peak; top marking `1123B1A` | p.40 |++## Pinout (top view)++Pins 1 and 2 are the two wide current leads on one side of the package; pins 3 to 10 are on the other side, with 10 at the pin-1 end. The isolation barrier runs between the two rows.++| Pin | Name | Side of barrier | Type | Function |+|---|---|---|---|---|+| 1 | IN+ | primary (high voltage) | passive | Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier. |+| 2 | IN- | primary (high voltage) | passive | Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier. |+| 3 | GND | isolated low voltage | power in | Ground of the isolated low-voltage side (p.4, Table 5-1). |+| 4 | ALERT | isolated low voltage | open collector | Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used. |+| 5 | VREF | isolated low voltage | output | Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9). |+| 6 | VOUT | isolated low voltage | output | Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V. |+| 7 | OC | isolated low voltage | open collector | Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1). |+| 8 | VS | isolated low voltage | power in | Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35). |+| 9 | VOC | isolated low voltage | input | Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25). |+| 10 | NC | isolated low voltage | no connect | Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver. |++Source: SBOSA24D p.4 (Figure 5-1, Table 5-1).++## Variants++Every TMCS1123 option uses the same DVG package and pinout, so the footprint, 3D model and symbol on this page fit all of them; only the sensitivity, the zero-current output and therefore the linear range differ. Orderable part numbers add `QDVGR` (2000-piece tape and reel), for example TMCS1123B1AQDVGR (p.40). Linear range in amperes, from SBOSA24D Table 4-1 (p.3):++| Product | Sensitivity (mV/A) | Zero-current output (V) | Linear range, VS = 5 V (A) | Linear range, VS = 3.3 V (A) |+|---|---|---|---|---|+| TMCS1123A1A | 25 | 2.5 | ±96 (2) | -96 to 28 (2) |+| TMCS1123A2A | 50 | 2.5 | ±48 (2) | -48 to 14 (2) |+| TMCS1123A3A | 75 | 2.5 | ±32 | -32 to 9.3 |+| TMCS1123A4A | 100 | 2.5 | ±24 | -24 to 7 |+| TMCS1123A5A | 150 | 2.5 | ±16 | -16 to 4.7 |+| **TMCS1123B1A** (this page) | **25** | **1.65** | **-62 to 130 (2)** | **±62 (2)** |+| TMCS1123B2A | 50 | 1.65 | -31 to 65 (2) | ±31 |+| TMCS1123B3A | 75 | 1.65 | -20.7 to 43.3 (2) | ±20.7 |+| TMCS1123B4A | 100 | 1.65 | -15.5 to 32.5 | ±15.5 |+| TMCS1123B5A | 150 | 1.65 | -10.3 to 21.7 | ±10.3 |+| TMCS1123C1A | 25 | 0.33 | -9.2 to 183 (2) | -9.2 to 115 (2) |+| TMCS1123C2A | 50 | 0.33 | -4.6 to 91.4 (2) | -4.6 to 57.4 (2) |+| TMCS1123C3A | 75 | 0.33 | -3.1 to 60.9 (2) | -3.1 to 38.3 (2) |+| TMCS1123C4A | 100 | 0.33 | -2.3 to 45.7 (2) | -2.3 to 28.7 |+| TMCS1123C5A | 150 | 0.33 | -1.5 to 30.5 | -1.5 to 19.1 |+| TMCS1123D71 (1) | 38.5 | 1.5 | -36.3 to 88.3 (2) | -36.3 to 44.1 (2) |++(1) D71: overcurrent output asserted only after a sustained event longer than the 1.25 us MASK time (p.3, p.9). (2) The current must also stay inside the continuous and transient safe operating areas (p.3, p.19 to p.21): the linear range can exceed what the part may carry continuously.++How to pick: the A options (2.5 V reference) suit bidirectional sensing on 5 V; the B options (1.65 V) suit bidirectional sensing on 3.3 V; the C options (0.33 V) are for unidirectional current. The range follows from VOUT between 100 mV and VS - 100 mV: IIN,max = (VS - 0.1 V - VREF) / S and IIN,min = (0.1 V - VREF) / S (p.24, Eq. 18 to 21). TI also sells automotive TMCS1123-Q1 parts (for example TMCS1123B1AQDVGRQ1) under their own datasheet; check that datasheet before substituting.++## Design notes++- **Creepage on the board.** The part is rated for at least 8 mm creepage and clearance (p.6), but the PCB pads can reduce it. TI's land pattern has an IPC-7351 nominal option (7.3 mm between the pad rows) and an HV / isolation option (8.1 mm, p.46). This page uses the HV option and adds a copper keepout between the rows. Grooves or slots in the board can add creepage where a standard requires more (p.6 note 1).+- **Current path and heat.** The continuous rating is set by junction temperature on TI's EVM with 4 oz copper. Use large, heavy copper planes for IN+ and IN-, thermal via farms around the input and air flow to keep it (p.19, p.36).+- **Supply and reference.** Decouple VS with 0.1 uF close to the pin (p.35). VREF can drive up to 20 nF; VOUT up to 4.7 nF (p.8, p.9).+- **Overcurrent threshold.** Set VOC from a divider on VS or VREF with R2 under 10 kOhm (120 kOhm input impedance); add at least 500 Ohm between VREF and a 10 uF VOC capacitor (p.36, Figures 9-5 and 9-6). Tie VOC to VS when unused.+- **Unused outputs.** OC and ALERT to GND, VREF floating, VOC to VS, NC to GND or floating (p.4). The symbol types NC as no-connect, so a schematic that ties it to GND needs an ERC waiver.++## CAD++| File | What it is |+|---|---|+| [tmcs1123b1aqdvgr.kicad_sym](tmcs1123b1aqdvgr.kicad_sym) | KiCad symbol `TMCS1123B1AQDVGR` (adom-symbol 1.2.6, every pin then moved onto the 2.54 mm grid): Primary side (IN+, IN-) on the left; the isolated low-voltage pins on the right in Supply, Analog output, Overcurrent and Reserved groups; chip outline drawn in the body. Properties: MPN, Manufacturer, Datasheet, Mouser, DigiKey, Adom Wiki. |+| [tmcs1123b1aqdvgr.kicad_mod](tmcs1123b1aqdvgr.kicad_mod) | KiCad footprint to TI's HV / isolation land pattern, with the isolation keepout rule area. Its 3D path is `${KIPRJMOD}/tmcs1123b1aqdvgr-etched.step`; put the STEP beside your project or repoint the path. |+| [tmcs1123b1aqdvgr.lbr](tmcs1123b1aqdvgr.lbr) | Fusion / EAGLE library (adom-lbr 2.47.6, lint PASS) with MPN, MANUFACTURER, DATASHEET, ADOM_WIKI, MOUSER_PN, DIGIKEY_PN attributes; the keepout is on tRestrict, bRestrict and vRestrict. |+| [altium/TMCS1123B1AQDVGR.SchLib](altium/TMCS1123B1AQDVGR.SchLib), [altium/TMCS1123B1AQDVGR.PcbLib](altium/TMCS1123B1AQDVGR.PcbLib) | Native Altium libraries (adom-lbr assemble-altium) with the etched STEP embedded in the footprint. Altium has no no-connect pin type, so NC is Passive there. The PcbLib has no keepout region (see Open items). |+| [altium/TMCS1123B1AQDVGR.adom-lbr.json](altium/TMCS1123B1AQDVGR.adom-lbr.json) | The adom-lbr hub (symbol, footprint, pin to pad map) the Altium files are made from. |+| [tmcs1123b1aqdvgr-etched.step](tmcs1123b1aqdvgr-etched.step) | **The library 3D model** (see below). |++## Footprint++The pads follow TI's **HV / isolation option** of the DVG0010A example board layout (SBOSA24D p.46, drawing 4226847/C): pads 1 and 2 are 1.65 x 4.41 mm at x = -4.875, y = ±2.54; pads 3 to 10 are 1.65 x 0.60 mm at x = +4.875, 1.27 mm pitch; R0.05 corners. That puts **8.1 mm** of board between the primary pads and the low-voltage pads. A rule area on all copper layers (x -4.05 to +4.05 mm, y -5.5 to +5.5 mm) keeps tracks, vias and pours out of that strip. Every pad was compared with the drawing ([provenance/footprint-check.json](provenance/footprint-check.json)): all ten match.++++Pin 1: pad 1 is the upper-left current pad in KiCad's footprint frame, with a silkscreen bar at the upper-left corner and a chamfer on the F.Fab outline. The 3D model's pin 1 lead lands on pad 1 with zero offset and rotation, and the pads run as in TI's top view (p.4): 1 and 2 down the left, 3 to 10 up the right.++Pads 1 and 2 are current terminals, not exposed thermal pads, so they have no vias in the pad; TI asks for via farms in the copper around the input instead (p.36). KiCad has no library footprint for this package; its SOIC-10 3.9 x 4.9 mm, 1 mm pitch footprint is a different part.++## 3D models++::adom-models{src="/adom/tmcs1123b1aqdvgr/render/models.json"}++| File | What it is |+|---|---|+| [tmcs1123b1aqdvgr-etched.step](tmcs1123b1aqdvgr-etched.step) | Library model for board CAD: the package with the MPN etched on top in an `Adom.LaserEtch` group. |+| [tmcs1123b1aqdvgr.step](tmcs1123b1aqdvgr.step) | The same package, unmarked. |+| [tmcs1123b1aqdvgr-hero.glb](tmcs1123b1aqdvgr-hero.glb) | The page's 3D view: the etched model plus reference artwork (teal dashed pad outlines, silkscreen and pin-1 dot, signal names, and the isolation keepout as its own layer). Presentation only. |+| [tmcs1123b1aqdvgr-etched.glb](tmcs1123b1aqdvgr-etched.glb) | Clean web and board-viewer copy of the etched model, matte-tin leads, no footprint artwork. |+| [tmcs1123b1aqdvgr.glb](tmcs1123b1aqdvgr.glb) | Web copy of the unmarked model. |+| [lod/](lod/manifest.json) | Four board detail levels (below). |++Frame for every file: Z up, seated on z = 0, centred on the footprint origin, pin 1 at (-x, +y), which is footprint pad 1.++**How the model was made.** TI's STEP for this package is on Ultra Librarian behind a reCAPTCHA and a terms form, so it was not downloaded. KiCad has no DVG0010A model. The model was therefore built from TI's package drawing (SBOSA24D p.45, DVG0010A, 4226847/C) with CadQuery ([provenance/tools/build_dvg10.py](provenance/tools/build_dvg10.py)): drafted epoxy body, two wide current leads and eight signal leads as radiused gull wings, pin-1 dimple inside TI's pin-1 ID area. It is AI-generated from the datasheet. Where TI gives a range the model takes the middle; dimensions TI does not give (parting line height, draft, bend radius) are chosen and listed in [provenance/3d-model.json](provenance/3d-model.json).++| Dimension (mm) | TI min / nom / max | Model |+|---|---|---|+| E overall lead span | 9.97 / - / 10.63 (TYP) | 10.30 |+| E1 molded width | 7.4 / - / 7.6 | 7.50 |+| D molded length | 10.1 / - / 10.5 | 10.30 |+| A overall height | max 2.65 | 2.55 |+| A1 standoff | 0.1 / - / 0.3 | 0.20 |+| c lead thickness | 0.23 / - / 0.32 (TYP) | 0.275 |+| b signal lead width | 0.31 / - / 0.51 | 0.41 |+| e signal pitch | 1.27 | 1.27 |+| Current lead width (pins 1, 2) | 4.12 / - / 4.32 | 4.22 |+| Current lead centre offset | 2.44 / - / 2.64 | 2.54 |+| Gap between current leads | (0.86) | 0.86 |+| L foot at the 0.25 mm gauge plane | 0.40 / - / 1.27 | 0.854 |+| Lead length, body to tip | (1.4) | 1.40 |++Measured on the STEP by plane sections ([provenance/dims-model.json](provenance/dims-model.json), [provenance/dims-model-signal.json](provenance/dims-model-signal.json)). The proof: the model's top, front and end views blended over TI's drawing at the drawing's own scale (calibrated on the printed E and D spans).++++**The marking is virtual.** The etch reads `TMCS1123` / `B1AQDVGR`, the orderable part number, so the part is identifiable in a 3D board view. TI's real marking is `1123B1A` (p.40). The etch was made with adom-chip-laser (service-occt flat mark, 5 um above the top face), placed by the adom-aiflow-etch planner from the footprint; its gate passes.++++## Detail levels for board and digital-twin viewers++::adom-component-lod{src="/adom/tmcs1123b1aqdvgr/render/lod/manifest.json"}++| Level | File | Marking |+|---|---|---|+| high | [tmcs1123b1aqdvgr-high.glb](lod/tmcs1123b1aqdvgr-high.glb) | yes |+| medium | [tmcs1123b1aqdvgr-medium.glb](lod/tmcs1123b1aqdvgr-medium.glb) | yes |+| low | [tmcs1123b1aqdvgr-low.glb](lod/tmcs1123b1aqdvgr-low.glb) | no |+| super-low | [tmcs1123b1aqdvgr-super-low.glb](lod/tmcs1123b1aqdvgr-super-low.glb) | no |++All four share the library model's frame and carry no footprint, silkscreen or label artwork. High is the etched GLB; medium and low come from the same generator with each bend drawn as three straight segments (medium keeps the etch); super-low has an undrafted body and one-segment bends. Every level keeps all ten leads and the pin-1 dimple. Status: candidate; the previews were inspected, a streaming LOD viewer has not qualified them.++++## Symbol chip outline++The symbol body carries the chip outline drawn from the etched model by `adom-aiflow-etch outline` (gate PASS): [artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg](artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg).++++## Sourcing++Checked 2026-10-21 with adom-parts-search.++| Distributor | Part number | Stock | Price |+|---|---|---|---|+| Mouser | [595-TMCS1123B1AQDVGR](https://www.mouser.com/en/ProductDetail/Texas-Instruments/TMCS1123B1AQDVGR?qs=mELouGlnn3fnFoesX7xpgA%3D%3D) | 0 (lead time 140 days) | 4.92 USD (1), 3.65 USD (100) |+| DigiKey | [296-TMCS1123B1AQDVGRTR-ND](https://www.digikey.com/en/products/detail/texas-instruments/TMCS1123B1AQDVGR/22168027) | 0 | 4.55 USD (1) |+| LCSC / JLCPCB | not listed | - | no JLCPCB/LCSC hit for this part number |++Mouser listed 4,000 of the automotive TMCS1123B1AQDVGRQ1 (595-CS1123B1AQDVGRQ1) on the same date; that is a different orderable part with its own datasheet. TI also sells directly at [ti.com](https://www.ti.com/product/TMCS1123/part-details/TMCS1123B1AQDVGR).++Packaging: 2000 per 330 mm reel, 16 mm tape, 12 mm pitch, pocket 10.75 x 10.7 x 2.7 mm, pin 1 in quadrant Q1 (p.43). MSL 2 (p.40).++## Manufacturer and resources++| Resource | Link |+|---|---|+| Product page | [ti.com/product/TMCS1123](https://www.ti.com/product/TMCS1123) |+| Datasheet | SBOSA24D (July 2023, revised May 2026), [PDF on this page](docs/tmcs1123b1aqdvgr-datasheet.pdf), [ti.com](https://www.ti.com/lit/ds/symlink/tmcs1123.pdf) |+| Package drawings | DVG0010A outline, example board layout and stencil, 4226847/C (datasheet p.45 to p.47) |+| Evaluation module | TMCS1123xEVM and its user's guide (linked from the product page) |+| CAD from TI | [Ultra Librarian (TI embedded)](https://vendor.ultralibrarian.com/TI/embedded/?gpn=TMCS1123&package=DVG&pin=10): symbol, footprint and STEP after a sign-off form |+| Related documentation | TI Isolation Glossary application note (cited on p.37) |++## Related++- [adom/tmcs1123a2aqdvgr](https://wiki.adom.inc/adom/tmcs1123a2aqdvgr): the A2A option (50 mV/A, 2.5 V reference). Its CAD files (2026-10-21) are KiCad's narrow SOIC-10 3.9 x 4.9 mm, 1 mm pitch footprint and model, which do not match TI's DVG package; the footprint and model on this page fit every TMCS1123 option.++## Open items++- TI's own STEP was not compared (Ultra Librarian needs a browser sign-off).+- The Altium PcbLib has no keepout region: adom-lbr 2.47.6 does not carry the KiCad rule area. Draw a keepout region over x -4.05 to +4.05 mm in Altium or set it with a board rule.+- The libraries are checked by lint and read-back; they have not been opened in KiCad, Fusion or Altium.++## Provenance++- **Datasheet:** TI SBOSA24D (July 2023, revised May 2026), 48 pages, sha256 `66bab03ec907cb65`, downloaded from ti.com on 2026-10-21 ([docs/tmcs1123b1aqdvgr-datasheet.pdf](docs/tmcs1123b1aqdvgr-datasheet.pdf)). Every pin and spec above cites its page.+- **Footprint:** [provenance/footprint-check.json](provenance/footprint-check.json), pad by pad against p.46; made with adom-footprint 1.0.26 from [provenance/tools/footprint-create.json](provenance/tools/footprint-create.json), then [fp_finish.py](provenance/tools/fp_finish.py) set the R0.05 corners, the keepout, the F.Fab pin-1 chamfer and the model path.+- **3D model:** [provenance/3d-model.json](provenance/3d-model.json): source attempts, build parameters, measurements, overlay proof, etch gate, hashes. Tools in [provenance/tools/](provenance/tools/build_dvg10.py); the lead construction and the GLB tools come from adom/mcp2562fd-e-sn.+- **Hero:** built with adom/component-hero's `hero_glb.py` (adom-hero 1.4; alignment OK) and [hero_post_keepout.py](provenance/tools/hero_post_keepout.py) for the keepout layer; sidecar [tmcs1123b1aqdvgr-hero.overlay.json](tmcs1123b1aqdvgr-hero.overlay.json).+- **Symbol:** created from [provenance/tools/symbol-create.json](provenance/tools/symbol-create.json) by adom-symbol 1.2.6, then every pin moved onto the 2.54 mm grid by [snap_symbol.py](provenance/tools/snap_symbol.py) (the tool placed the first pin of each column at y = -2.00 mm).+- **Fusion keepout:** added by [lbr_keepout.py](provenance/tools/lbr_keepout.py), because adom-lbr does not carry the rule area.+- **Licence:** Adom-authored files are CC-BY-4.0, see [LICENSE](LICENSE). The datasheet and its page images are TI's and keep TI's terms.++Cited datasheet pages:+++++++++++++
altium/TMCS1123B1AQDVGR.PcbLibadded⋯ 1 unchanged line ⋯
altium/TMCS1123B1AQDVGR.SchLibadded⋯ 1 unchanged line ⋯
altium/TMCS1123B1AQDVGR.adom-lbr.jsonadded+3729@@ -0,0 +1,3729 @@+{+ "schema_version": 2,+ "mpn": "TMCS1123B1AQDVGR",+ "manufacturer": "Texas Instruments",+ "package": "",+ "value": "",+ "category": "",+ "symbol": {+ "name": "TMCS1123B1AQDVGR",+ "pins": [+ {+ "number": "1",+ "name": "IN+",+ "x": -800,+ "y": 650,+ "length": 100,+ "rotation": 0,+ "electrical_type": "passive"+ },+ {+ "number": "2",+ "name": "IN-",+ "x": -800,+ "y": 550,+ "length": 100,+ "rotation": 0,+ "electrical_type": "passive"+ },+ {+ "number": "8",+ "name": "VS",+ "x": 800,+ "y": 650,+ "length": 100,+ "rotation": 180,+ "electrical_type": "power_in"+ },+ {+ "number": "3",+ "name": "GND",+ "x": 800,+ "y": 550,+ "length": 100,+ "rotation": 180,+ "electrical_type": "power_in"+ },+ {+ "number": "6",+ "name": "VOUT",+ "x": 800,+ "y": 250,+ "length": 100,+ "rotation": 180,+ "electrical_type": "output"+ },+ {+ "number": "5",+ "name": "VREF",+ "x": 800,+ "y": 150,+ "length": 100,+ "rotation": 180,+ "electrical_type": "output"+ },+ {+ "number": "9",+ "name": "VOC",+ "x": 800,+ "y": -150,+ "length": 100,+ "rotation": 180,+ "electrical_type": "input"+ },+ {+ "number": "7",+ "name": "OC",+ "x": 800,+ "y": -250,+ "length": 100,+ "rotation": 180,+ "electrical_type": "open_collector"+ },+ {+ "number": "4",+ "name": "ALERT",+ "x": 800,+ "y": -350,+ "length": 100,+ "rotation": 180,+ "electrical_type": "open_collector"+ },+ {+ "number": "10",+ "name": "NC",+ "x": 800,+ "y": -750,+ "length": 100,+ "rotation": 180,+ "electrical_type": "no_connect"+ }+ ],+ "body": null,+ "graphics": [+ {+ "kind": "rect",+ "x1": -700.0000000000001,+ "y1": 850.0,+ "x2": 700.0000000000001,+ "y2": -850.0,+ "width": 10.0,+ "filled": true,+ "fill_style": "background"+ },+ {+ "kind": "polyline",+ "points": [+ [+ 2.598425196850394,+ -68.26771653543301+ ],+ [+ 108.38582677165356,+ -7.165354330708624+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 108.38582677165356,+ -7.165354330708624+ ],+ [+ 108.66141732283464,+ -5.787401574803198+ ],+ [+ 108.8976377952756,+ -4.448818897637807+ ],+ [+ 109.1732283464567,+ -3.0708661417322674+ ],+ [+ 109.44881889763779,+ -1.6929133858268415+ ],+ [+ 109.68503937007874,+ -0.3149606299213019+ ],+ [+ 109.96062992125985,+ 1.0629921259842376+ ],+ [+ 110.23622047244095,+ 2.401574803149515+ ],+ [+ 110.51181102362204,+ 3.7795275590550546+ ],+ [+ 110.748031496063,+ 5.157480314960594+ ],+ [+ 111.02362204724409,+ 6.535433070866134+ ],+ [+ 111.2992125984252,+ 7.9133858267715596+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 2.598425196850394,+ -54.881889763779554+ ],+ [+ 111.2992125984252,+ 7.9133858267715596+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 2.598425196850394,+ -68.26771653543301+ ],+ [+ 2.598425196850394,+ -67.04724409448818+ ],+ [+ 2.598425196850394,+ -65.82677165354335+ ],+ [+ 2.598425196850394,+ -64.6062992125984+ ],+ [+ 2.598425196850394,+ -63.38582677165357+ ],+ [+ 2.598425196850394,+ -62.16535433070874+ ],+ [+ 2.598425196850394,+ -60.94488188976379+ ],+ [+ 2.598425196850394,+ -59.72440944881896+ ],+ [+ 2.598425196850394,+ -58.50393700787413+ ],+ [+ 2.598425196850394,+ -57.28346456692918+ ],+ [+ 2.598425196850394,+ -56.1023622047245+ ],+ [+ 2.598425196850394,+ -54.881889763779554+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -85.07874015748033,+ -17.67716535433067+ ],+ [+ -75.98425196850394,+ -22.913385826771787+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -11.417322834645669,+ -60.157480314960594+ ],+ [+ 2.598425196850394,+ -68.26771653543301+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 111.2992125984252,+ 7.9133858267715596+ ],+ [+ 111.10236220472441,+ 9.015748031495946+ ],+ [+ 110.90551181102363,+ 10.118110236220446+ ],+ [+ 110.70866141732283,+ 11.220472440944832+ ],+ [+ 110.51181102362204,+ 12.322834645669332+ ],+ [+ 110.27559055118111,+ 13.425196850393718+ ],+ [+ 110.11811023622049,+ 14.52755905511799+ ],+ [+ 109.92125984251969,+ 15.62992125984249+ ],+ [+ 109.68503937007874,+ 16.732283464566876+ ],+ [+ 109.48818897637797,+ 17.834645669291262+ ],+ [+ 109.29133858267716,+ 18.937007874015762+ ],+ [+ 109.13385826771653,+ 20.03937007874015+ ],+ [+ 108.8976377952756,+ 21.14173228346442+ ],+ [+ 108.70078740157481,+ 22.24409448818892+ ],+ [+ 108.50393700787401,+ 23.346456692913307+ ],+ [+ 108.30708661417323,+ 24.448818897637807+ ],+ [+ 108.11023622047244,+ 25.551181102362193+ ],+ [+ 107.91338582677166,+ 26.65354330708658+ ],+ [+ 107.71653543307087,+ 27.75590551181108+ ],+ [+ 107.51968503937007,+ 28.85826771653535+ ],+ [+ 107.32283464566929,+ 29.960629921259738+ ],+ [+ 107.12598425196852,+ 31.062992125984238+ ],+ [+ 106.92913385826773,+ 32.165354330708624+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 2.598425196850394,+ -28.110236220472416+ ],+ [+ 106.92913385826773,+ 32.165354330708624+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 2.598425196850394,+ -54.881889763779554+ ],+ [+ 2.598425196850394,+ -53.66141732283472+ ],+ [+ 2.598425196850394,+ -52.44094488188989+ ],+ [+ 2.598425196850394,+ -51.22047244094483+ ],+ [+ 2.598425196850394,+ -50.0+ ],+ [+ 2.598425196850394,+ -48.77952755905517+ ],+ [+ 2.598425196850394,+ -47.55905511811022+ ],+ [+ 2.598425196850394,+ -46.33858267716539+ ],+ [+ 2.598425196850394,+ -45.11811023622056+ ],+ [+ 2.598425196850394,+ -43.897637795275614+ ],+ [+ 2.598425196850394,+ -42.67716535433078+ ],+ [+ 2.598425196850394,+ -41.45669291338595+ ],+ [+ 2.598425196850394,+ -40.27559055118115+ ],+ [+ 2.598425196850394,+ -39.05511811023632+ ],+ [+ 2.598425196850394,+ -37.834645669291376+ ],+ [+ 2.598425196850394,+ -36.614173228346544+ ],+ [+ 2.598425196850394,+ -35.39370078740171+ ],+ [+ 2.598425196850394,+ -34.17322834645665+ ],+ [+ 2.598425196850394,+ -32.95275590551182+ ],+ [+ 2.598425196850394,+ -31.73228346456699+ ],+ [+ 2.598425196850394,+ -30.511811023622045+ ],+ [+ 2.598425196850394,+ -29.291338582677213+ ],+ [+ 2.598425196850394,+ -28.110236220472416+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -146.73228346456693,+ 31.338582677165277+ ],+ [+ -141.45669291338584,+ 28.307086614173272+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -78.30708661417323,+ -8.188976377952713+ ],+ [+ -67.83464566929135,+ -14.212598425196916+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -4.68503937007874,+ -50.66929133858275+ ],+ [+ 2.598425196850394,+ -54.881889763779554+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -145.62992125984252,+ 25.748031496062936+ ],+ [+ -145.90551181102362,+ 27.007874015747916+ ],+ [+ -146.1417322834646,+ 28.26771653543301+ ],+ [+ -146.3779527559055,+ 29.566929133858252+ ],+ [+ -146.61417322834646,+ 30.826771653543346+ ],+ [+ -146.73228346456693,+ 31.338582677165277+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 106.92913385826773,+ 32.165354330708624+ ],+ [+ -38.031496062992126,+ 115.8661417322835+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -142.36220472440945,+ 55.59055118110223+ ],+ [+ 2.598425196850394,+ -28.110236220472416+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -38.031496062992126,+ 115.8661417322835+ ],+ [+ -142.36220472440945,+ 55.59055118110223+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -106.85039370078741,+ 59.370078740157396+ ],+ [+ -105.82677165354332,+ 58.62204724409446+ ],+ [+ -105.0,+ 57.795275590551114+ ],+ [+ -104.37007874015748,+ 56.732283464566876+ ],+ [+ -104.1732283464567,+ 55.59055118110223+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -104.1732283464567,+ 55.59055118110223+ ],+ [+ -104.5275590551181,+ 54.09448818897647+ ],+ [+ -105.62992125984252,+ 52.71653543307093+ ],+ [+ -107.32283464566929,+ 51.57480314960628+ ],+ [+ -108.38582677165356,+ 51.102362204724386+ ],+ [+ -109.56692913385827,+ 50.74803149606305+ ],+ [+ -110.78740157480316,+ 50.47244094488178+ ],+ [+ -112.08661417322836,+ 50.3149606299213+ ],+ [+ -113.38582677165354,+ 50.27559055118104+ ],+ [+ -114.68503937007874,+ 50.3149606299213+ ],+ [+ -115.98425196850395,+ 50.47244094488178+ ],+ [+ -117.20472440944881,+ 50.74803149606305+ ],+ [+ -118.38582677165356,+ 51.102362204724386+ ],+ [+ -119.40944881889764,+ 51.57480314960628+ ],+ [+ -121.14173228346456,+ 52.71653543307093+ ],+ [+ -122.24409448818898,+ 54.09448818897647+ ],+ [+ -122.5984251968504,+ 55.59055118110223+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -122.5984251968504,+ 55.59055118110223+ ],+ [+ -122.40157480314961,+ 56.732283464566876+ ],+ [+ -121.7716535433071,+ 57.795275590551114+ ],+ [+ -120.748031496063,+ 58.77952755905517+ ],+ [+ -119.40944881889764,+ 59.60629921259829+ ],+ [+ -117.79527559055119,+ 60.27559055118115+ ],+ [+ -115.98425196850395,+ 60.70866141732279+ ],+ [+ -114.05511811023622,+ 60.90551181102364+ ],+ [+ -112.08661417322836,+ 60.86614173228338+ ],+ [+ -110.15748031496064,+ 60.59055118110234+ ],+ [+ -108.38582677165356,+ 60.0787401574803+ ],+ [+ -106.85039370078741,+ 59.370078740157396+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -146.73228346456693,+ 31.338582677165277+ ],+ [+ -146.53543307086613,+ 32.44094488188978+ ],+ [+ -146.33858267716536,+ 33.54330708661416+ ],+ [+ -146.1417322834646,+ 34.645669291338436+ ],+ [+ -145.9448818897638,+ 35.748031496062936+ ],+ [+ -145.70866141732284,+ 36.85039370078732+ ],+ [+ -145.55118110236222,+ 37.95275590551182+ ],+ [+ -145.35433070866142,+ 39.05511811023621+ ],+ [+ -145.11811023622047,+ 40.157480314960594+ ],+ [+ -144.9212598425197,+ 41.259842519685094+ ],+ [+ -144.7244094488189,+ 42.36220472440937+ ],+ [+ -144.56692913385828,+ 43.46456692913375+ ],+ [+ -144.33070866141733,+ 44.56692913385825+ ],+ [+ -144.13385826771653,+ 45.66929133858264+ ],+ [+ -143.93700787401576,+ 46.77165354330714+ ],+ [+ -143.74015748031496,+ 47.874015748031525+ ],+ [+ -143.54330708661416,+ 48.9763779527558+ ],+ [+ -143.3464566929134,+ 50.0787401574803+ ],+ [+ -143.14960629921262,+ 51.18110236220468+ ],+ [+ -142.95275590551182,+ 52.28346456692907+ ],+ [+ -142.75590551181102,+ 53.38582677165357+ ],+ [+ -142.55905511811025,+ 54.488188976377955+ ],+ [+ -142.36220472440945,+ 55.59055118110223+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -106.85039370078741,+ 58.54330708661416+ ],+ [+ -108.34645669291338,+ 59.2125984251968+ ],+ [+ -110.03937007874016,+ 59.72440944881885+ ],+ [+ -111.85039370078741,+ 60.0+ ],+ [+ -113.77952755905513,+ 60.0787401574803+ ],+ [+ -115.6692913385827,+ 59.9212598425197+ ],+ [+ -117.44094488188978,+ 59.527559055118104+ ],+ [+ -119.05511811023622,+ 58.97637795275591+ ],+ [+ -120.43307086614175,+ 58.18897637795271+ ],+ [+ -121.49606299212599,+ 57.28346456692918+ ],+ [+ -122.24409448818898,+ 56.259842519685094+ ],+ [+ -122.55905511811024,+ 55.157480314960594+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -104.1732283464567,+ 55.157480314960594+ ],+ [+ -104.56692913385828,+ 56.33858267716539+ ],+ [+ -105.27559055118111,+ 57.28346456692918+ ],+ [+ -106.25984251968504,+ 58.149606299212564+ ],+ [+ -106.85039370078741,+ 58.54330708661416+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -78.11023622047244,+ -5.748031496063049+ ],+ [+ -83.38582677165354,+ -8.818897637795317+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -78.11023622047244,+ -5.748031496063049+ ],+ [+ -80.86614173228347,+ -4.133858267716619+ ],+ [+ -83.66141732283465,+ -2.559055118110223+ ],+ [+ -86.45669291338584,+ -0.9448818897639057+ ],+ [+ -89.21259842519686,+ 0.6692913385826387+ ],+ [+ -92.00787401574804,+ 2.2834645669290694+ ],+ [+ -94.76377952755907,+ 3.8976377952755+ ],+ [+ -97.55905511811025,+ 5.472440944881782+ ],+ [+ -100.35433070866142,+ 7.086614173228327+ ],+ [+ -103.11023622047246,+ 8.700787401574757+ ],+ [+ -105.90551181102363,+ 10.314960629921188+ ],+ [+ -108.70078740157481,+ 11.88976377952747+ ],+ [+ -111.45669291338584,+ 13.503937007873901+ ],+ [+ -114.25196850393702,+ 15.118110236220446+ ],+ [+ -117.00787401574803,+ 16.732283464566876+ ],+ [+ -119.80314960629923,+ 18.34645669291342+ ],+ [+ -122.5984251968504,+ 19.92125984251959+ ],+ [+ -125.35433070866142,+ 21.535433070866134+ ],+ [+ -128.1496062992126,+ 23.149606299212564+ ],+ [+ -130.90551181102364,+ 24.763779527558995+ ],+ [+ -133.70078740157481,+ 26.338582677165277+ ],+ [+ -136.49606299212599,+ 27.95275590551182+ ],+ [+ -139.251968503937,+ 29.566929133858252+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -139.251968503937,+ 29.566929133858252+ ],+ [+ -144.56692913385828,+ 26.496062992125985+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -78.0708661417323,+ -10.35433070866145+ ],+ [+ -83.38582677165354,+ -13.425196850393718+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -78.0708661417323,+ -10.35433070866145+ ],+ [+ -78.18897637795276,+ -9.251968503937064+ ],+ [+ -78.30708661417323,+ -8.188976377952713+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -78.30708661417323,+ -8.188976377952713+ ],+ [+ -78.22834645669292,+ -7.0866141732284404+ ],+ [+ -78.11023622047244,+ -5.984251968504054+ ],+ [+ -78.11023622047244,+ -5.748031496063049+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -83.38582677165354,+ -8.818897637795317+ ],+ [+ -84.44881889763779,+ -9.527559055118218+ ],+ [+ -85.47244094488188,+ -10.472440944881896+ ],+ [+ -86.41732283464566,+ -11.574803149606396+ ],+ [+ -87.24409448818899,+ -12.834645669291376+ ],+ [+ -87.91338582677166,+ -14.173228346456767+ ],+ [+ -88.4251968503937,+ -15.551181102362193+ ],+ [+ -88.74015748031496,+ -16.889763779527584+ ],+ [+ -88.77952755905511,+ -17.322834645669218+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -88.77952755905511,+ -17.322834645669218+ ],+ [+ -89.92125984251967,+ -27.244094488189035+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -89.92125984251967,+ -27.244094488189035+ ],+ [+ -90.27559055118111,+ -28.30708661417316+ ],+ [+ -90.98425196850394,+ -29.251968503937064+ ],+ [+ -91.33858267716535,+ -29.527559055118218+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -91.33858267716535,+ -29.527559055118218+ ],+ [+ -98.58267716535434,+ -33.70078740157476+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -98.58267716535434,+ -38.30708661417327+ ],+ [+ -98.58267716535434,+ -33.70078740157476+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -91.33858267716535,+ -34.13385826771662+ ],+ [+ -98.58267716535434,+ -38.30708661417327+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -85.98425196850394,+ -25.59055118110234+ ],+ [+ -86.22047244094489,+ -26.929133858267846+ ],+ [+ -86.65354330708662,+ -28.30708661417316+ ],+ [+ -87.28346456692914,+ -29.645669291338663+ ],+ [+ -88.0708661417323,+ -30.944881889763792+ ],+ [+ -88.9763779527559,+ -32.08661417322833+ ],+ [+ -89.96062992125985,+ -33.110236220472416+ ],+ [+ -90.98425196850394,+ -33.89763779527573+ ],+ [+ -91.33858267716535,+ -34.13385826771662+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -84.84251968503936,+ -15.669291338582752+ ],+ [+ -85.98425196850394,+ -25.59055118110234+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -83.38582677165354,+ -13.425196850393718+ ],+ [+ -84.21259842519684,+ -14.173228346456767+ ],+ [+ -84.7244094488189,+ -15.196850393700856+ ],+ [+ -84.84251968503936,+ -15.669291338582752+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -144.56692913385828,+ 26.496062992125985+ ],+ [+ -145.62992125984252,+ 25.787401574803084+ ],+ [+ -146.65354330708664,+ 24.842519685039292+ ],+ [+ -147.5984251968504,+ 23.74015748031502+ ],+ [+ -148.38582677165354,+ 22.480314960629926+ ],+ [+ -149.09448818897638,+ 21.14173228346442+ ],+ [+ -149.56692913385828,+ 19.76377952755911+ ],+ [+ -149.88188976377953,+ 18.425196850393604+ ],+ [+ -149.96062992125985,+ 17.99212598425197+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -159.76377952755905,+ 1.6141732283464307+ ],+ [+ -159.76377952755905,+ -2.992125984252084+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -152.5196850393701,+ 5.787401574803198+ ],+ [+ -159.76377952755905,+ 1.6141732283464307+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -151.10236220472441,+ 8.070866141732267+ ],+ [+ -151.4173228346457,+ 7.00787401574803+ ],+ [+ -152.1259842519685,+ 6.062992125984238+ ],+ [+ -152.5196850393701,+ 5.787401574803198+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -149.96062992125985,+ 17.99212598425197+ ],+ [+ -151.10236220472441,+ 8.070866141732267+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -159.76377952755905,+ -2.992125984252084+ ],+ [+ -98.58267716535434,+ -38.30708661417327+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -98.58267716535434,+ -33.70078740157476+ ],+ [+ -159.76377952755905,+ 1.6141732283464307+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -4.448818897637795,+ -48.267716535433124+ ],+ [+ -9.763779527559056,+ -51.33858267716539+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -4.448818897637795,+ -48.267716535433124+ ],+ [+ -7.244094488188977,+ -46.65354330708658+ ],+ [+ -10.039370078740157,+ -45.03937007874015+ ],+ [+ -12.795275590551181,+ -43.464566929133866+ ],+ [+ -15.590551181102363,+ -41.850393700787436+ ],+ [+ -18.385826771653544,+ -40.23622047244089+ ],+ [+ -21.14173228346457,+ -38.62204724409446+ ],+ [+ -23.937007874015748,+ -37.00787401574803+ ],+ [+ -26.692913385826774,+ -35.43307086614175+ ],+ [+ -29.488188976377955,+ -33.81889763779532+ ],+ [+ -32.28346456692913,+ -32.20472440944877+ ],+ [+ -35.03937007874016,+ -30.590551181102455+ ],+ [+ -37.83464566929134,+ -29.01574803149606+ ],+ [+ -40.629921259842526,+ -27.40157480314963+ ],+ [+ -43.38582677165355,+ -25.787401574803084+ ],+ [+ -46.181102362204726,+ -24.173228346456767+ ],+ [+ -48.937007874015755,+ -22.559055118110336+ ],+ [+ -51.73228346456693,+ -20.98425196850394+ ],+ [+ -54.52755905511811,+ -19.370078740157624+ ],+ [+ -57.28346456692914,+ -17.75590551181108+ ],+ [+ -60.07874015748032,+ -16.14173228346465+ ],+ [+ -62.83464566929135,+ -14.566929133858366+ ],+ [+ -65.62992125984252,+ -12.952755905511935+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -65.62992125984252,+ -12.952755905511935+ ],+ [+ -70.94488188976378,+ -16.023622047244203+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -4.448818897637795,+ -52.874015748031525+ ],+ [+ -9.763779527559056,+ -55.94488188976379+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -4.448818897637795,+ -52.874015748031525+ ],+ [+ -4.5669291338582685,+ -51.771653543307025+ ],+ [+ -4.68503937007874,+ -50.66929133858275+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -4.68503937007874,+ -50.66929133858275+ ],+ [+ -4.5669291338582685,+ -49.527559055118104+ ],+ [+ -4.488188976377953,+ -48.38582677165357+ ],+ [+ -4.448818897637795,+ -48.267716535433124+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -9.763779527559056,+ -51.33858267716539+ ],+ [+ -10.82677165354331,+ -52.04724409448818+ ],+ [+ -11.850393700787402,+ -52.992125984252084+ ],+ [+ -12.795275590551181,+ -54.09448818897636+ ],+ [+ -13.58267716535433,+ -55.35433070866145+ ],+ [+ -14.291338582677165,+ -56.69291338582673+ ],+ [+ -14.763779527559056,+ -58.07086614173227+ ],+ [+ -15.078740157480317,+ -59.40944881889766+ ],+ [+ -15.157480314960631,+ -59.842519685039406+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -15.157480314960631,+ -59.842519685039406+ ],+ [+ -16.299212598425196,+ -69.76377952755911+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -16.299212598425196,+ -69.76377952755911+ ],+ [+ -16.614173228346456,+ -70.82677165354335+ ],+ [+ -17.322834645669293,+ -71.73228346456699+ ],+ [+ -17.716535433070867,+ -72.00787401574814+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -17.716535433070867,+ -72.00787401574814+ ],+ [+ -24.960629921259844,+ -76.22047244094495+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -24.960629921259844,+ -80.82677165354335+ ],+ [+ -24.960629921259844,+ -76.22047244094495+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -17.716535433070867,+ -76.61417322834643+ ],+ [+ -24.960629921259844,+ -80.82677165354335+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -12.322834645669293,+ -68.11023622047253+ ],+ [+ -12.559055118110237,+ -69.4488188976378+ ],+ [+ -13.031496062992128,+ -70.82677165354335+ ],+ [+ -13.661417322834644,+ -72.16535433070862+ ],+ [+ -14.409448818897639,+ -73.46456692913387+ ],+ [+ -15.314960629921261,+ -74.60629921259851+ ],+ [+ -16.299212598425196,+ -75.59055118110234+ ],+ [+ -17.362204724409448,+ -76.41732283464569+ ],+ [+ -17.716535433070867,+ -76.61417322834643+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -11.220472440944881,+ -58.18897637795271+ ],+ [+ -12.322834645669293,+ -68.11023622047253+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -9.763779527559056,+ -55.94488188976379+ ],+ [+ -10.62992125984252,+ -56.77165354330714+ ],+ [+ -11.141732283464567,+ -57.83464566929126+ ],+ [+ -11.220472440944881,+ -58.18897637795271+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -70.94488188976378,+ -16.023622047244203+ ],+ [+ -72.00787401574803,+ -16.73228346456699+ ],+ [+ -72.99212598425197,+ -17.67716535433067+ ],+ [+ -73.93700787401575,+ -18.77952755905517+ ],+ [+ -74.76377952755905,+ -20.039370078740262+ ],+ [+ -75.43307086614173,+ -21.37795275590554+ ],+ [+ -75.94488188976378,+ -22.716535433070817+ ],+ [+ -76.25984251968505,+ -24.094488188976356+ ],+ [+ -76.33858267716536,+ -24.527559055118104+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -86.14173228346458,+ -40.90551181102364+ ],+ [+ -86.14173228346458,+ -45.472440944881896+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -78.8976377952756,+ -36.73228346456699+ ],+ [+ -86.14173228346458,+ -40.90551181102364+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -77.44094488188978,+ -34.44881889763781+ ],+ [+ -77.79527559055119,+ -35.51181102362216+ ],+ [+ -78.50393700787401,+ -36.4173228346458+ ],+ [+ -78.8976377952756,+ -36.73228346456699+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -76.33858267716536,+ -24.527559055118104+ ],+ [+ -77.44094488188978,+ -34.44881889763781+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -86.14173228346458,+ -45.472440944881896+ ],+ [+ -24.960629921259844,+ -80.82677165354335+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -24.960629921259844,+ -76.22047244094495+ ],+ [+ -86.14173228346458,+ -40.90551181102364+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 110.4724409448819,+ 12.480314960629926+ ],+ [+ 110.55118110236221,+ 12.125984251968475+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 110.55118110236221,+ 12.125984251968475+ ],+ [+ 110.70866141732283,+ 11.220472440944832+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 111.18110236220473,+ 7.401574803149629+ ],+ [+ 111.69291338582678,+ 3.503937007874015+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 111.69291338582678,+ 3.503937007874015+ ],+ [+ 111.96850393700787,+ 2.401574803149515+ ],+ [+ 112.51968503937009,+ 1.417322834645688+ ],+ [+ 113.22834645669292,+ 0.8267716535432328+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 113.22834645669292,+ 0.8267716535432328+ ],+ [+ 114.29133858267717,+ 0.47244094488189603+ ],+ [+ 115.55118110236221,+ 0.5905511811023416+ ],+ [+ 116.69291338582677,+ 0.9842519685039406+ ],+ [+ 117.08661417322836,+ 1.2204724409449454+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 117.08661417322836,+ 1.2204724409449454+ ],+ [+ 124.33070866141732,+ 5.393700787401485+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 124.33070866141732,+ 10.0+ ],+ [+ 124.33070866141732,+ 5.393700787401485+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 117.08661417322836,+ 5.787401574803198+ ],+ [+ 124.33070866141732,+ 10.0+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 115.6692913385827,+ 6.417322834645574+ ],+ [+ 116.06299212598425,+ 5.708661417322787+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 116.06299212598425,+ 5.708661417322787+ ],+ [+ 117.08661417322836,+ 5.787401574803198+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 114.5275590551181,+ 15.039370078740149+ ],+ [+ 115.6692913385827,+ 6.417322834645574+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 109.56692913385827,+ 17.559055118110223+ ],+ [+ 110.59055118110237,+ 17.913385826771673+ ],+ [+ 111.73228346456693,+ 18.070866141732267+ ],+ [+ 112.8740157480315,+ 17.755905511810965+ ],+ [+ 112.99212598425197,+ 17.716535433070817+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 112.99212598425197,+ 17.716535433070817+ ],+ [+ 113.85826771653544,+ 16.889763779527584+ ],+ [+ 114.37007874015748,+ 15.826771653543233+ ],+ [+ 114.5275590551181,+ 15.039370078740149+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 115.0,+ 11.456692913385837+ ],+ [+ 118.38582677165356,+ 13.425196850393718+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 118.38582677165356,+ 13.425196850393718+ ],+ [+ 124.33070866141732,+ 10.0+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 109.13385826771653,+ 19.92125984251959+ ],+ [+ 112.99212598425197,+ 17.716535433070817+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 113.22834645669292,+ 0.8267716535432328+ ],+ [+ 110.27559055118111,+ 2.5196850393700743+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -83.38582677165354,+ -8.818897637795317+ ],+ [+ -144.56692913385828,+ 26.496062992125985+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -88.77952755905511,+ -17.322834645669218+ ],+ [+ -149.96062992125985,+ 17.99212598425197+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -91.33858267716535,+ -29.527559055118218+ ],+ [+ -152.5196850393701,+ 5.787401574803198+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -89.92125984251967,+ -27.244094488189035+ ],+ [+ -151.10236220472441,+ 8.070866141732267+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -9.763779527559056,+ -51.33858267716539+ ],+ [+ -70.94488188976378,+ -16.023622047244203+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -15.157480314960631,+ -59.842519685039406+ ],+ [+ -76.33858267716536,+ -24.527559055118104+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -17.716535433070867,+ -72.00787401574814+ ],+ [+ -78.8976377952756,+ -36.73228346456699+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -16.299212598425196,+ -69.76377952755911+ ],+ [+ -77.44094488188978,+ -34.44881889763781+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 110.55118110236221,+ 12.125984251968475+ ],+ [+ 110.51181102362204,+ 12.125984251968475+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 115.62992125984252,+ 6.653543307086579+ ],+ [+ 117.08661417322836,+ 5.787401574803198+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 111.69291338582678,+ 3.503937007874015+ ],+ [+ 110.55118110236221,+ 4.133858267716505+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -31.968503937007878,+ 68.38582677165357+ ],+ [+ -43.267716535433074,+ 61.850393700787436+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -35.70866141732284,+ 70.5511811023622+ ],+ [+ -28.188976377952756,+ 66.18110236220468+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -25.511811023622048,+ 64.64566929133855+ ],+ [+ -36.811023622047244,+ 58.1102362204723+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -25.511811023622048,+ 64.64566929133855+ ],+ [+ -32.51968503937008,+ 55.66929133858264+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -16.92913385826772,+ 59.6850393700787+ ],+ [+ -32.51968503937008,+ 55.66929133858264+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -16.92913385826772,+ 59.6850393700787+ ],+ [+ -28.188976377952756,+ 53.149606299212564+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -7.7952755905511815,+ 51.29921259842513+ ],+ [+ -7.244094488188977,+ 53.464566929133866+ ],+ [+ -9.921259842519685,+ 55.66929133858264+ ],+ [+ -11.53543307086614,+ 55.94488188976368+ ],+ [+ -13.700787401574802,+ 55.94488188976368+ ],+ [+ -15.314960629921261,+ 55.66929133858264+ ],+ [+ -17.480314960629922,+ 55.039370078740035+ ],+ [+ -20.15748031496063,+ 53.464566929133866+ ],+ [+ -21.220472440944885,+ 52.244094488189035+ ],+ [+ -21.77165354330709,+ 50.03937007874015+ ],+ [+ -19.055118110236222,+ 47.874015748031525+ ],+ [+ -17.480314960629922,+ 47.59842519685037+ ],+ [+ -15.314960629921261,+ 47.59842519685037+ ],+ [+ -13.700787401574802,+ 47.874015748031525+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 4.015748031496063,+ 45.70866141732279+ ],+ [+ 4.015748031496063,+ 46.96850393700788+ ],+ [+ 2.952755905511811,+ 48.18897637795271+ ],+ [+ 0.7874015748031497,+ 49.44881889763769+ ],+ [+ -1.3385826771653544,+ 50.03937007874015+ ],+ [+ -3.5039370078740157,+ 50.03937007874015+ ],+ [+ -4.5669291338582685,+ 49.44881889763769+ ],+ [+ -5.118110236220473,+ 47.874015748031525+ ],+ [+ -2.4015748031496065,+ 44.48818897637784+ ],+ [+ -1.8897637795275593,+ 42.91338582677156+ ],+ [+ -4.015748031496063,+ 41.062992125984124+ ],+ [+ -6.181102362204725,+ 41.062992125984124+ ],+ [+ -8.346456692913385,+ 41.69291338582673+ ],+ [+ -10.47244094488189,+ 42.91338582677156+ ],+ [+ -11.53543307086614,+ 44.17322834645665+ ],+ [+ -11.53543307086614,+ 45.3937007874016+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 8.346456692913385,+ 42.63779527559052+ ],+ [+ 9.921259842519685,+ 42.32283464566922+ ],+ [+ 13.1496062992126,+ 42.32283464566922+ ],+ [+ 1.8897637795275593,+ 35.7874015748032+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 19.094488188976378,+ 36.41732283464569+ ],+ [+ 20.708661417322837,+ 36.102362204724386+ ],+ [+ 23.937007874015748,+ 36.102362204724386+ ],+ [+ 12.637795275590552,+ 29.606299212598515+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 28.188976377952756,+ 30.511811023622045+ ],+ [+ 30.35433070866142,+ 31.141732283464535+ ],+ [+ 33.031496062992126,+ 30.826771653543346+ ],+ [+ 35.19685039370079,+ 29.606299212598515+ ],+ [+ 35.74803149606299,+ 28.031496062992005+ ],+ [+ 34.13385826771653,+ 26.496062992125985+ ],+ [+ 32.51968503937008,+ 26.181102362204683+ ],+ [+ 29.84251968503937,+ 25.86614173228338+ ],+ [+ 19.094488188976378,+ 25.86614173228338+ ],+ [+ 26.61417322834646,+ 21.535433070866134+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 42.20472440944882,+ 25.551181102362193+ ],+ [+ 48.110236220472444,+ 22.165354330708738+ ],+ [+ 40.55118110236221,+ 21.535433070866134+ ],+ [+ 42.20472440944882,+ 20.59055118110234+ ],+ [+ 42.71653543307087,+ 19.055118110236208+ ],+ [+ 41.653543307086615,+ 17.795275590551228+ ],+ [+ 40.55118110236221,+ 17.165354330708624+ ],+ [+ 38.425196850393704,+ 16.57480314960617+ ],+ [+ 36.259842519685044,+ 16.57480314960617+ ],+ [+ 34.13385826771653,+ 17.165354330708624+ ],+ [+ 32.51968503937008,+ 18.110236220472416+ ],+ [+ 31.417322834645674,+ 19.37007874015751+ ],+ [+ 31.968503937007878,+ 20.905511811023644+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -51.2992125984252,+ 60.0+ ],+ [+ -62.5984251968504,+ 53.464566929133866+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -51.2992125984252,+ 60.0+ ],+ [+ -46.45669291338583,+ 57.20472440944877+ ],+ [+ -45.39370078740158,+ 55.94488188976368+ ],+ [+ -45.944881889763785,+ 54.40944881889766+ ],+ [+ -47.00787401574803,+ 53.779527559055055+ ],+ [+ -48.622047244094496,+ 53.464566929133866+ ],+ [+ -51.8503937007874,+ 54.09448818897647+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -56.69291338582677,+ 56.88976377952747+ ],+ [+ -51.8503937007874,+ 54.09448818897647+ ],+ [+ -50.787401574803155,+ 52.834645669291376+ ],+ [+ -51.2992125984252,+ 51.29921259842513+ ],+ [+ -52.91338582677166,+ 50.3937007874016+ ],+ [+ -54.52755905511811,+ 50.03937007874015+ ],+ [+ -55.629921259842526,+ 50.03937007874015+ ],+ [+ -57.75590551181103,+ 50.70866141732279+ ],+ [+ -62.5984251968504,+ 53.464566929133866+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -41.102362204724415,+ 51.61417322834643+ ],+ [+ -39.48818897637795,+ 51.29921259842513+ ],+ [+ -36.259842519685044,+ 51.29921259842513+ ],+ [+ -47.55905511811024,+ 44.80314960629926+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -26.61417322834646,+ 45.70866141732279+ ],+ [+ -42.16535433070866,+ 41.69291338582673+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -26.61417322834646,+ 45.70866141732279+ ],+ [+ -33.58267716535433,+ 36.732283464566876+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -36.811023622047244,+ 42.91338582677156+ ],+ [+ -31.417322834645674,+ 39.84251968503929+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -16.92913385826772,+ 40.118110236220446+ ],+ [+ -18.543307086614174,+ 40.43307086614175+ ],+ [+ -20.669291338582678,+ 40.43307086614175+ ],+ [+ -22.283464566929133,+ 40.118110236220446+ ],+ [+ -24.448818897637796,+ 39.527559055118104+ ],+ [+ -27.125984251968504,+ 37.95275590551182+ ],+ [+ -28.188976377952756,+ 36.732283464566876+ ],+ [+ -28.740157480314963,+ 34.56692913385825+ ],+ [+ -26.062992125984255,+ 32.36220472440937+ ],+ [+ -24.448818897637796,+ 32.08661417322833+ ],+ [+ -22.283464566929133,+ 32.08661417322833+ ],+ [+ -20.669291338582678,+ 32.36220472440937+ ],+ [+ -18.543307086614174,+ 32.99212598425197+ ],+ [+ -15.866141732283467,+ 34.56692913385825+ ],+ [+ -14.763779527559056,+ 35.7874015748032+ ],+ [+ -14.21259842519685,+ 37.95275590551182+ ],+ [+ -16.92913385826772,+ 40.118110236220446+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -24.448818897637796,+ 33.93700787401576+ ],+ [+ -24.448818897637796,+ 30.196850393700743+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -7.7952755905511815,+ 34.88188976377944+ ],+ [+ -19.055118110236222,+ 28.34645669291342+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ -7.7952755905511815,+ 34.88188976377944+ ],+ [+ -4.015748031496063,+ 32.67716535433067+ ],+ [+ -2.952755905511811,+ 31.456692913385723+ ],+ [+ -2.952755905511811,+ 30.196850393700743+ ],+ [+ -4.5669291338582685,+ 28.031496062992005+ ],+ [+ -7.244094488188977,+ 26.496062992125985+ ],+ [+ -9.409448818897637,+ 25.86614173228338+ ],+ [+ -11.023622047244096,+ 25.551181102362193+ ],+ [+ -13.1496062992126,+ 25.551181102362193+ ],+ [+ -15.314960629921261,+ 26.181102362204683+ ],+ [+ -19.055118110236222,+ 28.34645669291342+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 1.8897637795275593,+ 29.2913385826771+ ],+ [+ -5.118110236220473,+ 20.27559055118104+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 10.47244094488189,+ 24.33070866141736+ ],+ [+ -5.118110236220473,+ 20.27559055118104+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 17.99212598425197,+ 16.889763779527584+ ],+ [+ 18.543307086614174,+ 19.055118110236208+ ],+ [+ 15.866141732283467,+ 21.22047244094483+ ],+ [+ 14.251968503937007,+ 21.535433070866134+ ],+ [+ 12.086614173228346,+ 21.535433070866134+ ],+ [+ 10.47244094488189,+ 21.22047244094483+ ],+ [+ 8.346456692913385,+ 20.59055118110234+ ],+ [+ 5.6299212598425195,+ 19.055118110236208+ ],+ [+ 4.5669291338582685,+ 17.795275590551228+ ],+ [+ 4.015748031496063,+ 15.62992125984249+ ],+ [+ 6.73228346456693,+ 13.464566929133866+ ],+ [+ 8.346456692913385,+ 13.149606299212564+ ],+ [+ 10.47244094488189,+ 13.149606299212564+ ],+ [+ 12.086614173228346,+ 13.464566929133866+ ],+ [+ 13.700787401574802,+ 14.409448818897545+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 11.023622047244096,+ 15.944881889763792+ ],+ [+ 13.700787401574802,+ 14.409448818897545+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 24.448818897637796,+ 16.25984251968498+ ],+ [+ 13.1496062992126,+ 9.724409448818847+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 24.448818897637796,+ 16.25984251968498+ ],+ [+ 29.291338582677167,+ 13.464566929133866+ ],+ [+ 30.35433070866142,+ 12.204724409448886+ ],+ [+ 29.84251968503937,+ 10.669291338582639+ ],+ [+ 28.740157480314963,+ 10.039370078740035+ ],+ [+ 27.125984251968504,+ 9.724409448818847+ ],+ [+ 23.937007874015748,+ 10.35433070866145+ ],+ [+ 19.094488188976378,+ 13.149606299212564+ ]+ ],+ "width": 0.9842519685039371+ },+ {+ "kind": "polyline",+ "points": [+ [+ 22.834645669291337,+ 10.984251968503827+ ],+ [+ 20.708661417322837,+ 5.393700787401485+ ]+ ],+ "width": 0.9842519685039371+ }+ ],+ "designator_prefix": "U",+ "footprint": "tmcs1123b1aqdvgr",+ "parameters": [+ {+ "name": "Value",+ "value": "TMCS1123B1AQDVGR",+ "visible": true+ },+ {+ "name": "Datasheet",+ "value": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+ "visible": false+ },+ {+ "name": "Description",+ "value": "Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function.",+ "visible": false+ },+ {+ "name": "Manufacturer",+ "value": "Texas Instruments",+ "visible": false+ },+ {+ "name": "MPN",+ "value": "TMCS1123B1AQDVGR",+ "visible": false+ },+ {+ "name": "Adom Wiki",+ "value": "https://wiki.adom.inc/adom/tmcs1123b1aqdvgr",+ "visible": false+ },+ {+ "name": "DigiKey",+ "value": "296-TMCS1123B1AQDVGRTR-ND",+ "visible": false+ },+ {+ "name": "Mouser",+ "value": "595-TMCS1123B1AQDVGR",+ "visible": false+ },+ {+ "name": "Adom_Chip_Outline",+ "value": "asset:TMCS1123B1AQDVGR-3d-outline-dark-named.svg@large",+ "visible": false+ },+ {+ "name": "Supplier 1",+ "value": "Mouser",+ "visible": false+ },+ {+ "name": "Supplier Part Number 1",+ "value": "595-TMCS1123B1AQDVGR",+ "visible": false+ },+ {+ "name": "Supplier 2",+ "value": "Digi-Key",+ "visible": false+ },+ {+ "name": "Supplier Part Number 2",+ "value": "296-TMCS1123B1AQDVGRTR-ND",+ "visible": false+ },+ {+ "name": "Manufacturer Part Number",+ "value": "TMCS1123B1AQDVGR",+ "visible": false+ }+ ],+ "labels": [+ {+ "text": "Primary side",+ "x": -659.8425196850394,+ "y": 728.7401574803149,+ "angle": 0,+ "justify_right": false,+ "bold": false,+ "size_mil": 30.0+ },+ {+ "text": "Supply",+ "x": 659.8425196850394,+ "y": 728.7401574803149,+ "angle": 0,+ "justify_right": true,+ "bold": false,+ "size_mil": 30.0+ },+ {+ "text": "Analog output",+ "x": 659.8425196850394,+ "y": 328.74015748031496,+ "angle": 0,+ "justify_right": true,+ "bold": false,+ "size_mil": 30.0+ },+ {+ "text": "Overcurrent",+ "x": 659.8425196850394,+ "y": -71.2598425196851,+ "angle": 0,+ "justify_right": true,+ "bold": false,+ "size_mil": 30.0+ },+ {+ "text": "Reserved",+ "x": 659.8425196850394,+ "y": -671.2598425196852,+ "angle": 0,+ "justify_right": true,+ "bold": false,+ "size_mil": 30.0+ }+ ],+ "pin_numbers_hidden": false,+ "pin_names_hidden": false+ },+ "footprint": {+ "name": "tmcs1123b1aqdvgr",+ "pads": [+ {+ "number": "1",+ "x_mm": -4.875,+ "y_mm": -2.54,+ "w_mm": 1.65,+ "h_mm": 4.41,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "2",+ "x_mm": -4.875,+ "y_mm": 2.54,+ "w_mm": 1.65,+ "h_mm": 4.41,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "3",+ "x_mm": 4.875,+ "y_mm": 4.445,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "4",+ "x_mm": 4.875,+ "y_mm": 3.175,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "5",+ "x_mm": 4.875,+ "y_mm": 1.905,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "6",+ "x_mm": 4.875,+ "y_mm": 0.635,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "7",+ "x_mm": 4.875,+ "y_mm": -0.635,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "8",+ "x_mm": 4.875,+ "y_mm": -1.905,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "9",+ "x_mm": 4.875,+ "y_mm": -3.175,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ },+ {+ "number": "10",+ "x_mm": 4.875,+ "y_mm": -4.445,+ "w_mm": 1.65,+ "h_mm": 0.6,+ "drill_mm": 0.0,+ "rotation": 0.0,+ "shape": "roundrect"+ }+ ],+ "graphics": [+ {+ "kind": "line",+ "layer": {+ "role": "fab"+ },+ "x1": 0.0,+ "y1": -5.15,+ "x2": 0.0,+ "y2": 5.15,+ "width": 0.1+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": -3.87,+ "y1": -5.27,+ "x2": 3.87,+ "y2": -5.27,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": -5.27,+ "x2": 3.87,+ "y2": -4.96,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": -3.93,+ "x2": 3.87,+ "y2": -3.69,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": -2.66,+ "x2": 3.87,+ "y2": -2.42,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": -1.39,+ "x2": 3.87,+ "y2": -1.15,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": -0.12,+ "x2": 3.87,+ "y2": 0.12,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": 1.15,+ "x2": 3.87,+ "y2": 1.39,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": 2.42,+ "x2": 3.87,+ "y2": 2.66,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": 3.69,+ "x2": 3.87,+ "y2": 3.93,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": 4.96,+ "x2": 3.87,+ "y2": 5.27,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": 3.87,+ "y1": 5.27,+ "x2": -3.87,+ "y2": 5.27,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": -3.87,+ "y1": 5.27,+ "x2": -3.87,+ "y2": 4.96,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": -3.87,+ "y1": 0.12,+ "x2": -3.87,+ "y2": -0.12,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": -3.87,+ "y1": -4.96,+ "x2": -3.87,+ "y2": -5.27,+ "width": 0.12+ },+ {+ "kind": "line",+ "layer": {+ "role": "silk"+ },+ "x1": -4.05,+ "y1": -5.45,+ "x2": -3.45,+ "y2": -5.45,+ "width": 0.12+ },+ {+ "kind": "rect",+ "layer": {+ "role": "courtyard"+ },+ "x1": -5.95,+ "y1": -5.5,+ "x2": 5.95,+ "y2": 5.5,+ "width": 0.05+ }+ ],+ "polys": [+ {+ "layer": {+ "role": "fab"+ },+ "points": [+ [+ -2.75,+ -5.15+ ],+ [+ 3.75,+ -5.15+ ],+ [+ 3.75,+ 5.15+ ],+ [+ -3.75,+ 5.15+ ],+ [+ -3.75,+ -4.15+ ]+ ],+ "width": 0.1,+ "filled": false+ }+ ]+ },+ "connect": [+ {+ "pin": "1",+ "pad": "1"+ },+ {+ "pin": "2",+ "pad": "2"+ },+ {+ "pin": "8",+ "pad": "8"+ },+ {+ "pin": "3",+ "pad": "3"+ },+ {+ "pin": "6",+ "pad": "6"+ },+ {+ "pin": "5",+ "pad": "5"+ },+ {+ "pin": "9",+ "pad": "9"+ },+ {+ "pin": "7",+ "pad": "7"+ },+ {+ "pin": "4",+ "pad": "4"+ },+ {+ "pin": "10",+ "pad": "10"+ }+ ],+ "provenance": {+ "source": "kicad_import"+ }+}
artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.320.pngadded⋯ 1 unchanged line ⋯
artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svgadded+1@@ -0,0 +1 @@+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320"><polyline points="178.29,237.29 273.63,182.25" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="273.63,182.25 273.75,181.63 273.87,181.01 273.99,180.39 274.11,179.78 274.23,179.16 274.35,178.54 274.46,177.93 274.58,177.31 274.70,176.69 274.82,176.08 274.94,175.46 275.06,174.84 275.18,174.22 275.29,173.61 275.41,172.99 275.53,172.37 275.65,171.76 275.77,171.14 275.89,170.52 276.01,169.91 276.13,169.29 276.24,168.67" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,225.23 276.24,168.67" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,237.29 178.29,236.75 178.29,236.20 178.29,235.65 178.29,235.10 178.29,234.55 178.29,234.00 178.29,233.46 178.29,232.91 178.29,232.36 178.29,231.81 178.29,231.26 178.29,230.71 178.29,230.16 178.29,229.62 178.29,229.07 178.29,228.52 178.29,227.97 178.29,227.42 178.29,226.87 178.29,226.33 178.29,225.78 178.29,225.23" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="99.31,191.70 107.49,196.42" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="165.66,230.01 178.29,237.29" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.24,168.67 276.07,167.68 275.89,166.68 275.71,165.69 275.53,164.70 275.35,163.70 275.18,162.71 275.00,161.71 274.82,160.72 274.64,159.73 274.46,158.73 274.29,157.74 274.11,156.74 273.93,155.75 273.75,154.76 273.57,153.76 273.40,152.77 273.22,151.77 273.04,150.78 272.86,149.79 272.68,148.79 272.50,147.80 272.33,146.80" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,201.10 272.33,146.80" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,225.23 178.29,224.13 178.29,223.04 178.29,221.94 178.29,220.84 178.29,219.74 178.29,218.65 178.29,217.55 178.29,216.45 178.29,215.36 178.29,214.26 178.29,213.16 178.29,212.07 178.29,210.97 178.29,209.87 178.29,208.78 178.29,207.68 178.29,206.58 178.29,205.49 178.29,204.39 178.29,203.29 178.29,202.19 178.29,201.10" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="43.76,147.56 48.49,150.29" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.40,183.15 114.84,188.60" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.76,221.46 178.29,225.23" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="44.72,152.58 44.68,152.35 44.63,152.12 44.59,151.89 44.55,151.67 44.50,151.44 44.46,151.21 44.41,150.98 44.37,150.75 44.33,150.52 44.28,150.30 44.24,150.07 44.19,149.84 44.15,149.61 44.11,149.38 44.06,149.16 44.02,148.93 43.97,148.70 43.93,148.47 43.89,148.24 43.84,148.01 43.80,147.79 43.76,147.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="272.33,146.80 141.71,71.39" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="47.67,125.69 178.29,201.10" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="141.71,71.39 47.67,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="79.67,122.30 79.88,122.42 80.08,122.55 80.27,122.68 80.45,122.81 80.62,122.95 80.79,123.09 80.94,123.24 81.09,123.39 81.23,123.54 81.36,123.70 81.48,123.85 81.58,124.01 81.68,124.17 81.77,124.34 81.85,124.50 81.92,124.67 81.98,124.84 82.02,125.01 82.06,125.18 82.09,125.35 82.10,125.52 82.11,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="82.11,125.69 82.02,126.37 81.77,127.04 81.36,127.68 80.79,128.28 80.08,128.83 79.24,129.32 78.29,129.73 77.25,130.05 76.14,130.29 74.98,130.44 73.80,130.49 72.61,130.44 71.45,130.29 70.34,130.05 69.30,129.73 68.35,129.32 67.51,128.83 66.80,128.28 66.23,127.68 65.82,127.04 65.57,126.37 65.48,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="65.48,125.69 65.53,125.18 65.67,124.67 65.91,124.17 66.23,123.70 66.65,123.24 67.14,122.81 67.71,122.42 68.35,122.06 69.06,121.75 69.81,121.48 70.62,121.26 71.45,121.08 72.32,120.97 73.20,120.90 74.09,120.89 74.98,120.94 75.85,121.04 76.70,121.19 77.52,121.40 78.29,121.65 79.01,121.95 79.67,122.30" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="43.76,147.56 43.93,146.56 44.11,145.57 44.29,144.58 44.47,143.58 44.65,142.59 44.82,141.59 45.00,140.60 45.18,139.61 45.36,138.61 45.54,137.62 45.71,136.62 45.89,135.63 46.07,134.64 46.25,133.64 46.43,132.65 46.60,131.65 46.78,130.66 46.96,129.67 47.14,128.67 47.32,127.68 47.50,126.68 47.67,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="79.67,123.05 79.03,122.72 78.34,122.42 77.60,122.17 76.81,121.97 76.00,121.82 75.16,121.71 74.30,121.65 73.44,121.65 72.58,121.70 71.74,121.79 70.92,121.94 70.13,122.14 69.38,122.38 68.67,122.66 68.02,122.99 67.44,123.35 66.92,123.75 66.47,124.17 66.11,124.62 65.82,125.09 65.62,125.57 65.51,126.07" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="82.08,126.07 82.06,125.91 82.02,125.76 81.98,125.61 81.93,125.46 81.87,125.31 81.80,125.16 81.73,125.01 81.64,124.86 81.55,124.72 81.45,124.57 81.34,124.43 81.23,124.29 81.11,124.16 80.97,124.02 80.84,123.89 80.69,123.76 80.54,123.64 80.38,123.51 80.21,123.39 80.04,123.27 79.86,123.16 79.67,123.05" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.59,180.97 100.81,183.73" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.59,180.97 103.08,179.52 100.58,178.08 98.07,176.63 95.57,175.18 93.06,173.74 90.56,172.29 88.05,170.84 85.55,169.40 83.04,167.95 80.54,166.50 78.03,165.06 75.53,163.61 73.02,162.17 70.51,160.72 68.01,159.27 65.50,157.83 63.00,156.38 60.49,154.93 57.99,153.49 55.48,152.04 52.98,150.59 50.47,149.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="50.47,149.15 45.69,151.91" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.60,185.11 100.81,187.88" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.60,185.11 105.59,185.02 105.59,184.93 105.58,184.84 105.57,184.75 105.56,184.66 105.55,184.57 105.54,184.49 105.53,184.40 105.52,184.31 105.51,184.22 105.50,184.13 105.49,184.04 105.49,183.95 105.48,183.86 105.47,183.77 105.46,183.68 105.45,183.60 105.44,183.51 105.43,183.42 105.42,183.33 105.41,183.24 105.40,183.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.40,183.15 105.41,183.05 105.42,182.95 105.43,182.85 105.44,182.75 105.45,182.65 105.45,182.56 105.46,182.46 105.47,182.36 105.48,182.26 105.49,182.16 105.50,182.06 105.51,181.96 105.51,181.86 105.52,181.76 105.53,181.66 105.54,181.56 105.55,181.47 105.56,181.37 105.56,181.27 105.57,181.17 105.58,181.07 105.59,180.97" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="100.81,183.73 100.49,183.93 100.17,184.14 99.86,184.39 99.55,184.65 99.24,184.93 98.95,185.23 98.65,185.55 98.37,185.88 98.10,186.23 97.84,186.60 97.60,186.97 97.36,187.36 97.14,187.75 96.94,188.15 96.75,188.56 96.58,188.97 96.43,189.38 96.30,189.79 96.18,190.20 96.09,190.60 96.01,191.00 95.96,191.40" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="95.96,191.40 94.94,200.33" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="94.94,200.33 94.93,200.44 94.91,200.55 94.88,200.66 94.85,200.76 94.82,200.87 94.78,200.98 94.73,201.09 94.68,201.20 94.63,201.31 94.57,201.41 94.51,201.52 94.44,201.62 94.37,201.71 94.30,201.81 94.22,201.89 94.15,201.98 94.07,202.06 93.99,202.14 93.90,202.21 93.82,202.27 93.73,202.33 93.65,202.38" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="93.65,202.38 87.12,206.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="87.12,210.30 87.12,206.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="93.65,206.53 87.12,210.30" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="98.50,198.86 98.44,199.25 98.37,199.65 98.28,200.06 98.16,200.47 98.03,200.88 97.88,201.29 97.71,201.70 97.52,202.11 97.31,202.51 97.10,202.90 96.86,203.28 96.62,203.66 96.36,204.02 96.08,204.37 95.80,204.71 95.51,205.03 95.21,205.33 94.91,205.61 94.60,205.87 94.28,206.11 93.97,206.33 93.65,206.53" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="99.52,189.92 98.50,198.86" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="100.81,187.88 100.72,187.93 100.64,187.99 100.56,188.05 100.47,188.12 100.39,188.20 100.31,188.28 100.23,188.36 100.16,188.45 100.09,188.55 100.02,188.64 99.95,188.74 99.89,188.84 99.83,188.95 99.78,189.06 99.73,189.16 99.68,189.27 99.64,189.38 99.61,189.49 99.58,189.60 99.55,189.71 99.53,189.82 99.52,189.92" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="45.69,151.91 45.37,152.10 45.06,152.32 44.74,152.56 44.43,152.83 44.13,153.11 43.83,153.41 43.54,153.73 43.26,154.06 42.98,154.41 42.72,154.77 42.48,155.15 42.24,155.53 42.02,155.93 41.82,156.33 41.63,156.73 41.46,157.14 41.31,157.56 41.18,157.97 41.06,158.38 40.97,158.78 40.89,159.18 40.84,159.58" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="32.00,174.33 32.00,178.48" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="38.53,170.56 32.00,174.33" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="39.82,168.51 39.81,168.62 39.79,168.72 39.76,168.83 39.73,168.94 39.70,169.05 39.66,169.16 39.61,169.27 39.56,169.38 39.51,169.48 39.45,169.59 39.39,169.69 39.32,169.79 39.25,169.89 39.18,169.98 39.11,170.07 39.03,170.16 38.95,170.24 38.87,170.31 38.78,170.38 38.70,170.45 38.62,170.51 38.53,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="40.84,159.58 39.82,168.51" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="32.00,178.48 87.12,210.30" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="87.12,206.15 32.00,174.33" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.94,219.28 167.16,222.04" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.94,219.28 169.44,217.83 166.93,216.38 164.42,214.94 161.92,213.49 159.41,212.04 156.91,210.60 154.40,209.15 151.90,207.71 149.39,206.26 146.89,204.81 144.38,203.37 141.88,201.92 139.37,200.47 136.87,199.03 134.36,197.58 131.85,196.13 129.35,194.69 126.84,193.24 124.34,191.79 121.83,190.35 119.33,188.90 116.82,187.45" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="116.82,187.45 112.04,190.22" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.95,223.42 167.16,226.19" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.95,223.42 171.95,223.33 171.94,223.24 171.93,223.15 171.92,223.06 171.91,222.97 171.90,222.88 171.89,222.79 171.88,222.70 171.87,222.62 171.86,222.53 171.85,222.44 171.85,222.35 171.84,222.26 171.83,222.17 171.82,222.08 171.81,221.99 171.80,221.90 171.79,221.81 171.78,221.73 171.77,221.64 171.76,221.55 171.76,221.46" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.76,221.46 171.76,221.35 171.77,221.24 171.78,221.14 171.79,221.03 171.80,220.93 171.81,220.83 171.82,220.73 171.83,220.63 171.83,220.53 171.84,220.42 171.85,220.31 171.86,220.20 171.87,220.10 171.88,219.99 171.89,219.88 171.90,219.77 171.91,219.67 171.92,219.57 171.92,219.48 171.93,219.40 171.94,219.33 171.94,219.28" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="167.16,222.04 166.84,222.23 166.52,222.45 166.21,222.69 165.90,222.96 165.59,223.24 165.30,223.54 165.01,223.86 164.72,224.19 164.45,224.54 164.19,224.91 163.95,225.28 163.71,225.67 163.49,226.06 163.29,226.46 163.10,226.87 162.93,227.27 162.78,227.69 162.65,228.10 162.53,228.51 162.44,228.91 162.36,229.31 162.31,229.71" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="162.31,229.71 161.29,238.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="161.29,238.64 161.28,238.75 161.26,238.85 161.23,238.96 161.20,239.07 161.17,239.18 161.13,239.29 161.08,239.40 161.03,239.51 160.98,239.62 160.92,239.72 160.86,239.82 160.79,239.92 160.72,240.02 160.65,240.11 160.57,240.20 160.50,240.29 160.42,240.37 160.34,240.44 160.25,240.51 160.17,240.58 160.08,240.64 160.00,240.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.00,240.69 153.47,244.46" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="153.47,248.61 153.47,244.46" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.00,244.84 153.47,248.61" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="164.85,237.17 164.80,237.56 164.72,237.96 164.63,238.37 164.51,238.78 164.38,239.19 164.23,239.60 164.06,240.01 163.87,240.41 163.67,240.81 163.45,241.21 163.21,241.59 162.97,241.97 162.71,242.33 162.44,242.68 162.15,243.02 161.86,243.33 161.57,243.63 161.26,243.92 160.95,244.18 160.64,244.42 160.32,244.64 160.00,244.84" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="165.87,228.23 164.85,237.17" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="167.16,226.19 167.08,226.24 166.99,226.30 166.91,226.36 166.82,226.43 166.74,226.51 166.66,226.59 166.59,226.67 166.51,226.76 166.44,226.85 166.37,226.95 166.30,227.05 166.24,227.15 166.18,227.26 166.13,227.36 166.08,227.47 166.03,227.58 165.99,227.69 165.96,227.80 165.93,227.91 165.90,228.02 165.88,228.13 165.87,228.23" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="112.04,190.22 111.72,190.41 111.41,190.63 111.09,190.87 110.78,191.13 110.48,191.42 110.18,191.72 109.89,192.04 109.61,192.37 109.33,192.72 109.08,193.08 108.83,193.46 108.59,193.84 108.38,194.24 108.17,194.64 107.99,195.04 107.82,195.45 107.66,195.86 107.53,196.27 107.42,196.68 107.32,197.09 107.25,197.49 107.19,197.88" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="98.35,212.64 98.35,216.78" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="104.88,208.87 98.35,212.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="106.18,206.82 106.16,206.93 106.14,207.03 106.12,207.14 106.08,207.25 106.05,207.36 106.01,207.47 105.96,207.58 105.91,207.69 105.86,207.79 105.80,207.90 105.74,208.00 105.67,208.10 105.60,208.20 105.53,208.29 105.46,208.38 105.38,208.46 105.30,208.54 105.22,208.62 105.13,208.69 105.05,208.75 104.97,208.81 104.88,208.87" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="107.19,197.88 106.18,206.82" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="98.35,216.78 153.47,248.61" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="153.47,244.46 98.35,212.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="275.50,164.53 275.51,164.54 275.52,164.56 275.52,164.57 275.53,164.58 275.53,164.60 275.54,164.61 275.54,164.63 275.55,164.64 275.56,164.66 275.56,164.67 275.56,164.69 275.57,164.71 275.57,164.72 275.58,164.74 275.58,164.75 275.59,164.77 275.59,164.79 275.59,164.80 275.59,164.82 275.60,164.84 275.60,164.86 275.60,164.87" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="275.60,164.87 275.71,165.67" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.16,169.12 276.62,172.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.62,172.64 276.64,172.79 276.67,172.94 276.70,173.08 276.73,173.22 276.77,173.36 276.81,173.49 276.86,173.62 276.91,173.75 276.97,173.87 277.02,173.99 277.09,174.10 277.15,174.21 277.22,174.32 277.30,174.42 277.37,174.51 277.45,174.60 277.54,174.69 277.62,174.77 277.71,174.85 277.81,174.92 277.91,174.99 278.01,175.05" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="278.01,175.05 278.13,175.12 278.26,175.18 278.40,175.23 278.53,175.27 278.68,175.31 278.82,175.34 278.97,175.36 279.12,175.37 279.28,175.37 279.43,175.37 279.60,175.36 279.76,175.34 279.92,175.31 280.09,175.27 280.26,175.23 280.43,175.18 280.60,175.12 280.77,175.05 280.95,174.97 281.12,174.89 281.29,174.80 281.47,174.70" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="281.47,174.70 288.00,170.93" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="288.00,166.79 288.00,170.93" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="281.47,170.56 288.00,166.79" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="280.18,170.01 280.18,170.05 280.19,170.09 280.20,170.12 280.21,170.16 280.22,170.20 280.23,170.23 280.24,170.27 280.25,170.30 280.27,170.34 280.28,170.37 280.30,170.40 280.32,170.43 280.34,170.45 280.36,170.48 280.38,170.51 280.40,170.53 280.42,170.55 280.44,170.58 280.47,170.60 280.49,170.61 280.52,170.63 280.55,170.65" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="280.55,170.65 280.58,170.67 280.61,170.68 280.65,170.70 280.69,170.71 280.72,170.72 280.76,170.73 280.80,170.73 280.84,170.73 280.88,170.74 280.93,170.73 280.97,170.73 281.01,170.73 281.06,170.72 281.10,170.71 281.15,170.70 281.19,170.68 281.24,170.67 281.28,170.65 281.33,170.63 281.38,170.61 281.42,170.58 281.47,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="279.16,162.24 280.18,170.01" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="274.69,159.97 274.84,159.90 275.00,159.83 275.16,159.77 275.31,159.72 275.46,159.67 275.62,159.63 275.77,159.59 275.92,159.56 276.07,159.54 276.21,159.52 276.36,159.51 276.50,159.51 276.64,159.51 276.78,159.52 276.91,159.54 277.04,159.56 277.17,159.59 277.30,159.62 277.42,159.67 277.54,159.72 277.66,159.77 277.77,159.83" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="277.77,159.83 277.87,159.89 277.97,159.96 278.06,160.03 278.15,160.11 278.24,160.19 278.33,160.27 278.41,160.37 278.48,160.46 278.56,160.56 278.63,160.67 278.69,160.78 278.76,160.89 278.81,161.01 278.87,161.13 278.92,161.26 278.97,161.39 279.01,161.52 279.05,161.66 279.08,161.80 279.11,161.94 279.14,162.09 279.16,162.24" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="279.58,165.46 282.64,163.70" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="282.64,163.70 288.00,166.79" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="274.30,157.83 277.77,159.83" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="278.01,175.05 275.32,173.50" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="100.81,183.73 45.69,151.91" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="95.96,191.40 40.84,159.58" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="93.65,202.38 38.53,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="94.94,200.33 39.82,168.51" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="167.16,222.04 112.04,190.22" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="162.31,229.71 107.19,197.88" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.00,240.69 104.88,208.87" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="161.29,238.64 106.18,206.82" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="275.60,164.87 275.56,164.85" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="280.15,169.79 281.47,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.62,172.64 275.60,172.05" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><g id="adom-mark-name" data-lines="TMCS1123|B1AQDVGR"><polyline points="147.16,114.18 136.99,120.05" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="143.77,112.22 150.55,116.14" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.97,117.54 142.80,123.41" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.97,117.54 146.67,125.64" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.72,122.01 146.67,125.64" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.72,122.01 150.55,127.88" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="168.95,129.56 169.43,128.72 169.43,127.60 168.95,126.76 167.01,125.64 165.56,125.37 163.62,125.37 162.17,125.64 160.23,126.20 157.81,127.60 156.84,128.72 156.36,129.56 156.36,130.68 156.84,131.51 158.78,132.63 160.23,132.91 162.17,132.91 163.62,132.63" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="179.60,134.59 179.60,133.47 178.63,132.35 176.69,131.23 174.76,130.68 172.82,130.68 171.85,131.23 171.37,132.07 171.37,132.63 171.85,133.47 173.79,135.71 174.27,136.54 174.27,137.11 173.79,137.94 172.34,138.78 170.40,138.78 168.46,138.22 166.53,137.11 165.56,135.99 165.56,134.87" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="183.47,137.38 184.92,137.66 187.83,137.66 177.66,143.53" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="193.16,142.97 194.61,143.26 197.52,143.26 187.34,149.12" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="201.38,148.28 201.87,148.01 203.32,147.73 204.29,147.73 205.74,148.01 207.68,149.12 208.16,149.96 208.16,150.52 207.68,151.36 206.72,151.92 205.26,152.20 202.84,152.48 193.16,152.48 199.94,156.39" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="213.98,152.76 219.30,155.83 212.52,156.39 213.98,157.23 214.46,158.07 214.46,158.63 213.49,159.74 212.52,160.31 210.58,160.86 208.65,160.86 206.72,160.31 205.26,159.47 204.29,158.35 204.29,157.79 204.78,156.95" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="129.73,121.73 119.56,127.60" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="129.73,121.73 134.09,124.25 135.05,125.37 135.05,125.92 134.57,126.76 133.60,127.32 132.15,127.60 131.18,127.60 129.25,127.04" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="124.89,124.53 129.25,127.04 130.21,128.16 130.21,128.72 129.73,129.56 128.27,130.39 126.83,130.68 125.85,130.68 123.92,130.11 119.56,127.60" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="138.93,129.28 140.38,129.56 143.29,129.56 133.12,135.43" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.00,134.59 137.96,138.22" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.00,134.59 145.71,142.69" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="142.80,137.11 147.64,139.90" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.72,139.62 159.26,139.34 157.33,139.34 155.87,139.62 153.94,140.18 151.52,141.58 150.55,142.69 150.06,143.53 150.06,144.65 150.55,145.49 152.49,146.61 153.94,146.89 155.87,146.89 157.33,146.61 159.26,146.05 161.68,144.65 162.65,143.53 163.14,142.69 163.14,141.58 162.65,140.74 160.72,139.62" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="153.94,145.21 153.94,148.57" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="168.95,144.37 158.78,150.24" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="168.95,144.37 172.34,146.33 173.30,147.45 173.30,148.57 172.82,149.40 171.85,150.52 169.43,151.92 167.49,152.48 166.04,152.76 164.10,152.76 162.17,152.20 158.78,150.24" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="177.66,149.40 171.37,157.51" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="185.41,153.88 171.37,157.51" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="192.19,160.58 192.67,159.74 192.67,158.63 192.19,157.79 190.25,156.67 188.80,156.39 186.86,156.39 185.41,156.67 183.47,157.23 181.05,158.63 180.08,159.74 179.60,160.58 179.60,161.70 180.08,162.54 182.02,163.66 183.47,163.94 185.41,163.94 186.86,163.66 188.32,162.82" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="185.89,161.42 188.32,162.82" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="198.00,161.15 187.83,167.01" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="198.00,161.15 202.36,163.66 203.32,164.78 203.32,165.34 202.84,166.18 201.87,166.73 200.42,167.01 199.45,167.01 197.52,166.46 193.16,163.94" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="196.54,165.90 194.61,170.93" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/></g></svg>
models.jsonadded+225@@ -0,0 +1,225 @@+{+ "schema": "adom/models@1",+ "part": "TMCS1123B1AQDVGR",+ "updated": "2026-10-21",+ "models": [+ {+ "path": "tmcs1123b1aqdvgr-etched.step",+ "format": "step",+ "sha256": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+ "git_blob": "a16e30824e84685e6ba6bd46ef8d474dab286ca2",+ "bytes": 921518,+ "title": "TMCS1123B1AQDVGR, virtual MPN etch (library model)",+ "status": "current",+ "slot": "model_3d_step",+ "variant": "etched",+ "role": "datasheet-built",+ "use": [+ "board-cad"+ ],+ "marking": {+ "text": "TMCS1123 / B1AQDVGR (two lines)",+ "surface": "top, along the pin rows, upright with pin 1 lower left",+ "colour": "light grey on black epoxy",+ "virtual": true,+ "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+ },+ "colours": true,+ "derived_from": "tmcs1123b1aqdvgr.step",+ "unique": "The board-CAD model: built from TI's DVG0010A drawing values with the MPN etched on top in the Adom.LaserEtch group; bound by the KiCad footprint, the Fusion .lbr and the Altium PcbLib",+ "source": "provenance/tools/build_dvg10.py + adom-chip-laser 0.2.0 (service-occt etch, placed by adom-aiflow-etch)",+ "thumb": "docs/models/tmcs1123b1aqdvgr-etched-iso.png",+ "thumb_bottom": "docs/models/tmcs1123b1aqdvgr-etched-bottom.png"+ },+ {+ "path": "tmcs1123b1aqdvgr.step",+ "format": "step",+ "sha256": "0a853e2f4e75a9e6cbad36f5019d39ee4dcb53a4c9cc39f4c3ad37d4c9274672",+ "git_blob": "a96c3dc2e0c3fe2be2a2d7ba20b2e21dac4a6ebc",+ "bytes": 602713,+ "title": "TMCS1123B1AQDVGR, unmarked",+ "status": "current",+ "slot": "model_3d_step_plain",+ "variant": "plain",+ "role": "datasheet-built",+ "use": [+ "board-cad",+ "archive"+ ],+ "marking": null,+ "colours": true,+ "derived_from": "TI SBOSA24D p.45 (DVG0010A, 4226847/C)",+ "unique": "The same package without any marking",+ "source": "provenance/tools/build_dvg10.py (default parameters)",+ "thumb": "docs/models/tmcs1123b1aqdvgr-glb-top.png"+ },+ {+ "path": "tmcs1123b1aqdvgr-hero.glb",+ "format": "glb",+ "sha256": "bf51329a5a46cd522589b2e604a47acd88117b42e3e8ad0f20e2daf671f85fc3",+ "git_blob": "60d974f452d4533c2028ca2ffe3003bbbf52de43",+ "bytes": 167368,+ "title": "TMCS1123B1AQDVGR, annotated hero (page viewer only)",+ "status": "current",+ "slot": "model_3d",+ "variant": "hero",+ "role": "derived",+ "use": [+ "wiki-hero"+ ],+ "marking": {+ "text": "TMCS1123 / B1AQDVGR (two lines)",+ "surface": "top, along the pin rows, upright with pin 1 lower left",+ "colour": "light grey on black epoxy",+ "virtual": true,+ "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+ },+ "colours": true,+ "derived_from": "tmcs1123b1aqdvgr-etched.glb + tmcs1123b1aqdvgr.kicad_mod",+ "unique": "The etched model plus adom-hero 1.4 reference artwork (teal dashed pad outlines, silkscreen with pin-1 dot, signal names) and an extra declared layer for the 8.1 mm isolation keepout; not for board use",+ "source": "adom/component-hero hero_glb.py (adom-hero 1.4) + provenance/tools/hero_post_keepout.py",+ "thumb": "docs/proof/tmcs1123b1aqdvgr-hero-preview.png"+ },+ {+ "path": "tmcs1123b1aqdvgr-etched.glb",+ "format": "glb",+ "sha256": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56",+ "git_blob": "2ba4db5674cf74331a732adab74717e07aa5a4f2",+ "bytes": 84116,+ "title": "TMCS1123B1AQDVGR, virtual MPN etch (GLB, board use)",+ "status": "current",+ "slot": "model_3d_plain",+ "variant": "etched",+ "role": "derived",+ "use": [+ "render",+ "board-insertion"+ ],+ "marking": {+ "text": "TMCS1123 / B1AQDVGR (two lines)",+ "surface": "top, along the pin rows, upright with pin 1 lower left",+ "colour": "light grey on black epoxy",+ "virtual": true,+ "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+ },+ "colours": true,+ "derived_from": "tmcs1123b1aqdvgr-etched.step",+ "unique": "Web copy of the etched STEP, clean (no pad outlines, labels or silkscreen), primitives batched per part, matte-tin leads and epoxy body",+ "source": "step2glb 0.13.2 service --compress none + provenance/tools/glb_batch.py + materials.py",+ "thumb": "docs/models/tmcs1123b1aqdvgr-etched-iso.png"+ },+ {+ "path": "tmcs1123b1aqdvgr.glb",+ "format": "glb",+ "sha256": "6845226553b3cfc2fac73abbe47483cf94ccc6f9ff476c4c72250a0721f352b5",+ "git_blob": "18096772a332d66ca489afaad4bfe8f98f3e5b9d",+ "bytes": 60536,+ "title": "TMCS1123B1AQDVGR, unmarked (GLB)",+ "status": "current",+ "variant": "plain",+ "role": "derived",+ "use": [+ "render",+ "board-insertion"+ ],+ "marking": null,+ "colours": true,+ "derived_from": "tmcs1123b1aqdvgr.step",+ "unique": "Web copy of the unmarked STEP",+ "source": "step2glb 0.13.2 service --compress none + glb_batch.py + materials.py",+ "thumb": "docs/models/tmcs1123b1aqdvgr-glb-top.png"+ },+ {+ "path": "lod/tmcs1123b1aqdvgr-high.glb",+ "format": "glb",+ "sha256": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56",+ "git_blob": "2ba4db5674cf74331a732adab74717e07aa5a4f2",+ "bytes": 84116,+ "title": "TMCS1123B1AQDVGR, high detail (board LOD)",+ "status": "current",+ "variant": "lod",+ "role": "derived",+ "use": [+ "board-insertion"+ ],+ "marking": {+ "text": "TMCS1123 / B1AQDVGR (two lines)",+ "surface": "top, along the pin rows, upright with pin 1 lower left",+ "colour": "light grey on black epoxy",+ "virtual": true,+ "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+ },+ "colours": true,+ "derived_from": "tmcs1123b1aqdvgr-etched.step",+ "unique": "Identical to the etched GLB",+ "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+ "thumb": "lod/tmcs1123b1aqdvgr-high.png"+ },+ {+ "path": "lod/tmcs1123b1aqdvgr-medium.glb",+ "format": "glb",+ "sha256": "9f52aa315be221e7125ad823f9753cddc16870e427abf3b2d8c021ebc90e41ce",+ "git_blob": "9f24b1b9b15c5e63e878e80206b8f15ae4ee7428",+ "bytes": 70556,+ "title": "TMCS1123B1AQDVGR, medium detail (board LOD)",+ "status": "current",+ "variant": "lod",+ "role": "derived",+ "use": [+ "board-insertion"+ ],+ "marking": {+ "text": "TMCS1123 / B1AQDVGR (two lines)",+ "surface": "top, along the pin rows, upright with pin 1 lower left",+ "colour": "light grey on black epoxy",+ "virtual": true,+ "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+ },+ "colours": true,+ "derived_from": "provenance/tools/params-low.json",+ "unique": "Bends as 3 straight segments, etch grafted from the high level",+ "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+ "thumb": "lod/tmcs1123b1aqdvgr-medium.png"+ },+ {+ "path": "lod/tmcs1123b1aqdvgr-low.glb",+ "format": "glb",+ "sha256": "b7ddcc1ac803f49617a0fbb2c04d464e6713c4171dbf85f2b9c29c0af3bc09ee",+ "git_blob": "31beb2a5be61cdc9fae5e6dac8f7b55bd40d7aa0",+ "bytes": 47096,+ "title": "TMCS1123B1AQDVGR, low detail (board LOD)",+ "status": "current",+ "variant": "lod",+ "role": "derived",+ "use": [+ "board-insertion"+ ],+ "marking": null,+ "colours": true,+ "derived_from": "provenance/tools/params-low.json",+ "unique": "Bends as 3 straight segments, no etch",+ "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+ "thumb": "lod/tmcs1123b1aqdvgr-low.png"+ },+ {+ "path": "lod/tmcs1123b1aqdvgr-super-low.glb",+ "format": "glb",+ "sha256": "18d92dd0c0942ecfec9979e24102133ecc420f6ad93814334e17af02868ccf05",+ "git_blob": "bc3d531dfacfa1b874f88054f8dce43d867e750e",+ "bytes": 29332,+ "title": "TMCS1123B1AQDVGR, super-low detail (board LOD)",+ "status": "current",+ "variant": "lod",+ "role": "derived",+ "use": [+ "board-insertion"+ ],+ "marking": null,+ "colours": true,+ "derived_from": "provenance/tools/params-superlow.json",+ "unique": "Undrafted body, one-segment bends, no etch",+ "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+ "thumb": "lod/tmcs1123b1aqdvgr-super-low.png"+ }+ ]+}
provenance/3d-model.jsonadded+167@@ -0,0 +1,167 @@+{+ "schema": "adom/3d-model-provenance@1",+ "mpn": "TMCS1123B1AQDVGR",+ "date": "2026-10-21",+ "classification": "Datasheet-built: a CadQuery model generated from TI's printed DVG0010A package values (SBOSA24D p.45), produced by Claude (AI) for Adom. Not manufacturer CAD and not a TI certification.",+ "method_chosen": "3 (build from the drawing): TI's STEP is behind Ultra Librarian's reCAPTCHA and terms form, and no KiCad library model exists for DVG0010A",+ "manufacturer_step": {+ "tried": [+ "https://www.ti.com/product/TMCS1123 (CAD/CAE link)",+ "https://vendor.ultralibrarian.com/TI/embedded/?gpn=TMCS1123&package=DVG&pin=10"+ ],+ "result": "The Ultra Librarian page lists a STEP export (PartUniqueId 1632f2be-2a1e-11ee-9288-0ae0a3b49db5) but the export form needs a reCAPTCHA and a terms checkbox; a plain HTTP request cannot fetch it (checked 2026-10-21)",+ "status": "not reachable by plain HTTP"+ },+ "existing_wiki_model": {+ "page": "adom/tmcs1123a2aqdvgr (the A2A variant, same DVG package)",+ "checked": "2026-10-21",+ "verdict": "not reused: its footprint and STEP are KiCad's SOIC-10_3.9x4.9mm_P1mm (narrow 3.9 x 4.9 mm body, 1 mm pitch, five pins per side, pads at x = +-2.66), which is a different package from TI's DVG0010A (7.5 x 10.3 mm body, two 4.22 mm current leads on one side and eight 1.27 mm-pitch leads on the other). The page was not modified."+ },+ "datasheet": {+ "doc": "TI SBOSA24D, TMCS1123 (July 2023, revised May 2026)",+ "file": "docs/tmcs1123b1aqdvgr-datasheet.pdf",+ "url": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+ "sha256": "66bab03ec907cb658ebf1b379dff4bdc75dffe13ffab3acd8247fc3faee70cce",+ "drawing_pages": "p.45 package outline DVG0010A (4226847/C 10/2022), p.46 example board layout, p.47 stencil",+ "marking_page": "p.40"+ },+ "model": {+ "file": "tmcs1123b1aqdvgr.step",+ "sha256": "0a853e2f4e75a9e6cbad36f5019d39ee4dcb53a4c9cc39f4c3ad37d4c9274672",+ "builder": "provenance/tools/build_dvg10.py (CadQuery 2.8, OpenCascade); lead construction from build_soic8.py on adom/mcp2562fd-e-sn",+ "how": "drafted two-part body loft (parting line 1.10 mm), ten swept leads (rectangle b x c along a centreline with two 0.2375 mm centreline-radius bends, 8 deg off vertical): two 4.22 mm current leads at y = +-2.54 on -x, eight 0.41 mm leads at 1.27 mm pitch on +x; pin-1 dimple 0.90 mm diameter, 0.05 mm deep inside the drawing's PIN 1 ID AREA; flat foot 0.50 mm so the gauge-plane L is 0.854 mm",+ "chosen_values": "Where the drawing gives a range, the mid value; A (2.65 MAX, no nominal) modelled as 2.55. Not dimensioned by TI and chosen: parting line height 1.10 mm (read off the side view), draft insets 0.10 / 0.15 mm, inner bend radius 0.10 mm, lead angle 8 deg.",+ "frame": "Z up, seated on z = 0, centred on the KiCad footprint origin, pin 1 at (-x, +y) = footprint pad 1 at (-4.875, -2.54) in KiCad's Y-down footprint frame; binds with zero offset and rotation",+ "parts": {+ "body": "black epoxy",+ "pins": "matte tin"+ },+ "dimensions_mm": [+ {+ "item": "E overall lead span",+ "datasheet_min_typ_max": "9.97 / - / 10.63 (TYP)",+ "model": "10.300"+ },+ {+ "item": "E1 molded width",+ "datasheet_min_typ_max": "7.4 / - / 7.6",+ "model": "7.500"+ },+ {+ "item": "D molded length",+ "datasheet_min_typ_max": "10.1 / - / 10.5",+ "model": "10.300"+ },+ {+ "item": "A overall height",+ "datasheet_min_typ_max": "max 2.65",+ "model": "2.550"+ },+ {+ "item": "A1 standoff",+ "datasheet_min_typ_max": "0.1 / - / 0.3",+ "model": "0.200"+ },+ {+ "item": "c lead thickness",+ "datasheet_min_typ_max": "0.23 / - / 0.32 (TYP)",+ "model": "0.275"+ },+ {+ "item": "b signal lead width (pins 3 to 10)",+ "datasheet_min_typ_max": "0.31 / - / 0.51",+ "model": "0.410"+ },+ {+ "item": "e signal pitch",+ "datasheet_min_typ_max": "1.27 (7X)",+ "model": "1.270"+ },+ {+ "item": "current lead width (pins 1, 2)",+ "datasheet_min_typ_max": "4.12 / - / 4.32",+ "model": "4.220"+ },+ {+ "item": "current lead centre from centre line",+ "datasheet_min_typ_max": "2.44 / - / 2.64",+ "model": "2.540"+ },+ {+ "item": "gap between current leads",+ "datasheet_min_typ_max": "(0.86) REF",+ "model": "0.860"+ },+ {+ "item": "L foot length (gauge plane 0.25 mm)",+ "datasheet_min_typ_max": "0.40 / - / 1.27",+ "model": "0.854"+ },+ {+ "item": "(1.4) lead length, body edge to tip",+ "datasheet_min_typ_max": "(1.4) REF",+ "model": "1.400"+ },+ {+ "item": "lead angle at foot",+ "datasheet_min_typ_max": "0 to 8 deg",+ "model": "0 (flat foot on the seating plane)"+ }+ ],+ "measurements": [+ "provenance/dims-model.json (section at y = +2.54, pin 1)",+ "provenance/dims-model-signal.json (section at y = +4.445, pin 10; foot section of the +x row)"+ ],+ "overlay_proof": {+ "image": "docs/proof/tmcs1123b1aqdvgr-overlay.png",+ "report": "provenance/overlay-proof.json",+ "px_per_mm": 71.117,+ "result": "top, front and end silhouettes blended over the p.45 drawing at the drawing's own scale (calibrated on the printed E and D spans, kx and ky agree within 0.4 %); the leads, the current-lead gap and the body outline coincide with the drawing lines"+ },+ "pin1_mark": "0.90 mm dimple at (-2.60, +4.00) on the top face, inside TI's hatched PIN 1 ID AREA (p.45); TI does not dimension the feature",+ "not_modelled": "mold flash and interlead flash (notes 3, 4), the exact pin-1 feature shape"+ },+ "etched": {+ "file": "tmcs1123b1aqdvgr-etched.step",+ "sha256": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+ "tool": "adom-chip-laser 0.2.0 service (service-occt /laser-etch, flat light mark 5 um above the face, Adom.LaserEtch group), placed by adom-aiflow-etch's planner with the page footprint",+ "lines": [+ "TMCS1123",+ "B1AQDVGR"+ ],+ "capMm": 0.98,+ "virtual": true,+ "gate": "adom-aiflow-etch check: PASS",+ "check_image": "docs/proof/tmcs1123b1aqdvgr-etched.check.png",+ "plan": "docs/proof/tmcs1123b1aqdvgr-etched.mark-plan.json",+ "real_marking": "TI marks this part 1123B1A (SBOSA24D p.40, Part marking); the etch is the orderable MPN instead, as a virtual identification aid"+ },+ "glb": {+ "tmcs1123b1aqdvgr.glb": "6845226553b3cfc2fac73abbe47483cf94ccc6f9ff476c4c72250a0721f352b5",+ "tmcs1123b1aqdvgr-etched.glb": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56",+ "tmcs1123b1aqdvgr-hero.glb": "bf51329a5a46cd522589b2e604a47acd88117b42e3e8ad0f20e2daf671f85fc3"+ },+ "hero": {+ "file": "tmcs1123b1aqdvgr-hero.glb",+ "generator": "adom/component-hero skills/component-hero/scripts/hero_glb.py (adom-hero 1.4) then provenance/tools/hero_post_keepout.py",+ "sidecar": "tmcs1123b1aqdvgr-hero.overlay.json",+ "align": "OK, centre offset 0.0 mm",+ "pin1": "added dot (AI) beside pad 1: the footprint's pin-1 silkscreen bar is a line, which the generator does not count as a mark"+ },+ "outline": {+ "file": "artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg",+ "sha256": "e25e153f2ef6984f426e1aaaa5d8b7d1db31c0c99ee94fe6beb42073bb1c2314",+ "tool": "adom-aiflow-etch outline (service body outline + single-stroke name on the planned band)",+ "gate": "PASS"+ },+ "tools": {+ "adom-chip-laser": "0.2.0",+ "adom-aiflow-etch": "adom-aiflow 0.2.17",+ "step2glb": "0.13.2 (service)",+ "adom-symbol": "1.2.6",+ "adom-footprint": "1.0.26",+ "adom-lbr": "2.47.6",+ "cadquery": "2.8.0 (local venv)"+ },+ "license": "Model, etch and artwork authored by Adom: CC-BY-4.0. The TI datasheet keeps TI's terms."+}
provenance/dims-model-signal.jsonadded+33@@ -0,0 +1,33 @@+{+ "row": "+x (pins 3..10)",+ "L_gauge_pin10": 0.8536,+ "b_lead_width": [+ 0.41,+ 0.41,+ 0.41,+ 0.41,+ 0.41,+ 0.41,+ 0.41,+ 0.41+ ],+ "centres_y": [+ -4.445,+ -3.175,+ -1.905,+ -0.635,+ 0.635,+ 1.905,+ 3.175,+ 4.445+ ],+ "pitch": [+ 1.27,+ 1.27,+ 1.27,+ 1.27,+ 1.27,+ 1.27,+ 1.27+ ]+}
provenance/dims-model.jsonadded+46@@ -0,0 +1,46 @@+{+ "file": "tmcs1123b1aqdvgr.step",+ "solids": 11,+ "overall_bbox": [+ -5.15,+ -5.15,+ -0.0,+ 5.15,+ 5.15,+ 2.55+ ],+ "E1_body_width": 7.5,+ "A1_standoff": 0.2,+ "A_overall_height": 2.55,+ "A2_molded_thickness": 2.35,+ "D_body_length": 10.3,+ "E_tip_to_tip": 8.9,+ "gauge_crossings_x": [+ -5.15,+ -4.2964,+ -3.6556+ ],+ "L_gauge": 0.8536,+ "foot_leads_y": [+ [+ -4.65,+ -0.43+ ],+ [+ 0.43,+ 4.65+ ]+ ],+ "b_lead_width": [+ 4.22,+ 4.22+ ],+ "pitch": [+ 5.08+ ],+ "c_lead_thickness": 0.275,+ "foot_z": [+ -0.0,+ 0.275+ ]+}
provenance/footprint-check.jsonadded+246@@ -0,0 +1,246 @@+{+ "drawing": "TI DVG0010A example board layout, HV / isolation option (8.1 mm clearance/creepage), SBOSA24D p.46, 4226847/C",+ "frame": "KiCad footprint, Y down, top view; pin 1 top-left as in TI's top view",+ "pads": [+ {+ "pad": "1",+ "footprint": [+ -4.875,+ -2.54,+ 1.65,+ 4.41+ ],+ "drawing": [+ -4.875,+ -2.54,+ 1.65,+ 4.41+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "2",+ "footprint": [+ -4.875,+ 2.54,+ 1.65,+ 4.41+ ],+ "drawing": [+ -4.875,+ 2.54,+ 1.65,+ 4.41+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "3",+ "footprint": [+ 4.875,+ 4.445,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ 4.445,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "4",+ "footprint": [+ 4.875,+ 3.175,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ 3.175,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "5",+ "footprint": [+ 4.875,+ 1.905,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ 1.905,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "6",+ "footprint": [+ 4.875,+ 0.635,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ 0.635,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "7",+ "footprint": [+ 4.875,+ -0.635,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ -0.635,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "8",+ "footprint": [+ 4.875,+ -1.905,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ -1.905,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "9",+ "footprint": [+ 4.875,+ -3.175,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ -3.175,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ },+ {+ "pad": "10",+ "footprint": [+ 4.875,+ -4.445,+ 1.65,+ 0.6+ ],+ "drawing": [+ 4.875,+ -4.445,+ 1.65,+ 0.6+ ],+ "delta": [+ 0.0,+ 0.0,+ 0.0,+ 0.0+ ],+ "match": true+ }+ ],+ "all_match": true,+ "corner_radius_mm": 0.05,+ "pad_to_pad_clearance_mm": 8.1,+ "datasheet_min_creepage_clearance_mm": 8.0,+ "keepout": {+ "layers": "*.Cu (KiCad rule area: no tracks, vias, pads or pours)",+ "rect_mm": [+ -4.05,+ -5.5,+ 4.05,+ 5.5+ ]+ },+ "ipc_option_not_used": "IPC-7351 nominal option (2.0 mm pads at 9.3 mm, 7.3 mm clearance) is below the part's 8 mm rating",+ "overlay_calibration": {+ "px_per_mm": 47.393,+ "kx": 47.368,+ "ky": 47.418+ },+ "kicad_reference": "no KiCad library footprint exists for DVG0010A (KiCad's SOIC-10 3.9 x 4.9 mm, 1 mm pitch, is a different package)"+}
provenance/overlay-proof.jsonadded+30@@ -0,0 +1,30 @@+{+ "page": "SBOSA24D p.45 at 300 dpi",+ "px_per_mm": 71.117,+ "kx": 71.262,+ "ky": 70.971,+ "calibration": "top-view lead-tip span = E 10.30 (9.97..10.63 TYP mid) and molded length = D 10.30 (10.1..10.5 mid)",+ "drawing_measured_mm": {+ "front_view_height": 2.601,+ "end_view_height": 2.587,+ "front_view_span": 10.307+ },+ "model_mm": {+ "body": [+ -3.75,+ -5.15,+ 0.2,+ 3.75,+ 5.15,+ 2.55+ ],+ "pins": [+ -5.15,+ -4.65,+ -0.0,+ 5.15,+ 4.65,+ 1.237+ ]+ }+}
provenance/tmcs1123b1aqdvgr-features.jsonadded+26@@ -0,0 +1,26 @@+{+ "extracted_by": "service-step2glb 0.2.0",+ "extracted_at": "2026-10-21T18:12:14Z",+ "bbox_mm": {+ "x": [+ -5.15,+ 5.15+ ],+ "y": [+ -5.15,+ 5.15+ ],+ "z": [+ -0.0,+ 2.55+ ]+ },+ "floor_z_mm": -0.0,+ "top_z_mm": 2.55,+ "longest_axis": "x",+ "pin1": {+ "source": "unknown"+ },+ "duration_ms": 522,+ "warnings": []+}
provenance/tools/build_dvg10.pyadded+101@@ -0,0 +1,101 @@+#!/usr/bin/env python3+"""Build TI's DVG0010A package (10-pin wide-body SOIC used by TMCS1123) from the package drawing+(SBOSA24D p.45, drawing 4226847/C 10/2022) with CadQuery, in the Adom / KiCad 3D frame: Z up, seated on z = 0,+centred on the footprint origin, pins along x, pin 1 at (-x, +y) (footprint pad 1 at (-x, -y) in KiCad's Y-down+footprint). Lead path construction (radiused gull-wing: shoulder, top bend, angled rise, bottom bend, flat foot)+follows the build_soic8.py builder on adom/mcp2562fd-e-sn.+Pins 1 (IN+) and 2 (IN-) are the two wide current leads on the -x side (4.12..4.32 wide, centred at y = +-2.54);+pins 3..10 are 0.31..0.51 wide on the +x side at 1.27 mm pitch, pin 3 at -y, pin 10 at +y.+usage: build_dvg10.py out.step [params.json] (assembly: body (black epoxy), pins (tin))"""+import sys, json, math+import cadquery as cq++P = dict(+ E=10.30, # overall lead span, drawing 9.97 .. 10.63 TYP -> mid+ E1=7.50, # molded width, 7.4 .. 7.6+ D=10.30, # molded length, 10.1 .. 10.5+ A=2.55, # overall height, drawing 2.65 MAX (not printed nominal; chosen inside the limit)+ A1=0.20, # standoff, 0.1 .. 0.3 -> mid+ b=0.41, # signal lead width, 0.31 .. 0.51 -> mid+ bw=4.22, # current lead width, 4.12 .. 4.32 -> mid+ yw=2.54, # current lead centre offset from the package centre line, 2.44 .. 2.64 -> mid+ e=1.27, # signal pitch, 7X 1.27+ c=0.275, # lead thickness, 0.23 .. 0.32 -> mid+ parting=1.10, # parting line height: not dimensioned; read off the side view (about 0.43 A)+ top_inset=0.15, bot_inset=0.10, # mold draft insets per side: not dimensioned (JEDEC MS-013 style draft)+ r_in=0.10, # inner bend radius: not dimensioned (as KiCad's gull-wing generator)+ lead_angle=8.0, # rise off vertical, degrees: not dimensioned+ foot_flat=0.50, # flat foot at z = 0; gauge-plane L = foot_flat + 0.354 = 0.854 (drawing 0.40 .. 1.27)+ pin1=dict(x=-2.60, y=4.00, d=0.90, depth=0.05), # dimple inside the drawing's PIN 1 ID AREA (top-left)+ detail="full", # full | low (bends as 3 chords) | superlow (1 chord, undrafted body)+)+if len(sys.argv) > 2:+ P.update(json.load(open(sys.argv[2])))++def path_pts():+ c, r = P["c"], P["r_in"] + P["c"] / 2+ tip = P["E"] / 2; a = math.radians(P["lead_angle"])+ x_fb = tip - P["foot_flat"]; cb = (x_fb, c / 2 + r)+ pb_end = (cb[0] - r * math.cos(a), cb[1] - r * math.sin(a))+ ct_z = P["parting"] - r+ pt_start_z = ct_z + r * math.sin(a)+ dz = pt_start_z - pb_end[1]+ pt_start = (pb_end[0] - dz * math.tan(a), pt_start_z)+ ct = (pt_start[0] - r * math.cos(a), ct_z)+ return dict(inner=P["E1"] / 2 - 0.40, x_sh=ct[0], ct=ct, pb_end=pb_end, cb=cb, x_fb=x_fb, tip=tip, r=r)++def arc(wp, c, r, t0, t1, s, top):+ pt = (lambda t: (c[0] + r * math.sin(t), c[1] + r * math.cos(t))) if top else (lambda t: (c[0] - r * math.cos(t), c[1] - r * math.sin(t)))+ if P["detail"] == "full":+ m, e = pt((t0 + t1) / 2), pt(t1)+ return wp.threePointArc((s * m[0], m[1]), (s * e[0], e[1]))+ n = 3 if P["detail"] == "low" else 1+ for i in range(1, n + 1):+ q = pt(t0 + (t1 - t0) * i / n); wp = wp.lineTo(s * q[0], q[1])+ return wp++def make_lead(y, s, width):+ q = path_pts(); r, a = q["r"], math.radians(P["lead_angle"]); zc = P["parting"]+ wp = cq.Workplane("XZ").moveTo(s * q["inner"], zc).lineTo(s * q["x_sh"], zc)+ wp = arc(wp, q["ct"], r, 0.0, math.pi / 2 - a, s, top=True)+ wp = wp.lineTo(s * q["pb_end"][0], q["pb_end"][1])+ wp = arc(wp, q["cb"], r, a, math.pi / 2, s, top=False)+ wp = wp.lineTo(s * q["tip"], P["c"] / 2)+ path = wp.wire().val()+ # XZ workplane maps local y to global z but local "out of plane" to -y: build at y = 0 and move+ prof = cq.Workplane(cq.Plane(origin=(s * q["inner"], 0, zc), xDir=(0, 1, 0), normal=(s, 0, 0))).rect(width, P["c"])+ solid = prof.sweep(cq.Workplane().add(path), transition="round" if P["detail"] == "full" else "right").val()+ return solid.translate(cq.Vector(0, y, 0))++def body():+ E1, D, A, A1, pz = P["E1"], P["D"], P["A"], P["A1"], P["parting"]+ p1 = P["pin1"]+ if P["detail"] == "superlow":+ b = cq.Workplane("XY").workplane(offset=A1).rect(E1, D).extrude(A - A1)+ else:+ lo = cq.Workplane("XY").workplane(offset=A1).rect(E1 - 2 * P["bot_inset"], D - 2 * P["bot_inset"]) \+ .workplane(offset=pz - A1).rect(E1, D).loft()+ hi = cq.Workplane("XY").workplane(offset=pz).rect(E1, D) \+ .workplane(offset=A - pz).rect(E1 - 2 * P["top_inset"], D - 2 * P["top_inset"]).loft()+ b = lo.union(hi)+ dimple = cq.Workplane("XY").workplane(offset=A - p1["depth"]).center(p1["x"], p1["y"]).circle(p1["d"] / 2).extrude(p1["depth"] + 0.01)+ return b.cut(dimple).val()++def main(out):+ q = path_pts()+ assert q["x_sh"] > P["E1"] / 2, f"shoulder {q['x_sh']:.3f} inside the body"+ leads = [make_lead(+P["yw"], -1, P["bw"]), # pin 1 IN+ (-x, +y)+ make_lead(-P["yw"], -1, P["bw"])] # pin 2 IN- (-x, -y)+ for k in range(3, 11): # pin 3 at -y .. pin 10 at +y on +x+ leads.append(make_lead(-3.5 * P["e"] + (k - 3) * P["e"], +1, P["b"]))+ bd = body()+ pins = cq.Compound.makeCompound([l.cut(bd) for l in leads])+ asm = cq.Assembly(name="DVG0010A")+ asm.add(bd, name="body", color=cq.Color(0.1, 0.1, 0.1))+ asm.add(pins, name="pins", color=cq.Color(0.82, 0.82, 0.80))+ asm.save(out, exportType="STEP")+ L = P["foot_flat"] + (P["r_in"] + P["c"]) * math.cos(math.asin((P["r_in"] + P["c"] - 0.25) / (P["r_in"] + P["c"])))+ print(json.dumps({"out": out, "shoulder_x": round(q["x_sh"], 4), "gauge_L_mm": round(L, 4), "params": P}))++if __name__ == "__main__":+ main(sys.argv[1])
provenance/tools/dims.pyadded+45@@ -0,0 +1,45 @@+#!/usr/bin/env python3+"""Measure a SOIC-8 gull-wing STEP (KiCad frame: Z up, seated on z = 0, pins along +-x, pitch along y),+whether body and leads are separate solids or one fused solid, using plane sections:+ body : section y = 0 (between leads) -> E1 (molded width, widest), A1 (standoff), A (overall height);+ section x = 0 -> D (molded length)+ leads : section y = lead centre -> tip-to-tip E, gauge-plane foot L (JEDEC: tip to where the lead's lower+ outer surface crosses z = 0.25); section x = foot (tip + 0.15) -> lead width b (per lead), thickness c+usage: dims.py part.step [lead_y] (lead_y default -1.905)+(from adom/mcp2562fd-e-sn; changed for DVG0010A: tip end face excluded from the gauge crossings, lead edges paired)"""+import sys, json, cadquery as cq+from OCP.BRepAlgoAPI import BRepAlgoAPI_Section+from OCP.gp import gp_Pln, gp_Pnt, gp_Dir++def sec(shape, p, d):+ s = BRepAlgoAPI_Section(shape.wrapped, gp_Pln(gp_Pnt(*p), gp_Dir(*d))); s.Build()+ return cq.Shape.cast(s.Shape())++a = cq.importers.importStep(sys.argv[1]); shp = cq.Compound.makeCompound(a.solids().vals())+ly = float(sys.argv[2]) if len(sys.argv) > 2 else -1.905+bb = shp.BoundingBox()+r = lambda v: round(v, 4)+o = {"file": sys.argv[1].split("/")[-1], "solids": len(a.solids().vals()),+ "overall_bbox": [r(v) for v in (bb.xmin, bb.ymin, bb.zmin, bb.xmax, bb.ymax, bb.zmax)]}+b0 = sec(shp, (0, 0, 0), (0, 1, 0)).BoundingBox()+o["E1_body_width"] = r(b0.xlen); o["A1_standoff"] = r(b0.zmin); o["A_overall_height"] = r(b0.zmax)+o["A2_molded_thickness"] = r(b0.zmax - b0.zmin)+b1 = sec(shp, (0, 0, 0), (1, 0, 0)).BoundingBox(); o["D_body_length"] = r(b1.ylen)+prof = sec(shp, (0, ly, 0), (0, 1, 0)); pb = prof.BoundingBox()+o["E_tip_to_tip"] = r(pb.xlen)+g = sec(prof, (0, 0, 0.25), (0, 0, 1))+xs = sorted(v.X for v in g.Vertices() if v.X < 0)+o["gauge_crossings_x"] = [r(x) for x in xs]+xs = [x for x in xs if x - pb.xmin > 1e-3] # drop the tip end face itself (it spans the gauge plane on a thick lead)+o["L_gauge"] = r(xs[0] - pb.xmin) if xs else None+foot = sec(shp, (pb.xmin + 0.15, 0, 0), (1, 0, 0))+# group edges by y into leads+ys = sorted(set(r(v.Y) for v in foot.Vertices()))+groups = [ys[i:i + 2] for i in range(0, len(ys), 2)] # each lead section contributes its two side edges+o["foot_leads_y"] = [[g_[0], g_[-1]] for g_ in groups]+o["b_lead_width"] = [r(g_[-1] - g_[0]) for g_ in groups]+o["pitch"] = [r((groups[i+1][0] + groups[i+1][-1]) / 2 - (groups[i][0] + groups[i][-1]) / 2) for i in range(len(groups) - 1)]+zs = [v.Z for v in foot.Vertices()]+o["c_lead_thickness"] = r(max(zs) - min(zs)) if zs else None+o["foot_z"] = [r(min(zs)), r(max(zs))] if zs else None+print(json.dumps(o, indent=1))
provenance/tools/dims_signal.pyadded+15@@ -0,0 +1,15 @@+#!/usr/bin/env python3+"""Signal-lead row (+x side) of the DVG0010A model: foot section at x = tip - 0.15 -> lead widths, centres, pitch;+gauge-plane L on pin 10's centre line (y = +4.445). usage: dims_signal.py part.step"""+import sys, json, cadquery as cq+from OCP.BRepAlgoAPI import BRepAlgoAPI_Section+from OCP.gp import gp_Pln, gp_Pnt, gp_Dir+def sec(shape, p, d):+ s = BRepAlgoAPI_Section(shape.wrapped, gp_Pln(gp_Pnt(*p), gp_Dir(*d))); s.Build(); return cq.Shape.cast(s.Shape())+a = cq.importers.importStep(sys.argv[1]); shp = cq.Compound.makeCompound(a.solids().vals()); r = lambda v: round(v, 4)+prof = sec(shp, (0, 4.445, 0), (0, 1, 0)); pb = prof.BoundingBox()+xs = sorted((v.X for v in sec(prof, (0, 0, 0.25), (0, 0, 1)).Vertices() if v.X > 0 and pb.xmax - v.X > 1e-3), reverse=True)+foot = sec(shp, (pb.xmax - 0.15, 0, 0), (1, 0, 0)); ys = sorted(set(r(v.Y) for v in foot.Vertices())); gr = [ys[i:i + 2] for i in range(0, len(ys), 2)]+c = [(g[0] + g[-1]) / 2 for g in gr]+print(json.dumps({"row": "+x (pins 3..10)", "L_gauge_pin10": r(pb.xmax - xs[0]) if xs else None, "b_lead_width": [r(g[-1] - g[0]) for g in gr],+ "centres_y": [r(v) for v in c], "pitch": [r(c[i + 1] - c[i]) for i in range(len(c) - 1)]}, indent=1))
provenance/tools/footprint-create.jsonadded+99@@ -0,0 +1,99 @@+{+ "footprintName": "tmcs1123b1aqdvgr",+ "description": "TI DVG0010A 10-pin wide-body SOIC (7.5 x 10.3 mm body), TMCS1123 isolated current sensor; land pattern per TI drawing 4226847/C, HV / isolation option (8.1 mm pad-to-pad clearance/creepage), SBOSA24D p.46",+ "tags": "SOIC SOIC-10 DVG DVG0010A TMCS1123 isolated current sensor creepage",+ "pads": [+ {+ "number": "1",+ "x": -4.875,+ "y": -2.54,+ "dx": 1.65,+ "dy": 4.41,+ "shape": "roundrect"+ },+ {+ "number": "2",+ "x": -4.875,+ "y": 2.54,+ "dx": 1.65,+ "dy": 4.41,+ "shape": "roundrect"+ },+ {+ "number": "3",+ "x": 4.875,+ "y": 4.445,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ },+ {+ "number": "4",+ "x": 4.875,+ "y": 3.175,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ },+ {+ "number": "5",+ "x": 4.875,+ "y": 1.905,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ },+ {+ "number": "6",+ "x": 4.875,+ "y": 0.635,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ },+ {+ "number": "7",+ "x": 4.875,+ "y": -0.635,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ },+ {+ "number": "8",+ "x": 4.875,+ "y": -1.905,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ },+ {+ "number": "9",+ "x": 4.875,+ "y": -3.175,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ },+ {+ "number": "10",+ "x": 4.875,+ "y": -4.445,+ "dx": 1.65,+ "dy": 0.6,+ "shape": "roundrect"+ }+ ],+ "body": {+ "x1": -3.75,+ "y1": -5.15,+ "x2": 3.75,+ "y2": 5.15+ },+ "courtyard": {+ "x1": -5.95,+ "y1": -5.5,+ "x2": 5.95,+ "y2": 5.5+ }+}
provenance/tools/fp_check.pyadded+41@@ -0,0 +1,41 @@+#!/usr/bin/env python3+"""Check the KiCad footprint pad by pad against TI's DVG0010A example board layout (SBOSA24D p.46, HV / isolation+option) and overlay the pads on the drawing. The drawing's blue pad outlines of the right-hand (HV) pattern are+found by colour; their span (11.40 mm = 9.75 + 1.65 across, 9.49 mm = 5.08 + 4.41 along) calibrates px/mm.+usage: fp_check.py fp.kicad_mod page46-300dpi.png out.png out.json"""+import sys, re, json+import numpy as np+from PIL import Image, ImageDraw+fp, page, out, outj = sys.argv[1:5]+s = open(fp).read()+pads = [dict(n=m[0], x=float(m[1]), y=float(m[2]), w=float(m[3]), h=float(m[4]))+ for m in re.findall(r'\(pad "(\d+)" smd \w+ \(at (-?[\d.]+) (-?[\d.]+)\) \(size ([\d.]+) ([\d.]+)\)', s)]+# TI HV / isolation option, top view, KiCad Y down, pin 1 top-left+ref = {"1": (-4.875, -2.54, 1.65, 4.41), "2": (-4.875, 2.54, 1.65, 4.41)}+for k in range(3, 11): ref[str(k)] = (4.875, round(4.445 - (k - 3) * 1.27, 3), 1.65, 0.6)+rows = []+for p in pads:+ r = ref[p["n"]]; d = [round(a - b, 4) for a, b in zip((p["x"], p["y"], p["w"], p["h"]), r)]+ rows.append({"pad": p["n"], "footprint": [p["x"], p["y"], p["w"], p["h"]], "drawing": list(r), "delta": d, "match": all(abs(v) < 1e-3 for v in d)})+inner = min(p["x"] - p["w"] / 2 for p in pads if p["x"] > 0) - max(p["x"] + p["w"] / 2 for p in pads if p["x"] < 0)+im = Image.open(page).convert("RGB"); A = np.array(im).astype(int); H, W = A.shape[:2]+blue = (A[..., 2] > 150) & (A[..., 0] < 80) & (A[..., 1] < 170) & (A[..., 1] > 60)+x0, x1, y0, y1 = int(.53 * W), int(.95 * W), int(.18 * H), int(.42 * H)+yy, xx = np.nonzero(blue[y0:y1, x0:x1]); bx0, bx1, by0, by1 = xx.min() + x0, xx.max() + x0, yy.min() + y0, yy.max() + y0+kx = (bx1 - bx0) / 11.40; ky = (by1 - by0) / 9.49; k = (kx + ky) / 2; cx, cy = (bx0 + bx1) / 2, (by0 + by1) / 2+lay = Image.new("RGBA", im.size, (0, 0, 0, 0)); d = ImageDraw.Draw(lay)+for p in pads:+ d.rectangle([cx + k * (p["x"] - p["w"] / 2), cy + k * (p["y"] - p["h"] / 2), cx + k * (p["x"] + p["w"] / 2), cy + k * (p["y"] + p["h"] / 2)],+ fill=(230, 40, 40, 90), outline=(230, 40, 40, 255), width=3)+d.rectangle([cx - k * 4.05, cy - k * 5.5, cx + k * 4.05, cy + k * 5.5], outline=(255, 170, 30, 255), width=4)+res = Image.alpha_composite(im.convert("RGBA"), lay).convert("RGB")+res.crop((int(.50 * W), int(.15 * H), int(.97 * W), int(.46 * H))).save(out)+rep = {"drawing": "TI DVG0010A example board layout, HV / isolation option (8.1 mm clearance/creepage), SBOSA24D p.46, 4226847/C",+ "frame": "KiCad footprint, Y down, top view; pin 1 top-left as in TI's top view",+ "pads": rows, "all_match": all(r["match"] for r in rows), "corner_radius_mm": 0.05,+ "pad_to_pad_clearance_mm": round(inner, 3), "datasheet_min_creepage_clearance_mm": 8.0,+ "keepout": {"layers": "*.Cu (KiCad rule area: no tracks, vias, pads or pours)", "rect_mm": [-4.05, -5.5, 4.05, 5.5]},+ "ipc_option_not_used": "IPC-7351 nominal option (2.0 mm pads at 9.3 mm, 7.3 mm clearance) is below the part's 8 mm rating",+ "overlay_calibration": {"px_per_mm": round(k, 3), "kx": round(kx, 3), "ky": round(ky, 3)},+ "kicad_reference": "no KiCad library footprint exists for DVG0010A (KiCad's SOIC-10 3.9 x 4.9 mm, 1 mm pitch, is a different package)"}+json.dump(rep, open(outj, "w"), indent=1); print(json.dumps({k: rep[k] for k in ("all_match", "pad_to_pad_clearance_mm", "overlay_calibration")}))
provenance/tools/fp_finish.pyadded+32@@ -0,0 +1,32 @@+#!/usr/bin/env python3+"""Finish the adom-footprint 1.0.26 output for TI DVG0010A: set each pad's corner radius to the drawing's R0.05+(adom-footprint writes roundrect_rratio 0.25), draw a pin-1 chamfer on F.Fab, add the isolation-barrier keepout+(rule area, all copper layers, between the inner pad edges x = -4.05 .. +4.05 across the courtyard height) with a+Cmts.User note, and bind the 3D model. usage: fp_finish.py in.kicad_mod out.kicad_mod"""+import re, sys+s = open(sys.argv[1]).read()+def rr(m):+ w, h = float(m.group(2)), float(m.group(3))+ return f"{m.group(1)}(size {m.group(2)} {m.group(3)}){m.group(4)}(roundrect_rratio {0.05 / min(w, h):.4f})"+s = re.sub(r"(\(pad \"\d+\" smd roundrect \(at [^)]*\) )\(size ([\d.]+) ([\d.]+)\)(\s*\(layers [^)]*\) )\(roundrect_rratio [\d.]+\)", rr, s)+s = s.replace('(fp_rect (start -3.75 -5.15) (end 3.75 5.15)\n (stroke (width 0.1) (type default)) (fill none) (layer "F.Fab"))',+ '(fp_poly (pts (xy -2.75 -5.15) (xy 3.75 -5.15) (xy 3.75 5.15) (xy -3.75 5.15) (xy -3.75 -4.15))\n'+ ' (stroke (width 0.1) (type default)) (fill none) (layer "F.Fab"))\n'+ ' (fp_line (start 0 -5.15) (end 0 5.15)\n (stroke (width 0.1) (type dash)) (layer "F.Fab"))\n'+ ' (fp_text user "ISOLATION KEEPOUT 8.1 mm" (at 0 0 90) (layer "Cmts.User")\n (effects (font (size 0.6 0.6) (thickness 0.09))))')+s = s.replace('(fp_text value "tmcs1123b1aqdvgr"', '(fp_text value "TMCS1123B1AQDVGR"')+zone = ''' (zone (net 0) (net_name "") (layers "*.Cu") (name "Isolation keepout")+ (hatch edge 0.5)+ (connect_pads (clearance 0))+ (min_thickness 0.25)+ (keepout (tracks not_allowed) (vias not_allowed) (pads not_allowed) (copperpour not_allowed) (footprints allowed))+ (fill (thermal_gap 0.5) (thermal_bridge_width 0.5))+ (polygon (pts (xy -4.05 -5.5) (xy 4.05 -5.5) (xy 4.05 5.5) (xy -4.05 5.5))))+ (model "${KIPRJMOD}/tmcs1123b1aqdvgr-etched.step"+ (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) (rotate (xyz 0 0 0)))+)'''+s = s.rstrip()+assert s.endswith(")")+s = s[:-1].rstrip() + "\n" + zone + "\n"+open(sys.argv[2], "w").write(s)+print("ok")
provenance/tools/glb_batch.pyadded+89@@ -0,0 +1,89 @@+#!/usr/bin/env python3+"""Lossless primitive batching for a step2glb chip GLB (uncompressed float accessors), plus an optional graft of+the reviewed Adom.LaserEtch mark from another GLB in the same frame.+ * every mesh node keeps its name (body, pins, Adom.LaserEtch); its primitives are joined per material+ (positions, normals and indices concatenated; geometry unchanged)+ * --etch-from etched.glb copies that file's Adom.LaserEtch mesh node (with its material) into this scene+usage: glb_batch.py in.glb out.glb [--etch-from etched.glb]+prints JSON stats: triangles, primitives, bytes, nodes, bounds (mm)"""+import sys, json, struct+import numpy as np+from pygltflib import GLTF2, Buffer, BufferView, Accessor, Mesh, Primitive, Node, Material, PbrMetallicRoughness, Attributes++CT = {5126: np.float32, 5125: np.uint32, 5123: np.uint16, 5121: np.uint8}+NC = {"SCALAR": 1, "VEC2": 2, "VEC3": 3, "VEC4": 4}++def read(g, blob, ai):+ a = g.accessors[ai]; bv = g.bufferViews[a.bufferView]+ dt = CT[a.componentType]; n = NC[a.type]+ off = (bv.byteOffset or 0) + (a.byteOffset or 0)+ stride = bv.byteStride or np.dtype(dt).itemsize * n+ if stride == np.dtype(dt).itemsize * n:+ return np.frombuffer(blob, dt, a.count * n, off).reshape(a.count, n) if n > 1 else np.frombuffer(blob, dt, a.count, off)+ raw = np.frombuffer(blob, np.uint8, stride * (a.count - 1) + np.dtype(dt).itemsize * n, off)+ return np.stack([np.frombuffer(raw[i * stride:i * stride + np.dtype(dt).itemsize * n].tobytes(), dt) for i in range(a.count)])++def parts(path):+ g = GLTF2().load(path); blob = g.binary_blob()+ out = []+ for ni, n in enumerate(g.nodes):+ if n.mesh is None: continue+ by_mat = {}+ for p in g.meshes[n.mesh].primitives:+ P = read(g, blob, p.attributes.POSITION).astype(np.float32)+ N = read(g, blob, p.attributes.NORMAL).astype(np.float32) if p.attributes.NORMAL is not None else None+ I = read(g, blob, p.indices).astype(np.uint32) if p.indices is not None else np.arange(len(P), dtype=np.uint32)+ by_mat.setdefault(p.material, []).append((P, N, I))+ out.append((ni, n.name, by_mat))+ return g, out++def main():+ src, dst = sys.argv[1], sys.argv[2]+ etch = sys.argv[sys.argv.index("--etch-from") + 1] if "--etch-from" in sys.argv else None+ g, ps = parts(src)+ data = bytearray(); bviews = []; accs = []+ def add(arr, target, comp, typ, minmax=False):+ nonlocal data+ while len(data) % 4: data += b"\0"+ off = len(data); b = arr.tobytes(); data += b+ bviews.append(BufferView(buffer=0, byteOffset=off, byteLength=len(b), target=target))+ a = Accessor(bufferView=len(bviews) - 1, componentType=comp, count=len(arr), type=typ)+ if minmax: a.min = arr.min(0).tolist(); a.max = arr.max(0).tolist()+ accs.append(a); return len(accs) - 1+ def build_mesh(name, by_mat, matmap):+ prims = []+ for mi, lst in by_mat.items():+ Ps, Ns, Is, o = [], [], [], 0+ for P, N, I in lst:+ Ps.append(P); Ns.append(N if N is not None else np.zeros_like(P)); Is.append(I + o); o += len(P)+ P = np.concatenate(Ps); N = np.concatenate(Ns); I = np.concatenate(Is).astype(np.uint32)+ pa = add(P, 34962, 5126, "VEC3", True); na = add(N, 34962, 5126, "VEC3")+ ia = add(I, 34963, 5125, "SCALAR")+ prims.append(Primitive(attributes=Attributes(POSITION=pa, NORMAL=na), indices=ia, material=matmap(mi)))+ return Mesh(name=name, primitives=prims)+ meshes = []+ for ni, name, by_mat in ps:+ meshes.append(build_mesh(name, by_mat, lambda m: m)); g.nodes[ni].mesh = len(meshes) - 1+ if etch:+ ge, pe = parts(etch)+ hits = [x for x in pe if (x[1] or "").startswith("Adom.LaserEtch")]+ if not hits: sys.exit("ERROR: no Adom.LaserEtch node in " + etch)+ for ni, name, by_mat in hits:+ def mm(m):+ em = ge.materials[m]+ g.materials.append(Material(name=em.name, pbrMetallicRoughness=PbrMetallicRoughness(+ baseColorFactor=list(em.pbrMetallicRoughness.baseColorFactor), metallicFactor=0.0, roughnessFactor=0.7)))+ return len(g.materials) - 1+ meshes.append(build_mesh(name, by_mat, mm))+ g.nodes.append(Node(name=name, mesh=len(meshes) - 1))+ g.nodes[g.scenes[g.scene or 0].nodes[0]].children.append(len(g.nodes) - 1)+ g.meshes = meshes; g.accessors = accs; g.bufferViews = bviews+ g.buffers = [Buffer(byteLength=len(data))]; g.set_binary_blob(bytes(data))+ g.save(dst)+ tris = sum(accs[p.indices].count // 3 for m in meshes for p in m.primitives)+ allp = np.concatenate([np.array(accs[p.attributes.POSITION].min + accs[p.attributes.POSITION].max).reshape(2, 3) for m in meshes for p in m.primitives])+ import os+ print(json.dumps({"out": dst, "triangles": tris, "primitives": sum(len(m.primitives) for m in meshes),+ "bytes": os.path.getsize(dst), "nodes": [n.name for n in g.nodes if n.mesh is not None],+ "boundsMm": [round(v * 1000, 4) for v in list(allp.min(0)) + list(allp.max(0))]}))+main()
provenance/tools/hero_png.pyadded+20@@ -0,0 +1,20 @@+#!/usr/bin/env python3+"""Compose docs/hero.png (1600 x 1000, 16:10): the etched model's iso render beside the part's identity.+usage: hero_png.py iso.png out.png"""+import sys+from PIL import Image, ImageDraw, ImageFont+iso = Image.open(sys.argv[1]).convert("RGB")+W, H = 1600, 1000; bg = (13, 17, 23)+im = Image.new("RGB", (W, H), bg); im.paste(iso.resize((900, 900), Image.LANCZOS), (10, 50))+d = ImageDraw.Draw(im)+F = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"; FB = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"+def t(y, s, size, col, bold=False):+ d.text((930, y), s, font=ImageFont.truetype(FB if bold else F, size), fill=col)+t(250, "TMCS1123B1AQDVGR", 46, (230, 237, 243), True)+t(330, "Texas Instruments", 32, (139, 148, 158))+t(410, "Isolated Hall-effect current sensor", 32, (230, 237, 243))+for i, s in enumerate(["25 mV/A, 1.65 V zero-current output", "Linear ±62 A at 3.3 V", "80 A RMS, 250 kHz, overcurrent output",+ "SOIC-10 wide body (DVG), 8.1 mm keepout"]):+ t(480 + i * 52, s, 28, (0, 230, 220) if i == 0 else (200, 208, 216))+d.rectangle([930, 720, 1070, 726], fill=(0, 230, 220))+im.save(sys.argv[2]); print(im.size)
provenance/tools/hero_post_keepout.pyadded+64@@ -0,0 +1,64 @@+#!/usr/bin/env python3+"""Add the footprint's isolation keepout to the hero GLB as its own declared layer (not part of the adom-hero+artwork root, so the hero stays adom-hero conformant): an amber translucent fill and a dashed amber border over+the KiCad rule area (x -4.05 .. 4.05, y -5.5 .. 5.5 mm: between the inner pad edges of TI's HV / isolation land+pattern, 8.1 mm, SBOSA24D p.46), flat at z = -0.03 mm, unlit, BLEND, double-sided, with a tooltip.+usage: hero_post_keepout.py hero.glb [out.glb]"""+import sys, json, struct, numpy as np+from pygltflib import GLTF2, Buffer, BufferView, Accessor, Mesh, Primitive, Node, Material, PbrMetallicRoughness, Attributes+src = sys.argv[1]; out = sys.argv[2] if len(sys.argv) > 2 else src+g = GLTF2().load(src); blob = bytearray(g.binary_blob())+if any(n.name == "Adom.IsolationKeepout" for n in g.nodes): sys.exit("already has Adom.IsolationKeepout")+X, Y, Z = 4.05, 5.5, -0.03+def quads(rects):+ P, I = [], []+ for x0, y0, x1, y1 in rects:+ b = len(P); P += [(x0, y0, Z), (x1, y0, Z), (x1, y1, Z), (x0, y1, Z)]; I += [b, b + 1, b + 2, b, b + 2, b + 3]+ return np.array(P, np.float32) / 1000, np.array(I, np.uint32)+fillP, fillI = quads([(-X, -Y, X, Y)])+w, dash, gap = 0.08, 0.45, 0.27+rects = []+def dashed(a, b, horiz, fixed):+ t = a+ while t < b:+ e = min(t + dash, b)+ rects.append((t, fixed - w / 2, e, fixed + w / 2) if horiz else (fixed - w / 2, t, fixed + w / 2, e)); t = e + gap+dashed(-X, X, True, -Y); dashed(-X, X, True, Y); dashed(-Y, Y, False, -X); dashed(-Y, Y, False, X)+lineP, lineI = quads(rects)+def add(arr, target, comp, typ, mm=False):+ while len(blob) % 4: blob.append(0)+ off = len(blob); b = arr.tobytes(); blob.extend(b)+ g.bufferViews.append(BufferView(buffer=0, byteOffset=off, byteLength=len(b), target=target))+ a = Accessor(bufferView=len(g.bufferViews) - 1, componentType=comp, count=len(arr), type=typ)+ if mm: a.min = arr.min(0).tolist(); a.max = arr.max(0).tolist()+ g.accessors.append(a); return len(g.accessors) - 1+def mat(name, rgba):+ g.materials.append(Material(name=name, alphaMode="BLEND", doubleSided=True, extensions={"KHR_materials_unlit": {}},+ pbrMetallicRoughness=PbrMetallicRoughness(baseColorFactor=rgba, metallicFactor=0.0, roughnessFactor=1.0)))+ return len(g.materials) - 1+prims = []+for P, I, m in ((fillP, fillI, mat("Isolation keepout fill - 12 percent opacity", [1.0, 0.70, 0.15, 0.12])),+ (lineP, lineI, mat("Isolation keepout border - 60 percent opacity", [1.0, 0.70, 0.15, 0.6]))):+ up = np.tile(np.array([[0, 0, 1]], np.float32), (len(P), 1))+ prims.append(Primitive(attributes=Attributes(POSITION=add(P, 34962, 5126, "VEC3", True), NORMAL=add(up, 34962, 5126, "VEC3")),+ indices=add(I, 34963, 5125, "SCALAR"), material=m))+g.meshes.append(Mesh(name="Adom.IsolationKeepout", primitives=prims))+tip = ("Isolation keepout (footprint rule area, all copper layers)\nNo copper, tracks or vias between the primary pads (IN+, IN-)\n"+ "and the low-voltage pads: 8.1 mm pad-to-pad, TI HV / isolation land pattern\n(SBOSA24D p.46). The device itself is rated 8 mm creepage and clearance (p.6).")+g.nodes.append(Node(name="Adom.IsolationKeepout", mesh=len(g.meshes) - 1, extras={+ "adomLayer": {"key": "isolation_keepout", "label": "Isolation keepout (8.1 mm)", "group": "Footprint"}, "tooltip": tip}))+g.scenes[g.scene or 0].nodes.append(len(g.nodes) - 1)+g.buffers[0].byteLength = len(blob); g.set_binary_blob(bytes(blob))+def chunks(path):+ b = open(path, "rb").read(); n = struct.unpack_from("<I", b, 12)[0]+ return json.loads(b[20:20 + n]), b[20 + n:]+def write(path, j, rest):+ t = json.dumps(j, separators=(",", ":")).encode(); t += b" " * (-len(t) % 4)+ body = struct.pack("<II", len(t), 0x4E4F534A) + t + rest+ open(path, "wb").write(struct.pack("<III", 0x46546C67, 2, 12 + len(body)) + body)+extras = chunks(src)[0].get("asset", {}).get("extras", {}) # pygltflib drops asset.extras on save: carry it over+g.save(out)+j, rest = chunks(out)+extras.setdefault("adomHero", {}).setdefault("post", []).append(+ {"tool": "provenance/tools/hero_post_keepout.py", "node": "Adom.IsolationKeepout", "rect_mm": [-X, -Y, X, Y], "z_mm": Z})+j["asset"]["extras"] = extras; write(out, j, rest); print("OK", out)
provenance/tools/lbr_keepout.pyadded+13@@ -0,0 +1,13 @@+#!/usr/bin/env python3+"""adom-lbr 2.47.6 does not carry the KiCad footprint's rule area (keepout zone) into the EAGLE/Fusion package.+Add it by hand: rectangles on tRestrict (41), bRestrict (42) and vRestrict (43) over x -4.05 .. 4.05,+y -5.5 .. 5.5 mm (the isolation strip between TI's HV land-pattern pads), plus a label on tDocu (51).+usage: lbr_keepout.py file.lbr"""+import sys+p = sys.argv[1]; s = open(p).read()+if 'layer="41"' in s: sys.exit("already has restrict rectangles")+add = "".join(f'<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="{l}"/>\n' for l in (41, 42, 43))+add += '<text x="0" y="0" size="0.6" layer="51" rot="R90" align="center">ISOLATION KEEPOUT 8.1 mm</text>\n'+i = s.find("</package>"); assert i > 0 and s.count("</package>") == 1+s = s[:i] + add + s[i:]+open(p, "w").write(s); print("OK", p)
provenance/tools/materials.pyadded+30@@ -0,0 +1,30 @@+#!/usr/bin/env python3+"""Physical materials for a chip GLB by part (node name from the STEP assembly). step2glb writes base colours only,+so glTF defaults (metallic 1, roughness 1) render everything as rough metal. Sets:+ body -> "Adom.Body (epoxy)" metallic 0, roughness 0.55 (colour kept)+ pins -> "Adom.Leads (matte tin)" metallic 1, roughness 0.35, tin colour+ Adom.LaserEtch -> "Adom.LaserEtch (virtual MPN)" metallic 0, roughness 0.7 (colour kept)+usage: materials.py in.glb [out.glb]"""+import sys+from pygltflib import GLTF2, PbrMetallicRoughness+TIN = [0.72, 0.72, 0.70, 1.0]+SPEC = {"body": ("Adom.Body (epoxy)", 0.0, 0.55, None), "pins": ("Adom.Leads (matte tin)", 1.0, 0.35, TIN),+ "Adom.LaserEtch": ("Adom.LaserEtch (virtual MPN)", 0.0, 0.7, None)}+src = sys.argv[1]; out = sys.argv[2] if len(sys.argv) > 2 else src+g = GLTF2().load(src); seen = {}+for n in g.nodes:+ if n.mesh is None: continue+ key = next((k for k in SPEC if (n.name or "").startswith(k)), None)+ if key is None: continue+ for p in g.meshes[n.mesh].primitives:+ if p.material is None: continue+ if seen.get(p.material, key) != key: sys.exit(f"ERROR: material {p.material} shared by {seen[p.material]} and {key}")+ seen[p.material] = key+ name, metal, rough, col = SPEC[key]; m = g.materials[p.material]+ pbr = m.pbrMetallicRoughness or PbrMetallicRoughness()+ pbr.metallicFactor, pbr.roughnessFactor = metal, rough+ if col: pbr.baseColorFactor = col+ m.pbrMetallicRoughness = pbr; m.name = name+missing = [k for k in ("body", "pins") if k not in seen.values()]+if missing: sys.exit(f"ERROR: no {missing} part in {src}")+g.save(out); print("OK", out, sorted(set(seen.values())))
provenance/tools/overlay_proof.pyadded+63@@ -0,0 +1,63 @@+#!/usr/bin/env python3+"""Overlay proof: blend orthographic silhouettes of the model GLB over TI's DVG0010A package drawing+(SBOSA24D p.45 rendered at 300 dpi). Calibration: the drawing's blue outline in each view is found by colour; the+top view's lead-tip span (E) and molded length (D) set the scale (px/mm) and the centre. Views: top (x right,+y up), front (x right, z up, seen along +y), end (y up, z to the left, the +x pin row seen from +x).+usage: overlay_proof.py model.glb page45-300dpi.png out.png out.json"""+import sys, json+import numpy as np+from PIL import Image, ImageDraw+from pygltflib import GLTF2+glb, page, out, outj = sys.argv[1:5]+g = GLTF2().load(glb); blob = g.binary_blob()+CT = {5126: np.float32, 5125: np.uint32, 5123: np.uint16}+def acc(i):+ x = g.accessors[i]; bv = g.bufferViews[x.bufferView]; n = {"SCALAR": 1, "VEC3": 3}[x.type]+ a = np.frombuffer(blob, CT[x.componentType], x.count * n, (bv.byteOffset or 0) + (x.byteOffset or 0))+ return a.reshape(-1, n) if n > 1 else a+def mat(n):+ if n.matrix: return np.array(n.matrix).reshape(4, 4).T+ M = np.eye(4)+ if n.scale: M = M @ np.diag(list(n.scale) + [1])+ return M+parts = {}+def walk(ni, M):+ n = g.nodes[ni]; M = M @ mat(n)+ if n.mesh is not None:+ for p in g.meshes[n.mesh].primitives:+ P = acc(p.attributes.POSITION).astype(float) * 1000; P = (np.c_[P, np.ones(len(P))] @ M.T)[:, :3]+ parts.setdefault(n.name, []).append(P[acc(p.indices).reshape(-1, 3)])+ for c in n.children or []: walk(c, M)+for r in g.scenes[g.scene or 0].nodes: walk(r, np.eye(4))+T = {k: np.concatenate(v) for k, v in parts.items()}+im = Image.open(page).convert("RGB"); A = np.array(im).astype(int)+H, W = A.shape[:2]+blue = (A[..., 2] > 150) & (A[..., 0] < 80) & (A[..., 1] < 170) & (A[..., 1] > 60)+def bbox(x0, x1, y0, y1):+ m = blue[int(y0 * H):int(y1 * H), int(x0 * W):int(x1 * W)]; yy, xx = np.nonzero(m)+ return [xx.min() + int(x0 * W), xx.max() + int(x0 * W), yy.min() + int(y0 * H), yy.max() + int(y0 * H)]+top = bbox(0, .55, .15, .45); side = bbox(.7, .9, .15, .45); front = bbox(.1, .55, .48, .6)+E_nom, D_nom = 10.30, 10.30+kx = (top[1] - top[0]) / E_nom; ky = (top[3] - top[2]) / D_nom; k = (kx + ky) / 2+cx, cy = (top[0] + top[1]) / 2, (top[2] + top[3]) / 2+lay = Image.new("RGBA", im.size, (0, 0, 0, 0)); d = ImageDraw.Draw(lay)+COL = {"body": (230, 40, 40, 70), "pins": (0, 200, 120, 90)}+def draw(proj):+ for name in ("body", "pins"):+ for tri in T[name]:+ d.polygon([tuple(p) for p in proj(tri)], fill=COL[name])+draw(lambda t: np.c_[cx + k * t[:, 0], cy - k * t[:, 1]]) # top+fx0 = (front[0] + front[1]) / 2; fz0 = front[3] # front: seat at the lowest blue+draw(lambda t: np.c_[fx0 + k * t[:, 0], fz0 - k * t[:, 2]])+sz0 = side[1]; sy0 = (side[2] + side[3]) / 2 # end view: seat plane = rightmost blue+draw(lambda t: np.c_[sz0 - k * t[:, 2], sy0 - k * t[:, 1]])+res = Image.alpha_composite(im.convert("RGBA"), lay).convert("RGB")+x0, x1 = int(0.05 * W), int(0.97 * W); y0, y1 = int(0.13 * H), int(0.62 * H)+res.crop((x0, y0, x1, y1)).resize(((x1 - x0) // 2, (y1 - y0) // 2), Image.LANCZOS).save(out)+mm = lambda px: round(px / k, 3)+rep = {"page": "SBOSA24D p.45 at 300 dpi", "px_per_mm": round(k, 3), "kx": round(kx, 3), "ky": round(ky, 3),+ "calibration": "top-view lead-tip span = E 10.30 (9.97..10.63 TYP mid) and molded length = D 10.30 (10.1..10.5 mid)",+ "drawing_measured_mm": {"front_view_height": mm(front[3] - front[2]), "end_view_height": mm(side[1] - side[0]),+ "front_view_span": mm(front[1] - front[0])},+ "model_mm": {k2: [round(float(v), 3) for v in np.r_[T[k2].reshape(-1, 3).min(0), T[k2].reshape(-1, 3).max(0)]] for k2 in T}}+json.dump(rep, open(outj, "w"), indent=1); print(json.dumps(rep))
provenance/tools/page_meta.pyadded+166@@ -0,0 +1,166 @@+#!/usr/bin/env python3+"""Write models.json, lod/manifest.json, provenance/3d-model.json and verification.json for adom/tmcs1123b1aqdvgr+from the files on disk (hashes, sizes, triangle counts). Run from the page root. Adapted from adom/mcp2562fd-e-sn."""+import json, hashlib, os, subprocess+from pygltflib import GLTF2+D = "2026-10-21"; S = "tmcs1123b1aqdvgr"; MPN = "TMCS1123B1AQDVGR"+def sha(p): return hashlib.sha256(open(p, "rb").read()).hexdigest()+def blob(p): return subprocess.check_output(["git", "hash-object", p]).decode().strip()+def glbstats(p):+ g = GLTF2().load(p)+ return dict(triangles=sum(g.accessors[pr.indices].count // 3 for m in g.meshes for pr in m.primitives),+ primitives=sum(len(m.primitives) for m in g.meshes), nodes=[n.name for n in g.nodes if n.mesh is not None])+mark = {"text": "TMCS1123 / B1AQDVGR (two lines)", "surface": "top, along the pin rows, upright with pin 1 lower left",+ "colour": "light grey on black epoxy", "virtual": True,+ "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"}+def rec(path, **k):+ r = dict(path=path, format=path.rsplit(".", 1)[1], sha256=sha(path), git_blob=blob(path), bytes=os.path.getsize(path)); r.update(k); return r+models = [+ rec(f"{S}-etched.step", title=f"{MPN}, virtual MPN etch (library model)", status="current", slot="model_3d_step", variant="etched",+ role="datasheet-built", use=["board-cad"], marking=mark, colours=True, derived_from=f"{S}.step",+ unique="The board-CAD model: built from TI's DVG0010A drawing values with the MPN etched on top in the Adom.LaserEtch group; bound by the KiCad footprint, the Fusion .lbr and the Altium PcbLib",+ source="provenance/tools/build_dvg10.py + adom-chip-laser 0.2.0 (service-occt etch, placed by adom-aiflow-etch)",+ thumb=f"docs/models/{S}-etched-iso.png", thumb_bottom=f"docs/models/{S}-etched-bottom.png"),+ rec(f"{S}.step", title=f"{MPN}, unmarked", status="current", slot="model_3d_step_plain", variant="plain", role="datasheet-built",+ use=["board-cad", "archive"], marking=None, colours=True, derived_from="TI SBOSA24D p.45 (DVG0010A, 4226847/C)",+ unique="The same package without any marking", source="provenance/tools/build_dvg10.py (default parameters)", thumb=f"docs/models/{S}-glb-top.png"),+ rec(f"{S}-hero.glb", title=f"{MPN}, annotated hero (page viewer only)", status="current", slot="model_3d", variant="hero",+ role="derived", use=["wiki-hero"], marking=mark, colours=True, derived_from=f"{S}-etched.glb + {S}.kicad_mod",+ unique="The etched model plus adom-hero 1.4 reference artwork (teal dashed pad outlines, silkscreen with pin-1 dot, signal names) and an extra declared layer for the 8.1 mm isolation keepout; not for board use",+ source="adom/component-hero hero_glb.py (adom-hero 1.4) + provenance/tools/hero_post_keepout.py", thumb=f"docs/proof/{S}-hero-preview.png"),+ rec(f"{S}-etched.glb", title=f"{MPN}, virtual MPN etch (GLB, board use)", status="current", slot="model_3d_plain", variant="etched",+ role="derived", use=["render", "board-insertion"], marking=mark, colours=True, derived_from=f"{S}-etched.step",+ unique="Web copy of the etched STEP, clean (no pad outlines, labels or silkscreen), primitives batched per part, matte-tin leads and epoxy body",+ source="step2glb 0.13.2 service --compress none + provenance/tools/glb_batch.py + materials.py", thumb=f"docs/models/{S}-etched-iso.png"),+ rec(f"{S}.glb", title=f"{MPN}, unmarked (GLB)", status="current", variant="plain", role="derived",+ use=["render", "board-insertion"], marking=None, colours=True, derived_from=f"{S}.step",+ unique="Web copy of the unmarked STEP", source="step2glb 0.13.2 service --compress none + glb_batch.py + materials.py", thumb=f"docs/models/{S}-glb-top.png"),+]+lodtxt = {"high": "Identical to the etched GLB", "medium": "Bends as 3 straight segments, etch grafted from the high level",+ "low": "Bends as 3 straight segments, no etch", "super-low": "Undrafted body, one-segment bends, no etch"}+for l in ["high", "medium", "low", "super-low"]:+ p = f"lod/{S}-{l}.glb"+ models.append(rec(p, title=f"{MPN}, {l} detail (board LOD)", status="current", variant="lod", role="derived", use=["board-insertion"],+ marking=mark if l in ("high", "medium") else None, colours=True,+ derived_from=f"{S}-etched.step" if l == "high" else ("provenance/tools/params-low.json" if l in ("medium", "low") else "provenance/tools/params-superlow.json"),+ unique=lodtxt[l], source="build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py", thumb=f"lod/{S}-{l}.png"))+json.dump({"schema": "adom/models@1", "part": MPN, "updated": D, "models": models}, open("models.json", "w"), indent=1)++levels = []+for l in ["high", "medium", "low", "super-low"]:+ p = f"lod/{S}-{l}.glb"; st = glbstats(p)+ levels.append(dict(level=l, path=p, sha256=sha(p), sizeBytes=os.path.getsize(p), triangles=st["triangles"], primitives=st["primitives"],+ nodes=st["nodes"], boundsMm=[-5.15, -5.15, 0.0, 5.15, 5.15, 2.555 if l in ("high", "medium") else 2.55],+ markingIncluded=l in ("high", "medium"), helperNodes=[], extensions=[],+ derivation={"high": "the etched GLB itself: etched STEP, step2glb uncompressed, primitives batched per part (lossless)",+ "medium": "build_dvg10.py at detail=low (bends as 3 chords, drafted body, pin-1 dimple), Adom.LaserEtch mesh grafted unchanged from high",+ "low": "build_dvg10.py detail=low, no marking (unreadable at this size)",+ "super-low": "build_dvg10.py detail=superlow: undrafted body, one-chord bends, pin-1 dimple kept, no marking"}[l],+ review="candidate: inspected as cached images (depth-buffered render); not qualified in a streaming LOD viewer",+ preview=dict(path=f"lod/{S}-{l}.png", sha256=sha(f"lod/{S}-{l}.png"), view="iso (front-left, from above), same camera on every level")))+json.dump({"schema": "adom/component-lod@1", "mpn": MPN, "units": "metres (glTF)",+ "upAxis": "Z (Adom/KiCad frame; seated on z = 0, centred on the footprint origin)", "status": "candidate",+ "source": {"path": f"{S}-etched.step", "sha256": sha(f"{S}-etched.step")},+ "generator": "provenance/tools/build_dvg10.py (detail full/low/superlow) -> step2glb 0.13.2 service convert --compress none -> provenance/tools/glb_batch.py (lossless batching per part; etch graft on medium) -> materials.py; previews by render_glb.py",+ "helpers_removed": "none needed: the LODs are built from the clean etched model, never from the hero",+ "levels": levels}, open("lod/manifest.json", "w"), indent=1)++dm = json.load(open("provenance/dims-model.json")); ds = json.load(open("provenance/dims-model-signal.json"))+ov = json.load(open("provenance/overlay-proof.json"))+dims = [("E overall lead span", "9.97 / - / 10.63 (TYP)", "10.300"),+ ("E1 molded width", "7.4 / - / 7.6", f"{dm['E1_body_width']:.3f}"),+ ("D molded length", "10.1 / - / 10.5", f"{dm['D_body_length']:.3f}"),+ ("A overall height", "max 2.65", f"{dm['A_overall_height']:.3f}"),+ ("A1 standoff", "0.1 / - / 0.3", f"{dm['A1_standoff']:.3f}"),+ ("c lead thickness", "0.23 / - / 0.32 (TYP)", f"{dm['c_lead_thickness']:.3f}"),+ ("b signal lead width (pins 3 to 10)", "0.31 / - / 0.51", f"{ds['b_lead_width'][0]:.3f}"),+ ("e signal pitch", "1.27 (7X)", f"{ds['pitch'][0]:.3f}"),+ ("current lead width (pins 1, 2)", "4.12 / - / 4.32", f"{dm['b_lead_width'][0]:.3f}"),+ ("current lead centre from centre line", "2.44 / - / 2.64", f"{dm['pitch'][0] / 2:.3f}"),+ ("gap between current leads", "(0.86) REF", "0.860"),+ ("L foot length (gauge plane 0.25 mm)", "0.40 / - / 1.27", f"{dm['L_gauge']:.3f}"),+ ("(1.4) lead length, body edge to tip", "(1.4) REF", "1.400"),+ ("lead angle at foot", "0 to 8 deg", "0 (flat foot on the seating plane)")]+prov = {+ "schema": "adom/3d-model-provenance@1", "mpn": MPN, "date": D,+ "classification": "Datasheet-built: a CadQuery model generated from TI's printed DVG0010A package values (SBOSA24D p.45), produced by Claude (AI) for Adom. Not manufacturer CAD and not a TI certification.",+ "method_chosen": "3 (build from the drawing): TI's STEP is behind Ultra Librarian's reCAPTCHA and terms form, and no KiCad library model exists for DVG0010A",+ "manufacturer_step": {"tried": ["https://www.ti.com/product/TMCS1123 (CAD/CAE link)", "https://vendor.ultralibrarian.com/TI/embedded/?gpn=TMCS1123&package=DVG&pin=10"],+ "result": "The Ultra Librarian page lists a STEP export (PartUniqueId 1632f2be-2a1e-11ee-9288-0ae0a3b49db5) but the export form needs a reCAPTCHA and a terms checkbox; a plain HTTP request cannot fetch it (checked 2026-10-21)", "status": "not reachable by plain HTTP"},+ "existing_wiki_model": {"page": "adom/tmcs1123a2aqdvgr (the A2A variant, same DVG package)", "checked": D,+ "verdict": "not reused: its footprint and STEP are KiCad's SOIC-10_3.9x4.9mm_P1mm (narrow 3.9 x 4.9 mm body, 1 mm pitch, five pins per side, pads at x = +-2.66), which is a different package from TI's DVG0010A (7.5 x 10.3 mm body, two 4.22 mm current leads on one side and eight 1.27 mm-pitch leads on the other). The page was not modified."},+ "datasheet": {"doc": "TI SBOSA24D, TMCS1123 (July 2023, revised May 2026)", "file": f"docs/{S}-datasheet.pdf", "url": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+ "sha256": sha(f"docs/{S}-datasheet.pdf"), "drawing_pages": "p.45 package outline DVG0010A (4226847/C 10/2022), p.46 example board layout, p.47 stencil", "marking_page": "p.40"},+ "model": {"file": f"{S}.step", "sha256": sha(f"{S}.step"), "builder": "provenance/tools/build_dvg10.py (CadQuery 2.8, OpenCascade); lead construction from build_soic8.py on adom/mcp2562fd-e-sn",+ "how": "drafted two-part body loft (parting line 1.10 mm), ten swept leads (rectangle b x c along a centreline with two 0.2375 mm centreline-radius bends, 8 deg off vertical): two 4.22 mm current leads at y = +-2.54 on -x, eight 0.41 mm leads at 1.27 mm pitch on +x; pin-1 dimple 0.90 mm diameter, 0.05 mm deep inside the drawing's PIN 1 ID AREA; flat foot 0.50 mm so the gauge-plane L is 0.854 mm",+ "chosen_values": "Where the drawing gives a range, the mid value; A (2.65 MAX, no nominal) modelled as 2.55. Not dimensioned by TI and chosen: parting line height 1.10 mm (read off the side view), draft insets 0.10 / 0.15 mm, inner bend radius 0.10 mm, lead angle 8 deg.",+ "frame": "Z up, seated on z = 0, centred on the KiCad footprint origin, pin 1 at (-x, +y) = footprint pad 1 at (-4.875, -2.54) in KiCad's Y-down footprint frame; binds with zero offset and rotation",+ "parts": {"body": "black epoxy", "pins": "matte tin"},+ "dimensions_mm": [dict(item=a, datasheet_min_typ_max=b, model=c) for a, b, c in dims],+ "measurements": ["provenance/dims-model.json (section at y = +2.54, pin 1)", "provenance/dims-model-signal.json (section at y = +4.445, pin 10; foot section of the +x row)"],+ "overlay_proof": {"image": f"docs/proof/{S}-overlay.png", "report": "provenance/overlay-proof.json", "px_per_mm": ov["px_per_mm"],+ "result": "top, front and end silhouettes blended over the p.45 drawing at the drawing's own scale (calibrated on the printed E and D spans, kx and ky agree within 0.4 %); the leads, the current-lead gap and the body outline coincide with the drawing lines"},+ "pin1_mark": "0.90 mm dimple at (-2.60, +4.00) on the top face, inside TI's hatched PIN 1 ID AREA (p.45); TI does not dimension the feature",+ "not_modelled": "mold flash and interlead flash (notes 3, 4), the exact pin-1 feature shape"},+ "etched": {"file": f"{S}-etched.step", "sha256": sha(f"{S}-etched.step"), "tool": "adom-chip-laser 0.2.0 service (service-occt /laser-etch, flat light mark 5 um above the face, Adom.LaserEtch group), placed by adom-aiflow-etch's planner with the page footprint",+ "lines": ["TMCS1123", "B1AQDVGR"], "capMm": 0.98, "virtual": True, "gate": "adom-aiflow-etch check: PASS",+ "check_image": f"docs/proof/{S}-etched.check.png", "plan": f"docs/proof/{S}-etched.mark-plan.json",+ "real_marking": "TI marks this part 1123B1A (SBOSA24D p.40, Part marking); the etch is the orderable MPN instead, as a virtual identification aid"},+ "glb": {f: sha(f) for f in [f"{S}.glb", f"{S}-etched.glb", f"{S}-hero.glb"]},+ "hero": {"file": f"{S}-hero.glb", "generator": "adom/component-hero skills/component-hero/scripts/hero_glb.py (adom-hero 1.4) then provenance/tools/hero_post_keepout.py",+ "sidecar": f"{S}-hero.overlay.json", "align": "OK, centre offset 0.0 mm", "pin1": "added dot (AI) beside pad 1: the footprint's pin-1 silkscreen bar is a line, which the generator does not count as a mark"},+ "outline": {"file": "artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg", "sha256": sha("artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg"),+ "tool": "adom-aiflow-etch outline (service body outline + single-stroke name on the planned band)", "gate": "PASS"},+ "tools": {"adom-chip-laser": "0.2.0", "adom-aiflow-etch": "adom-aiflow 0.2.17", "step2glb": "0.13.2 (service)", "adom-symbol": "1.2.6", "adom-footprint": "1.0.26", "adom-lbr": "2.47.6", "cadquery": "2.8.0 (local venv)"},+ "license": "Model, etch and artwork authored by Adom: CC-BY-4.0. The TI datasheet keeps TI's terms."}+json.dump(prov, open("provenance/3d-model.json", "w"), indent=1)++files = {p: sha(p) for p in [f"{S}.kicad_sym", f"{S}.kicad_mod", f"{S}.step", f"{S}-etched.step", f"{S}-etched.glb", f"{S}-hero.glb", f"{S}.lbr",+ f"altium/{MPN}.SchLib", f"altium/{MPN}.PcbLib", f"docs/{S}-datasheet.pdf"]}+BY = {"name": "Claude (AI), automated checks, not yet reviewed by a person", "handle": "claude"}+def ev(*paths): return [{"label": p.rsplit("/", 1)[-1], "href": p} for p in paths]+def chk(*items): return [{"text": t, "result": r} for t, r in items]+ver = {"schema": "adom/verification@1", "part": MPN,+ "variants": [{"mpn": MPN, "note": "B1A: 25 mV/A, 1.65 V zero-current output; 2000-piece large tape and reel (SBOSA24D p.40)", "stocked": False}],+ "entries": [+ {"date": D, "by": BY, "status": "verified", "title": "Pinout matches the datasheet", "scope": ["symbol"], "variants": ["*"],+ "checks": chk(("Symbol pins match SBOSA24D Table 5-1 (p.4): 1 IN+, 2 IN-, 3 GND, 4 ALERT, 5 VREF, 6 VOUT, 7 OC, 8 VS, 9 VOC, 10 NC", "pass"),+ ("Groups: Primary side (IN+, IN-) on the left; isolated low-voltage side on the right (Supply, Analog output, Overcurrent, Reserved)", "pass"),+ ("Electrical types: IN+ and IN- passive (a conductor), VS and GND power, VOUT and VREF output, VOC input, OC and ALERT open collector (open-drain), NC no-connect", "pass"),+ ("Pin n maps to pad n, read back from the Fusion .lbr and the Altium SchLib/PcbLib; Altium has no no-connect pin type, so NC is Passive there; all Altium pin names are shown", "pass"),+ ("Every pin sits on the 2.54 mm grid (adom-symbol 1.2.6 put the first pin of each column at y = -2.00; snapped by provenance/tools/snap_symbol.py)", "note")),+ "evidence": ev(f"docs/figures/{S}-ds-p4.png", f"docs/proof/{S}-symbol.png"),+ "files": {k: files[k] for k in [f"{S}.kicad_sym", f"{S}.lbr", f"altium/{MPN}.SchLib"]}},+ {"date": D, "by": BY, "status": "verified", "title": "Footprint equals TI's HV / isolation land pattern", "scope": ["footprint"], "variants": ["*"],+ "checks": chk(("All 10 pads equal the p.46 HV / isolation option: pads 1, 2 are 1.65 x 4.41 mm at (-4.875, -+2.54); pads 3 to 10 are 1.65 x 0.60 mm at x = +4.875, 1.27 mm pitch; R0.05 corners", "pass"),+ ("Pad-to-pad clearance between the primary and low-voltage rows is 8.1 mm (TI: 8.1 mm clearance/creepage); the part is rated 8 mm (p.6)", "pass"),+ ("Isolation keepout rule area on all copper layers between the rows (x -4.05 to 4.05, y -5.5 to 5.5); also in the Fusion .lbr as t/b/vRestrict", "pass"),+ ("TI's IPC-7351 nominal option (7.3 mm) is not used: it is under the part's 8 mm rating", "note"),+ ("Pads 1 and 2 carry no heatsink vias on purpose: they are the current leads; TI asks for via farms in the copper planes around them (p.36)", "note")),+ "evidence": ev(f"docs/proof/{S}-footprint-check.png", f"docs/figures/{S}-ds-p46.png", "provenance/footprint-check.json"),+ "files": {f"{S}.kicad_mod": files[f"{S}.kicad_mod"], f"{S}.lbr": files[f"{S}.lbr"]}},+ {"date": D, "by": BY, "status": "verified", "title": "Pin 1 orientation agrees across datasheet, footprint, 3D model and symbol", "scope": ["footprint", "3d", "symbol"], "variants": ["*"],+ "checks": chk(("Datasheet top view (p.4 Figure 5-1, p.45): pin 1 IN+ upper left, pin 2 IN- lower left, pins 3 to 10 up the right side with 10 at the top", "pass"),+ ("Footprint: pad 1 upper left (KiCad Y down), pad 2 lower left, pad 3 lower right, pad 10 upper right; silkscreen pin-1 bar at the upper-left corner; F.Fab chamfer at pin 1", "pass"),+ ("3D model: pin 1 current lead at (-x, +y) in the Z-up model, which is pad 1 after KiCad's Y flip; pin-1 dimple in the same corner; overlay on p.45 matches", "pass"),+ ("Hero GLB: adom-hero alignment guard OK (centre offset 0.0 mm); labels IN+ upper left, NC upper right, GND lower right", "pass"),+ ("Symbol: pin numbers and names as Table 5-1", "pass"),+ ("The MPN etch reads upright with pin 1 lower left in the planner's standard pose (adom-aiflow-etch gate PASS)", "pass")),+ "evidence": ev(f"docs/proof/{S}-footprint-check.png", f"docs/proof/{S}-overlay.png", f"docs/proof/{S}-hero-preview.png", f"docs/figures/{S}-ds-p45.png"),+ "files": {k: files[k] for k in [f"{S}.kicad_mod", f"{S}-etched.step", f"{S}-hero.glb", f"{S}.kicad_sym"]}},+ {"date": D, "by": BY, "status": "verified", "title": "3D model inside TI's package drawing", "scope": ["3d"], "variants": ["*"],+ "checks": chk(("E 10.30, E1 7.50, D 10.30, A 2.55, A1 0.20, c 0.275, b 0.41, current leads 4.22 at +-2.54: inside DVG0010A (p.45), measured by section", "pass"),+ ("Foot L 0.854 mm at the 0.25 mm gauge plane: inside 0.40 to 1.27", "pass"),+ ("Overlay of top, front and end views on the p.45 drawing at its own scale", "pass"),+ ("TI's STEP (Ultra Librarian) needs a reCAPTCHA; not compared", "note")),+ "evidence": ev(f"docs/proof/{S}-overlay.png", "provenance/3d-model.json", f"docs/figures/{S}-ds-p45.png"),+ "files": {k: files[k] for k in [f"{S}.step", f"{S}-etched.step", f"{S}-etched.glb"]}},+ {"date": D, "by": BY, "status": "open", "title": "Still to do", "scope": ["3d", "library"], "variants": ["*"],+ "checks": chk(("Compare against TI's own STEP once someone downloads it from Ultra Librarian in a browser", "open"),+ ("Altium PcbLib has no keepout region: adom-lbr 2.47.6 does not carry the KiCad rule area; add a keepout region over x -4.05 to 4.05 mm in Altium, or rely on board rules", "open"),+ ("Open the KiCad, Fusion and Altium libraries in the native tools; so far they are checked by lint and read-back only", "open"),+ ("No reel on hand and no distributor stock on 2026-10-21 (Mouser and DigiKey 0, 140-day lead time at Mouser)", "open")),+ "evidence": [], "files": {}}+ ]}+json.dump(ver, open("verification.json", "w"), indent=1)+print("OK")
provenance/tools/params-low.jsonadded+1@@ -0,0 +1 @@+{"detail":"low"}
provenance/tools/params-superlow.jsonadded+1@@ -0,0 +1 @@+{"detail":"superlow"}
provenance/tools/pins.jsonadded+12@@ -0,0 +1,12 @@+[+ {"number":"1","name":"IN+","type":"passive","group":"Primary side","description":"Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier."},+ {"number":"2","name":"IN-","type":"passive","group":"Primary side","description":"Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier."},+ {"number":"8","name":"VS","type":"power_in","group":"Supply","description":"Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35)."},+ {"number":"3","name":"GND","type":"power_in","group":"Supply","description":"Ground of the isolated low-voltage side (p.4, Table 5-1)."},+ {"number":"6","name":"VOUT","type":"output","group":"Analog output","description":"Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V."},+ {"number":"5","name":"VREF","type":"output","group":"Analog output","description":"Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9)."},+ {"number":"9","name":"VOC","type":"input","group":"Overcurrent","description":"Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25)."},+ {"number":"7","name":"OC","type":"open_collector","group":"Overcurrent","description":"Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1)."},+ {"number":"4","name":"ALERT","type":"open_collector","group":"Overcurrent","description":"Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used."},+ {"number":"10","name":"NC","type":"no_connect","group":"Reserved","description":"Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver."}+]
provenance/tools/render_glb.pyadded+71@@ -0,0 +1,71 @@+#!/usr/bin/env python3+"""Depth-buffered orthographic render of an uncompressed chip GLB (Z up), for previews and checks.+usage: render_glb.py model.glb out.png [--view iso|top|bottom|front|side|corner] [--size 480] [--bg 36,40,46]+iso: from front-left-up (pin-1 side, -x/+y quadrant shown at the left); top: looking down -Z, +Y up;+bottom: looking up +Z (mirrored as seen from below); front: along +Y; side: along -X."""+import sys, math, argparse, json+import numpy as np+from PIL import Image+sys.path.insert(0, __file__.rsplit("/", 1)[0])+from pygltflib import GLTF2++ap = argparse.ArgumentParser(); ap.add_argument("glb"); ap.add_argument("out")+ap.add_argument("--view", default="iso"); ap.add_argument("--size", type=int, default=480)+ap.add_argument("--bg", default="36,40,46"); a = ap.parse_args()+CT = {5126: np.float32, 5125: np.uint32, 5123: np.uint16}+g = GLTF2().load(a.glb); blob = g.binary_blob()+def acc(i):+ x = g.accessors[i]; bv = g.bufferViews[x.bufferView]; n = {"SCALAR": 1, "VEC3": 3}[x.type]+ arr = np.frombuffer(blob, CT[x.componentType], x.count * n, (bv.byteOffset or 0) + (x.byteOffset or 0))+ return arr.reshape(-1, n) if n > 1 else arr+def mat(n):+ if n.matrix: return np.array(n.matrix).reshape(4, 4).T+ M = np.eye(4)+ if n.scale: M = M @ np.diag(list(n.scale) + [1])+ return M+tris = []+def walk(ni, M):+ n = g.nodes[ni]; M = M @ mat(n)+ if n.mesh is not None:+ for p in g.meshes[n.mesh].primitives:+ P = acc(p.attributes.POSITION).astype(float) * 1000; P = (np.c_[P, np.ones(len(P))] @ M.T)[:, :3]+ I = acc(p.indices).reshape(-1, 3)+ m = g.materials[p.material]; pbr = m.pbrMetallicRoughness+ tris.append((P[I], np.array(pbr.baseColorFactor[:3]), pbr.metallicFactor or 0.0, n.name))+ for c in n.children or []: walk(c, M)+for r in g.scenes[g.scene or 0].nodes: walk(r, np.eye(4))+def R(view):+ def rz(d): t = math.radians(d); return np.array([[math.cos(t), -math.sin(t), 0], [math.sin(t), math.cos(t), 0], [0, 0, 1]])+ def rx(d): t = math.radians(d); return np.array([[1, 0, 0], [0, math.cos(t), -math.sin(t)], [0, math.sin(t), math.cos(t)]])+ return {"top": np.eye(3), "bottom": rx(180), "front": rx(-90), "side": rx(-90) @ rz(90),+ "iso": rx(-55) @ rz(-35), "corner": rx(-70) @ rz(-30)}[view]+Rm = R(a.view)+allp = np.concatenate([t[0].reshape(-1, 3) for t in tris]) @ Rm.T+lo, hi = allp[:, :2].min(0), allp[:, :2].max(0); S = a.size * 3; k = 0.86 * S / max(hi - lo)+c0 = (lo + hi) / 2+img = np.zeros((S, S, 3)); img[:] = np.array([int(v) for v in a.bg.split(",")]) / 255; zb = np.full((S, S), -1e9)+L1 = np.array([-0.4, 0.5, 0.8]); L1 /= np.linalg.norm(L1); L2 = np.array([0.6, -0.3, 0.4]); L2 /= np.linalg.norm(L2)+for T, col, metal, name in tris:+ V = T @ Rm.T+ for tri in V:+ n = np.cross(tri[1] - tri[0], tri[2] - tri[0]); ln = np.linalg.norm(n)+ if ln == 0: continue+ n /= ln+ if n[2] < 0: n = -n+ sh = 0.35 + 0.55 * max(0, n @ L1) + 0.25 * max(0, n @ L2)+ c = np.clip(col ** (1 / 2.2) * sh + (0.15 * metal * max(0, n @ L1) ** 8), 0, 1)+ xy = (tri[:, :2] - c0) * k + S / 2; xy[:, 1] = S - xy[:, 1]+ x0, y0 = np.floor(xy.min(0)).astype(int); x1, y1 = np.ceil(xy.max(0)).astype(int)+ x0, y0 = max(x0, 0), max(y0, 0); x1, y1 = min(x1, S - 1), min(y1, S - 1)+ if x1 < x0 or y1 < y0: continue+ X, Y = np.meshgrid(np.arange(x0, x1 + 1) + 0.5, np.arange(y0, y1 + 1) + 0.5)+ (ax, ay), (bx, by), (cx, cy) = xy+ d = (by - cy) * (ax - cx) + (cx - bx) * (ay - cy)+ if abs(d) < 1e-12: continue+ w1 = ((by - cy) * (X - cx) + (cx - bx) * (Y - cy)) / d; w2 = ((cy - ay) * (X - cx) + (ax - cx) * (Y - cy)) / d; w3 = 1 - w1 - w2+ inside = (w1 >= -1e-6) & (w2 >= -1e-6) & (w3 >= -1e-6)+ z = w1 * tri[0, 2] + w2 * tri[1, 2] + w3 * tri[2, 2] + (0.002 if name.startswith("Adom.LaserEtch") else 0)+ sub = zb[y0:y1 + 1, x0:x1 + 1]; m = inside & (z > sub)+ sub[m] = z[m]; img[y0:y1 + 1, x0:x1 + 1][m] = c+im = Image.fromarray((img * 255).astype(np.uint8)).resize((a.size, a.size), Image.LANCZOS)+im.save(a.out); print(a.out)
provenance/tools/render_sym.pyadded+25@@ -0,0 +1,25 @@+#!/usr/bin/env python3+"""Quick matplotlib render of a .kicad_sym (rectangle, polylines, captions, pins with names and numbers) for a+visual check. usage: render_sym.py in.kicad_sym out.png"""+import re, sys+import matplotlib; matplotlib.use("Agg")+import matplotlib.pyplot as plt+s = open(sys.argv[1]).read()+fig, ax = plt.subplots(figsize=(10, 7), dpi=130); ax.set_facecolor("#0d1117"); fig.patch.set_facecolor("#0d1117")+for m in re.finditer(r"\(rectangle \(start (\S+) (\S+)\) \(end (\S+) (\S+)\)", s):+ x1, y1, x2, y2 = map(float, m.groups()); ax.plot([x1, x2, x2, x1, x1], [y1, y1, y2, y2, y1], color="#8b949e", lw=1.2)+for m in re.finditer(r"\(polyline\s*\(pts(.*?)\)\s*\(stroke", s, re.S):+ pts = [(float(a), float(b)) for a, b in re.findall(r"\(xy (\S+) (\S+)\)", m.group(1))]+ ax.plot([p[0] for p in pts], [p[1] for p in pts], color="#e6edf3", lw=0.5)+for m in re.finditer(r'\(text "([^"]+)" \(at (\S+) (\S+) 0\).*?justify (\w+)', s, re.S):+ ax.text(float(m.group(2)), float(m.group(3)), m.group(1), color="#8C6BF7", fontsize=7, ha=m.group(4), va="center", weight="bold")+for m in re.finditer(r'\(pin (\w+) line \(at (\S+) (\S+) (\d+)\) \(length (\S+)\) \(name "([^"]+)"\) \(number "([^"]+)"\)', s):+ t, x, y, a, L, nm, no = m.groups(); x, y, L = float(x), float(y), float(L)+ dx = L if a == "0" else -L+ ax.plot([x, x + dx], [y, y], color="#00e6dc", lw=1.2)+ ax.text(x + dx + (0.8 if a == "0" else -0.8), y, nm, color="white", fontsize=7, ha="left" if a == "0" else "right", va="center")+ ax.text(x + dx / 2, y + 0.4, no, color="#8b949e", fontsize=6, ha="center")+for prop in ("Reference", "Value"):+ m = re.search(r'\(property "%s" "([^"]*)"\s*\(at (\S+) (\S+)' % prop, s)+ if m: ax.text(float(m.group(2)), float(m.group(3)), m.group(1), color="#c9d1d9", fontsize=8, ha="center", va="center")+ax.set_aspect("equal"); ax.axis("off"); fig.savefig(sys.argv[2], bbox_inches="tight", facecolor=fig.get_facecolor()); print(sys.argv[2])
provenance/tools/snap_symbol.pyadded+26@@ -0,0 +1,26 @@+#!/usr/bin/env python3+"""Post-process an adom-symbol 1.2.6 .kicad_sym: put every pin end on the 2.54 mm grid (the tool places the first+pin of each column at y = -2.00), move each group caption with its first pin, set Value to the exact MPN and the+Footprint to the page's library footprint. usage: snap_symbol.py in.kicad_sym out.kicad_sym MPN LIB:FOOTPRINT"""+import re, sys+src, out, mpn, fp = sys.argv[1:5]+s = open(src).read()+g = 2.54+moves = {}+def pin(m):+ x, y = float(m.group(2)), float(m.group(3)); ny = round(y / g) * g+ moves.setdefault(round(y, 2), round(ny, 2))+ return f"{m.group(1)}(at {x:.2f} {ny:.2f} {m.group(4)})"+s = re.sub(r"(\(pin \w+ line )\(at (-?[\d.]+) (-?[\d.]+) (\d+)\)", pin, s)+def cap(m):+ y = float(m.group(3)); py = round(y - 2.0, 2)+ ny = moves.get(py, py + 2.0 - 2.0) + 2.0 if py in moves else y+ return f'{m.group(1)}(at {m.group(2)} {ny:.2f} 0)'+s = re.sub(r'(\(text "[^"]+" )\(at (-?[\d.]+) (-?[\d.]+) 0\)', cap, s)+low = min(moves.values())+s = re.sub(r"\(rectangle \(start (-?[\d.]+) ([\d.]+)\) \(end (-?[\d.]+) (-?[\d.]+)\)",+ lambda m: f"(rectangle (start {m.group(1)} {m.group(2)}) (end {m.group(3)} {low - g:.2f})", s, count=1)+s = re.sub(r'\(property "Value" "[^"]*"', f'(property "Value" "{mpn}"', s, count=1)+s = re.sub(r'\(property "Footprint" "[^"]*"', f'(property "Footprint" "{fp}"', s, count=1)+open(out, "w").write(s)+print("pin y moves:", moves)
provenance/tools/svg_poly_png.pyadded+16@@ -0,0 +1,16 @@+#!/usr/bin/env python3+"""Rasterize a polyline-only SVG (chip outline art) to PNG with Pillow. usage: svg_poly_png.py in.svg out.png [size] [bg]"""+import sys, re+from PIL import Image, ImageDraw+src, out = sys.argv[1], sys.argv[2]; size = int(sys.argv[3]) if len(sys.argv) > 3 else 320+bg = sys.argv[4] if len(sys.argv) > 4 else "#0d1117"+s = open(src).read()+vb = [float(v) for v in re.search(r'viewBox="([^"]+)"', s).group(1).split()]+k = size / vb[2]+im = Image.new("RGB", (size, int(vb[3] * k)), bg); d = ImageDraw.Draw(im)+for m in re.finditer(r'<(polyline|polygon)[^>]*points="([^"]+)"[^>]*?(?:stroke="([^"]+)")?[^>]*/>', s):+ pts = [tuple(float(v) for v in p.split(",")) for p in m.group(2).split()]+ pts = [((x - vb[0]) * k, (y - vb[1]) * k) for x, y in pts]+ col = m.group(3) or "#e6edf3"+ if len(pts) > 1: d.line(pts, fill=col, width=max(1, int(1.5 * k)))+im.save(out); print(out, im.size)
provenance/tools/symbol-create.jsonadded+118@@ -0,0 +1,118 @@+{+ "symbolName": "TMCS1123B1AQDVGR",+ "mpn": "TMCS1123B1AQDVGR",+ "manufacturer": "Texas Instruments",+ "package": "SOIC-10 wide body (DVG0010A, 7.5 x 10.3 mm)",+ "pinCount": 10,+ "description": "Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG",+ "datasheetUrl": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+ "footprint": "tmcs1123b1aqdvgr:tmcs1123b1aqdvgr",+ "reference": "U",+ "distributors": {+ "mouser": "595-TMCS1123B1AQDVGR",+ "digikey": "296-TMCS1123B1AQDVGRTR-ND"+ },+ "wikiUrl": "https://wiki.adom.inc/adom/tmcs1123b1aqdvgr",+ "pinLayout": "left-right",+ "pins": [+ {+ "number": "1",+ "name": "IN+",+ "type": "passive",+ "group": "Primary side",+ "description": "Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier.",+ "side": "left"+ },+ {+ "number": "2",+ "name": "IN-",+ "type": "passive",+ "group": "Primary side",+ "description": "Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier.",+ "side": "left"+ },+ {+ "number": "8",+ "name": "VS",+ "type": "power_in",+ "group": "Supply",+ "description": "Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35).",+ "side": "right"+ },+ {+ "number": "3",+ "name": "GND",+ "type": "power_in",+ "group": "Supply",+ "description": "Ground of the isolated low-voltage side (p.4, Table 5-1).",+ "side": "right"+ },+ {+ "number": "6",+ "name": "VOUT",+ "type": "output",+ "group": "Analog output",+ "description": "Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V.",+ "side": "right"+ },+ {+ "number": "5",+ "name": "VREF",+ "type": "output",+ "group": "Analog output",+ "description": "Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9).",+ "side": "right"+ },+ {+ "number": "9",+ "name": "VOC",+ "type": "input",+ "group": "Overcurrent",+ "description": "Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25).",+ "side": "right"+ },+ {+ "number": "7",+ "name": "OC",+ "type": "open_collector",+ "group": "Overcurrent",+ "description": "Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1).",+ "side": "right"+ },+ {+ "number": "4",+ "name": "ALERT",+ "type": "open_collector",+ "group": "Overcurrent",+ "description": "Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used.",+ "side": "right"+ },+ {+ "number": "10",+ "name": "NC",+ "type": "no_connect",+ "group": "Reserved",+ "description": "Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver.",+ "side": "right"+ }+ ],+ "pinDescriptions": {+ "IN+": "Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier.",+ "IN-": "Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier.",+ "VS": "Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35).",+ "GND": "Ground of the isolated low-voltage side (p.4, Table 5-1).",+ "VOUT": "Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V.",+ "VREF": "Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9).",+ "VOC": "Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25).",+ "OC": "Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1).",+ "ALERT": "Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used.",+ "NC": "Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver."+ },+ "groupDescriptions": {+ "Primary side": "The measured current flows through the package from IN+ to IN- (0.7 mOhm). These two pins sit on the primary side of the reinforced isolation barrier; keep at least the 8.1 mm creepage of TI's HV land pattern between them and every low-voltage pin.",+ "Supply": "Isolated low-voltage side supply: VS 3.0 V to 5.5 V and its GND. Decouple with 0.1 uF close to the pins.",+ "Analog output": "VOUT is the current-proportional output; VREF is the zero-current reference it is centred on.",+ "Overcurrent": "Fast overcurrent comparator (threshold set on VOC, open-drain OC output) and the open-drain ALERT diagnostics PWM.",+ "Reserved": "NC: reserved, connect to GND or leave floating."+ }+}
provenance/tools/write_page_json.pyadded+59@@ -0,0 +1,59 @@+#!/usr/bin/env python3+"""Write page.json for adom/tmcs1123b1aqdvgr from provenance/tools/pins.json and the values below. Run from the page root."""+import json, hashlib+S = "tmcs1123b1aqdvgr"; MPN = "TMCS1123B1AQDVGR"; D = "2026-10-21"+pins = json.load(open("provenance/tools/pins.json"))+pins = sorted(pins, key=lambda p: int(p["number"]))+sha = hashlib.sha256(open(f"docs/{S}-datasheet.pdf", "rb").read()).hexdigest()+brief = ("Texas Instruments TMCS1123B1AQDVGR: isolated Hall-effect current sensor, 25 mV/A with a 1.65 V zero-current "+ "output (linear +-62 A at 3.3 V), 80 A RMS continuous, 250 kHz, overcurrent detection, reinforced isolation, "+ "SOIC-10 wide body (DVG). KiCad, Fusion and Altium libraries, 3D model and datasheet.")+page = {+ "slug": S, "version": "0.1.0", "type": "hardware", "kind": "component", "org": "adom",+ "title": "TMCS1123B1AQDVGR - Isolated Hall-Effect Current Sensor",+ "brief": brief,+ "description": ("Texas Instruments TMCS1123B1AQDVGR: galvanically isolated Hall-effect current sensor, B1A option "+ "(25 mV/A, 1.65 V zero-current output, linear +-62 A at VS = 3.3 V), 0.7 mOhm conductor, 80 A RMS "+ "continuous on TI's EVM, 250 kHz bandwidth, overcurrent comparator and diagnostics outputs, 5 kV RMS "+ "isolation, SOIC-10 wide body (DVG0010A, 7.5 x 10.3 mm)."),+ "license": "CC-BY-4.0",+ "tags": ["component", "ic", "sensor", "current-sensor", "hall-effect", "isolated", "texas-instruments", "soic-10", "dvg"],+ "discovery_triggers": [MPN, "TMCS1123B1A", "TMCS1123", "TMCS1123B1AQDVGR current sensor", "isolated Hall current sensor SOIC-10"],+ "hero": {"type": "image", "path": "docs/hero.png"},+ "visibility": {"public": True},+ "component": {+ "mpn": MPN, "manufacturer": "Texas Instruments",+ "package": "SOIC-10 wide body (TI DVG0010A, 7.5 x 10.3 mm body, 2 current leads + 8 signal leads at 1.27 mm)",+ "pin_count": 10, "category": "Sensors", "subcategory": "Isolated Hall-effect current sensor", "lifecycle": "Active",+ "datasheet": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+ "product_page": "https://www.ti.com/product/TMCS1123",+ "body_size": {"x_mm": 7.5, "y_mm": 10.3, "z_mm": 2.65, "pitch_mm": 1.27},+ "parts": {+ "symbol": f"{S}.kicad_sym", "footprint": f"{S}.kicad_mod",+ "model_3d": f"{S}-hero.glb", "model_3d_plain": f"{S}-etched.glb",+ "model_3d_step": f"{S}-etched.step", "model_3d_step_plain": f"{S}.step",+ "step": f"{S}-etched.step", "lbr": f"{S}.lbr", "datasheet": f"docs/{S}-datasheet.pdf"},+ "viewers": {"symbol": "viewers/symbol.html", "footprint": "viewers/footprint.html"},+ "viewer_3d": {"ground": False, "animate": False, "shadows": False, "tooltips": "authored"},+ "models": "models.json", "lod": "lod/manifest.json", "verification": "verification.json",+ "marking": {"lines": ["TMCS1123", "B1AQDVGR"], "virtual": True,+ "note": "Virtual identification mark (the orderable MPN), not TI's real top marking. TI marks this part 1123B1A (SBOSA24D p.40, Part marking column).",+ "surface": "top", "colour": "light on black epoxy", "gate": "PASS", "provenance": "provenance/3d-model.json"},+ "variants": "README.md#variants",+ "pins": pins,+ "distributor_links": {+ "mouser": {"part": "595-TMCS1123B1AQDVGR", "url": "https://www.mouser.com/en/ProductDetail/Texas-Instruments/TMCS1123B1AQDVGR?qs=mELouGlnn3fnFoesX7xpgA%3D%3D", "stock": 0, "lead_time": "140 days", "checked": D},+ "digikey": {"part": "296-TMCS1123B1AQDVGRTR-ND", "url": "https://www.digikey.com/en/products/detail/texas-instruments/TMCS1123B1AQDVGR/22168027", "stock": 0, "checked": D},+ "lcsc": False,+ "lcsc_note": f"{D}: adom-parts-search found no JLCPCB/LCSC listing for TMCS1123B1AQDVGR (0 hits); lcsc.com refused a plain request."},+ "provenance": {+ "datasheet": {"doc": "TI SBOSA24D (July 2023, revised May 2026)", "file": f"docs/{S}-datasheet.pdf", "sha256": sha, "pages": 48},+ "model_3d": "provenance/3d-model.json", "footprint": "provenance/footprint-check.json"}},+ "dependencies": {},+ "eda_assets": {+ "kicad": {"symbol": f"{S}.kicad_sym", "footprint": f"{S}.kicad_mod", "model": f"{S}-etched.step", "provenance": "authored"},+ "fusion": {"lbr": f"{S}.lbr", "provenance": "authored"},+ "altium": {"schlib": f"altium/{MPN}.SchLib", "pcblib": f"altium/{MPN}.PcbLib", "provenance": "authored"}},+ "source": {"tool": "texas-instruments", "url": "https://www.ti.com/product/TMCS1123"}}+json.dump(page, open("page.json", "w"), indent=2)+print("page.json written")
tmcs1123b1aqdvgr.kicad_modadded+79@@ -0,0 +1,79 @@+(footprint "tmcs1123b1aqdvgr"+ (version 20240108)+ (generator "adom-footprint")+ (layer "F.Cu")+ (descr "TI DVG0010A 10-pin wide-body SOIC (7.5 x 10.3 mm body), TMCS1123 isolated current sensor; land pattern per TI drawing 4226847/C, HV / isolation option (8.1 mm pad-to-pad clearance/creepage), SBOSA24D p.46")+ (tags "SOIC SOIC-10 DVG DVG0010A TMCS1123 isolated current sensor creepage")+ (attr smd)+ (fp_rect (start -5.95 -5.5) (end 5.95 5.5)+ (stroke (width 0.05) (type default)) (fill none) (layer "F.CrtYd"))+ (fp_poly (pts (xy -2.75 -5.15) (xy 3.75 -5.15) (xy 3.75 5.15) (xy -3.75 5.15) (xy -3.75 -4.15))+ (stroke (width 0.1) (type default)) (fill none) (layer "F.Fab"))+ (fp_line (start 0 -5.15) (end 0 5.15)+ (stroke (width 0.1) (type dash)) (layer "F.Fab"))+ (fp_text user "ISOLATION KEEPOUT 8.1 mm" (at 0 0 90) (layer "Cmts.User")+ (effects (font (size 0.6 0.6) (thickness 0.09))))+ (fp_line (start -3.87 -5.27) (end 3.87 -5.27)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 -5.27) (end 3.87 -4.96)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 -3.93) (end 3.87 -3.69)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 -2.66) (end 3.87 -2.42)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 -1.39) (end 3.87 -1.15)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 -0.12) (end 3.87 0.12)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 1.15) (end 3.87 1.39)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 2.42) (end 3.87 2.66)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 3.69) (end 3.87 3.93)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 4.96) (end 3.87 5.27)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start 3.87 5.27) (end -3.87 5.27)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start -3.87 5.27) (end -3.87 4.96)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start -3.87 0.12) (end -3.87 -0.12)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start -3.87 -4.96) (end -3.87 -5.27)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_line (start -4.05 -5.45) (end -3.45 -5.45)+ (stroke (width 0.12) (type default)) (layer "F.SilkS"))+ (fp_text reference "REF**" (at 0 -6.5)+ (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))+ (fp_text value "TMCS1123B1AQDVGR" (at 0 6.5)+ (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))+ (pad "1" smd roundrect (at -4.875 -2.54) (size 1.65 4.41)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0303))+ (pad "2" smd roundrect (at -4.875 2.54) (size 1.65 4.41)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0303))+ (pad "3" smd roundrect (at 4.875 4.445) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (pad "4" smd roundrect (at 4.875 3.175) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (pad "5" smd roundrect (at 4.875 1.905) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (pad "6" smd roundrect (at 4.875 0.635) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (pad "7" smd roundrect (at 4.875 -0.635) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (pad "8" smd roundrect (at 4.875 -1.905) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (pad "9" smd roundrect (at 4.875 -3.175) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (pad "10" smd roundrect (at 4.875 -4.445) (size 1.65 0.6)+ (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+ (zone (net 0) (net_name "") (layers "*.Cu") (name "Isolation keepout")+ (hatch edge 0.5)+ (connect_pads (clearance 0))+ (min_thickness 0.25)+ (keepout (tracks not_allowed) (vias not_allowed) (pads not_allowed) (copperpour not_allowed) (footprints allowed))+ (fill (thermal_gap 0.5) (thermal_bridge_width 0.5))+ (polygon (pts (xy -4.05 -5.5) (xy 4.05 -5.5) (xy 4.05 5.5) (xy -4.05 5.5))))+ (model "${KIPRJMOD}/tmcs1123b1aqdvgr-etched.step"+ (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) (rotate (xyz 0 0 0)))+)
tmcs1123b1aqdvgr.kicad_symadded+211@@ -0,0 +1,211 @@+(kicad_symbol_lib+ (version 20231120)+ (generator "adom")+ (symbol "TMCS1123B1AQDVGR"+ (pin_names (offset 1.016))+ (exclude_from_sim no)+ (in_bom yes)+ (on_board yes)+ (property "Reference" "U"+ (at 0.00 5.08 0)+ (effects (font (size 1.27 1.27)))+ )+ (property "Value" "TMCS1123B1AQDVGR"+ (at 0.00 -42.29 0)+ (effects (font (size 1.27 1.27)))+ )+ (property "Footprint" "tmcs1123b1aqdvgr:tmcs1123b1aqdvgr"+ (at 0 -47.37 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "Datasheet" "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf"+ (at 0 -49.91 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "Description" "Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function."+ (at 0 -52.45 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "Manufacturer" "Texas Instruments"+ (at 0 -54.99 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "MPN" "TMCS1123B1AQDVGR"+ (at 0 -57.53 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "Adom Wiki" "https://wiki.adom.inc/adom/tmcs1123b1aqdvgr"+ (at 0 -60.07 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "DigiKey" "296-TMCS1123B1AQDVGRTR-ND"+ (at 0 -62.61 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "Mouser" "595-TMCS1123B1AQDVGR"+ (at 0 -65.15 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (property "Adom_Chip_Outline" "asset:TMCS1123B1AQDVGR-3d-outline-dark-named.svg@large"+ (at 0 -67.69 0)+ (effects (font (size 1.27 1.27)) (hide yes))+ )+ (symbol "TMCS1123B1AQDVGR_0_1"+ (rectangle (start -17.78 2.54) (end 17.78 -40.64)+ (stroke (width 0.254) (type default))+ (fill (type background))+ )+ (text "Primary side" (at -16.76 -0.54 0)+ (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify left))+ )+ (text "Supply" (at 16.76 -0.54 0)+ (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+ )+ (text "Analog output" (at 16.76 -10.70 0)+ (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+ )+ (text "Overcurrent" (at 16.76 -20.86 0)+ (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+ )+ (text "Reserved" (at 16.76 -36.10 0)+ (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+ )+ (polyline (pts (xy 0.066 -20.784) (xy 2.753 -19.232)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.753 -19.232) (xy 2.760 -19.197) (xy 2.766 -19.163) (xy 2.773 -19.128) (xy 2.780 -19.093) (xy 2.786 -19.058) (xy 2.793 -19.023) (xy 2.800 -18.989) (xy 2.807 -18.954) (xy 2.813 -18.919) (xy 2.820 -18.884) (xy 2.827 -18.849)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.066 -20.444) (xy 2.827 -18.849)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.066 -20.784) (xy 0.066 -20.753) (xy 0.066 -20.722) (xy 0.066 -20.691) (xy 0.066 -20.660) (xy 0.066 -20.629) (xy 0.066 -20.598) (xy 0.066 -20.567) (xy 0.066 -20.536) (xy 0.066 -20.505) (xy 0.066 -20.475) (xy 0.066 -20.444)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.161 -19.499) (xy -1.930 -19.632)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.290 -20.578) (xy 0.066 -20.784)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.827 -18.849) (xy 2.822 -18.821) (xy 2.817 -18.793) (xy 2.812 -18.765) (xy 2.807 -18.737) (xy 2.801 -18.709) (xy 2.797 -18.681) (xy 2.792 -18.653) (xy 2.786 -18.625) (xy 2.781 -18.597) (xy 2.776 -18.569) (xy 2.772 -18.541) (xy 2.766 -18.513) (xy 2.761 -18.485) (xy 2.756 -18.457) (xy 2.751 -18.429) (xy 2.746 -18.401) (xy 2.741 -18.373) (xy 2.736 -18.345) (xy 2.731 -18.317) (xy 2.726 -18.289) (xy 2.721 -18.261) (xy 2.716 -18.233)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.066 -19.764) (xy 2.716 -18.233)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.066 -20.444) (xy 0.066 -20.413) (xy 0.066 -20.382) (xy 0.066 -20.351) (xy 0.066 -20.320) (xy 0.066 -20.289) (xy 0.066 -20.258) (xy 0.066 -20.227) (xy 0.066 -20.196) (xy 0.066 -20.165) (xy 0.066 -20.134) (xy 0.066 -20.103) (xy 0.066 -20.073) (xy 0.066 -20.042) (xy 0.066 -20.011) (xy 0.066 -19.980) (xy 0.066 -19.949) (xy 0.066 -19.918) (xy 0.066 -19.887) (xy 0.066 -19.856) (xy 0.066 -19.825) (xy 0.066 -19.794) (xy 0.066 -19.764)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.727 -18.254) (xy -3.593 -18.331)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.989 -19.258) (xy -1.723 -19.411)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.119 -20.337) (xy 0.066 -20.444)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.699 -18.396) (xy -3.706 -18.364) (xy -3.712 -18.332) (xy -3.718 -18.299) (xy -3.724 -18.267) (xy -3.727 -18.254)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.716 -18.233) (xy -0.966 -16.107)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.616 -17.638) (xy 0.066 -19.764)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.966 -16.107) (xy -3.616 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.714 -17.542) (xy -2.688 -17.561) (xy -2.667 -17.582) (xy -2.651 -17.609) (xy -2.646 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.646 -17.638) (xy -2.655 -17.676) (xy -2.683 -17.711) (xy -2.726 -17.740) (xy -2.753 -17.752) (xy -2.783 -17.761) (xy -2.814 -17.768) (xy -2.847 -17.772) (xy -2.880 -17.773) (xy -2.913 -17.772) (xy -2.946 -17.768) (xy -2.977 -17.761) (xy -3.007 -17.752) (xy -3.033 -17.740) (xy -3.077 -17.711) (xy -3.105 -17.676) (xy -3.114 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.114 -17.638) (xy -3.109 -17.609) (xy -3.093 -17.582) (xy -3.067 -17.557) (xy -3.033 -17.536) (xy -2.992 -17.519) (xy -2.946 -17.508) (xy -2.897 -17.503) (xy -2.847 -17.504) (xy -2.798 -17.511) (xy -2.753 -17.524) (xy -2.714 -17.542)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.727 -18.254) (xy -3.722 -18.226) (xy -3.717 -18.198) (xy -3.712 -18.170) (xy -3.707 -18.142) (xy -3.701 -18.114) (xy -3.697 -18.086) (xy -3.692 -18.058) (xy -3.686 -18.030) (xy -3.681 -18.002) (xy -3.676 -17.974) (xy -3.672 -17.946) (xy -3.666 -17.918) (xy -3.661 -17.890) (xy -3.656 -17.862) (xy -3.651 -17.834) (xy -3.646 -17.806) (xy -3.641 -17.778) (xy -3.636 -17.750) (xy -3.631 -17.722) (xy -3.626 -17.694) (xy -3.621 -17.666) (xy -3.616 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.714 -17.563) (xy -2.752 -17.546) (xy -2.795 -17.533) (xy -2.841 -17.526) (xy -2.890 -17.524) (xy -2.938 -17.528) (xy -2.983 -17.538) (xy -3.024 -17.552) (xy -3.059 -17.572) (xy -3.086 -17.595) (xy -3.105 -17.621) (xy -3.113 -17.649)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.646 -17.649) (xy -2.656 -17.619) (xy -2.674 -17.595) (xy -2.699 -17.573) (xy -2.714 -17.563)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.984 -19.196) (xy -2.118 -19.274)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.984 -19.196) (xy -2.054 -19.155) (xy -2.125 -19.115) (xy -2.196 -19.074) (xy -2.266 -19.033) (xy -2.337 -18.992) (xy -2.407 -18.951) (xy -2.478 -18.911) (xy -2.549 -18.870) (xy -2.619 -18.829) (xy -2.690 -18.788) (xy -2.761 -18.748) (xy -2.831 -18.707) (xy -2.902 -18.666) (xy -2.972 -18.625) (xy -3.043 -18.584) (xy -3.114 -18.544) (xy -3.184 -18.503) (xy -3.255 -18.462) (xy -3.325 -18.421) (xy -3.396 -18.381) (xy -3.467 -18.340) (xy -3.537 -18.299)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.537 -18.299) (xy -3.672 -18.377)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.983 -19.313) (xy -2.118 -19.391)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.983 -19.313) (xy -1.986 -19.285) (xy -1.989 -19.258)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.989 -19.258) (xy -1.987 -19.230) (xy -1.984 -19.202) (xy -1.984 -19.196)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.118 -19.274) (xy -2.145 -19.292) (xy -2.171 -19.316) (xy -2.195 -19.344) (xy -2.216 -19.376) (xy -2.233 -19.410) (xy -2.246 -19.445) (xy -2.254 -19.479) (xy -2.255 -19.490)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.255 -19.490) (xy -2.284 -19.742)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.284 -19.742) (xy -2.293 -19.769) (xy -2.311 -19.793) (xy -2.320 -19.800)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.320 -19.800) (xy -2.504 -19.906)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.504 -20.023) (xy -2.504 -19.906)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.320 -19.917) (xy -2.504 -20.023)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.184 -19.700) (xy -2.190 -19.734) (xy -2.201 -19.769) (xy -2.217 -19.803) (xy -2.237 -19.836) (xy -2.260 -19.865) (xy -2.285 -19.891) (xy -2.311 -19.911) (xy -2.320 -19.917)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.155 -19.448) (xy -2.184 -19.700)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.118 -19.391) (xy -2.139 -19.410) (xy -2.152 -19.436) (xy -2.155 -19.448)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.672 -18.377) (xy -3.699 -18.395) (xy -3.725 -18.419) (xy -3.749 -18.447) (xy -3.769 -18.479) (xy -3.787 -18.513) (xy -3.799 -18.548) (xy -3.807 -18.582) (xy -3.809 -18.593)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -4.058 -19.009) (xy -4.058 -19.126)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.874 -18.903) (xy -4.058 -19.009)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.838 -18.845) (xy -3.846 -18.872) (xy -3.864 -18.896) (xy -3.874 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -3.809 -18.593) (xy -3.838 -18.845)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -4.058 -19.126) (xy -2.504 -20.023)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.504 -19.906) (xy -4.058 -19.009)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.113 -20.276) (xy -0.248 -20.354)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.113 -20.276) (xy -0.184 -20.235) (xy -0.255 -20.194) (xy -0.325 -20.154) (xy -0.396 -20.113) (xy -0.467 -20.072) (xy -0.537 -20.031) (xy -0.608 -19.990) (xy -0.678 -19.950) (xy -0.749 -19.909) (xy -0.820 -19.868) (xy -0.890 -19.827) (xy -0.961 -19.787) (xy -1.032 -19.746) (xy -1.102 -19.705) (xy -1.173 -19.664) (xy -1.243 -19.623) (xy -1.314 -19.583) (xy -1.385 -19.542) (xy -1.455 -19.501) (xy -1.526 -19.460) (xy -1.596 -19.420) (xy -1.667 -19.379)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.667 -19.379) (xy -1.802 -19.457)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.113 -20.393) (xy -0.248 -20.471)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.113 -20.393) (xy -0.116 -20.365) (xy -0.119 -20.337)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.119 -20.337) (xy -0.116 -20.308) (xy -0.114 -20.279) (xy -0.113 -20.276)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.248 -20.354) (xy -0.275 -20.372) (xy -0.301 -20.396) (xy -0.325 -20.424) (xy -0.345 -20.456) (xy -0.363 -20.490) (xy -0.375 -20.525) (xy -0.383 -20.559) (xy -0.385 -20.570)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.385 -20.570) (xy -0.414 -20.822)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.414 -20.822) (xy -0.422 -20.849) (xy -0.440 -20.872) (xy -0.450 -20.879)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.450 -20.879) (xy -0.634 -20.986)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.634 -21.103) (xy -0.634 -20.986)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.450 -20.996) (xy -0.634 -21.103)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.313 -20.780) (xy -0.319 -20.814) (xy -0.331 -20.849) (xy -0.347 -20.883) (xy -0.366 -20.916) (xy -0.389 -20.945) (xy -0.414 -20.970) (xy -0.441 -20.991) (xy -0.450 -20.996)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.285 -20.528) (xy -0.313 -20.780)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.248 -20.471) (xy -0.270 -20.492) (xy -0.283 -20.519) (xy -0.285 -20.528)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.802 -19.457) (xy -1.829 -19.475) (xy -1.854 -19.499) (xy -1.878 -19.527) (xy -1.899 -19.559) (xy -1.916 -19.593) (xy -1.929 -19.627) (xy -1.937 -19.662) (xy -1.939 -19.673)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.188 -20.089) (xy -2.188 -20.205)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.004 -19.983) (xy -2.188 -20.089)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.967 -19.925) (xy -1.976 -19.952) (xy -1.994 -19.975) (xy -2.004 -19.983)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.939 -19.673) (xy -1.967 -19.925)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.188 -20.205) (xy -0.634 -21.103)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.634 -20.986) (xy -2.188 -20.089)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.806 -18.733) (xy 2.808 -18.742)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.808 -18.742) (xy 2.812 -18.765)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.824 -18.862) (xy 2.837 -18.961)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.837 -18.961) (xy 2.844 -18.989) (xy 2.858 -19.014) (xy 2.876 -19.029)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.876 -19.029) (xy 2.903 -19.038) (xy 2.935 -19.035) (xy 2.964 -19.025) (xy 2.974 -19.019)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.974 -19.019) (xy 3.158 -18.913)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 3.158 -18.796) (xy 3.158 -18.913)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.974 -18.903) (xy 3.158 -18.796)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.938 -18.887) (xy 2.948 -18.905)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.948 -18.905) (xy 2.974 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.909 -18.668) (xy 2.938 -18.887)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.783 -18.604) (xy 2.809 -18.595) (xy 2.838 -18.591) (xy 2.867 -18.599) (xy 2.870 -18.600)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.870 -18.600) (xy 2.892 -18.621) (xy 2.905 -18.648) (xy 2.909 -18.668)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.921 -18.759) (xy 3.007 -18.709)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 3.007 -18.709) (xy 3.158 -18.796)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.772 -18.544) (xy 2.870 -18.600)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.876 -19.029) (xy 2.801 -18.986)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.118 -19.274) (xy -3.672 -18.377)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.255 -19.490) (xy -3.809 -18.593)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.320 -19.800) (xy -3.874 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -2.284 -19.742) (xy -3.838 -18.845)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.248 -20.354) (xy -1.802 -19.457)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.385 -20.570) (xy -1.939 -19.673)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.450 -20.879) (xy -2.004 -19.983)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.414 -20.822) (xy -1.967 -19.925)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.808 -18.742) (xy 2.807 -18.742)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.937 -18.881) (xy 2.974 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 2.837 -18.961) (xy 2.808 -18.945)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.812 -17.313) (xy -1.099 -17.479)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.907 -17.258) (xy -0.716 -17.369)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.648 -17.408) (xy -0.935 -17.574)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.648 -17.408) (xy -0.826 -17.636)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.430 -17.534) (xy -0.826 -17.636)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.430 -17.534) (xy -0.716 -17.700)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.198 -17.747) (xy -0.184 -17.692) (xy -0.252 -17.636) (xy -0.293 -17.629) (xy -0.348 -17.629) (xy -0.389 -17.636) (xy -0.444 -17.652) (xy -0.512 -17.692) (xy -0.539 -17.723) (xy -0.553 -17.779) (xy -0.484 -17.834) (xy -0.444 -17.841) (xy -0.389 -17.841) (xy -0.348 -17.834)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.102 -17.889) (xy 0.102 -17.857) (xy 0.075 -17.826) (xy 0.020 -17.794) (xy -0.034 -17.779) (xy -0.089 -17.779) (xy -0.116 -17.794) (xy -0.130 -17.834) (xy -0.061 -17.920) (xy -0.048 -17.960) (xy -0.102 -18.007) (xy -0.157 -18.007) (xy -0.212 -17.991) (xy -0.266 -17.960) (xy -0.293 -17.928) (xy -0.293 -17.897)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.212 -17.967) (xy 0.252 -17.975) (xy 0.334 -17.975) (xy 0.048 -18.141)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.485 -18.125) (xy 0.526 -18.133) (xy 0.608 -18.133) (xy 0.321 -18.298)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.716 -18.275) (xy 0.771 -18.259) (xy 0.839 -18.267) (xy 0.894 -18.298) (xy 0.908 -18.338) (xy 0.867 -18.377) (xy 0.826 -18.385) (xy 0.758 -18.393) (xy 0.485 -18.393) (xy 0.676 -18.503)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 1.072 -18.401) (xy 1.222 -18.487) (xy 1.030 -18.503) (xy 1.072 -18.527) (xy 1.085 -18.566) (xy 1.058 -18.598) (xy 1.030 -18.614) (xy 0.976 -18.629) (xy 0.921 -18.629) (xy 0.867 -18.614) (xy 0.826 -18.590) (xy 0.798 -18.558) (xy 0.812 -18.519)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.303 -17.526) (xy -1.590 -17.692)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.303 -17.526) (xy -1.180 -17.597) (xy -1.153 -17.629) (xy -1.167 -17.668) (xy -1.194 -17.684) (xy -1.235 -17.692) (xy -1.317 -17.676)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.440 -17.605) (xy -1.317 -17.676) (xy -1.290 -17.708) (xy -1.303 -17.747) (xy -1.344 -17.770) (xy -1.385 -17.779) (xy -1.413 -17.779) (xy -1.467 -17.762) (xy -1.590 -17.692)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -1.044 -17.739) (xy -1.003 -17.747) (xy -0.921 -17.747) (xy -1.208 -17.912)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.676 -17.889) (xy -1.071 -17.991)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.676 -17.889) (xy -0.853 -18.117)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.935 -17.960) (xy -0.798 -18.038)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.430 -18.031) (xy -0.471 -18.023) (xy -0.525 -18.023) (xy -0.566 -18.031) (xy -0.621 -18.046) (xy -0.689 -18.086) (xy -0.716 -18.117) (xy -0.730 -18.172) (xy -0.662 -18.228) (xy -0.621 -18.235) (xy -0.566 -18.235) (xy -0.525 -18.228) (xy -0.471 -18.212) (xy -0.403 -18.172) (xy -0.375 -18.141) (xy -0.361 -18.086) (xy -0.430 -18.031)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.621 -18.188) (xy -0.621 -18.283)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.198 -18.164) (xy -0.484 -18.330)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy -0.198 -18.164) (xy -0.102 -18.220) (xy -0.075 -18.251) (xy -0.075 -18.283) (xy -0.116 -18.338) (xy -0.184 -18.377) (xy -0.239 -18.393) (xy -0.280 -18.401) (xy -0.334 -18.401) (xy -0.389 -18.385) (xy -0.484 -18.330)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.048 -18.306) (xy -0.130 -18.535)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.266 -18.432) (xy -0.130 -18.535)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.457 -18.621) (xy 0.471 -18.566) (xy 0.403 -18.511) (xy 0.362 -18.503) (xy 0.307 -18.503) (xy 0.266 -18.511) (xy 0.212 -18.527) (xy 0.143 -18.566) (xy 0.116 -18.598) (xy 0.102 -18.653) (xy 0.171 -18.708) (xy 0.212 -18.716) (xy 0.266 -18.716) (xy 0.307 -18.708) (xy 0.348 -18.684)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.280 -18.645) (xy 0.348 -18.684)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.621 -18.637) (xy 0.334 -18.803)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.621 -18.637) (xy 0.744 -18.708) (xy 0.771 -18.740) (xy 0.758 -18.779) (xy 0.730 -18.795) (xy 0.689 -18.803) (xy 0.608 -18.787) (xy 0.485 -18.716)) (stroke (width 0.025) (type default)) (fill (type none)))+ (polyline (pts (xy 0.580 -18.771) (xy 0.526 -18.913)) (stroke (width 0.025) (type default)) (fill (type none)))+ )+ (symbol "TMCS1123B1AQDVGR_1_1"+ (pin passive line (at -20.32 -2.54 0) (length 2.54) (name "IN+") (number "1"))+ (pin passive line (at -20.32 -5.08 0) (length 2.54) (name "IN-") (number "2"))+ (pin power_in line (at 20.32 -2.54 180) (length 2.54) (name "VS") (number "8"))+ (pin power_in line (at 20.32 -5.08 180) (length 2.54) (name "GND") (number "3"))+ (pin output line (at 20.32 -12.70 180) (length 2.54) (name "VOUT") (number "6"))+ (pin output line (at 20.32 -15.24 180) (length 2.54) (name "VREF") (number "5"))+ (pin input line (at 20.32 -22.86 180) (length 2.54) (name "VOC") (number "9"))+ (pin open_collector line (at 20.32 -25.40 180) (length 2.54) (name "OC") (number "7"))+ (pin open_collector line (at 20.32 -27.94 180) (length 2.54) (name "ALERT") (number "4"))+ (pin no_connect line (at 20.32 -38.10 180) (length 2.54) (name "NC") (number "10"))+ )+ )+)
tmcs1123b1aqdvgr.lbradded+630@@ -0,0 +1,630 @@+<?xml version="1.0" encoding="utf-8"?>+<!DOCTYPE eagle SYSTEM "eagle.dtd">+<eagle version="9.6.2">+<drawing>+<settings><setting alwaysvectorfont="no"/></settings>+<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>+<layers>+<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>+<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>+<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>+<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>+<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>+<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>+<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>+<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>+<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>+<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>+<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>+<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>+<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>+<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>+<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>+<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>+<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>+<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>+<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>+<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>+<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>+<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>+<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>+<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>+<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="yes"/>+<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="yes"/>+<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>+<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>+<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>+<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>+<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>+<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>+<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>+<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>+<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>+<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>+<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>+<layer number="93" name="Pins" color="2" fill="1" visible="no" active="yes"/>+<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>+<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>+<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>+<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>+<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>+</layers>+<library>+<description>Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function</description>+<packages>+<package name="tmcs1123b1aqdvgr">+ <description>10 pads, 11.4 x 9.5 mm. TI DVG0010A 10-pin wide-body SOIC (7.5 x 10.3 mm body), TMCS1123 isolated current sensor; land pattern per TI drawing 4226847/C, HV / isolation option (8.1 mm pad-to-pad clearance/creepage), SBOSA24D p.46</description>+ <smd name="1" x="-4.8750" y="2.5400" dx="1.6500" dy="4.4100" layer="1" roundness="6"/>+ <smd name="2" x="-4.8750" y="-2.5400" dx="1.6500" dy="4.4100" layer="1" roundness="6"/>+ <smd name="3" x="4.8750" y="-4.4450" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <smd name="4" x="4.8750" y="-3.1750" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <smd name="5" x="4.8750" y="-1.9050" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <smd name="6" x="4.8750" y="-0.6350" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <smd name="7" x="4.8750" y="0.6350" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <smd name="8" x="4.8750" y="1.9050" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <smd name="9" x="4.8750" y="3.1750" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <smd name="10" x="4.8750" y="4.4450" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+ <polygon width="0.1000" layer="51">+ <vertex x="-2.7500" y="5.1500"/>+ <vertex x="3.7500" y="5.1500"/>+ <vertex x="3.7500" y="-5.1500"/>+ <vertex x="-3.7500" y="-5.1500"/>+ <vertex x="-3.7500" y="4.1500"/>+ </polygon>+ <wire x1="0.0000" y1="5.1500" x2="0.0000" y2="-5.1500" width="0.1000" layer="51"/>+ <wire x1="-3.8700" y1="5.2700" x2="3.8700" y2="5.2700" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="5.2700" x2="3.8700" y2="4.9600" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="3.9300" x2="3.8700" y2="3.6900" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="2.6600" x2="3.8700" y2="2.4200" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="1.3900" x2="3.8700" y2="1.1500" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="0.1200" x2="3.8700" y2="-0.1200" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="-1.1500" x2="3.8700" y2="-1.3900" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="-2.4200" x2="3.8700" y2="-2.6600" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="-3.6900" x2="3.8700" y2="-3.9300" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="-4.9600" x2="3.8700" y2="-5.2700" width="0.1200" layer="21"/>+ <wire x1="3.8700" y1="-5.2700" x2="-3.8700" y2="-5.2700" width="0.1200" layer="21"/>+ <wire x1="-3.8700" y1="-5.2700" x2="-3.8700" y2="-4.9600" width="0.1200" layer="21"/>+ <wire x1="-3.8700" y1="-0.1200" x2="-3.8700" y2="0.1200" width="0.1200" layer="21"/>+ <wire x1="-3.8700" y1="4.9600" x2="-3.8700" y2="5.2700" width="0.1200" layer="21"/>+ <wire x1="-4.0500" y1="5.4500" x2="-3.4500" y2="5.4500" width="0.1200" layer="21"/>+ <text x="0" y="6.050" size="1.27" layer="25" align="bottom-center">>NAME</text>+ <text x="0" y="-5.870" size="1.27" layer="27" align="top-center">>VALUE</text>+<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="41"/>+<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="42"/>+<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="43"/>+<text x="0" y="0" size="0.6" layer="51" rot="R90" align="center">ISOLATION KEEPOUT 8.1 mm</text>+</package>+</packages>+<symbols>+<symbol name="TMCS1123B1AQDVGR">+ <description>Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function</description>+ <wire x1="-17.78" y1="2.54" x2="17.78" y2="2.54" width="0.254" layer="94"/>+ <wire x1="17.78" y1="2.54" x2="17.78" y2="-40.64" width="0.254" layer="94"/>+ <wire x1="17.78" y1="-40.64" x2="-17.78" y2="-40.64" width="0.254" layer="94"/>+ <wire x1="-17.78" y1="-40.64" x2="-17.78" y2="2.54" width="0.254" layer="94"/>+ <wire x1="0.0660" y1="-20.7840" x2="2.7530" y2="-19.2320" width="0.0254" layer="94"/>+ <wire x1="2.7530" y1="-19.2320" x2="2.7600" y2="-19.1970" width="0.0254" layer="94"/>+ <wire x1="2.7600" y1="-19.1970" x2="2.7660" y2="-19.1630" width="0.0254" layer="94"/>+ <wire x1="2.7660" y1="-19.1630" x2="2.7730" y2="-19.1280" width="0.0254" layer="94"/>+ <wire x1="2.7730" y1="-19.1280" x2="2.7800" y2="-19.0930" width="0.0254" layer="94"/>+ <wire x1="2.7800" y1="-19.0930" x2="2.7860" y2="-19.0580" width="0.0254" layer="94"/>+ <wire x1="2.7860" y1="-19.0580" x2="2.7930" y2="-19.0230" width="0.0254" layer="94"/>+ <wire x1="2.7930" y1="-19.0230" x2="2.8000" y2="-18.9890" width="0.0254" layer="94"/>+ <wire x1="2.8000" y1="-18.9890" x2="2.8070" y2="-18.9540" width="0.0254" layer="94"/>+ <wire x1="2.8070" y1="-18.9540" x2="2.8130" y2="-18.9190" width="0.0254" layer="94"/>+ <wire x1="2.8130" y1="-18.9190" x2="2.8200" y2="-18.8840" width="0.0254" layer="94"/>+ <wire x1="2.8200" y1="-18.8840" x2="2.8270" y2="-18.8490" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.4440" x2="2.8270" y2="-18.8490" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.7840" x2="0.0660" y2="-20.7530" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.7530" x2="0.0660" y2="-20.7220" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.7220" x2="0.0660" y2="-20.6910" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.6910" x2="0.0660" y2="-20.6600" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.6600" x2="0.0660" y2="-20.6290" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.6290" x2="0.0660" y2="-20.5980" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.5980" x2="0.0660" y2="-20.5670" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.5670" x2="0.0660" y2="-20.5360" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.5360" x2="0.0660" y2="-20.5050" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.5050" x2="0.0660" y2="-20.4750" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.4750" x2="0.0660" y2="-20.4440" width="0.0254" layer="94"/>+ <wire x1="-2.1610" y1="-19.4990" x2="-1.9300" y2="-19.6320" width="0.0254" layer="94"/>+ <wire x1="-0.2900" y1="-20.5780" x2="0.0660" y2="-20.7840" width="0.0254" layer="94"/>+ <wire x1="2.8270" y1="-18.8490" x2="2.8220" y2="-18.8210" width="0.0254" layer="94"/>+ <wire x1="2.8220" y1="-18.8210" x2="2.8170" y2="-18.7930" width="0.0254" layer="94"/>+ <wire x1="2.8170" y1="-18.7930" x2="2.8120" y2="-18.7650" width="0.0254" layer="94"/>+ <wire x1="2.8120" y1="-18.7650" x2="2.8070" y2="-18.7370" width="0.0254" layer="94"/>+ <wire x1="2.8070" y1="-18.7370" x2="2.8010" y2="-18.7090" width="0.0254" layer="94"/>+ <wire x1="2.8010" y1="-18.7090" x2="2.7970" y2="-18.6810" width="0.0254" layer="94"/>+ <wire x1="2.7970" y1="-18.6810" x2="2.7920" y2="-18.6530" width="0.0254" layer="94"/>+ <wire x1="2.7920" y1="-18.6530" x2="2.7860" y2="-18.6250" width="0.0254" layer="94"/>+ <wire x1="2.7860" y1="-18.6250" x2="2.7810" y2="-18.5970" width="0.0254" layer="94"/>+ <wire x1="2.7810" y1="-18.5970" x2="2.7760" y2="-18.5690" width="0.0254" layer="94"/>+ <wire x1="2.7760" y1="-18.5690" x2="2.7720" y2="-18.5410" width="0.0254" layer="94"/>+ <wire x1="2.7720" y1="-18.5410" x2="2.7660" y2="-18.5130" width="0.0254" layer="94"/>+ <wire x1="2.7660" y1="-18.5130" x2="2.7610" y2="-18.4850" width="0.0254" layer="94"/>+ <wire x1="2.7610" y1="-18.4850" x2="2.7560" y2="-18.4570" width="0.0254" layer="94"/>+ <wire x1="2.7560" y1="-18.4570" x2="2.7510" y2="-18.4290" width="0.0254" layer="94"/>+ <wire x1="2.7510" y1="-18.4290" x2="2.7460" y2="-18.4010" width="0.0254" layer="94"/>+ <wire x1="2.7460" y1="-18.4010" x2="2.7410" y2="-18.3730" width="0.0254" layer="94"/>+ <wire x1="2.7410" y1="-18.3730" x2="2.7360" y2="-18.3450" width="0.0254" layer="94"/>+ <wire x1="2.7360" y1="-18.3450" x2="2.7310" y2="-18.3170" width="0.0254" layer="94"/>+ <wire x1="2.7310" y1="-18.3170" x2="2.7260" y2="-18.2890" width="0.0254" layer="94"/>+ <wire x1="2.7260" y1="-18.2890" x2="2.7210" y2="-18.2610" width="0.0254" layer="94"/>+ <wire x1="2.7210" y1="-18.2610" x2="2.7160" y2="-18.2330" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.7640" x2="2.7160" y2="-18.2330" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.4440" x2="0.0660" y2="-20.4130" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.4130" x2="0.0660" y2="-20.3820" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.3820" x2="0.0660" y2="-20.3510" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.3510" x2="0.0660" y2="-20.3200" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.3200" x2="0.0660" y2="-20.2890" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.2890" x2="0.0660" y2="-20.2580" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.2580" x2="0.0660" y2="-20.2270" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.2270" x2="0.0660" y2="-20.1960" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.1960" x2="0.0660" y2="-20.1650" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.1650" x2="0.0660" y2="-20.1340" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.1340" x2="0.0660" y2="-20.1030" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.1030" x2="0.0660" y2="-20.0730" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.0730" x2="0.0660" y2="-20.0420" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.0420" x2="0.0660" y2="-20.0110" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-20.0110" x2="0.0660" y2="-19.9800" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.9800" x2="0.0660" y2="-19.9490" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.9490" x2="0.0660" y2="-19.9180" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.9180" x2="0.0660" y2="-19.8870" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.8870" x2="0.0660" y2="-19.8560" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.8560" x2="0.0660" y2="-19.8250" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.8250" x2="0.0660" y2="-19.7940" width="0.0254" layer="94"/>+ <wire x1="0.0660" y1="-19.7940" x2="0.0660" y2="-19.7640" width="0.0254" layer="94"/>+ <wire x1="-3.7270" y1="-18.2540" x2="-3.5930" y2="-18.3310" width="0.0254" layer="94"/>+ <wire x1="-1.9890" y1="-19.2580" x2="-1.7230" y2="-19.4110" width="0.0254" layer="94"/>+ <wire x1="-0.1190" y1="-20.3370" x2="0.0660" y2="-20.4440" width="0.0254" layer="94"/>+ <wire x1="-3.6990" y1="-18.3960" x2="-3.7060" y2="-18.3640" width="0.0254" layer="94"/>+ <wire x1="-3.7060" y1="-18.3640" x2="-3.7120" y2="-18.3320" width="0.0254" layer="94"/>+ <wire x1="-3.7120" y1="-18.3320" x2="-3.7180" y2="-18.2990" width="0.0254" layer="94"/>+ <wire x1="-3.7180" y1="-18.2990" x2="-3.7240" y2="-18.2670" width="0.0254" layer="94"/>+ <wire x1="-3.7240" y1="-18.2670" x2="-3.7270" y2="-18.2540" width="0.0254" layer="94"/>+ <wire x1="2.7160" y1="-18.2330" x2="-0.9660" y2="-16.1070" width="0.0254" layer="94"/>+ <wire x1="-3.6160" y1="-17.6380" x2="0.0660" y2="-19.7640" width="0.0254" layer="94"/>+ <wire x1="-0.9660" y1="-16.1070" x2="-3.6160" y2="-17.6380" width="0.0254" layer="94"/>+ <wire x1="-2.7140" y1="-17.5420" x2="-2.6880" y2="-17.5610" width="0.0254" layer="94"/>+ <wire x1="-2.6880" y1="-17.5610" x2="-2.6670" y2="-17.5820" width="0.0254" layer="94"/>+ <wire x1="-2.6670" y1="-17.5820" x2="-2.6510" y2="-17.6090" width="0.0254" layer="94"/>+ <wire x1="-2.6510" y1="-17.6090" x2="-2.6460" y2="-17.6380" width="0.0254" layer="94"/>+ <wire x1="-2.6460" y1="-17.6380" x2="-2.6550" y2="-17.6760" width="0.0254" layer="94"/>+ <wire x1="-2.6550" y1="-17.6760" x2="-2.6830" y2="-17.7110" width="0.0254" layer="94"/>+ <wire x1="-2.6830" y1="-17.7110" x2="-2.7260" y2="-17.7400" width="0.0254" layer="94"/>+ <wire x1="-2.7260" y1="-17.7400" x2="-2.7530" y2="-17.7520" width="0.0254" layer="94"/>+ <wire x1="-2.7530" y1="-17.7520" x2="-2.7830" y2="-17.7610" width="0.0254" layer="94"/>+ <wire x1="-2.7830" y1="-17.7610" x2="-2.8140" y2="-17.7680" width="0.0254" layer="94"/>+ <wire x1="-2.8140" y1="-17.7680" x2="-2.8470" y2="-17.7720" width="0.0254" layer="94"/>+ <wire x1="-2.8470" y1="-17.7720" x2="-2.8800" y2="-17.7730" width="0.0254" layer="94"/>+ <wire x1="-2.8800" y1="-17.7730" x2="-2.9130" y2="-17.7720" width="0.0254" layer="94"/>+ <wire x1="-2.9130" y1="-17.7720" x2="-2.9460" y2="-17.7680" width="0.0254" layer="94"/>+ <wire x1="-2.9460" y1="-17.7680" x2="-2.9770" y2="-17.7610" width="0.0254" layer="94"/>+ <wire x1="-2.9770" y1="-17.7610" x2="-3.0070" y2="-17.7520" width="0.0254" layer="94"/>+ <wire x1="-3.0070" y1="-17.7520" x2="-3.0330" y2="-17.7400" width="0.0254" layer="94"/>+ <wire x1="-3.0330" y1="-17.7400" x2="-3.0770" y2="-17.7110" width="0.0254" layer="94"/>+ <wire x1="-3.0770" y1="-17.7110" x2="-3.1050" y2="-17.6760" width="0.0254" layer="94"/>+ <wire x1="-3.1050" y1="-17.6760" x2="-3.1140" y2="-17.6380" width="0.0254" layer="94"/>+ <wire x1="-3.1140" y1="-17.6380" x2="-3.1090" y2="-17.6090" width="0.0254" layer="94"/>+ <wire x1="-3.1090" y1="-17.6090" x2="-3.0930" y2="-17.5820" width="0.0254" layer="94"/>+ <wire x1="-3.0930" y1="-17.5820" x2="-3.0670" y2="-17.5570" width="0.0254" layer="94"/>+ <wire x1="-3.0670" y1="-17.5570" x2="-3.0330" y2="-17.5360" width="0.0254" layer="94"/>+ <wire x1="-3.0330" y1="-17.5360" x2="-2.9920" y2="-17.5190" width="0.0254" layer="94"/>+ <wire x1="-2.9920" y1="-17.5190" x2="-2.9460" y2="-17.5080" width="0.0254" layer="94"/>+ <wire x1="-2.9460" y1="-17.5080" x2="-2.8970" y2="-17.5030" width="0.0254" layer="94"/>+ <wire x1="-2.8970" y1="-17.5030" x2="-2.8470" y2="-17.5040" width="0.0254" layer="94"/>+ <wire x1="-2.8470" y1="-17.5040" x2="-2.7980" y2="-17.5110" width="0.0254" layer="94"/>+ <wire x1="-2.7980" y1="-17.5110" x2="-2.7530" y2="-17.5240" width="0.0254" layer="94"/>+ <wire x1="-2.7530" y1="-17.5240" x2="-2.7140" y2="-17.5420" width="0.0254" layer="94"/>+ <wire x1="-3.7270" y1="-18.2540" x2="-3.7220" y2="-18.2260" width="0.0254" layer="94"/>+ <wire x1="-3.7220" y1="-18.2260" x2="-3.7170" y2="-18.1980" width="0.0254" layer="94"/>+ <wire x1="-3.7170" y1="-18.1980" x2="-3.7120" y2="-18.1700" width="0.0254" layer="94"/>+ <wire x1="-3.7120" y1="-18.1700" x2="-3.7070" y2="-18.1420" width="0.0254" layer="94"/>+ <wire x1="-3.7070" y1="-18.1420" x2="-3.7010" y2="-18.1140" width="0.0254" layer="94"/>+ <wire x1="-3.7010" y1="-18.1140" x2="-3.6970" y2="-18.0860" width="0.0254" layer="94"/>+ <wire x1="-3.6970" y1="-18.0860" x2="-3.6920" y2="-18.0580" width="0.0254" layer="94"/>+ <wire x1="-3.6920" y1="-18.0580" x2="-3.6860" y2="-18.0300" width="0.0254" layer="94"/>+ <wire x1="-3.6860" y1="-18.0300" x2="-3.6810" y2="-18.0020" width="0.0254" layer="94"/>+ <wire x1="-3.6810" y1="-18.0020" x2="-3.6760" y2="-17.9740" width="0.0254" layer="94"/>+ <wire x1="-3.6760" y1="-17.9740" x2="-3.6720" y2="-17.9460" width="0.0254" layer="94"/>+ <wire x1="-3.6720" y1="-17.9460" x2="-3.6660" y2="-17.9180" width="0.0254" layer="94"/>+ <wire x1="-3.6660" y1="-17.9180" x2="-3.6610" y2="-17.8900" width="0.0254" layer="94"/>+ <wire x1="-3.6610" y1="-17.8900" x2="-3.6560" y2="-17.8620" width="0.0254" layer="94"/>+ <wire x1="-3.6560" y1="-17.8620" x2="-3.6510" y2="-17.8340" width="0.0254" layer="94"/>+ <wire x1="-3.6510" y1="-17.8340" x2="-3.6460" y2="-17.8060" width="0.0254" layer="94"/>+ <wire x1="-3.6460" y1="-17.8060" x2="-3.6410" y2="-17.7780" width="0.0254" layer="94"/>+ <wire x1="-3.6410" y1="-17.7780" x2="-3.6360" y2="-17.7500" width="0.0254" layer="94"/>+ <wire x1="-3.6360" y1="-17.7500" x2="-3.6310" y2="-17.7220" width="0.0254" layer="94"/>+ <wire x1="-3.6310" y1="-17.7220" x2="-3.6260" y2="-17.6940" width="0.0254" layer="94"/>+ <wire x1="-3.6260" y1="-17.6940" x2="-3.6210" y2="-17.6660" width="0.0254" layer="94"/>+ <wire x1="-3.6210" y1="-17.6660" x2="-3.6160" y2="-17.6380" width="0.0254" layer="94"/>+ <wire x1="-2.7140" y1="-17.5630" x2="-2.7520" y2="-17.5460" width="0.0254" layer="94"/>+ <wire x1="-2.7520" y1="-17.5460" x2="-2.7950" y2="-17.5330" width="0.0254" layer="94"/>+ <wire x1="-2.7950" y1="-17.5330" x2="-2.8410" y2="-17.5260" width="0.0254" layer="94"/>+ <wire x1="-2.8410" y1="-17.5260" x2="-2.8900" y2="-17.5240" width="0.0254" layer="94"/>+ <wire x1="-2.8900" y1="-17.5240" x2="-2.9380" y2="-17.5280" width="0.0254" layer="94"/>+ <wire x1="-2.9380" y1="-17.5280" x2="-2.9830" y2="-17.5380" width="0.0254" layer="94"/>+ <wire x1="-2.9830" y1="-17.5380" x2="-3.0240" y2="-17.5520" width="0.0254" layer="94"/>+ <wire x1="-3.0240" y1="-17.5520" x2="-3.0590" y2="-17.5720" width="0.0254" layer="94"/>+ <wire x1="-3.0590" y1="-17.5720" x2="-3.0860" y2="-17.5950" width="0.0254" layer="94"/>+ <wire x1="-3.0860" y1="-17.5950" x2="-3.1050" y2="-17.6210" width="0.0254" layer="94"/>+ <wire x1="-3.1050" y1="-17.6210" x2="-3.1130" y2="-17.6490" width="0.0254" layer="94"/>+ <wire x1="-2.6460" y1="-17.6490" x2="-2.6560" y2="-17.6190" width="0.0254" layer="94"/>+ <wire x1="-2.6560" y1="-17.6190" x2="-2.6740" y2="-17.5950" width="0.0254" layer="94"/>+ <wire x1="-2.6740" y1="-17.5950" x2="-2.6990" y2="-17.5730" width="0.0254" layer="94"/>+ <wire x1="-2.6990" y1="-17.5730" x2="-2.7140" y2="-17.5630" width="0.0254" layer="94"/>+ <wire x1="-1.9840" y1="-19.1960" x2="-2.1180" y2="-19.2740" width="0.0254" layer="94"/>+ <wire x1="-1.9840" y1="-19.1960" x2="-2.0540" y2="-19.1550" width="0.0254" layer="94"/>+ <wire x1="-2.0540" y1="-19.1550" x2="-2.1250" y2="-19.1150" width="0.0254" layer="94"/>+ <wire x1="-2.1250" y1="-19.1150" x2="-2.1960" y2="-19.0740" width="0.0254" layer="94"/>+ <wire x1="-2.1960" y1="-19.0740" x2="-2.2660" y2="-19.0330" width="0.0254" layer="94"/>+ <wire x1="-2.2660" y1="-19.0330" x2="-2.3370" y2="-18.9920" width="0.0254" layer="94"/>+ <wire x1="-2.3370" y1="-18.9920" x2="-2.4070" y2="-18.9510" width="0.0254" layer="94"/>+ <wire x1="-2.4070" y1="-18.9510" x2="-2.4780" y2="-18.9110" width="0.0254" layer="94"/>+ <wire x1="-2.4780" y1="-18.9110" x2="-2.5490" y2="-18.8700" width="0.0254" layer="94"/>+ <wire x1="-2.5490" y1="-18.8700" x2="-2.6190" y2="-18.8290" width="0.0254" layer="94"/>+ <wire x1="-2.6190" y1="-18.8290" x2="-2.6900" y2="-18.7880" width="0.0254" layer="94"/>+ <wire x1="-2.6900" y1="-18.7880" x2="-2.7610" y2="-18.7480" width="0.0254" layer="94"/>+ <wire x1="-2.7610" y1="-18.7480" x2="-2.8310" y2="-18.7070" width="0.0254" layer="94"/>+ <wire x1="-2.8310" y1="-18.7070" x2="-2.9020" y2="-18.6660" width="0.0254" layer="94"/>+ <wire x1="-2.9020" y1="-18.6660" x2="-2.9720" y2="-18.6250" width="0.0254" layer="94"/>+ <wire x1="-2.9720" y1="-18.6250" x2="-3.0430" y2="-18.5840" width="0.0254" layer="94"/>+ <wire x1="-3.0430" y1="-18.5840" x2="-3.1140" y2="-18.5440" width="0.0254" layer="94"/>+ <wire x1="-3.1140" y1="-18.5440" x2="-3.1840" y2="-18.5030" width="0.0254" layer="94"/>+ <wire x1="-3.1840" y1="-18.5030" x2="-3.2550" y2="-18.4620" width="0.0254" layer="94"/>+ <wire x1="-3.2550" y1="-18.4620" x2="-3.3250" y2="-18.4210" width="0.0254" layer="94"/>+ <wire x1="-3.3250" y1="-18.4210" x2="-3.3960" y2="-18.3810" width="0.0254" layer="94"/>+ <wire x1="-3.3960" y1="-18.3810" x2="-3.4670" y2="-18.3400" width="0.0254" layer="94"/>+ <wire x1="-3.4670" y1="-18.3400" x2="-3.5370" y2="-18.2990" width="0.0254" layer="94"/>+ <wire x1="-3.5370" y1="-18.2990" x2="-3.6720" y2="-18.3770" width="0.0254" layer="94"/>+ <wire x1="-1.9830" y1="-19.3130" x2="-2.1180" y2="-19.3910" width="0.0254" layer="94"/>+ <wire x1="-1.9830" y1="-19.3130" x2="-1.9860" y2="-19.2850" width="0.0254" layer="94"/>+ <wire x1="-1.9860" y1="-19.2850" x2="-1.9890" y2="-19.2580" width="0.0254" layer="94"/>+ <wire x1="-1.9890" y1="-19.2580" x2="-1.9870" y2="-19.2300" width="0.0254" layer="94"/>+ <wire x1="-1.9870" y1="-19.2300" x2="-1.9840" y2="-19.2020" width="0.0254" layer="94"/>+ <wire x1="-1.9840" y1="-19.2020" x2="-1.9840" y2="-19.1960" width="0.0254" layer="94"/>+ <wire x1="-2.1180" y1="-19.2740" x2="-2.1450" y2="-19.2920" width="0.0254" layer="94"/>+ <wire x1="-2.1450" y1="-19.2920" x2="-2.1710" y2="-19.3160" width="0.0254" layer="94"/>+ <wire x1="-2.1710" y1="-19.3160" x2="-2.1950" y2="-19.3440" width="0.0254" layer="94"/>+ <wire x1="-2.1950" y1="-19.3440" x2="-2.2160" y2="-19.3760" width="0.0254" layer="94"/>+ <wire x1="-2.2160" y1="-19.3760" x2="-2.2330" y2="-19.4100" width="0.0254" layer="94"/>+ <wire x1="-2.2330" y1="-19.4100" x2="-2.2460" y2="-19.4450" width="0.0254" layer="94"/>+ <wire x1="-2.2460" y1="-19.4450" x2="-2.2540" y2="-19.4790" width="0.0254" layer="94"/>+ <wire x1="-2.2540" y1="-19.4790" x2="-2.2550" y2="-19.4900" width="0.0254" layer="94"/>+ <wire x1="-2.2550" y1="-19.4900" x2="-2.2840" y2="-19.7420" width="0.0254" layer="94"/>+ <wire x1="-2.2840" y1="-19.7420" x2="-2.2930" y2="-19.7690" width="0.0254" layer="94"/>+ <wire x1="-2.2930" y1="-19.7690" x2="-2.3110" y2="-19.7930" width="0.0254" layer="94"/>+ <wire x1="-2.3110" y1="-19.7930" x2="-2.3200" y2="-19.8000" width="0.0254" layer="94"/>+ <wire x1="-2.3200" y1="-19.8000" x2="-2.5040" y2="-19.9060" width="0.0254" layer="94"/>+ <wire x1="-2.5040" y1="-20.0230" x2="-2.5040" y2="-19.9060" width="0.0254" layer="94"/>+ <wire x1="-2.3200" y1="-19.9170" x2="-2.5040" y2="-20.0230" width="0.0254" layer="94"/>+ <wire x1="-2.1840" y1="-19.7000" x2="-2.1900" y2="-19.7340" width="0.0254" layer="94"/>+ <wire x1="-2.1900" y1="-19.7340" x2="-2.2010" y2="-19.7690" width="0.0254" layer="94"/>+ <wire x1="-2.2010" y1="-19.7690" x2="-2.2170" y2="-19.8030" width="0.0254" layer="94"/>+ <wire x1="-2.2170" y1="-19.8030" x2="-2.2370" y2="-19.8360" width="0.0254" layer="94"/>+ <wire x1="-2.2370" y1="-19.8360" x2="-2.2600" y2="-19.8650" width="0.0254" layer="94"/>+ <wire x1="-2.2600" y1="-19.8650" x2="-2.2850" y2="-19.8910" width="0.0254" layer="94"/>+ <wire x1="-2.2850" y1="-19.8910" x2="-2.3110" y2="-19.9110" width="0.0254" layer="94"/>+ <wire x1="-2.3110" y1="-19.9110" x2="-2.3200" y2="-19.9170" width="0.0254" layer="94"/>+ <wire x1="-2.1550" y1="-19.4480" x2="-2.1840" y2="-19.7000" width="0.0254" layer="94"/>+ <wire x1="-2.1180" y1="-19.3910" x2="-2.1390" y2="-19.4100" width="0.0254" layer="94"/>+ <wire x1="-2.1390" y1="-19.4100" x2="-2.1520" y2="-19.4360" width="0.0254" layer="94"/>+ <wire x1="-2.1520" y1="-19.4360" x2="-2.1550" y2="-19.4480" width="0.0254" layer="94"/>+ <wire x1="-3.6720" y1="-18.3770" x2="-3.6990" y2="-18.3950" width="0.0254" layer="94"/>+ <wire x1="-3.6990" y1="-18.3950" x2="-3.7250" y2="-18.4190" width="0.0254" layer="94"/>+ <wire x1="-3.7250" y1="-18.4190" x2="-3.7490" y2="-18.4470" width="0.0254" layer="94"/>+ <wire x1="-3.7490" y1="-18.4470" x2="-3.7690" y2="-18.4790" width="0.0254" layer="94"/>+ <wire x1="-3.7690" y1="-18.4790" x2="-3.7870" y2="-18.5130" width="0.0254" layer="94"/>+ <wire x1="-3.7870" y1="-18.5130" x2="-3.7990" y2="-18.5480" width="0.0254" layer="94"/>+ <wire x1="-3.7990" y1="-18.5480" x2="-3.8070" y2="-18.5820" width="0.0254" layer="94"/>+ <wire x1="-3.8070" y1="-18.5820" x2="-3.8090" y2="-18.5930" width="0.0254" layer="94"/>+ <wire x1="-4.0580" y1="-19.0090" x2="-4.0580" y2="-19.1260" width="0.0254" layer="94"/>+ <wire x1="-3.8740" y1="-18.9030" x2="-4.0580" y2="-19.0090" width="0.0254" layer="94"/>+ <wire x1="-3.8380" y1="-18.8450" x2="-3.8460" y2="-18.8720" width="0.0254" layer="94"/>+ <wire x1="-3.8460" y1="-18.8720" x2="-3.8640" y2="-18.8960" width="0.0254" layer="94"/>+ <wire x1="-3.8640" y1="-18.8960" x2="-3.8740" y2="-18.9030" width="0.0254" layer="94"/>+ <wire x1="-3.8090" y1="-18.5930" x2="-3.8380" y2="-18.8450" width="0.0254" layer="94"/>+ <wire x1="-4.0580" y1="-19.1260" x2="-2.5040" y2="-20.0230" width="0.0254" layer="94"/>+ <wire x1="-2.5040" y1="-19.9060" x2="-4.0580" y2="-19.0090" width="0.0254" layer="94"/>+ <wire x1="-0.1130" y1="-20.2760" x2="-0.2480" y2="-20.3540" width="0.0254" layer="94"/>+ <wire x1="-0.1130" y1="-20.2760" x2="-0.1840" y2="-20.2350" width="0.0254" layer="94"/>+ <wire x1="-0.1840" y1="-20.2350" x2="-0.2550" y2="-20.1940" width="0.0254" layer="94"/>+ <wire x1="-0.2550" y1="-20.1940" x2="-0.3250" y2="-20.1540" width="0.0254" layer="94"/>+ <wire x1="-0.3250" y1="-20.1540" x2="-0.3960" y2="-20.1130" width="0.0254" layer="94"/>+ <wire x1="-0.3960" y1="-20.1130" x2="-0.4670" y2="-20.0720" width="0.0254" layer="94"/>+ <wire x1="-0.4670" y1="-20.0720" x2="-0.5370" y2="-20.0310" width="0.0254" layer="94"/>+ <wire x1="-0.5370" y1="-20.0310" x2="-0.6080" y2="-19.9900" width="0.0254" layer="94"/>+ <wire x1="-0.6080" y1="-19.9900" x2="-0.6780" y2="-19.9500" width="0.0254" layer="94"/>+ <wire x1="-0.6780" y1="-19.9500" x2="-0.7490" y2="-19.9090" width="0.0254" layer="94"/>+ <wire x1="-0.7490" y1="-19.9090" x2="-0.8200" y2="-19.8680" width="0.0254" layer="94"/>+ <wire x1="-0.8200" y1="-19.8680" x2="-0.8900" y2="-19.8270" width="0.0254" layer="94"/>+ <wire x1="-0.8900" y1="-19.8270" x2="-0.9610" y2="-19.7870" width="0.0254" layer="94"/>+ <wire x1="-0.9610" y1="-19.7870" x2="-1.0320" y2="-19.7460" width="0.0254" layer="94"/>+ <wire x1="-1.0320" y1="-19.7460" x2="-1.1020" y2="-19.7050" width="0.0254" layer="94"/>+ <wire x1="-1.1020" y1="-19.7050" x2="-1.1730" y2="-19.6640" width="0.0254" layer="94"/>+ <wire x1="-1.1730" y1="-19.6640" x2="-1.2430" y2="-19.6230" width="0.0254" layer="94"/>+ <wire x1="-1.2430" y1="-19.6230" x2="-1.3140" y2="-19.5830" width="0.0254" layer="94"/>+ <wire x1="-1.3140" y1="-19.5830" x2="-1.3850" y2="-19.5420" width="0.0254" layer="94"/>+ <wire x1="-1.3850" y1="-19.5420" x2="-1.4550" y2="-19.5010" width="0.0254" layer="94"/>+ <wire x1="-1.4550" y1="-19.5010" x2="-1.5260" y2="-19.4600" width="0.0254" layer="94"/>+ <wire x1="-1.5260" y1="-19.4600" x2="-1.5960" y2="-19.4200" width="0.0254" layer="94"/>+ <wire x1="-1.5960" y1="-19.4200" x2="-1.6670" y2="-19.3790" width="0.0254" layer="94"/>+ <wire x1="-1.6670" y1="-19.3790" x2="-1.8020" y2="-19.4570" width="0.0254" layer="94"/>+ <wire x1="-0.1130" y1="-20.3930" x2="-0.2480" y2="-20.4710" width="0.0254" layer="94"/>+ <wire x1="-0.1130" y1="-20.3930" x2="-0.1160" y2="-20.3650" width="0.0254" layer="94"/>+ <wire x1="-0.1160" y1="-20.3650" x2="-0.1190" y2="-20.3370" width="0.0254" layer="94"/>+ <wire x1="-0.1190" y1="-20.3370" x2="-0.1160" y2="-20.3080" width="0.0254" layer="94"/>+ <wire x1="-0.1160" y1="-20.3080" x2="-0.1140" y2="-20.2790" width="0.0254" layer="94"/>+ <wire x1="-0.1140" y1="-20.2790" x2="-0.1130" y2="-20.2760" width="0.0254" layer="94"/>+ <wire x1="-0.2480" y1="-20.3540" x2="-0.2750" y2="-20.3720" width="0.0254" layer="94"/>+ <wire x1="-0.2750" y1="-20.3720" x2="-0.3010" y2="-20.3960" width="0.0254" layer="94"/>+ <wire x1="-0.3010" y1="-20.3960" x2="-0.3250" y2="-20.4240" width="0.0254" layer="94"/>+ <wire x1="-0.3250" y1="-20.4240" x2="-0.3450" y2="-20.4560" width="0.0254" layer="94"/>+ <wire x1="-0.3450" y1="-20.4560" x2="-0.3630" y2="-20.4900" width="0.0254" layer="94"/>+ <wire x1="-0.3630" y1="-20.4900" x2="-0.3750" y2="-20.5250" width="0.0254" layer="94"/>+ <wire x1="-0.3750" y1="-20.5250" x2="-0.3830" y2="-20.5590" width="0.0254" layer="94"/>+ <wire x1="-0.3830" y1="-20.5590" x2="-0.3850" y2="-20.5700" width="0.0254" layer="94"/>+ <wire x1="-0.3850" y1="-20.5700" x2="-0.4140" y2="-20.8220" width="0.0254" layer="94"/>+ <wire x1="-0.4140" y1="-20.8220" x2="-0.4220" y2="-20.8490" width="0.0254" layer="94"/>+ <wire x1="-0.4220" y1="-20.8490" x2="-0.4400" y2="-20.8720" width="0.0254" layer="94"/>+ <wire x1="-0.4400" y1="-20.8720" x2="-0.4500" y2="-20.8790" width="0.0254" layer="94"/>+ <wire x1="-0.4500" y1="-20.8790" x2="-0.6340" y2="-20.9860" width="0.0254" layer="94"/>+ <wire x1="-0.6340" y1="-21.1030" x2="-0.6340" y2="-20.9860" width="0.0254" layer="94"/>+ <wire x1="-0.4500" y1="-20.9960" x2="-0.6340" y2="-21.1030" width="0.0254" layer="94"/>+ <wire x1="-0.3130" y1="-20.7800" x2="-0.3190" y2="-20.8140" width="0.0254" layer="94"/>+ <wire x1="-0.3190" y1="-20.8140" x2="-0.3310" y2="-20.8490" width="0.0254" layer="94"/>+ <wire x1="-0.3310" y1="-20.8490" x2="-0.3470" y2="-20.8830" width="0.0254" layer="94"/>+ <wire x1="-0.3470" y1="-20.8830" x2="-0.3660" y2="-20.9160" width="0.0254" layer="94"/>+ <wire x1="-0.3660" y1="-20.9160" x2="-0.3890" y2="-20.9450" width="0.0254" layer="94"/>+ <wire x1="-0.3890" y1="-20.9450" x2="-0.4140" y2="-20.9700" width="0.0254" layer="94"/>+ <wire x1="-0.4140" y1="-20.9700" x2="-0.4410" y2="-20.9910" width="0.0254" layer="94"/>+ <wire x1="-0.4410" y1="-20.9910" x2="-0.4500" y2="-20.9960" width="0.0254" layer="94"/>+ <wire x1="-0.2850" y1="-20.5280" x2="-0.3130" y2="-20.7800" width="0.0254" layer="94"/>+ <wire x1="-0.2480" y1="-20.4710" x2="-0.2700" y2="-20.4920" width="0.0254" layer="94"/>+ <wire x1="-0.2700" y1="-20.4920" x2="-0.2830" y2="-20.5190" width="0.0254" layer="94"/>+ <wire x1="-0.2830" y1="-20.5190" x2="-0.2850" y2="-20.5280" width="0.0254" layer="94"/>+ <wire x1="-1.8020" y1="-19.4570" x2="-1.8290" y2="-19.4750" width="0.0254" layer="94"/>+ <wire x1="-1.8290" y1="-19.4750" x2="-1.8540" y2="-19.4990" width="0.0254" layer="94"/>+ <wire x1="-1.8540" y1="-19.4990" x2="-1.8780" y2="-19.5270" width="0.0254" layer="94"/>+ <wire x1="-1.8780" y1="-19.5270" x2="-1.8990" y2="-19.5590" width="0.0254" layer="94"/>+ <wire x1="-1.8990" y1="-19.5590" x2="-1.9160" y2="-19.5930" width="0.0254" layer="94"/>+ <wire x1="-1.9160" y1="-19.5930" x2="-1.9290" y2="-19.6270" width="0.0254" layer="94"/>+ <wire x1="-1.9290" y1="-19.6270" x2="-1.9370" y2="-19.6620" width="0.0254" layer="94"/>+ <wire x1="-1.9370" y1="-19.6620" x2="-1.9390" y2="-19.6730" width="0.0254" layer="94"/>+ <wire x1="-2.1880" y1="-20.0890" x2="-2.1880" y2="-20.2050" width="0.0254" layer="94"/>+ <wire x1="-2.0040" y1="-19.9830" x2="-2.1880" y2="-20.0890" width="0.0254" layer="94"/>+ <wire x1="-1.9670" y1="-19.9250" x2="-1.9760" y2="-19.9520" width="0.0254" layer="94"/>+ <wire x1="-1.9760" y1="-19.9520" x2="-1.9940" y2="-19.9750" width="0.0254" layer="94"/>+ <wire x1="-1.9940" y1="-19.9750" x2="-2.0040" y2="-19.9830" width="0.0254" layer="94"/>+ <wire x1="-1.9390" y1="-19.6730" x2="-1.9670" y2="-19.9250" width="0.0254" layer="94"/>+ <wire x1="-2.1880" y1="-20.2050" x2="-0.6340" y2="-21.1030" width="0.0254" layer="94"/>+ <wire x1="-0.6340" y1="-20.9860" x2="-2.1880" y2="-20.0890" width="0.0254" layer="94"/>+ <wire x1="2.8060" y1="-18.7330" x2="2.8080" y2="-18.7420" width="0.0254" layer="94"/>+ <wire x1="2.8080" y1="-18.7420" x2="2.8120" y2="-18.7650" width="0.0254" layer="94"/>+ <wire x1="2.8240" y1="-18.8620" x2="2.8370" y2="-18.9610" width="0.0254" layer="94"/>+ <wire x1="2.8370" y1="-18.9610" x2="2.8440" y2="-18.9890" width="0.0254" layer="94"/>+ <wire x1="2.8440" y1="-18.9890" x2="2.8580" y2="-19.0140" width="0.0254" layer="94"/>+ <wire x1="2.8580" y1="-19.0140" x2="2.8760" y2="-19.0290" width="0.0254" layer="94"/>+ <wire x1="2.8760" y1="-19.0290" x2="2.9030" y2="-19.0380" width="0.0254" layer="94"/>+ <wire x1="2.9030" y1="-19.0380" x2="2.9350" y2="-19.0350" width="0.0254" layer="94"/>+ <wire x1="2.9350" y1="-19.0350" x2="2.9640" y2="-19.0250" width="0.0254" layer="94"/>+ <wire x1="2.9640" y1="-19.0250" x2="2.9740" y2="-19.0190" width="0.0254" layer="94"/>+ <wire x1="2.9740" y1="-19.0190" x2="3.1580" y2="-18.9130" width="0.0254" layer="94"/>+ <wire x1="3.1580" y1="-18.7960" x2="3.1580" y2="-18.9130" width="0.0254" layer="94"/>+ <wire x1="2.9740" y1="-18.9030" x2="3.1580" y2="-18.7960" width="0.0254" layer="94"/>+ <wire x1="2.9380" y1="-18.8870" x2="2.9480" y2="-18.9050" width="0.0254" layer="94"/>+ <wire x1="2.9480" y1="-18.9050" x2="2.9740" y2="-18.9030" width="0.0254" layer="94"/>+ <wire x1="2.9090" y1="-18.6680" x2="2.9380" y2="-18.8870" width="0.0254" layer="94"/>+ <wire x1="2.7830" y1="-18.6040" x2="2.8090" y2="-18.5950" width="0.0254" layer="94"/>+ <wire x1="2.8090" y1="-18.5950" x2="2.8380" y2="-18.5910" width="0.0254" layer="94"/>+ <wire x1="2.8380" y1="-18.5910" x2="2.8670" y2="-18.5990" width="0.0254" layer="94"/>+ <wire x1="2.8670" y1="-18.5990" x2="2.8700" y2="-18.6000" width="0.0254" layer="94"/>+ <wire x1="2.8700" y1="-18.6000" x2="2.8920" y2="-18.6210" width="0.0254" layer="94"/>+ <wire x1="2.8920" y1="-18.6210" x2="2.9050" y2="-18.6480" width="0.0254" layer="94"/>+ <wire x1="2.9050" y1="-18.6480" x2="2.9090" y2="-18.6680" width="0.0254" layer="94"/>+ <wire x1="2.9210" y1="-18.7590" x2="3.0070" y2="-18.7090" width="0.0254" layer="94"/>+ <wire x1="3.0070" y1="-18.7090" x2="3.1580" y2="-18.7960" width="0.0254" layer="94"/>+ <wire x1="2.7720" y1="-18.5440" x2="2.8700" y2="-18.6000" width="0.0254" layer="94"/>+ <wire x1="2.8760" y1="-19.0290" x2="2.8010" y2="-18.9860" width="0.0254" layer="94"/>+ <wire x1="-2.1180" y1="-19.2740" x2="-3.6720" y2="-18.3770" width="0.0254" layer="94"/>+ <wire x1="-2.2550" y1="-19.4900" x2="-3.8090" y2="-18.5930" width="0.0254" layer="94"/>+ <wire x1="-2.3200" y1="-19.8000" x2="-3.8740" y2="-18.9030" width="0.0254" layer="94"/>+ <wire x1="-2.2840" y1="-19.7420" x2="-3.8380" y2="-18.8450" width="0.0254" layer="94"/>+ <wire x1="-0.2480" y1="-20.3540" x2="-1.8020" y2="-19.4570" width="0.0254" layer="94"/>+ <wire x1="-0.3850" y1="-20.5700" x2="-1.9390" y2="-19.6730" width="0.0254" layer="94"/>+ <wire x1="-0.4500" y1="-20.8790" x2="-2.0040" y2="-19.9830" width="0.0254" layer="94"/>+ <wire x1="-0.4140" y1="-20.8220" x2="-1.9670" y2="-19.9250" width="0.0254" layer="94"/>+ <wire x1="2.8080" y1="-18.7420" x2="2.8070" y2="-18.7420" width="0.0254" layer="94"/>+ <wire x1="2.9370" y1="-18.8810" x2="2.9740" y2="-18.9030" width="0.0254" layer="94"/>+ <wire x1="2.8370" y1="-18.9610" x2="2.8080" y2="-18.9450" width="0.0254" layer="94"/>+ <wire x1="-0.8120" y1="-17.3130" x2="-1.0990" y2="-17.4790" width="0.0254" layer="94"/>+ <wire x1="-0.9070" y1="-17.2580" x2="-0.7160" y2="-17.3690" width="0.0254" layer="94"/>+ <wire x1="-0.6480" y1="-17.4080" x2="-0.9350" y2="-17.5740" width="0.0254" layer="94"/>+ <wire x1="-0.6480" y1="-17.4080" x2="-0.8260" y2="-17.6360" width="0.0254" layer="94"/>+ <wire x1="-0.4300" y1="-17.5340" x2="-0.8260" y2="-17.6360" width="0.0254" layer="94"/>+ <wire x1="-0.4300" y1="-17.5340" x2="-0.7160" y2="-17.7000" width="0.0254" layer="94"/>+ <wire x1="-0.1980" y1="-17.7470" x2="-0.1840" y2="-17.6920" width="0.0254" layer="94"/>+ <wire x1="-0.1840" y1="-17.6920" x2="-0.2520" y2="-17.6360" width="0.0254" layer="94"/>+ <wire x1="-0.2520" y1="-17.6360" x2="-0.2930" y2="-17.6290" width="0.0254" layer="94"/>+ <wire x1="-0.2930" y1="-17.6290" x2="-0.3480" y2="-17.6290" width="0.0254" layer="94"/>+ <wire x1="-0.3480" y1="-17.6290" x2="-0.3890" y2="-17.6360" width="0.0254" layer="94"/>+ <wire x1="-0.3890" y1="-17.6360" x2="-0.4440" y2="-17.6520" width="0.0254" layer="94"/>+ <wire x1="-0.4440" y1="-17.6520" x2="-0.5120" y2="-17.6920" width="0.0254" layer="94"/>+ <wire x1="-0.5120" y1="-17.6920" x2="-0.5390" y2="-17.7230" width="0.0254" layer="94"/>+ <wire x1="-0.5390" y1="-17.7230" x2="-0.5530" y2="-17.7790" width="0.0254" layer="94"/>+ <wire x1="-0.5530" y1="-17.7790" x2="-0.4840" y2="-17.8340" width="0.0254" layer="94"/>+ <wire x1="-0.4840" y1="-17.8340" x2="-0.4440" y2="-17.8410" width="0.0254" layer="94"/>+ <wire x1="-0.4440" y1="-17.8410" x2="-0.3890" y2="-17.8410" width="0.0254" layer="94"/>+ <wire x1="-0.3890" y1="-17.8410" x2="-0.3480" y2="-17.8340" width="0.0254" layer="94"/>+ <wire x1="0.1020" y1="-17.8890" x2="0.1020" y2="-17.8570" width="0.0254" layer="94"/>+ <wire x1="0.1020" y1="-17.8570" x2="0.0750" y2="-17.8260" width="0.0254" layer="94"/>+ <wire x1="0.0750" y1="-17.8260" x2="0.0200" y2="-17.7940" width="0.0254" layer="94"/>+ <wire x1="0.0200" y1="-17.7940" x2="-0.0340" y2="-17.7790" width="0.0254" layer="94"/>+ <wire x1="-0.0340" y1="-17.7790" x2="-0.0890" y2="-17.7790" width="0.0254" layer="94"/>+ <wire x1="-0.0890" y1="-17.7790" x2="-0.1160" y2="-17.7940" width="0.0254" layer="94"/>+ <wire x1="-0.1160" y1="-17.7940" x2="-0.1300" y2="-17.8340" width="0.0254" layer="94"/>+ <wire x1="-0.1300" y1="-17.8340" x2="-0.0610" y2="-17.9200" width="0.0254" layer="94"/>+ <wire x1="-0.0610" y1="-17.9200" x2="-0.0480" y2="-17.9600" width="0.0254" layer="94"/>+ <wire x1="-0.0480" y1="-17.9600" x2="-0.1020" y2="-18.0070" width="0.0254" layer="94"/>+ <wire x1="-0.1020" y1="-18.0070" x2="-0.1570" y2="-18.0070" width="0.0254" layer="94"/>+ <wire x1="-0.1570" y1="-18.0070" x2="-0.2120" y2="-17.9910" width="0.0254" layer="94"/>+ <wire x1="-0.2120" y1="-17.9910" x2="-0.2660" y2="-17.9600" width="0.0254" layer="94"/>+ <wire x1="-0.2660" y1="-17.9600" x2="-0.2930" y2="-17.9280" width="0.0254" layer="94"/>+ <wire x1="-0.2930" y1="-17.9280" x2="-0.2930" y2="-17.8970" width="0.0254" layer="94"/>+ <wire x1="0.2120" y1="-17.9670" x2="0.2520" y2="-17.9750" width="0.0254" layer="94"/>+ <wire x1="0.2520" y1="-17.9750" x2="0.3340" y2="-17.9750" width="0.0254" layer="94"/>+ <wire x1="0.3340" y1="-17.9750" x2="0.0480" y2="-18.1410" width="0.0254" layer="94"/>+ <wire x1="0.4850" y1="-18.1250" x2="0.5260" y2="-18.1330" width="0.0254" layer="94"/>+ <wire x1="0.5260" y1="-18.1330" x2="0.6080" y2="-18.1330" width="0.0254" layer="94"/>+ <wire x1="0.6080" y1="-18.1330" x2="0.3210" y2="-18.2980" width="0.0254" layer="94"/>+ <wire x1="0.7160" y1="-18.2750" x2="0.7710" y2="-18.2590" width="0.0254" layer="94"/>+ <wire x1="0.7710" y1="-18.2590" x2="0.8390" y2="-18.2670" width="0.0254" layer="94"/>+ <wire x1="0.8390" y1="-18.2670" x2="0.8940" y2="-18.2980" width="0.0254" layer="94"/>+ <wire x1="0.8940" y1="-18.2980" x2="0.9080" y2="-18.3380" width="0.0254" layer="94"/>+ <wire x1="0.9080" y1="-18.3380" x2="0.8670" y2="-18.3770" width="0.0254" layer="94"/>+ <wire x1="0.8670" y1="-18.3770" x2="0.8260" y2="-18.3850" width="0.0254" layer="94"/>+ <wire x1="0.8260" y1="-18.3850" x2="0.7580" y2="-18.3930" width="0.0254" layer="94"/>+ <wire x1="0.7580" y1="-18.3930" x2="0.4850" y2="-18.3930" width="0.0254" layer="94"/>+ <wire x1="0.4850" y1="-18.3930" x2="0.6760" y2="-18.5030" width="0.0254" layer="94"/>+ <wire x1="1.0720" y1="-18.4010" x2="1.2220" y2="-18.4870" width="0.0254" layer="94"/>+ <wire x1="1.2220" y1="-18.4870" x2="1.0300" y2="-18.5030" width="0.0254" layer="94"/>+ <wire x1="1.0300" y1="-18.5030" x2="1.0720" y2="-18.5270" width="0.0254" layer="94"/>+ <wire x1="1.0720" y1="-18.5270" x2="1.0850" y2="-18.5660" width="0.0254" layer="94"/>+ <wire x1="1.0850" y1="-18.5660" x2="1.0580" y2="-18.5980" width="0.0254" layer="94"/>+ <wire x1="1.0580" y1="-18.5980" x2="1.0300" y2="-18.6140" width="0.0254" layer="94"/>+ <wire x1="1.0300" y1="-18.6140" x2="0.9760" y2="-18.6290" width="0.0254" layer="94"/>+ <wire x1="0.9760" y1="-18.6290" x2="0.9210" y2="-18.6290" width="0.0254" layer="94"/>+ <wire x1="0.9210" y1="-18.6290" x2="0.8670" y2="-18.6140" width="0.0254" layer="94"/>+ <wire x1="0.8670" y1="-18.6140" x2="0.8260" y2="-18.5900" width="0.0254" layer="94"/>+ <wire x1="0.8260" y1="-18.5900" x2="0.7980" y2="-18.5580" width="0.0254" layer="94"/>+ <wire x1="0.7980" y1="-18.5580" x2="0.8120" y2="-18.5190" width="0.0254" layer="94"/>+ <wire x1="-1.3030" y1="-17.5260" x2="-1.5900" y2="-17.6920" width="0.0254" layer="94"/>+ <wire x1="-1.3030" y1="-17.5260" x2="-1.1800" y2="-17.5970" width="0.0254" layer="94"/>+ <wire x1="-1.1800" y1="-17.5970" x2="-1.1530" y2="-17.6290" width="0.0254" layer="94"/>+ <wire x1="-1.1530" y1="-17.6290" x2="-1.1670" y2="-17.6680" width="0.0254" layer="94"/>+ <wire x1="-1.1670" y1="-17.6680" x2="-1.1940" y2="-17.6840" width="0.0254" layer="94"/>+ <wire x1="-1.1940" y1="-17.6840" x2="-1.2350" y2="-17.6920" width="0.0254" layer="94"/>+ <wire x1="-1.2350" y1="-17.6920" x2="-1.3170" y2="-17.6760" width="0.0254" layer="94"/>+ <wire x1="-1.4400" y1="-17.6050" x2="-1.3170" y2="-17.6760" width="0.0254" layer="94"/>+ <wire x1="-1.3170" y1="-17.6760" x2="-1.2900" y2="-17.7080" width="0.0254" layer="94"/>+ <wire x1="-1.2900" y1="-17.7080" x2="-1.3030" y2="-17.7470" width="0.0254" layer="94"/>+ <wire x1="-1.3030" y1="-17.7470" x2="-1.3440" y2="-17.7700" width="0.0254" layer="94"/>+ <wire x1="-1.3440" y1="-17.7700" x2="-1.3850" y2="-17.7790" width="0.0254" layer="94"/>+ <wire x1="-1.3850" y1="-17.7790" x2="-1.4130" y2="-17.7790" width="0.0254" layer="94"/>+ <wire x1="-1.4130" y1="-17.7790" x2="-1.4670" y2="-17.7620" width="0.0254" layer="94"/>+ <wire x1="-1.4670" y1="-17.7620" x2="-1.5900" y2="-17.6920" width="0.0254" layer="94"/>+ <wire x1="-1.0440" y1="-17.7390" x2="-1.0030" y2="-17.7470" width="0.0254" layer="94"/>+ <wire x1="-1.0030" y1="-17.7470" x2="-0.9210" y2="-17.7470" width="0.0254" layer="94"/>+ <wire x1="-0.9210" y1="-17.7470" x2="-1.2080" y2="-17.9120" width="0.0254" layer="94"/>+ <wire x1="-0.6760" y1="-17.8890" x2="-1.0710" y2="-17.9910" width="0.0254" layer="94"/>+ <wire x1="-0.6760" y1="-17.8890" x2="-0.8530" y2="-18.1170" width="0.0254" layer="94"/>+ <wire x1="-0.9350" y1="-17.9600" x2="-0.7980" y2="-18.0380" width="0.0254" layer="94"/>+ <wire x1="-0.4300" y1="-18.0310" x2="-0.4710" y2="-18.0230" width="0.0254" layer="94"/>+ <wire x1="-0.4710" y1="-18.0230" x2="-0.5250" y2="-18.0230" width="0.0254" layer="94"/>+ <wire x1="-0.5250" y1="-18.0230" x2="-0.5660" y2="-18.0310" width="0.0254" layer="94"/>+ <wire x1="-0.5660" y1="-18.0310" x2="-0.6210" y2="-18.0460" width="0.0254" layer="94"/>+ <wire x1="-0.6210" y1="-18.0460" x2="-0.6890" y2="-18.0860" width="0.0254" layer="94"/>+ <wire x1="-0.6890" y1="-18.0860" x2="-0.7160" y2="-18.1170" width="0.0254" layer="94"/>+ <wire x1="-0.7160" y1="-18.1170" x2="-0.7300" y2="-18.1720" width="0.0254" layer="94"/>+ <wire x1="-0.7300" y1="-18.1720" x2="-0.6620" y2="-18.2280" width="0.0254" layer="94"/>+ <wire x1="-0.6620" y1="-18.2280" x2="-0.6210" y2="-18.2350" width="0.0254" layer="94"/>+ <wire x1="-0.6210" y1="-18.2350" x2="-0.5660" y2="-18.2350" width="0.0254" layer="94"/>+ <wire x1="-0.5660" y1="-18.2350" x2="-0.5250" y2="-18.2280" width="0.0254" layer="94"/>+ <wire x1="-0.5250" y1="-18.2280" x2="-0.4710" y2="-18.2120" width="0.0254" layer="94"/>+ <wire x1="-0.4710" y1="-18.2120" x2="-0.4030" y2="-18.1720" width="0.0254" layer="94"/>+ <wire x1="-0.4030" y1="-18.1720" x2="-0.3750" y2="-18.1410" width="0.0254" layer="94"/>+ <wire x1="-0.3750" y1="-18.1410" x2="-0.3610" y2="-18.0860" width="0.0254" layer="94"/>+ <wire x1="-0.3610" y1="-18.0860" x2="-0.4300" y2="-18.0310" width="0.0254" layer="94"/>+ <wire x1="-0.6210" y1="-18.1880" x2="-0.6210" y2="-18.2830" width="0.0254" layer="94"/>+ <wire x1="-0.1980" y1="-18.1640" x2="-0.4840" y2="-18.3300" width="0.0254" layer="94"/>+ <wire x1="-0.1980" y1="-18.1640" x2="-0.1020" y2="-18.2200" width="0.0254" layer="94"/>+ <wire x1="-0.1020" y1="-18.2200" x2="-0.0750" y2="-18.2510" width="0.0254" layer="94"/>+ <wire x1="-0.0750" y1="-18.2510" x2="-0.0750" y2="-18.2830" width="0.0254" layer="94"/>+ <wire x1="-0.0750" y1="-18.2830" x2="-0.1160" y2="-18.3380" width="0.0254" layer="94"/>+ <wire x1="-0.1160" y1="-18.3380" x2="-0.1840" y2="-18.3770" width="0.0254" layer="94"/>+ <wire x1="-0.1840" y1="-18.3770" x2="-0.2390" y2="-18.3930" width="0.0254" layer="94"/>+ <wire x1="-0.2390" y1="-18.3930" x2="-0.2800" y2="-18.4010" width="0.0254" layer="94"/>+ <wire x1="-0.2800" y1="-18.4010" x2="-0.3340" y2="-18.4010" width="0.0254" layer="94"/>+ <wire x1="-0.3340" y1="-18.4010" x2="-0.3890" y2="-18.3850" width="0.0254" layer="94"/>+ <wire x1="-0.3890" y1="-18.3850" x2="-0.4840" y2="-18.3300" width="0.0254" layer="94"/>+ <wire x1="0.0480" y1="-18.3060" x2="-0.1300" y2="-18.5350" width="0.0254" layer="94"/>+ <wire x1="0.2660" y1="-18.4320" x2="-0.1300" y2="-18.5350" width="0.0254" layer="94"/>+ <wire x1="0.4570" y1="-18.6210" x2="0.4710" y2="-18.5660" width="0.0254" layer="94"/>+ <wire x1="0.4710" y1="-18.5660" x2="0.4030" y2="-18.5110" width="0.0254" layer="94"/>+ <wire x1="0.4030" y1="-18.5110" x2="0.3620" y2="-18.5030" width="0.0254" layer="94"/>+ <wire x1="0.3620" y1="-18.5030" x2="0.3070" y2="-18.5030" width="0.0254" layer="94"/>+ <wire x1="0.3070" y1="-18.5030" x2="0.2660" y2="-18.5110" width="0.0254" layer="94"/>+ <wire x1="0.2660" y1="-18.5110" x2="0.2120" y2="-18.5270" width="0.0254" layer="94"/>+ <wire x1="0.2120" y1="-18.5270" x2="0.1430" y2="-18.5660" width="0.0254" layer="94"/>+ <wire x1="0.1430" y1="-18.5660" x2="0.1160" y2="-18.5980" width="0.0254" layer="94"/>+ <wire x1="0.1160" y1="-18.5980" x2="0.1020" y2="-18.6530" width="0.0254" layer="94"/>+ <wire x1="0.1020" y1="-18.6530" x2="0.1710" y2="-18.7080" width="0.0254" layer="94"/>+ <wire x1="0.1710" y1="-18.7080" x2="0.2120" y2="-18.7160" width="0.0254" layer="94"/>+ <wire x1="0.2120" y1="-18.7160" x2="0.2660" y2="-18.7160" width="0.0254" layer="94"/>+ <wire x1="0.2660" y1="-18.7160" x2="0.3070" y2="-18.7080" width="0.0254" layer="94"/>+ <wire x1="0.3070" y1="-18.7080" x2="0.3480" y2="-18.6840" width="0.0254" layer="94"/>+ <wire x1="0.2800" y1="-18.6450" x2="0.3480" y2="-18.6840" width="0.0254" layer="94"/>+ <wire x1="0.6210" y1="-18.6370" x2="0.3340" y2="-18.8030" width="0.0254" layer="94"/>+ <wire x1="0.6210" y1="-18.6370" x2="0.7440" y2="-18.7080" width="0.0254" layer="94"/>+ <wire x1="0.7440" y1="-18.7080" x2="0.7710" y2="-18.7400" width="0.0254" layer="94"/>+ <wire x1="0.7710" y1="-18.7400" x2="0.7580" y2="-18.7790" width="0.0254" layer="94"/>+ <wire x1="0.7580" y1="-18.7790" x2="0.7300" y2="-18.7950" width="0.0254" layer="94"/>+ <wire x1="0.7300" y1="-18.7950" x2="0.6890" y2="-18.8030" width="0.0254" layer="94"/>+ <wire x1="0.6890" y1="-18.8030" x2="0.6080" y2="-18.7870" width="0.0254" layer="94"/>+ <wire x1="0.6080" y1="-18.7870" x2="0.4850" y2="-18.7160" width="0.0254" layer="94"/>+ <wire x1="0.5800" y1="-18.7710" x2="0.5260" y2="-18.9130" width="0.0254" layer="94"/>+ <text x="0.0000" y="5.0800" size="1.27" layer="95" align="center">>NAME</text>+ <text x="0.0000" y="-42.2900" size="1.27" layer="96" align="center">>VALUE</text>+ <pin name="IN+" x="-20.32" y="-2.54" length="short" direction="pas"/>+ <pin name="IN-" x="-20.32" y="-5.08" length="short" direction="pas"/>+ <pin name="VS" x="20.32" y="-2.54" length="short" direction="pwr" rot="R180"/>+ <pin name="GND" x="20.32" y="-5.08" length="short" direction="pwr" rot="R180"/>+ <pin name="VOUT" x="20.32" y="-12.7" length="short" direction="out" rot="R180"/>+ <pin name="VREF" x="20.32" y="-15.24" length="short" direction="out" rot="R180"/>+ <pin name="VOC" x="20.32" y="-22.86" length="short" direction="in" rot="R180"/>+ <pin name="OC" x="20.32" y="-25.4" length="short" direction="oc" rot="R180"/>+ <pin name="ALERT" x="20.32" y="-27.94" length="short" direction="oc" rot="R180"/>+ <pin name="NC" x="20.32" y="-38.1" length="short" direction="nc" rot="R180"/>+ <text x="-16.7600" y="-0.5400" size="0.762" layer="94" font="vector" ratio="15" align="center-left">Primary side</text>+ <text x="16.7600" y="-0.5400" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Supply</text>+ <text x="16.7600" y="-10.7000" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Analog output</text>+ <text x="16.7600" y="-20.8600" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Overcurrent</text>+ <text x="16.7600" y="-36.1000" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Reserved</text>+</symbol>+</symbols>+<devicesets>+<deviceset name="TMCS1123B1AQDVGR" prefix="U">+ <description>Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function</description>+ <gates>+ <gate name="G$1" symbol="TMCS1123B1AQDVGR" x="0" y="0"/>+ </gates>+ <devices>+ <device name="" package="tmcs1123b1aqdvgr">+ <connects>+ <connect gate="G$1" pin="IN+" pad="1"/>+ <connect gate="G$1" pin="IN-" pad="2"/>+ <connect gate="G$1" pin="VS" pad="8"/>+ <connect gate="G$1" pin="GND" pad="3"/>+ <connect gate="G$1" pin="VOUT" pad="6"/>+ <connect gate="G$1" pin="VREF" pad="5"/>+ <connect gate="G$1" pin="VOC" pad="9"/>+ <connect gate="G$1" pin="OC" pad="7"/>+ <connect gate="G$1" pin="ALERT" pad="4"/>+ <connect gate="G$1" pin="NC" pad="10"/>+ </connects>+ <technologies>+ <technology name="">+ <attribute name="MPN" value="TMCS1123B1AQDVGR" constant="no"/>+ <attribute name="MANUFACTURER" value="Texas Instruments" constant="no"/>+ <attribute name="DATASHEET" value="https://www.ti.com/lit/ds/symlink/tmcs1123.pdf" constant="no"/>+ <attribute name="ADOM_WIKI" value="https://wiki.adom.inc/adom/tmcs1123b1aqdvgr" constant="no"/>+ <attribute name="MOUSER_PN" value="595-TMCS1123B1AQDVGR" constant="no"/>+ <attribute name="DIGIKEY_PN" value="296-TMCS1123B1AQDVGRTR-ND" constant="no"/>+ </technology>+ </technologies>+ </device>+ </devices>+</deviceset>+</devicesets>+</library>+</drawing>+</eagle>
verification.jsonadded+275@@ -0,0 +1,275 @@+{+ "schema": "adom/verification@1",+ "part": "TMCS1123B1AQDVGR",+ "variants": [+ {+ "mpn": "TMCS1123B1AQDVGR",+ "note": "B1A: 25 mV/A, 1.65 V zero-current output; 2000-piece large tape and reel (SBOSA24D p.40)",+ "stocked": false+ }+ ],+ "entries": [+ {+ "date": "2026-10-21",+ "by": {+ "name": "Claude (AI), automated checks, not yet reviewed by a person",+ "handle": "claude"+ },+ "status": "verified",+ "title": "Pinout matches the datasheet",+ "scope": [+ "symbol"+ ],+ "variants": [+ "*"+ ],+ "checks": [+ {+ "text": "Symbol pins match SBOSA24D Table 5-1 (p.4): 1 IN+, 2 IN-, 3 GND, 4 ALERT, 5 VREF, 6 VOUT, 7 OC, 8 VS, 9 VOC, 10 NC",+ "result": "pass"+ },+ {+ "text": "Groups: Primary side (IN+, IN-) on the left; isolated low-voltage side on the right (Supply, Analog output, Overcurrent, Reserved)",+ "result": "pass"+ },+ {+ "text": "Electrical types: IN+ and IN- passive (a conductor), VS and GND power, VOUT and VREF output, VOC input, OC and ALERT open collector (open-drain), NC no-connect",+ "result": "pass"+ },+ {+ "text": "Pin n maps to pad n, read back from the Fusion .lbr and the Altium SchLib/PcbLib; Altium has no no-connect pin type, so NC is Passive there; all Altium pin names are shown",+ "result": "pass"+ },+ {+ "text": "Every pin sits on the 2.54 mm grid (adom-symbol 1.2.6 put the first pin of each column at y = -2.00; snapped by provenance/tools/snap_symbol.py)",+ "result": "note"+ }+ ],+ "evidence": [+ {+ "label": "tmcs1123b1aqdvgr-ds-p4.png",+ "href": "docs/figures/tmcs1123b1aqdvgr-ds-p4.png"+ },+ {+ "label": "tmcs1123b1aqdvgr-symbol.png",+ "href": "docs/proof/tmcs1123b1aqdvgr-symbol.png"+ }+ ],+ "files": {+ "tmcs1123b1aqdvgr.kicad_sym": "4eab48eda132db8f034f3ded77569a08f4250b4dcdf2ebebc2d2237a24e4da53",+ "tmcs1123b1aqdvgr.lbr": "81e146f380ab9d15499b69b5ebbb78baa2baef83612b3317121d3edda2818af5",+ "altium/TMCS1123B1AQDVGR.SchLib": "2568671c1bd6acbc7d3b452aada4eb2c981b87d9b25877118c47e8fdef0ab0ed"+ }+ },+ {+ "date": "2026-10-21",+ "by": {+ "name": "Claude (AI), automated checks, not yet reviewed by a person",+ "handle": "claude"+ },+ "status": "verified",+ "title": "Footprint equals TI's HV / isolation land pattern",+ "scope": [+ "footprint"+ ],+ "variants": [+ "*"+ ],+ "checks": [+ {+ "text": "All 10 pads equal the p.46 HV / isolation option: pads 1, 2 are 1.65 x 4.41 mm at (-4.875, -+2.54); pads 3 to 10 are 1.65 x 0.60 mm at x = +4.875, 1.27 mm pitch; R0.05 corners",+ "result": "pass"+ },+ {+ "text": "Pad-to-pad clearance between the primary and low-voltage rows is 8.1 mm (TI: 8.1 mm clearance/creepage); the part is rated 8 mm (p.6)",+ "result": "pass"+ },+ {+ "text": "Isolation keepout rule area on all copper layers between the rows (x -4.05 to 4.05, y -5.5 to 5.5); also in the Fusion .lbr as t/b/vRestrict",+ "result": "pass"+ },+ {+ "text": "TI's IPC-7351 nominal option (7.3 mm) is not used: it is under the part's 8 mm rating",+ "result": "note"+ },+ {+ "text": "Pads 1 and 2 carry no heatsink vias on purpose: they are the current leads; TI asks for via farms in the copper planes around them (p.36)",+ "result": "note"+ }+ ],+ "evidence": [+ {+ "label": "tmcs1123b1aqdvgr-footprint-check.png",+ "href": "docs/proof/tmcs1123b1aqdvgr-footprint-check.png"+ },+ {+ "label": "tmcs1123b1aqdvgr-ds-p46.png",+ "href": "docs/figures/tmcs1123b1aqdvgr-ds-p46.png"+ },+ {+ "label": "footprint-check.json",+ "href": "provenance/footprint-check.json"+ }+ ],+ "files": {+ "tmcs1123b1aqdvgr.kicad_mod": "cf885b25cbd3dab2294eaff1a66ccfe8a4a5b2a0ff185d171a7aa632db9e7713",+ "tmcs1123b1aqdvgr.lbr": "81e146f380ab9d15499b69b5ebbb78baa2baef83612b3317121d3edda2818af5"+ }+ },+ {+ "date": "2026-10-21",+ "by": {+ "name": "Claude (AI), automated checks, not yet reviewed by a person",+ "handle": "claude"+ },+ "status": "verified",+ "title": "Pin 1 orientation agrees across datasheet, footprint, 3D model and symbol",+ "scope": [+ "footprint",+ "3d",+ "symbol"+ ],+ "variants": [+ "*"+ ],+ "checks": [+ {+ "text": "Datasheet top view (p.4 Figure 5-1, p.45): pin 1 IN+ upper left, pin 2 IN- lower left, pins 3 to 10 up the right side with 10 at the top",+ "result": "pass"+ },+ {+ "text": "Footprint: pad 1 upper left (KiCad Y down), pad 2 lower left, pad 3 lower right, pad 10 upper right; silkscreen pin-1 bar at the upper-left corner; F.Fab chamfer at pin 1",+ "result": "pass"+ },+ {+ "text": "3D model: pin 1 current lead at (-x, +y) in the Z-up model, which is pad 1 after KiCad's Y flip; pin-1 dimple in the same corner; overlay on p.45 matches",+ "result": "pass"+ },+ {+ "text": "Hero GLB: adom-hero alignment guard OK (centre offset 0.0 mm); labels IN+ upper left, NC upper right, GND lower right",+ "result": "pass"+ },+ {+ "text": "Symbol: pin numbers and names as Table 5-1",+ "result": "pass"+ },+ {+ "text": "The MPN etch reads upright with pin 1 lower left in the planner's standard pose (adom-aiflow-etch gate PASS)",+ "result": "pass"+ }+ ],+ "evidence": [+ {+ "label": "tmcs1123b1aqdvgr-footprint-check.png",+ "href": "docs/proof/tmcs1123b1aqdvgr-footprint-check.png"+ },+ {+ "label": "tmcs1123b1aqdvgr-overlay.png",+ "href": "docs/proof/tmcs1123b1aqdvgr-overlay.png"+ },+ {+ "label": "tmcs1123b1aqdvgr-hero-preview.png",+ "href": "docs/proof/tmcs1123b1aqdvgr-hero-preview.png"+ },+ {+ "label": "tmcs1123b1aqdvgr-ds-p45.png",+ "href": "docs/figures/tmcs1123b1aqdvgr-ds-p45.png"+ }+ ],+ "files": {+ "tmcs1123b1aqdvgr.kicad_mod": "cf885b25cbd3dab2294eaff1a66ccfe8a4a5b2a0ff185d171a7aa632db9e7713",+ "tmcs1123b1aqdvgr-etched.step": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+ "tmcs1123b1aqdvgr-hero.glb": "bf51329a5a46cd522589b2e604a47acd88117b42e3e8ad0f20e2daf671f85fc3",+ "tmcs1123b1aqdvgr.kicad_sym": "4eab48eda132db8f034f3ded77569a08f4250b4dcdf2ebebc2d2237a24e4da53"+ }+ },+ {+ "date": "2026-10-21",+ "by": {+ "name": "Claude (AI), automated checks, not yet reviewed by a person",+ "handle": "claude"+ },+ "status": "verified",+ "title": "3D model inside TI's package drawing",+ "scope": [+ "3d"+ ],+ "variants": [+ "*"+ ],+ "checks": [+ {+ "text": "E 10.30, E1 7.50, D 10.30, A 2.55, A1 0.20, c 0.275, b 0.41, current leads 4.22 at +-2.54: inside DVG0010A (p.45), measured by section",+ "result": "pass"+ },+ {+ "text": "Foot L 0.854 mm at the 0.25 mm gauge plane: inside 0.40 to 1.27",+ "result": "pass"+ },+ {+ "text": "Overlay of top, front and end views on the p.45 drawing at its own scale",+ "result": "pass"+ },+ {+ "text": "TI's STEP (Ultra Librarian) needs a reCAPTCHA; not compared",+ "result": "note"+ }+ ],+ "evidence": [+ {+ "label": "tmcs1123b1aqdvgr-overlay.png",+ "href": "docs/proof/tmcs1123b1aqdvgr-overlay.png"+ },+ {+ "label": "3d-model.json",+ "href": "provenance/3d-model.json"+ },+ {+ "label": "tmcs1123b1aqdvgr-ds-p45.png",+ "href": "docs/figures/tmcs1123b1aqdvgr-ds-p45.png"+ }+ ],+ "files": {+ "tmcs1123b1aqdvgr.step": "0a853e2f4e75a9e6cbad36f5019d39ee4dcb53a4c9cc39f4c3ad37d4c9274672",+ "tmcs1123b1aqdvgr-etched.step": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+ "tmcs1123b1aqdvgr-etched.glb": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56"+ }+ },+ {+ "date": "2026-10-21",+ "by": {+ "name": "Claude (AI), automated checks, not yet reviewed by a person",+ "handle": "claude"+ },+ "status": "open",+ "title": "Still to do",+ "scope": [+ "3d",+ "library"+ ],+ "variants": [+ "*"+ ],+ "checks": [+ {+ "text": "Compare against TI's own STEP once someone downloads it from Ultra Librarian in a browser",+ "result": "open"+ },+ {+ "text": "Altium PcbLib has no keepout region: adom-lbr 2.47.6 does not carry the KiCad rule area; add a keepout region over x -4.05 to 4.05 mm in Altium, or rely on board rules",+ "result": "open"+ },+ {+ "text": "Open the KiCad, Fusion and Altium libraries in the native tools; so far they are checked by lint and read-back only",+ "result": "open"+ },+ {+ "text": "No reel on hand and no distributor stock on 2026-10-21 (Mouser and DigiKey 0, 140-day lead time at Mouser)",+ "result": "open"+ }+ ],+ "evidence": [],+ "files": {}+ }+ ]+}
viewers/footprint.htmladded+210@@ -0,0 +1,210 @@+<!doctype html><html><head><meta charset="utf-8">+<title>tmcs1123b1aqdvgr - adom-footprint</title>+<meta name="viewport" content="width=device-width,initial-scale=1">+<style>+/* ── adom-footprint shared viewer core (CSS) ───────────────────────────────+ Included VERBATIM by both the live app (app.html) and the static embed+ (embed.html) so the canvas, zoom toolbar and layer-panel rows look identical+ and cannot drift. Self-contained literal colours (no dependency on either+ file's CSS vars). Class prefix: av- */++.av-vp{position:absolute;inset:0;overflow:hidden;cursor:grab;background:radial-gradient(circle at 50% 42%,#121a26 0%,#0d1117 72%)}+.av-vp.grab{cursor:grabbing}+/* DIRECT child only — the zoom-toolbar button icons (.av-tools svg) also live+ inside .av-vp; without '>' they'd inherit position:absolute and stack at 0,0. */+.av-vp > svg{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0;display:block}++/* zoom toolbar */+/* Grouped translucent toolbar (matches adom-symbol's .tools): one container, borderless+ buttons that highlight on hover — instead of individually-boxed buttons. */+.av-tools{position:absolute;left:10px;top:10px;display:flex;gap:3px;padding:3px;z-index:5;background:rgba(22,27,34,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #222b38;border-radius:9px}+.av-tools button{width:30px;height:30px;border-radius:6px;border:none;background:transparent;color:#cfd8e2;cursor:pointer;display:grid;place-items:center;transition:background .15s ease,color .15s ease}+.av-tools button svg{width:16px;height:16px;display:block}+.av-tools button:hover{background:#222b38;color:#37c8a6}+.av-tools button:focus,.av-tools button:focus-visible{outline:none}+.av-panhint{position:absolute;right:10px;bottom:9px;color:#8b949e;font-size:11px;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none}++/* layer panel rows */+.av-lrow{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;cursor:pointer}+.av-lrow:hover{background:#161c27}+.av-lrow .sw{width:13px;height:13px;border-radius:3px;border:1px solid rgba(255,255,255,.15);flex:0 0 13px}+.av-lrow .sw.ring{background:transparent!important}+.av-lrow .ln{flex:1;font-size:13px}+.av-lrow .meta{font-size:10px;color:#8b949e}+.av-lrow .chk{width:16px;height:16px;border-radius:4px;border:1.5px solid #3a4757;display:grid;place-items:center;color:#0b0f17;font-size:11px}+.av-lrow.on .chk{background:#37c8a6;border-color:#37c8a6}+.av-lrow.off .ln,.av-lrow.off .sw{opacity:.4}+.av-lrow.special{background:linear-gradient(100deg,rgba(55,200,166,.10),transparent);border:1px solid rgba(55,200,166,.25);margin-top:4px}+.av-lrow.special .ln{color:#7ef0d2;font-weight:600}++:root{--bg:#0d1117;--panel:#11161f;--border:#222b38;--text:#e6edf3;--muted:#8b949e;--accent:#37c8a6}+*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}+body{background:var(--bg);color:var(--text);font-family:'Satoshi','Segoe UI',system-ui,sans-serif;display:flex;flex-direction:column;overflow:hidden}+header{display:flex;align-items:center;gap:9px;padding:9px 14px;border-bottom:1px solid var(--border);flex:0 0 auto}+header .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}+header .b{font-weight:700;font-size:14px}header .b span{color:var(--muted);font-weight:400}+header .nm{margin-left:auto;font-weight:600;font-size:13px;color:#cfd8e2}+main{flex:1;display:flex;min-height:0}+.vpwrap{flex:1;position:relative;min-width:0}+aside{flex:0 0 248px;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}+aside .ah{padding:9px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}+.layers{padding:6px}+.note{font-size:11px;color:var(--muted);line-height:1.45;padding:8px 11px}+.note b{color:#7ef0d2}+</style></head>+<body>+ <header><span class="dot"></span><span class="b">adom-footprint <span>· interactive</span></span><span class="nm">tmcs1123b1aqdvgr</span></header>+ <main>+ <div class="vpwrap">+ <div class="av-vp" id="vp">+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-6.950 -6.500 13.900 13.000" preserveAspectRatio="xMidYMid meet"><g class="adom-layer-courtyard"><rect x="-5.950" y="-5.500" width="11.900" height="11.000" fill="none" stroke="#FF26E2" stroke-width="0.05" stroke-dasharray="0.2,0.1"/></g><g class="adom-layer-fab"><line x1="0.000" y1="-5.150" x2="0.000" y2="5.150" stroke="#6e7681" stroke-width="0.1"/><path d="M-2.750,-5.150 L3.750,-5.150 L3.750,5.150 L-3.750,5.150 L-3.750,-4.150 Z" fill="none" stroke="#6e7681" stroke-width="0.1"/></g><g class="adom-layer-copper"><g data-pad="1" data-shape="roundrect" data-size="1.650x4.410" data-mount="smd"><rect x="-5.700" y="-4.745" width="1.650" height="4.410" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="2" data-shape="roundrect" data-size="1.650x4.410" data-mount="smd"><rect x="-5.700" y="0.335" width="1.650" height="4.410" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="3" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="4.145" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="4" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="2.875" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="5" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="1.605" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="6" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="0.335" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="7" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-0.935" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="8" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-2.205" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="9" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-3.475" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="10" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-4.745" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g></g><g class="adom-layer-heatsink"></g><g class="adom-layer-drill"></g><g class="adom-layer-silk"><line x1="-3.870" y1="-5.270" x2="3.870" y2="-5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-5.270" x2="3.870" y2="-4.960" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-3.930" x2="3.870" y2="-3.690" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-2.660" x2="3.870" y2="-2.420" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-1.390" x2="3.870" y2="-1.150" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-0.120" x2="3.870" y2="0.120" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="1.150" x2="3.870" y2="1.390" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="2.420" x2="3.870" y2="2.660" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="3.690" x2="3.870" y2="3.930" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="4.960" x2="3.870" y2="5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="5.270" x2="-3.870" y2="5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-3.870" y1="5.270" x2="-3.870" y2="4.960" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-3.870" y1="0.120" x2="-3.870" y2="-0.120" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-3.870" y1="-4.960" x2="-3.870" y2="-5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-4.050" y1="-5.450" x2="-3.450" y2="-5.450" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/></g><g class="adom-layer-padnum"><text x="-4.875" y="-2.540" text-anchor="middle" dominant-baseline="central" font-size="0.693" fill="#fff" font-family="sans-serif" style="pointer-events:none">1</text><text x="-4.875" y="2.540" text-anchor="middle" dominant-baseline="central" font-size="0.693" fill="#fff" font-family="sans-serif" style="pointer-events:none">2</text><text x="4.875" y="4.445" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">3</text><text x="4.875" y="3.175" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">4</text><text x="4.875" y="1.905" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">5</text><text x="4.875" y="0.635" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">6</text><text x="4.875" y="-0.635" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">7</text><text x="4.875" y="-1.905" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">8</text><text x="4.875" y="-3.175" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">9</text><text x="4.875" y="-4.445" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">10</text></g><g class="adom-layer-paste-apertures"><rect x="-5.700" y="-4.745" width="1.650" height="4.410" rx="0.05" transform="rotate(0.00 -4.875 -2.540)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="-5.700" y="0.335" width="1.650" height="4.410" rx="0.05" transform="rotate(0.00 -4.875 2.540)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="4.145" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 4.445)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="2.875" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 3.175)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="1.605" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 1.905)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="0.335" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 0.635)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-0.935" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -0.635)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-2.205" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -1.905)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-3.475" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -3.175)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-4.745" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -4.445)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/></g><g class="adom-layer-paste-dots"><circle cx="-5.375" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/></g></svg>+ </div>+ </div>+ <aside>+ <div class="ah">Layers</div>+ <div class="layers" id="layers"></div>+ <div class="note">The <b>solder paste jet</b> layer shows the 300µm paste-dispensing dots that travel with the footprint. Off by default — toggle it on.</div>+ </aside>+ </main>+<script>/* ── adom-footprint shared viewer core (window.AV) ─────────────────────────+ Single source of truth for the layer list, toggle behaviour, defaults,+ pan/zoom and toolbar icons. Included VERBATIM by both app.html (live) and+ embed.html (static) so the two viewers cannot drift. Pure client-side; works+ on any SVG that carries the <g class="adom-layer-*"> groups. */+(function(){+ var ICON_ZIN='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M10.5 8v5M8 10.5h5"/></svg>';+ var ICON_ZOUT='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M8 10.5h5"/></svg>';+ // Zoom-to-FIT = a magnifier with a small square inside (fit content to view).+ // Deliberately NOT the four-corner expand/"fullscreen" glyph.+ var ICON_FIT='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5"/><rect x="7.6" y="7.6" width="5.8" height="5.8" rx="1.2"/></svg>';++ // The canonical layer list. Every layer is a <g class="adom-layer-*"> in the+ // self-rendered SVG, so toggling is group-based (robust) — never colour-match.+ // `kind:'group'` on every entry: all layers are toggled by their <g> group+ // (robust), never by colour-match. (app.html still reads def.kind.)+ var LAYER_DEFS=[+ {key:'copper', name:'Copper', kind:'group', sel:'.adom-layer-copper', sw:'#C83434'},+ // Auto-generated thermal-via array under the exposed pad — only present (and+ // listed) when the footprint has an exposed thermal pad.+ {key:'heatsink', name:'Heatsink vias', kind:'group', sel:'.adom-layer-heatsink', sw:'#e8a13a'},+ {key:'padnum', name:'Pad numbers', kind:'group', sel:'.adom-layer-padnum', sw:'#ffffff', ring:true},+ {key:'silk', name:'Silkscreen', kind:'group', sel:'.adom-layer-silk', sw:'#00cccc'},+ {key:'fab', name:'Fab (F.Fab)', kind:'group', sel:'.adom-layer-fab', sw:'#6e7681', ring:true},+ {key:'courtyard', name:'Courtyard', kind:'group', sel:'.adom-layer-courtyard', sw:'#FF26E2', ring:true},+ {key:'drill', name:'Drill', kind:'group', sel:'.adom-layer-drill', sw:'#888888', ring:true},+ {key:'paste-ap', name:'Paste apertures', kind:'group', sel:'.adom-layer-paste-apertures', sw:'#8aa0b8', ring:true},+ // Generic name — the 300µm solder-paste dispensing dots. Off by default.+ {key:'paste-dots',name:'Solder paste jet', kind:'group', sel:'.adom-layer-paste-dots', sw:'#37c8a6', special:true},+ ];++ // True only if the group actually holds drawn geometry (not an empty <g>) — so+ // layers with nothing in THIS footprint aren't listed as dead, dim rows.+ function groupHasGeo(svg,def){+ if(!svg) return false; var n=0,g=svg.querySelectorAll(def.sel);+ for(var i=0;i<g.length;i++){ n+=g[i].querySelectorAll('path,rect,circle,line,polygon,polyline,text').length; }+ return n>0;+ }+ function layerPresent(svg,def){ return groupHasGeo(svg,def); }+ function applyLayer(svg,def,on){+ if(!svg) return; var g=svg.querySelectorAll(def.sel);+ for(var i=0;i<g.length;i++) g[i].style.display=on?'':'none';+ }++ // Build layer rows into a container. opts:+ // svg, container, state {key:bool}, meta {pasteDots,pasteApertures},+ // onToggle(key,on). Missing state key -> special OFF, others ON. Skips empty+ // non-special groups. Returns the keys actually shown.+ function buildLayers(opts){+ var svg=opts.svg, box=opts.container, state=opts.state||{}, meta=opts.meta||{}, shown=[];+ box.innerHTML='';+ LAYER_DEFS.forEach(function(def){+ if(!def.special && !groupHasGeo(svg,def)) return;+ var on = def.special ? (state[def.key]===true) : (state[def.key]!==false);+ var m = def.key==='paste-dots' ? ((meta.pasteDots||0)+' @ 300µm')+ : def.key==='paste-ap' ? ((meta.pasteApertures||0)+' openings') : '';+ var row=document.createElement('div');+ row.className='av-lrow '+(on?'on':'off')+(def.special?' special':'');+ row.innerHTML='<span class="sw'+(def.ring?' ring':'')+'" style="'+(def.ring?('border-color:'+def.sw):('background:'+def.sw))+'"></span>'+ +'<span class="ln">'+def.name+'</span>'+(m?'<span class="meta">'+m+'</span>':'')+ +'<span class="chk">'+(on?'✓':'')+'</span>';+ row.onclick=function(){+ var nv=!row.classList.contains('on');+ row.classList.toggle('on',nv); row.classList.toggle('off',!nv);+ row.querySelector('.chk').textContent=nv?'✓':'';+ state[def.key]=nv; applyLayer(svg,def,nv);+ if(opts.onToggle) opts.onToggle(def.key,nv);+ };+ box.appendChild(row); applyLayer(svg,def,on); shown.push(def.key);+ });+ return shown;+ }++ // Wire pan + zoom on a viewport element (the box that contains the <svg>).+ // Returns a controller {fit, zoomIn, zoomOut, apply}.+ function initViewport(vp){+ var svg=vp.querySelector('svg');+ if(svg){ svg.removeAttribute('width'); svg.removeAttribute('height'); }+ var s=1,tx=0,ty=0;+ function apply(){ var el=vp.querySelector('svg'); if(el) el.style.transform='translate('+tx+'px,'+ty+'px) scale('+s+')'; }+ function zoomAt(cx,cy,f){ tx=cx-(cx-tx)*f; ty=cy-(cy-ty)*f; s*=f; apply(); }+ function fit(){ s=1;tx=0;ty=0;apply(); }+ // Smooth, delta-PROPORTIONAL zoom (matches adom-symbol). A fixed per-event+ // factor makes the trackpad leap — one gentle two-finger nudge fires a burst+ // of tiny wheel events and a fixed 1.12× compounds. Instead derive the factor+ // from how much actually scrolled (exp → smooth + reversible), normalise+ // device units, and clamp one event so a chunky mouse notch can't jump.+ var ZOOM_K=0.0022; // sensitivity: lower = gentler+ vp.addEventListener('wheel',function(e){+ e.preventDefault();+ var d=e.deltaY;+ if(e.deltaMode===1) d*=16; else if(e.deltaMode===2) d*=vp.clientHeight;+ d=Math.max(-50,Math.min(50,d));+ var r=vp.getBoundingClientRect();+ zoomAt(e.clientX-r.left,e.clientY-r.top,Math.exp(-d*ZOOM_K));+ },{passive:false});+ var drag=false,lx=0,ly=0;+ vp.addEventListener('pointerdown',function(e){ if(e.target.closest('.av-tools'))return; drag=true;lx=e.clientX;ly=e.clientY;vp.classList.add('grab');vp.setPointerCapture(e.pointerId); });+ vp.addEventListener('pointermove',function(e){ if(!drag)return; tx+=e.clientX-lx;ty+=e.clientY-ly;lx=e.clientX;ly=e.clientY;apply(); });+ vp.addEventListener('pointerup',function(){ drag=false;vp.classList.remove('grab'); });+ fit();+ return {+ fit:fit,+ zoomIn:function(){ var r=vp.getBoundingClientRect(); zoomAt(r.width/2,r.height/2,1.2); },+ zoomOut:function(){ var r=vp.getBoundingClientRect(); zoomAt(r.width/2,r.height/2,1/1.2); },+ apply:apply+ };+ }++ // Inject the standard zoom toolbar (+ / − / fit) + pan hint into a viewport,+ // wired to a controller from initViewport. Idempotent.+ function addToolbar(vp,ctl){+ if(vp.querySelector('.av-tools')) return;+ var t=document.createElement('div'); t.className='av-tools';+ t.innerHTML='<button data-z="in" title="Zoom in">'+ICON_ZIN+'</button>'+ +'<button data-z="out" title="Zoom out">'+ICON_ZOUT+'</button>'+ +'<button data-z="fit" title="Zoom to fit">'+ICON_FIT+'</button>';+ vp.appendChild(t);+ t.querySelector('[data-z="in"]').onclick=ctl.zoomIn;+ t.querySelector('[data-z="out"]').onclick=ctl.zoomOut;+ t.querySelector('[data-z="fit"]').onclick=ctl.fit;+ var h=document.createElement('div'); h.className='av-panhint'; h.textContent='drag to pan · scroll to zoom'; vp.appendChild(h);+ }++ window.AV={+ LAYER_DEFS:LAYER_DEFS, groupHasGeo:groupHasGeo, layerPresent:layerPresent,+ applyLayer:applyLayer, buildLayers:buildLayers, initViewport:initViewport,+ addToolbar:addToolbar, ICON_FIT:ICON_FIT, ICON_ZIN:ICON_ZIN, ICON_ZOUT:ICON_ZOUT+ };+})();+</script>+<script>+var META={"pasteApertures":10,"pasteDots":200};+(function(){+ var vp=document.getElementById('vp');+ var svg=vp.querySelector('svg');+ var ctl=AV.initViewport(vp);+ AV.addToolbar(vp,ctl);+ AV.buildLayers({ svg:svg, container:document.getElementById('layers'), state:{}, meta:META });+})();+</script>+</body></html>
viewers/symbol.htmladded+5720@@ -0,0 +1,5720 @@+<!doctype html><html><head><meta charset="utf-8">+<title>TMCS1123B1AQDVGR - adom-symbol</title>+<meta name="viewport" content="width=device-width,initial-scale=1">+<style>+@font-face{font-family:'Satoshi';font-weight:400;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}@font-face{font-family:'Satoshi';font-weight:500;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}@font-face{font-family:'Familjen Grotesk';font-weight:700;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}+ /* Canonical Adom dark-theme tokens (adom/guides/brand.md) */+ :root{+ --bg:#0d1117;--surface:#161b22;--elevated:#1c2128;--overlay:#21262d;+ --border:#30363d;--border-muted:#21262d;+ --text:#e6edf3;--text2:#8b949e;--text3:#484f58;+ --accent:#00b8b0;--accent-bright:#00e6dc;--purple:#8c6bf7;+ /* aliases used by the viewport + pin-list rules further down */+ --panel:#161b22;--panel2:#1c2128;--muted:#8b949e;+ }+ *{box-sizing:border-box;margin:0;padding:0}+ html,body{height:100%}+ body{background:var(--bg);color:var(--text);font:13px/1.4 'Satoshi','Segoe UI',system-ui,sans-serif;display:flex;flex-direction:column;overflow:hidden}+ /* ── Canonical Adom app header (adom/guides/adom-app-header.md) ── */+ header{display:flex;align-items:center;gap:12px;padding:0 16px;height:44px;flex:0 0 44px;border-bottom:1px solid var(--border-muted);background:var(--surface);position:relative;font-family:'Familjen Grotesk',sans-serif}+ header .brand{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:13px;font-weight:600;letter-spacing:.01em;cursor:default;flex-shrink:0;outline:none}+ header .brand svg.logo{width:16px;height:16px;flex-shrink:0}+ header .brand:hover .app-name{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}+ header .brand .app-name{color:var(--accent)}+ header .brand .app-subtitle{color:var(--text2);font-weight:500}+ header .brand .sep{color:var(--text3);font-weight:400}+ header .vsep{width:1px;height:18px;background:var(--border);flex-shrink:0}+ header .subject{display:flex;align-items:center;gap:8px;min-width:0;flex:1;cursor:default}+ header .subject-name{color:var(--text);font-family:'Familjen Grotesk',sans-serif;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}+ header .subject-meta{display:flex;align-items:center;gap:6px;color:var(--text2);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;white-space:nowrap}+ header .subject-meta .sep{color:var(--text3)}+ @media(max-width:720px){header .subject-meta{display:none}}+ /* Floating in-canvas viewer toolbar (frosted, matches the app's glass cards) */+ .tools{position:absolute;left:12px;top:12px;z-index:5;display:flex;gap:3px;padding:3px;background:rgba(22,27,34,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:9px}+ .tools button{width:30px;height:30px;display:grid;place-items:center;background:transparent;border:none;border-radius:6px;color:var(--text2);cursor:pointer;transition:background .15s ease,color .15s ease}+ .tools button:hover{background:var(--elevated);color:var(--accent-bright)}+ .tools button svg{width:16px;height:16px;display:block}+ header .hover-popover{position:absolute;top:calc(100% + 6px);left:16px;background:var(--elevated);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5);padding:12px 14px;min-width:300px;max-width:420px;font-family:'Satoshi',sans-serif;font-size:12px;color:var(--text);z-index:99999;opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}+ header .hover-popover.show{opacity:1;transform:none;pointer-events:auto}+ header .hover-popover .popover-title{font-family:'Familjen Grotesk',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:8px}+ header .hover-popover .popover-row{display:flex;gap:12px;padding:3px 0;align-items:baseline}+ header .hover-popover .popover-row .k{color:var(--text3);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;text-transform:lowercase;width:64px;flex-shrink:0}+ header .hover-popover .popover-row .v{color:var(--text);font-family:'Satoshi',sans-serif;font-size:12px;flex:1}+ header .hover-popover .popover-actions{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-muted);display:flex;gap:12px}+ header .hover-popover .popover-link{color:var(--accent);text-decoration:none;font-family:'Familjen Grotesk',sans-serif;font-size:12px;font-weight:600}+ header .hover-popover .popover-link:hover{text-decoration:underline}+ main{flex:1;display:flex;min-height:0}+ .vpwrap{flex:1;position:relative;min-width:0}+ /* Schematic-workbench grid, identical to the main app's #stage. */+ .vp{position:absolute;inset:0;overflow:hidden;cursor:grab;background:+ radial-gradient(120% 120% at 50% 30%,rgba(0,184,177,.05),transparent 60%),+ linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px) 0 0/22px 22px,+ linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px) 0 0/22px 22px}+ .vp.grab{cursor:grabbing}+ /* Only the DIRECT-CHILD symbol svg gets the pan/zoom transform — scoping to+ `.vp > svg` (not `.vp svg`) keeps it off any nested icon svgs. */+ .vp > svg{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0;display:block}+ .hint{position:absolute;right:10px;bottom:9px;color:var(--muted);font-size:11px;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none}+ aside{flex:0 0 268px;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}+ aside .ah{padding:9px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}+ aside input{flex:1;background:var(--panel2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12px;padding:5px 8px;outline:none}+ aside input:focus{border-color:var(--accent)}+ .pins{flex:1;overflow:auto}+ .pin{padding:7px 12px;border-bottom:1px solid #1a212c;cursor:pointer}+ .pin:hover{background:var(--panel2)}+ .pin.on{background:#15202e}+ .pin .row{display:flex;align-items:center;gap:8px}+ .pin .num{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:#8fa0b4;min-width:22px;text-align:right}+ .pin .nme{font-weight:600;font-size:13px}+ .pin .ty{margin-left:auto;font-size:10px;padding:1px 6px;border-radius:5px;border:1px solid;white-space:nowrap}+ .pin .d{font-size:11.5px;color:#aeb6c2;line-height:1.45;margin:5px 0 1px 30px;display:none}+ .pin.on .d{display:block}+ .empty{color:var(--muted);font-size:12px;padding:14px}+ @media(max-width:620px){aside{flex-basis:200px}}+ /* pin panel header — reads like a studio section */+ aside .ah .atitle{font-family:'Familjen Grotesk',sans-serif;font-weight:600;font-size:12px;color:var(--text);white-space:nowrap}+ aside .ah .acount{margin-left:5px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:var(--text3)}+ /* bottom info bar — mirrors the main app footer */+ footer{flex:0 0 auto;display:flex;align-items:center;height:26px;border-top:1px solid var(--border);background:var(--surface);font-size:11px;color:var(--text2);padding:0 14px;overflow:hidden}+ footer .it{display:flex;align-items:center;gap:6px;white-space:nowrap;min-width:0}+ footer .it+.it::before{content:"";width:1px;height:13px;background:var(--border);margin:0 12px;flex:0 0 1px}+ footer .k{color:var(--text3);text-transform:uppercase;font-size:9px;letter-spacing:.4px;flex:0 0 auto}+ footer .v{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}+ footer .descit{min-width:0;overflow:hidden}+ /* pin hover — highlight + tooltip, parity with the live SymView */+ .vp > svg text,.vp > svg g.stroked-text{pointer-events:none}+ .hit{fill:rgba(0,230,220,0);stroke:none;cursor:pointer}+ .vp > svg g.stroked-text.hl path{stroke:var(--accent-bright)!important;fill:var(--accent-bright)!important}+ .vp > svg path.hl{stroke:var(--accent-bright)!important;stroke-width:.22!important}+ #pinmark{pointer-events:none;fill:rgba(0,230,220,.18);stroke:var(--accent-bright);stroke-width:.12;opacity:0;transition:opacity .1s}+ #tip{position:fixed;z-index:9999;max-width:300px;background:rgba(22,27,34,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(0,184,177,.34);border-radius:10px;padding:9px 12px;color:var(--text);font-size:12px;line-height:1.5;pointer-events:none;opacity:0;transition:opacity .12s;box-shadow:0 12px 40px rgba(0,0,0,.55)}+ #tip.show{opacity:1}+ #tip .r1{display:flex;align-items:baseline;gap:8px;justify-content:space-between}+ #tip .nm{font-weight:700;font-size:13px}+ #tip .pn{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:var(--muted);white-space:nowrap}+ #tip .badge{display:inline-block;margin-top:5px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;letter-spacing:.2px}+ #tip .desc{margin-top:6px;color:#aeb6c2;font-size:11.5px}+</style></head>+<body>+ <header>+ <div class="brand" data-tooltip-target="app-info" tabindex="0">+ <svg class="logo" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="7" y="4" width="10" height="16" rx="1.5"/><path d="M7 8H3M7 12H3M7 16H3M21 8h-4M21 12h-4M21 16h-4"/></svg>+ <span class="app-name">adom-symbol</span>+ <span class="sep">·</span>+ <span class="app-subtitle">symbol viewer</span>+ </div>+ <div class="vsep" aria-hidden="true"></div>+ <div class="subject">+ <span class="subject-name">TMCS1123B1AQDVGR</span>+ <span class="subject-meta"><span class="sep">·</span><span>10 pins</span><span class="sep">·</span><span>tmcs1123b1aqdvgr</span></span>+ </div>+ <div class="hover-popover" id="app-info" role="dialog" aria-label="About adom-symbol">+ <div class="popover-title">adom-symbol</div>+ <div class="popover-row"><span class="k">about</span><span class="v">Interactive KiCad schematic-symbol viewer: pan/zoom, per-pin hover, and a filterable pin list.</span></div>+ <div class="popover-row"><span class="k">version</span><span class="v">v1.2.6</span></div>+ <div class="popover-row"><span class="k">engine</span><span class="v">service-kicad</span></div>+ <div class="popover-row"><span class="k">mfr</span><span class="v">Texas Instruments</span></div>+ <div class="popover-row"><span class="k">author</span><span class="v">Adom Inc · adom.inc</span></div>+ <div class="popover-actions">+ <a class="popover-link" href="https://wiki.adom.inc/adom/adom-symbol" target="_blank" rel="noopener">Open wiki ↗</a>+ </div>+ </div>+ </header>+ <main>+ <div class="vpwrap">+ <div class="vp" id="vp">+ <div class="tools">+ <button id="zout" title="Zoom out" aria-label="Zoom out"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M8 10.5h5"/></svg></button>+ <button id="zin" title="Zoom in" aria-label="Zoom in"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M10.5 8v5M8 10.5h5"/></svg></button>+ <button id="fit" title="Fit to window" aria-label="Fit to window"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><rect x="8" y="9" width="8" height="6" rx="1"/></svg></button>+ </div>+ <div class="hint">drag to pan · scroll to zoom</div>+ <svg+ xmlns:svg="http://www.w3.org/2000/svg"+ xmlns="http://www.w3.org/2000/svg"+ xmlns:xlink="http://www.w3.org/1999/xlink"+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"+ version="1.1"+ width="53.720mm" height="58.370mm" viewBox="73.1400 89.4200 53.7200 58.3700">++<defs>+ <linearGradient id="adom-body-grad" x1="0" y1="0" x2="0" y2="1">+ <stop offset="0%" stop-color="#1a2332"/>+ <stop offset="100%" stop-color="#141c27"/>+ </linearGradient>+</defs>+<style><![CDATA[+ /* Stroked text groups (KiCad renders text as paths in <g class="stroked-text">) */+ g.stroked-text path {+ stroke: #ffffff !important;+ fill: #ffffff !important;+ }+ text[opacity="0"] {+ fill: #ffffff !important;+ }+ .pin-highlight path {+ stroke: #00e6dc !important;+ }+ .pin-highlight g.stroked-text path {+ stroke: #00e6dc !important;+ }+ .group-highlight g.stroked-text path {+ stroke: #FFD180 !important;+ }+]]></style>+<defs>+ <radialGradient id="adom-canvas-glow" cx="100" cy="118.605" r="40.858999999999995" gradientUnits="userSpaceOnUse">+ <stop offset="0%" stop-color="#00b8b0" stop-opacity="0.06"/>+ <stop offset="70%" stop-color="#00b8b0" stop-opacity="0"/>+ </radialGradient>+ <pattern id="adom-canvas-grid" x="0" y="0" width="2.54" height="2.54" patternUnits="userSpaceOnUse">+ <line x1="0" y1="0" x2="2.54" y2="0" stroke="rgba(255,255,255,0.025)" stroke-width="0.06"/>+ <line x1="0" y1="0" x2="0" y2="2.54" stroke="rgba(255,255,255,0.025)" stroke-width="0.06"/>+ </pattern>+</defs>+<rect x="73.14" y="89.42" width="53.72" height="58.37" fill="#0d1117"/>+<rect x="73.14" y="89.42" width="53.72" height="58.37" fill="url(#adom-canvas-grid)"/>+<rect x="73.14" y="89.42" width="53.72" height="58.37" fill="url(#adom-canvas-glow)"/>++ +<g style="fill:none; fill-opacity:1.0000;stroke:#000000; stroke-opacity:1.0000;+stroke-linecap:round; stroke-linejoin:round;"+ transform="translate(0 0) scale(1 1)">+</g>+<g style="fill:none; fill-opacity:1.0000; +stroke:none; stroke-width:0.0001; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<rect x="0.000000" y="0.000000" width="297.002200" height="210.007200" rx="0.000000" />+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++++++++++<g class="stroked-text">++++++</g>+<g class="stroked-text">+++++++++++</g>+<g class="stroked-text">++++++++++++++</g>+<g class="stroked-text">++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++++++++</g>++++++<g class="stroked-text">++++++</g>+<g class="stroked-text">+++++++++++</g>+<g class="stroked-text">++++++++++++++</g>+<g class="stroked-text">++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++++++++</g>++++<g class="stroked-text">++++</g>+<g class="stroked-text">+++++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">+++++++++++++</g>++++<g class="stroked-text">++++</g>+<g class="stroked-text">+++++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">+++++++++++++</g>+<g class="stroked-text">++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>++<g class="stroked-text">++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.3000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">++++++++++++++++++++++++++++++++++++</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>+<g class="stroked-text">+++++++++++++++++++++++++++++++++++</g>+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.4000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.3000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+</g>+<g class="stroked-text">+</g>+<g class="stroked-text">+</g>+<g class="stroked-text">+</g>++</g>+<g style="fill:url(#adom-body-grad); fill-opacity:1.0000; stroke:none;">+<rect x="82.220000" y="97.460000" width="35.560000" height="43.180000" rx="0.000000" />+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.2540; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<rect x="82.220000" y="97.460000" width="35.560000" height="43.180000" rx="0.000000" />+<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 95.9420,119.0090+95.9420,119.1260+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 95.9420,119.1260+97.4960,120.0230+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.1260,118.9030+95.9420,119.0090+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.1620,118.8450+96.1540,118.8720+96.1360,118.8960+96.1260,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.1910,118.5930+96.1620,118.8450+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.2730,118.2540+96.4070,118.3310+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.2730,118.2540+96.2780,118.2260+96.2830,118.1980+96.2880,118.1700+96.2930,118.1420+96.2990,118.1140+96.3030,118.0860+96.3080,118.0580+96.3140,118.0300+96.3190,118.0020+96.3240,117.9740+96.3280,117.9460+96.3340,117.9180+96.3390,117.8900+96.3440,117.8620+96.3490,117.8340+96.3540,117.8060+96.3590,117.7780+96.3640,117.7500+96.3690,117.7220+96.3740,117.6940+96.3790,117.6660+96.3840,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3010,118.3960+96.2940,118.3640+96.2880,118.3320+96.2820,118.2990+96.2760,118.2670+96.2730,118.2540+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3280,118.3770+96.3010,118.3950+96.2750,118.4190+96.2510,118.4470+96.2310,118.4790+96.2130,118.5130+96.2010,118.5480+96.1930,118.5820+96.1910,118.5930+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3840,117.6380+100.0660,119.7640+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.4630,118.2990+96.3280,118.3770+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.8860,117.6380+96.8910,117.6090+96.9070,117.5820+96.9330,117.5570+96.9670,117.5360+97.0080,117.5190+97.0540,117.5080+97.1030,117.5030+97.1530,117.5040+97.2020,117.5110+97.2470,117.5240+97.2860,117.5420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.2860,117.5420+97.3120,117.5610+97.3330,117.5820+97.3490,117.6090+97.3540,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.2860,117.5630+97.2480,117.5460+97.2050,117.5330+97.1590,117.5260+97.1100,117.5240+97.0620,117.5280+97.0170,117.5380+96.9760,117.5520+96.9410,117.5720+96.9140,117.5950+96.8950,117.6210+96.8870,117.6490+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3540,117.6380+97.3450,117.6760+97.3170,117.7110+97.2740,117.7400+97.2470,117.7520+97.2170,117.7610+97.1860,117.7680+97.1530,117.7720+97.1200,117.7730+97.0870,117.7720+97.0540,117.7680+97.0230,117.7610+96.9930,117.7520+96.9670,117.7400+96.9230,117.7110+96.8950,117.6760+96.8860,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3540,117.6490+97.3440,117.6190+97.3260,117.5950+97.3010,117.5730+97.2860,117.5630+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.4960,119.9060+95.9420,119.0090+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.4960,120.0230+97.4960,119.9060+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.6800,119.8000+96.1260,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.6800,119.8000+97.4960,119.9060+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.6800,119.9170+97.4960,120.0230+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7160,119.7420+96.1620,118.8450+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7160,119.7420+97.7070,119.7690+97.6890,119.7930+97.6800,119.8000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7450,119.4900+96.1910,118.5930+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7450,119.4900+97.7160,119.7420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8120,120.0890+97.8120,120.2050+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8120,120.2050+99.3660,121.1030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8160,119.7000+97.8100,119.7340+97.7990,119.7690+97.7830,119.8030+97.7630,119.8360+97.7400,119.8650+97.7150,119.8910+97.6890,119.9110+97.6800,119.9170+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8390,119.4990+98.0700,119.6320+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8450,119.4480+97.8160,119.7000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8820,119.2740+96.3280,118.3770+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8820,119.2740+97.8550,119.2920+97.8290,119.3160+97.8050,119.3440+97.7840,119.3760+97.7670,119.4100+97.7540,119.4450+97.7460,119.4790+97.7450,119.4900+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8820,119.3910+97.8610,119.4100+97.8480,119.4360+97.8450,119.4480+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.9960,119.9830+97.8120,120.0890+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0110,119.2580+98.2770,119.4110+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0110,119.2580+98.0130,119.2300+98.0160,119.2020+98.0160,119.1960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0160,119.1960+97.8820,119.2740+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0160,119.1960+97.9460,119.1550+97.8750,119.1150+97.8040,119.0740+97.7340,119.0330+97.6630,118.9920+97.5930,118.9510+97.5220,118.9110+97.4510,118.8700+97.3810,118.8290+97.3100,118.7880+97.2390,118.7480+97.1690,118.7070+97.0980,118.6660+97.0280,118.6250+96.9570,118.5840+96.8860,118.5440+96.8160,118.5030+96.7450,118.4620+96.6750,118.4210+96.6040,118.3810+96.5330,118.3400+96.4630,118.2990+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0170,119.3130+97.8820,119.3910+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0170,119.3130+98.0140,119.2850+98.0110,119.2580+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0330,119.9250+98.0240,119.9520+98.0060,119.9750+97.9960,119.9830+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0610,119.6730+98.0330,119.9250+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.1980,119.4570+98.1710,119.4750+98.1460,119.4990+98.1220,119.5270+98.1010,119.5590+98.0840,119.5930+98.0710,119.6270+98.0630,119.6620+98.0610,119.6730+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.3330,119.3790+98.1980,119.4570+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.5600,117.6050+98.6830,117.6760+98.7100,117.7080+98.6970,117.7470+98.6560,117.7700+98.6150,117.7790+98.5870,117.7790+98.5330,117.7620+98.4100,117.6920+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.6970,117.5260+98.4100,117.6920+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.6970,117.5260+98.8200,117.5970+98.8470,117.6290+98.8330,117.6680+98.8060,117.6840+98.7650,117.6920+98.6830,117.6760+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.9560,117.7390+98.9970,117.7470+99.0790,117.7470+98.7920,117.9120+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.0340,116.1070+96.3840,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.0650,117.9600+99.2020,118.0380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.0930,117.2580+99.2840,117.3690+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.1880,117.3130+98.9010,117.4790+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3240,117.8890+98.9290,117.9910+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3240,117.8890+99.1470,118.1170+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3520,117.4080+99.0650,117.5740+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3520,117.4080+99.1740,117.6360+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3660,120.9860+97.8120,120.0890+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3660,121.1030+99.3660,120.9860+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3790,118.1880+99.3790,118.2830+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5500,120.8790+97.9960,119.9830+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5500,120.8790+99.3660,120.9860+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5500,120.9960+99.3660,121.1030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5700,117.5340+99.1740,117.6360+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5700,117.5340+99.2840,117.7000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5700,118.0310+99.5290,118.0230+99.4750,118.0230+99.4340,118.0310+99.3790,118.0460+99.3110,118.0860+99.2840,118.1170+99.2700,118.1720+99.3380,118.2280+99.3790,118.2350+99.4340,118.2350+99.4750,118.2280+99.5290,118.2120+99.5970,118.1720+99.6250,118.1410+99.6390,118.0860+Z" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5860,120.8220+98.0330,119.9250+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5860,120.8220+99.5780,120.8490+99.5600,120.8720+99.5500,120.8790+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.6150,120.5700+98.0610,119.6730+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.6150,120.5700+99.5860,120.8220+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.6870,120.7800+99.6810,120.8140+99.6690,120.8490+99.6530,120.8830+99.6340,120.9160+99.6110,120.9450+99.5860,120.9700+99.5590,120.9910+99.5500,120.9960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7100,120.5780+100.0660,120.7840+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7150,120.5280+99.6870,120.7800+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7520,120.3540+98.1980,119.4570+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7520,120.3540+99.7250,120.3720+99.6990,120.3960+99.6750,120.4240+99.6550,120.4560+99.6370,120.4900+99.6250,120.5250+99.6170,120.5590+99.6150,120.5700+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7520,120.4710+99.7300,120.4920+99.7170,120.5190+99.7150,120.5280+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8020,117.7470+99.8160,117.6920+99.7480,117.6360+99.7070,117.6290+99.6520,117.6290+99.6110,117.6360+99.5560,117.6520+99.4880,117.6920+99.4610,117.7230+99.4470,117.7790+99.5160,117.8340+99.5560,117.8410+99.6110,117.8410+99.6520,117.8340+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8020,118.1640+99.5160,118.3300+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8020,118.1640+99.8980,118.2200+99.9250,118.2510+99.9250,118.2830+99.8840,118.3380+99.8160,118.3770+99.7610,118.3930+99.7200,118.4010+99.6660,118.4010+99.6110,118.3850+99.5160,118.3300+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8810,120.3370+100.0660,120.4440+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8810,120.3370+99.8840,120.3080+99.8860,120.2790+99.8870,120.2760+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.2760+99.7520,120.3540+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.2760+99.8160,120.2350+99.7450,120.1940+99.6750,120.1540+99.6040,120.1130+99.5330,120.0720+99.4630,120.0310+99.3920,119.9900+99.3220,119.9500+99.2510,119.9090+99.1800,119.8680+99.1100,119.8270+99.0390,119.7870+98.9680,119.7460+98.8980,119.7050+98.8270,119.6640+98.7570,119.6230+98.6860,119.5830+98.6150,119.5420+98.5450,119.5010+98.4740,119.4600+98.4040,119.4200+98.3330,119.3790+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.3930+99.7520,120.4710+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.3930+99.8840,120.3650+99.8810,120.3370+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0480,118.3060+99.8700,118.5350+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,119.7640+102.7160,118.2330+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.4440+102.8270,118.8490+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.4440+100.0660,120.4130+100.0660,120.3820+100.0660,120.3510+100.0660,120.3200+100.0660,120.2890+100.0660,120.2580+100.0660,120.2270+100.0660,120.1960+100.0660,120.1650+100.0660,120.1340+100.0660,120.1030+100.0660,120.0730+100.0660,120.0420+100.0660,120.0110+100.0660,119.9800+100.0660,119.9490+100.0660,119.9180+100.0660,119.8870+100.0660,119.8560+100.0660,119.8250+100.0660,119.7940+100.0660,119.7640+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.7840+102.7530,119.2320+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.7840+100.0660,120.7530+100.0660,120.7220+100.0660,120.6910+100.0660,120.6600+100.0660,120.6290+100.0660,120.5980+100.0660,120.5670+100.0660,120.5360+100.0660,120.5050+100.0660,120.4750+100.0660,120.4440+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.1020,117.8890+100.1020,117.8570+100.0750,117.8260+100.0200,117.7940+99.9660,117.7790+99.9110,117.7790+99.8840,117.7940+99.8700,117.8340+99.9390,117.9200+99.9520,117.9600+99.8980,118.0070+99.8430,118.0070+99.7880,117.9910+99.7340,117.9600+99.7070,117.9280+99.7070,117.8970+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.2120,117.9670+100.2520,117.9750+100.3340,117.9750+100.0480,118.1410+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.2660,118.4320+99.8700,118.5350+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.2800,118.6450+100.3480,118.6840+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.4570,118.6210+100.4710,118.5660+100.4030,118.5110+100.3620,118.5030+100.3070,118.5030+100.2660,118.5110+100.2120,118.5270+100.1430,118.5660+100.1160,118.5980+100.1020,118.6530+100.1710,118.7080+100.2120,118.7160+100.2660,118.7160+100.3070,118.7080+100.3480,118.6840+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.4850,118.1250+100.5260,118.1330+100.6080,118.1330+100.3210,118.2980+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.5800,118.7710+100.5260,118.9130+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.6210,118.6370+100.3340,118.8030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.6210,118.6370+100.7440,118.7080+100.7710,118.7400+100.7580,118.7790+100.7300,118.7950+100.6890,118.8030+100.6080,118.7870+100.4850,118.7160+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.7160,118.2750+100.7710,118.2590+100.8390,118.2670+100.8940,118.2980+100.9080,118.3380+100.8670,118.3770+100.8260,118.3850+100.7580,118.3930+100.4850,118.3930+100.6760,118.5030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 101.0720,118.4010+101.2220,118.4870+101.0300,118.5030+101.0720,118.5270+101.0850,118.5660+101.0580,118.5980+101.0300,118.6140+100.9760,118.6290+100.9210,118.6290+100.8670,118.6140+100.8260,118.5900+100.7980,118.5580+100.8120,118.5190+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7160,118.2330+99.0340,116.1070+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7530,119.2320+102.7600,119.1970+102.7660,119.1630+102.7730,119.1280+102.7800,119.0930+102.7860,119.0580+102.7930,119.0230+102.8000,118.9890+102.8070,118.9540+102.8130,118.9190+102.8200,118.8840+102.8270,118.8490+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7720,118.5440+102.8700,118.6000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7830,118.6040+102.8090,118.5950+102.8380,118.5910+102.8670,118.5990+102.8700,118.6000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8060,118.7330+102.8080,118.7420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8080,118.7420+102.8070,118.7420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8080,118.7420+102.8120,118.7650+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8240,118.8620+102.8370,118.9610+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8270,118.8490+102.8220,118.8210+102.8170,118.7930+102.8120,118.7650+102.8070,118.7370+102.8010,118.7090+102.7970,118.6810+102.7920,118.6530+102.7860,118.6250+102.7810,118.5970+102.7760,118.5690+102.7720,118.5410+102.7660,118.5130+102.7610,118.4850+102.7560,118.4570+102.7510,118.4290+102.7460,118.4010+102.7410,118.3730+102.7360,118.3450+102.7310,118.3170+102.7260,118.2890+102.7210,118.2610+102.7160,118.2330+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8370,118.9610+102.8080,118.9450+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8370,118.9610+102.8440,118.9890+102.8580,119.0140+102.8760,119.0290+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8700,118.6000+102.8920,118.6210+102.9050,118.6480+102.9090,118.6680+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8760,119.0290+102.8010,118.9860+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8760,119.0290+102.9030,119.0380+102.9350,119.0350+102.9640,119.0250+102.9740,119.0190+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9090,118.6680+102.9380,118.8870+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9210,118.7590+103.0070,118.7090+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9370,118.8810+102.9740,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9380,118.8870+102.9480,118.9050+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9480,118.9050+102.9740,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9740,118.9030+103.1580,118.7960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9740,119.0190+103.1580,118.9130+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 103.0070,118.7090+103.1580,118.7960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 103.1580,118.7960+103.1580,118.9130+" /> +</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="83.2400" y="100.9210"+textLength="7.5620" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="start" opacity="0" stroke-opacity="0">Primary side</text>+<g class="stroked-text">+<path d="M83.5216 100.8845+L83.5216 100.1225+" />+<path d="M83.5216 100.1225+L83.8119 100.1225+" />+<path d="M83.8119 100.1225+L83.8844 100.1588+" />+<path d="M83.8844 100.1588+L83.9207 100.1951+" />+<path d="M83.9207 100.1951+L83.9570 100.2677+" />+<path d="M83.9570 100.2677+L83.9570 100.3765+" />+<path d="M83.9570 100.3765+L83.9207 100.4491+" />+<path d="M83.9207 100.4491+L83.8844 100.4854+" />+<path d="M83.8844 100.4854+L83.8119 100.5217+" />+<path d="M83.8119 100.5217+L83.5216 100.5217+" />+<path d="M84.2836 100.8845+L84.2836 100.3765+" />+<path d="M84.2836 100.5217+L84.3199 100.4491+" />+<path d="M84.3199 100.4491+L84.3562 100.4128+" />+<path d="M84.3562 100.4128+L84.4287 100.3765+" />+<path d="M84.4287 100.3765+L84.5013 100.3765+" />+<path d="M84.7553 100.8845+L84.7553 100.3765+" />+<path d="M84.7553 100.1225+L84.7190 100.1588+" />+<path d="M84.7190 100.1588+L84.7553 100.1951+" />+<path d="M84.7553 100.1951+L84.7916 100.1588+" />+<path d="M84.7916 100.1588+L84.7553 100.1225+" />+<path d="M84.7553 100.1225+L84.7553 100.1951+" />+<path d="M85.1182 100.8845+L85.1182 100.3765+" />+<path d="M85.1182 100.4491+L85.1545 100.4128+" />+<path d="M85.1545 100.4128+L85.2270 100.3765+" />+<path d="M85.2270 100.3765+L85.3359 100.3765+" />+<path d="M85.3359 100.3765+L85.4085 100.4128+" />+<path d="M85.4085 100.4128+L85.4448 100.4854+" />+<path d="M85.4448 100.4854+L85.4448 100.8845+" />+<path d="M85.4448 100.4854+L85.4810 100.4128+" />+<path d="M85.4810 100.4128+L85.5536 100.3765+" />+<path d="M85.5536 100.3765+L85.6625 100.3765+" />+<path d="M85.6625 100.3765+L85.7350 100.4128+" />+<path d="M85.7350 100.4128+L85.7713 100.4854+" />+<path d="M85.7713 100.4854+L85.7713 100.8845+" />+<path d="M86.4608 100.8845+L86.4608 100.4854+" />+<path d="M86.4608 100.4854+L86.4245 100.4128+" />+<path d="M86.4245 100.4128+L86.3519 100.3765+" />+<path d="M86.3519 100.3765+L86.2068 100.3765+" />+<path d="M86.2068 100.3765+L86.1342 100.4128+" />+<path d="M86.4608 100.8483+L86.3882 100.8845+" />+<path d="M86.3882 100.8845+L86.2068 100.8845+" />+<path d="M86.2068 100.8845+L86.1342 100.8483+" />+<path d="M86.1342 100.8483+L86.0979 100.7757+" />+<path d="M86.0979 100.7757+L86.0979 100.7031+" />+<path d="M86.0979 100.7031+L86.1342 100.6305+" />+<path d="M86.1342 100.6305+L86.2068 100.5943+" />+<path d="M86.2068 100.5943+L86.3882 100.5943+" />+<path d="M86.3882 100.5943+L86.4608 100.5580+" />+<path d="M86.8236 100.8845+L86.8236 100.3765+" />+<path d="M86.8236 100.5217+L86.8599 100.4491+" />+<path d="M86.8599 100.4491+L86.8962 100.4128+" />+<path d="M86.8962 100.4128+L86.9687 100.3765+" />+<path d="M86.9687 100.3765+L87.0413 100.3765+" />+<path d="M87.2227 100.3765+L87.4041 100.8845+" />+<path d="M87.5856 100.3765+L87.4041 100.8845+" />+<path d="M87.4041 100.8845+L87.3316 101.0660+" />+<path d="M87.3316 101.0660+L87.2953 101.1023+" />+<path d="M87.2953 101.1023+L87.2227 101.1385+" />+<path d="M88.4202 100.8483+L88.4928 100.8845+" />+<path d="M88.4928 100.8845+L88.6379 100.8845+" />+<path d="M88.6379 100.8845+L88.7105 100.8483+" />+<path d="M88.7105 100.8483+L88.7468 100.7757+" />+<path d="M88.7468 100.7757+L88.7468 100.7394+" />+<path d="M88.7468 100.7394+L88.7105 100.6668+" />+<path d="M88.7105 100.6668+L88.6379 100.6305+" />+<path d="M88.6379 100.6305+L88.5291 100.6305+" />+<path d="M88.5291 100.6305+L88.4565 100.5943+" />+<path d="M88.4565 100.5943+L88.4202 100.5217+" />+<path d="M88.4202 100.5217+L88.4202 100.4854+" />+<path d="M88.4202 100.4854+L88.4565 100.4128+" />+<path d="M88.4565 100.4128+L88.5291 100.3765+" />+<path d="M88.5291 100.3765+L88.6379 100.3765+" />+<path d="M88.6379 100.3765+L88.7105 100.4128+" />+<path d="M89.0734 100.8845+L89.0734 100.3765+" />+<path d="M89.0734 100.1225+L89.0371 100.1588+" />+<path d="M89.0371 100.1588+L89.0734 100.1951+" />+<path d="M89.0734 100.1951+L89.1097 100.1588+" />+<path d="M89.1097 100.1588+L89.0734 100.1225+" />+<path d="M89.0734 100.1225+L89.0734 100.1951+" />+<path d="M89.7629 100.8845+L89.7629 100.1225+" />+<path d="M89.7629 100.8483+L89.6903 100.8845+" />+<path d="M89.6903 100.8845+L89.5451 100.8845+" />+<path d="M89.5451 100.8845+L89.4726 100.8483+" />+<path d="M89.4726 100.8483+L89.4363 100.8120+" />+<path d="M89.4363 100.8120+L89.4000 100.7394+" />+<path d="M89.4000 100.7394+L89.4000 100.5217+" />+<path d="M89.4000 100.5217+L89.4363 100.4491+" />+<path d="M89.4363 100.4491+L89.4726 100.4128+" />+<path d="M89.4726 100.4128+L89.5451 100.3765+" />+<path d="M89.5451 100.3765+L89.6903 100.3765+" />+<path d="M89.6903 100.3765+L89.7629 100.4128+" />+<path d="M90.4160 100.8483+L90.3434 100.8845+" />+<path d="M90.3434 100.8845+L90.1983 100.8845+" />+<path d="M90.1983 100.8845+L90.1257 100.8483+" />+<path d="M90.1257 100.8483+L90.0894 100.7757+" />+<path d="M90.0894 100.7757+L90.0894 100.4854+" />+<path d="M90.0894 100.4854+L90.1257 100.4128+" />+<path d="M90.1257 100.4128+L90.1983 100.3765+" />+<path d="M90.1983 100.3765+L90.3434 100.3765+" />+<path d="M90.3434 100.3765+L90.4160 100.4128+" />+<path d="M90.4160 100.4128+L90.4523 100.4854+" />+<path d="M90.4523 100.4854+L90.4523 100.5580+" />+<path d="M90.4523 100.5580+L90.0894 100.6305+" />+</g><text x="116.7600" y="100.9210"+textLength="4.0784" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Supply</text>+<g class="stroked-text">+<path d="M113.0313 100.8483+L113.1402 100.8845+" />+<path d="M113.1402 100.8845+L113.3216 100.8845+" />+<path d="M113.3216 100.8845+L113.3942 100.8483+" />+<path d="M113.3942 100.8483+L113.4304 100.8120+" />+<path d="M113.4304 100.8120+L113.4667 100.7394+" />+<path d="M113.4667 100.7394+L113.4667 100.6668+" />+<path d="M113.4667 100.6668+L113.4304 100.5943+" />+<path d="M113.4304 100.5943+L113.3942 100.5580+" />+<path d="M113.3942 100.5580+L113.3216 100.5217+" />+<path d="M113.3216 100.5217+L113.1764 100.4854+" />+<path d="M113.1764 100.4854+L113.1039 100.4491+" />+<path d="M113.1039 100.4491+L113.0676 100.4128+" />+<path d="M113.0676 100.4128+L113.0313 100.3403+" />+<path d="M113.0313 100.3403+L113.0313 100.2677+" />+<path d="M113.0313 100.2677+L113.0676 100.1951+" />+<path d="M113.0676 100.1951+L113.1039 100.1588+" />+<path d="M113.1039 100.1588+L113.1764 100.1225+" />+<path d="M113.1764 100.1225+L113.3579 100.1225+" />+<path d="M113.3579 100.1225+L113.4667 100.1588+" />+<path d="M114.1199 100.3765+L114.1199 100.8845+" />+<path d="M113.7933 100.3765+L113.7933 100.7757+" />+<path d="M113.7933 100.7757+L113.8296 100.8483+" />+<path d="M113.8296 100.8483+L113.9021 100.8845+" />+<path d="M113.9021 100.8845+L114.0110 100.8845+" />+<path d="M114.0110 100.8845+L114.0836 100.8483+" />+<path d="M114.0836 100.8483+L114.1199 100.8120+" />+<path d="M114.4827 100.3765+L114.4827 101.1385+" />+<path d="M114.4827 100.4128+L114.5553 100.3765+" />+<path d="M114.5553 100.3765+L114.7004 100.3765+" />+<path d="M114.7004 100.3765+L114.7730 100.4128+" />+<path d="M114.7730 100.4128+L114.8093 100.4491+" />+<path d="M114.8093 100.4491+L114.8455 100.5217+" />+<path d="M114.8455 100.5217+L114.8455 100.7394+" />+<path d="M114.8455 100.7394+L114.8093 100.8120+" />+<path d="M114.8093 100.8120+L114.7730 100.8483+" />+<path d="M114.7730 100.8483+L114.7004 100.8845+" />+<path d="M114.7004 100.8845+L114.5553 100.8845+" />+<path d="M114.5553 100.8845+L114.4827 100.8483+" />+<path d="M115.1721 100.3765+L115.1721 101.1385+" />+<path d="M115.1721 100.4128+L115.2447 100.3765+" />+<path d="M115.2447 100.3765+L115.3898 100.3765+" />+<path d="M115.3898 100.3765+L115.4624 100.4128+" />+<path d="M115.4624 100.4128+L115.4987 100.4491+" />+<path d="M115.4987 100.4491+L115.5349 100.5217+" />+<path d="M115.5349 100.5217+L115.5349 100.7394+" />+<path d="M115.5349 100.7394+L115.4987 100.8120+" />+<path d="M115.4987 100.8120+L115.4624 100.8483+" />+<path d="M115.4624 100.8483+L115.3898 100.8845+" />+<path d="M115.3898 100.8845+L115.2447 100.8845+" />+<path d="M115.2447 100.8845+L115.1721 100.8483+" />+<path d="M115.9703 100.8845+L115.8978 100.8483+" />+<path d="M115.8978 100.8483+L115.8615 100.7757+" />+<path d="M115.8615 100.7757+L115.8615 100.1225+" />+<path d="M116.1880 100.3765+L116.3694 100.8845+" />+<path d="M116.5509 100.3765+L116.3694 100.8845+" />+<path d="M116.3694 100.8845+L116.2969 101.0660+" />+<path d="M116.2969 101.0660+L116.2606 101.1023+" />+<path d="M116.2606 101.1023+L116.1880 101.1385+" />+</g><text x="116.7600" y="111.0810"+textLength="8.3236" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Analog output</text>+<g class="stroked-text">+<path d="M108.7861 110.8268+L109.1490 110.8268+" />+<path d="M108.7135 111.0445+L108.9675 110.2825+" />+<path d="M108.9675 110.2825+L109.2215 111.0445+" />+<path d="M109.4755 110.5365+L109.4755 111.0445+" />+<path d="M109.4755 110.6091+L109.5118 110.5728+" />+<path d="M109.5118 110.5728+L109.5843 110.5365+" />+<path d="M109.5843 110.5365+L109.6932 110.5365+" />+<path d="M109.6932 110.5365+L109.7658 110.5728+" />+<path d="M109.7658 110.5728+L109.8021 110.6454+" />+<path d="M109.8021 110.6454+L109.8021 111.0445+" />+<path d="M110.4915 111.0445+L110.4915 110.6454+" />+<path d="M110.4915 110.6454+L110.4552 110.5728+" />+<path d="M110.4552 110.5728+L110.3826 110.5365+" />+<path d="M110.3826 110.5365+L110.2375 110.5365+" />+<path d="M110.2375 110.5365+L110.1649 110.5728+" />+<path d="M110.4915 111.0083+L110.4189 111.0445+" />+<path d="M110.4189 111.0445+L110.2375 111.0445+" />+<path d="M110.2375 111.0445+L110.1649 111.0083+" />+<path d="M110.1649 111.0083+L110.1286 110.9357+" />+<path d="M110.1286 110.9357+L110.1286 110.8631+" />+<path d="M110.1286 110.8631+L110.1649 110.7905+" />+<path d="M110.1649 110.7905+L110.2375 110.7543+" />+<path d="M110.2375 110.7543+L110.4189 110.7543+" />+<path d="M110.4189 110.7543+L110.4915 110.7180+" />+<path d="M110.9631 111.0445+L110.8906 111.0083+" />+<path d="M110.8906 111.0083+L110.8543 110.9357+" />+<path d="M110.8543 110.9357+L110.8543 110.2825+" />+<path d="M111.3622 111.0445+L111.2897 111.0083+" />+<path d="M111.2897 111.0083+L111.2534 110.9720+" />+<path d="M111.2534 110.9720+L111.2171 110.8994+" />+<path d="M111.2171 110.8994+L111.2171 110.6817+" />+<path d="M111.2171 110.6817+L111.2534 110.6091+" />+<path d="M111.2534 110.6091+L111.2897 110.5728+" />+<path d="M111.2897 110.5728+L111.3622 110.5365+" />+<path d="M111.3622 110.5365+L111.4711 110.5365+" />+<path d="M111.4711 110.5365+L111.5437 110.5728+" />+<path d="M111.5437 110.5728+L111.5800 110.6091+" />+<path d="M111.5800 110.6091+L111.6162 110.6817+" />+<path d="M111.6162 110.6817+L111.6162 110.8994+" />+<path d="M111.6162 110.8994+L111.5800 110.9720+" />+<path d="M111.5800 110.9720+L111.5437 111.0083+" />+<path d="M111.5437 111.0083+L111.4711 111.0445+" />+<path d="M111.4711 111.0445+L111.3622 111.0445+" />+<path d="M112.2694 110.5365+L112.2694 111.1534+" />+<path d="M112.2694 111.1534+L112.2331 111.2260+" />+<path d="M112.2331 111.2260+L112.1968 111.2623+" />+<path d="M112.1968 111.2623+L112.1242 111.2985+" />+<path d="M112.1242 111.2985+L112.0154 111.2985+" />+<path d="M112.0154 111.2985+L111.9428 111.2623+" />+<path d="M112.2694 111.0083+L112.1968 111.0445+" />+<path d="M112.1968 111.0445+L112.0516 111.0445+" />+<path d="M112.0516 111.0445+L111.9791 111.0083+" />+<path d="M111.9791 111.0083+L111.9428 110.9720+" />+<path d="M111.9428 110.9720+L111.9065 110.8994+" />+<path d="M111.9065 110.8994+L111.9065 110.6817+" />+<path d="M111.9065 110.6817+L111.9428 110.6091+" />+<path d="M111.9428 110.6091+L111.9791 110.5728+" />+<path d="M111.9791 110.5728+L112.0516 110.5365+" />+<path d="M112.0516 110.5365+L112.1968 110.5365+" />+<path d="M112.1968 110.5365+L112.2694 110.5728+" />+<path d="M113.3216 111.0445+L113.2491 111.0083+" />+<path d="M113.2491 111.0083+L113.2128 110.9720+" />+<path d="M113.2128 110.9720+L113.1765 110.8994+" />+<path d="M113.1765 110.8994+L113.1765 110.6817+" />+<path d="M113.1765 110.6817+L113.2128 110.6091+" />+<path d="M113.2128 110.6091+L113.2491 110.5728+" />+<path d="M113.2491 110.5728+L113.3216 110.5365+" />+<path d="M113.3216 110.5365+L113.4305 110.5365+" />+<path d="M113.4305 110.5365+L113.5031 110.5728+" />+<path d="M113.5031 110.5728+L113.5394 110.6091+" />+<path d="M113.5394 110.6091+L113.5756 110.6817+" />+<path d="M113.5756 110.6817+L113.5756 110.8994+" />+<path d="M113.5756 110.8994+L113.5394 110.9720+" />+<path d="M113.5394 110.9720+L113.5031 111.0083+" />+<path d="M113.5031 111.0083+L113.4305 111.0445+" />+<path d="M113.4305 111.0445+L113.3216 111.0445+" />+<path d="M114.2288 110.5365+L114.2288 111.0445+" />+<path d="M113.9022 110.5365+L113.9022 110.9357+" />+<path d="M113.9022 110.9357+L113.9385 111.0083+" />+<path d="M113.9385 111.0083+L114.0110 111.0445+" />+<path d="M114.0110 111.0445+L114.1199 111.0445+" />+<path d="M114.1199 111.0445+L114.1925 111.0083+" />+<path d="M114.1925 111.0083+L114.2288 110.9720+" />+<path d="M114.4827 110.5365+L114.7730 110.5365+" />+<path d="M114.5916 110.2825+L114.5916 110.9357+" />+<path d="M114.5916 110.9357+L114.6279 111.0083+" />+<path d="M114.6279 111.0083+L114.7004 111.0445+" />+<path d="M114.7004 111.0445+L114.7730 111.0445+" />+<path d="M115.0270 110.5365+L115.0270 111.2985+" />+<path d="M115.0270 110.5728+L115.0996 110.5365+" />+<path d="M115.0996 110.5365+L115.2447 110.5365+" />+<path d="M115.2447 110.5365+L115.3173 110.5728+" />+<path d="M115.3173 110.5728+L115.3536 110.6091+" />+<path d="M115.3536 110.6091+L115.3898 110.6817+" />+<path d="M115.3898 110.6817+L115.3898 110.8994+" />+<path d="M115.3898 110.8994+L115.3536 110.9720+" />+<path d="M115.3536 110.9720+L115.3173 111.0083+" />+<path d="M115.3173 111.0083+L115.2447 111.0445+" />+<path d="M115.2447 111.0445+L115.0996 111.0445+" />+<path d="M115.0996 111.0445+L115.0270 111.0083+" />+<path d="M116.0430 110.5365+L116.0430 111.0445+" />+<path d="M115.7164 110.5365+L115.7164 110.9357+" />+<path d="M115.7164 110.9357+L115.7527 111.0083+" />+<path d="M115.7527 111.0083+L115.8252 111.0445+" />+<path d="M115.8252 111.0445+L115.9341 111.0445+" />+<path d="M115.9341 111.0445+L116.0067 111.0083+" />+<path d="M116.0067 111.0083+L116.0430 110.9720+" />+<path d="M116.2969 110.5365+L116.5872 110.5365+" />+<path d="M116.4058 110.2825+L116.4058 110.9357+" />+<path d="M116.4058 110.9357+L116.4421 111.0083+" />+<path d="M116.4421 111.0083+L116.5146 111.0445+" />+<path d="M116.5146 111.0445+L116.5872 111.0445+" />+</g><text x="116.7600" y="121.2410"+textLength="6.8723" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Overcurrent</text>+<g class="stroked-text">+<path d="M110.4188 120.4425+L110.5640 120.4425+" />+<path d="M110.5640 120.4425+L110.6365 120.4788+" />+<path d="M110.6365 120.4788+L110.7091 120.5514+" />+<path d="M110.7091 120.5514+L110.7454 120.6965+" />+<path d="M110.7454 120.6965+L110.7454 120.9505+" />+<path d="M110.7454 120.9505+L110.7091 121.0957+" />+<path d="M110.7091 121.0957+L110.6365 121.1683+" />+<path d="M110.6365 121.1683+L110.5640 121.2045+" />+<path d="M110.5640 121.2045+L110.4188 121.2045+" />+<path d="M110.4188 121.2045+L110.3463 121.1683+" />+<path d="M110.3463 121.1683+L110.2737 121.0957+" />+<path d="M110.2737 121.0957+L110.2374 120.9505+" />+<path d="M110.2374 120.9505+L110.2374 120.6965+" />+<path d="M110.2374 120.6965+L110.2737 120.5514+" />+<path d="M110.2737 120.5514+L110.3463 120.4788+" />+<path d="M110.3463 120.4788+L110.4188 120.4425+" />+<path d="M110.9994 120.6965+L111.1808 121.2045+" />+<path d="M111.1808 121.2045+L111.3623 120.6965+" />+<path d="M111.9429 121.1683+L111.8703 121.2045+" />+<path d="M111.8703 121.2045+L111.7252 121.2045+" />+<path d="M111.7252 121.2045+L111.6526 121.1683+" />+<path d="M111.6526 121.1683+L111.6163 121.0957+" />+<path d="M111.6163 121.0957+L111.6163 120.8054+" />+<path d="M111.6163 120.8054+L111.6526 120.7328+" />+<path d="M111.6526 120.7328+L111.7252 120.6965+" />+<path d="M111.7252 120.6965+L111.8703 120.6965+" />+<path d="M111.8703 120.6965+L111.9429 120.7328+" />+<path d="M111.9429 120.7328+L111.9792 120.8054+" />+<path d="M111.9792 120.8054+L111.9792 120.8780+" />+<path d="M111.9792 120.8780+L111.6163 120.9505+" />+<path d="M112.3057 121.2045+L112.3057 120.6965+" />+<path d="M112.3057 120.8417+L112.3420 120.7691+" />+<path d="M112.3420 120.7691+L112.3783 120.7328+" />+<path d="M112.3783 120.7328+L112.4508 120.6965+" />+<path d="M112.4508 120.6965+L112.5234 120.6965+" />+<path d="M113.1040 121.1683+L113.0314 121.2045+" />+<path d="M113.0314 121.2045+L112.8862 121.2045+" />+<path d="M112.8862 121.2045+L112.8137 121.1683+" />+<path d="M112.8137 121.1683+L112.7774 121.1320+" />+<path d="M112.7774 121.1320+L112.7411 121.0594+" />+<path d="M112.7411 121.0594+L112.7411 120.8417+" />+<path d="M112.7411 120.8417+L112.7774 120.7691+" />+<path d="M112.7774 120.7691+L112.8137 120.7328+" />+<path d="M112.8137 120.7328+L112.8862 120.6965+" />+<path d="M112.8862 120.6965+L113.0314 120.6965+" />+<path d="M113.0314 120.6965+L113.1040 120.7328+" />+<path d="M113.7571 120.6965+L113.7571 121.2045+" />+<path d="M113.4305 120.6965+L113.4305 121.0957+" />+<path d="M113.4305 121.0957+L113.4668 121.1683+" />+<path d="M113.4668 121.1683+L113.5393 121.2045+" />+<path d="M113.5393 121.2045+L113.6482 121.2045+" />+<path d="M113.6482 121.2045+L113.7208 121.1683+" />+<path d="M113.7208 121.1683+L113.7571 121.1320+" />+<path d="M114.1199 121.2045+L114.1199 120.6965+" />+<path d="M114.1199 120.8417+L114.1562 120.7691+" />+<path d="M114.1562 120.7691+L114.1925 120.7328+" />+<path d="M114.1925 120.7328+L114.2650 120.6965+" />+<path d="M114.2650 120.6965+L114.3376 120.6965+" />+<path d="M114.5916 121.2045+L114.5916 120.6965+" />+<path d="M114.5916 120.8417+L114.6279 120.7691+" />+<path d="M114.6279 120.7691+L114.6642 120.7328+" />+<path d="M114.6642 120.7328+L114.7367 120.6965+" />+<path d="M114.7367 120.6965+L114.8093 120.6965+" />+<path d="M115.3536 121.1683+L115.2810 121.2045+" />+<path d="M115.2810 121.2045+L115.1359 121.2045+" />+<path d="M115.1359 121.2045+L115.0633 121.1683+" />+<path d="M115.0633 121.1683+L115.0270 121.0957+" />+<path d="M115.0270 121.0957+L115.0270 120.8054+" />+<path d="M115.0270 120.8054+L115.0633 120.7328+" />+<path d="M115.0633 120.7328+L115.1359 120.6965+" />+<path d="M115.1359 120.6965+L115.2810 120.6965+" />+<path d="M115.2810 120.6965+L115.3536 120.7328+" />+<path d="M115.3536 120.7328+L115.3899 120.8054+" />+<path d="M115.3899 120.8054+L115.3899 120.8780+" />+<path d="M115.3899 120.8780+L115.0270 120.9505+" />+<path d="M115.7164 120.6965+L115.7164 121.2045+" />+<path d="M115.7164 120.7691+L115.7527 120.7328+" />+<path d="M115.7527 120.7328+L115.8252 120.6965+" />+<path d="M115.8252 120.6965+L115.9341 120.6965+" />+<path d="M115.9341 120.6965+L116.0067 120.7328+" />+<path d="M116.0067 120.7328+L116.0430 120.8054+" />+<path d="M116.0430 120.8054+L116.0430 121.2045+" />+<path d="M116.2969 120.6965+L116.5872 120.6965+" />+<path d="M116.4058 120.4425+L116.4058 121.0957+" />+<path d="M116.4058 121.0957+L116.4421 121.1683+" />+<path d="M116.4421 121.1683+L116.5146 121.2045+" />+<path d="M116.5146 121.2045+L116.5872 121.2045+" />+</g><text x="116.7600" y="136.4810"+textLength="5.3847" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Reserved</text>+<g class="stroked-text">+<path d="M112.1967 136.4445+L111.9427 136.0817+" />+<path d="M111.7613 136.4445+L111.7613 135.6825+" />+<path d="M111.7613 135.6825+L112.0516 135.6825+" />+<path d="M112.0516 135.6825+L112.1241 135.7188+" />+<path d="M112.1241 135.7188+L112.1604 135.7551+" />+<path d="M112.1604 135.7551+L112.1967 135.8277+" />+<path d="M112.1967 135.8277+L112.1967 135.9365+" />+<path d="M112.1967 135.9365+L112.1604 136.0091+" />+<path d="M112.1604 136.0091+L112.1241 136.0454+" />+<path d="M112.1241 136.0454+L112.0516 136.0817+" />+<path d="M112.0516 136.0817+L111.7613 136.0817+" />+<path d="M112.8136 136.4083+L112.7410 136.4445+" />+<path d="M112.7410 136.4445+L112.5959 136.4445+" />+<path d="M112.5959 136.4445+L112.5233 136.4083+" />+<path d="M112.5233 136.4083+L112.4870 136.3357+" />+<path d="M112.4870 136.3357+L112.4870 136.0454+" />+<path d="M112.4870 136.0454+L112.5233 135.9728+" />+<path d="M112.5233 135.9728+L112.5959 135.9365+" />+<path d="M112.5959 135.9365+L112.7410 135.9365+" />+<path d="M112.7410 135.9365+L112.8136 135.9728+" />+<path d="M112.8136 135.9728+L112.8499 136.0454+" />+<path d="M112.8499 136.0454+L112.8499 136.1180+" />+<path d="M112.8499 136.1180+L112.4870 136.1905+" />+<path d="M113.1401 136.4083+L113.2127 136.4445+" />+<path d="M113.2127 136.4445+L113.3578 136.4445+" />+<path d="M113.3578 136.4445+L113.4304 136.4083+" />+<path d="M113.4304 136.4083+L113.4667 136.3357+" />+<path d="M113.4667 136.3357+L113.4667 136.2994+" />+<path d="M113.4667 136.2994+L113.4304 136.2268+" />+<path d="M113.4304 136.2268+L113.3578 136.1905+" />+<path d="M113.3578 136.1905+L113.2490 136.1905+" />+<path d="M113.2490 136.1905+L113.1764 136.1543+" />+<path d="M113.1764 136.1543+L113.1401 136.0817+" />+<path d="M113.1401 136.0817+L113.1401 136.0454+" />+<path d="M113.1401 136.0454+L113.1764 135.9728+" />+<path d="M113.1764 135.9728+L113.2490 135.9365+" />+<path d="M113.2490 135.9365+L113.3578 135.9365+" />+<path d="M113.3578 135.9365+L113.4304 135.9728+" />+<path d="M114.0836 136.4083+L114.0110 136.4445+" />+<path d="M114.0110 136.4445+L113.8659 136.4445+" />+<path d="M113.8659 136.4445+L113.7933 136.4083+" />+<path d="M113.7933 136.4083+L113.7570 136.3357+" />+<path d="M113.7570 136.3357+L113.7570 136.0454+" />+<path d="M113.7570 136.0454+L113.7933 135.9728+" />+<path d="M113.7933 135.9728+L113.8659 135.9365+" />+<path d="M113.8659 135.9365+L114.0110 135.9365+" />+<path d="M114.0110 135.9365+L114.0836 135.9728+" />+<path d="M114.0836 135.9728+L114.1199 136.0454+" />+<path d="M114.1199 136.0454+L114.1199 136.1180+" />+<path d="M114.1199 136.1180+L113.7570 136.1905+" />+<path d="M114.4464 136.4445+L114.4464 135.9365+" />+<path d="M114.4464 136.0817+L114.4827 136.0091+" />+<path d="M114.4827 136.0091+L114.5190 135.9728+" />+<path d="M114.5190 135.9728+L114.5915 135.9365+" />+<path d="M114.5915 135.9365+L114.6641 135.9365+" />+<path d="M114.8455 135.9365+L115.0269 136.4445+" />+<path d="M115.0269 136.4445+L115.2084 135.9365+" />+<path d="M115.7890 136.4083+L115.7164 136.4445+" />+<path d="M115.7164 136.4445+L115.5713 136.4445+" />+<path d="M115.5713 136.4445+L115.4987 136.4083+" />+<path d="M115.4987 136.4083+L115.4624 136.3357+" />+<path d="M115.4624 136.3357+L115.4624 136.0454+" />+<path d="M115.4624 136.0454+L115.4987 135.9728+" />+<path d="M115.4987 135.9728+L115.5713 135.9365+" />+<path d="M115.5713 135.9365+L115.7164 135.9365+" />+<path d="M115.7164 135.9365+L115.7890 135.9728+" />+<path d="M115.7890 135.9728+L115.8253 136.0454+" />+<path d="M115.8253 136.0454+L115.8253 136.1180+" />+<path d="M115.8253 136.1180+L115.4624 136.1905+" />+<path d="M116.4784 136.4445+L116.4784 135.6825+" />+<path d="M116.4784 136.4083+L116.4058 136.4445+" />+<path d="M116.4058 136.4445+L116.2606 136.4445+" />+<path d="M116.2606 136.4445+L116.1881 136.4083+" />+<path d="M116.1881 136.4083+L116.1518 136.3720+" />+<path d="M116.1518 136.3720+L116.1155 136.2994+" />+<path d="M116.1155 136.2994+L116.1155 136.0817+" />+<path d="M116.1155 136.0817+L116.1518 136.0091+" />+<path d="M116.1518 136.0091+L116.1881 135.9728+" />+<path d="M116.1881 135.9728+L116.2606 135.9365+" />+<path d="M116.2606 135.9365+L116.4058 135.9365+" />+<path d="M116.4058 135.9365+L116.4784 135.9728+" />+</g><path d="M82.2200 102.5400+L79.6800 102.5400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="83.2360" y="103.1750"+textLength="3.7109" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="start" opacity="0" stroke-opacity="0">IN+</text>+<g class="stroked-text">+<path d="M83.6385 103.1195+L83.6385 101.8495+" />+<path d="M84.2433 103.1195+L84.2433 101.8495+" />+<path d="M84.2433 101.8495+L84.9690 103.1195+" />+<path d="M84.9690 103.1195+L84.9690 101.8495+" />+<path d="M85.5738 102.6357+L86.5415 102.6357+" />+<path d="M86.0576 103.1195+L86.0576 102.1519+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="80.9500" y="102.2860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">1</text>+<g class="stroked-text">+<path d="M81.3129 102.1225+L80.5872 102.1225+" />+<path d="M80.9500 102.1225+L80.9500 100.8525+" />+<path d="M80.9500 100.8525+L80.8291 101.0340+" />+<path d="M80.8291 101.0340+L80.7081 101.1549+" />+<path d="M80.7081 101.1549+L80.5872 101.2154+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M82.2200 105.0800+L79.6800 105.0800+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="83.2360" y="105.7150"+textLength="3.7109" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="start" opacity="0" stroke-opacity="0">IN-</text>+<g class="stroked-text">+<path d="M83.6385 105.6595+L83.6385 104.3895+" />+<path d="M84.2433 105.6595+L84.2433 104.3895+" />+<path d="M84.2433 104.3895+L84.9690 105.6595+" />+<path d="M84.9690 105.6595+L84.9690 104.3895+" />+<path d="M85.5738 105.1757+L86.5415 105.1757+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="80.9500" y="104.8260"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">2</text>+<g class="stroked-text">+<path d="M80.5872 103.5135+L80.6476 103.4530+" />+<path d="M80.6476 103.4530+L80.7686 103.3925+" />+<path d="M80.7686 103.3925+L81.0710 103.3925+" />+<path d="M81.0710 103.3925+L81.1919 103.4530+" />+<path d="M81.1919 103.4530+L81.2524 103.5135+" />+<path d="M81.2524 103.5135+L81.3129 103.6344+" />+<path d="M81.3129 103.6344+L81.3129 103.7554+" />+<path d="M81.3129 103.7554+L81.2524 103.9368+" />+<path d="M81.2524 103.9368+L80.5267 104.6625+" />+<path d="M80.5267 104.6625+L81.3129 104.6625+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 105.0800+L120.3200 105.0800+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="105.7150"+textLength="4.0737" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">GND</text>+<g class="stroked-text">+<path d="M113.7609 104.4500+L113.6399 104.3895+" />+<path d="M113.6399 104.3895+L113.4585 104.3895+" />+<path d="M113.4585 104.3895+L113.2771 104.4500+" />+<path d="M113.2771 104.4500+L113.1561 104.5710+" />+<path d="M113.1561 104.5710+L113.0956 104.6919+" />+<path d="M113.0956 104.6919+L113.0352 104.9338+" />+<path d="M113.0352 104.9338+L113.0352 105.1152+" />+<path d="M113.0352 105.1152+L113.0956 105.3571+" />+<path d="M113.0956 105.3571+L113.1561 105.4781+" />+<path d="M113.1561 105.4781+L113.2771 105.5991+" />+<path d="M113.2771 105.5991+L113.4585 105.6595+" />+<path d="M113.4585 105.6595+L113.5794 105.6595+" />+<path d="M113.5794 105.6595+L113.7609 105.5991+" />+<path d="M113.7609 105.5991+L113.8213 105.5386+" />+<path d="M113.8213 105.5386+L113.8213 105.1152+" />+<path d="M113.8213 105.1152+L113.5794 105.1152+" />+<path d="M114.3656 105.6595+L114.3656 104.3895+" />+<path d="M114.3656 104.3895+L115.0913 105.6595+" />+<path d="M115.0913 105.6595+L115.0913 104.3895+" />+<path d="M115.6961 105.6595+L115.6961 104.3895+" />+<path d="M115.6961 104.3895+L115.9985 104.3895+" />+<path d="M115.9985 104.3895+L116.1799 104.4500+" />+<path d="M116.1799 104.4500+L116.3009 104.5710+" />+<path d="M116.3009 104.5710+L116.3614 104.6919+" />+<path d="M116.3614 104.6919+L116.4218 104.9338+" />+<path d="M116.4218 104.9338+L116.4218 105.1152+" />+<path d="M116.4218 105.1152+L116.3614 105.3571+" />+<path d="M116.3614 105.3571+L116.3009 105.4781+" />+<path d="M116.3009 105.4781+L116.1799 105.5991+" />+<path d="M116.1799 105.5991+L115.9985 105.6595+" />+<path d="M115.9985 105.6595+L115.6961 105.6595+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="104.8260"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">3</text>+<g class="stroked-text">+<path d="M118.6267 103.3925+L119.4129 103.3925+" />+<path d="M119.4129 103.3925+L118.9895 103.8763+" />+<path d="M118.9895 103.8763+L119.1710 103.8763+" />+<path d="M119.1710 103.8763+L119.2919 103.9368+" />+<path d="M119.2919 103.9368+L119.3524 103.9973+" />+<path d="M119.3524 103.9973+L119.4129 104.1182+" />+<path d="M119.4129 104.1182+L119.4129 104.4206+" />+<path d="M119.4129 104.4206+L119.3524 104.5416+" />+<path d="M119.3524 104.5416+L119.2919 104.6021+" />+<path d="M119.2919 104.6021+L119.1710 104.6625+" />+<path d="M119.1710 104.6625+L118.8081 104.6625+" />+<path d="M118.8081 104.6625+L118.6872 104.6021+" />+<path d="M118.6872 104.6021+L118.6267 104.5416+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 127.9400+L120.3200 127.9400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="128.5750"+textLength="5.7065" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">ALERT</text>+<g class="stroked-text">+<path d="M111.4024 128.1567+L112.0071 128.1567+" />+<path d="M111.2814 128.5195+L111.7047 127.2495+" />+<path d="M111.7047 127.2495+L112.1281 128.5195+" />+<path d="M113.1562 128.5195+L112.5514 128.5195+" />+<path d="M112.5514 128.5195+L112.5514 127.2495+" />+<path d="M113.5795 127.8543+L114.0029 127.8543+" />+<path d="M114.1843 128.5195+L113.5795 128.5195+" />+<path d="M113.5795 128.5195+L113.5795 127.2495+" />+<path d="M113.5795 127.2495+L114.1843 127.2495+" />+<path d="M115.4542 128.5195+L115.0309 127.9148+" />+<path d="M114.7285 128.5195+L114.7285 127.2495+" />+<path d="M114.7285 127.2495+L115.2123 127.2495+" />+<path d="M115.2123 127.2495+L115.3333 127.3100+" />+<path d="M115.3333 127.3100+L115.3938 127.3705+" />+<path d="M115.3938 127.3705+L115.4542 127.4914+" />+<path d="M115.4542 127.4914+L115.4542 127.6729+" />+<path d="M115.4542 127.6729+L115.3938 127.7938+" />+<path d="M115.3938 127.7938+L115.3333 127.8543+" />+<path d="M115.3333 127.8543+L115.2123 127.9148+" />+<path d="M115.2123 127.9148+L114.7285 127.9148+" />+<path d="M115.8171 127.2495+L116.5428 127.2495+" />+<path d="M116.1800 128.5195+L116.1800 127.2495+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="127.6860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">4</text>+<g class="stroked-text">+<path d="M119.2919 126.6759+L119.2919 127.5225+" />+<path d="M118.9895 126.1921+L118.6872 127.0992+" />+<path d="M118.6872 127.0992+L119.4733 127.0992+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 115.2400+L120.3200 115.2400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="115.8750"+textLength="4.7994" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VREF</text>+<g class="stroked-text">+<path d="M112.1885 114.5495+L112.6118 115.8195+" />+<path d="M112.6118 115.8195+L113.0352 114.5495+" />+<path d="M114.1842 115.8195+L113.7609 115.2148+" />+<path d="M113.4585 115.8195+L113.4585 114.5495+" />+<path d="M113.4585 114.5495+L113.9423 114.5495+" />+<path d="M113.9423 114.5495+L114.0633 114.6100+" />+<path d="M114.0633 114.6100+L114.1238 114.6705+" />+<path d="M114.1238 114.6705+L114.1842 114.7914+" />+<path d="M114.1842 114.7914+L114.1842 114.9729+" />+<path d="M114.1842 114.9729+L114.1238 115.0938+" />+<path d="M114.1238 115.0938+L114.0633 115.1543+" />+<path d="M114.0633 115.1543+L113.9423 115.2148+" />+<path d="M113.9423 115.2148+L113.4585 115.2148+" />+<path d="M114.7285 115.1543+L115.1519 115.1543+" />+<path d="M115.3333 115.8195+L114.7285 115.8195+" />+<path d="M114.7285 115.8195+L114.7285 114.5495+" />+<path d="M114.7285 114.5495+L115.3333 114.5495+" />+<path d="M116.3009 115.1543+L115.8775 115.1543+" />+<path d="M115.8775 115.8195+L115.8775 114.5495+" />+<path d="M115.8775 114.5495+L116.4823 114.5495+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="114.9860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">5</text>+<g class="stroked-text">+<path d="M119.3524 113.5525+L118.7476 113.5525+" />+<path d="M118.7476 113.5525+L118.6872 114.1573+" />+<path d="M118.6872 114.1573+L118.7476 114.0968+" />+<path d="M118.7476 114.0968+L118.8686 114.0363+" />+<path d="M118.8686 114.0363+L119.1710 114.0363+" />+<path d="M119.1710 114.0363+L119.2919 114.0968+" />+<path d="M119.2919 114.0968+L119.3524 114.1573+" />+<path d="M119.3524 114.1573+L119.4129 114.2782+" />+<path d="M119.4129 114.2782+L119.4129 114.5806+" />+<path d="M119.4129 114.5806+L119.3524 114.7016+" />+<path d="M119.3524 114.7016+L119.2919 114.7621+" />+<path d="M119.2919 114.7621+L119.1710 114.8225+" />+<path d="M119.1710 114.8225+L118.8686 114.8225+" />+<path d="M118.8686 114.8225+L118.7476 114.7621+" />+<path d="M118.7476 114.7621+L118.6872 114.7016+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 112.7000+L120.3200 112.7000+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="113.3350"+textLength="4.9204" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VOUT</text>+<g class="stroked-text">+<path d="M112.0675 112.0095+L112.4908 113.2795+" />+<path d="M112.4908 113.2795+L112.9142 112.0095+" />+<path d="M113.5794 112.0095+L113.8213 112.0095+" />+<path d="M113.8213 112.0095+L113.9423 112.0700+" />+<path d="M113.9423 112.0700+L114.0632 112.1910+" />+<path d="M114.0632 112.1910+L114.1237 112.4329+" />+<path d="M114.1237 112.4329+L114.1237 112.8562+" />+<path d="M114.1237 112.8562+L114.0632 113.0981+" />+<path d="M114.0632 113.0981+L113.9423 113.2191+" />+<path d="M113.9423 113.2191+L113.8213 113.2795+" />+<path d="M113.8213 113.2795+L113.5794 113.2795+" />+<path d="M113.5794 113.2795+L113.4585 113.2191+" />+<path d="M113.4585 113.2191+L113.3375 113.0981+" />+<path d="M113.3375 113.0981+L113.2771 112.8562+" />+<path d="M113.2771 112.8562+L113.2771 112.4329+" />+<path d="M113.2771 112.4329+L113.3375 112.1910+" />+<path d="M113.3375 112.1910+L113.4585 112.0700+" />+<path d="M113.4585 112.0700+L113.5794 112.0095+" />+<path d="M114.6680 112.0095+L114.6680 113.0376+" />+<path d="M114.6680 113.0376+L114.7285 113.1586+" />+<path d="M114.7285 113.1586+L114.7890 113.2191+" />+<path d="M114.7890 113.2191+L114.9099 113.2795+" />+<path d="M114.9099 113.2795+L115.1518 113.2795+" />+<path d="M115.1518 113.2795+L115.2728 113.2191+" />+<path d="M115.2728 113.2191+L115.3333 113.1586+" />+<path d="M115.3333 113.1586+L115.3937 113.0376+" />+<path d="M115.3937 113.0376+L115.3937 112.0095+" />+<path d="M115.8171 112.0095+L116.5428 112.0095+" />+<path d="M116.1800 113.2795+L116.1800 112.0095+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="112.4460"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">6</text>+<g class="stroked-text">+<path d="M119.2919 111.0125+L119.0500 111.0125+" />+<path d="M119.0500 111.0125+L118.9291 111.0730+" />+<path d="M118.9291 111.0730+L118.8686 111.1335+" />+<path d="M118.8686 111.1335+L118.7476 111.3149+" />+<path d="M118.7476 111.3149+L118.6872 111.5568+" />+<path d="M118.6872 111.5568+L118.6872 112.0406+" />+<path d="M118.6872 112.0406+L118.7476 112.1616+" />+<path d="M118.7476 112.1616+L118.8081 112.2221+" />+<path d="M118.8081 112.2221+L118.9291 112.2825+" />+<path d="M118.9291 112.2825+L119.1710 112.2825+" />+<path d="M119.1710 112.2825+L119.2919 112.2221+" />+<path d="M119.2919 112.2221+L119.3524 112.1616+" />+<path d="M119.3524 112.1616+L119.4129 112.0406+" />+<path d="M119.4129 112.0406+L119.4129 111.7382+" />+<path d="M119.4129 111.7382+L119.3524 111.6173+" />+<path d="M119.3524 111.6173+L119.2919 111.5568+" />+<path d="M119.2919 111.5568+L119.1710 111.4963+" />+<path d="M119.1710 111.4963+L118.9291 111.4963+" />+<path d="M118.9291 111.4963+L118.8081 111.5568+" />+<path d="M118.8081 111.5568+L118.7476 111.6173+" />+<path d="M118.7476 111.6173+L118.6872 111.7382+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 125.4000+L120.3200 125.4000+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="126.0350"+textLength="2.8037" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">OC</text>+<g class="stroked-text">+<path d="M114.6075 124.7095+L114.8494 124.7095+" />+<path d="M114.8494 124.7095+L114.9704 124.7700+" />+<path d="M114.9704 124.7700+L115.0913 124.8910+" />+<path d="M115.0913 124.8910+L115.1518 125.1329+" />+<path d="M115.1518 125.1329+L115.1518 125.5562+" />+<path d="M115.1518 125.5562+L115.0913 125.7981+" />+<path d="M115.0913 125.7981+L114.9704 125.9191+" />+<path d="M114.9704 125.9191+L114.8494 125.9795+" />+<path d="M114.8494 125.9795+L114.6075 125.9795+" />+<path d="M114.6075 125.9795+L114.4866 125.9191+" />+<path d="M114.4866 125.9191+L114.3656 125.7981+" />+<path d="M114.3656 125.7981+L114.3052 125.5562+" />+<path d="M114.3052 125.5562+L114.3052 125.1329+" />+<path d="M114.3052 125.1329+L114.3656 124.8910+" />+<path d="M114.3656 124.8910+L114.4866 124.7700+" />+<path d="M114.4866 124.7700+L114.6075 124.7095+" />+<path d="M116.4218 125.8586+L116.3614 125.9191+" />+<path d="M116.3614 125.9191+L116.1799 125.9795+" />+<path d="M116.1799 125.9795+L116.0590 125.9795+" />+<path d="M116.0590 125.9795+L115.8776 125.9191+" />+<path d="M115.8776 125.9191+L115.7566 125.7981+" />+<path d="M115.7566 125.7981+L115.6961 125.6771+" />+<path d="M115.6961 125.6771+L115.6357 125.4352+" />+<path d="M115.6357 125.4352+L115.6357 125.2538+" />+<path d="M115.6357 125.2538+L115.6961 125.0119+" />+<path d="M115.6961 125.0119+L115.7566 124.8910+" />+<path d="M115.7566 124.8910+L115.8776 124.7700+" />+<path d="M115.8776 124.7700+L116.0590 124.7095+" />+<path d="M116.0590 124.7095+L116.1799 124.7095+" />+<path d="M116.1799 124.7095+L116.3614 124.7700+" />+<path d="M116.3614 124.7700+L116.4218 124.8305+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="125.1460"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">7</text>+<g class="stroked-text">+<path d="M118.6267 123.7125+L119.4733 123.7125+" />+<path d="M119.4733 123.7125+L118.9291 124.9825+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 102.5400+L120.3200 102.5400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="103.1750"+textLength="2.5013" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VS</text>+<g class="stroked-text">+<path d="M114.4866 101.8495+L114.9099 103.1195+" />+<path d="M114.9099 103.1195+L115.3333 101.8495+" />+<path d="M115.6962 103.0591+L115.8776 103.1195+" />+<path d="M115.8776 103.1195+L116.1800 103.1195+" />+<path d="M116.1800 103.1195+L116.3009 103.0591+" />+<path d="M116.3009 103.0591+L116.3614 102.9986+" />+<path d="M116.3614 102.9986+L116.4219 102.8776+" />+<path d="M116.4219 102.8776+L116.4219 102.7567+" />+<path d="M116.4219 102.7567+L116.3614 102.6357+" />+<path d="M116.3614 102.6357+L116.3009 102.5752+" />+<path d="M116.3009 102.5752+L116.1800 102.5148+" />+<path d="M116.1800 102.5148+L115.9381 102.4543+" />+<path d="M115.9381 102.4543+L115.8171 102.3938+" />+<path d="M115.8171 102.3938+L115.7566 102.3333+" />+<path d="M115.7566 102.3333+L115.6962 102.2124+" />+<path d="M115.6962 102.2124+L115.6962 102.0914+" />+<path d="M115.6962 102.0914+L115.7566 101.9705+" />+<path d="M115.7566 101.9705+L115.8171 101.9100+" />+<path d="M115.8171 101.9100+L115.9381 101.8495+" />+<path d="M115.9381 101.8495+L116.2404 101.8495+" />+<path d="M116.2404 101.8495+L116.4219 101.9100+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="102.2860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">8</text>+<g class="stroked-text">+<path d="M118.9291 101.3968+L118.8081 101.3363+" />+<path d="M118.8081 101.3363+L118.7476 101.2759+" />+<path d="M118.7476 101.2759+L118.6872 101.1549+" />+<path d="M118.6872 101.1549+L118.6872 101.0944+" />+<path d="M118.6872 101.0944+L118.7476 100.9735+" />+<path d="M118.7476 100.9735+L118.8081 100.9130+" />+<path d="M118.8081 100.9130+L118.9291 100.8525+" />+<path d="M118.9291 100.8525+L119.1710 100.8525+" />+<path d="M119.1710 100.8525+L119.2919 100.9130+" />+<path d="M119.2919 100.9130+L119.3524 100.9735+" />+<path d="M119.3524 100.9735+L119.4129 101.0944+" />+<path d="M119.4129 101.0944+L119.4129 101.1549+" />+<path d="M119.4129 101.1549+L119.3524 101.2759+" />+<path d="M119.3524 101.2759+L119.2919 101.3363+" />+<path d="M119.2919 101.3363+L119.1710 101.3968+" />+<path d="M119.1710 101.3968+L118.9291 101.3968+" />+<path d="M118.9291 101.3968+L118.8081 101.4573+" />+<path d="M118.8081 101.4573+L118.7476 101.5178+" />+<path d="M118.7476 101.5178+L118.6872 101.6387+" />+<path d="M118.6872 101.6387+L118.6872 101.8806+" />+<path d="M118.6872 101.8806+L118.7476 102.0016+" />+<path d="M118.7476 102.0016+L118.8081 102.0621+" />+<path d="M118.8081 102.0621+L118.9291 102.1225+" />+<path d="M118.9291 102.1225+L119.1710 102.1225+" />+<path d="M119.1710 102.1225+L119.2919 102.0621+" />+<path d="M119.2919 102.0621+L119.3524 102.0016+" />+<path d="M119.3524 102.0016+L119.4129 101.8806+" />+<path d="M119.4129 101.8806+L119.4129 101.6387+" />+<path d="M119.4129 101.6387+L119.3524 101.5178+" />+<path d="M119.3524 101.5178+L119.2919 101.4573+" />+<path d="M119.2919 101.4573+L119.1710 101.3968+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 122.8600+L120.3200 122.8600+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="123.4950"+textLength="3.8923" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VOC</text>+<g class="stroked-text">+<path d="M113.0956 122.1695+L113.5189 123.4395+" />+<path d="M113.5189 123.4395+L113.9423 122.1695+" />+<path d="M114.6075 122.1695+L114.8494 122.1695+" />+<path d="M114.8494 122.1695+L114.9704 122.2300+" />+<path d="M114.9704 122.2300+L115.0913 122.3510+" />+<path d="M115.0913 122.3510+L115.1518 122.5929+" />+<path d="M115.1518 122.5929+L115.1518 123.0162+" />+<path d="M115.1518 123.0162+L115.0913 123.2581+" />+<path d="M115.0913 123.2581+L114.9704 123.3791+" />+<path d="M114.9704 123.3791+L114.8494 123.4395+" />+<path d="M114.8494 123.4395+L114.6075 123.4395+" />+<path d="M114.6075 123.4395+L114.4866 123.3791+" />+<path d="M114.4866 123.3791+L114.3656 123.2581+" />+<path d="M114.3656 123.2581+L114.3052 123.0162+" />+<path d="M114.3052 123.0162+L114.3052 122.5929+" />+<path d="M114.3052 122.5929+L114.3656 122.3510+" />+<path d="M114.3656 122.3510+L114.4866 122.2300+" />+<path d="M114.4866 122.2300+L114.6075 122.1695+" />+<path d="M116.4218 123.3186+L116.3614 123.3791+" />+<path d="M116.3614 123.3791+L116.1799 123.4395+" />+<path d="M116.1799 123.4395+L116.0590 123.4395+" />+<path d="M116.0590 123.4395+L115.8776 123.3791+" />+<path d="M115.8776 123.3791+L115.7566 123.2581+" />+<path d="M115.7566 123.2581+L115.6961 123.1371+" />+<path d="M115.6961 123.1371+L115.6357 122.8952+" />+<path d="M115.6357 122.8952+L115.6357 122.7138+" />+<path d="M115.6357 122.7138+L115.6961 122.4719+" />+<path d="M115.6961 122.4719+L115.7566 122.3510+" />+<path d="M115.7566 122.3510+L115.8776 122.2300+" />+<path d="M115.8776 122.2300+L116.0590 122.1695+" />+<path d="M116.0590 122.1695+L116.1799 122.1695+" />+<path d="M116.1799 122.1695+L116.3614 122.2300+" />+<path d="M116.3614 122.2300+L116.4218 122.2905+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="122.6060"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">9</text>+<g class="stroked-text">+<path d="M118.8081 122.4425+L119.0500 122.4425+" />+<path d="M119.0500 122.4425+L119.1710 122.3821+" />+<path d="M119.1710 122.3821+L119.2314 122.3216+" />+<path d="M119.2314 122.3216+L119.3524 122.1401+" />+<path d="M119.3524 122.1401+L119.4129 121.8982+" />+<path d="M119.4129 121.8982+L119.4129 121.4144+" />+<path d="M119.4129 121.4144+L119.3524 121.2935+" />+<path d="M119.3524 121.2935+L119.2919 121.2330+" />+<path d="M119.2919 121.2330+L119.1710 121.1725+" />+<path d="M119.1710 121.1725+L118.9291 121.1725+" />+<path d="M118.9291 121.1725+L118.8081 121.2330+" />+<path d="M118.8081 121.2330+L118.7476 121.2935+" />+<path d="M118.7476 121.2935+L118.6872 121.4144+" />+<path d="M118.6872 121.4144+L118.6872 121.7168+" />+<path d="M118.6872 121.7168+L118.7476 121.8378+" />+<path d="M118.7476 121.8378+L118.8081 121.8982+" />+<path d="M118.8081 121.8982+L118.9291 121.9587+" />+<path d="M118.9291 121.9587+L119.1710 121.9587+" />+<path d="M119.1710 121.9587+L119.2919 121.8982+" />+<path d="M119.2919 121.8982+L119.3524 121.8378+" />+<path d="M119.3524 121.8378+L119.4129 121.7168+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 138.1000+L120.3200 138.1000+" />+<path d="M119.9390 137.7190+L120.7010 138.4810+" />+<path d="M120.7010 137.7190+L119.9390 138.4810+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="138.7350"+textLength="2.8037" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">NC</text>+<g class="stroked-text">+<path d="M114.3656 138.6795+L114.3656 137.4095+" />+<path d="M114.3656 137.4095+L115.0913 138.6795+" />+<path d="M115.0913 138.6795+L115.0913 137.4095+" />+<path d="M116.4218 138.5586+L116.3614 138.6191+" />+<path d="M116.3614 138.6191+L116.1799 138.6795+" />+<path d="M116.1799 138.6795+L116.0590 138.6795+" />+<path d="M116.0590 138.6795+L115.8776 138.6191+" />+<path d="M115.8776 138.6191+L115.7566 138.4981+" />+<path d="M115.7566 138.4981+L115.6961 138.3771+" />+<path d="M115.6961 138.3771+L115.6357 138.1352+" />+<path d="M115.6357 138.1352+L115.6357 137.9538+" />+<path d="M115.6357 137.9538+L115.6961 137.7119+" />+<path d="M115.6961 137.7119+L115.7566 137.5910+" />+<path d="M115.7566 137.5910+L115.8776 137.4700+" />+<path d="M115.8776 137.4700+L116.0590 137.4095+" />+<path d="M116.0590 137.4095+L116.1799 137.4095+" />+<path d="M116.1799 137.4095+L116.3614 137.4700+" />+<path d="M116.3614 137.4700+L116.4218 137.5305+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="137.8460"+textLength="2.6222" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">10</text>+<g class="stroked-text">+<path d="M118.8081 137.6825+L118.0824 137.6825+" />+<path d="M118.4452 137.6825+L118.4452 136.4125+" />+<path d="M118.4452 136.4125+L118.3243 136.5940+" />+<path d="M118.3243 136.5940+L118.2033 136.7149+" />+<path d="M118.2033 136.7149+L118.0824 136.7754+" />+<path d="M119.5942 136.4125+L119.7152 136.4125+" />+<path d="M119.7152 136.4125+L119.8361 136.4730+" />+<path d="M119.8361 136.4730+L119.8966 136.5335+" />+<path d="M119.8966 136.5335+L119.9571 136.6544+" />+<path d="M119.9571 136.6544+L120.0176 136.8963+" />+<path d="M120.0176 136.8963+L120.0176 137.1987+" />+<path d="M120.0176 137.1987+L119.9571 137.4406+" />+<path d="M119.9571 137.4406+L119.8966 137.5616+" />+<path d="M119.8966 137.5616+L119.8361 137.6221+" />+<path d="M119.8361 137.6221+L119.7152 137.6825+" />+<path d="M119.7152 137.6825+L119.5942 137.6825+" />+<path d="M119.5942 137.6825+L119.4733 137.6221+" />+<path d="M119.4733 137.6221+L119.4128 137.5616+" />+<path d="M119.4128 137.5616+L119.3523 137.4406+" />+<path d="M119.3523 137.4406+L119.2919 137.1987+" />+<path d="M119.2919 137.1987+L119.2919 136.8963+" />+<path d="M119.2919 136.8963+L119.3523 136.6544+" />+<path d="M119.3523 136.6544+L119.4128 136.5335+" />+<path d="M119.4128 136.5335+L119.4733 136.4730+" />+<path d="M119.4733 136.4730+L119.5942 136.4125+" />+</g></g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="100.0000" y="95.5550"+textLength="2.6223" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">U?</text>+<g class="stroked-text">+<path d="M99.0928 94.2295+L99.0928 95.2576+" />+<path d="M99.0928 95.2576+L99.1533 95.3786+" />+<path d="M99.1533 95.3786+L99.2138 95.4391+" />+<path d="M99.2138 95.4391+L99.3347 95.4995+" />+<path d="M99.3347 95.4995+L99.5766 95.4995+" />+<path d="M99.5766 95.4995+L99.6976 95.4391+" />+<path d="M99.6976 95.4391+L99.7581 95.3786+" />+<path d="M99.7581 95.3786+L99.8185 95.2576+" />+<path d="M99.8185 95.2576+L99.8185 94.2295+" />+<path d="M100.6048 95.3786+L100.6652 95.4391+" />+<path d="M100.6652 95.4391+L100.6048 95.4995+" />+<path d="M100.6048 95.4995+L100.5443 95.4391+" />+<path d="M100.5443 95.4391+L100.6048 95.3786+" />+<path d="M100.6048 95.3786+L100.6048 95.4995+" />+<path d="M100.3629 94.2900+L100.4838 94.2295+" />+<path d="M100.4838 94.2295+L100.7862 94.2295+" />+<path d="M100.7862 94.2295+L100.9071 94.2900+" />+<path d="M100.9071 94.2900+L100.9676 94.4110+" />+<path d="M100.9676 94.4110+L100.9676 94.5319+" />+<path d="M100.9676 94.5319+L100.9071 94.6529+" />+<path d="M100.9071 94.6529+L100.8467 94.7133+" />+<path d="M100.8467 94.7133+L100.7257 94.7738+" />+<path d="M100.7257 94.7738+L100.6652 94.8343+" />+<path d="M100.6652 94.8343+L100.6048 94.9552+" />+<path d="M100.6048 94.9552+L100.6048 95.0157+" />+</g><text x="100.0000" y="142.9250"+textLength="19.7369" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">TMCS1123B1AQDVGR</text>+<g class="stroked-text">+<path d="M90.3541 141.5995+L91.0798 141.5995+" />+<path d="M90.7170 142.8695+L90.7170 141.5995+" />+<path d="M91.5031 142.8695+L91.5031 141.5995+" />+<path d="M91.5031 141.5995+L91.9265 142.5067+" />+<path d="M91.9265 142.5067+L92.3498 141.5995+" />+<path d="M92.3498 141.5995+L92.3498 142.8695+" />+<path d="M93.6802 142.7486+L93.6198 142.8091+" />+<path d="M93.6198 142.8091+L93.4383 142.8695+" />+<path d="M93.4383 142.8695+L93.3174 142.8695+" />+<path d="M93.3174 142.8695+L93.1360 142.8091+" />+<path d="M93.1360 142.8091+L93.0150 142.6881+" />+<path d="M93.0150 142.6881+L92.9545 142.5671+" />+<path d="M92.9545 142.5671+L92.8941 142.3252+" />+<path d="M92.8941 142.3252+L92.8941 142.1438+" />+<path d="M92.8941 142.1438+L92.9545 141.9019+" />+<path d="M92.9545 141.9019+L93.0150 141.7810+" />+<path d="M93.0150 141.7810+L93.1360 141.6600+" />+<path d="M93.1360 141.6600+L93.3174 141.5995+" />+<path d="M93.3174 141.5995+L93.4383 141.5995+" />+<path d="M93.4383 141.5995+L93.6198 141.6600+" />+<path d="M93.6198 141.6600+L93.6802 141.7205+" />+<path d="M94.1641 142.8091+L94.3455 142.8695+" />+<path d="M94.3455 142.8695+L94.6479 142.8695+" />+<path d="M94.6479 142.8695+L94.7688 142.8091+" />+<path d="M94.7688 142.8091+L94.8293 142.7486+" />+<path d="M94.8293 142.7486+L94.8898 142.6276+" />+<path d="M94.8898 142.6276+L94.8898 142.5067+" />+<path d="M94.8898 142.5067+L94.8293 142.3857+" />+<path d="M94.8293 142.3857+L94.7688 142.3252+" />+<path d="M94.7688 142.3252+L94.6479 142.2648+" />+<path d="M94.6479 142.2648+L94.4060 142.2043+" />+<path d="M94.4060 142.2043+L94.2850 142.1438+" />+<path d="M94.2850 142.1438+L94.2245 142.0833+" />+<path d="M94.2245 142.0833+L94.1641 141.9624+" />+<path d="M94.1641 141.9624+L94.1641 141.8414+" />+<path d="M94.1641 141.8414+L94.2245 141.7205+" />+<path d="M94.2245 141.7205+L94.2850 141.6600+" />+<path d="M94.2850 141.6600+L94.4060 141.5995+" />+<path d="M94.4060 141.5995+L94.7083 141.5995+" />+<path d="M94.7083 141.5995+L94.8898 141.6600+" />+<path d="M96.0993 142.8695+L95.3736 142.8695+" />+<path d="M95.7364 142.8695+L95.7364 141.5995+" />+<path d="M95.7364 141.5995+L95.6155 141.7810+" />+<path d="M95.6155 141.7810+L95.4945 141.9019+" />+<path d="M95.4945 141.9019+L95.3736 141.9624+" />+<path d="M97.3088 142.8695+L96.5831 142.8695+" />+<path d="M96.9459 142.8695+L96.9459 141.5995+" />+<path d="M96.9459 141.5995+L96.8250 141.7810+" />+<path d="M96.8250 141.7810+L96.7040 141.9019+" />+<path d="M96.7040 141.9019+L96.5831 141.9624+" />+<path d="M97.7926 141.7205+L97.8530 141.6600+" />+<path d="M97.8530 141.6600+L97.9740 141.5995+" />+<path d="M97.9740 141.5995+L98.2764 141.5995+" />+<path d="M98.2764 141.5995+L98.3973 141.6600+" />+<path d="M98.3973 141.6600+L98.4578 141.7205+" />+<path d="M98.4578 141.7205+L98.5183 141.8414+" />+<path d="M98.5183 141.8414+L98.5183 141.9624+" />+<path d="M98.5183 141.9624+L98.4578 142.1438+" />+<path d="M98.4578 142.1438+L97.7321 142.8695+" />+<path d="M97.7321 142.8695+L98.5183 142.8695+" />+<path d="M98.9416 141.5995+L99.7278 141.5995+" />+<path d="M99.7278 141.5995+L99.3044 142.0833+" />+<path d="M99.3044 142.0833+L99.4859 142.0833+" />+<path d="M99.4859 142.0833+L99.6068 142.1438+" />+<path d="M99.6068 142.1438+L99.6673 142.2043+" />+<path d="M99.6673 142.2043+L99.7278 142.3252+" />+<path d="M99.7278 142.3252+L99.7278 142.6276+" />+<path d="M99.7278 142.6276+L99.6673 142.7486+" />+<path d="M99.6673 142.7486+L99.6068 142.8091+" />+<path d="M99.6068 142.8091+L99.4859 142.8695+" />+<path d="M99.4859 142.8695+L99.1230 142.8695+" />+<path d="M99.1230 142.8695+L99.0021 142.8091+" />+<path d="M99.0021 142.8091+L98.9416 142.7486+" />+<path d="M100.6954 142.2043+L100.8768 142.2648+" />+<path d="M100.8768 142.2648+L100.9373 142.3252+" />+<path d="M100.9373 142.3252+L100.9977 142.4462+" />+<path d="M100.9977 142.4462+L100.9977 142.6276+" />+<path d="M100.9977 142.6276+L100.9373 142.7486+" />+<path d="M100.9373 142.7486+L100.8768 142.8091+" />+<path d="M100.8768 142.8091+L100.7558 142.8695+" />+<path d="M100.7558 142.8695+L100.2720 142.8695+" />+<path d="M100.2720 142.8695+L100.2720 141.5995+" />+<path d="M100.2720 141.5995+L100.6954 141.5995+" />+<path d="M100.6954 141.5995+L100.8163 141.6600+" />+<path d="M100.8163 141.6600+L100.8768 141.7205+" />+<path d="M100.8768 141.7205+L100.9373 141.8414+" />+<path d="M100.9373 141.8414+L100.9373 141.9624+" />+<path d="M100.9373 141.9624+L100.8768 142.0833+" />+<path d="M100.8768 142.0833+L100.8163 142.1438+" />+<path d="M100.8163 142.1438+L100.6954 142.2043+" />+<path d="M100.6954 142.2043+L100.2720 142.2043+" />+<path d="M102.2073 142.8695+L101.4816 142.8695+" />+<path d="M101.8444 142.8695+L101.8444 141.5995+" />+<path d="M101.8444 141.5995+L101.7235 141.7810+" />+<path d="M101.7235 141.7810+L101.6025 141.9019+" />+<path d="M101.6025 141.9019+L101.4816 141.9624+" />+<path d="M102.6911 142.5067+L103.2958 142.5067+" />+<path d="M102.5701 142.8695+L102.9934 141.5995+" />+<path d="M102.9934 141.5995+L103.4168 142.8695+" />+<path d="M104.6868 142.9905+L104.5658 142.9300+" />+<path d="M104.5658 142.9300+L104.4449 142.8091+" />+<path d="M104.4449 142.8091+L104.2635 142.6276+" />+<path d="M104.2635 142.6276+L104.1425 142.5671+" />+<path d="M104.1425 142.5671+L104.0216 142.5671+" />+<path d="M104.0820 142.8695+L103.9611 142.8091+" />+<path d="M103.9611 142.8091+L103.8401 142.6881+" />+<path d="M103.8401 142.6881+L103.7797 142.4462+" />+<path d="M103.7797 142.4462+L103.7797 142.0229+" />+<path d="M103.7797 142.0229+L103.8401 141.7810+" />+<path d="M103.8401 141.7810+L103.9611 141.6600+" />+<path d="M103.9611 141.6600+L104.0820 141.5995+" />+<path d="M104.0820 141.5995+L104.3239 141.5995+" />+<path d="M104.3239 141.5995+L104.4449 141.6600+" />+<path d="M104.4449 141.6600+L104.5658 141.7810+" />+<path d="M104.5658 141.7810+L104.6263 142.0229+" />+<path d="M104.6263 142.0229+L104.6263 142.4462+" />+<path d="M104.6263 142.4462+L104.5658 142.6881+" />+<path d="M104.5658 142.6881+L104.4449 142.8091+" />+<path d="M104.4449 142.8091+L104.3239 142.8695+" />+<path d="M104.3239 142.8695+L104.0820 142.8695+" />+<path d="M105.1706 142.8695+L105.1706 141.5995+" />+<path d="M105.1706 141.5995+L105.4730 141.5995+" />+<path d="M105.4730 141.5995+L105.6544 141.6600+" />+<path d="M105.6544 141.6600+L105.7754 141.7810+" />+<path d="M105.7754 141.7810+L105.8359 141.9019+" />+<path d="M105.8359 141.9019+L105.8963 142.1438+" />+<path d="M105.8963 142.1438+L105.8963 142.3252+" />+<path d="M105.8963 142.3252+L105.8359 142.5671+" />+<path d="M105.8359 142.5671+L105.7754 142.6881+" />+<path d="M105.7754 142.6881+L105.6544 142.8091+" />+<path d="M105.6544 142.8091+L105.4730 142.8695+" />+<path d="M105.4730 142.8695+L105.1706 142.8695+" />+<path d="M106.2592 141.5995+L106.6825 142.8695+" />+<path d="M106.6825 142.8695+L107.1059 141.5995+" />+<path d="M108.1945 141.6600+L108.0735 141.5995+" />+<path d="M108.0735 141.5995+L107.8921 141.5995+" />+<path d="M107.8921 141.5995+L107.7107 141.6600+" />+<path d="M107.7107 141.6600+L107.5897 141.7810+" />+<path d="M107.5897 141.7810+L107.5292 141.9019+" />+<path d="M107.5292 141.9019+L107.4688 142.1438+" />+<path d="M107.4688 142.1438+L107.4688 142.3252+" />+<path d="M107.4688 142.3252+L107.5292 142.5671+" />+<path d="M107.5292 142.5671+L107.5897 142.6881+" />+<path d="M107.5897 142.6881+L107.7107 142.8091+" />+<path d="M107.7107 142.8091+L107.8921 142.8695+" />+<path d="M107.8921 142.8695+L108.0130 142.8695+" />+<path d="M108.0130 142.8695+L108.1945 142.8091+" />+<path d="M108.1945 142.8091+L108.2549 142.7486+" />+<path d="M108.2549 142.7486+L108.2549 142.3252+" />+<path d="M108.2549 142.3252+L108.0130 142.3252+" />+<path d="M109.5249 142.8695+L109.1016 142.2648+" />+<path d="M108.7992 142.8695+L108.7992 141.5995+" />+<path d="M108.7992 141.5995+L109.2830 141.5995+" />+<path d="M109.2830 141.5995+L109.4040 141.6600+" />+<path d="M109.4040 141.6600+L109.4645 141.7205+" />+<path d="M109.4645 141.7205+L109.5249 141.8414+" />+<path d="M109.5249 141.8414+L109.5249 142.0229+" />+<path d="M109.5249 142.0229+L109.4645 142.1438+" />+<path d="M109.4645 142.1438+L109.4040 142.2043+" />+<path d="M109.4040 142.2043+L109.2830 142.2648+" />+<path d="M109.2830 142.2648+L108.7992 142.2648+" />+</g></g> +</svg>+ </div>+ </div>+ <aside>+ <div class="ah"><span class="atitle">Pins <span class="acount">10</span></span><input id="q" placeholder="Filter…"></div>+ <div class="pins" id="pins"></div>+ </aside>+ </main>+ <footer><span class="it"><span class="k">MFR</span><span class="v">Texas Instruments</span></span><span class="it"><span class="k">PKG</span><span class="v">tmcs1123b1aqdvgr</span></span><span class="it"><span class="k">PINS</span><span class="v">10</span></span><span class="it descit"><span class="k">DESC</span><span class="v">Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection…</span></span></footer>+ <div id="tip"></div>+<script>// viewer_core.js — the ONE symbol-viewer engine, compiled into BOTH the live+// adom-symbol app (SymView) AND the standalone embed export. Neither file should+// reimplement pan/zoom or pin-hover; they call into here so they can never drift.+window.AdomSymViewer = (function(){+ var ZOOM_K = 0.0022; // wheel sensitivity (lower = gentler). The feel.+ var MIN_SCALE = 0.05, MAX_SCALE = 60;++ function clampScale(s){ return Math.max(MIN_SCALE, Math.min(s, MAX_SCALE)); }++ // Device-independent wheel zoom: normalize deltaMode + cap one notch, then hand+ // the pointer-anchored factor to the host's zoomAt(cx, cy, factor). This is the+ // exact math the app has always used — the embed now shares it verbatim.+ function attachWheelZoom(el, zoomAt){+ el.addEventListener('wheel', function(e){+ e.preventDefault();+ var d = e.deltaY;+ if(e.deltaMode === 1) d *= 16; // lines -> px+ else if(e.deltaMode === 2) d *= el.clientHeight; // pages -> px+ d = Math.max(-50, Math.min(50, d)); // cap one event's contribution+ var r = el.getBoundingClientRect();+ zoomAt(e.clientX - r.left, e.clientY - r.top, Math.exp(-d * ZOOM_K));+ }, { passive: false });+ }++ // ---- shared pin-hover engine (glyph pairing + hit-box geometry) ----+ function norm(s){ return String(s || '').replace(/[~{}]/g, '').trim(); }++ // Pair each invisible <text opacity="0"> with the visible <g class="stroked-text">+ // glyph that follows it in document order (handles rotated top/bottom pins).+ function glyphLabels(svg){+ var out = [], pending = null;+ if(!svg) return out;+ svg.querySelectorAll('text, g.stroked-text').forEach(function(n){+ if(n.classList && n.classList.contains('stroked-text')){+ if(pending){ var k = norm(pending.textContent); if(k) out.push({ k: k, group: n }); pending = null; }+ } else if(n.getAttribute && n.getAttribute('opacity') === '0'){ pending = n; }+ });+ return out;+ }++ // Build one transparent hit-rect per pin label (number + name), matched to each+ // pin's glyph by proximity to the pin tip (so duplicate names resolve to the+ // right pin). Rects are appended to `svg` in user space so they pan/zoom with it.+ // pins: [{number,name,x,y,angle,length,...}]+ // offset: {x,y} symbol->svg-unit origin (state.offset)+ // NS: the svg namespace+ // cb: { enter(pin,ev), move(ev), leave(), click(pin,ev)? }+ // Returns { textMap } so the host can highlight a pin's glyphs on demand.+ function buildPinHits(svg, pins, offset, NS, cb){+ var textMap = new Map();+ if(!svg || !offset || !pins || !pins.length) return { textMap: textMap };+ cb = cb || {};+ var gl = glyphLabels(svg);+ gl.forEach(function(o){ if(!textMap.has(o.k)) textMap.set(o.k, []); textMap.get(o.k).push(o.group); });+ var labels = [];+ gl.forEach(function(o){ var b; try { b = o.group.getBBox(); } catch(e){ return; }+ if(!b || !b.width) return;+ labels.push({ k: o.k, box: b, cx: b.x + b.width/2, cy: b.y + b.height/2, used: false }); });+ function pick(k, ax, ay){ k = norm(k); var best = null, bd = 1e9;+ labels.forEach(function(l){ if(l.used || l.k !== k) return; var d = Math.hypot(l.cx - ax, l.cy - ay); if(d < bd){ bd = d; best = l; } });+ if(best) best.used = true; return best; }+ function addBox(b, p){+ var pad = 0.45, r = document.createElementNS(NS, 'rect');+ r.setAttribute('class', 'hit');+ r.setAttribute('x', b.x - pad); r.setAttribute('y', b.y - pad);+ r.setAttribute('width', b.width + pad*2); r.setAttribute('height', b.height + pad*2); r.setAttribute('rx', .3);+ r.addEventListener('mouseenter', function(ev){ if(cb.enter) cb.enter(p, ev); });+ r.addEventListener('mousemove', function(ev){ if(cb.move) cb.move(ev); });+ r.addEventListener('mouseleave', function(){ if(cb.leave) cb.leave(); });+ if(cb.click) r.addEventListener('click', function(ev){ cb.click(p, ev); });+ svg.appendChild(r);+ }+ pins.forEach(function(p){+ var tipX = offset.x + p.x, tipY = offset.y - p.y, L = p.length || 2.54, dx = 0, dy = 0;+ if(p.angle === 0) dx = 1; else if(p.angle === 180) dx = -1; else if(p.angle === 90) dy = -1; else if(p.angle === 270) dy = 1;+ var nl = pick(p.number, tipX + dx*L*0.5, tipY + dy*L*0.5 - (dx !== 0 ? 0.9 : 0)); // number: over the wire+ var ml = pick(p.name, tipX + dx*(L+2), tipY + dy*(L+2)); // name: inside the body+ if(nl) addBox(nl.box, p);+ if(ml) addBox(ml.box, p);+ if(!nl && !ml){ // discrete parts: no glyphs+ var ex = tipX + dx*L, ey = tipY + dy*L, HT = 1.0;+ addBox({ x: Math.min(tipX, ex) - (dx === 0 ? HT : 0.3), y: Math.min(tipY, ey) - (dy === 0 ? HT : 0.3),+ width: Math.abs(ex - tipX) + (dx === 0 ? HT*2 : 0.6), height: Math.abs(ey - tipY) + (dy === 0 ? HT*2 : 0.6) }, p);+ }+ });+ return { textMap: textMap };+ }++ return {+ ZOOM_K: ZOOM_K, clampScale: clampScale, attachWheelZoom: attachWheelZoom,+ norm: norm, glyphLabels: glyphLabels, buildPinHits: buildPinHits+ };+})();+</script>+<script>+var PINS=[{"angle":0,"color":"#78909c","desc":"","length":2.54,"name":"IN+","number":"1","type":"Passive","x":-20.32,"y":-2.54},{"angle":0,"color":"#78909c","desc":"","length":2.54,"name":"IN-","number":"2","type":"Passive","x":-20.32,"y":-5.08},{"angle":180,"color":"#ef5350","desc":"","length":2.54,"name":"VS","number":"8","type":"Power Input","x":20.32,"y":-2.54},{"angle":180,"color":"#ef5350","desc":"","length":2.54,"name":"GND","number":"3","type":"Power Input","x":20.32,"y":-5.08},{"angle":180,"color":"#42a5f5","desc":"","length":2.54,"name":"VOUT","number":"6","type":"Output","x":20.32,"y":-12.7},{"angle":180,"color":"#42a5f5","desc":"","length":2.54,"name":"VREF","number":"5","type":"Output","x":20.32,"y":-15.24},{"angle":180,"color":"#66bb6a","desc":"","length":2.54,"name":"VOC","number":"9","type":"Input","x":20.32,"y":-22.86},{"angle":180,"color":"#90a4ae","desc":"","length":2.54,"name":"OC","number":"7","type":"Open Collector","x":20.32,"y":-25.4},{"angle":180,"color":"#90a4ae","desc":"","length":2.54,"name":"ALERT","number":"4","type":"Open Collector","x":20.32,"y":-27.94},{"angle":180,"color":"#90a4ae","desc":"","length":2.54,"name":"NC","number":"10","type":"no_connect","x":20.32,"y":-38.1}], OFF={"x":100,"y":100};+(function(){+ // The symbol svg is the DIRECT child of #vp; querySelector('svg') alone would+ // grab a toolbar button's zoom icon (also broke pan/zoom before this fix).+ var vp=document.getElementById('vp'), svg=vp.querySelector(':scope > svg')||vp.querySelector('svg');+ if(svg){ svg.removeAttribute('width'); svg.removeAttribute('height'); }+ var scale=1,tx=0,ty=0;+ function apply(){ if(svg) svg.style.transform='translate('+tx+'px,'+ty+'px) scale('+scale+')'; }+ // pointer-anchored zoom with the SHARED scale clamp (same limits as the app).+ function zoomAt(cx,cy,f){ var ns=AdomSymViewer.clampScale(scale*f); var r=ns/scale; tx=cx-(cx-tx)*r; ty=cy-(cy-ty)*r; scale=ns; apply(); }+ function fit(){ scale=1;tx=0;ty=0;apply(); }+ // Wheel/trackpad zoom feel comes from the SHARED engine — identical to SymView.+ AdomSymViewer.attachWheelZoom(vp, zoomAt);+ var drag=false,lx=0,ly=0;+ vp.addEventListener('pointerdown',function(e){ if(e.target.closest('.tools'))return; /* let toolbar buttons receive their click */ drag=true;lx=e.clientX;ly=e.clientY;vp.classList.add('grab');vp.setPointerCapture(e.pointerId); });+ vp.addEventListener('pointermove',function(e){ if(!drag)return; tx+=e.clientX-lx;ty+=e.clientY-ly;lx=e.clientX;ly=e.clientY;apply(); });+ vp.addEventListener('pointerup',function(e){ drag=false;vp.classList.remove('grab'); });+ document.getElementById('zin').onclick=function(){ var r=vp.getBoundingClientRect();zoomAt(r.width/2,r.height/2,1.2); };+ document.getElementById('zout').onclick=function(){ var r=vp.getBoundingClientRect();zoomAt(r.width/2,r.height/2,1/1.2); };+ document.getElementById('fit').onclick=fit;+ // pin panel+ var box=document.getElementById('pins');+ function render(filter){+ box.innerHTML='';+ var f=(filter||'').toLowerCase();+ var shown=PINS.filter(function(p){ return !f || (p.name+' '+p.number+' '+p.type).toLowerCase().indexOf(f)>=0; });+ if(!shown.length){ box.innerHTML='<div class="empty">No pins match.</div>'; return; }+ shown.forEach(function(p){+ var el=document.createElement('div'); el.className='pin';+ var col=p.color||'#8b949e';+ el.innerHTML='<div class="row"><span class="num">'+esc(p.number)+'</span>'+ +'<span class="nme">'+esc(p.name)+'</span>'+ +'<span class="ty" style="color:'+col+';border-color:'+col+'66">'+esc(p.type||'')+'</span></div>'+ +(p.desc?'<div class="d">'+esc(p.desc)+'</div>':'');+ el.onclick=function(){ el.classList.toggle('on'); };+ el.addEventListener('mouseenter',function(){ highlightPin(p); });+ el.addEventListener('mouseleave',function(){ clearHL(); });+ box.appendChild(el);+ });+ }+ function esc(s){ return String(s==null?'':s).replace(/[&<>"]/g,function(c){return{'&':'&','<':'<','>':'>','"':'"'}[c];}); }+ document.getElementById('q').addEventListener('input',function(e){ render(e.target.value); });+ render('');++ // ── pin hover: highlight + tooltip on the SVG, parity with the live SymView ──+ var NS='http://www.w3.org/2000/svg';+ var tip=document.getElementById('tip');+ var textMap=new Map();+ function highlightPin(p){+ clearHL();+ [p.name,p.number].forEach(function(k){ var a=textMap.get(AdomSymViewer.norm(k)); if(a) a.forEach(function(g){ g.classList.add('hl'); }); });+ var m=document.getElementById('pinmark');+ if(m && OFF){ m.setAttribute('cx',OFF.x+p.x); m.setAttribute('cy',OFF.y-p.y); m.setAttribute('r',0.7); m.style.opacity='1'; }+ }+ function clearHL(){+ if(svg) svg.querySelectorAll('.hl').forEach(function(e){ e.classList.remove('hl'); });+ var m=document.getElementById('pinmark'); if(m) m.style.opacity='0';+ }+ function showTip(p,x,y){+ var col=p.color||'#8b949e';+ var h='<div class="r1"><span class="nm">'+esc(p.name||'(unnamed)')+'</span><span class="pn">Pin '+esc(p.number)+'</span></div>';+ if(p.type) h+='<span class="badge" style="background:'+col+'22;color:'+col+';border:1px solid '+col+'44">'+esc(p.type)+'</span>';+ if(p.desc) h+='<div class="desc">'+esc(p.desc)+'</div>';+ tip.innerHTML=h; tip.classList.add('show'); posTip(x,y);+ }+ function posTip(x,y){+ var w=tip.offsetWidth||260, hh=tip.offsetHeight||110, tx=x+14, ty=y+14;+ if(tx+w>innerWidth-14) tx=x-w-14;+ if(ty+hh>innerHeight-14) ty=y-hh-14;+ tip.style.left=Math.max(8,tx)+'px'; tip.style.top=Math.max(8,ty)+'px';+ }+ function hideTip(){ tip.classList.remove('show'); clearHL(); }+ // Build the pin hit-zones with the SHARED engine — the exact glyph-pairing ++ // hit-box code the app's SymView uses. The embed only supplies the tooltip.+ if(svg && OFF){+ if(!document.getElementById('pinmark')){ var pm=document.createElementNS(NS,'circle'); pm.id='pinmark'; svg.appendChild(pm); }+ var hideT=null;+ var hits=AdomSymViewer.buildPinHits(svg, PINS, OFF, NS, {+ enter:function(p,ev){ clearTimeout(hideT); showTip(p,ev.clientX,ev.clientY); highlightPin(p); },+ move:function(ev){ if(tip.classList.contains('show')) posTip(ev.clientX,ev.clientY); },+ leave:function(){ clearTimeout(hideT); hideT=setTimeout(hideTip,45); }+ });+ textMap=hits.textMap;+ }++ apply();+})();++// ── app-info header popover: interactive hover you can move into (600ms show,+// 220ms hide-grace) so the wiki link stays reachable. Per adom-app-header.md. ──+(function(){+ var SHOW_DELAY=600, HIDE_GRACE=220;+ document.querySelectorAll('header [data-tooltip-target]').forEach(function(trigger){+ var target=document.getElementById(trigger.dataset.tooltipTarget);+ if(!target) return;+ var showTimer=null, hideTimer=null;+ function show(){ clearTimeout(hideTimer); if(target.classList.contains('show')) return; clearTimeout(showTimer); showTimer=setTimeout(function(){ target.classList.add('show'); }, SHOW_DELAY); }+ function queueHide(){ clearTimeout(showTimer); clearTimeout(hideTimer); hideTimer=setTimeout(function(){ target.classList.remove('show'); }, HIDE_GRACE); }+ trigger.addEventListener('mouseenter',show); trigger.addEventListener('mouseleave',queueHide);+ trigger.addEventListener('focus',show); trigger.addEventListener('blur',queueHide);+ target.addEventListener('mouseenter',show); target.addEventListener('mouseleave',queueHide);+ trigger.addEventListener('click',function(e){ clearTimeout(showTimer); target.classList.toggle('show'); e.stopPropagation(); });+ document.addEventListener('click',function(e){ if(!target.contains(e.target) && !trigger.contains(e.target)) target.classList.remove('show'); });+ });+})();+</script>+</body></html>