← Commit history
CR0402-FX-4701GLF-plain.kicad_symadded+110
@@ -0,0 +1,110 @@+(kicad_symbol_lib+	(version 20231120)+	(generator "adom")+	(symbol "CR0402-FX-4701GLF-plain"+		(pin_numbers+			(hide yes)+		)+		(pin_names+			(offset 0)+			(hide yes)+		)+		(exclude_from_sim no)+		(in_bom yes)+		(on_board yes)+		(property "Reference" "R"+			(at 0 5.08 0)+			(effects+				(font+					(size 1.27 1.27)+				)+			)+		)+		(property "Value" "CR0402-FX-4701GLF"+			(at 0 -5.08 0)+			(effects+				(font+					(size 1.27 1.27)+				)+			)+		)+		(property "Footprint" ""+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "Datasheet" "~"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "Description" "Resistor"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(symbol "CR0402-FX-4701GLF-plain_0_1"+			(rectangle+				(start -1.016 -2.54)+				(end 1.016 2.54)+				(stroke+					(width 0.254)+					(type default)+				)+				(fill+					(type none)+				)+			)+		)+		(symbol "CR0402-FX-4701GLF-plain_1_1"+			(pin passive line+				(at 0 3.81 270)+				(length 1.27)+				(name "~"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+				(number "1"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+			)+			(pin passive line+				(at 0 -3.81 90)+				(length 1.27)+				(name "~"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+				(number "2"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+			)+		)+	)+)
CR0402-FX-4701GLF-symview.html+2404−1121
@@ -1,373 +1,141 @@-<!DOCTYPE html>-<html lang="en">-<head>-<meta charset="UTF-8">-<meta name="viewport" content="width=device-width, initial-scale=1.0">-<title>CR0402-FX-4701GLF</title>+<!doctype html><html><head><meta charset="utf-8">+<title>CR0402-FX-4701GLF - adom-symbol</title>+<meta name="viewport" content="width=device-width,initial-scale=1"> <style>-  * { margin: 0; padding: 0; box-sizing: border-box; }-  body {-    background: #0d1117;-    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;-    overflow: hidden;-    height: 100vh;-    display: flex;-    flex-direction: column;-    color: #e6edf3;-  }--  /* ── Top toolbar ── */-  .toolbar {-    display: flex;-    align-items: center;-    gap: 6px;-    padding: 8px 14px;-    background: #161b22;-    border-bottom: 1px solid #21262d;-    flex-shrink: 0;-    font-size: 13px;-  }-  .toolbar .title {-    font-weight: 600;-    color: #00b8b0;-    font-size: 15px;-    letter-spacing: 0.02em;-  }-  .toolbar .spacer { flex: 1; }-  .toolbar .sep {-    width: 1px;-    height: 22px;-    background: #21262d;-    margin: 0 4px;-    flex-shrink: 0;-  }-  .toolbar .btn-group {-    display: flex;-    align-items: center;-    gap: 2px;-    flex-shrink: 0;-  }-  .toolbar button {-    background: rgba(0, 184, 176, 0.12);-    border: 1px solid rgba(0, 184, 176, 0.25);-    border-radius: 4px;-    padding: 4px 10px;-    cursor: pointer;-    font-size: 12px;-    color: #8b949e;-    transition: all 0.15s;-  }-  .toolbar button:hover { background: rgba(0,184,176,0.18); color: #e6edf3; border-color: rgba(0,184,176,0.4); }-  .toolbar button:active { background: rgba(0,184,176,0.28); }-  .toolbar button.active { background: rgba(0,184,176,0.2); color: #00b8b0; border-color: rgba(0,184,176,0.4); }-  .toolbar .zoom-level {-    font-size: 11px;-    color: #8b949e;-    min-width: 44px;-    text-align: center;-    font-variant-numeric: tabular-nums;-  }--  /* ── Canvas (dark background) ── */-  .canvas-wrap {-    flex: 1;-    overflow: hidden;-    position: relative;-    cursor: grab;-    background-color: #0d1117;-    background-image:-      radial-gradient(ellipse at 50% 50%, rgba(0,184,176,0.03) 0%, transparent 70%),-      linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),-      linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);-    background-size: 100% 100%, 20px 20px, 20px 20px;-  }-  .canvas-wrap.dragging { cursor: grabbing; }-  .canvas-wrap.no-grid {-    background-image: radial-gradient(ellipse at 50% 50%, rgba(0,184,176,0.03) 0%, transparent 70%);-    background-size: 100% 100%;-  }--  .canvas {-    position: absolute;-    transform-origin: 0 0;-  }-  .canvas svg { display: block; }--  /* ── Tooltip ── */-  .tooltip {-    display: none;-    position: fixed;-    background: #21262d;-    backdrop-filter: blur(16px);-    -webkit-backdrop-filter: blur(16px);-    color: #e6edf3;-    padding: 10px 14px;-    border-radius: 10px;-    border: 1px solid rgba(0, 184, 176, 0.25);-    font-size: 12px;-    line-height: 1.6;-    pointer-events: none;-    user-select: none;-    z-index: 100;-    max-width: 300px;-    box-shadow: 0 8px 24px rgba(0,0,0,0.4);-    transition: border-color 0.15s;-  }-  .tooltip.visible { display: block; }-  .tooltip.sticky {-    pointer-events: auto;-    user-select: text;-    border-color: #00e6dc;-    box-shadow: 0 8px 32px rgba(0,184,176,0.15), 0 8px 24px rgba(0,0,0,0.4);-  }-  .tooltip .tt-name { font-weight: 700; font-size: 15px; color: #00e6dc; }-  .tooltip .tt-pin { color: #8b949e; font-size: 11px; margin-left: 4px; }-  .tooltip .tt-type {-    display: inline-block;-    margin-top: 4px;-    padding: 2px 8px;-    border-radius: 4px;-    font-size: 11px;-    font-weight: 500;-  }-  .tooltip .tt-desc {-    margin-top: 6px;-    padding-top: 6px;-    border-top: 1px solid #21262d;-    color: #8b949e;-    font-size: 11px;-    line-height: 1.5;-  }-  .tooltip .tt-source {-    margin-top: 6px;-    padding-top: 6px;-    border-top: 1px solid #21262d;-    font-size: 10px;-    color: #484f58;-  }-  .tooltip .tt-source a { color: #00b8b0; text-decoration: none; }-  .tooltip .tt-source a:hover { text-decoration: underline; }-  .tooltip .tt-source-label { color: #E6B450; font-weight: 600; }-  .tooltip .tt-hint {-    margin-top: 6px;-    font-size: 9px;-    color: #484f58;-    font-style: italic;-  }-  .tooltip .tt-group-name { font-weight: 700; font-size: 14px; color: #E6B450; }-  .tooltip .tt-group-badge {-    display: inline-block;-    margin-top: 4px;-    padding: 2px 8px;-    border-radius: 4px;-    font-size: 11px;-    font-weight: 500;-    background: rgba(230,180,80,0.15);-    color: #FFD180;-    border: 1px solid rgba(230,180,80,0.3);-  }--  /* ── Wiki edit button ── */-  .edit-btn {-    position: absolute; top: 10px; right: 10px; z-index: 100;-    display: flex; align-items: center; gap: 6px;-    padding: 5px 10px;-    background: rgba(22,27,34,0.75);-    backdrop-filter: blur(8px);-    border: 1px solid rgba(230,180,80,0.2);-    border-radius: 6px;-    color: #8b949e; font-size: 11px;-    cursor: pointer; text-decoration: none;-    transition: all 0.2s; opacity: 0.7;-  }-  .edit-btn:hover {-    opacity: 1;-    background: rgba(230,180,80,0.12);-    border-color: rgba(230,180,80,0.4);-    color: #FFD180;-  }-  .edit-btn svg { width: 12px; height: 12px; }--  /* Regen prompt modal */-  .regen-overlay {-    display: none;-    position: fixed; inset: 0;-    background: rgba(0,0,0,0.6);-    z-index: 2000;-    align-items: center; justify-content: center;-  }-  .regen-overlay.visible { display: flex; }-  .regen-modal {-    background: undefined;-    border: 1px solid undefined;-    border-radius: 10px;-    padding: 20px 24px;-    max-width: 520px;-    width: 90%;-    box-shadow: 0 12px 40px rgba(0,0,0,0.5);-  }-  .regen-modal h3 {-    margin: 0 0 12px;-    font-size: 14px;-    font-weight: 600;-    color: undefined;-  }-  .regen-modal .prompt-text {-    background: undefined;-    border: 1px solid undefined;-    border-radius: 6px;-    padding: 12px 14px;-    font-size: 13px;-    line-height: 1.5;-    color: undefined;-    white-space: pre-wrap;-    word-break: break-word;-    user-select: all;-  }-  .regen-modal .modal-footer {-    display: flex;-    align-items: center;-    justify-content: space-between;-    margin-top: 14px;-  }-  .regen-modal .copy-status {-    font-size: 11px;-    color: undefined;-  }-  .regen-modal .copy-status.copied { color: undefined; }-  .regen-modal .modal-btns { display: flex; gap: 8px; }-  .regen-modal .modal-btns button {-    padding: 6px 14px;-    border-radius: 6px;-    border: 1px solid undefined;-    background: undefined;-    color: undefined;-    font-size: 12px;-    cursor: pointer;-  }-  .regen-modal .modal-btns button:hover { background: rgba(255,255,255,0.06); }-  .regen-modal .modal-btns .copy-btn {-    background: rgba(0,230,220,0.12);-    border-color: rgba(0,230,220,0.3);-    color: undefined;-  }-  .regen-modal .modal-btns .copy-btn:hover { background: rgba(0,230,220,0.22); }--  /* Pin highlight on hover */-  .canvas svg .pin-highlight path, .canvas svg path.pin-highlight { stroke: #00e6dc !important; }-  .canvas svg .group-highlight path { stroke: #FFD180 !important; }--  /* Discrete pin label highlight (injected <text> elements) */-  .canvas svg text.pin-label-highlight { fill: #00e6dc !important; }-  .canvas svg text.pin-num-highlight { fill: #00e6dc !important; }--  /* Discrete pin hit zone outline (visible on hover) */-  .canvas svg rect.pin-hit-zone { fill: rgba(0,230,220,0.06); stroke: #00e6dc; stroke-width: 0.12; stroke-dasharray: 0.3,0.2; stroke-opacity: 0.5; pointer-events: all; cursor: pointer; rx: 0.3; }-  .canvas svg rect.pin-hit-zone:hover { fill: rgba(0,230,220,0.12); stroke-opacity: 0.8; stroke-width: 0.15; }--  /* ── Bottom panel ── */-  .bottom-panel {-    background: #161b22;-    border-top: 1px solid #21262d;-    flex-shrink: 0;-  }-  .info-row {-    display: flex;-    align-items: baseline;-    flex-wrap: wrap;-    gap: 1px 0;-    padding: 5px 8px;-    font-size: 10px;-  }-  .info-item {-    display: inline-flex;-    align-items: baseline;-    gap: 5px;-    padding: 1px 0;-    margin-right: 8px;-  }-  .info-item::after {-    content: '';-    display: inline-block;-    width: 1px;-    height: 10px;-    background: #21262d;-    margin-left: 8px;-    vertical-align: middle;-  }-  .info-item:last-child::after { display: none; }-  .info-item:last-child { margin-right: 0; }-  .info-label {-    color: #484f58;-    text-transform: uppercase;-    letter-spacing: 0.04em;-    font-size: 9px;-  }-  .info-value { color: #8b949e; }-  .info-value a { color: #00b8b0; text-decoration: none; }-  .info-value a:hover { text-decoration: underline; }-  .info-divider { height: 1px; background: #21262d; margin: 0 8px; }-  .coord-row {-    display: flex;-    align-items: center;-    justify-content: space-between;-    padding: 4px 8px;-    font-size: 10px;-    color: #8b949e;-    font-variant-numeric: tabular-nums;-  }-</style>-</head>+@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>--<div class="toolbar">-  <span class="title">CR0402-FX-4701GLF</span>-  <div class="spacer"></div>-  <div class="btn-group">-    <button onclick="zoomOut()">&#x2212;</button>-    <span class="zoom-level" id="zoom-level">100%</span>-    <button onclick="zoomIn()">&#x2b;</button>-  </div>-  <div class="sep"></div>-  <button onclick="zoomFit()">Fit</button>-  <button onclick="zoomReset()">1:1</button>-  <button onclick="toggleGrid()" id="grid-btn" class="active">Grid</button>-  <button onclick="toggleBBox()" id="bbox-btn" class="active">BBox</button>-  <button onclick="toggleHits()" id="hits-btn">Hits</button>-  <div class="sep"></div>-  <button onclick="showRegenPrompt()" title="Show regeneration prompt to paste into Claude Code">Regen</button>-</div>--<div class="regen-overlay" id="regen-overlay" onclick="if(event.target===this)closeRegenPrompt()">-  <div class="regen-modal">-    <h3>Regeneration Prompt</h3>-    <div class="prompt-text" id="regen-prompt-text"></div>-    <div class="modal-footer">-      <span class="copy-status" id="regen-copy-status">Copied to clipboard</span>-      <div class="modal-btns">-        <button onclick="closeRegenPrompt()">Close</button>-        <button class="copy-btn" onclick="copyRegenText()">Copy</button>+  <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">CR0402-FX-4701GLF</span>+      <span class="subject-meta"><span class="sep">·</span><span>2 pins</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">Bourns</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>-  </div>-</div>--<div class="canvas-wrap" id="canvas-wrap">-  <a class="edit-btn" href="https://coder.john-service-wiki-a054078430ce38e4.containers.adom.inc/proxy/8785/wiki/components/cr0402-fx-4701glf/edit?field=content" target="_blank" title="Suggest corrections to this symbol on the Adom Wiki">-    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">-      <path d="M11.5 1.5l3 3L5 14H2v-3L11.5 1.5z"/>-      <path d="M9.5 3.5l3 3"/>-    </svg>-    Suggest edit-  </a>-  <div class="canvas" id="canvas">-    <svg+  </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="5.0292mm" height="10.0584mm" viewBox="-4.7567 -4.0808 12.6320 18.2200">+  width="21.502mm" height="21.160mm" viewBox="85.4981 89.4200 21.5019 21.1600">  <defs>   <linearGradient id="adom-body-grad" x1="0" y1="0" x2="0" y2="1">@@ -375,834 +143,2349 @@     <stop offset="100%" stop-color="#141c27"/>   </linearGradient> </defs>--<style>+<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;   }--  /* Hidden text elements (used for hit detection) */   text[opacity="0"] {     fill: #ffffff !important;   }--  /* Pin highlight state (toggled by JS) */   .pin-highlight path {     stroke: #00e6dc !important;   }   .pin-highlight g.stroked-text path {     stroke: #00e6dc !important;   }--  /* Group label highlight */   .group-highlight g.stroked-text path {     stroke: #FFD180 !important;   }-</style>+]]></style>+<defs>+  <radialGradient id="adom-canvas-glow" cx="96.24905" cy="100" r="15.051329999999998" 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="85.4981" y="89.42" width="21.5019" height="21.16" fill="#0d1117"/>+<rect x="85.4981" y="89.42" width="21.5019" height="21.16" fill="url(#adom-canvas-grid)"/>+<rect x="85.4981" y="89.42" width="21.5019" height="21.16" fill="url(#adom-canvas-glow)"/> -  <desc>Image generated by Eeschema-SVG </desc>+   <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; -stroke:#4a5568; stroke-width:0.2540; stroke-opacity:1; +<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.543300" y="2.489200" width="2.032000" height="5.080000" rx="0.000000" />+<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;">-<path d="M1.5593 2.4892-L1.5593 1.2192-" />-<path d="M1.5593 7.5692-L1.5593 8.8392-" />++++++++++<g class="stroked-text">+++++ </g>-<g style="fill:none; -stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; -stroke-linecap:round; stroke-linejoin:round;">-<g transform="rotate(-90.000000 3.5913 5.0292)">+<g class="stroked-text">+++++++++  </g>-<g transform="rotate(-90.000000 1.5593 5.0292)">+<g class="stroked-text">++++++++++++  </g>-</g> -<text x="1.559" y="0.219" font-size="1.1" font-family="sans-serif" fill="#ffffff" text-anchor="middle" class="pin-num-label">1</text>-<text x="1.559" y="10.939" font-size="1.1" font-family="sans-serif" fill="#ffffff" text-anchor="middle" class="pin-num-label">2</text>-<rect x="-4.4567" y="-3.7807999999999997" width="12.032" height="17.619999999999997" fill="none" stroke="#00e6dc" stroke-width="0.1" stroke-dasharray="0.3,0.3" opacity="0.4" class="debug-bbox"/></svg>-  </div>-</div>--<div class="tooltip" id="tooltip"></div>--<div class="bottom-panel">-  <div class="info-row">-    <div class="info-item"><span class="info-label">Pins</span><span class="info-value">2</span></div><div class="info-item"><span class="info-label">Datasheet</span><span class="info-value"><a href="~" target="_blank">PDF</a></span></div><div class="info-item"><span class="info-label">Desc</span><span class="info-value">Resistor</span></div>-  </div>-  <div class="info-divider"></div>-  <div class="coord-row">-    <span id="cursor-pos">X: 0.00 &nbsp; Y: 0.00 mm</span>-    <span style="margin-left:auto;color:#00b8b0;font-weight:600;font-size:12px">SymView</span>-  </div>-</div>+<g class="stroked-text"> -<script>-  const pins = [{"name":"1","number":"1","type":"Passive","electricalType":"passive","color":"#78909c","desc":"","x":0,"y":3.81,"angle":270,"length":1.27},{"name":"2","number":"2","type":"Passive","electricalType":"passive","color":"#78909c","desc":"","x":0,"y":-3.81,"angle":90,"length":1.27}];-  const groups = [];-  const svgW = 12.632;-  const svgH = 18.22;-  const contentBounds = {"x":-4.4567,"y":-3.7807999999999997,"w":12.032,"h":17.619999999999997};-  const svgOffset = {"x":1.5593,"y":5.0292};-  const hidePinNames = true;-  const hidePinNumbers = true;-  const datasheetUrl = "~";-  const mfrName = "";-  const _symbolName = "CR0402-FX-4701GLF";-  const _symPath = "/home/adom/project/project-content/schematics/symbols/CR0402-FX-4701GLF/CR0402-FX-4701GLF.kicad_sym";--  const wrap = document.getElementById('canvas-wrap');-  const canvas = document.getElementById('canvas');-  const tooltip = document.getElementById('tooltip');-  const zoomLabel = document.getElementById('zoom-level');-  const cursorPos = document.getElementById('cursor-pos');--  let scale = 1, panX = 0, panY = 0;-  let isDragging = false;-  let dragStartX, dragStartY, panStartX, panStartY;-  let gridVisible = true;-  let stickyPin = null; // currently pinned tooltip--  const MM_TO_PX = 3.78;-  const svgPxW = svgW * MM_TO_PX;-  const svgPxH = svgH * MM_TO_PX;--  const svgEl = canvas.querySelector('svg');-  if (svgEl) {-    svgEl.setAttribute('width', svgPxW + 'px');-    svgEl.setAttribute('height', svgPxH + 'px');-  } -  function updateTransform() {-    canvas.style.transform = 'translate(' + panX + 'px,' + panY + 'px) scale(' + scale + ')';-    zoomLabel.textContent = Math.round(scale * 100) + '%';-  } -  function zoomFit() {-    const ww = wrap.clientWidth, wh = wrap.clientHeight;-    const pad = 40;-    // Read the bbox rect directly from the SVG DOM — it's already positioned correctly-    const bboxRect = svgEl ? svgEl.querySelector('.debug-bbox') : null;-    if (bboxRect) {-      const bb = bboxRect.getBBox();-      const vb = svgEl.viewBox.baseVal;-      // Convert SVG user-space coords to pixel coords within the SVG element-      const pxPerUnitX = svgPxW / vb.width;-      const pxPerUnitY = svgPxH / vb.height;-      const pxX = (bb.x - vb.x) * pxPerUnitX;-      const pxY = (bb.y - vb.y) * pxPerUnitY;-      const pxW = bb.width * pxPerUnitX;-      const pxH = bb.height * pxPerUnitY;-      scale = Math.min((ww - pad * 2) / pxW, (wh - pad * 2) / pxH, 10);-      if (!isFinite(scale) || scale <= 0) scale = 1;-      panX = (ww - pxW * scale) / 2 - pxX * scale;-      panY = (wh - pxH * scale) / 2 - pxY * scale;-    } else {-      scale = Math.min((ww - pad * 2) / svgPxW, (wh - pad * 2) / svgPxH, 10);-      if (!isFinite(scale) || scale <= 0) scale = 1;-      panX = (ww - svgPxW * scale) / 2;-      panY = (wh - svgPxH * scale) / 2;-    }-    updateTransform();-  }+</g>+<g class="stroked-text"> -  function zoomReset() {-    scale = 1;-    panX = (wrap.clientWidth - svgPxW) / 2;-    panY = (wrap.clientHeight - svgPxH) / 2;-    updateTransform();-  } -  function zoomIn() { zoomAt(wrap.clientWidth / 2, wrap.clientHeight / 2, 1.25); }-  function zoomOut() { zoomAt(wrap.clientWidth / 2, wrap.clientHeight / 2, 0.8); } -  function zoomAt(cx, cy, factor) {-    const ns = Math.max(0.1, Math.min(scale * factor, 20));-    const r = ns / scale;-    panX = cx - (cx - panX) * r;-    panY = cy - (cy - panY) * r;-    scale = ns;-    updateTransform();-  } -  function toggleGrid() {-    gridVisible = !gridVisible;-    wrap.classList.toggle('no-grid', !gridVisible);-    document.getElementById('grid-btn').classList.toggle('active', gridVisible);-  } -  let bboxVisible = true;-  function toggleBBox() {-    bboxVisible = !bboxVisible;-    const el = svgEl && svgEl.querySelector('.debug-bbox');-    if (el) el.setAttribute('opacity', bboxVisible ? '0.4' : '0');-    document.getElementById('bbox-btn').classList.toggle('active', bboxVisible);-  } -  let hitsVisible = false;-  function toggleHits() {-    hitsVisible = !hitsVisible;-    if (svgEl) {-      svgEl.querySelectorAll('.pin-hit-zone').forEach(r => {-        r.style.visibility = hitsVisible ? '' : 'hidden';-      });-    }-    document.getElementById('hits-btn').classList.toggle('active', hitsVisible);-  } -  // ── Regen prompt modal ──-  let _regenPrompt = '';-  function buildRegenPrompt() {-    const folder = _symPath.substring(0, _symPath.lastIndexOf('/'));-    return 'Regenerate the SymView for ' + _symbolName + '.\n\n'-      + 'Symbol: ' + _symPath + '\n'-      + 'Metadata: ' + folder + '/' + _symbolName + '-metadata.json\n\n'-      + 'Re-export the SVG via the KiCad service, regenerate the SymView HTML at the same path, '-      + 'and re-display it in the Adom app.';-  }-  function showRegenPrompt() {-    _regenPrompt = buildRegenPrompt();-    document.getElementById('regen-prompt-text').textContent = _regenPrompt;-    document.getElementById('regen-overlay').classList.add('visible');-    const status = document.getElementById('regen-copy-status');-    navigator.clipboard.writeText(_regenPrompt).then(() => {-      status.textContent = 'Copied to clipboard';-      status.classList.add('copied');-    }).catch(() => {-      status.textContent = 'Click Copy to copy';-      status.classList.remove('copied');-    });-  }-  function closeRegenPrompt() {-    document.getElementById('regen-overlay').classList.remove('visible');-  }-  function copyRegenText() {-    navigator.clipboard.writeText(_regenPrompt).then(() => {-      const status = document.getElementById('regen-copy-status');-      status.textContent = 'Copied to clipboard';-      status.classList.add('copied');-    });-  } -  // Mouse wheel zoom-  wrap.addEventListener('wheel', (e) => {-    e.preventDefault();-    const r = wrap.getBoundingClientRect();-    zoomAt(e.clientX - r.left, e.clientY - r.top, e.deltaY < 0 ? 1.12 : 0.89);-  }, { passive: false });--  // Pan-  wrap.addEventListener('mousedown', (e) => {-    if (e.button !== 0) return;-    isDragging = true;-    dragStartX = e.clientX; dragStartY = e.clientY;-    panStartX = panX; panStartY = panY;-    wrap.classList.add('dragging');-  });-  window.addEventListener('mousemove', (e) => {-    const r = wrap.getBoundingClientRect();-    const mx = (e.clientX - r.left - panX) / scale / MM_TO_PX;-    const my = (e.clientY - r.top - panY) / scale / MM_TO_PX;-    cursorPos.innerHTML = 'X: ' + mx.toFixed(2) + ' &nbsp; Y: ' + my.toFixed(2) + ' mm';-    if (!isDragging) return;-    panX = panStartX + (e.clientX - dragStartX);-    panY = panStartY + (e.clientY - dragStartY);-    updateTransform();-  });-  window.addEventListener('mouseup', () => { isDragging = false; wrap.classList.remove('dragging'); });--  // ── Pin highlighting ──-  const pinTextGroups = new Map();-  const pinWireGroups = new Map();-  if (svgEl) {-    // Build text group lookup-    svgEl.querySelectorAll('g.stroked-text').forEach(g => {-      const desc = g.querySelector('desc');-      if (desc) pinTextGroups.set(desc.textContent.trim(), g);-    }); -    // Build wire group lookup using coordinate matching (not sibling navigation)-    if (svgOffset) {-      const ox = svgOffset.x, oy = svgOffset.y;-      // Collect all simple 2-point line paths in the SVG-      const allPaths = svgEl.querySelectorAll('path');-      const wirePaths = [];-      allPaths.forEach(p => {-        const d = p.getAttribute('d');-        if (!d) return;-        const m = d.match(/^M([\d.]+)\s+([\d.]+)\s+L([\d.]+)\s+([\d.]+)\s*$/);-        if (m) wirePaths.push({ el: p, x1: parseFloat(m[1]), y1: parseFloat(m[2]), x2: parseFloat(m[3]), y2: parseFloat(m[4]) });-      });--      for (const pin of pins) {-        const tipX = ox + pin.x;-        const tipY = oy - pin.y;-        const wireLen = pin.length || 2.54;-        const isHoriz = (pin.angle === 0 || pin.angle === 180);--        for (const w of wirePaths) {-          const dx = Math.abs(w.x2 - w.x1), dy = Math.abs(w.y2 - w.y1);-          const len = Math.sqrt(dx * dx + dy * dy);-          if (Math.abs(len - wireLen) > 0.05) continue;-          if (isHoriz && dy > 0.01) continue;-          if (!isHoriz && dx > 0.01) continue;-          // Check if one endpoint is near the pin tip-          const d1 = Math.hypot(w.x1 - tipX, w.y1 - tipY);-          const d2 = Math.hypot(w.x2 - tipX, w.y2 - tipY);-          if (Math.min(d1, d2) < 0.1) {-            // Found the wire path element directly-            pinWireGroups.set(pin.name, w.el);-            break;-          }-        }-      }-    }-  } -  /* lbr-hover-bus v1 */ window.addEventListener('message',function(e){var d=e.data||{};if(d.type!=='lbr-hover')return;window.__lbrBus=true;try{if(d.pin==null)clearHighlight();else{var p=(typeof pins!=='undefined'?pins:[]).find(function(x){return String(x.number)===String(d.pin)});if(p)highlightPin(p);else clearHighlight();}}finally{window.__lbrBus=false;}});-  function highlightPin(pin) {-    if(!window.__lbrBus)try{parent.postMessage({type:'lbr-hover',pin:String(pin.number)},'*')}catch(_){}-    -    clearHighlight();-    // IC symbols: stroked-text groups-    [pin.name, pin.number].forEach(label => {-      const g = pinTextGroups.get(label);-      if (g) g.classList.add('pin-highlight');-    });-    const wireG = pinWireGroups.get(pin.name);-    if (wireG) wireG.classList.add('pin-highlight');-    // Discrete symbols: injected <text> labels-    if (svgEl && hidePinNames) {-      svgEl.querySelectorAll('text.pin-label').forEach(t => {-        if (t.textContent.trim() === pin.name) t.classList.add('pin-label-highlight');-      });-      svgEl.querySelectorAll('text.pin-num-label').forEach(t => {-        if (t.textContent.trim() === pin.number) t.classList.add('pin-num-highlight');-      });-    }-  }-  function clearHighlight() {-    if (svgEl) {-      svgEl.querySelectorAll('.pin-highlight').forEach(g => g.classList.remove('pin-highlight'));-      svgEl.querySelectorAll('.group-highlight').forEach(g => g.classList.remove('group-highlight'));-      svgEl.querySelectorAll('.pin-label-highlight').forEach(t => t.classList.remove('pin-label-highlight'));-      svgEl.querySelectorAll('.pin-num-highlight').forEach(t => t.classList.remove('pin-num-highlight'));-    }-  } -  // ── Tooltip positioning ──-  function positionTooltip(x, y) {-    const tw = tooltip.offsetWidth || 280;-    const th = tooltip.offsetHeight || 120;-    let tx = x + 14;-    let ty = y + 14;-    if (tx + tw > window.innerWidth - 14) tx = x - tw - 14;-    if (ty + th > window.innerHeight - 14) ty = y - th - 14;-    tx = Math.max(14, tx);-    ty = Math.max(14, ty);-    tooltip.style.left = tx + 'px';-    tooltip.style.top = ty + 'px';-  } -  // ── Source attribution HTML ──-  function sourceHtml() {-    if (!datasheetUrl || !mfrName) return '';-    return '<div class="tt-source"><span class="tt-source-label">Source:</span> <a href="' + datasheetUrl + '" target="_blank">' + mfrName + ' Datasheet</a></div>';-  } -  function hintHtml() {-    return '<div class="tt-hint">click to pin &middot; select text</div>';-  } -  function showTooltip(x, y, pin) {-    if (stickyPin) return; // don't override sticky-    highlightPin(pin);-    let html = '<div><span class="tt-name">' + pin.name + '</span><span class="tt-pin">Pin ' + pin.number + '</span></div>' +-      '<div><span class="tt-type" style="background:' + pin.color + '22; color:' + pin.color + '; border:1px solid ' + pin.color + '44">' + pin.type + '</span></div>';-    if (pin.desc) html += '<div class="tt-desc">' + pin.desc + '</div>';-    html += sourceHtml();-    html += hintHtml();-    tooltip.innerHTML = html;-    tooltip.classList.add('visible');-    tooltip.classList.remove('sticky');-    positionTooltip(x, y);-  } -  function showGroupTooltip(x, y, group) {-    if (stickyPin) return;-    clearHighlight();-    const g = pinTextGroups.get(group.name);-    if (g) g.classList.add('group-highlight');-    let html = '<div><span class="tt-group-name">' + group.name + '</span></div>' +-      '<div><span class="tt-group-badge">Function Group</span></div>';-    if (group.desc) html += '<div class="tt-desc">' + group.desc + '</div>';-    tooltip.innerHTML = html;-    tooltip.classList.add('visible');-    tooltip.classList.remove('sticky');-    positionTooltip(x, y);-  }+</g>+<g class="stroked-text"> -  function hideTooltip() { if(!window.__lbrBus)try{parent.postMessage({type:'lbr-hover',pin:null},'*')}catch(_){}-    if (stickyPin) return;-    tooltip.classList.remove('visible');-    clearHighlight();-  } -  // ── Sticky tooltip (click-to-pin) ──-  function toggleSticky(pin, x, y) {-    if (stickyPin === pin) {-      // Unpin-      stickyPin = null;-      tooltip.classList.remove('sticky');-      hideTooltip();-    } else {-      // Pin-      stickyPin = pin;-      highlightPin(pin);-      let html = '<div><span class="tt-name">' + pin.name + '</span><span class="tt-pin">Pin ' + pin.number + '</span></div>' +-        '<div><span class="tt-type" style="background:' + pin.color + '22; color:' + pin.color + '; border:1px solid ' + pin.color + '44">' + pin.type + '</span></div>';-      if (pin.desc) html += '<div class="tt-desc">' + pin.desc + '</div>';-      html += sourceHtml();-      tooltip.innerHTML = html;-      tooltip.classList.add('visible', 'sticky');-      positionTooltip(x, y);-    }-  } -  // Dismiss sticky on click outside-  document.addEventListener('click', (e) => {-    if (!stickyPin) return;-    if (tooltip.contains(e.target)) return; // click inside tooltip-    if (e.target.closest('[data-pin]') || e.target.closest('[data-pin-num]') || e.target.closest('[data-pin-wire]')) return;-    stickyPin = null;-    tooltip.classList.remove('sticky', 'visible');-    clearHighlight();-  }); -  wrap.addEventListener('mouseleave', hideTooltip); -  // ── Pin hit zones ──-  function setupPinHitZones() {-    if (!svgEl) return; -    if (hidePinNames) {-      // Discrete components (hidden pin names): compute hit zones from injected labels-      // Covers MOSFETs, resistors, etc. — standard KiCad discrete symbols hide pin names-      // but may leave pin numbers visible, so we check hidePinNames only-      setupDiscreteHitZones();-    } else {-      // Standard IC: use hidden text elements for hit detection-      setupTextHitZones();-    }-  } -  function setupTextHitZones() {-    // IC symbols: two hit zones per pin, derived from actual rendered text bounds (getBBox):-    //   1. INSIDE body — covers pin name text (bbox from stroked-text group)-    //   2. OUTSIDE body — covers pin wire + number area (bbox or coordinate-based)-    if (!svgOffset) return;-    const ox = svgOffset.x, oy = svgOffset.y;-    const pitch = 2.54;-    const zoneH = pitch * 0.95;-    const wireExt = 1.5;-    const pad = 0.3; // padding around text bbox--    // Build lookup: text content → stroked-text group bbox-    const textBBoxMap = {};-    svgEl.querySelectorAll('g.stroked-text').forEach(g => {-      const desc = g.querySelector('desc');-      if (desc) {-        try {-          const bbox = g.getBBox();-          if (bbox.width > 0 && bbox.height > 0) {-            const key = desc.textContent.trim();-            if (!textBBoxMap[key]) textBBoxMap[key] = [];-            textBBoxMap[key].push(bbox);-          }-        } catch (e) {}-      }-    }); -    function addHitZone(hx, hy, hw, hh, pin) {-      const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');-      rect.setAttribute('x', hx);-      rect.setAttribute('y', hy);-      rect.setAttribute('width', hw);-      rect.setAttribute('height', hh);-      rect.setAttribute('class', 'pin-hit-zone');-      rect.setAttribute('data-pin', pin.name);-      rect.setAttribute('rx', '0.3');-      svgEl.appendChild(rect);-      rect.addEventListener('mouseenter', (ev) => showTooltip(ev.clientX, ev.clientY, pin));-      rect.addEventListener('mousemove', (ev) => { if (!stickyPin) positionTooltip(ev.clientX, ev.clientY); });-      rect.addEventListener('mouseleave', hideTooltip);-      rect.addEventListener('click', (ev) => { ev.stopPropagation(); toggleSticky(pin, ev.clientX, ev.clientY); });-    } -    for (const pin of pins) {-      const tipSvgX = ox + pin.x;-      const tipSvgY = oy - pin.y;-      const wireLen = pin.length || 2.54;-      const isHoriz = (pin.angle === 0 || pin.angle === 180);--      // Pin name hitbox: use actual text bbox if available-      const nameBBoxes = textBBoxMap[pin.name];-      if (nameBBoxes && nameBBoxes.length > 0) {-        // Pick the bbox closest to this pin's body-edge position-        const bodyEdgeX = isHoriz-          ? (pin.angle === 0 ? tipSvgX + wireLen : tipSvgX - wireLen)-          : tipSvgX;-        const bodyEdgeY = isHoriz-          ? tipSvgY-          : (pin.angle === 90 ? tipSvgY - wireLen : tipSvgY + wireLen);-        let best = nameBBoxes[0];-        let bestDist = Infinity;-        for (const bb of nameBBoxes) {-          const cx = bb.x + bb.width / 2, cy = bb.y + bb.height / 2;-          const d = Math.hypot(cx - bodyEdgeX, cy - bodyEdgeY);-          if (d < bestDist) { bestDist = d; best = bb; }-        }-        addHitZone(best.x - pad, best.y - pad, best.width + pad * 2, best.height + pad * 2, pin);-      } else {-        // Fallback: fixed-width zone inside body-        const bodyDepth = 8;-        if (isHoriz) {-          const cy = tipSvgY - zoneH / 2;-          if (pin.angle === 0) addHitZone(tipSvgX + wireLen, cy, bodyDepth, zoneH, pin);-          else addHitZone(tipSvgX - wireLen - bodyDepth, cy, bodyDepth, zoneH, pin);-        } else {-          const cx = tipSvgX - zoneH / 2;-          if (pin.angle === 90) addHitZone(cx, tipSvgY - wireLen - bodyDepth, zoneH, bodyDepth, pin);-          else addHitZone(cx, tipSvgY + wireLen, zoneH, bodyDepth, pin);-        }-      } -      // Pin number hitbox: use actual text bbox if available-      const numBBoxes = textBBoxMap[pin.number];-      if (numBBoxes && numBBoxes.length > 0) {-        const tipDist = (bb) => Math.hypot(bb.x + bb.width / 2 - tipSvgX, bb.y + bb.height / 2 - tipSvgY);-        let best = numBBoxes[0], bestD = tipDist(best);-        for (const bb of numBBoxes) { const d = tipDist(bb); if (d < bestD) { bestD = d; best = bb; } }-        addHitZone(best.x - pad, best.y - pad, best.width + pad * 2, best.height + pad * 2, pin);-      } else {-        // Fallback: wire area-        if (isHoriz) {-          const cy = tipSvgY - zoneH / 2;-          if (pin.angle === 0) addHitZone(tipSvgX - wireExt, cy, wireLen + wireExt, zoneH, pin);-          else addHitZone(tipSvgX, cy, wireLen + wireExt, zoneH, pin);-        } else {-          const cx = tipSvgX - zoneH / 2;-          if (pin.angle === 90) addHitZone(cx, tipSvgY, zoneH, wireLen + wireExt, pin);-          else addHitZone(cx, tipSvgY - wireExt, zoneH, wireLen + wireExt, pin);-        }-      }-    }-  } -  function setupDiscreteHitZones() {-    // For discrete components (hidden pin names/numbers), create hit zones-    // using getBBox() on injected text labels for precise alignment.-    // Falls back to coordinate-based zones if text elements aren't found.-    if (!svgOffset) return;-    const ox = svgOffset.x, oy = svgOffset.y;-    const pad = 0.5; // generous padding for easy hover on small labels--    // Build lookup: text content → getBBox for injected labels-    const labelBBoxMap = {};-    const allTextEls = svgEl.querySelectorAll('text.pin-label, text.pin-num-label');-    allTextEls.forEach(t => {-      try {-        const bbox = t.getBBox();-        if (bbox.width > 0 && bbox.height > 0) {-          const key = t.textContent.trim();-          if (!labelBBoxMap[key]) labelBBoxMap[key] = [];-          labelBBoxMap[key].push(bbox);-        }-      } catch (e) {}-    }); -    for (const pin of pins) {-      const tipSvgX = ox + pin.x;-      const tipSvgY = oy - pin.y;-      const wireLen = pin.length || 2.54;--      // Collect bounding boxes of this pin's name and number labels-      const bboxes = [];--      // Find name label bbox (closest to pin tip)-      const nameBBs = labelBBoxMap[pin.name];-      if (nameBBs) {-        let best = nameBBs[0], bestD = Infinity;-        for (const bb of nameBBs) {-          const d = Math.hypot(bb.x + bb.width / 2 - tipSvgX, bb.y + bb.height / 2 - tipSvgY);-          if (d < bestD) { bestD = d; best = bb; }-        }-        bboxes.push(best);-      } -      // Find number label bbox (closest to pin tip)-      const numBBs = labelBBoxMap[pin.number];-      if (numBBs) {-        let best = numBBs[0], bestD = Infinity;-        for (const bb of numBBs) {-          const d = Math.hypot(bb.x + bb.width / 2 - tipSvgX, bb.y + bb.height / 2 - tipSvgY);-          if (d < bestD) { bestD = d; best = bb; }-        }-        bboxes.push(best);-      } -      if (bboxes.length > 0) {-        // Union text bboxes into a single hit zone (just covers labels near the tip)-        let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;-        for (const bb of bboxes) {-          minX = Math.min(minX, bb.x);-          minY = Math.min(minY, bb.y);-          maxX = Math.max(maxX, bb.x + bb.width);-          maxY = Math.max(maxY, bb.y + bb.height);-        }--        const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');-        rect.setAttribute('x', minX - pad);-        rect.setAttribute('y', minY - pad);-        rect.setAttribute('width', maxX - minX + pad * 2);-        rect.setAttribute('height', maxY - minY + pad * 2);-        rect.setAttribute('class', 'pin-hit-zone');-        rect.setAttribute('data-pin-wire', pin.name);-        rect.setAttribute('rx', '0.3');-        svgEl.appendChild(rect);--        rect.addEventListener('mouseenter', (ev) => showTooltip(ev.clientX, ev.clientY, pin));-        rect.addEventListener('mousemove', (ev) => { if (!stickyPin) positionTooltip(ev.clientX, ev.clientY); });-        rect.addEventListener('mouseleave', hideTooltip);-        rect.addEventListener('click', (ev) => { ev.stopPropagation(); toggleSticky(pin, ev.clientX, ev.clientY); });-      } else {-        // Fallback: coordinate-based zone around wire area-        const perpHalf = 1.5;-        let hitX, hitY, hitW, hitH;-        switch (pin.angle) {-          case 0:   hitX = tipSvgX - 1; hitY = tipSvgY - perpHalf; hitW = wireLen + 1; hitH = perpHalf * 2; break;-          case 180: hitX = tipSvgX - wireLen; hitY = tipSvgY - perpHalf; hitW = wireLen + 1; hitH = perpHalf * 2; break;-          case 270: hitX = tipSvgX - perpHalf; hitY = tipSvgY; hitW = perpHalf * 2; hitH = wireLen + 1; break;-          case 90:  hitX = tipSvgX - perpHalf; hitY = tipSvgY - wireLen; hitW = perpHalf * 2; hitH = wireLen + 1; break;-          default:  hitX = tipSvgX - 2; hitY = tipSvgY - 2; hitW = 4; hitH = 4;-        }-        const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');-        rect.setAttribute('x', hitX);-        rect.setAttribute('y', hitY);-        rect.setAttribute('width', hitW);-        rect.setAttribute('height', hitH);-        rect.setAttribute('class', 'pin-hit-zone');-        rect.setAttribute('data-pin-wire', pin.name);-        rect.setAttribute('rx', '0.3');-        svgEl.appendChild(rect);-        rect.addEventListener('mouseenter', (ev) => showTooltip(ev.clientX, ev.clientY, pin));-        rect.addEventListener('mousemove', (ev) => { if (!stickyPin) positionTooltip(ev.clientX, ev.clientY); });-        rect.addEventListener('mouseleave', hideTooltip);-        rect.addEventListener('click', (ev) => { ev.stopPropagation(); toggleSticky(pin, ev.clientX, ev.clientY); });-      }-    }-  } -  // ── Group label hit zones ──-  function setupGroupHitZones() {-    if (!svgEl) return;-    const texts = svgEl.querySelectorAll('text');-    texts.forEach(textEl => {-      const label = textEl.textContent.trim();-      const group = groups.find(g => g.name === label);-      if (!group) return;-      const fSize = parseFloat(textEl.getAttribute('font-size')) || 1;-      if (Math.abs(fSize - 1.016) > 0.1) return;--      const x = parseFloat(textEl.getAttribute('x')) || 0;-      const y = parseFloat(textEl.getAttribute('y')) || 0;-      const tLen = parseFloat(textEl.getAttribute('textLength')) || 6;-      const anchor = textEl.getAttribute('text-anchor') || 'start';--      const padX = fSize * 0.4;-      const padY = fSize * 0.15; // tight vertical padding to avoid spilling into pin zones-      let rx, rw = tLen + padX * 2, rh = fSize + padY * 2;-      if (anchor === 'end') rx = x - tLen - padX;-      else if (anchor === 'middle') rx = x - tLen / 2 - padX;-      else rx = x - padX;-      const ry = y - fSize - padY;--      const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');-      rect.setAttribute('x', rx);-      rect.setAttribute('y', ry);-      rect.setAttribute('width', rw);-      rect.setAttribute('height', rh);-      rect.setAttribute('class', 'pin-hit-zone');-      rect.setAttribute('data-group', group.name);-      rect.setAttribute('rx', '0.3');-      svgEl.appendChild(rect);--      rect.addEventListener('mouseenter', (ev) => showGroupTooltip(ev.clientX, ev.clientY, group));-      rect.addEventListener('mousemove', (ev) => { if (!stickyPin) positionTooltip(ev.clientX, ev.clientY); });-      rect.addEventListener('mouseleave', hideTooltip);-    });-  } -  // Keyboard shortcuts-  window.addEventListener('keydown', (e) => {-    if (e.key === 'f' || e.key === 'F') zoomFit();-    else if (e.key === '1') zoomReset();-    else if (e.key === '+' || e.key === '=') zoomIn();-    else if (e.key === '-') zoomOut();-    else if (e.key === 'g' || e.key === 'G') toggleGrid();-    else if (e.key === 'Escape') {-      closeRegenPrompt();-      stickyPin = null;-      tooltip.classList.remove('sticky', 'visible');-      clearHighlight();-    }-  }); -  // Auto-fit on window/container resize (e.g. iframe becoming visible)-  new ResizeObserver(() => zoomFit()).observe(wrap);--  // Init-  requestAnimationFrame(() => {-    zoomFit();-    setupPinHitZones();-    setupGroupHitZones();-    // Hide hit zones by default (user can toggle with Hits button)-    if (!hitsVisible && svgEl) {-      svgEl.querySelectorAll('.pin-hit-zone').forEach(r => { r.style.visibility = 'hidden'; });-    }-  }); -  // Zoom to a named region of the symbol (for AI screenshot verification)-  // Regions: 'top', 'bottom', 'left', 'right', 'fit' (full symbol)-  function zoomToRegion(region) {-    if (!contentBounds) { zoomFit(); return; }-    const ww = wrap.clientWidth, wh = wrap.clientHeight;-    const svgEl = document.querySelector('#canvas svg');-    if (!svgEl) return;-    const vb = svgEl.viewBox.baseVal;-    const svgPxW = svgEl.clientWidth || svgEl.getBoundingClientRect().width;-    const svgPxH = svgEl.clientHeight || svgEl.getBoundingClientRect().height;-    const pxPerUnitX = svgPxW / vb.width;-    const pxPerUnitY = svgPxH / vb.height;--    // Content bounds in SVG user-space-    const cb = contentBounds;-    const cx = cb.x, cy = cb.y, cw = cb.w || cb.width, ch = cb.h || cb.height;-    // Region crop (SVG user-space coordinates)-    let rx, ry, rw, rh;-    const margin = 2; // mm padding-    if (region === 'top') {-      rx = cx - margin; ry = cy - margin; rw = cw + margin * 2; rh = Math.min(ch * 0.12, 50) + margin;-    } else if (region === 'bottom') {-      const cropH = Math.min(ch * 0.12, 50);-      ry = cy + ch - cropH - margin; rx = cx - margin; rw = cw + margin * 2; rh = cropH + margin * 2;-    } else if (region === 'top-left') {-      rx = cx - margin; ry = cy - margin; rw = cw * 0.4 + margin; rh = Math.min(ch * 0.12, 50) + margin;-    } else if (region === 'top-right') {-      rx = cx + cw * 0.6 - margin; ry = cy - margin; rw = cw * 0.4 + margin * 2; rh = Math.min(ch * 0.12, 50) + margin;-    } else if (region === 'bottom-left') {-      const cropH = Math.min(ch * 0.12, 50);-      ry = cy + ch - cropH - margin; rx = cx - margin; rw = cw * 0.4 + margin; rh = cropH + margin * 2;-    } else if (region === 'bottom-right') {-      const cropH = Math.min(ch * 0.12, 50);-      ry = cy + ch - cropH - margin; rx = cx + cw * 0.6 - margin; rw = cw * 0.4 + margin * 2; rh = cropH + margin * 2;-    } else if (region === 'left') {-      rx = cx - margin; ry = cy - margin; rw = cw * 0.35 + margin; rh = ch + margin * 2;-    } else if (region === 'right') {-      rx = cx + cw * 0.65 - margin; ry = cy - margin; rw = cw * 0.35 + margin * 2; rh = ch + margin * 2;-    } else {-      zoomFit(); return;-    }-    // Convert to pixel coords-    const pxX = (rx - vb.x) * pxPerUnitX;-    const pxY = (ry - vb.y) * pxPerUnitY;-    const pxW = rw * pxPerUnitX;-    const pxH = rh * pxPerUnitY;-    // Compute scale to fit region in viewport-    const ns = Math.min(ww / pxW, wh / pxH) * 0.92;-    scale = Math.max(0.1, Math.min(ns, 20));-    panX = ww / 2 - (pxX + pxW / 2) * scale;-    panY = wh / 2 - (pxY + pxH / 2) * scale;-    updateTransform();-  } -  // Screenshot capture handler for Adom Viewer mgmt relay-  // Send SVG data back to parent for rendering (avoids sandbox restrictions on Image loading)-  window.addEventListener('message', (e) => {-    // Zoom-to-region command (from AI via mgmt relay)-    if (e.data?.type === 'sym_zoom_region') {-      zoomToRegion(e.data.region || 'fit');-      return;-    }-    if (e.data?.type === 'mgmt_capture_request') {-      const reqId = e.data._reqId;-      try {-        const svg = document.querySelector('#canvas svg');-        if (!svg) { window.parent.postMessage({ type: 'mgmt_canvas_capture', _reqId: reqId, data: null }, '*'); return; }-        const clone = svg.cloneNode(true);-        // Inline pin-hit-zone styles so they're visible in standalone SVG-        clone.querySelectorAll('.pin-hit-zone').forEach(el => {-          el.setAttribute('fill', 'rgba(0,230,220,0.06)');-          el.setAttribute('stroke', '#00e6dc');-          el.setAttribute('stroke-width', '0.12');-          el.setAttribute('stroke-dasharray', '0.3,0.2');-          el.setAttribute('stroke-opacity', '0.5');-          el.setAttribute('rx', '0.3');-        });-        const vb = svg.getAttribute('viewBox');-        const parts = vb ? vb.split(/\s+/).map(Number) : [0, 0, 100, 100];-        let vbX = parts[0], vbY = parts[1], vbW = parts[2] || 100, vbH = parts[3] || 100;--        // Crop to visible viewport when zoomed/panned-        const svgPxW = svg.clientWidth || svg.getBoundingClientRect().width;-        const svgPxH = svg.clientHeight || svg.getBoundingClientRect().height;-        const ww = wrap.clientWidth, wh = wrap.clientHeight;-        if (scale !== 1 || panX !== (ww - svgPxW) / 2 || panY !== (wh - svgPxH) / 2) {-          const pxPerUnitX = svgPxW / vbW;-          const pxPerUnitY = svgPxH / vbH;-          // Visible viewport in pixel space of the SVG element-          const visLeft = -panX / scale;-          const visTop = -panY / scale;-          const visW = ww / scale;-          const visH = wh / scale;-          // Convert to SVG user-space-          vbX = vbX + visLeft / pxPerUnitX;-          vbY = vbY + visTop / pxPerUnitY;-          vbW = visW / pxPerUnitX;-          vbH = visH / pxPerUnitY;-        }--        clone.setAttribute('viewBox', vbX + ' ' + vbY + ' ' + vbW + ' ' + vbH);-        clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');-        const xml = new XMLSerializer().serializeToString(clone);-        // Send SVG XML + dimensions to parent for canvas rendering-        window.parent.postMessage({-          type: 'mgmt_canvas_capture',-          _reqId: reqId,-          svgXml: xml,-          svgWidth: vbW,-          svgHeight: vbH,-          bgColor: '#0d1117'-        }, '*');-      } catch (err) {-        window.parent.postMessage({ type: 'mgmt_canvas_capture', _reqId: reqId, data: null }, '*');-      }-    }+++</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>++<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 89.4981,99.8423+89.5612,99.8056+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 89.4981,99.9150+89.4981,99.8423+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 89.4981,101.6026+89.4981,99.9150+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 89.4981,101.6753+89.4981,101.6026+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 89.5612,99.8056+90.5493,99.2352+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 90.6125,99.2716+90.6547,99.2472+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 90.6547,99.1865+93.8087,97.3656+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 90.6547,99.2959+90.6547,99.1865+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1264,101.3596+89.4981,99.8423+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1264,101.3596+92.1895,101.3232+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1264,101.4326+92.1264,101.3596+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1264,103.1199+92.1264,101.4326+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1264,103.1928+89.4981,101.6753+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1264,103.1928+92.1264,103.1199+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1264,103.1928+92.1895,103.1565+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,101.3232+93.1779,100.7528+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,101.3962+93.1779,100.8255+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,101.3962+97.3201,98.4341+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,103.0835+92.1895,101.3962+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,103.0835+92.1895,101.3962+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,103.0835+93.4407,102.3612+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,103.0835+97.3201,100.1214+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.1895,103.1565+93.4407,102.4339+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.4331,99.6353+92.5776,99.5518+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.4331,99.6353+92.6663,99.7699+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.5440,99.6994+92.6330,99.6479+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.5831,99.2090+92.5499,99.2026+92.5052,99.2026+92.4720,99.2090+92.4276,99.2346+92.4165,99.2537+92.4165,99.2796+92.4276,99.2987+92.4498,99.3245+92.5052,99.3566+92.5499,99.3692+92.5831,99.3757+92.6275,99.3757+92.6608,99.3692+92.7051,99.3436+92.7162,99.3245+92.7162,99.2987+92.7051,99.2796+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.6053,99.1320+92.8385,99.2666+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.6053,99.1320+92.7051,99.0744+92.7498,99.0615+92.7716,99.0615+92.8052,99.0680+92.8271,99.0809+92.8385,99.1000+92.8385,99.1129+92.8163,99.1385+92.7162,99.1964+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.6220,99.5263+93.0104,99.5712+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.7775,99.4366+92.8551,99.6609+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.7941,99.1514+92.9937,99.1770+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.8939,98.9654+92.8718,98.9913+92.8828,99.0230+92.9272,99.0615+92.9605,99.0809+93.0270,99.1065+93.0827,99.1129+93.1271,99.1000+93.1493,99.0871+93.1714,99.0615+93.1604,99.0295+93.1160,98.9913+93.0827,98.9719+93.0162,98.9463+92.9605,98.9398+92.9161,98.9528+Z" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 92.9885,99.4687+93.1881,99.3532+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.0726,100.5828+90.6547,99.1865+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.0726,100.5828+96.2266,98.7618+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.0726,100.6921+93.0726,100.5828+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.1357,100.7284+96.2266,98.9438+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.1604,98.8117+93.3935,98.9463+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.1604,98.8117+93.2047,98.9654+93.3713,98.8693+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.1779,100.7528+90.5493,99.2352+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.1779,100.8255+93.1779,100.7528+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.2438,99.1674+93.4767,99.3020+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.2438,99.1674+93.2882,99.3211+93.4545,99.2250+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.3381,98.7091+93.3159,98.7347+93.3270,98.7667+93.3713,98.8052+93.4046,98.8243+93.4711,98.8499+93.5269,98.8564+93.5712,98.8437+93.5934,98.8308+93.6156,98.8052+93.6045,98.7732+93.5599,98.7347+93.5269,98.7156+93.4601,98.6897+93.4046,98.6832+93.3603,98.6962+Z" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.3547,99.1034+93.5103,99.0137+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.4407,102.4339+93.4407,102.3612+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.5103,99.0137+93.6322,99.2124+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.5599,98.6447+93.5491,98.6386+93.5380,98.6195+93.5380,98.6066+93.5491,98.5875+93.5934,98.5616+93.6267,98.5551+93.6489,98.5551+93.6821,98.5616+93.7043,98.5745+93.7154,98.5936+93.7265,98.6260+93.7265,98.7541+93.8820,98.6642+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.6433,98.9367+93.6211,98.9623+93.6322,98.9943+93.6766,99.0325+93.7099,99.0519+93.7767,99.0775+93.8321,99.0840+93.8765,99.0710+93.8987,99.0584+93.9208,99.0325+93.9098,99.0008+93.8654,98.9623+93.8321,98.9429+93.7656,98.9173+93.7099,98.9109+93.6655,98.9238+Z" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.7034,97.4142+94.6918,96.8435+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.7034,97.4263+93.7034,97.4142+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.7139,97.4204+93.7034,97.4142+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.8599,98.5616+94.0598,98.4461+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 93.8765,98.8533+93.8876,98.8339+93.8876,98.7957+94.1207,98.9303+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.2430,98.6546+94.2094,98.6481+94.1651,98.6481+94.1318,98.6546+94.0875,98.6802+94.0764,98.6993+94.0764,98.7251+94.0875,98.7442+94.1097,98.7701+94.1651,98.8021+94.2094,98.8148+94.2430,98.8212+94.2874,98.8212+94.3203,98.8148+94.3650,98.7892+94.3761,98.7701+94.3761,98.7442+94.3650,98.7251+94.3317,98.7057+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.2649,98.5776+94.4984,98.7122+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.2760,98.7378+94.3317,98.7057+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.4537,98.4686+94.5982,98.3854+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.4537,98.4686+94.6869,98.6035+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.4984,98.7122+94.6314,98.6352+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.5649,98.5326+94.6536,98.4815+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 94.6918,96.8435+94.7549,96.8072+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.0689,100.8436+97.3201,100.1214+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.0689,100.9166+96.0061,100.8800+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.0689,100.9166+96.0689,100.8436+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.0689,100.9166+97.3201,100.1944+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.2266,98.7618+93.8087,97.3656+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.2266,98.9438+96.2266,98.7618+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3320,98.9318+96.2266,98.8711+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3320,98.9318+97.3201,98.3611+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3320,99.0045+96.2266,98.9438+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3320,99.0045+96.3320,98.9318+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3320,99.0045+97.3201,98.4341+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3201,98.3611+97.3832,98.3247+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3201,100.1214+97.3201,98.4341+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3201,100.1214+97.3201,98.4341+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3201,100.1944+97.3832,100.1577+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3832,98.3247+94.7549,96.8072+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3832,98.3974+97.3832,98.3247+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3832,100.0850+97.3832,98.3974+" /> +<path style="fill:none; +stroke:#6E6E6E; stroke-width:0.1000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3832,100.1577+97.3832,100.0850+" /> +</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.2540; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<rect x="98.984000" y="97.460000" width="2.032000" height="5.080000" rx="0.000000" />+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M100.0000 97.4600+L100.0000 96.1900+" />+<path d="M100.0000 102.5400+L100.0000 103.8100+" />+</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.5618" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">R?</text>+<g class="stroked-text">+<path d="M99.8487 95.4995+L99.4254 94.8948+" />+<path d="M99.1230 95.4995+L99.1230 94.2295+" />+<path d="M99.1230 94.2295+L99.6068 94.2295+" />+<path d="M99.6068 94.2295+L99.7278 94.2900+" />+<path d="M99.7278 94.2900+L99.7883 94.3505+" />+<path d="M99.7883 94.3505+L99.8487 94.4714+" />+<path d="M99.8487 94.4714+L99.8487 94.6529+" />+<path d="M99.8487 94.6529+L99.7883 94.7738+" />+<path d="M99.7883 94.7738+L99.7278 94.8343+" />+<path d="M99.7278 94.8343+L99.6068 94.8948+" />+<path d="M99.6068 94.8948+L99.1230 94.8948+" />+<path d="M100.5745 95.3786+L100.6349 95.4391+" />+<path d="M100.6349 95.4391+L100.5745 95.4995+" />+<path d="M100.5745 95.4995+L100.5140 95.4391+" />+<path d="M100.5140 95.4391+L100.5745 95.3786+" />+<path d="M100.5745 95.3786+L100.5745 95.4995+" />+<path d="M100.3326 94.2900+L100.4535 94.2295+" />+<path d="M100.4535 94.2295+L100.7559 94.2295+" />+<path d="M100.7559 94.2295+L100.8768 94.2900+" />+<path d="M100.8768 94.2900+L100.9373 94.4110+" />+<path d="M100.9373 94.4110+L100.9373 94.5319+" />+<path d="M100.9373 94.5319+L100.8768 94.6529+" />+<path d="M100.8768 94.6529+L100.8164 94.7133+" />+<path d="M100.8164 94.7133+L100.6954 94.7738+" />+<path d="M100.6954 94.7738+L100.6349 94.8343+" />+<path d="M100.6349 94.8343+L100.5745 94.9552+" />+<path d="M100.5745 94.9552+L100.5745 95.0157+" />+</g><text x="100.0000" y="105.7150"+textLength="21.2488" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">CR0402-FX-4701GLF</text>+<g class="stroked-text">+<path d="M90.5052 105.5386+L90.4448 105.5991+" />+<path d="M90.4448 105.5991+L90.2633 105.6595+" />+<path d="M90.2633 105.6595+L90.1424 105.6595+" />+<path d="M90.1424 105.6595+L89.9610 105.5991+" />+<path d="M89.9610 105.5991+L89.8400 105.4781+" />+<path d="M89.8400 105.4781+L89.7795 105.3571+" />+<path d="M89.7795 105.3571+L89.7191 105.1152+" />+<path d="M89.7191 105.1152+L89.7191 104.9338+" />+<path d="M89.7191 104.9338+L89.7795 104.6919+" />+<path d="M89.7795 104.6919+L89.8400 104.5710+" />+<path d="M89.8400 104.5710+L89.9610 104.4500+" />+<path d="M89.9610 104.4500+L90.1424 104.3895+" />+<path d="M90.1424 104.3895+L90.2633 104.3895+" />+<path d="M90.2633 104.3895+L90.4448 104.4500+" />+<path d="M90.4448 104.4500+L90.5052 104.5105+" />+<path d="M91.7752 105.6595+L91.3519 105.0548+" />+<path d="M91.0495 105.6595+L91.0495 104.3895+" />+<path d="M91.0495 104.3895+L91.5333 104.3895+" />+<path d="M91.5333 104.3895+L91.6543 104.4500+" />+<path d="M91.6543 104.4500+L91.7148 104.5105+" />+<path d="M91.7148 104.5105+L91.7752 104.6314+" />+<path d="M91.7752 104.6314+L91.7752 104.8129+" />+<path d="M91.7752 104.8129+L91.7148 104.9338+" />+<path d="M91.7148 104.9338+L91.6543 104.9943+" />+<path d="M91.6543 104.9943+L91.5333 105.0548+" />+<path d="M91.5333 105.0548+L91.0495 105.0548+" />+<path d="M92.5614 104.3895+L92.6824 104.3895+" />+<path d="M92.6824 104.3895+L92.8033 104.4500+" />+<path d="M92.8033 104.4500+L92.8638 104.5105+" />+<path d="M92.8638 104.5105+L92.9243 104.6314+" />+<path d="M92.9243 104.6314+L92.9848 104.8733+" />+<path d="M92.9848 104.8733+L92.9848 105.1757+" />+<path d="M92.9848 105.1757+L92.9243 105.4176+" />+<path d="M92.9243 105.4176+L92.8638 105.5386+" />+<path d="M92.8638 105.5386+L92.8033 105.5991+" />+<path d="M92.8033 105.5991+L92.6824 105.6595+" />+<path d="M92.6824 105.6595+L92.5614 105.6595+" />+<path d="M92.5614 105.6595+L92.4405 105.5991+" />+<path d="M92.4405 105.5991+L92.3800 105.5386+" />+<path d="M92.3800 105.5386+L92.3195 105.4176+" />+<path d="M92.3195 105.4176+L92.2591 105.1757+" />+<path d="M92.2591 105.1757+L92.2591 104.8733+" />+<path d="M92.2591 104.8733+L92.3195 104.6314+" />+<path d="M92.3195 104.6314+L92.3800 104.5105+" />+<path d="M92.3800 104.5105+L92.4405 104.4500+" />+<path d="M92.4405 104.4500+L92.5614 104.3895+" />+<path d="M94.0733 104.8129+L94.0733 105.6595+" />+<path d="M93.7709 104.3291+L93.4686 105.2362+" />+<path d="M93.4686 105.2362+L94.2547 105.2362+" />+<path d="M94.9804 104.3895+L95.1014 104.3895+" />+<path d="M95.1014 104.3895+L95.2223 104.4500+" />+<path d="M95.2223 104.4500+L95.2828 104.5105+" />+<path d="M95.2828 104.5105+L95.3433 104.6314+" />+<path d="M95.3433 104.6314+L95.4038 104.8733+" />+<path d="M95.4038 104.8733+L95.4038 105.1757+" />+<path d="M95.4038 105.1757+L95.3433 105.4176+" />+<path d="M95.3433 105.4176+L95.2828 105.5386+" />+<path d="M95.2828 105.5386+L95.2223 105.5991+" />+<path d="M95.2223 105.5991+L95.1014 105.6595+" />+<path d="M95.1014 105.6595+L94.9804 105.6595+" />+<path d="M94.9804 105.6595+L94.8595 105.5991+" />+<path d="M94.8595 105.5991+L94.7990 105.5386+" />+<path d="M94.7990 105.5386+L94.7385 105.4176+" />+<path d="M94.7385 105.4176+L94.6781 105.1757+" />+<path d="M94.6781 105.1757+L94.6781 104.8733+" />+<path d="M94.6781 104.8733+L94.7385 104.6314+" />+<path d="M94.7385 104.6314+L94.7990 104.5105+" />+<path d="M94.7990 104.5105+L94.8595 104.4500+" />+<path d="M94.8595 104.4500+L94.9804 104.3895+" />+<path d="M95.8876 104.5105+L95.9480 104.4500+" />+<path d="M95.9480 104.4500+L96.0690 104.3895+" />+<path d="M96.0690 104.3895+L96.3714 104.3895+" />+<path d="M96.3714 104.3895+L96.4923 104.4500+" />+<path d="M96.4923 104.4500+L96.5528 104.5105+" />+<path d="M96.5528 104.5105+L96.6133 104.6314+" />+<path d="M96.6133 104.6314+L96.6133 104.7524+" />+<path d="M96.6133 104.7524+L96.5528 104.9338+" />+<path d="M96.5528 104.9338+L95.8271 105.6595+" />+<path d="M95.8271 105.6595+L96.6133 105.6595+" />+<path d="M97.1575 105.1757+L98.1252 105.1757+" />+<path d="M99.1533 104.9943+L98.7299 104.9943+" />+<path d="M98.7299 105.6595+L98.7299 104.3895+" />+<path d="M98.7299 104.3895+L99.3347 104.3895+" />+<path d="M99.6976 104.3895+L100.5442 105.6595+" />+<path d="M100.5442 104.3895+L99.6976 105.6595+" />+<path d="M101.0280 105.1757+L101.9957 105.1757+" />+<path d="M103.1447 104.8129+L103.1447 105.6595+" />+<path d="M102.8423 104.3291+L102.5400 105.2362+" />+<path d="M102.5400 105.2362+L103.3261 105.2362+" />+<path d="M103.6890 104.3895+L104.5356 104.3895+" />+<path d="M104.5356 104.3895+L103.9914 105.6595+" />+<path d="M105.2613 104.3895+L105.3823 104.3895+" />+<path d="M105.3823 104.3895+L105.5032 104.4500+" />+<path d="M105.5032 104.4500+L105.5637 104.5105+" />+<path d="M105.5637 104.5105+L105.6242 104.6314+" />+<path d="M105.6242 104.6314+L105.6847 104.8733+" />+<path d="M105.6847 104.8733+L105.6847 105.1757+" />+<path d="M105.6847 105.1757+L105.6242 105.4176+" />+<path d="M105.6242 105.4176+L105.5637 105.5386+" />+<path d="M105.5637 105.5386+L105.5032 105.5991+" />+<path d="M105.5032 105.5991+L105.3823 105.6595+" />+<path d="M105.3823 105.6595+L105.2613 105.6595+" />+<path d="M105.2613 105.6595+L105.1404 105.5991+" />+<path d="M105.1404 105.5991+L105.0799 105.5386+" />+<path d="M105.0799 105.5386+L105.0194 105.4176+" />+<path d="M105.0194 105.4176+L104.9590 105.1757+" />+<path d="M104.9590 105.1757+L104.9590 104.8733+" />+<path d="M104.9590 104.8733+L105.0194 104.6314+" />+<path d="M105.0194 104.6314+L105.0799 104.5105+" />+<path d="M105.0799 104.5105+L105.1404 104.4500+" />+<path d="M105.1404 104.4500+L105.2613 104.3895+" />+<path d="M106.8942 105.6595+L106.1685 105.6595+" />+<path d="M106.5313 105.6595+L106.5313 104.3895+" />+<path d="M106.5313 104.3895+L106.4104 104.5710+" />+<path d="M106.4104 104.5710+L106.2894 104.6919+" />+<path d="M106.2894 104.6919+L106.1685 104.7524+" />+<path d="M108.1037 104.4500+L107.9827 104.3895+" />+<path d="M107.9827 104.3895+L107.8013 104.3895+" />+<path d="M107.8013 104.3895+L107.6199 104.4500+" />+<path d="M107.6199 104.4500+L107.4989 104.5710+" />+<path d="M107.4989 104.5710+L107.4384 104.6919+" />+<path d="M107.4384 104.6919+L107.3780 104.9338+" />+<path d="M107.3780 104.9338+L107.3780 105.1152+" />+<path d="M107.3780 105.1152+L107.4384 105.3571+" />+<path d="M107.4384 105.3571+L107.4989 105.4781+" />+<path d="M107.4989 105.4781+L107.6199 105.5991+" />+<path d="M107.6199 105.5991+L107.8013 105.6595+" />+<path d="M107.8013 105.6595+L107.9222 105.6595+" />+<path d="M107.9222 105.6595+L108.1037 105.5991+" />+++<path d="M108.1641 105.1152+L107.9222 105.1152+" />++++++</g></g> +</svg>+      </div>+    </div>+    <aside>+      <div class="ah"><span class="atitle">Pins <span class="acount">2</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">Bourns</span></span><span class="it"><span class="k">PINS</span><span class="v">2</span></span><span class="it descit"><span class="k">DESC</span><span class="v">Resistor</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":270,"color":"#78909c","desc":"","length":1.27,"name":"1","number":"1","type":"Passive","x":0.0,"y":3.81},{"angle":90,"color":"#78909c","desc":"","length":1.27,"name":"2","number":"2","type":"Passive","x":0.0,"y":-3.81}], 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{'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[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();+  /* lbr-hover-bus v1 */ function lbrPost(n){ try{ parent.postMessage({type:'lbr-hover', pin:n==null?null:String(n)}, '*'); }catch(_){} }+  window.addEventListener('message', function(e){ var d=e.data||{}; if(d.type!=='lbr-hover') return; var q=d.pin==null?null:PINS.filter(function(x){ return String(x.number)===String(d.pin); })[0]; if(q) highlightPin(q); else if(typeof clearHL==='function') clearHL(); });+  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); lbrPost(p.number); },+      move:function(ev){ if(tip.classList.contains('show')) posTip(ev.clientX,ev.clientY); },+      leave:function(){ clearTimeout(hideT); hideT=setTimeout(hideTip,45); lbrPost(null); }+    });+    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>\ No newline at end of file+</body></html>
CR0402-FX-4701GLF-unetched.glb
⋯ 1 unchanged line ⋯
CR0402-FX-4701GLF.adom-lbr.json+1586−5
@@ -1,7 +1,7 @@ {   "schema_version": 2,   "mpn": "CR0402-FX-4701GLF",-  "manufacturer": "",+  "manufacturer": "Bourns",   "package": "",   "value": "",   "category": "",@@ -11,7 +11,7 @@       {         "number": "1",         "name": "",-        "x": 0,+        "x": 200,         "y": 150,         "length": 50,         "rotation": 270,@@ -20,7 +20,7 @@       {         "number": "2",         "name": "",-        "x": 0,+        "x": 200,         "y": -150,         "length": 50,         "rotation": 90,@@ -31,13 +31,1569 @@     "graphics": [       {         "kind": "rect",-        "x1": -40.0,+        "x1": 160.0,         "y1": -100.0,-        "x2": 40.0,+        "x2": 240.0,         "y2": 100.0,         "width": 10.0,         "filled": false,         "fill_style": "none"+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -121.39763779527559+          ],+          [+            -107.5,+            -54.96850393700788+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            94.49212598425197,+            -4.7795275590551185+          ],+          [+            94.49212598425197,+            61.64960629921261+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -121.39763779527559+          ],+          [+            94.49212598425197,+            -4.7795275590551185+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -54.96850393700788+          ],+          [+            94.49212598425197,+            61.64960629921261+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -169.58661417322833,+            28.67716535433071+          ],+          [+            -167.92519685039372,+            29.637795275590552+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -72.73228346456693,+            -27.248031496062996+          ],+          [+            -72.73228346456693,+            -22.94488188976378+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -167.92519685039372,+            27.72047244094488+          ],+          [+            -167.92519685039372,+            32.02755905511811+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -72.73228346456693,+            -22.94488188976378+          ],+          [+            -167.92519685039372,+            32.02755905511811+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            51.44094488188975,+            41.58267716535433+          ],+          [+            51.44094488188975,+            48.74803149606299+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            51.44094488188975,+            48.74803149606299+          ],+          [+            -43.75196850393701,+            103.71653543307086+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -70.24803149606299,+            -28.67716535433071+          ],+          [+            51.44094488188975,+            41.58267716535433+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -72.73228346456693,+            -22.94488188976378+          ],+          [+            51.44094488188975,+            48.74803149606299+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -167.92519685039372,+            32.02755905511811+          ],+          [+            -43.75196850393701,+            103.71653543307086+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -109.98425196850394,+            -125.70078740157481+          ],+          [+            -109.98425196850394,+            -122.83070866141732+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -109.98425196850394,+            -125.70078740157481+          ],+          [+            -213.46062992125985,+            -65.95669291338584+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -213.46062992125985,+            -65.95669291338584+          ],+          [+            -213.46062992125985,+            -63.094488188976385+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -109.98425196850394,+            -125.70078740157481+          ],+          [+            -107.5,+            -124.27165354330708+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -109.98425196850394,+            -122.83070866141732+          ],+          [+            -109.98425196850394,+            -56.401574803149614+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -213.46062992125985,+            -63.094488188976385+          ],+          [+            -213.46062992125985,+            3.346456692913386+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -124.27165354330708+          ],+          [+            -58.24015748031496,+            -95.82283464566929+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -121.39763779527559+          ],+          [+            -58.24015748031496,+            -92.96062992125985+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -58.24015748031496,+            -95.82283464566929+          ],+          [+            -58.24015748031496,+            -92.96062992125985+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -121.39763779527559+          ],+          [+            -107.5,+            -54.96850393700788+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -109.98425196850394,+            -56.401574803149614+          ],+          [+            -109.98425196850394,+            -53.52755905511811+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -213.46062992125985,+            3.346456692913386+          ],+          [+            -213.46062992125985,+            6.208661417322835+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -109.98425196850394,+            -53.52755905511811+          ],+          [+            -213.46062992125985,+            6.208661417322835+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -109.98425196850394,+            -53.52755905511811+          ],+          [+            -107.5,+            -52.09448818897638+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -213.46062992125985,+            6.208661417322835+          ],+          [+            -210.97637795275597,+            7.653543307086614+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -54.96850393700788+          ],+          [+            -68.58661417322833,+            -32.5+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -107.5,+            -52.09448818897638+          ],+          [+            -68.58661417322833,+            -29.637795275590552+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -68.58661417322833,+            -32.5+          ],+          [+            -68.58661417322833,+            -29.637795275590552+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -68.58661417322833,+            -29.637795275590552+          ],+          [+            -172.07480314960628,+            30.110236220472444+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -210.97637795275597,+            7.653543307086614+          ],+          [+            -172.07480314960628,+            30.110236220472444+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            45.23228346456693,+            -36.08661417322835+          ],+          [+            45.23228346456693,+            -33.21259842519685+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            45.23228346456693,+            -36.08661417322835+          ],+          [+            42.75984251968504,+            -34.645669291338585+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            45.23228346456693,+            -36.08661417322835+          ],+          [+            94.49212598425197,+            -7.653543307086614+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            45.23228346456693,+            -33.21259842519685+          ],+          [+            94.49212598425197,+            -4.7795275590551185+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            96.9763779527559,+            -6.208661417322835+          ],+          [+            96.9763779527559,+            -3.346456692913386+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            94.49212598425197,+            -7.653543307086614+          ],+          [+            96.9763779527559,+            -6.208661417322835+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            94.49212598425197,+            -4.7795275590551185+          ],+          [+            94.49212598425197,+            61.64960629921261+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            96.9763779527559,+            -3.346456692913386+          ],+          [+            96.9763779527559,+            63.094488188976385+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            55.59055118110234,+            39.19291338582678+          ],+          [+            51.44094488188975,+            41.58267716535433+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            55.59055118110234,+            39.19291338582678+          ],+          [+            94.49212598425197,+            61.64960629921261+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            96.9763779527559,+            63.094488188976385+          ],+          [+            96.9763779527559,+            65.95669291338584+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            94.49212598425197,+            64.5236220472441+          ],+          [+            96.9763779527559,+            65.95669291338584+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -47.897637795275585,+            101.32677165354332+          ],+          [+            -47.897637795275585,+            101.80314960629921+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -47.897637795275585,+            101.80314960629921+          ],+          [+            -8.984251968503969,+            124.27165354330708+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            55.59055118110234,+            39.19291338582678+          ],+          [+            55.59055118110234,+            42.05511811023622+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            55.59055118110234,+            42.05511811023622+          ],+          [+            94.49212598425197,+            64.5236220472441+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            55.59055118110234,+            42.05511811023622+          ],+          [+            51.44094488188975,+            44.444881889763785+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -47.48425196850397,+            101.55905511811025+          ],+          [+            -47.897637795275585,+            101.80314960629921+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -8.984251968503969,+            124.27165354330708+          ],+          [+            -6.5,+            125.70078740157481+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            96.9763779527559,+            65.95669291338584+          ],+          [+            -6.5,+            125.70078740157481+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -92.00393700787401,+            31.14173228346457+          ],+          [+            -93.31102362204723,+            31.393700787401578+          ],+          [+            -95.07086614173227,+            31.393700787401578+          ],+          [+            -96.37795275590548,+            31.14173228346457+          ],+          [+            -98.12598425196853,+            30.133858267716537+          ],+          [+            -98.56299212598424,+            29.381889763779526+          ],+          [+            -98.56299212598424,+            28.36220472440945+          ],+          [+            -98.12598425196853,+            27.610236220472444+          ],+          [+            -97.25196850393701,+            26.594488188976378+          ],+          [+            -95.07086614173227,+            25.330708661417322+          ],+          [+            -93.31102362204723,+            24.83464566929134+          ],+          [+            -92.00393700787401,+            24.578740157480315+          ],+          [+            -90.25590551181102,+            24.578740157480315+          ],+          [+            -88.94488188976379,+            24.83464566929134+          ],+          [+            -87.20078740157481,+            25.84251968503937+          ],+          [+            -86.76377952755905,+            26.594488188976378+          ],+          [+            -86.76377952755905,+            27.610236220472444+          ],+          [+            -87.20078740157481,+            28.36220472440945+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -91.12992125984255,+            34.173228346456696+          ],+          [+            -81.9488188976378,+            28.8740157480315+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -91.12992125984255,+            34.173228346456696+          ],+          [+            -87.20078740157481,+            36.44094488188976+          ],+          [+            -85.44094488188978,+            36.9488188976378+          ],+          [+            -84.58267716535431,+            36.9488188976378+          ],+          [+            -83.25984251968504,+            36.69291338582678+          ],+          [+            -82.39763779527561,+            36.18503937007874+          ],+          [+            -81.9488188976378,+            35.43307086614173+          ],+          [+            -81.9488188976378,+            34.925196850393704+          ],+          [+            -82.82283464566927,+            33.917322834645674+          ],+          [+            -86.76377952755905,+            31.637795275590552+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -83.6968503937008,+            33.40944881889764+          ],+          [+            -75.83858267716539,+            32.40157480314961+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -79.76771653543307,+            40.732283464566926+          ],+          [+            -80.63779527559058,+            39.71259842519685+          ],+          [+            -80.20472440944883,+            38.46456692913386+          ],+          [+            -78.45669291338584,+            36.9488188976378+          ],+          [+            -77.1456692913386,+            36.18503937007874+          ],+          [+            -74.5275590551181,+            35.17716535433071+          ],+          [+            -72.33464566929138,+            34.925196850393704+          ],+          [+            -70.58661417322833,+            35.43307086614173+          ],+          [+            -69.71259842519686,+            35.94094488188977+          ],+          [+            -68.84251968503935,+            36.9488188976378+          ],+          [+            -69.2755905511811,+            38.20866141732284+          ],+          [+            -71.02362204724415,+            39.71259842519685+          ],+          [+            -72.33464566929138,+            40.47637795275591+          ],+          [+            -74.95275590551182,+            41.48425196850394+          ],+          [+            -77.1456692913386,+            41.74015748031496+          ],+          [+            -78.8937007874016,+            41.22834645669291+          ],+          [+            -79.76771653543307,+            40.732283464566926+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -69.2755905511811,+            46.78346456692913+          ],+          [+            -67.53149606299212,+            40.732283464566926+          ],+          [+            -60.972440944881896,+            44.51574803149607+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -69.2755905511811,+            46.78346456692913+          ],+          [+            -60.09842519685037,+            41.48425196850394+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -62.27952755905511,+            50.82283464566929+          ],+          [+            -63.153543307086636,+            49.814960629921266+          ],+          [+            -62.716535433070874,+            48.55511811023622+          ],+          [+            -60.972440944881896,+            47.03937007874016+          ],+          [+            -59.661417322834666,+            46.28740157480315+          ],+          [+            -57.04330708661416,+            45.27952755905512+          ],+          [+            -54.84645669291339,+            45.023622047244096+          ],+          [+            -53.102362204724415,+            45.5236220472441+          ],+          [+            -52.22834645669292,+            46.031496062992126+          ],+          [+            -51.35433070866145,+            47.03937007874016+          ],+          [+            -51.791338582677184,+            48.29921259842519+          ],+          [+            -53.54724409448821,+            49.814960629921266+          ],+          [+            -54.84645669291339,+            50.56692913385827+          ],+          [+            -57.47637795275591,+            51.58661417322835+          ],+          [+            -59.661417322834666,+            51.84251968503937+          ],+          [+            -61.40551181102364,+            51.330708661417326+          ],+          [+            -62.27952755905511,+            50.82283464566929+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -53.54724409448821,+            53.35826771653543+          ],+          [+            -53.972440944881896,+            53.59842519685039+          ],+          [+            -54.40944881889763,+            54.35039370078741+          ],+          [+            -54.40944881889763,+            54.85826771653544+          ],+          [+            -53.972440944881896,+            55.610236220472444+          ],+          [+            -52.22834645669292,+            56.62992125984252+          ],+          [+            -50.91732283464569,+            56.88582677165355+          ],+          [+            -50.04330708661416,+            56.88582677165355+          ],+          [+            -48.73622047244095,+            56.62992125984252+          ],+          [+            -47.86220472440945,+            56.12204724409449+          ],+          [+            -47.42519685039372,+            55.37007874015749+          ],+          [+            -46.988188976377984,+            54.094488188976385+          ],+          [+            -46.988188976377984,+            49.05118110236221+          ],+          [+            -40.866141732283495,+            52.59055118110237+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -41.736220472440976,+            56.62992125984252+          ],+          [+            -33.86614173228347,+            61.17716535433071+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -97.90944881889766,+            14.358267716535435+          ],+          [+            -88.72834645669292,+            9.059055118110237+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -97.90944881889766,+            14.358267716535435+          ],+          [+            -92.22047244094489,+            17.64566929133858+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -93.54330708661422,+            11.834645669291339+          ],+          [+            -90.03937007874015,+            13.86220472440945+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -90.4724409448819,+            18.6496062992126+          ],+          [+            -75.18110236220474,+            16.88188976377953+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -84.35039370078744,+            22.181102362204726+          ],+          [+            -81.29527559055117,+            13.350393700787402+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -76.04330708661416,+            20.91732283464567+          ],+          [+            -68.18503937007875,+            25.46456692913386+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -65.99212598425197,+            32.77952755905512+          ],+          [+            -64.24409448818898,+            26.72834645669291+          ],+          [+            -57.6968503937008,+            30.511811023622048+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -65.99212598425197,+            32.77952755905512+          ],+          [+            -56.822834645669275,+            27.480314960629922+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -55.5,+            38.830708661417326+          ],+          [+            -50.700787401574814,+            31.00787401574803+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -61.62598425196853,+            35.2992125984252+          ],+          [+            -55.5,+            38.830708661417326+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -50.26377952755905,+            41.862204724409445+          ],+          [+            -51.13779527559055,+            40.85433070866142+          ],+          [+            -50.700787401574814,+            39.59448818897638+          ],+          [+            -48.95275590551182,+            38.09055118110236+          ],+          [+            -47.64173228346456,+            37.32677165354331+          ],+          [+            -45.01181102362207,+            36.318897637795274+          ],+          [+            -42.83070866141736,+            36.06299212598425+          ],+          [+            -41.08267716535434,+            36.5748031496063+          ],+          [+            -40.208661417322844,+            37.07086614173228+          ],+          [+            -39.33858267716536,+            38.09055118110236+          ],+          [+            -39.77165354330711,+            39.338582677165356+          ],+          [+            -41.519685039370074,+            40.85433070866142+          ],+          [+            -42.83070866141736,+            41.618110236220474+          ],+          [+            -45.44881889763781,+            42.625984251968504+          ],+          [+            -47.64173228346456,+            42.87795275590551+          ],+          [+            -49.389763779527584,+            42.37007874015748+          ],+          [+            -50.26377952755905,+            41.862204724409445+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -41.08267716535434,+            45.145669291338585+          ],+          [+            -40.645669291338606,+            45.90944881889764+          ],+          [+            -40.645669291338606,+            47.41338582677165+          ],+          [+            -31.46850393700788,+            42.11417322834646+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -26.653543307086608,+            52.968503937007874+          ],+          [+            -27.97637795275594,+            53.2244094488189+          ],+          [+            -29.72047244094489,+            53.2244094488189+          ],+          [+            -31.03149606299212,+            52.968503937007874+          ],+          [+            -32.7755905511811,+            51.96062992125985+          ],+          [+            -33.21259842519689,+            51.20866141732284+          ],+          [+            -33.21259842519689,+            50.19291338582677+          ],+          [+            -32.7755905511811,+            49.44094488188977+          ],+          [+            -31.9015748031496,+            48.42125984251969+          ],+          [+            -29.72047244094489,+            47.161417322834644+          ],+          [+            -27.97637795275594,+            46.66141732283465+          ],+          [+            -26.653543307086608,+            46.409448818897644+          ],+          [+            -24.905511811023644,+            46.409448818897644+          ],+          [+            -23.610236220472473,+            46.66141732283465+          ],+          [+            -21.850393700787407,+            47.66929133858268+          ],+          [+            -21.413385826771645,+            48.42125984251969+          ],+          [+            -21.413385826771645,+            49.44094488188977+          ],+          [+            -21.850393700787407,+            50.19291338582677+          ],+          [+            -23.161417322834666,+            50.95669291338583+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -25.354330708661422,+            49.69291338582677+          ],+          [+            -23.161417322834666,+            50.95669291338583+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -25.791338582677184,+            56.00000000000001+          ],+          [+            -16.5984251968504,+            50.70078740157481+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -16.5984251968504,+            50.70078740157481+          ],+          [+            -11.362204724409452,+            53.73228346456693+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -18.358267716535437,+            60.29133858267717+          ],+          [+            -9.177165354330725,+            54.980314960629926+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -18.358267716535437,+            60.29133858267717+          ],+          [+            -12.669291338582667,+            63.566929133858274+          ]+        ],+        "width": 3.9370078740157486+      },+      {+        "kind": "polyline",+        "points": [+          [+            -13.980314960629954,+            57.77165354330709+          ],+          [+            -10.488188976377955,+            59.78346456692913+          ]+        ],+        "width": 3.9370078740157486       }     ],     "designator_prefix": "R",@@ -57,6 +1613,31 @@         "name": "Description",         "value": "Resistor",         "visible": false+      },+      {+        "name": "MPN",+        "value": "CR0402-FX-4701GLF",+        "visible": false+      },+      {+        "name": "Manufacturer",+        "value": "Bourns",+        "visible": false+      },+      {+        "name": "Adom Wiki",+        "value": "https://wiki.adom.inc/adom/cr0402-fx-4701glf",+        "visible": false+      },+      {+        "name": "Adom_Chip_Outline",+        "value": "asset:CR0402-FX-4701GLF-3d-outline-ink-heavy-named.svg@large",+        "visible": false+      },+      {+        "name": "Manufacturer Part Number",+        "value": "CR0402-FX-4701GLF",+        "visible": false       }     ],     "pin_numbers_hidden": true,
CR0402-FX-4701GLF.glb
⋯ 1 unchanged line ⋯
CR0402-FX-4701GLF.insertion.glb
⋯ 1 unchanged line ⋯
CR0402-FX-4701GLF.kicad_sym+1394−88
@@ -1,90 +1,1396 @@ (kicad_symbol_lib-  (version 20231120)-  (generator "adom")-  (symbol "CR0402-FX-4701GLF"-    (pin_numbers (hide yes))-    (pin_names (offset 0) (hide yes))-    (exclude_from_sim no)-    (in_bom yes)-    (on_board yes)-    (property "Reference" "R"-      (at 2.032 0 90)-      (effects-      (font-       (size 1.27 1.27)-      )-     )-    )-    (property "Value" "CR0402-FX-4701GLF"-      (at 0 0 90)-      (effects-      (font-       (size 1.27 1.27)-      )-     )-    )-    (property "Footprint" ""-      (at 0 0 0)-      (effects (font (size 1.27 1.27)) (hide yes))-    )-    (property "Datasheet" "~"-      (at 0 0 0)-      (effects (font (size 1.27 1.27)) (hide yes))-    )-    (property "Description" "Resistor"-      (at 0 0 0)-      (effects (font (size 1.27 1.27)) (hide yes))-    )-    (symbol "CR0402-FX-4701GLF_0_1"-     (rectangle-      (start -1.016 -2.54)-      (end 1.016 2.54)-      (stroke-       (width 0.254)-       (type default)-      )-      (fill-       (type none)-      )-     )-    )-    (symbol "CR0402-FX-4701GLF_1_1"-     (pin passive line-      (at 0 3.81 270)-      (length 1.27)-      (name "~"-       (effects-        (font-         (size 1.27 1.27)-        )-       )-      )-      (number "1"-       (effects-        (font-         (size 1.27 1.27)-        )-       )-      )-     )-     (pin passive line-      (at 0 -3.81 90)-      (length 1.27)-      (name "~"-       (effects-        (font-         (size 1.27 1.27)-        )-       )-      )-      (number "2"-       (effects-        (font-         (size 1.27 1.27)-        )-       )-      )-     )-    )-  )+	(version 20231120)+	(generator "adom")+	(symbol "CR0402-FX-4701GLF"+		(pin_numbers+			(hide yes)+		)+		(pin_names+			(offset 0)+			(hide yes)+		)+		(exclude_from_sim no)+		(in_bom yes)+		(on_board yes)+		(property "Reference" "R"+			(at 0 5.08 0)+			(effects+				(font+					(size 1.27 1.27)+				)+			)+		)+		(property "Value" "CR0402-FX-4701GLF"+			(at 0 -5.08 0)+			(effects+				(font+					(size 1.27 1.27)+				)+			)+		)+		(property "Footprint" ""+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "Datasheet" "~"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "Description" "Resistor"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "MPN" "CR0402-FX-4701GLF"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "Manufacturer" "Bourns"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "Adom Wiki" "https://wiki.adom.inc/adom/cr0402-fx-4701glf"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(property "Adom_Chip_Outline" "asset:CR0402-FX-4701GLF-3d-outline-ink-heavy-named.svg@large"+			(at 0 0 0)+			(effects+				(font+					(size 1.27 1.27)+				)+				(hide yes)+			)+		)+		(symbol "CR0402-FX-4701GLF_0_1"+			(rectangle+				(start -1.016 -2.54)+				(end 1.016 2.54)+				(stroke+					(width 0.254)+					(type default)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -3.0835)+					(xy -7.8105 -1.3962)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6799 -0.1214)+					(xy -2.6799 1.5659)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -3.0835)+					(xy -2.6799 -0.1214)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -1.3962)+					(xy -2.6799 1.5659)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -9.3875 0.7284)+					(xy -9.3453 0.7528)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.9274 -0.6921)+					(xy -6.9274 -0.5828)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -9.3453 0.7041)+					(xy -9.3453 0.8135)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.9274 -0.5828)+					(xy -9.3453 0.8135)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.7734 1.0562)+					(xy -3.7734 1.2382)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.7734 1.2382)+					(xy -6.1913 2.6344)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.8643 -0.7284)+					(xy -3.7734 1.0562)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.9274 -0.5828)+					(xy -3.7734 1.2382)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -9.3453 0.8135)+					(xy -6.1913 2.6344)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8736 -3.1928)+					(xy -7.8736 -3.1199)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8736 -3.1928)+					(xy -10.5019 -1.6753)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -10.5019 -1.6753)+					(xy -10.5019 -1.6026)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8736 -3.1928)+					(xy -7.8105 -3.1565)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8736 -3.1199)+					(xy -7.8736 -1.4326)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -10.5019 -1.6026)+					(xy -10.5019 0.085)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -3.1565)+					(xy -6.5593 -2.4339)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -3.0835)+					(xy -6.5593 -2.3612)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.5593 -2.4339)+					(xy -6.5593 -2.3612)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -3.0835)+					(xy -7.8105 -1.3962)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8736 -1.4326)+					(xy -7.8736 -1.3596)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -10.5019 0.085)+					(xy -10.5019 0.1577)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8736 -1.3596)+					(xy -10.5019 0.1577)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8736 -1.3596)+					(xy -7.8105 -1.3232)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -10.5019 0.1577)+					(xy -10.4388 0.1944)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -1.3962)+					(xy -6.8221 -0.8255)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.8105 -1.3232)+					(xy -6.8221 -0.7528)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.8221 -0.8255)+					(xy -6.8221 -0.7528)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.8221 -0.7528)+					(xy -9.4507 0.7648)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -10.4388 0.1944)+					(xy -9.4507 0.7648)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.9311 -0.9166)+					(xy -3.9311 -0.8436)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.9311 -0.9166)+					(xy -3.9939 -0.88)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.9311 -0.9166)+					(xy -2.6799 -0.1944)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.9311 -0.8436)+					(xy -2.6799 -0.1214)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6168 -0.1577)+					(xy -2.6168 -0.085)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6799 -0.1944)+					(xy -2.6168 -0.1577)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6799 -0.1214)+					(xy -2.6799 1.5659)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6168 -0.085)+					(xy -2.6168 1.6026)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.668 0.9955)+					(xy -3.7734 1.0562)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.668 0.9955)+					(xy -2.6799 1.5659)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6168 1.6026)+					(xy -2.6168 1.6753)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6799 1.6389)+					(xy -2.6168 1.6753)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.2966 2.5737)+					(xy -6.2966 2.5858)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.2966 2.5858)+					(xy -5.3082 3.1565)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.668 0.9955)+					(xy -3.668 1.0682)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.668 1.0682)+					(xy -2.6799 1.6389)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -3.668 1.0682)+					(xy -3.7734 1.1289)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.2861 2.5796)+					(xy -6.2966 2.5858)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.3082 3.1565)+					(xy -5.2451 3.1928)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -2.6168 1.6753)+					(xy -5.2451 3.1928)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.4169 0.791)+					(xy -7.4501 0.7974)+					(xy -7.4948 0.7974)+					(xy -7.528 0.791)+					(xy -7.5724 0.7654)+					(xy -7.5835 0.7463)+					(xy -7.5835 0.7204)+					(xy -7.5724 0.7013)+					(xy -7.5502 0.6755)+					(xy -7.4948 0.6434)+					(xy -7.4501 0.6308)+					(xy -7.4169 0.6243)+					(xy -7.3725 0.6243)+					(xy -7.3392 0.6308)+					(xy -7.2949 0.6564)+					(xy -7.2838 0.6755)+					(xy -7.2838 0.7013)+					(xy -7.2949 0.7204)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.3947 0.868)+					(xy -7.1615 0.7334)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.3947 0.868)+					(xy -7.2949 0.9256)+					(xy -7.2502 0.9385)+					(xy -7.2284 0.9385)+					(xy -7.1948 0.932)+					(xy -7.1729 0.9191)+					(xy -7.1615 0.9)+					(xy -7.1615 0.8871)+					(xy -7.1837 0.8615)+					(xy -7.2838 0.8036)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.2059 0.8486)+					(xy -7.0063 0.823)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.1061 1.0346)+					(xy -7.1282 1.0087)+					(xy -7.1172 0.977)+					(xy -7.0728 0.9385)+					(xy -7.0395 0.9191)+					(xy -6.973 0.8935)+					(xy -6.9173 0.8871)+					(xy -6.8729 0.9)+					(xy -6.8507 0.9129)+					(xy -6.8286 0.9385)+					(xy -6.8396 0.9705)+					(xy -6.884 1.0087)+					(xy -6.9173 1.0281)+					(xy -6.9838 1.0537)+					(xy -7.0395 1.0602)+					(xy -7.0839 1.0472)+					(xy -7.1061 1.0346)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.8396 1.1883)+					(xy -6.7953 1.0346)+					(xy -6.6287 1.1307)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.8396 1.1883)+					(xy -6.6065 1.0537)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.6619 1.2909)+					(xy -6.6841 1.2653)+					(xy -6.673 1.2333)+					(xy -6.6287 1.1948)+					(xy -6.5954 1.1757)+					(xy -6.5289 1.1501)+					(xy -6.4731 1.1436)+					(xy -6.4288 1.1563)+					(xy -6.4066 1.1692)+					(xy -6.3844 1.1948)+					(xy -6.3955 1.2268)+					(xy -6.4401 1.2653)+					(xy -6.4731 1.2844)+					(xy -6.5399 1.3103)+					(xy -6.5954 1.3168)+					(xy -6.6397 1.3038)+					(xy -6.6619 1.2909)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.4401 1.3553)+					(xy -6.4509 1.3614)+					(xy -6.462 1.3805)+					(xy -6.462 1.3934)+					(xy -6.4509 1.4125)+					(xy -6.4066 1.4384)+					(xy -6.3733 1.4449)+					(xy -6.3511 1.4449)+					(xy -6.3179 1.4384)+					(xy -6.2957 1.4255)+					(xy -6.2846 1.4064)+					(xy -6.2735 1.374)+					(xy -6.2735 1.2459)+					(xy -6.118 1.3358)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.1401 1.4384)+					(xy -5.9402 1.5539)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.5669 0.3647)+					(xy -7.3337 0.2301)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.5669 0.3647)+					(xy -7.4224 0.4482)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.456 0.3006)+					(xy -7.367 0.3521)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.378 0.4737)+					(xy -6.9896 0.4288)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.2225 0.5634)+					(xy -7.1449 0.3391)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -7.0115 0.5313)+					(xy -6.8119 0.6468)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.7562 0.8326)+					(xy -6.7118 0.6789)+					(xy -6.5455 0.775)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.7562 0.8326)+					(xy -6.5233 0.698)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.4897 0.9863)+					(xy -6.3678 0.7876)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.6453 0.8966)+					(xy -6.4897 0.9863)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.3567 1.0633)+					(xy -6.3789 1.0377)+					(xy -6.3678 1.0057)+					(xy -6.3234 0.9675)+					(xy -6.2901 0.9481)+					(xy -6.2233 0.9225)+					(xy -6.1679 0.916)+					(xy -6.1235 0.929)+					(xy -6.1013 0.9416)+					(xy -6.0792 0.9675)+					(xy -6.0902 0.9992)+					(xy -6.1346 1.0377)+					(xy -6.1679 1.0571)+					(xy -6.2344 1.0827)+					(xy -6.2901 1.0891)+					(xy -6.3345 1.0762)+					(xy -6.3567 1.0633)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -6.1235 1.1467)+					(xy -6.1124 1.1661)+					(xy -6.1124 1.2043)+					(xy -5.8793 1.0697)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.757 1.3454)+					(xy -5.7906 1.3519)+					(xy -5.8349 1.3519)+					(xy -5.8682 1.3454)+					(xy -5.9125 1.3198)+					(xy -5.9236 1.3007)+					(xy -5.9236 1.2749)+					(xy -5.9125 1.2558)+					(xy -5.8903 1.2299)+					(xy -5.8349 1.1979)+					(xy -5.7906 1.1852)+					(xy -5.757 1.1788)+					(xy -5.7126 1.1788)+					(xy -5.6797 1.1852)+					(xy -5.635 1.2108)+					(xy -5.6239 1.2299)+					(xy -5.6239 1.2558)+					(xy -5.635 1.2749)+					(xy -5.6683 1.2943)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.724 1.2622)+					(xy -5.6683 1.2943)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.7351 1.4224)+					(xy -5.5016 1.2878)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.5016 1.2878)+					(xy -5.3686 1.3648)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.5463 1.5314)+					(xy -5.3131 1.3965)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.5463 1.5314)+					(xy -5.4018 1.6146)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+			(polyline+				(pts+					(xy -5.4351 1.4674)+					(xy -5.3464 1.5185)+				)+				(stroke+					(width 0.1)+					(type default)+					(color 110 110 110 1)+				)+				(fill+					(type none)+				)+			)+		)+		(symbol "CR0402-FX-4701GLF_1_1"+			(pin passive line+				(at 0 3.81 270)+				(length 1.27)+				(name "~"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+				(number "1"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+			)+			(pin passive line+				(at 0 -3.81 90)+				(length 1.27)+				(name "~"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+				(number "2"+					(effects+						(font+							(size 1.27 1.27)+						)+					)+				)+			)+		)+	) )
CR0402-FX-4701GLF.lbr+192−8
@@ -69,14 +69,198 @@ <symbols> <symbol name="CR0402-FX-4701GLF">   <description>0402 Thick Film Resistor · 4.7 kΩ ±1% · 1/16 W</description>-  <wire x1="-7.62" y1="5.08" x2="7.62" y2="5.08" width="0.254" layer="94"/>-  <wire x1="7.62" y1="5.08" x2="7.62" y2="-2.54" width="0.254" layer="94"/>-  <wire x1="7.62" y1="-2.54" x2="-7.62" y2="-2.54" width="0.254" layer="94"/>-  <wire x1="-7.62" y1="-2.54" x2="-7.62" y2="5.08" width="0.254" layer="94"/>-  <text x="2.0320" y="0.0000" size="1.27" layer="95" align="center">&gt;NAME</text>-  <text x="0.0000" y="0.0000" size="1.27" layer="96" align="center">&gt;VALUE</text>-  <pin name="1" x="-12.7" y="2.54" length="middle" direction="pas"/>-  <pin name="2" x="-12.7" y="0" length="middle" direction="pas"/>+  <wire x1="-1.016" y1="-2.54" x2="1.016" y2="-2.54" width="0.254" layer="94"/>+  <wire x1="1.016" y1="-2.54" x2="1.016" y2="2.54" width="0.254" layer="94"/>+  <wire x1="1.016" y1="2.54" x2="-1.016" y2="2.54" width="0.254" layer="94"/>+  <wire x1="-1.016" y1="2.54" x2="-1.016" y2="-2.54" width="0.254" layer="94"/>+  <wire x1="-7.8105" y1="-3.0835" x2="-7.8105" y2="-1.3962" width="0.0254" layer="94"/>+  <wire x1="-2.6799" y1="-0.1214" x2="-2.6799" y2="1.5659" width="0.0254" layer="94"/>+  <wire x1="-7.8105" y1="-3.0835" x2="-2.6799" y2="-0.1214" width="0.0254" layer="94"/>+  <wire x1="-7.8105" y1="-1.3962" x2="-2.6799" y2="1.5659" width="0.0254" layer="94"/>+  <wire x1="-9.3875" y1="0.7284" x2="-9.3453" y2="0.7528" width="0.0254" layer="94"/>+  <wire x1="-6.9274" y1="-0.6921" x2="-6.9274" y2="-0.5828" width="0.0254" layer="94"/>+  <wire x1="-9.3453" y1="0.7041" x2="-9.3453" y2="0.8135" width="0.0254" layer="94"/>+  <wire x1="-6.9274" y1="-0.5828" x2="-9.3453" y2="0.8135" width="0.0254" layer="94"/>+  <wire x1="-3.7734" y1="1.0562" x2="-3.7734" y2="1.2382" width="0.0254" layer="94"/>+  <wire x1="-3.7734" y1="1.2382" x2="-6.1913" y2="2.6344" width="0.0254" layer="94"/>+  <wire x1="-6.8643" y1="-0.7284" x2="-3.7734" y2="1.0562" width="0.0254" layer="94"/>+  <wire x1="-6.9274" y1="-0.5828" x2="-3.7734" y2="1.2382" width="0.0254" layer="94"/>+  <wire x1="-9.3453" y1="0.8135" x2="-6.1913" y2="2.6344" width="0.0254" layer="94"/>+  <wire x1="-7.8736" y1="-3.1928" x2="-7.8736" y2="-3.1199" width="0.0254" layer="94"/>+  <wire x1="-7.8736" y1="-3.1928" x2="-10.5019" y2="-1.6753" width="0.0254" layer="94"/>+  <wire x1="-10.5019" y1="-1.6753" x2="-10.5019" y2="-1.6026" width="0.0254" layer="94"/>+  <wire x1="-7.8736" y1="-3.1928" x2="-7.8105" y2="-3.1565" width="0.0254" layer="94"/>+  <wire x1="-7.8736" y1="-3.1199" x2="-7.8736" y2="-1.4326" width="0.0254" layer="94"/>+  <wire x1="-10.5019" y1="-1.6026" x2="-10.5019" y2="0.0850" width="0.0254" layer="94"/>+  <wire x1="-7.8105" y1="-3.1565" x2="-6.5593" y2="-2.4339" width="0.0254" layer="94"/>+  <wire x1="-7.8105" y1="-3.0835" x2="-6.5593" y2="-2.3612" width="0.0254" layer="94"/>+  <wire x1="-6.5593" y1="-2.4339" x2="-6.5593" y2="-2.3612" width="0.0254" layer="94"/>+  <wire x1="-7.8105" y1="-3.0835" x2="-7.8105" y2="-1.3962" width="0.0254" layer="94"/>+  <wire x1="-7.8736" y1="-1.4326" x2="-7.8736" y2="-1.3596" width="0.0254" layer="94"/>+  <wire x1="-10.5019" y1="0.0850" x2="-10.5019" y2="0.1577" width="0.0254" layer="94"/>+  <wire x1="-7.8736" y1="-1.3596" x2="-10.5019" y2="0.1577" width="0.0254" layer="94"/>+  <wire x1="-7.8736" y1="-1.3596" x2="-7.8105" y2="-1.3232" width="0.0254" layer="94"/>+  <wire x1="-10.5019" y1="0.1577" x2="-10.4388" y2="0.1944" width="0.0254" layer="94"/>+  <wire x1="-7.8105" y1="-1.3962" x2="-6.8221" y2="-0.8255" width="0.0254" layer="94"/>+  <wire x1="-7.8105" y1="-1.3232" x2="-6.8221" y2="-0.7528" width="0.0254" layer="94"/>+  <wire x1="-6.8221" y1="-0.8255" x2="-6.8221" y2="-0.7528" width="0.0254" layer="94"/>+  <wire x1="-6.8221" y1="-0.7528" x2="-9.4507" y2="0.7648" width="0.0254" layer="94"/>+  <wire x1="-10.4388" y1="0.1944" x2="-9.4507" y2="0.7648" width="0.0254" layer="94"/>+  <wire x1="-3.9311" y1="-0.9166" x2="-3.9311" y2="-0.8436" width="0.0254" layer="94"/>+  <wire x1="-3.9311" y1="-0.9166" x2="-3.9939" y2="-0.8800" width="0.0254" layer="94"/>+  <wire x1="-3.9311" y1="-0.9166" x2="-2.6799" y2="-0.1944" width="0.0254" layer="94"/>+  <wire x1="-3.9311" y1="-0.8436" x2="-2.6799" y2="-0.1214" width="0.0254" layer="94"/>+  <wire x1="-2.6168" y1="-0.1577" x2="-2.6168" y2="-0.0850" width="0.0254" layer="94"/>+  <wire x1="-2.6799" y1="-0.1944" x2="-2.6168" y2="-0.1577" width="0.0254" layer="94"/>+  <wire x1="-2.6799" y1="-0.1214" x2="-2.6799" y2="1.5659" width="0.0254" layer="94"/>+  <wire x1="-2.6168" y1="-0.0850" x2="-2.6168" y2="1.6026" width="0.0254" layer="94"/>+  <wire x1="-3.6680" y1="0.9955" x2="-3.7734" y2="1.0562" width="0.0254" layer="94"/>+  <wire x1="-3.6680" y1="0.9955" x2="-2.6799" y2="1.5659" width="0.0254" layer="94"/>+  <wire x1="-2.6168" y1="1.6026" x2="-2.6168" y2="1.6753" width="0.0254" layer="94"/>+  <wire x1="-2.6799" y1="1.6389" x2="-2.6168" y2="1.6753" width="0.0254" layer="94"/>+  <wire x1="-6.2966" y1="2.5737" x2="-6.2966" y2="2.5858" width="0.0254" layer="94"/>+  <wire x1="-6.2966" y1="2.5858" x2="-5.3082" y2="3.1565" width="0.0254" layer="94"/>+  <wire x1="-3.6680" y1="0.9955" x2="-3.6680" y2="1.0682" width="0.0254" layer="94"/>+  <wire x1="-3.6680" y1="1.0682" x2="-2.6799" y2="1.6389" width="0.0254" layer="94"/>+  <wire x1="-3.6680" y1="1.0682" x2="-3.7734" y2="1.1289" width="0.0254" layer="94"/>+  <wire x1="-6.2861" y1="2.5796" x2="-6.2966" y2="2.5858" width="0.0254" layer="94"/>+  <wire x1="-5.3082" y1="3.1565" x2="-5.2451" y2="3.1928" width="0.0254" layer="94"/>+  <wire x1="-2.6168" y1="1.6753" x2="-5.2451" y2="3.1928" width="0.0254" layer="94"/>+  <wire x1="-7.4169" y1="0.7910" x2="-7.4501" y2="0.7974" width="0.0254" layer="94"/>+  <wire x1="-7.4501" y1="0.7974" x2="-7.4948" y2="0.7974" width="0.0254" layer="94"/>+  <wire x1="-7.4948" y1="0.7974" x2="-7.5280" y2="0.7910" width="0.0254" layer="94"/>+  <wire x1="-7.5280" y1="0.7910" x2="-7.5724" y2="0.7654" width="0.0254" layer="94"/>+  <wire x1="-7.5724" y1="0.7654" x2="-7.5835" y2="0.7463" width="0.0254" layer="94"/>+  <wire x1="-7.5835" y1="0.7463" x2="-7.5835" y2="0.7204" width="0.0254" layer="94"/>+  <wire x1="-7.5835" y1="0.7204" x2="-7.5724" y2="0.7013" width="0.0254" layer="94"/>+  <wire x1="-7.5724" y1="0.7013" x2="-7.5502" y2="0.6755" width="0.0254" layer="94"/>+  <wire x1="-7.5502" y1="0.6755" x2="-7.4948" y2="0.6434" width="0.0254" layer="94"/>+  <wire x1="-7.4948" y1="0.6434" x2="-7.4501" y2="0.6308" width="0.0254" layer="94"/>+  <wire x1="-7.4501" y1="0.6308" x2="-7.4169" y2="0.6243" width="0.0254" layer="94"/>+  <wire x1="-7.4169" y1="0.6243" x2="-7.3725" y2="0.6243" width="0.0254" layer="94"/>+  <wire x1="-7.3725" y1="0.6243" x2="-7.3392" y2="0.6308" width="0.0254" layer="94"/>+  <wire x1="-7.3392" y1="0.6308" x2="-7.2949" y2="0.6564" width="0.0254" layer="94"/>+  <wire x1="-7.2949" y1="0.6564" x2="-7.2838" y2="0.6755" width="0.0254" layer="94"/>+  <wire x1="-7.2838" y1="0.6755" x2="-7.2838" y2="0.7013" width="0.0254" layer="94"/>+  <wire x1="-7.2838" y1="0.7013" x2="-7.2949" y2="0.7204" width="0.0254" layer="94"/>+  <wire x1="-7.3947" y1="0.8680" x2="-7.1615" y2="0.7334" width="0.0254" layer="94"/>+  <wire x1="-7.3947" y1="0.8680" x2="-7.2949" y2="0.9256" width="0.0254" layer="94"/>+  <wire x1="-7.2949" y1="0.9256" x2="-7.2502" y2="0.9385" width="0.0254" layer="94"/>+  <wire x1="-7.2502" y1="0.9385" x2="-7.2284" y2="0.9385" width="0.0254" layer="94"/>+  <wire x1="-7.2284" y1="0.9385" x2="-7.1948" y2="0.9320" width="0.0254" layer="94"/>+  <wire x1="-7.1948" y1="0.9320" x2="-7.1729" y2="0.9191" width="0.0254" layer="94"/>+  <wire x1="-7.1729" y1="0.9191" x2="-7.1615" y2="0.9000" width="0.0254" layer="94"/>+  <wire x1="-7.1615" y1="0.9000" x2="-7.1615" y2="0.8871" width="0.0254" layer="94"/>+  <wire x1="-7.1615" y1="0.8871" x2="-7.1837" y2="0.8615" width="0.0254" layer="94"/>+  <wire x1="-7.1837" y1="0.8615" x2="-7.2838" y2="0.8036" width="0.0254" layer="94"/>+  <wire x1="-7.2059" y1="0.8486" x2="-7.0063" y2="0.8230" width="0.0254" layer="94"/>+  <wire x1="-7.1061" y1="1.0346" x2="-7.1282" y2="1.0087" width="0.0254" layer="94"/>+  <wire x1="-7.1282" y1="1.0087" x2="-7.1172" y2="0.9770" width="0.0254" layer="94"/>+  <wire x1="-7.1172" y1="0.9770" x2="-7.0728" y2="0.9385" width="0.0254" layer="94"/>+  <wire x1="-7.0728" y1="0.9385" x2="-7.0395" y2="0.9191" width="0.0254" layer="94"/>+  <wire x1="-7.0395" y1="0.9191" x2="-6.9730" y2="0.8935" width="0.0254" layer="94"/>+  <wire x1="-6.9730" y1="0.8935" x2="-6.9173" y2="0.8871" width="0.0254" layer="94"/>+  <wire x1="-6.9173" y1="0.8871" x2="-6.8729" y2="0.9000" width="0.0254" layer="94"/>+  <wire x1="-6.8729" y1="0.9000" x2="-6.8507" y2="0.9129" width="0.0254" layer="94"/>+  <wire x1="-6.8507" y1="0.9129" x2="-6.8286" y2="0.9385" width="0.0254" layer="94"/>+  <wire x1="-6.8286" y1="0.9385" x2="-6.8396" y2="0.9705" width="0.0254" layer="94"/>+  <wire x1="-6.8396" y1="0.9705" x2="-6.8840" y2="1.0087" width="0.0254" layer="94"/>+  <wire x1="-6.8840" y1="1.0087" x2="-6.9173" y2="1.0281" width="0.0254" layer="94"/>+  <wire x1="-6.9173" y1="1.0281" x2="-6.9838" y2="1.0537" width="0.0254" layer="94"/>+  <wire x1="-6.9838" y1="1.0537" x2="-7.0395" y2="1.0602" width="0.0254" layer="94"/>+  <wire x1="-7.0395" y1="1.0602" x2="-7.0839" y2="1.0472" width="0.0254" layer="94"/>+  <wire x1="-7.0839" y1="1.0472" x2="-7.1061" y2="1.0346" width="0.0254" layer="94"/>+  <wire x1="-6.8396" y1="1.1883" x2="-6.7953" y2="1.0346" width="0.0254" layer="94"/>+  <wire x1="-6.7953" y1="1.0346" x2="-6.6287" y2="1.1307" width="0.0254" layer="94"/>+  <wire x1="-6.8396" y1="1.1883" x2="-6.6065" y2="1.0537" width="0.0254" layer="94"/>+  <wire x1="-6.6619" y1="1.2909" x2="-6.6841" y2="1.2653" width="0.0254" layer="94"/>+  <wire x1="-6.6841" y1="1.2653" x2="-6.6730" y2="1.2333" width="0.0254" layer="94"/>+  <wire x1="-6.6730" y1="1.2333" x2="-6.6287" y2="1.1948" width="0.0254" layer="94"/>+  <wire x1="-6.6287" y1="1.1948" x2="-6.5954" y2="1.1757" width="0.0254" layer="94"/>+  <wire x1="-6.5954" y1="1.1757" x2="-6.5289" y2="1.1501" width="0.0254" layer="94"/>+  <wire x1="-6.5289" y1="1.1501" x2="-6.4731" y2="1.1436" width="0.0254" layer="94"/>+  <wire x1="-6.4731" y1="1.1436" x2="-6.4288" y2="1.1563" width="0.0254" layer="94"/>+  <wire x1="-6.4288" y1="1.1563" x2="-6.4066" y2="1.1692" width="0.0254" layer="94"/>+  <wire x1="-6.4066" y1="1.1692" x2="-6.3844" y2="1.1948" width="0.0254" layer="94"/>+  <wire x1="-6.3844" y1="1.1948" x2="-6.3955" y2="1.2268" width="0.0254" layer="94"/>+  <wire x1="-6.3955" y1="1.2268" x2="-6.4401" y2="1.2653" width="0.0254" layer="94"/>+  <wire x1="-6.4401" y1="1.2653" x2="-6.4731" y2="1.2844" width="0.0254" layer="94"/>+  <wire x1="-6.4731" y1="1.2844" x2="-6.5399" y2="1.3103" width="0.0254" layer="94"/>+  <wire x1="-6.5399" y1="1.3103" x2="-6.5954" y2="1.3168" width="0.0254" layer="94"/>+  <wire x1="-6.5954" y1="1.3168" x2="-6.6397" y2="1.3038" width="0.0254" layer="94"/>+  <wire x1="-6.6397" y1="1.3038" x2="-6.6619" y2="1.2909" width="0.0254" layer="94"/>+  <wire x1="-6.4401" y1="1.3553" x2="-6.4509" y2="1.3614" width="0.0254" layer="94"/>+  <wire x1="-6.4509" y1="1.3614" x2="-6.4620" y2="1.3805" width="0.0254" layer="94"/>+  <wire x1="-6.4620" y1="1.3805" x2="-6.4620" y2="1.3934" width="0.0254" layer="94"/>+  <wire x1="-6.4620" y1="1.3934" x2="-6.4509" y2="1.4125" width="0.0254" layer="94"/>+  <wire x1="-6.4509" y1="1.4125" x2="-6.4066" y2="1.4384" width="0.0254" layer="94"/>+  <wire x1="-6.4066" y1="1.4384" x2="-6.3733" y2="1.4449" width="0.0254" layer="94"/>+  <wire x1="-6.3733" y1="1.4449" x2="-6.3511" y2="1.4449" width="0.0254" layer="94"/>+  <wire x1="-6.3511" y1="1.4449" x2="-6.3179" y2="1.4384" width="0.0254" layer="94"/>+  <wire x1="-6.3179" y1="1.4384" x2="-6.2957" y2="1.4255" width="0.0254" layer="94"/>+  <wire x1="-6.2957" y1="1.4255" x2="-6.2846" y2="1.4064" width="0.0254" layer="94"/>+  <wire x1="-6.2846" y1="1.4064" x2="-6.2735" y2="1.3740" width="0.0254" layer="94"/>+  <wire x1="-6.2735" y1="1.3740" x2="-6.2735" y2="1.2459" width="0.0254" layer="94"/>+  <wire x1="-6.2735" y1="1.2459" x2="-6.1180" y2="1.3358" width="0.0254" layer="94"/>+  <wire x1="-6.1401" y1="1.4384" x2="-5.9402" y2="1.5539" width="0.0254" layer="94"/>+  <wire x1="-7.5669" y1="0.3647" x2="-7.3337" y2="0.2301" width="0.0254" layer="94"/>+  <wire x1="-7.5669" y1="0.3647" x2="-7.4224" y2="0.4482" width="0.0254" layer="94"/>+  <wire x1="-7.4560" y1="0.3006" x2="-7.3670" y2="0.3521" width="0.0254" layer="94"/>+  <wire x1="-7.3780" y1="0.4737" x2="-6.9896" y2="0.4288" width="0.0254" layer="94"/>+  <wire x1="-7.2225" y1="0.5634" x2="-7.1449" y2="0.3391" width="0.0254" layer="94"/>+  <wire x1="-7.0115" y1="0.5313" x2="-6.8119" y2="0.6468" width="0.0254" layer="94"/>+  <wire x1="-6.7562" y1="0.8326" x2="-6.7118" y2="0.6789" width="0.0254" layer="94"/>+  <wire x1="-6.7118" y1="0.6789" x2="-6.5455" y2="0.7750" width="0.0254" layer="94"/>+  <wire x1="-6.7562" y1="0.8326" x2="-6.5233" y2="0.6980" width="0.0254" layer="94"/>+  <wire x1="-6.4897" y1="0.9863" x2="-6.3678" y2="0.7876" width="0.0254" layer="94"/>+  <wire x1="-6.6453" y1="0.8966" x2="-6.4897" y2="0.9863" width="0.0254" layer="94"/>+  <wire x1="-6.3567" y1="1.0633" x2="-6.3789" y2="1.0377" width="0.0254" layer="94"/>+  <wire x1="-6.3789" y1="1.0377" x2="-6.3678" y2="1.0057" width="0.0254" layer="94"/>+  <wire x1="-6.3678" y1="1.0057" x2="-6.3234" y2="0.9675" width="0.0254" layer="94"/>+  <wire x1="-6.3234" y1="0.9675" x2="-6.2901" y2="0.9481" width="0.0254" layer="94"/>+  <wire x1="-6.2901" y1="0.9481" x2="-6.2233" y2="0.9225" width="0.0254" layer="94"/>+  <wire x1="-6.2233" y1="0.9225" x2="-6.1679" y2="0.9160" width="0.0254" layer="94"/>+  <wire x1="-6.1679" y1="0.9160" x2="-6.1235" y2="0.9290" width="0.0254" layer="94"/>+  <wire x1="-6.1235" y1="0.9290" x2="-6.1013" y2="0.9416" width="0.0254" layer="94"/>+  <wire x1="-6.1013" y1="0.9416" x2="-6.0792" y2="0.9675" width="0.0254" layer="94"/>+  <wire x1="-6.0792" y1="0.9675" x2="-6.0902" y2="0.9992" width="0.0254" layer="94"/>+  <wire x1="-6.0902" y1="0.9992" x2="-6.1346" y2="1.0377" width="0.0254" layer="94"/>+  <wire x1="-6.1346" y1="1.0377" x2="-6.1679" y2="1.0571" width="0.0254" layer="94"/>+  <wire x1="-6.1679" y1="1.0571" x2="-6.2344" y2="1.0827" width="0.0254" layer="94"/>+  <wire x1="-6.2344" y1="1.0827" x2="-6.2901" y2="1.0891" width="0.0254" layer="94"/>+  <wire x1="-6.2901" y1="1.0891" x2="-6.3345" y2="1.0762" width="0.0254" layer="94"/>+  <wire x1="-6.3345" y1="1.0762" x2="-6.3567" y2="1.0633" width="0.0254" layer="94"/>+  <wire x1="-6.1235" y1="1.1467" x2="-6.1124" y2="1.1661" width="0.0254" layer="94"/>+  <wire x1="-6.1124" y1="1.1661" x2="-6.1124" y2="1.2043" width="0.0254" layer="94"/>+  <wire x1="-6.1124" y1="1.2043" x2="-5.8793" y2="1.0697" width="0.0254" layer="94"/>+  <wire x1="-5.7570" y1="1.3454" x2="-5.7906" y2="1.3519" width="0.0254" layer="94"/>+  <wire x1="-5.7906" y1="1.3519" x2="-5.8349" y2="1.3519" width="0.0254" layer="94"/>+  <wire x1="-5.8349" y1="1.3519" x2="-5.8682" y2="1.3454" width="0.0254" layer="94"/>+  <wire x1="-5.8682" y1="1.3454" x2="-5.9125" y2="1.3198" width="0.0254" layer="94"/>+  <wire x1="-5.9125" y1="1.3198" x2="-5.9236" y2="1.3007" width="0.0254" layer="94"/>+  <wire x1="-5.9236" y1="1.3007" x2="-5.9236" y2="1.2749" width="0.0254" layer="94"/>+  <wire x1="-5.9236" y1="1.2749" x2="-5.9125" y2="1.2558" width="0.0254" layer="94"/>+  <wire x1="-5.9125" y1="1.2558" x2="-5.8903" y2="1.2299" width="0.0254" layer="94"/>+  <wire x1="-5.8903" y1="1.2299" x2="-5.8349" y2="1.1979" width="0.0254" layer="94"/>+  <wire x1="-5.8349" y1="1.1979" x2="-5.7906" y2="1.1852" width="0.0254" layer="94"/>+  <wire x1="-5.7906" y1="1.1852" x2="-5.7570" y2="1.1788" width="0.0254" layer="94"/>+  <wire x1="-5.7570" y1="1.1788" x2="-5.7126" y2="1.1788" width="0.0254" layer="94"/>+  <wire x1="-5.7126" y1="1.1788" x2="-5.6797" y2="1.1852" width="0.0254" layer="94"/>+  <wire x1="-5.6797" y1="1.1852" x2="-5.6350" y2="1.2108" width="0.0254" layer="94"/>+  <wire x1="-5.6350" y1="1.2108" x2="-5.6239" y2="1.2299" width="0.0254" layer="94"/>+  <wire x1="-5.6239" y1="1.2299" x2="-5.6239" y2="1.2558" width="0.0254" layer="94"/>+  <wire x1="-5.6239" y1="1.2558" x2="-5.6350" y2="1.2749" width="0.0254" layer="94"/>+  <wire x1="-5.6350" y1="1.2749" x2="-5.6683" y2="1.2943" width="0.0254" layer="94"/>+  <wire x1="-5.7240" y1="1.2622" x2="-5.6683" y2="1.2943" width="0.0254" layer="94"/>+  <wire x1="-5.7351" y1="1.4224" x2="-5.5016" y2="1.2878" width="0.0254" layer="94"/>+  <wire x1="-5.5016" y1="1.2878" x2="-5.3686" y2="1.3648" width="0.0254" layer="94"/>+  <wire x1="-5.5463" y1="1.5314" x2="-5.3131" y2="1.3965" width="0.0254" layer="94"/>+  <wire x1="-5.5463" y1="1.5314" x2="-5.4018" y2="1.6146" width="0.0254" layer="94"/>+  <wire x1="-5.4351" y1="1.4674" x2="-5.3464" y2="1.5185" width="0.0254" layer="94"/>+  <text x="2.5400" y="-2.5400" size="1.27" layer="95" align="bottom-left">&gt;NAME</text>+  <text x="2.5400" y="2.5400" size="1.27" layer="96" align="top-left">&gt;VALUE</text>+  <pin name="1" x="0" y="3.81" length="short" direction="pas" rot="R270" visible="pad"/>+  <pin name="2" x="0" y="-3.81" length="short" direction="pas" rot="R90" visible="pad"/> </symbol> </symbols> <devicesets>
README.md+14−4
@@ -8,6 +8,8 @@ *Bourns CR series chip resistor, product image from [bourns.com](https://www.bourns.com/products/resistors/thick-film-chip-resistors?product=CR0402).* <!-- /product-photo --> +::adom-verified{src="/adom/cr0402-fx-4701glf/render/verification.json"}+ ## Key specs  | Spec | Datasheet |@@ -29,6 +31,14 @@ CR0402-FX-4701GLF is the 4.7 kΩ member of Bourns&rsquo; CR series of general-pu  Design against 1/16 W at 70 °C ambient, the rating derates linearly above that and reaches zero at +155 °C (p.1, p.3), and keep continuous voltage at or below 50 V; the 100 V figure is an overload limit, not a working one. (p.1) TCR is &plusmn;100 ppm/°C across the 10 Ω-1 MΩ &plusmn;1 % band this value sits in. (p.1) A 2.5× rated-voltage, 5-second overload is allowed to shift the value by up to &plusmn;(2 % + 0.1 Ω), worth knowing if a transient can land across it. (p.4) +## 3D models++Every 3D file on this page and what makes each one different: the STEP tab holds the CAD models for board tools+(with top and underside previews), the GLB tab the meshes for viewers and renders. AIs: read `models.json` (schema+adom/models@1) rather than guessing from file names.++::adom-models{src="/adom/cr0402-fx-4701glf/render/models.json"}+ ## 3D model provenance  Bourns publishes no 3D model for the CR series, so the STEP is **AI-generated** from the Bourns CR Series datasheet@@ -91,7 +101,7 @@ The part's 3D outline in the standard pose (pad 1 toward the viewer), drawn from  ## Symbol options -The default symbol, `CR0402-FX-4701GLF.kicad_sym` (the one in the Symbol & Footprint panel), is the plain standard symbol. `CR0402-FX-4701GLF-outline.kicad_sym` is the same symbol with the part's 3D chip outline drawn beside it, its part number placed and reading as on the 3D model.+The default symbol, `CR0402-FX-4701GLF.kicad_sym` (the one in the Symbol & Footprint panel, and in the Fusion and Altium libraries), keeps the standard resistor glyph and draws the part's 3D chip outline beside it, its part number reading as on the 3D model. `CR0402-FX-4701GLF-plain.kicad_sym` is the same symbol without the outline.  ## Ordering @@ -106,8 +116,8 @@ The default symbol, `CR0402-FX-4701GLF.kicad_sym` (the one in the Symbol & Footp  | File | What it is | |---|---|-| [CR0402-FX-4701GLF.kicad_sym](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF.kicad_sym) | KiCad symbol (standard symbol, the page default) |-| [CR0402-FX-4701GLF-outline.kicad_sym](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF-outline.kicad_sym) | KiCad symbol with the 3D chip outline |+| [CR0402-FX-4701GLF.kicad_sym](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF.kicad_sym) | KiCad symbol with the 3D chip outline beside the glyph (the page default) |+| [CR0402-FX-4701GLF-plain.kicad_sym](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF-plain.kicad_sym) | KiCad symbol without the chip outline | | [CR0402-FX-4701GLF.kicad_mod](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF.kicad_mod) | KiCad footprint (datasheet land pattern) | | [CR0402-FX-4701GLF.step](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF.step) | 3D STEP with the part number laser-etched (default) | | [CR0402-FX-4701GLF-unetched.step](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF-unetched.step) | 3D STEP, bare (no mark) |@@ -115,7 +125,7 @@ The default symbol, `CR0402-FX-4701GLF.kicad_sym` (the one in the Symbol & Footp | [CR0402-FX-4701GLF-unetched.glb](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF-unetched.glb) | 3D GLB, bare | | [CR0402-FX-4701GLF.lbr](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF.lbr) | Fusion 360 / EAGLE library | | [CR0402-FX-4701GLF.adom-lbr.json](/blob/component/cr0402-fx-4701glf/CR0402-FX-4701GLF.adom-lbr.json) | adom-lbr part (converts to Altium, KiCad, EAGLE) |-| [CR0402-FX-4701GLF-datasheet.pdf](https://wiki.adom.inc/download/aravk/cr0402-fx-4701glf/1.0.0/CR0402-FX-4701GLF-datasheet.pdf) | Datasheet (release asset) |+| [cr0402-fx-4701glf-datasheet.pdf](/blob/component/cr0402-fx-4701glf/docs/cr0402-fx-4701glf-datasheet.pdf) | Bourns CR Series datasheet REV. 03/21 (the revision this page cites) |  ## Provenance 
cr0402-fx-4701glf-hero.glb
⋯ 1 unchanged line ⋯
docs/cr0402-fx-4701glf-datasheet.pdfadded
⋯ 1 unchanged line ⋯
docs/models/CR0402-FX-4701GLF-unetched.glb.pngadded
⋯ 1 unchanged line ⋯
docs/models/CR0402-FX-4701GLF-unetched.step.bottom.pngadded
⋯ 1 unchanged line ⋯
docs/models/CR0402-FX-4701GLF-unetched.step.top.pngadded
⋯ 1 unchanged line ⋯
docs/models/CR0402-FX-4701GLF.glb.pngadded
⋯ 1 unchanged line ⋯
docs/models/CR0402-FX-4701GLF.insertion.glb.pngadded
⋯ 1 unchanged line ⋯
docs/models/CR0402-FX-4701GLF.step.bottom.pngadded
⋯ 1 unchanged line ⋯
docs/models/CR0402-FX-4701GLF.step.top.pngadded
⋯ 1 unchanged line ⋯
docs/models/cr0402-fx-4701glf-hero.glb.pngadded
⋯ 1 unchanged line ⋯
models.jsonadded+157
@@ -0,0 +1,157 @@+{+ "schema": "adom/models@1",+ "part": "CR0402-FX-4701GLF",+ "models": [+  {+   "path": "CR0402-FX-4701GLF-unetched.glb",+   "format": "glb",+   "title": "Unmarked resistor GLB",+   "status": "current",+   "slot": null,+   "variant": "plain",+   "use": [+    "render"+   ],+   "unique": "The unmarked resistor as a GLB.",+   "marking": null,+   "sha256": "66b0b567849871da8999f8d637b0c72a1957d6ab922706960232a7b944a66c1c",+   "git_blob": "987806c350ae4e6921826609edd684c013305cf2",+   "bytes": 21076,+   "role": "derived",+   "source": "AI-built from Bourns' CR Series datasheet REV. 03/21 dimensions; builder in provenance/tools",+   "colours": true,+   "derived_from": "CR0402-FX-4701GLF-unetched.step",+   "thumb": "docs/models/CR0402-FX-4701GLF-unetched.glb.png"+  },+  {+   "path": "CR0402-FX-4701GLF-unetched.step",+   "format": "step",+   "title": "Bourns-dimension model, unmarked",+   "status": "current",+   "slot": "model_3d_step_plain",+   "variant": "plain",+   "use": [+    "board-cad"+   ],+   "unique": "Same model without the part number, for CAD that adds its own marking.",+   "marking": null,+   "sha256": "4715b00a26bc4e81d4cdb2c8d51467ae1fb054f9cbe8d7d3d61ab69bcef298f5",+   "git_blob": "2288367029f5474a4baf72248520c53c5d50a323",+   "bytes": 146135,+   "role": "datasheet-built",+   "source": "AI-built from Bourns' CR Series datasheet REV. 03/21 dimensions; builder in provenance/tools",+   "colours": true,+   "derived_from": "CR0402-FX-4701GLF.step",+   "thumb": "docs/models/CR0402-FX-4701GLF-unetched.step.top.png",+   "thumb_bottom": "docs/models/CR0402-FX-4701GLF-unetched.step.bottom.png"+  },+  {+   "path": "CR0402-FX-4701GLF.glb",+   "format": "glb",+   "title": "Etched resistor GLB",+   "status": "current",+   "slot": "model_3d_plain",+   "variant": "etched",+   "use": [+    "render"+   ],+   "unique": "The etched resistor on its own as a GLB, no annotations.",+   "marking": {+    "text": "CR0402-FX-4701GLF",+    "surface": "top",+    "colour": "white"+   },+   "sha256": "71b99ad81fb7542ba51cdf2ab18db9651e1b0bff4834da09f883d6badd4d2f10",+   "git_blob": "21a7a8f0c5a5ffe62c796938630b6d04e5a2bc81",+   "bytes": 34484,+   "role": "derived",+   "source": "AI-built from Bourns' CR Series datasheet REV. 03/21 dimensions; builder in provenance/tools",+   "colours": true,+   "derived_from": "CR0402-FX-4701GLF.step",+   "thumb": "docs/models/CR0402-FX-4701GLF.glb.png"+  },+  {+   "path": "CR0402-FX-4701GLF.insertion.glb",+   "format": "glb",+   "title": "Assembly scene: resistor dropping onto its pads",+   "status": "current",+   "slot": null,+   "variant": "insertion",+   "use": [+    "board-insertion",+    "render"+   ],+   "unique": "The resistor seated on a small board with the land pattern's pads, 300 um solder balls and silkscreen, with an insertion animation.",+   "marking": {+    "text": "CR0402-FX-4701GLF",+    "surface": "top",+    "colour": "white"+   },+   "sha256": "8676d56950239a98dc0d52e3c736b3fa0f0215926f2a50a062321b2a286a3efb",+   "git_blob": "d5a012190261e6c9283b405b02bed5e59d8e9199",+   "bytes": 171620,+   "role": "derived",+   "source": "AI-built from Bourns' CR Series datasheet REV. 03/21 dimensions; builder in provenance/tools",+   "colours": true,+   "derived_from": "CR0402-FX-4701GLF.glb",+   "thumb": "docs/models/CR0402-FX-4701GLF.insertion.glb.png"+  },+  {+   "path": "CR0402-FX-4701GLF.step",+   "format": "step",+   "title": "Bourns-dimension model, part number etched",+   "status": "current",+   "slot": "step",+   "variant": "etched",+   "use": [+    "board-cad",+    "render"+   ],+   "unique": "L 1.00, W 0.50, T 0.32 mm with the tinned wrap-around terminals (top 0.20, bottom 0.25 mm), the black overcoat, and the part number on top.",+   "marking": {+    "text": "CR0402-FX-4701GLF",+    "surface": "black overcoat (top)",+    "colour": "white"+   },+   "sha256": "9c5e52b229df34577f3b79d8b4b999255d04f0dc3901804db5df9ce603c12805",+   "git_blob": "fb007a3c23500b60762393fa2501a609b820d97c",+   "bytes": 422903,+   "role": "datasheet-built",+   "source": "AI-built from Bourns' CR Series datasheet REV. 03/21 dimensions; builder in provenance/tools",+   "colours": true,+   "thumb": "docs/models/CR0402-FX-4701GLF.step.top.png",+   "thumb_bottom": "docs/models/CR0402-FX-4701GLF.step.bottom.png"+  },+  {+   "path": "cr0402-fx-4701glf-hero.glb",+   "format": "glb",+   "title": "Wiki hero (annotated)",+   "status": "current",+   "slot": "model_3d",+   "variant": "hero",+   "use": [+    "wiki-hero"+   ],+   "unique": "The page's 3D viewer model: the etched resistor with the Copper pads layer and the hidden 300 um Solder balls layer. Not for board CAD.",+   "marking": {+    "text": "CR0402-FX-4701GLF",+    "surface": "top",+    "colour": "white"+   },+   "sha256": "56e82dc31bf78550747fb96683e8ff64ec84e7964a7504b448ad10f286dab6a3",+   "git_blob": "b3fa3a85d7942765104e42a4455d8b454145bae0",+   "bytes": 51744,+   "role": "derived",+   "source": "AI-built from Bourns' CR Series datasheet REV. 03/21 dimensions; builder in provenance/tools",+   "colours": true,+   "derived_from": "CR0402-FX-4701GLF.step",+   "thumb": "docs/models/cr0402-fx-4701glf-hero.glb.png"+  }+ ],+ "updated": "2026-10-04",+ "front": [+  0,+  -1,+  0+ ]+}
page.json+7−2
@@ -21,9 +21,14 @@       "model_3d_step": "CR0402-FX-4701GLF.step",       "model_3d_plain": "CR0402-FX-4701GLF.glb",       "model_3d_step_plain": "CR0402-FX-4701GLF-unetched.step",-      "model_3d": "cr0402-fx-4701glf-hero.glb"+      "model_3d": "cr0402-fx-4701glf-hero.glb",+      "datasheet": "docs/cr0402-fx-4701glf-datasheet.pdf"+    },+    "distributor_links": {+      "mouser": "652-CR0402FX-4701GLF",+      "digikey": "CR0402-FX-4701GLFTR-ND",+      "lcsc": false     },-    "distributor_links": {},     "value": "4.7kΩ",     "viewer_3d": {       "tooltips": "authored"
provenance/tools/glb_post_metal.pyadded+26
@@ -0,0 +1,26 @@+#!/usr/bin/env python3+"""Make the terminal metal read as metal in every GLB of a component page (hero, chip GLBs, scenes).++STEP colours carry no metalness, so step2glb writes the tinned terminals (sRGB 0.80, 0.81, 0.83; linear+0.604, 0.621, 0.656) as a plain grey. This sets every material of that colour (the castellations, bottom pads,+top-side terminals, lead-frame stubs) to metallicFactor 0.9, roughnessFactor 0.25: bright tinned metal against+the white insulation. Idempotent. usage: glb_post_metal.py FILE.glb [...]"""+import json, struct, sys+METAL = (0.6038, 0.6209, 0.6559)+++def read_glb(p):+    b = open(p, "rb").read(); n = struct.unpack("<I", b[12:16])[0]; js = json.loads(b[20:20 + n]); o = 20 + n+    return js, b[o:]+++for p in sys.argv[1:]:+    js, rest = read_glb(p); n = 0+    for m in js.get("materials", []):+        pbr = m.setdefault("pbrMetallicRoughness", {}); c = (pbr.get("baseColorFactor") or [1, 1, 1, 1])[:3]+        if max(abs(a - b) for a, b in zip(c, METAL)) < 2e-3 or m.get("name") == "terminal_tinned":+            pbr.update(metallicFactor=0.9, roughnessFactor=0.25); n += 1+    j = json.dumps(js, separators=(",", ":")).encode(); j += b" " * (-len(j) % 4)+    body = struct.pack("<II", len(j), 0x4E4F534A) + j + rest+    open(p, "wb").write(struct.pack("<III", 0x46546C67, 2, 12 + len(body)) + body)+    print(json.dumps(dict(glb=p, metal_materials=n)))
provenance/tools/hero_post_solderballs.pyadded+105
@@ -0,0 +1,105 @@+#!/usr/bin/env python3+"""Hero GLB: a hidden 'Solder balls' layer showing where the 300 um jet-paste balls land on the footprint's pads.++Follows the Adom footprint standard (john/adom-solder-ball-layer-standard): balls 0.30 mm across at 0.25 mm pitch+(adjacent balls overlap slightly, by design), each drawn as a hemisphere with its flat face on the pad, dull leaded+solder grey (63Sn/37Pb), the layer hidden by default. Ball positions use the same rule as adom-footprint's paste-dot+overlay (1.0.26): per SMD pad, a grid at 0.25 mm pitch centred on the pad, kept 0.06 mm inside the pad edge.+The count per pad follows from the pad size (2 x 2 on a 0.7 mm pad, 1 on a 0.5 mm pad), identical to `adom-footprint embed`.++usage: hero_post_solderballs.py HERO.glb [FOOTPRINT.kicad_mod]   (in place; refuses to run twice)+The footprint defaults to the single .kicad_mod beside the GLB."""+import glob, json, math, os, re, struct, sys++D, PITCH, MARGIN = 0.30, 0.25, 0.06          # mm+MM = 0.001+Z0 = -0.016                                  # flat face just above the copper fill (-0.018 mm), under the chip seat+SEG, RINGS = 16, 6+NODE = "Solder balls - 300 um jet paste"+TIP = "Jet-paste solder ball, 0.30 mm across, 0.25 mm pitch (Adom 300 um solder-ball layer standard).\n63Sn/37Pb leaded paste; %s per pad on this footprint, %d in all."+++def read_glb(p):+    b = open(p, "rb").read(); n = struct.unpack("<I", b[12:16])[0]; js = json.loads(b[20:20 + n]); o = 20 + n+    return js, bytearray(b[o + 8:o + 8 + struct.unpack("<I", b[o:o + 4])[0]] if o < len(b) else b"")+++def write_glb(p, js, bin_):+    j = json.dumps(js, separators=(",", ":")).encode(); j += b" " * (-len(j) % 4); bin_ += b"\0" * (-len(bin_) % 4)+    open(p, "wb").write(struct.pack("<III", 0x46546C67, 2, 12 + 8 + len(j) + 8 + len(bin_)) + struct.pack("<II", len(j), 0x4E4F534A) + j+                       + struct.pack("<II", len(bin_), 0x004E4942) + bytes(bin_))+++def pads(mod):+    t = open(mod).read(); out = []+    for m in re.finditer(r'\(pad\s+"?([^"\s]*)"?\s+smd\s+\w+\s+\(at\s+([-\d.]+)\s+([-\d.]+)(?:\s+[-\d.]+)?\)\s+\(size\s+([-\d.]+)\s+([-\d.]+)\)', t):+        out.append(dict(num=m.group(1), x=float(m.group(2)), y=-float(m.group(3)), w=float(m.group(4)), h=float(m.group(5))))   # KiCad y down -> y up+    return out+++def grid(c, span):+    n = max(1, int(math.floor((span - 2 * MARGIN - D) / PITCH + 1e-9)) + 1)+    return [c + (i - (n - 1) / 2) * PITCH for i in range(n)]+++glb = sys.argv[1]+mod = sys.argv[2] if len(sys.argv) > 2 else (glob.glob(os.path.join(os.path.dirname(os.path.abspath(glb)), "*.kicad_mod")) or [None])[0]+if not mod: sys.exit("no .kicad_mod beside the GLB; pass one")+js, bin_ = read_glb(glb)+if any(n.get("name") == NODE for n in js["nodes"]): sys.exit(json.dumps(dict(glb=glb, skip="solder balls already present")))+balls = [(x, y, p["num"]) for p in pads(mod) for y in grid(p["y"], p["h"]) for x in grid(p["x"], p["w"])]+_pp = pads(mod); _per = [len(grid(p["x"], p["w"])) * len(grid(p["y"], p["h"])) for p in _pp]+_per_txt = ("%d x %d" % (len(grid(_pp[0]["x"], _pp[0]["w"])), len(grid(_pp[0]["y"], _pp[0]["h"])))) if len(set(_per)) == 1 and _per[0] > 1 else ("1" if set(_per) == {1} else "varies")+TIP = TIP % (_per_txt, len(balls))+++def buf(data, target=None):+    global bin_+    bin_ += b"\0" * (-len(bin_) % 4)+    bv = dict(buffer=0, byteOffset=len(bin_), byteLength=len(data)); bv.update({"target": target} if target else {})+    js.setdefault("bufferViews", []).append(bv); bin_ += data+    return len(js["bufferViews"]) - 1+++# one hemisphere mesh at the origin (mm), dome up (+Z), flat disc down; every ball is a node translated onto its pad+r = D / 2; P, N, I = [], [], []+for k in range(RINGS + 1):                   # dome: rings from the equator (k=0) to the pole+    th = (math.pi / 2) * k / RINGS+    for s in range(SEG + 1):+        ph = 2 * math.pi * s / SEG; nx, ny, nz = math.cos(th) * math.cos(ph), math.cos(th) * math.sin(ph), math.sin(th)+        P.append((r * nx, r * ny, r * nz)); N.append((nx, ny, nz))+for k in range(RINGS):+    for s in range(SEG):+        a = k * (SEG + 1) + s; b = a + SEG + 1+        I += [a, a + 1, b, a + 1, b + 1, b]+c0 = len(P); P.append((0, 0, 0)); N.append((0, 0, -1))+for s in range(SEG + 1):                     # flat face on the pad+    ph = 2 * math.pi * s / SEG; P.append((r * math.cos(ph), r * math.sin(ph), 0)); N.append((0, 0, -1))+for s in range(SEG):+    I += [c0, c0 + 2 + s, c0 + 1 + s]+pos = b"".join(struct.pack("<3f", x * MM, y * MM, z * MM) for x, y, z in P)+nrm = b"".join(struct.pack("<3f", *n) for n in N)+idx = b"".join(struct.pack("<H", i) for i in I)+acc = js.setdefault("accessors", [])+acc.append(dict(bufferView=buf(pos, 34962), componentType=5126, count=len(P), type="VEC3",+                min=[-r * MM, -r * MM, 0], max=[r * MM, r * MM, r * MM]))+acc.append(dict(bufferView=buf(nrm, 34962), componentType=5126, count=len(N), type="VEC3"))+acc.append(dict(bufferView=buf(idx, 34963), componentType=5123, count=len(I), type="SCALAR"))+js.setdefault("materials", []).append(dict(name="Solder ball - 63Sn/37Pb, dull", doubleSided=True,+                                           pbrMetallicRoughness=dict(baseColorFactor=[0.60, 0.61, 0.63, 1.0], metallicFactor=0.55, roughnessFactor=0.6)))+js.setdefault("meshes", []).append(dict(name="solder_ball_300um", primitives=[dict(+    attributes=dict(POSITION=len(acc) - 3, NORMAL=len(acc) - 2), indices=len(acc) - 1, material=len(js["materials"]) - 1)]))+mesh_i = len(js["meshes"]) - 1+kids = []+for x, y, num in balls:+    js["nodes"].append(dict(name="solder_ball_pad%s_%+.3f_%+.3f" % (num, x, y), mesh=mesh_i, translation=[x * MM, y * MM, Z0 * MM],+                            extras=dict(tooltip="Pad %s solder ball\n%s" % (num, TIP))))+    kids.append(len(js["nodes"]) - 1)+js["nodes"].append(dict(name=NODE, children=kids, extras=dict(+    adomLayer=dict(key="solder_balls", label="Solder balls (300 um jet paste)", group="Footprint", hidden=True), tooltip=TIP)))+js["scenes"][js.get("scene", 0)]["nodes"].append(len(js["nodes"]) - 1)+js["buffers"][0]["byteLength"] = len(bin_) + (-len(bin_) % 4)+js["asset"].setdefault("extras", {}).setdefault("adomHero", {}).setdefault("layers", {})["solder_balls"] = dict(+    what="300 um jet-paste solder balls on the footprint pads, hidden by default", source="john/adom-solder-ball-layer-standard; " + os.path.basename(mod))+write_glb(glb, js, bin_)+print(json.dumps(dict(glb=glb, balls=len(balls), per_pad=len(balls) // max(1, len(pads(mod))), footprint=os.path.basename(mod))))
provenance/tools/scene_solderballs.pyadded+93
@@ -0,0 +1,93 @@+#!/usr/bin/env python3+"""Replace the solder wedges in a component scene GLB (<MPN>.glb showcase, <MPN>.insertion.glb) with the+300 um jet-paste solder balls, the same ones the hero's 'Solder balls' layer shows.++Adom footprint standard (john/adom-solder-ball-layer-standard): balls 0.30 mm across at 0.25 mm pitch (adjacent balls+overlap slightly, by design), each a hemisphere with its flat face on the pad, dull leaded solder grey (63Sn/37Pb).+Positions follow adom-footprint's paste-dot rule (1.0.26): per SMD pad a grid at 0.25 mm pitch centred on the pad,+kept 0.06 mm inside the pad edge (2 x 2 on a 0.7 mm pad, 1 on a 0.5 mm pad). The scene keeps its node 'solder_top' (same name,+same place in the tree), only its geometry and material change. Scene frame: metres, Z up, the balls sit on the pad+copper's top face, read from the scene's pad_top mesh; KiCad Y-down flipped to Y up.+usage: scene_solderballs.py SCENE.glb FOOTPRINT.kicad_mod   (in place; idempotent)"""+import json, math, re, struct, sys++D, PITCH, MARGIN, CU = 0.30, 0.25, 0.06, 0.04+MM = 0.001+SEG, RINGS = 16, 6+++def read_glb(p):+    b = open(p, "rb").read(); n = struct.unpack("<I", b[12:16])[0]; js = json.loads(b[20:20 + n]); o = 20 + n+    return js, bytearray(b[o + 8:o + 8 + struct.unpack("<I", b[o:o + 4])[0]] if o < len(b) else b"")+++def write_glb(p, js, bin_):+    j = json.dumps(js, separators=(",", ":")).encode(); j += b" " * (-len(j) % 4); bin_ += b"\0" * (-len(bin_) % 4)+    open(p, "wb").write(struct.pack("<III", 0x46546C67, 2, 12 + 8 + len(j) + 8 + len(bin_)) + struct.pack("<II", len(j), 0x4E4F534A) + j+                       + struct.pack("<II", len(bin_), 0x004E4942) + bytes(bin_))+++def pads(mod):+    t = open(mod).read()+    return [(float(m.group(1)), -float(m.group(2)), float(m.group(3)), float(m.group(4))) for m in re.finditer(+        r'\(pad\s+"?[^"\s]*"?\s+smd\s+\w+\s+\(at\s+([-\d.]+)\s+([-\d.]+)(?:\s+[-\d.]+)?\)\s+\(size\s+([-\d.]+)\s+([-\d.]+)\)', t)]+++def grid(c, span):+    n = max(1, int(math.floor((span - 2 * MARGIN - D) / PITCH + 1e-9)) + 1)+    return [c + (i - (n - 1) / 2) * PITCH for i in range(n)]+++def balls(mod):+    return [(x, y) for px, py, w, h in pads(mod) for y in grid(py, h) for x in grid(px, w)]+++def hemispheres(centres, z0):+    r = D / 2; P, N, I = [], [], []+    for cx, cy in centres:+        b0 = len(P)+        for k in range(RINGS + 1):+            th = (math.pi / 2) * k / RINGS+            for s in range(SEG + 1):+                ph = 2 * math.pi * s / SEG; nx, ny, nz = math.cos(th) * math.cos(ph), math.cos(th) * math.sin(ph), math.sin(th)+                P.append((cx + r * nx, cy + r * ny, z0 + r * nz)); N.append((nx, ny, nz))+        for k in range(RINGS):+            for s in range(SEG):+                a = b0 + k * (SEG + 1) + s; b = a + SEG + 1+                I += [a, a + 1, b, a + 1, b + 1, b]+        c0 = len(P); P.append((cx, cy, z0)); N.append((0, 0, -1))+        for s in range(SEG + 1):+            ph = 2 * math.pi * s / SEG; P.append((cx + r * math.cos(ph), cy + r * math.sin(ph), z0)); N.append((0, 0, -1))+        for s in range(SEG):+            I += [c0, c0 + 2 + s, c0 + 1 + s]+    return P, N, I+++if __name__ == "__main__":+    glb, mod = sys.argv[1:3]+    js, bin_ = read_glb(glb)+    names = [n.get("name") for n in js["nodes"]]+    node = js["nodes"][names.index("solder_top")]+    pa = js["accessors"][js["meshes"][js["nodes"][names.index("pad_top")]["mesh"]]["primitives"][0]["attributes"]["POSITION"]]+    cu = pa["max"][2] / MM if "max" in pa else CU                       # pad copper top in this scene (mm)+    C = balls(mod); P, N, I = hemispheres(C, cu)++    def buf(data, target):+        global bin_+        bin_ += b"\0" * (-len(bin_) % 4)+        js["bufferViews"].append(dict(buffer=0, byteOffset=len(bin_), byteLength=len(data), target=target)); bin_ += data+        return len(js["bufferViews"]) - 1+    acc = js["accessors"]+    xs = [p[0] * MM for p in P]; ys = [p[1] * MM for p in P]; zs = [p[2] * MM for p in P]+    acc.append(dict(bufferView=buf(b"".join(struct.pack("<3f", x * MM, y * MM, z * MM) for x, y, z in P), 34962), componentType=5126,+                    count=len(P), type="VEC3", min=[min(xs), min(ys), min(zs)], max=[max(xs), max(ys), max(zs)]))+    acc.append(dict(bufferView=buf(b"".join(struct.pack("<3f", *n) for n in N), 34962), componentType=5126, count=len(N), type="VEC3"))+    acc.append(dict(bufferView=buf(b"".join(struct.pack("<I", i) for i in I), 34963), componentType=5125, count=len(I), type="SCALAR"))+    prim = js["meshes"][node["mesh"]]["primitives"][0]+    prim.update(attributes=dict(POSITION=len(acc) - 3, NORMAL=len(acc) - 2), indices=len(acc) - 1, mode=4)+    js["materials"][prim["material"]].update(name="solder_63Sn37Pb_jet_paste", doubleSided=True,+                                             pbrMetallicRoughness=dict(baseColorFactor=[0.60, 0.61, 0.63, 1.0], metallicFactor=0.55, roughnessFactor=0.6))+    node["extras"] = dict(node.get("extras") or {}, tooltip="Jet-paste solder ball, 0.30 mm across, 0.25 mm pitch\n(Adom 300 um solder-ball standard), %d on this footprint" % len(C))+    js["buffers"][0]["byteLength"] = len(bin_) + (-len(bin_) % 4)+    write_glb(glb, js, bin_)+    print(json.dumps(dict(glb=glb, balls=len(C), per_pad=len(C) // max(1, len(pads(mod))))))
verification.jsonadded+115
@@ -0,0 +1,115 @@+{+ "schema": "adom/verification@1",+ "part": "CR0402-FX-4701GLF",+ "variants": [+  {+   "mpn": "CR0402-FX-4701GLF",+   "note": "this page's value",+   "stocked": false+  }+ ],+ "entries": [+  {+   "date": "2026-10-04",+   "by": {+    "name": "John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Footprint matches Bourns' Recommended Pad Layout",+   "scope": [+    "footprint"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "Pads 0.50 x 0.50 mm on 1.00 mm centres, square corners, as Bourns REV. 03/21 p.2 draws them",+     "result": "pass"+    },+    {+     "text": "IPC-7351B heel and side fillets 0.00 mm nominal against the 0.25 mm bottom terminal: the intended fit",+     "result": "pass"+    },+    {+     "text": "Not polarised: pad 1 and pad 2 are interchangeable",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "Bourns datasheet",+     "href": "docs/cr0402-fx-4701glf-datasheet.pdf"+    }+   ],+   "files": {+    "CR0402-FX-4701GLF.kicad_mod": "3261a93d1c7cf8831584c04b07554c36ee216ecc255634bf2a9cb4116f461694"+   }+  },+  {+   "date": "2026-10-04",+   "by": {+    "name": "John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "3D model built from Bourns' CR0402 dimensions",+   "scope": [+    "3d model"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "L 1.00, W 0.50, T 0.32 mm; top terminal 0.20, bottom terminal 0.25 mm; black overcoat between the top terminals",+     "result": "pass"+    },+    {+     "text": "Terminals and substrate share no surface (no z-fighting); tinned terminals render as metal in every GLB",+     "result": "pass"+    },+    {+     "text": "Part number on the black overcoat; the unmarked STEP beside it",+     "result": "pass"+    }+   ],+   "evidence": [+    {+     "label": "top and underside previews",+     "href": "docs/models/CR0402-FX-4701GLF.step.top.png"+    }+   ],+   "files": {+    "CR0402-FX-4701GLF.step": "9c5e52b229df34577f3b79d8b4b999255d04f0dc3901804db5df9ce603c12805",+    "CR0402-FX-4701GLF-unetched.step": "4715b00a26bc4e81d4cdb2c8d51467ae1fb054f9cbe8d7d3d61ab69bcef298f5"+   }+  },+  {+   "date": "2026-10-04",+   "by": {+    "name": "John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Hero: copper fill, outlines outside the copper, hidden solder-ball layer",+   "scope": [+    "hero"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "Copper pads layer; 300 um solder balls layer hidden by default, positions identical to adom-footprint's paste dots",+     "result": "pass"+    }+   ],+   "evidence": [],+   "files": {+    "cr0402-fx-4701glf-hero.glb": "56e82dc31bf78550747fb96683e8ff64ec84e7964a7504b448ad10f286dab6a3"+   }+  }+ ]+}